@coinbase/cdp-core 0.0.27 → 0.0.28

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 (71) hide show
  1. package/dist/esm/index.native100.js +13 -28
  2. package/dist/esm/index.native101.js +10 -8
  3. package/dist/esm/index.native102.js +17 -11
  4. package/dist/esm/index.native103.js +80 -12
  5. package/dist/esm/index.native104.js +13 -10
  6. package/dist/esm/index.native105.js +36 -17
  7. package/dist/esm/index.native106.js +40 -79
  8. package/dist/esm/index.native26.js +1 -1
  9. package/dist/esm/index.native75.js +6 -6
  10. package/dist/esm/index.native88.js +21 -10
  11. package/dist/esm/index.native89.js +10 -21
  12. package/dist/esm/index.native90.js +19 -9
  13. package/dist/esm/index.native91.js +89 -15
  14. package/dist/esm/index.native92.js +19 -92
  15. package/dist/esm/index.native93.js +115 -18
  16. package/dist/esm/index.native94.js +9 -117
  17. package/dist/esm/index.native96.js +18 -13
  18. package/dist/esm/index.native97.js +27 -35
  19. package/dist/esm/index.native98.js +7 -41
  20. package/dist/esm/index.native99.js +11 -18
  21. package/dist/esm/index.web25.js +1 -1
  22. package/dist/esm/index.web68.js +1 -1
  23. package/dist/esm/index.web69.js +1 -1
  24. package/dist/esm/index.web74.js +6 -6
  25. package/dist/esm/index.web83.js +1 -1
  26. package/dist/esm/index.web84.js +32 -6
  27. package/dist/esm/index.web85.js +6 -32
  28. package/dist/esm/index.web86.js +77 -19
  29. package/dist/esm/index.web87.js +21 -10
  30. package/dist/esm/index.web88.js +9 -19
  31. package/dist/esm/index.web89.js +15 -89
  32. package/dist/esm/index.web90.js +92 -19
  33. package/dist/esm/index.web91.js +18 -115
  34. package/dist/esm/index.web92.js +117 -9
  35. package/dist/esm/index.web93.js +10 -79
  36. package/dist/native/index.native100.js +13 -28
  37. package/dist/native/index.native101.js +10 -8
  38. package/dist/native/index.native102.js +17 -11
  39. package/dist/native/index.native103.js +80 -12
  40. package/dist/native/index.native104.js +13 -10
  41. package/dist/native/index.native105.js +36 -17
  42. package/dist/native/index.native106.js +40 -79
  43. package/dist/native/index.native26.js +1 -1
  44. package/dist/native/index.native75.js +6 -6
  45. package/dist/native/index.native88.js +21 -10
  46. package/dist/native/index.native89.js +10 -21
  47. package/dist/native/index.native90.js +19 -9
  48. package/dist/native/index.native91.js +89 -15
  49. package/dist/native/index.native92.js +19 -92
  50. package/dist/native/index.native93.js +115 -18
  51. package/dist/native/index.native94.js +9 -117
  52. package/dist/native/index.native96.js +18 -13
  53. package/dist/native/index.native97.js +27 -35
  54. package/dist/native/index.native98.js +7 -41
  55. package/dist/native/index.native99.js +11 -18
  56. package/dist/web/index.web25.js +1 -1
  57. package/dist/web/index.web68.js +1 -1
  58. package/dist/web/index.web69.js +1 -1
  59. package/dist/web/index.web74.js +6 -6
  60. package/dist/web/index.web83.js +1 -1
  61. package/dist/web/index.web84.js +32 -6
  62. package/dist/web/index.web85.js +6 -32
  63. package/dist/web/index.web86.js +77 -19
  64. package/dist/web/index.web87.js +21 -10
  65. package/dist/web/index.web88.js +9 -19
  66. package/dist/web/index.web89.js +15 -89
  67. package/dist/web/index.web90.js +92 -19
  68. package/dist/web/index.web91.js +18 -115
  69. package/dist/web/index.web92.js +117 -9
  70. package/dist/web/index.web93.js +10 -79
  71. package/package.json +2 -2
