@coinbase/cdp-core 0.0.23 → 0.0.25

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 (109) hide show
  1. package/README.md +12 -12
  2. package/dist/esm/index.js +17 -15
  3. package/dist/esm/index10.js +20 -14
  4. package/dist/esm/index100.js +6 -9
  5. package/dist/esm/index101.js +11 -13
  6. package/dist/esm/index102.js +11 -8
  7. package/dist/esm/index103.js +7 -14
  8. package/dist/esm/index104.js +16 -80
  9. package/dist/esm/index105.js +72 -70
  10. package/dist/esm/index106.js +81 -0
  11. package/dist/esm/index11.js +13 -117
  12. package/dist/esm/index12.js +116 -11
  13. package/dist/esm/index13.js +14 -22
  14. package/dist/esm/index14.js +42 -20
  15. package/dist/esm/index15.js +20 -172
  16. package/dist/esm/index16.js +170 -24
  17. package/dist/esm/index17.js +22 -156
  18. package/dist/esm/index18.js +157 -45
  19. package/dist/esm/index19.js +44 -149
  20. package/dist/esm/index2.js +10 -10
  21. package/dist/esm/index20.js +247 -53
  22. package/dist/esm/index21.js +56 -41
  23. package/dist/esm/index22.js +40 -16
  24. package/dist/esm/index23.js +16 -4
  25. package/dist/esm/index24.js +5 -5
  26. package/dist/esm/index25.js +5 -9
  27. package/dist/esm/index26.js +8 -17
  28. package/dist/esm/index27.js +16 -44
  29. package/dist/esm/index28.js +45 -13
  30. package/dist/esm/index29.js +13 -55
  31. package/dist/esm/index3.js +66 -60
  32. package/dist/esm/index30.js +55 -6
  33. package/dist/esm/index31.js +6 -21
  34. package/dist/esm/index32.js +21 -11
  35. package/dist/esm/index33.js +11 -3
  36. package/dist/esm/index34.js +3 -3
  37. package/dist/esm/index35.js +3 -34
  38. package/dist/esm/index36.js +32 -10
  39. package/dist/esm/index37.js +12 -4
  40. package/dist/esm/index38.js +4 -28
  41. package/dist/esm/index39.js +28 -6
  42. package/dist/esm/index4.js +48 -35
  43. package/dist/esm/index40.js +6 -24
  44. package/dist/esm/index41.js +24 -16
  45. package/dist/esm/index42.js +16 -54
  46. package/dist/esm/index43.js +53 -22
  47. package/dist/esm/index44.js +23 -11
  48. package/dist/esm/index45.js +10 -26
  49. package/dist/esm/index46.js +26 -41
  50. package/dist/esm/index47.js +41 -54
  51. package/dist/esm/index48.js +54 -126
  52. package/dist/esm/index49.js +126 -11
  53. package/dist/esm/index5.js +1 -1
  54. package/dist/esm/index50.js +9 -101
  55. package/dist/esm/index51.js +104 -6
  56. package/dist/esm/index52.js +7 -3
  57. package/dist/esm/index53.js +3 -15
  58. package/dist/esm/index54.js +14 -42
  59. package/dist/esm/index55.js +38 -74
  60. package/dist/esm/index56.js +79 -2
  61. package/dist/esm/index57.js +2 -2
  62. package/dist/esm/index58.js +2 -13
  63. package/dist/esm/index59.js +8 -33
  64. package/dist/esm/index6.js +13 -183
  65. package/dist/esm/index60.js +36 -5
  66. package/dist/esm/index61.js +5 -33
  67. package/dist/esm/index62.js +34 -8
  68. package/dist/esm/index63.js +8 -10
  69. package/dist/esm/index64.js +10 -11
  70. package/dist/esm/index65.js +11 -13
  71. package/dist/esm/index66.js +13 -18
  72. package/dist/esm/index67.js +18 -5
  73. package/dist/esm/index68.js +6 -5
  74. package/dist/esm/index69.js +5 -11
  75. package/dist/esm/index7.js +192 -15
  76. package/dist/esm/index70.js +10 -16
  77. package/dist/esm/index71.js +15 -21
  78. package/dist/esm/index72.js +21 -49
  79. package/dist/esm/index73.js +51 -2
  80. package/dist/esm/index74.js +1 -1
  81. package/dist/esm/index75.js +2 -20
  82. package/dist/esm/index76.js +20 -80
  83. package/dist/esm/index77.js +79 -103
  84. package/dist/esm/index78.js +101 -30
  85. package/dist/esm/index79.js +32 -6
  86. package/dist/esm/index8.js +14 -15
  87. package/dist/esm/index80.js +6 -78
  88. package/dist/esm/index81.js +79 -10
  89. package/dist/esm/index82.js +10 -55
  90. package/dist/esm/index83.js +54 -10
  91. package/dist/esm/index84.js +11 -2
  92. package/dist/esm/index85.js +2 -45
  93. package/dist/esm/index86.js +44 -13
  94. package/dist/esm/index87.js +14 -5
  95. package/dist/esm/index88.js +5 -13
  96. package/dist/esm/index89.js +12 -35
  97. package/dist/esm/index9.js +15 -20
  98. package/dist/esm/index90.js +35 -41
  99. package/dist/esm/index91.js +40 -19
  100. package/dist/esm/index92.js +21 -10
  101. package/dist/esm/index93.js +9 -19
  102. package/dist/esm/index94.js +15 -89
  103. package/dist/esm/index95.js +92 -19
  104. package/dist/esm/index96.js +18 -115
  105. package/dist/esm/index97.js +118 -18
  106. package/dist/esm/index98.js +18 -28
  107. package/dist/esm/index99.js +26 -6
  108. package/dist/types/index.d.ts +36 -1
  109. package/package.json +2 -2
