@coinbase/cdp-core 0.0.20 → 0.0.21

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 (87) hide show
  1. package/README.md +75 -1
  2. package/dist/esm/index.js +29 -27
  3. package/dist/esm/index103.js +1 -1
  4. package/dist/esm/index15.js +8 -8
  5. package/dist/esm/index16.js +2 -2
  6. package/dist/esm/index17.js +39 -158
  7. package/dist/esm/index18.js +16 -47
  8. package/dist/esm/index19.js +4 -152
  9. package/dist/esm/index2.js +154 -87
  10. package/dist/esm/index20.js +5 -56
  11. package/dist/esm/index21.js +158 -39
  12. package/dist/esm/index22.js +47 -16
  13. package/dist/esm/index23.js +152 -4
  14. package/dist/esm/index24.js +56 -5
  15. package/dist/esm/index25.js +8 -12
  16. package/dist/esm/index26.js +17 -11
  17. package/dist/esm/index27.js +45 -8
  18. package/dist/esm/index28.js +13 -17
  19. package/dist/esm/index29.js +50 -40
  20. package/dist/esm/index3.js +4 -4
  21. package/dist/esm/index30.js +6 -13
  22. package/dist/esm/index31.js +20 -54
  23. package/dist/esm/index32.js +11 -6
  24. package/dist/esm/index33.js +3 -21
  25. package/dist/esm/index34.js +3 -3
  26. package/dist/esm/index35.js +34 -3
  27. package/dist/esm/index36.js +10 -32
  28. package/dist/esm/index37.js +4 -12
  29. package/dist/esm/index38.js +28 -4
  30. package/dist/esm/index39.js +6 -28
  31. package/dist/esm/index40.js +24 -6
  32. package/dist/esm/index41.js +16 -24
  33. package/dist/esm/index42.js +54 -16
  34. package/dist/esm/index43.js +22 -53
  35. package/dist/esm/index44.js +11 -23
  36. package/dist/esm/index45.js +26 -10
  37. package/dist/esm/index46.js +41 -26
  38. package/dist/esm/index47.js +54 -41
  39. package/dist/esm/index48.js +126 -54
  40. package/dist/esm/index49.js +11 -126
  41. package/dist/esm/index50.js +101 -9
  42. package/dist/esm/index51.js +6 -104
  43. package/dist/esm/index52.js +3 -7
  44. package/dist/esm/index53.js +15 -3
  45. package/dist/esm/index54.js +42 -14
  46. package/dist/esm/index55.js +74 -38
  47. package/dist/esm/index56.js +2 -79
  48. package/dist/esm/index57.js +2 -2
  49. package/dist/esm/index58.js +13 -2
  50. package/dist/esm/index59.js +2 -2
  51. package/dist/esm/index6.js +4 -4
  52. package/dist/esm/index60.js +1 -1
  53. package/dist/esm/index61.js +1 -1
  54. package/dist/esm/index62.js +2 -2
  55. package/dist/esm/index63.js +2 -2
  56. package/dist/esm/index64.js +1 -1
  57. package/dist/esm/index65.js +1 -1
  58. package/dist/esm/index66.js +3 -3
  59. package/dist/esm/index7.js +7 -6
  60. package/dist/esm/index70.js +1 -1
  61. package/dist/esm/index72.js +4 -4
  62. package/dist/esm/index73.js +2 -104
  63. package/dist/esm/index74.js +17 -75
  64. package/dist/esm/index75.js +20 -80
  65. package/dist/esm/index76.js +80 -2
  66. package/dist/esm/index77.js +100 -17
  67. package/dist/esm/index78.js +31 -18
  68. package/dist/esm/index79.js +6 -32
  69. package/dist/esm/index8.js +10 -8
  70. package/dist/esm/index80.js +54 -6
  71. package/dist/esm/index81.js +11 -10
  72. package/dist/esm/index82.js +2 -55
  73. package/dist/esm/index83.js +45 -11
  74. package/dist/esm/index84.js +14 -2
  75. package/dist/esm/index85.js +9 -44
  76. package/dist/esm/index86.js +78 -13
  77. package/dist/esm/index88.js +20 -12
  78. package/dist/esm/index89.js +9 -35
  79. package/dist/esm/index90.js +19 -41
  80. package/dist/esm/index91.js +93 -20
  81. package/dist/esm/index92.js +20 -9
  82. package/dist/esm/index93.js +114 -16
  83. package/dist/esm/index94.js +11 -92
  84. package/dist/esm/index95.js +35 -20
  85. package/dist/esm/index96.js +41 -117
  86. package/dist/types/index.d.ts +33 -0
  87. package/package.json +3 -3
