@coinbase/cdp-react 0.0.75 → 0.0.77

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.
@@ -1,89 +1,52 @@
1
- import { jsx as p, jsxs as H } from "react/jsx-runtime";
2
- import { OAuth2ProviderType as S, CDPContext as U, CDPHooksProvider as _ } from "@coinbase/cdp-hooks";
3
- import { lazy as E, createContext as j, useContext as m, useMemo as L } from "react";
4
- import { ThemeProvider as F } from "../ThemeProvider/index.js";
5
- const k = E(() => import("../OAuthStatusModal/index.js")), I = (t) => {
1
+ import { jsx as c, jsxs as y } from "react/jsx-runtime";
2
+ import { OAuth2ProviderType as w, CDPContext as O, CDPHooksProvider as H } from "@coinbase/cdp-hooks";
3
+ import { lazy as N, createContext as T, useContext as m, useMemo as g } from "react";
4
+ import { ThemeProvider as b } from "../ThemeProvider/index.js";
5
+ const D = N(() => import("../OAuthStatusModal/index.js")), l = (o) => {
6
6
  try {
7
- return JSON.stringify(t);
7
+ return JSON.stringify(o);
8
8
  } catch {
9
9
  }
10
10
  return "";
11
- }, J = Object.keys(S).map((t) => `oauth:${t}`), V = [
11
+ }, S = Object.keys(w).map((o) => `oauth:${o}`), U = [
12
12
  /** Email OTP method */
13
13
  "email",
14
14
  /** SMS OTP method */
15
15
  "sms"
16
- ], G = [...V, ...J], K = ({
17
- children: t,
16
+ ], J = [...U, ...S], V = ({
17
+ children: o,
18
18
  className: r = "",
19
19
  config: n,
20
20
  name: s,
21
21
  style: a,
22
22
  theme: i
23
23
  }) => {
24
- const {
25
- appName: h,
26
- appLogoUrl: c,
27
- showCoinbaseFooter: u,
28
- authMethods: e,
29
- projectId: d,
30
- secureIframeBasePath: C,
31
- useMock: l,
32
- debugging: f,
33
- basePath: A,
34
- ethereum: y,
35
- solana: b,
36
- disableAnalytics: O,
37
- customAuth: P
38
- } = n, { createOnLogin: M } = y ?? {}, { createOnLogin: v } = b ?? {}, w = L(
39
- () => ({
40
- projectId: d,
41
- useMock: l,
42
- debugging: f,
43
- basePath: A,
44
- secureIframeBasePath: C,
45
- disableAnalytics: O,
46
- customAuth: P,
47
- ethereum: { createOnLogin: M },
48
- solana: { createOnLogin: v }
49
- }),
50
- [
51
- d,
52
- l,
53
- f,
54
- A,
55
- C,
56
- M,
57
- v,
58
- O,
59
- P
60
- ]
61
- ), N = { appName: h, appLogoUrl: c, showCoinbaseFooter: u, authMethods: e }, T = e?.some((D) => D.startsWith("oauth:")), x = /* @__PURE__ */ p(z, { name: s, config: N, children: /* @__PURE__ */ H(F, { className: r, style: a, theme: i, children: [
62
- t,
63
- T && /* @__PURE__ */ p(k, {})
24
+ const { appName: h, appLogoUrl: p, showCoinbaseFooter: u, authMethods: t, ...d } = n, A = l(d), M = g(() => d, [A]), P = { appName: h, appLogoUrl: p, showCoinbaseFooter: u, authMethods: t }, v = t?.some((x) => x.startsWith("oauth:")), f = /* @__PURE__ */ c(L, { name: s, config: P, children: /* @__PURE__ */ y(b, { className: r, style: a, theme: i, children: [
25
+ o,
26
+ v && /* @__PURE__ */ c(D, {})
64
27
  ] }) });
65
- return m(U) ? x : /* @__PURE__ */ p(_, { config: w, children: x });
66
- }, g = j(
28
+ return m(O) ? f : /* @__PURE__ */ c(H, { config: M, children: f });
29
+ }, C = T(
67
30
  void 0
68
- ), o = {
31
+ ), e = {
69
32
  appName: "",
70
33
  appLogoUrl: "",
71
34
  showCoinbaseFooter: !0,
72
35
  authMethods: ["email"]
73
- }, z = ({
74
- children: t,
36
+ }, L = ({
37
+ children: o,
75
38
  config: r,
76
39
  name: n
77
40
  }) => {
78
41
  const {
79
- appName: s = o.appName,
80
- appLogoUrl: a = o.appLogoUrl,
81
- showCoinbaseFooter: i = o.showCoinbaseFooter,
82
- authMethods: h = o.authMethods
83
- } = r ?? {}, c = I(h), u = L(() => {
84
- let e = ["email"];
42
+ appName: s = e.appName,
43
+ appLogoUrl: a = e.appLogoUrl,
44
+ showCoinbaseFooter: i = e.showCoinbaseFooter,
45
+ authMethods: h = e.authMethods
46
+ } = r ?? {}, p = l(h), u = g(() => {
47
+ let t = ["email"];
85
48
  try {
86
- e = JSON.parse(c);
49
+ t = JSON.parse(p);
87
50
  } catch {
88
51
  }
89
52
  return {
@@ -91,28 +54,28 @@ const k = E(() => import("../OAuthStatusModal/index.js")), I = (t) => {
91
54
  appName: s,
92
55
  appLogoUrl: a,
93
56
  showCoinbaseFooter: i,
94
- authMethods: Array.isArray(e) && e?.length ? e : o.authMethods
57
+ authMethods: Array.isArray(t) && t?.length ? t : e.authMethods
95
58
  },
96
59
  name: n
97
60
  };
98
- }, [s, a, i, c, n]);
99
- return /* @__PURE__ */ p(g.Provider, { value: u, children: t });
100
- }, Q = () => {
101
- const t = m(g);
102
- if (!t)
61
+ }, [s, a, i, p, n]);
62
+ return /* @__PURE__ */ c(C.Provider, { value: u, children: o });
63
+ }, z = () => {
64
+ const o = m(C);
65
+ if (!o)
103
66
  throw new Error("useAppConfig must be used within an AppConfigProvider");
104
- return t.app;
105
- }, X = () => {
106
- const t = m(g);
107
- if (!t)
67
+ return o.app;
68
+ }, K = () => {
69
+ const o = m(C);
70
+ if (!o)
108
71
  throw new Error("useProviderName must be used within an AppConfigProvider");
109
- return t.name ?? "";
72
+ return o.name ?? "";
110
73
  };
111
74
  export {
112
- G as ALL_AUTH_METHODS,
113
- V as AUTH_METHODS,
114
- K as CDPReactProvider,
115
- J as OAUTH_METHODS,
116
- Q as useAppConfig,
117
- X as useProviderName
75
+ J as ALL_AUTH_METHODS,
76
+ U as AUTH_METHODS,
77
+ V as CDPReactProvider,
78
+ S as OAUTH_METHODS,
79
+ z as useAppConfig,
80
+ K as useProviderName
118
81
  };
@@ -1,86 +1,88 @@
1
- import { jsxs as m, Fragment as a, jsx as o } from "react/jsx-runtime";
1
+ import { jsxs as a, Fragment as m, jsx as r } from "react/jsx-runtime";
2
2
  import { useIsSignedIn as L, useSignInWithEmail as j, useLinkEmail as k, useVerifyEmailOTP as H } from "@coinbase/cdp-hooks";
3
- import { useRef as g, useLayoutEffect as M } from "react";
3
+ import { useRef as S, useLayoutEffect as M } from "react";
4
4
  import { EmailForm as V } from "../../forms/EmailForm/index.js";
5
5
  import { OTPForm as q } from "../../forms/OTPForm/index.js";
6
6
  import { SwitchSlideTransition as z } from "../../ui/SwitchSlideTransition/index.js";
7
7
  import { useEmailForm as A } from "../hooks/useEmailForm.js";
8
8
  import { useOTPForm as B } from "../hooks/useOTPForm.js";
9
9
  import { SignInCredentials as G } from "../SignInCredentials.js";
10
- import { useSignInContext as S } from "../SignInProvider.js";
10
+ import { useSignInContext as E } from "../SignInProvider.js";
11
11
  import "../../CDPReactProvider/index.js";
12
12
  const J = ["email", "otp"], N = ({
13
13
  step: n,
14
- autoFocus: r,
15
- onSuccess: E,
14
+ autoFocus: s,
15
+ onSuccess: h,
16
16
  children: c
17
17
  }) => {
18
- const l = g(null), h = 6, { isSignedIn: P } = L(), { state: i } = S(), { signInWithEmail: T } = j(), { linkEmail: O } = k(), { verifyEmailOTP: I } = H(), u = n || i.step, t = u === "credentials" ? "email" : "otp", d = g(t), { setEmail: v, submitEmail: f } = A({
19
- submit: (e) => P ? O(e) : T({ email: e })
20
- }), { resendCountdown: b, resetOTP: R, setOTP: w, startResendTimer: F, submitOtp: W } = B({
21
- passwordLength: h,
22
- submit: (e) => I({ flowId: i.flowId, otp: e })
18
+ const l = S(null), P = 6, { isSignedIn: T } = L(), { state: t } = E(), { signInWithEmail: O } = j(), { linkEmail: I } = k(), { verifyEmailOTP: v } = H(), u = n || t.step, i = u === "credentials" ? "email" : "otp", d = S(i), { setEmail: b, submitEmail: f } = A({
19
+ submit: (e) => T ? I(e) : O({ email: e })
20
+ }), { resendCountdown: w, resetOTP: F, setOTP: R, startResendTimer: D, submitOtp: W } = B({
21
+ passwordLength: P,
22
+ submit: (e) => v({ flowId: t.flowId, otp: e })
23
23
  }), p = () => {
24
- F(60);
24
+ D(60);
25
25
  }, C = () => {
26
- R(), f({ email: i.email, onSuccess: p });
26
+ F(), f({ email: t.email, onSuccess: p });
27
27
  }, x = (e) => {
28
- e.preventDefault(), f({ email: i.email, onSuccess: p });
28
+ e.preventDefault(), f({ email: t.email, onSuccess: p });
29
29
  }, y = (e) => {
30
- e.preventDefault(), W({ otp: i.otp, onSuccess: E });
30
+ e.preventDefault();
31
+ const o = new FormData(e.currentTarget).get("otp") || t.otp;
32
+ W({ otp: o, onSuccess: h });
31
33
  };
32
34
  return M(() => {
33
- d.current !== t && (l.current?.transition.toggle(t), d.current = t);
34
- }, [t]), /* @__PURE__ */ o(
35
+ d.current !== i && (l.current?.transition.toggle(i), d.current = i);
36
+ }, [i]), /* @__PURE__ */ r(
35
37
  z,
36
38
  {
37
- autoFocus: r,
39
+ autoFocus: s,
38
40
  animateHeight: !1,
39
41
  items: J,
40
42
  initialEntered: !0,
41
- direction: t === "otp" ? "left" : "right",
43
+ direction: i === "otp" ? "left" : "right",
42
44
  transitionRef: l,
43
- children: ({ itemKey: e, ...D }) => {
44
- let s = null;
45
- return e === "email" && (s = /* @__PURE__ */ o(
45
+ children: ({ itemKey: e, ...g }) => {
46
+ let o = null;
47
+ return e === "email" && (o = /* @__PURE__ */ r(
46
48
  V,
47
49
  {
48
- email: i.email,
49
- error: t === "email" && i.error || "",
50
- isPending: i.isPending,
51
- onEmailChange: v,
50
+ email: t.email,
51
+ error: i === "email" && t.error || "",
52
+ isPending: t.isPending,
53
+ onEmailChange: b,
52
54
  onSubmit: x
53
55
  }
54
- )), e === "otp" && (s = /* @__PURE__ */ o(
56
+ )), e === "otp" && (o = /* @__PURE__ */ r(
55
57
  q,
56
58
  {
57
- canResetOTP: i.canResetOTP,
58
- error: t === "otp" && i.error || "",
59
- isPending: i.isPending,
60
- onOTPChange: w,
59
+ canResetOTP: t.canResetOTP,
60
+ error: i === "otp" && t.error || "",
61
+ isPending: t.isPending,
62
+ onOTPChange: R,
61
63
  onResendOTP: C,
62
64
  onSubmit: y,
63
- otp: i.otp,
64
- resendCountdown: b,
65
- successMessage: i.isSuccess ? "Success!" : void 0
65
+ otp: t.otp,
66
+ resendCountdown: w,
67
+ successMessage: t.isSuccess ? "Success!" : void 0
66
68
  }
67
- )), /* @__PURE__ */ o("div", { ...D, children: c ? c({ step: u, Form: s }) : s });
69
+ )), /* @__PURE__ */ r("div", { ...g, children: c ? c({ step: u, Form: o }) : o });
68
70
  }
69
71
  }
70
72
  );
71
- }, Q = ({ step: n }) => /* @__PURE__ */ m(a, { children: [
73
+ }, Q = ({ step: n }) => /* @__PURE__ */ a(m, { children: [
72
74
  n === "credentials" && "Sign in",
73
75
  n === "verification" && "Enter verification code"
74
76
  ] }), U = ({ step: n }) => {
75
- const { state: r } = S();
76
- return /* @__PURE__ */ m(a, { children: [
77
+ const { state: s } = E();
78
+ return /* @__PURE__ */ a(m, { children: [
77
79
  n === "credentials" && "We’ll send you a verification code via email.",
78
- n === "verification" && /* @__PURE__ */ m(a, { children: [
80
+ n === "verification" && /* @__PURE__ */ a(m, { children: [
79
81
  "Enter the 6 digit code sent to ",
80
- /* @__PURE__ */ o(G, { children: r.email })
82
+ /* @__PURE__ */ r(G, { children: s.email })
81
83
  ] })
82
84
  ] });
83
- }, si = {
85
+ }, rt = {
84
86
  description: U,
85
87
  forms: N,
86
88
  title: Q
@@ -89,5 +91,5 @@ export {
89
91
  N as SignInWithEmail,
90
92
  U as SignInWithEmailDescription,
91
93
  Q as SignInWithEmailTitle,
92
- si as config
94
+ rt as config
93
95
  };
@@ -1,7 +1,7 @@
1
- import { jsxs as h, Fragment as p, jsx as r } from "react/jsx-runtime";
1
+ import { jsxs as a, Fragment as p, jsx as s } from "react/jsx-runtime";
2
2
  import { useIsSignedIn as H, useSignInWithSms as U, useLinkSms as q, useVerifySmsOTP as z } from "@coinbase/cdp-hooks";
3
3
  import "libphonenumber-js";
4
- import { useRef as g, useState as N, useEffect as A, useLayoutEffect as B, useMemo as G } from "react";
4
+ import { useRef as N, useState as T, useEffect as A, useLayoutEffect as B, useMemo as G } from "react";
5
5
  import { OTPForm as J } from "../../forms/OTPForm/index.js";
6
6
  import { PhoneNumberForm as Q } from "../../forms/PhoneNumberForm/index.js";
7
7
  import { SwitchSlideTransition as X } from "../../ui/SwitchSlideTransition/index.js";
@@ -10,105 +10,107 @@ import { parseValuesFromPhoneNumber as Z } from "../../../utils/parseValuesFromP
10
10
  import { useOTPForm as _ } from "../hooks/useOTPForm.js";
11
11
  import { usePhoneNumberForm as $ } from "../hooks/usePhoneNumberForm.js";
12
12
  import { SignInCredentials as K } from "../SignInCredentials.js";
13
- import { useSignInContext as T } from "../SignInProvider.js";
13
+ import { useSignInContext as O } from "../SignInProvider.js";
14
14
  import "../../CDPReactProvider/index.js";
15
- const ee = ["phoneNumber", "otp"], ne = ({
15
+ const ee = ["phoneNumber", "otp"], te = ({
16
16
  step: o,
17
- autoFocus: s,
18
- onSuccess: i,
19
- children: a
17
+ autoFocus: i,
18
+ onSuccess: m,
19
+ children: h
20
20
  }) => {
21
- const d = g(null), O = 6, { isSignedIn: v } = H(), { state: n } = T(), { signInWithSms: C } = U(), { linkSms: I } = q(), { verifySmsOTP: y } = z(), [c, F] = N("US"), [m, f] = N({
21
+ const d = N(null), v = 6, { isSignedIn: C } = H(), { state: t } = O(), { signInWithSms: I } = U(), { linkSms: F } = q(), { verifySmsOTP: y } = z(), [c, w] = T("US"), [u, f] = T({
22
22
  value: "",
23
23
  e164: ""
24
- }), l = o || n.step, t = l === "credentials" ? "phoneNumber" : "otp", b = g(t), { setPhoneNumber: R, submitPhoneNumber: S } = $({
25
- submit: (e) => v ? I(e) : C({ phoneNumber: e })
26
- }), { resendCountdown: w, resetOTP: E, setOTP: W, startResendTimer: x, submitOtp: j } = _({
27
- passwordLength: O,
28
- submit: (e) => y({ flowId: n.flowId, otp: e })
29
- }), D = (e) => {
30
- e.value !== m.value && (f(e), R(e.e164));
24
+ }), l = o || t.step, n = l === "credentials" ? "phoneNumber" : "otp", b = N(n), { setPhoneNumber: R, submitPhoneNumber: S } = $({
25
+ submit: (e) => C ? F(e) : I({ phoneNumber: e })
26
+ }), { resendCountdown: D, resetOTP: E, setOTP: W, startResendTimer: x, submitOtp: j } = _({
27
+ passwordLength: v,
28
+ submit: (e) => y({ flowId: t.flowId, otp: e })
29
+ }), L = (e) => {
30
+ e.value !== u.value && (f(e), R(e.e164));
31
31
  };
32
32
  A(() => {
33
- if (n.phoneNumber === m.e164)
33
+ if (t.phoneNumber === u.e164)
34
34
  return;
35
- const e = Z(n.phoneNumber, c);
35
+ const e = Z(t.phoneNumber, c);
36
36
  f(e);
37
- }, [n.phoneNumber, c, m.e164]);
38
- const P = () => {
37
+ }, [t.phoneNumber, c, u.e164]);
38
+ const g = () => {
39
39
  x(60);
40
- }, L = () => {
41
- E(), S({ phoneNumber: n.phoneNumber, onSuccess: P });
42
- }, k = (e) => {
43
- e.preventDefault(), S({ phoneNumber: n.phoneNumber, onSuccess: P });
40
+ }, k = () => {
41
+ E(), S({ phoneNumber: t.phoneNumber, onSuccess: g });
44
42
  }, M = (e) => {
45
- e.preventDefault(), j({ otp: n.otp, onSuccess: i });
43
+ e.preventDefault(), S({ phoneNumber: t.phoneNumber, onSuccess: g });
44
+ }, V = (e) => {
45
+ e.preventDefault();
46
+ const r = new FormData(e.currentTarget).get("otp") || t.otp;
47
+ j({ otp: r, onSuccess: m });
46
48
  };
47
49
  return B(() => {
48
- b.current !== t && (d.current?.transition.toggle(t), b.current = t);
49
- }, [t]), /* @__PURE__ */ r(
50
+ b.current !== n && (d.current?.transition.toggle(n), b.current = n);
51
+ }, [n]), /* @__PURE__ */ s(
50
52
  X,
51
53
  {
52
- autoFocus: s ? "input[type='tel']" : !1,
54
+ autoFocus: i ? "input[type='tel']" : !1,
53
55
  animateHeight: !1,
54
56
  items: ee,
55
57
  initialEntered: !0,
56
- direction: t === "otp" ? "left" : "right",
58
+ direction: n === "otp" ? "left" : "right",
57
59
  transitionRef: d,
58
- children: ({ itemKey: e, ...V }) => {
59
- let u = null;
60
- return e === "phoneNumber" && (u = /* @__PURE__ */ r(
60
+ children: ({ itemKey: e, ...P }) => {
61
+ let r = null;
62
+ return e === "phoneNumber" && (r = /* @__PURE__ */ s(
61
63
  Q,
62
64
  {
63
65
  countryCode: c,
64
- error: t === "phoneNumber" && n.error || "",
65
- isPending: n.isPending,
66
- onCountryCodeChange: F,
67
- onPhoneNumberChange: D,
68
- onSubmit: k,
69
- phoneNumber: m
66
+ error: n === "phoneNumber" && t.error || "",
67
+ isPending: t.isPending,
68
+ onCountryCodeChange: w,
69
+ onPhoneNumberChange: L,
70
+ onSubmit: M,
71
+ phoneNumber: u
70
72
  }
71
- )), e === "otp" && (u = /* @__PURE__ */ r(
73
+ )), e === "otp" && (r = /* @__PURE__ */ s(
72
74
  J,
73
75
  {
74
- canResetOTP: n.canResetOTP,
75
- error: t === "otp" && n.error || "",
76
- isPending: n.isPending,
76
+ canResetOTP: t.canResetOTP,
77
+ error: n === "otp" && t.error || "",
78
+ isPending: t.isPending,
77
79
  onOTPChange: W,
78
- onResendOTP: L,
79
- onSubmit: M,
80
- otp: n.otp,
81
- resendCountdown: w,
82
- successMessage: n.isSuccess ? "Success!" : void 0
80
+ onResendOTP: k,
81
+ onSubmit: V,
82
+ otp: t.otp,
83
+ resendCountdown: D,
84
+ successMessage: t.isSuccess ? "Success!" : void 0
83
85
  }
84
- )), /* @__PURE__ */ r("div", { ...V, children: a ? a({ step: l, Form: u }) : u });
86
+ )), /* @__PURE__ */ s("div", { ...P, children: h ? h({ step: l, Form: r }) : r });
85
87
  }
86
88
  }
87
89
  );
88
- }, te = ({ step: o }) => /* @__PURE__ */ h(p, { children: [
90
+ }, ne = ({ step: o }) => /* @__PURE__ */ a(p, { children: [
89
91
  o === "credentials" && "Sign in",
90
92
  o === "verification" && "Enter verification code"
91
93
  ] }), oe = ({ step: o }) => {
92
- const { state: s } = T(), i = G(
93
- () => Y(s.phoneNumber),
94
- [s.phoneNumber]
94
+ const { state: i } = O(), m = G(
95
+ () => Y(i.phoneNumber),
96
+ [i.phoneNumber]
95
97
  );
96
- return /* @__PURE__ */ h(p, { children: [
98
+ return /* @__PURE__ */ a(p, { children: [
97
99
  o === "credentials" && "We’ll send you a verification code via text.",
98
- o === "verification" && /* @__PURE__ */ h(p, { children: [
100
+ o === "verification" && /* @__PURE__ */ a(p, { children: [
99
101
  "Enter the 6 digit code sent to",
100
102
  " ",
101
- i ? /* @__PURE__ */ r(K, { children: i }) : "your phone number"
103
+ m ? /* @__PURE__ */ s(K, { children: m }) : "your phone number"
102
104
  ] })
103
105
  ] });
104
- }, Pe = {
106
+ }, ge = {
105
107
  description: oe,
106
- forms: ne,
107
- title: te
108
+ forms: te,
109
+ title: ne
108
110
  };
109
111
  export {
110
- ne as SignInWithSms,
112
+ te as SignInWithSms,
111
113
  oe as SignInWithSmsDescription,
112
- te as SignInWithSmsTitle,
113
- Pe as config
114
+ ne as SignInWithSmsTitle,
115
+ ge as config
114
116
  };
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "0.0.75";
1
+ export declare const VERSION = "0.0.77";
package/dist/version.js CHANGED
@@ -1,4 +1,4 @@
1
- const o = "0.0.75";
1
+ const o = "0.0.77";
2
2
  export {
3
3
  o as VERSION
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinbase/cdp-react",
3
- "version": "0.0.75",
3
+ "version": "0.0.77",
4
4
  "type": "module",
5
5
  "dependencies": {
6
6
  "@internationalized/number": "3.6.4",
@@ -15,8 +15,8 @@
15
15
  },
16
16
  "peerDependencies": {
17
17
  "react": ">=18.2.0 <19.2.0",
18
- "@coinbase/cdp-core": "^0.0.75",
19
- "@coinbase/cdp-hooks": "^0.0.75"
18
+ "@coinbase/cdp-core": "^0.0.77",
19
+ "@coinbase/cdp-hooks": "^0.0.77"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@size-limit/preset-big-lib": "^11.2.0",
@@ -47,8 +47,8 @@
47
47
  "vite": "^7.0.4",
48
48
  "vite-plugin-dts": "^4.5.4",
49
49
  "vite-plugin-lib-inject-css": "^2.2.2",
50
- "@coinbase/cdp-core": "^0.0.75",
51
- "@coinbase/cdp-hooks": "^0.0.75"
50
+ "@coinbase/cdp-core": "^0.0.77",
51
+ "@coinbase/cdp-hooks": "^0.0.77"
52
52
  },
53
53
  "size-limit": [
54
54
  {