@@ -1,13 +1,57 @@
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;
1
+ import { encode as d } from "./index92.js";
2
+ import y from "./index93.js";
3
+ import b from "./index94.js";
4
+ import { JWSInvalid as r } from "./index72.js";
5
+ import { encoder as s, concat as u, decoder as h } from "./index84.js";
6
+ import g from "./index95.js";
7
+ import H from "./index96.js";
8
+ import P from "./index97.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
+ }
8
54
  }
9
55
  export {
10
- f as concat,
11
- s as decoder,
12
- d as encoder
56
+ x as FlattenedSign
13
57
  };
@@ -1,4 +1,13 @@
1
- const o = (e) => Math.floor(e.getTime() / 1e3);
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
+ }
2
9
  export {
3
- o as default
10
+ f as concat,
11
+ s as decoder,
12
+ d as encoder
4
13
  };
@@ -1,47 +1,4 @@
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
- };
1
+ const o = (e) => Math.floor(e.getTime() / 1e3);
45
2
  export {
46
- t as default
3
+ o as default
47
4
  };
@@ -1,16 +1,47 @@
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;
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;
13
44
  };
14
45
  export {
15
- r as default
46
+ t as default
16
47
  };
@@ -1,7 +1,16 @@
1
- const e = 32, s = 4096, t = 131072, l = 761855;
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
- t as bytesPerBlob,
4
- e as bytesPerFieldElement,
5
- s as fieldElementsPerBlob,
6
- l as maxBytesPerTransaction
15
+ r as default
7
16
  };
@@ -1,15 +1,7 @@
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"
11
- }
12
- };
1
+ const e = 32, s = 4096, t = 131072, l = 761855;
13
2
  export {
14
- s as contracts
3
+ t as bytesPerBlob,
4
+ e as bytesPerFieldElement,
5
+ s as fieldElementsPerBlob,
6
+ l as maxBytesPerTransaction
15
7
  };
@@ -1,38 +1,15 @@
1
- import { hexToBigInt as n } from "./index43.js";
2
- import { defineBlock as r } from "./index40.js";
3
- import { defineTransaction as s, formatTransaction as m } from "./index42.js";
4
- import { defineTransactionReceipt as l } from "./index45.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
+ 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"
11
+ }
35
12
  };
36
13
  export {
37
- p as formatters
14
+ s as contracts
38
15
  };
@@ -1,23 +1,18 @@
1
- async function a() {
2
- const e = await window.crypto.subtle.generateKey(
3
- {
4
- name: "RSA-OAEP",
5
- modulusLength: 4096,
6
- publicExponent: new Uint8Array([1, 0, 1]),
7
- // 65537
8
- hash: { name: "SHA-256" }
9
- },
10
- !0,
11
- // Allow key export for compatibility with Node version
12
- ["encrypt", "decrypt"]
13
- ), r = await window.crypto.subtle.exportKey("spki", e.publicKey), t = btoa(
14
- Array.from(new Uint8Array(r)).map((n) => String.fromCharCode(n)).join("")
15
- );
16
- return {
17
- privateKey: e.privateKey,
18
- publicKeyBase64: t
19
- };
1
+ import "@coinbase/cdp-api-client";
2
+ import "viem";
3
+ const o = async (t) => await t.isSignedIn();
4
+ async function w(t, n, e) {
5
+ if (!await o(n))
6
+ throw new Error("User not signed in");
7
+ const r = await n.getUser();
8
+ if ("evmAccount" in t && !r.evmAccounts?.find((c) => c === t.evmAccount))
9
+ throw new Error("EVM account not found");
10
+ if ("evmSmartAccount" in t && !r.evmSmartAccounts?.find((c) => c === t.evmSmartAccount))
11
+ throw new Error("EVM Smart Account not found");
12
+ const i = await n.getWalletSecretId();
13
+ return e({ ...t, user: r, walletSecretId: i });
20
14
  }
21
15
  export {
22
- a as createExportKeyPair
16
+ o as isSignedIn,
17
+ w as withAuth
23
18
  };
@@ -1,44 +1,38 @@
1
- import { InvalidAddressError as a } from "./index58.js";
2
- import { isAddress as f } from "./index32.js";
3
- import { concatHex as p } from "./index33.js";
4
- import { toHex as i } from "./index27.js";
5
- import { toRlp as x } from "./index46.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
+ 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
+ })
12
35
  };
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
36
  export {
41
- w as assertTransactionDeposit,
42
- T as serializeTransaction,
43
- E as serializers
37
+ p as formatters
44
38
  };
@@ -1,23 +1,44 @@
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.");
14
- }
1
+ import { InvalidAddressError as a } from "./index59.js";
2
+ import { isAddress as f } from "./index33.js";
3
+ import { concatHex as p } from "./index34.js";
4
+ import { toHex as i } from "./index28.js";
5
+ import { toRlp as x } from "./index47.js";
6
+ import { serializeTransaction as l } from "./index16.js";
7
+ function T(r, e) {
8
+ return h(r) ? z(r) : l(r, e);
15
9
  }
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, "_");
10
+ const E = {
11
+ transaction: T
12
+ };
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 });
19
39
  }
20
40
  export {
21
- i as decode,
22
- p as encode
41
+ w as assertTransactionDeposit,
42
+ T as serializeTransaction,
43
+ E as serializers
23
44
  };
@@ -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);
9
- };
1
+ import { encoder as t, decoder as o } from "./index84.js";
2
+ import { encodeBase64 as c, decodeBase64 as a } from "./index98.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 "./index99.js";
2
+ import s from "./index100.js";
3
+ import a from "./index101.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 "./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;
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
  };