@@ -1,57 +1,4 @@
1
- import { encode as d } from "./index91.js";
2
- import y from "./index92.js";
3
- import b from "./index93.js";
4
- import { JWSInvalid as r } from "./index71.js";
5
- import { encoder as s, concat as u, decoder as h } from "./index83.js";
6
- import g from "./index94.js";
7
- import H from "./index95.js";
8
- import P from "./index96.js";
9
- class x {
10
- #r;
11
- #e;
12
- #t;
13
- constructor(e) {
14
- if (!(e instanceof Uint8Array))
15
- throw new TypeError("payload must be an instance of Uint8Array");
16
- this.#r = e;
17
- }
18
- setProtectedHeader(e) {
19
- if (this.#e)
20
- throw new TypeError("setProtectedHeader can only be called once");
21
- return this.#e = e, this;
22
- }
23
- setUnprotectedHeader(e) {
24
- if (this.#t)
25
- throw new TypeError("setUnprotectedHeader can only be called once");
26
- return this.#t = e, this;
27
- }
28
- async sign(e, l) {
29
- if (!this.#e && !this.#t)
30
- throw new r("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");
31
- if (!b(this.#e, this.#t))
32
- throw new r("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");
33
- const c = {
34
- ...this.#e,
35
- ...this.#t
36
- }, p = H(r, /* @__PURE__ */ new Map([["b64", !0]]), l?.crit, this.#e, c);
37
- let o = !0;
38
- if (p.has("b64") && (o = this.#e.b64, typeof o != "boolean"))
39
- throw new r('The "b64" (base64url-encode payload) Header Parameter must be a boolean');
40
- const { alg: t } = c;
41
- if (typeof t != "string" || !t)
42
- throw new r('JWS "alg" (Algorithm) Header Parameter missing or invalid');
43
- g(t, e, "sign");
44
- let i = this.#r;
45
- o && (i = s.encode(d(i)));
46
- let n;
47
- this.#e ? n = s.encode(d(JSON.stringify(this.#e))) : n = s.encode("");
48
- const f = u(n, s.encode("."), i), m = await P(e, t), w = await y(t, m, f), a = {
49
- signature: d(w),
50
- payload: ""
51
- };
52
- return o && (a.payload = h.decode(i)), this.#t && (a.header = this.#t), this.#e && (a.protected = h.decode(n)), a;
53
- }
54
- }
1
+ const o = (e) => Math.floor(e.getTime() / 1e3);
55
2
  export {
56
- x as FlattenedSign
3
+ o as default
57
4
  };
@@ -1,13 +1,47 @@
1
- const d = new TextEncoder(), s = new TextDecoder();
2
- function f(...n) {
3
- const c = n.reduce((e, { length: r }) => e + r, 0), t = new Uint8Array(c);
4
- let o = 0;
5
- for (const e of n)
6
- t.set(e, o), o += e.length;
7
- return t;
8
- }
1
+ const o = /^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i, t = (c) => {
2
+ const s = o.exec(c);
3
+ if (!s || s[4] && s[1])
4
+ throw new TypeError("Invalid time period format");
5
+ const a = parseFloat(s[2]), r = s[3].toLowerCase();
6
+ let e;
7
+ switch (r) {
8
+ case "sec":
9
+ case "secs":
10
+ case "second":
11
+ case "seconds":
12
+ case "s":
13
+ e = Math.round(a);
14
+ break;
15
+ case "minute":
16
+ case "minutes":
17
+ case "min":
18
+ case "mins":
19
+ case "m":
20
+ e = Math.round(a * 60);
21
+ break;
22
+ case "hour":
23
+ case "hours":
24
+ case "hr":
25
+ case "hrs":
26
+ case "h":
27
+ e = Math.round(a * 3600);
28
+ break;
29
+ case "day":
30
+ case "days":
31
+ case "d":
32
+ e = Math.round(a * 86400);
33
+ break;
34
+ case "week":
35
+ case "weeks":
36
+ case "w":
37
+ e = Math.round(a * 604800);
38
+ break;
39
+ default:
40
+ e = Math.round(a * 31557600);
41
+ break;
42
+ }
43
+ return s[1] === "-" || s[4] === "ago" ? -e : e;
44
+ };
9
45
  export {
10
- f as concat,
11
- s as decoder,
12
- d as encoder
46
+ t as default
13
47
  };
@@ -1,4 +1,16 @@
1
- const o = (e) => Math.floor(e.getTime() / 1e3);
1
+ function o(t) {
2
+ return typeof t == "object" && t !== null;
3
+ }
4
+ const r = (t) => {
5
+ if (!o(t) || Object.prototype.toString.call(t) !== "[object Object]")
6
+ return !1;
7
+ if (Object.getPrototypeOf(t) === null)
8
+ return !0;
9
+ let e = t;
10
+ for (; Object.getPrototypeOf(e) !== null; )
11
+ e = Object.getPrototypeOf(e);
12
+ return Object.getPrototypeOf(t) === e;
13
+ };
2
14
  export {
3
- o as default
15
+ r as default
4
16
  };
@@ -1,47 +1,12 @@
1
- const o = /^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i, t = (c) => {
2
- const s = o.exec(c);
3
- if (!s || s[4] && s[1])
4
- throw new TypeError("Invalid time period format");
5
- const a = parseFloat(s[2]), r = s[3].toLowerCase();
6
- let e;
7
- switch (r) {
8
- case "sec":
9
- case "secs":
10
- case "second":
11
- case "seconds":
12
- case "s":
13
- e = Math.round(a);
14
- break;
15
- case "minute":
16
- case "minutes":
17
- case "min":
18
- case "mins":
19
- case "m":
20
- e = Math.round(a * 60);
21
- break;
22
- case "hour":
23
- case "hours":
24
- case "hr":
25
- case "hrs":
26
- case "h":
27
- e = Math.round(a * 3600);
28
- break;
29
- case "day":
30
- case "days":
31
- case "d":
32
- e = Math.round(a * 86400);
33
- break;
34
- case "week":
35
- case "weeks":
36
- case "w":
37
- e = Math.round(a * 604800);
38
- break;
39
- default:
40
- e = Math.round(a * 31557600);
41
- break;
42
- }
43
- return s[1] === "-" || s[4] === "ago" ? -e : e;
1
+ import { contracts as o } from "./index94.js";
2
+ import { formatters as r } from "./index95.js";
3
+ import { serializers as t } from "./index96.js";
4
+ const e = {
5
+ blockTime: 2e3,
6
+ contracts: o,
7
+ formatters: r,
8
+ serializers: t
44
9
  };
45
10
  export {
46
- t as default
11
+ e as chainConfig
47
12
  };
@@ -1,16 +1,81 @@
1
- function o(t) {
2
- return typeof t == "object" && t !== null;
1
+ import { Hash as g, createView as l, aexists as b, toBytes as a, abytes as d, aoutput as x, clean as w } from "./index76.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);
3
7
  }
4
- const r = (t) => {
5
- if (!o(t) || Object.prototype.toString.call(t) !== "[object Object]")
6
- return !1;
7
- if (Object.getPrototypeOf(t) === null)
8
- return !0;
9
- let e = t;
10
- for (; Object.getPrototypeOf(e) !== null; )
11
- e = Object.getPrototypeOf(e);
12
- return Object.getPrototypeOf(t) === e;
13
- };
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;
13
+ }
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
+ }
64
+ }
65
+ const B = /* @__PURE__ */ Uint32Array.from([
66
+ 1779033703,
67
+ 3144134277,
68
+ 1013904242,
69
+ 2773480762,
70
+ 1359893119,
71
+ 2600822924,
72
+ 528734635,
73
+ 1541459225
74
+ ]);
14
75
  export {
15
- r as default
76
+ U as Chi,
77
+ m as HashMD,
78
+ _ as Maj,
79
+ B as SHA256_IV,
80
+ y as setBigUint64
16
81
  };
@@ -1,15 +1,23 @@
1
- const s = {
2
- gasPriceOracle: { address: "0x420000000000000000000000000000000000000F" },
3
- l1Block: { address: "0x4200000000000000000000000000000000000015" },
4
- l2CrossDomainMessenger: {
5
- address: "0x4200000000000000000000000000000000000007"
6
- },
7
- l2Erc721Bridge: { address: "0x4200000000000000000000000000000000000014" },
8
- l2StandardBridge: { address: "0x4200000000000000000000000000000000000010" },
9
- l2ToL1MessagePasser: {
10
- address: "0x4200000000000000000000000000000000000016"
1
+ import { encoder as t, decoder as o } from "./index81.js";
2
+ import { encodeBase64 as c, decodeBase64 as a } from "./index97.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.");
11
14
  }
12
- };
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
+ }
13
20
  export {
14
- s as contracts
21
+ i as decode,
22
+ p as encode
15
23
  };
@@ -1,38 +1,12 @@
1
- import { hexToBigInt as n } from "./index44.js";
2
- import { defineBlock as r } from "./index41.js";
3
- import { defineTransaction as s, formatTransaction as m } from "./index43.js";
4
- import { defineTransactionReceipt as l } from "./index46.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 n from "./index98.js";
2
+ import s from "./index99.js";
3
+ import a from "./index100.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);
35
9
  };
36
10
  export {
37
- p as formatters
11
+ y as default
38
12
  };
@@ -1,44 +1,22 @@
1
- import { InvalidAddressError as a } from "./index25.js";
2
- import { isAddress as f } from "./index26.js";
3
- import { concatHex as p } from "./index34.js";
4
- import { toHex as i } from "./index29.js";
5
- import { toRlp as x } from "./index47.js";
6
- import { serializeTransaction as l } from "./index15.js";
7
- function T(r, e) {
8
- return h(r) ? z(r) : l(r, e);
9
- }
10
- const E = {
11
- transaction: T
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;
12
19
  };
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
20
  export {
41
- w as assertTransactionDeposit,
42
- T as serializeTransaction,
43
- E as serializers
21
+ a as default
44
22
  };
@@ -1,23 +1,96 @@
1
- import { encoder as t, decoder as o } from "./index83.js";
2
- import { encodeBase64 as c, decodeBase64 as a } from "./index97.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.");
1
+ import { withAlg as n } from "./index101.js";
2
+ import c from "./index102.js";
3
+ import { isJWK as p, isSecretJWK as a, isPublicJWK as y, isPrivateJWK as f } from "./index103.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;
16
+ }
17
+ if (e.use !== i)
18
+ throw new TypeError(`Invalid key for this operation, its "use" must be "${i}" when present`);
14
19
  }
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
- }
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;
42
+ }
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
+ }
46
+ 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
+ };
20
94
  export {
21
- i as decode,
22
- p as encode
95
+ d as default
23
96
  };