@@ -1,38 +1,30 @@
1
- import { hexToBigInt as n } from "./index.native48.js";
2
- import { defineBlock as r } from "./index.native45.js";
3
- import { defineTransaction as s, formatTransaction as m } from "./index.native47.js";
4
- import { defineTransactionReceipt as l } from "./index.native50.js";
5
- const p = {
6
- block: /* @__PURE__ */ r({
7
- format(e) {
8
- return {
9
- transactions: e.transactions?.map((t) => {
10
- if (typeof t == "string")
11
- return t;
12
- const i = m(t);
13
- return i.typeHex === "0x7e" && (i.isSystemTx = t.isSystemTx, i.mint = t.mint ? n(t.mint) : void 0, i.sourceHash = t.sourceHash, i.type = "deposit"), i;
14
- }),
15
- stateRoot: e.stateRoot
16
- };
17
- }
18
- }),
19
- transaction: /* @__PURE__ */ s({
20
- format(e) {
21
- const o = {};
22
- return e.type === "0x7e" && (o.isSystemTx = e.isSystemTx, o.mint = e.mint ? n(e.mint) : void 0, o.sourceHash = e.sourceHash, o.type = "deposit"), o;
23
- }
24
- }),
25
- transactionReceipt: /* @__PURE__ */ l({
26
- format(e) {
27
- return {
28
- l1GasPrice: e.l1GasPrice ? n(e.l1GasPrice) : null,
29
- l1GasUsed: e.l1GasUsed ? n(e.l1GasUsed) : null,
30
- l1Fee: e.l1Fee ? n(e.l1Fee) : null,
31
- l1FeeScalar: e.l1FeeScalar ? Number(e.l1FeeScalar) : null
32
- };
33
- }
34
- })
1
+ import { JOSENotSupported as r } from "./index.native28.js";
2
+ const S = (e, s) => {
3
+ const a = `SHA-${e.slice(-3)}`;
4
+ switch (e) {
5
+ case "HS256":
6
+ case "HS384":
7
+ case "HS512":
8
+ return { hash: a, name: "HMAC" };
9
+ case "PS256":
10
+ case "PS384":
11
+ case "PS512":
12
+ return { hash: a, name: "RSA-PSS", saltLength: parseInt(e.slice(-3), 10) >> 3 };
13
+ case "RS256":
14
+ case "RS384":
15
+ case "RS512":
16
+ return { hash: a, name: "RSASSA-PKCS1-v1_5" };
17
+ case "ES256":
18
+ case "ES384":
19
+ case "ES512":
20
+ return { hash: a, name: "ECDSA", namedCurve: s.namedCurve };
21
+ case "Ed25519":
22
+ case "EdDSA":
23
+ return { name: "Ed25519" };
24
+ default:
25
+ throw new r(`alg ${e} is not supported either by JOSE or your javascript runtime`);
26
+ }
35
27
  };
36
28
  export {
37
- p as formatters
29
+ S as default
38
30
  };
@@ -1,44 +1,10 @@
1
- import { InvalidAddressError as a } from "./index.native63.js";
2
- import { isAddress as f } from "./index.native37.js";
3
- import { concatHex as p } from "./index.native38.js";
4
- import { toHex as i } from "./index.native32.js";
5
- import { toRlp as x } from "./index.native51.js";
6
- import { serializeTransaction as l } from "./index.native19.js";
7
- function T(r, e) {
8
- return h(r) ? z(r) : l(r, e);
9
- }
10
- const E = {
11
- transaction: T
1
+ const o = (t, r) => {
2
+ if (t.startsWith("RS") || t.startsWith("PS")) {
3
+ const { modulusLength: e } = r.algorithm;
4
+ if (typeof e != "number" || e < 2048)
5
+ throw new TypeError(`${t} requires key modulusLength to be 2048 bits or larger`);
6
+ }
12
7
  };
13
- function z(r) {
14
- w(r);
15
- const { sourceHash: e, data: o, from: m, gas: t, isSystemTx: u, mint: s, to: c, value: n } = r, d = [
16
- e,
17
- m,
18
- c ?? "0x",
19
- s ? i(s) : "0x",
20
- n ? i(n) : "0x",
21
- t ? i(t) : "0x",
22
- u ? "0x1" : "0x",
23
- o ?? "0x"
24
- ];
25
- return p([
26
- "0x7e",
27
- x(d)
28
- ]);
29
- }
30
- function h(r) {
31
- return r.type === "deposit" || typeof r.sourceHash < "u";
32
- }
33
- function w(r) {
34
- const { from: e, to: o } = r;
35
- if (e && !f(e))
36
- throw new a({ address: e });
37
- if (o && !f(o))
38
- throw new a({ address: o });
39
- }
40
8
  export {
41
- w as assertTransactionDeposit,
42
- T as serializeTransaction,
43
- E as serializers
9
+ o as default
44
10
  };
@@ -1,20 +1,13 @@
1
- function o(t) {
2
- if (Uint8Array.prototype.toBase64)
3
- return t.toBase64();
4
- const e = 32768, n = [];
5
- for (let r = 0; r < t.length; r += e)
6
- n.push(String.fromCharCode.apply(null, t.subarray(r, r + e)));
7
- return btoa(n.join(""));
8
- }
9
- function a(t) {
10
- if (Uint8Array.fromBase64)
11
- return Uint8Array.fromBase64(t);
12
- const e = atob(t), n = new Uint8Array(e.length);
13
- for (let r = 0; r < e.length; r++)
14
- n[r] = e.charCodeAt(r);
15
- return n;
16
- }
1
+ import { checkSigCryptoKey as i } from "./index.native107.js";
2
+ import o from "./index.native100.js";
3
+ const s = async (t, r, e) => {
4
+ if (r instanceof Uint8Array) {
5
+ if (!t.startsWith("HS"))
6
+ throw new TypeError(o(r, "CryptoKey", "KeyObject", "JSON Web Key"));
7
+ return crypto.subtle.importKey("raw", r, { hash: `SHA-${t.slice(-3)}`, name: "HMAC" }, !1, [e]);
8
+ }
9
+ return i(r, t, e), r;
10
+ };
17
11
  export {
18
- a as decodeBase64,
19
- o as encodeBase64
12
+ s as default
20
13
  };
@@ -1,4 +1,4 @@
1
- import { chainConfig as a } from "./index.web92.js";
1
+ import { chainConfig as a } from "./index.web93.js";
2
2
  import { defineChain as t } from "./index.web29.js";
3
3
  const e = 11155111, r = /* @__PURE__ */ t({
4
4
  ...a,
@@ -1,4 +1,4 @@
1
- import { commitmentToVersionedHash as i } from "./index.web84.js";
1
+ import { commitmentToVersionedHash as i } from "./index.web85.js";
2
2
  function r(o) {
3
3
  const { commitments: t, version: n } = o, e = o.to ?? (typeof t[0] == "string" ? "hex" : "bytes"), s = [];
4
4
  for (const m of t)
@@ -1,6 +1,6 @@
1
1
  import { blobsToCommitments as f } from "./index.web66.js";
2
2
  import { blobsToProofs as l } from "./index.web67.js";
3
- import { toBlobs as p } from "./index.web85.js";
3
+ import { toBlobs as p } from "./index.web84.js";
4
4
  function k(t) {
5
5
  const { data: i, kzg: n, to: m } = t, s = t.blobs ?? p({ data: i, to: m }), b = t.commitments ?? f({ blobs: s, kzg: n, to: m }), r = t.proofs ?? l({ blobs: s, commitments: b, kzg: n, to: m }), c = [];
6
6
  for (let o = 0; o < s.length; o++)
@@ -1,11 +1,11 @@
1
- import { encode as d } from "./index.web86.js";
2
- import y from "./index.web87.js";
3
- import b from "./index.web88.js";
1
+ import { encode as d } from "./index.web87.js";
2
+ import y from "./index.web88.js";
3
+ import b from "./index.web89.js";
4
4
  import { JWSInvalid as r } from "./index.web27.js";
5
5
  import { encoder as s, concat as u, decoder as h } from "./index.web75.js";
6
- import g from "./index.web89.js";
7
- import H from "./index.web90.js";
8
- import P from "./index.web91.js";
6
+ import g from "./index.web90.js";
7
+ import H from "./index.web91.js";
8
+ import P from "./index.web92.js";
9
9
  class x {
10
10
  #r;
11
11
  #e;
@@ -1,4 +1,4 @@
1
- import { HashMD as D, SHA256_IV as b, Chi as g, Maj as p } from "./index.web93.js";
1
+ import { HashMD as D, SHA256_IV as b, Chi as g, Maj as p } from "./index.web86.js";
2
2
  import { createHasher as u, clean as C, rotr as i } from "./index.web82.js";
3
3
  const B = /* @__PURE__ */ Uint32Array.from([
4
4
  1116352408,
@@ -1,9 +1,35 @@
1
- import { bytesToHex as i } from "./index.web31.js";
2
- import { sha256 as m } from "./index.web55.js";
3
- function f(t) {
4
- const { commitment: e, version: s = 1 } = t, n = t.to ?? (typeof e == "string" ? "hex" : "bytes"), o = m(e);
5
- return o.set([s], 0), n === "bytes" ? o : i(o);
1
+ import { maxBytesPerTransaction as y, bytesPerBlob as a, fieldElementsPerBlob as f, bytesPerFieldElement as p } from "./index.web94.js";
2
+ import { EmptyBlobError as c, BlobSizeTooLargeError as h } from "./index.web63.js";
3
+ import { createCursor as B } from "./index.web52.js";
4
+ import { size as u } from "./index.web41.js";
5
+ import { hexToBytes as x } from "./index.web33.js";
6
+ import { bytesToHex as d } from "./index.web31.js";
7
+ function S(e) {
8
+ const m = e.to ?? (typeof e.data == "string" ? "hex" : "bytes"), i = typeof e.data == "string" ? x(e.data) : e.data, o = u(i);
9
+ if (!o)
10
+ throw new c();
11
+ if (o > y)
12
+ throw new h({
13
+ maxSize: y,
14
+ size: o
15
+ });
16
+ const s = [];
17
+ let n = !0, r = 0;
18
+ for (; n; ) {
19
+ const t = B(new Uint8Array(a));
20
+ let l = 0;
21
+ for (; l < f; ) {
22
+ const b = i.slice(r, r + (p - 1));
23
+ if (t.pushByte(0), t.pushBytes(b), b.length < 31) {
24
+ t.pushByte(128), n = !1;
25
+ break;
26
+ }
27
+ l++, r += 31;
28
+ }
29
+ s.push(t);
30
+ }
31
+ return m === "bytes" ? s.map((t) => t.bytes) : s.map((t) => d(t.bytes));
6
32
  }
7
33
  export {
8
- f as commitmentToVersionedHash
34
+ S as toBlobs
9
35
  };
@@ -1,35 +1,9 @@
1
- import { maxBytesPerTransaction as y, bytesPerBlob as a, fieldElementsPerBlob as f, bytesPerFieldElement as p } from "./index.web94.js";
2
- import { EmptyBlobError as c, BlobSizeTooLargeError as h } from "./index.web63.js";
3
- import { createCursor as B } from "./index.web52.js";
4
- import { size as u } from "./index.web41.js";
5
- import { hexToBytes as x } from "./index.web33.js";
6
- import { bytesToHex as d } from "./index.web31.js";
7
- function S(e) {
8
- const m = e.to ?? (typeof e.data == "string" ? "hex" : "bytes"), i = typeof e.data == "string" ? x(e.data) : e.data, o = u(i);
9
- if (!o)
10
- throw new c();
11
- if (o > y)
12
- throw new h({
13
- maxSize: y,
14
- size: o
15
- });
16
- const s = [];
17
- let n = !0, r = 0;
18
- for (; n; ) {
19
- const t = B(new Uint8Array(a));
20
- let l = 0;
21
- for (; l < f; ) {
22
- const b = i.slice(r, r + (p - 1));
23
- if (t.pushByte(0), t.pushBytes(b), b.length < 31) {
24
- t.pushByte(128), n = !1;
25
- break;
26
- }
27
- l++, r += 31;
28
- }
29
- s.push(t);
30
- }
31
- return m === "bytes" ? s.map((t) => t.bytes) : s.map((t) => d(t.bytes));
1
+ import { bytesToHex as i } from "./index.web31.js";
2
+ import { sha256 as m } from "./index.web55.js";
3
+ function f(t) {
4
+ const { commitment: e, version: s = 1 } = t, n = t.to ?? (typeof e == "string" ? "hex" : "bytes"), o = m(e);
5
+ return o.set([s], 0), n === "bytes" ? o : i(o);
32
6
  }
33
7
  export {
34
- S as toBlobs
8
+ f as commitmentToVersionedHash
35
9
  };
@@ -1,23 +1,81 @@
1
- import { encoder as t, decoder as o } from "./index.web75.js";
2
- import { encodeBase64 as c, decodeBase64 as a } from "./index.web95.js";
3
- function i(r) {
4
- if (Uint8Array.fromBase64)
5
- return Uint8Array.fromBase64(typeof r == "string" ? r : o.decode(r), {
6
- alphabet: "base64url"
7
- });
8
- let e = r;
9
- e instanceof Uint8Array && (e = o.decode(e)), e = e.replace(/-/g, "+").replace(/_/g, "/").replace(/\s/g, "");
10
- try {
11
- return a(e);
12
- } catch {
13
- throw new TypeError("The input to be decoded is not correctly encoded.");
14
- }
1
+ import { Hash as g, createView as l, aexists as b, toBytes as a, abytes as d, aoutput as x, clean as w } from "./index.web82.js";
2
+ function y(o, t, s, n) {
3
+ if (typeof o.setBigUint64 == "function")
4
+ return o.setBigUint64(t, s, n);
5
+ const i = BigInt(32), h = BigInt(4294967295), e = Number(s >> i & h), r = Number(s & h), c = n ? 4 : 0, u = n ? 0 : 4;
6
+ o.setUint32(t + c, e, n), o.setUint32(t + u, r, n);
7
+ }
8
+ function U(o, t, s) {
9
+ return o & t ^ ~o & s;
10
+ }
11
+ function _(o, t, s) {
12
+ return o & t ^ o & s ^ t & s;
15
13
  }
16
- function p(r) {
17
- let e = r;
18
- return typeof e == "string" && (e = t.encode(e)), Uint8Array.prototype.toBase64 ? e.toBase64({ alphabet: "base64url", omitPadding: !0 }) : c(e).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
14
+ class m extends g {
15
+ constructor(t, s, n, i) {
16
+ super(), this.finished = !1, this.length = 0, this.pos = 0, this.destroyed = !1, this.blockLen = t, this.outputLen = s, this.padOffset = n, this.isLE = i, this.buffer = new Uint8Array(t), this.view = l(this.buffer);
17
+ }
18
+ update(t) {
19
+ b(this), t = a(t), d(t);
20
+ const { view: s, buffer: n, blockLen: i } = this, h = t.length;
21
+ for (let e = 0; e < h; ) {
22
+ const r = Math.min(i - this.pos, h - e);
23
+ if (r === i) {
24
+ const c = l(t);
25
+ for (; i <= h - e; e += i)
26
+ this.process(c, e);
27
+ continue;
28
+ }
29
+ n.set(t.subarray(e, e + r), this.pos), this.pos += r, e += r, this.pos === i && (this.process(s, 0), this.pos = 0);
30
+ }
31
+ return this.length += t.length, this.roundClean(), this;
32
+ }
33
+ digestInto(t) {
34
+ b(this), x(t, this), this.finished = !0;
35
+ const { buffer: s, view: n, blockLen: i, isLE: h } = this;
36
+ let { pos: e } = this;
37
+ s[e++] = 128, w(this.buffer.subarray(e)), this.padOffset > i - e && (this.process(n, 0), e = 0);
38
+ for (let f = e; f < i; f++)
39
+ s[f] = 0;
40
+ y(n, i - 8, BigInt(this.length * 8), h), this.process(n, 0);
41
+ const r = l(t), c = this.outputLen;
42
+ if (c % 4)
43
+ throw new Error("_sha2: outputLen should be aligned to 32bit");
44
+ const u = c / 4, p = this.get();
45
+ if (u > p.length)
46
+ throw new Error("_sha2: outputLen bigger than state");
47
+ for (let f = 0; f < u; f++)
48
+ r.setUint32(4 * f, p[f], h);
49
+ }
50
+ digest() {
51
+ const { buffer: t, outputLen: s } = this;
52
+ this.digestInto(t);
53
+ const n = t.slice(0, s);
54
+ return this.destroy(), n;
55
+ }
56
+ _cloneInto(t) {
57
+ t || (t = new this.constructor()), t.set(...this.get());
58
+ const { blockLen: s, buffer: n, length: i, finished: h, destroyed: e, pos: r } = this;
59
+ return t.destroyed = e, t.finished = h, t.length = i, t.pos = r, i % s && t.buffer.set(n), t;
60
+ }
61
+ clone() {
62
+ return this._cloneInto();
63
+ }
19
64
  }
65
+ const B = /* @__PURE__ */ Uint32Array.from([
66
+ 1779033703,
67
+ 3144134277,
68
+ 1013904242,
69
+ 2773480762,
70
+ 1359893119,
71
+ 2600822924,
72
+ 528734635,
73
+ 1541459225
74
+ ]);
20
75
  export {
21
- i as decode,
22
- p as encode
76
+ U as Chi,
77
+ m as HashMD,
78
+ _ as Maj,
79
+ B as SHA256_IV,
80
+ y as setBigUint64
23
81
  };
@@ -1,12 +1,23 @@
1
- import n from "./index.web96.js";
2
- import s from "./index.web97.js";
3
- import a from "./index.web98.js";
4
- const y = async (t, o, e) => {
5
- const r = await a(t, o, "sign");
6
- s(t, r);
7
- const i = await crypto.subtle.sign(n(t, r.algorithm), r, e);
8
- return new Uint8Array(i);
9
- };
1
+ import { encoder as t, decoder as o } from "./index.web75.js";
2
+ import { encodeBase64 as c, decodeBase64 as a } from "./index.web95.js";
3
+ function i(r) {
4
+ if (Uint8Array.fromBase64)
5
+ return Uint8Array.fromBase64(typeof r == "string" ? r : o.decode(r), {
6
+ alphabet: "base64url"
7
+ });
8
+ let e = r;
9
+ e instanceof Uint8Array && (e = o.decode(e)), e = e.replace(/-/g, "+").replace(/_/g, "/").replace(/\s/g, "");
10
+ try {
11
+ return a(e);
12
+ } catch {
13
+ throw new TypeError("The input to be decoded is not correctly encoded.");
14
+ }
15
+ }
16
+ function p(r) {
17
+ let e = r;
18
+ return typeof e == "string" && (e = t.encode(e)), Uint8Array.prototype.toBase64 ? e.toBase64({ alphabet: "base64url", omitPadding: !0 }) : c(e).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
19
+ }
10
20
  export {
11
- y as default
21
+ i as decode,
22
+ p as encode
12
23
  };
@@ -1,22 +1,12 @@
1
- const a = (...o) => {
2
- const t = o.filter(Boolean);
3
- if (t.length === 0 || t.length === 1)
4
- return !0;
5
- let e;
6
- for (const s of t) {
7
- const r = Object.keys(s);
8
- if (!e || e.size === 0) {
9
- e = new Set(r);
10
- continue;
11
- }
12
- for (const n of r) {
13
- if (e.has(n))
14
- return !1;
15
- e.add(n);
16
- }
17
- }
18
- return !0;
1
+ import n from "./index.web96.js";
2
+ import s from "./index.web97.js";
3
+ import a from "./index.web98.js";
4
+ const y = async (t, o, e) => {
5
+ const r = await a(t, o, "sign");
6
+ s(t, r);
7
+ const i = await crypto.subtle.sign(n(t, r.algorithm), r, e);
8
+ return new Uint8Array(i);
19
9
  };
20
10
  export {
21
- a as default
11
+ y as default
22
12
  };
@@ -1,96 +1,22 @@
1
- import { withAlg as n } from "./index.web99.js";
2
- import c from "./index.web100.js";
3
- import { isJWK as p, isSecretJWK as a, isPublicJWK as y, isPrivateJWK as f } from "./index.web101.js";
4
- const s = (r) => r?.[Symbol.toStringTag], o = (r, e, t) => {
5
- if (e.use !== void 0) {
6
- let i;
7
- switch (t) {
8
- case "sign":
9
- case "verify":
10
- i = "sig";
11
- break;
12
- case "encrypt":
13
- case "decrypt":
14
- i = "enc";
15
- break;
1
+ const a = (...o) => {
2
+ const t = o.filter(Boolean);
3
+ if (t.length === 0 || t.length === 1)
4
+ return !0;
5
+ let e;
6
+ for (const s of t) {
7
+ const r = Object.keys(s);
8
+ if (!e || e.size === 0) {
9
+ e = new Set(r);
10
+ continue;
16
11
  }
17
- if (e.use !== i)
18
- throw new TypeError(`Invalid key for this operation, its "use" must be "${i}" when present`);
19
- }
20
- if (e.alg !== void 0 && e.alg !== r)
21
- throw new TypeError(`Invalid key for this operation, its "alg" must be "${r}" when present`);
22
- if (Array.isArray(e.key_ops)) {
23
- let i;
24
- switch (!0) {
25
- case t === "sign":
26
- case r === "dir":
27
- case r.includes("CBC-HS"):
28
- i = t;
29
- break;
30
- case r.startsWith("PBES2"):
31
- i = "deriveBits";
32
- break;
33
- case /^A\d{3}(?:GCM)?(?:KW)?$/.test(r):
34
- !r.includes("GCM") && r.endsWith("KW") ? i = "unwrapKey" : i = t;
35
- break;
36
- case t === "encrypt":
37
- i = "wrapKey";
38
- break;
39
- case t === "decrypt":
40
- i = r.startsWith("RSA") ? "unwrapKey" : "deriveBits";
41
- break;
12
+ for (const n of r) {
13
+ if (e.has(n))
14
+ return !1;
15
+ e.add(n);
42
16
  }
43
- if (i && e.key_ops?.includes?.(i) === !1)
44
- throw new TypeError(`Invalid key for this operation, its "key_ops" must include "${i}" when present`);
45
17
  }
46
18
  return !0;
47
- }, h = (r, e, t) => {
48
- if (!(e instanceof Uint8Array)) {
49
- if (p(e)) {
50
- if (a(e) && o(r, e, t))
51
- return;
52
- throw new TypeError('JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present');
53
- }
54
- if (!c(e))
55
- throw new TypeError(n(r, e, "CryptoKey", "KeyObject", "JSON Web Key", "Uint8Array"));
56
- if (e.type !== "secret")
57
- throw new TypeError(`${s(e)} instances for symmetric algorithms must be of type "secret"`);
58
- }
59
- }, m = (r, e, t) => {
60
- if (p(e))
61
- switch (t) {
62
- case "decrypt":
63
- case "sign":
64
- if (f(e) && o(r, e, t))
65
- return;
66
- throw new TypeError("JSON Web Key for this operation be a private JWK");
67
- case "encrypt":
68
- case "verify":
69
- if (y(e) && o(r, e, t))
70
- return;
71
- throw new TypeError("JSON Web Key for this operation be a public JWK");
72
- }
73
- if (!c(e))
74
- throw new TypeError(n(r, e, "CryptoKey", "KeyObject", "JSON Web Key"));
75
- if (e.type === "secret")
76
- throw new TypeError(`${s(e)} instances for asymmetric algorithms must not be of type "secret"`);
77
- if (e.type === "public")
78
- switch (t) {
79
- case "sign":
80
- throw new TypeError(`${s(e)} instances for asymmetric algorithm signing must be of type "private"`);
81
- case "decrypt":
82
- throw new TypeError(`${s(e)} instances for asymmetric algorithm decryption must be of type "private"`);
83
- }
84
- if (e.type === "private")
85
- switch (t) {
86
- case "verify":
87
- throw new TypeError(`${s(e)} instances for asymmetric algorithm verifying must be of type "public"`);
88
- case "encrypt":
89
- throw new TypeError(`${s(e)} instances for asymmetric algorithm encryption must be of type "public"`);
90
- }
91
- }, d = (r, e, t) => {
92
- r.startsWith("HS") || r === "dir" || r.startsWith("PBES2") || /^A(?:128|192|256)(?:GCM)?(?:KW)?$/.test(r) || /^A(?:128|192|256)CBC-HS(?:256|384|512)$/.test(r) ? h(r, e, t) : m(r, e, t);
93
19
  };
94
20
  export {
95
- d as default
21
+ a as default
96
22
  };