@@ -1,12 +1,23 @@
1
- import n from "./index98.js";
2
- import s from "./index99.js";
3
- import a from "./index100.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);
1
+ import { JOSENotSupported as f } from "./index71.js";
2
+ const w = (n, r, a, e, s) => {
3
+ if (s.crit !== void 0 && e?.crit === void 0)
4
+ throw new n('"crit" (Critical) Header Parameter MUST be integrity protected');
5
+ if (!e || e.crit === void 0)
6
+ return /* @__PURE__ */ new Set();
7
+ if (!Array.isArray(e.crit) || e.crit.length === 0 || e.crit.some((i) => typeof i != "string" || i.length === 0))
8
+ throw new n('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');
9
+ let t;
10
+ a !== void 0 ? t = new Map([...Object.entries(a), ...r.entries()]) : t = r;
11
+ for (const i of e.crit) {
12
+ if (!t.has(i))
13
+ throw new f(`Extension Header Parameter "${i}" is not recognized`);
14
+ if (s[i] === void 0)
15
+ throw new n(`Extension Header Parameter "${i}" is missing`);
16
+ if (t.get(i) && e[i] === void 0)
17
+ throw new n(`Extension Header Parameter "${i}" MUST be integrity protected`);
18
+ }
19
+ return new Set(e.crit);
9
20
  };
10
21
  export {
11
- y as default
22
+ w as default
12
23
  };