@arcblock/did-connect-react 3.2.19 → 3.3.1

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 (54) hide show
  1. package/docs/assets/diagram/core-components-session-provider-01.ja.jpg +0 -0
  2. package/docs/assets/diagram/core-components-session-provider-01.jpg +0 -0
  3. package/docs/assets/diagram/core-components-session-provider-01.zh-TW.jpg +0 -0
  4. package/docs/assets/diagram/core-components-session-provider-01.zh.jpg +0 -0
  5. package/docs/assets/diagram/did-connect-diagram-0.ja.jpg +0 -0
  6. package/docs/assets/diagram/did-connect-diagram-0.jpg +0 -0
  7. package/docs/assets/diagram/did-connect-diagram-0.zh-TW.jpg +0 -0
  8. package/docs/assets/diagram/did-connect-diagram-0.zh.jpg +0 -0
  9. package/docs/assets/diagram/overview-01.ja.jpg +0 -0
  10. package/docs/assets/diagram/overview-01.jpg +0 -0
  11. package/docs/assets/diagram/overview-01.zh-TW.jpg +0 -0
  12. package/docs/assets/diagram/overview-01.zh.jpg +0 -0
  13. package/docs/assets/diagram/use-connect-diagram-0.ja.jpg +0 -0
  14. package/docs/assets/diagram/use-connect-diagram-0.jpg +0 -0
  15. package/docs/assets/diagram/use-connect-diagram-0.zh-TW.jpg +0 -0
  16. package/docs/assets/diagram/use-connect-diagram-0.zh.jpg +0 -0
  17. package/docs/core-components-did-connect.ja.md +3 -50
  18. package/docs/core-components-did-connect.md +5 -52
  19. package/docs/core-components-did-connect.zh-TW.md +3 -50
  20. package/docs/core-components-did-connect.zh.md +3 -50
  21. package/docs/core-components-session-provider.ja.md +3 -45
  22. package/docs/core-components-session-provider.md +3 -45
  23. package/docs/core-components-session-provider.zh-TW.md +3 -45
  24. package/docs/core-components-session-provider.zh.md +3 -45
  25. package/docs/hooks-use-connect.ja.md +3 -39
  26. package/docs/hooks-use-connect.md +4 -40
  27. package/docs/hooks-use-connect.zh-TW.md +3 -39
  28. package/docs/hooks-use-connect.zh.md +3 -39
  29. package/docs/overview.ja.md +3 -45
  30. package/docs/overview.md +3 -45
  31. package/docs/overview.zh-TW.md +3 -45
  32. package/docs/overview.zh.md +3 -45
  33. package/lib/Connect/assets/locale.js +4 -2
  34. package/lib/Connect/components/login-item/connect-choose-list.js +2 -2
  35. package/lib/Connect/components/login-item/connect-provider-list.js +299 -0
  36. package/lib/Connect/components/login-item/login-method-item.js +42 -41
  37. package/lib/Connect/hooks/provider-list.js +50 -0
  38. package/lib/Connect/index.js +180 -196
  39. package/lib/OAuth/context.js +33 -32
  40. package/lib/Passkey/context.js +64 -63
  41. package/lib/Session/hooks/use-verify.js +1 -1
  42. package/lib/Session/libs/locales.js +3 -3
  43. package/lib/package.json.js +1 -1
  44. package/package.json +9 -9
  45. package/src/Connect/assets/locale.js +2 -0
  46. package/src/Connect/components/login-item/connect-choose-list.jsx +5 -5
  47. package/src/Connect/components/login-item/connect-provider-list.jsx +392 -0
  48. package/src/Connect/components/login-item/login-method-item.jsx +31 -28
  49. package/src/Connect/hooks/provider-list.js +127 -0
  50. package/src/Connect/index.jsx +8 -27
  51. package/src/OAuth/context.jsx +10 -2
  52. package/src/Passkey/context.jsx +3 -0
  53. package/src/Session/hooks/use-verify.jsx +1 -1
  54. package/src/Session/libs/locales.js +3 -3
@@ -9,13 +9,13 @@ import B from "lodash/omit";
9
9
  import { joinURL as re } from "ufo";
10
10
  import { translate as ne } from "@arcblock/ux/lib/Locale/util";
11
11
  import ie from "@arcblock/ux/lib/Dialog/use-confirm";
12
- import { getBlockletData as S, getFederatedEnabled as C, getMaster as R } from "@arcblock/ux/lib/Util/federated";
12
+ import { getBlockletData as S, getFederatedEnabled as C, getMaster as k } from "@arcblock/ux/lib/Util/federated";
13
13
  import { BLOCKLET_SERVICE_PATH_PREFIX as F, LOGIN_PROVIDER_NAME as f } from "@arcblock/ux/lib/Util/constant";
14
14
  import { createAxios as se, openPopup as ae, runPopup as de, sleep as ce, getApiErrorMessage as m } from "../utils.js";
15
15
  import { parseResponse as ue, PassportSwitcher as le } from "../components/PassportSwitcher.js";
16
16
  import pe from "../Session/hooks/use-mobile.js";
17
17
  import he from "./bind-conflict-alert.js";
18
- const D = Z({}), { Provider: fe, Consumer: Te } = D, k = `${F}/api/oauth`, be = {
18
+ const D = Z({}), { Provider: fe, Consumer: Te } = D, R = `${F}/api/oauth`, be = {
19
19
  zh: {
20
20
  bindOAuth: "绑定第三方登录",
21
21
  bind: "绑定",
@@ -57,7 +57,7 @@ function Ae({
57
57
  onSwitchPassport: I = O,
58
58
  session: Y = null
59
59
  }) {
60
- const x = pe(), { confirmApi: M, confirmHolder: N } = ie({
60
+ const x = pe(), { confirmApi: M, confirmHolder: j } = ie({
61
61
  maxWidth: !1,
62
62
  PaperProps: {
63
63
  style: {
@@ -88,10 +88,10 @@ function Ae({
88
88
  reset({ status: t = "" } = {}) {
89
89
  b.loading = !!t, b.checking = !1, b.error = "", b.status = t;
90
90
  }
91
- }), i = u((t, e = {}) => ne(be, t, p, "en", e)), j = te(() => se({
91
+ }), d = u((t, e = {}) => ne(be, t, p, "en", e)), N = te(() => se({
92
92
  // NOTICE: 请求必须向当前站点发起
93
- baseURL: k
94
- }), [r.baseUrl, k]), A = oe(j), P = u(async () => {
93
+ baseURL: R
94
+ }), [r.baseUrl, R]), A = oe(N), P = u(async () => {
95
95
  if (r.baseUrl === "/")
96
96
  return window.blocklet;
97
97
  try {
@@ -101,11 +101,12 @@ function Ae({
101
101
  }
102
102
  return await S(r.baseUrl);
103
103
  }), U = u(async ({ sourceAppPid: t } = {}) => {
104
- const e = await P(), o = C(e), n = R(e);
105
- return o && n?.appPid && t === n?.appPid ? (await S(n.appUrl))?.settings?.oauth || {} : e?.settings?.oauth || {};
104
+ const e = await P(), o = C(e), n = k(e);
105
+ let i = {};
106
+ return o && n?.appPid && t === n?.appPid ? i = (await S(n.appUrl))?.settings?.authentication || {} : i = e?.settings?.authentication || {}, Object.keys(i).reduce((a, s) => (i[s]?.type === "oauth" && (a[s] = i[s]), a), {});
106
107
  }), X = u(async ({ sourceAppPid: t } = {}) => {
107
108
  const e = await U({ sourceAppPid: t });
108
- return Object.entries(e).map(([n, a]) => ({ ...a, provider: n })).filter((n) => n.enabled).sort((n, a) => n?.order !== void 0 && a?.order !== void 0 ? n.order - a.order : n?.order !== void 0 ? -1 : 1);
109
+ return Object.entries(e).map(([n, i]) => ({ ...i, provider: n })).filter((n) => n.enabled).sort((n, i) => n?.order !== void 0 && i?.order !== void 0 ? n.order - i.order : n?.order !== void 0 ? -1 : 1);
109
110
  }), L = u(async ({ provider: t } = {}) => {
110
111
  const e = ae(re(r.baseUrl, F, "/oauth/login", t), {
111
112
  name: "oauth-login:popup",
@@ -120,7 +121,7 @@ function Ae({
120
121
  });
121
122
  return o?.response ? o.response?.code : null;
122
123
  } catch (o) {
123
- throw o?.message === "Popup closed" ? new Error(i("cancelAuth")) : o;
124
+ throw o?.message === "Popup closed" ? new Error(d("cancelAuth")) : o;
124
125
  }
125
126
  }), q = async ({ session: t, oauthItem: e } = {}) => {
126
127
  r.bindFnSession = t, r.bindAuthLoading = !0;
@@ -131,24 +132,24 @@ function Ae({
131
132
  provider: e.provider,
132
133
  code: o,
133
134
  sourceAppPid: n
134
- }), l.success(i("bindOAuthSucceed", { provider: f[e.provider] })), T(e);
135
+ }), l.success(d("bindOAuthSucceed", { provider: f[e.provider] })), T(e);
135
136
  } catch (o) {
136
137
  if (o.response?.status === 409) {
137
- const { data: a = {} } = o.response || {}, { code: d } = a || {};
138
- ["ALREADY_EXIST", "ALREADY_BIND"].includes(d) ? M.open({
139
- title: i(d, { provider: e.provider }),
138
+ const { data: i = {} } = o.response || {}, { code: a } = i || {};
139
+ ["ALREADY_EXIST", "ALREADY_BIND"].includes(a) ? M.open({
140
+ title: d(a, { provider: e.provider }),
140
141
  showCancelButton: !1,
141
- confirmButtonText: i("confirm"),
142
- content: /* @__PURE__ */ E(he, { data: a }),
142
+ confirmButtonText: d("confirm"),
143
+ content: /* @__PURE__ */ E(he, { data: i }),
143
144
  onConfirm(s) {
144
145
  s();
145
146
  }
146
147
  }) : l.error(
147
- m(o, i("bindOAuthFailed", { provider: f[e.provider] }))
148
+ m(o, d("bindOAuthFailed", { provider: f[e.provider] }))
148
149
  );
149
150
  } else
150
151
  l.error(
151
- m(o, i("bindOAuthFailed", { provider: f[e.provider] }))
152
+ m(o, d("bindOAuthFailed", { provider: f[e.provider] }))
152
153
  );
153
154
  } finally {
154
155
  r.bindAuthLoading = !1;
@@ -162,7 +163,7 @@ function Ae({
162
163
  connectedAccount: B(e, ["showProvider"]),
163
164
  sourceAppPid: o
164
165
  }), l.success(
165
- i("unbindOAuthSucceed", {
166
+ d("unbindOAuthSucceed", {
166
167
  provider: f[e.showProvider || e.provider]
167
168
  })
168
169
  ), _(e);
@@ -170,7 +171,7 @@ function Ae({
170
171
  l.error(
171
172
  m(
172
173
  o,
173
- i("unbindOAuthFailed", {
174
+ d("unbindOAuthFailed", {
174
175
  provider: f[e.showProvider || e.provider]
175
176
  })
176
177
  )
@@ -181,9 +182,9 @@ function Ae({
181
182
  }, z = async (t = {}) => {
182
183
  try {
183
184
  const { data: e } = await A.current.get("/passports");
184
- e.length > 0 ? (c.open = !0, c.currentUser = t, c.passports = e || []) : l.error(i("noPassports"));
185
+ e.length > 0 ? (c.open = !0, c.currentUser = t, c.passports = e || []) : l.error(d("noPassports"));
185
186
  } catch (e) {
186
- l.error(e.message || i("getPassportFailed"));
187
+ l.error(e.message || d("getPassportFailed"));
187
188
  }
188
189
  }, H = u((...t) => {
189
190
  c.reset(), I(...t);
@@ -194,28 +195,28 @@ function Ae({
194
195
  if (o?.sourceAppPid === window.blocklet?.appPid)
195
196
  r.baseUrl = window.blocklet?.appUrl || "/";
196
197
  else if (o?.sourceAppPid) {
197
- const d = await P(), s = C(d), g = R(d);
198
+ const a = await P(), s = C(a), g = k(a);
198
199
  s && g?.appPid && o?.sourceAppPid === g?.appPid && (r.baseUrl = g.appUrl);
199
200
  }
200
- const a = window?.blocklet?.componentId;
201
+ const i = window?.blocklet?.componentId;
201
202
  try {
202
- const d = await L({ provider: t });
203
- if (r.baseUrl = n, await ce(100), d) {
203
+ const a = await L({ provider: t });
204
+ if (r.baseUrl = n, await ce(100), a) {
204
205
  const s = {
205
206
  ...o,
206
207
  action: e,
207
208
  locale: p,
208
- code: d,
209
+ code: a,
209
210
  provider: t,
210
- componentId: a
211
+ componentId: i
211
212
  };
212
213
  Q(s.inviter) && window.localStorage.getItem("inviter") && (s.inviter = window.localStorage.getItem("inviter"));
213
214
  const g = ["connect-to-did-space", "connect-to-did-domain"].includes(s.action) ? "login" : s.action, { data: $ } = await A.current.post("/login", { ...s, action: g }), y = ue($);
214
215
  return y.provider = t, y;
215
216
  }
216
217
  return r.baseUrl = n, null;
217
- } catch (d) {
218
- const s = m(d, i("loginOAuthFailed", { provider: f[t] }));
218
+ } catch (a) {
219
+ const s = m(a, d("loginOAuthFailed", { provider: f[t] }));
219
220
  throw r.baseUrl = n, new Error(s);
220
221
  }
221
222
  }), K = u(() => {
@@ -237,11 +238,11 @@ function Ae({
237
238
  oauthState: b,
238
239
  unbindAuthLoading: r.unbindAuthLoading,
239
240
  bindAuthLoading: r.bindAuthLoading,
240
- t: i
241
+ t: d
241
242
  },
242
243
  children: [
243
244
  w,
244
- N,
245
+ j,
245
246
  /* @__PURE__ */ E(
246
247
  le,
247
248
  {
@@ -12,7 +12,7 @@ import { getBlockletData as H, getFederatedEnabled as X, getMaster as Q } from "
12
12
  import { startRegistration as Y, startAuthentication as Z } from "@simplewebauthn/browser";
13
13
  import { createAxios as $, getWebAuthnErrorMessage as h, logger as U, getApiErrorMessage as A } from "../utils.js";
14
14
  import { parseResponse as ee, PassportSwitcher as se } from "../components/PassportSwitcher.js";
15
- const F = J({}), { Provider: te, Consumer: he } = F, ae = {
15
+ const F = J({}), { Provider: te, Consumer: he } = F, re = {
16
16
  zh: {
17
17
  cancel: "取消",
18
18
  usePasskey: "使用 Passkey",
@@ -76,7 +76,7 @@ const F = J({}), { Provider: te, Consumer: he } = F, ae = {
76
76
  }
77
77
  }
78
78
  };
79
- function re({
79
+ function ae({
80
80
  children: m,
81
81
  locale: l = "en",
82
82
  onAddPasskey: E = w,
@@ -84,7 +84,7 @@ function re({
84
84
  onSwitchPassport: I = w,
85
85
  session: R = null
86
86
  }) {
87
- const v = S(window.env?.apiPrefix || G, "/api/passkey"), t = g({
87
+ const v = S(window.env?.apiPrefix || G, "/api/passkey"), r = g({
88
88
  baseUrl: "/",
89
89
  session: void 0,
90
90
  connecting: !1,
@@ -117,52 +117,52 @@ function re({
117
117
  reset() {
118
118
  d.creating = !1, d.verifying = !1, d.creatingStatus = "", d.verifyingStatus = "", d.error = "";
119
119
  }
120
- }), n = i((s, e = {}) => q(ae, s, l, "en", e)), c = W(() => $({ baseURL: S(t.baseUrl, v), sessionTokenKey: "__sst", timeout: 60 * 1e3 }), [t.baseUrl, v]), x = i(async () => {
121
- if (t.baseUrl === "/")
120
+ }), n = i((t, e = {}) => q(re, t, l, "en", e)), c = W(() => $({ baseURL: S(r.baseUrl, v), sessionTokenKey: "__sst", timeout: 60 * 1e3 }), [r.baseUrl, v]), x = i(async () => {
121
+ if (r.baseUrl === "/")
122
122
  return window.blocklet;
123
123
  try {
124
- if (new URL(t.baseUrl).host === window.location.host)
124
+ if (new URL(r.baseUrl).host === window.location.host)
125
125
  return window.blocklet;
126
126
  } catch {
127
127
  }
128
- return await H(t.baseUrl);
129
- }), P = window?.blocklet?.componentId, B = (s) => {
130
- t.baseUrl = s || "/";
131
- }, T = (s) => {
132
- t.targetAppPid = s;
133
- }, b = i(async (s) => {
134
- const { data: e } = await c.get("/register", { params: s });
128
+ return await H(r.baseUrl);
129
+ }), P = window?.blocklet?.componentId, B = (t) => {
130
+ r.baseUrl = t || "/";
131
+ }, T = (t) => {
132
+ r.targetAppPid = t;
133
+ }, b = i(async (t) => {
134
+ const { data: e } = await c.get("/register", { params: t });
135
135
  console.warn("passkey.create.options", e);
136
136
  try {
137
- const a = await Y({ optionsJSON: e, useAutoRegister: !1 });
138
- console.warn("passkey.create.response", a);
139
- const { data: r } = await c.post("/register", a, { params: { challenge: e.challenge } });
140
- if (console.warn("passkey.create.result", r), !r.verified)
137
+ const s = await Y({ optionsJSON: e, useAutoRegister: !1 });
138
+ console.warn("passkey.create.response", s);
139
+ const { data: a } = await c.post("/register", s, { params: { challenge: e.challenge } });
140
+ if (console.warn("passkey.create.result", a), !a.verified)
141
141
  throw new Error(n("createPasskeyFailed"));
142
- return r;
143
- } catch (a) {
144
- throw a.name ? new Error(h(a, n("createPasskeyFailed"), n)) : a;
142
+ return a;
143
+ } catch (s) {
144
+ throw console.error("passkey.create.error", s), s.name ? new Error(h(s, n("createPasskeyFailed"), n)) : s;
145
145
  }
146
- }), k = i(async (s) => {
147
- const { data: e } = await c.get("/auth", { params: s });
146
+ }), k = i(async (t) => {
147
+ const { data: e } = await c.get("/auth", { params: t });
148
148
  console.warn("passkey.auth.options", e);
149
149
  try {
150
- const a = await Z({ optionsJSON: e });
151
- console.warn("passkey.auth.response", a);
152
- const { data: r } = await c.post("/auth", a, {
153
- params: { challenge: e.challenge, targetAppPid: t.targetAppPid }
150
+ const s = await Z({ optionsJSON: e });
151
+ console.warn("passkey.auth.response", s);
152
+ const { data: a } = await c.post("/auth", s, {
153
+ params: { challenge: e.challenge, targetAppPid: r.targetAppPid }
154
154
  });
155
- if (console.warn("passkey.auth.result", r), !r.verified)
155
+ if (console.warn("passkey.auth.result", a), !a.verified)
156
156
  throw new Error(n("verifyPasskeyFailed"));
157
- return r;
158
- } catch (a) {
159
- throw a.name ? new Error(h(a, n("verifyPasskeyFailed"), n)) : a;
157
+ return a;
158
+ } catch (s) {
159
+ throw console.error("passkey.auth.error", s), s.name ? new Error(h(s, n("verifyPasskeyFailed"), n)) : s;
160
160
  }
161
- }), M = async (s) => {
162
- t.connecting = !0;
161
+ }), M = async (t) => {
162
+ r.connecting = !0;
163
163
  try {
164
164
  const e = await b({
165
- ...s,
165
+ ...t,
166
166
  locale: l,
167
167
  componentId: P
168
168
  });
@@ -170,54 +170,55 @@ function re({
170
170
  } catch (e) {
171
171
  U.error("Failed to connect passkey", e), u.error(A(e, n("connectPasskeyFailed")));
172
172
  } finally {
173
- t.connecting = !1;
173
+ r.connecting = !1;
174
174
  }
175
- }, D = async ({ session: s, connectedAccount: e }) => {
176
- t.session = s, t.disconnecting = !0;
175
+ }, D = async ({ session: t, connectedAccount: e }) => {
176
+ r.session = t, r.disconnecting = !0;
177
177
  try {
178
- const a = await k({
178
+ const s = await k({
179
179
  action: "disconnect",
180
180
  locale: l,
181
181
  componentId: P,
182
- sourceAppPid: s?.user?.sourceAppPid,
182
+ sourceAppPid: t?.user?.sourceAppPid,
183
183
  credentialId: e.id
184
184
  });
185
- u.success(n("disconnectPasskeySucceed")), C(a);
186
- } catch (a) {
187
- U.error("Failed to disconnect passkey", a), u.error(A(a, n("disconnectPasskeyFailed")));
185
+ u.success(n("disconnectPasskeySucceed")), C(s);
186
+ } catch (s) {
187
+ U.error("Failed to disconnect passkey", s), u.error(A(s, n("disconnectPasskeyFailed")));
188
188
  } finally {
189
- t.disconnecting = !1;
189
+ r.disconnecting = !1;
190
190
  }
191
- }, N = async (s = {}) => {
191
+ }, N = async (t = {}) => {
192
192
  try {
193
193
  const { data: e } = await c.get("/passports");
194
- e.length ? (o.open = !0, o.currentUser = s, o.passports = e || []) : u.error(n("noPassports"));
194
+ e.length ? (o.open = !0, o.currentUser = t, o.passports = e || []) : u.error(n("noPassports"));
195
195
  } catch (e) {
196
196
  u.error(e.message || n("getPassportFailed"));
197
197
  }
198
- }, j = i((...s) => {
199
- o.reset(), I(...s);
200
- }), L = i(async ({ action: s = "login", ...e } = {}) => {
201
- const a = t.baseUrl;
198
+ }, j = i((...t) => {
199
+ o.reset(), I(...t);
200
+ }), L = i(async ({ action: t = "login", ...e } = {}) => {
201
+ const s = r.baseUrl;
202
202
  if (e?.sourceAppPid === window.blocklet?.appPid)
203
- t.baseUrl = window.blocklet?.appUrl || "/";
203
+ r.baseUrl = window.blocklet?.appUrl || "/";
204
204
  else if (e?.sourceAppPid) {
205
- const r = await x(), y = X(r), f = Q(r);
206
- y && f?.appPid && e?.sourceAppPid === f?.appPid && (t.baseUrl = f.appUrl);
205
+ const a = await x(), y = X(a), f = Q(a);
206
+ y && f?.appPid && e?.sourceAppPid === f?.appPid && (r.baseUrl = f.appUrl);
207
207
  }
208
208
  try {
209
- const r = {
209
+ const a = {
210
210
  ...e,
211
- action: s,
211
+ action: t,
212
212
  locale: l,
213
213
  componentId: P
214
214
  };
215
- z(r.inviter) && window.localStorage.getItem("inviter") && (r.inviter = window.localStorage.getItem("inviter"));
216
- const y = ee(await k(r));
215
+ z(a.inviter) && window.localStorage.getItem("inviter") && (a.inviter = window.localStorage.getItem("inviter"));
216
+ const y = ee(await k(a));
217
217
  return y.provider = "passkey", y;
218
- } catch (r) {
219
- const y = h(r, n("verifyPasskeyFailed"), n);
220
- throw t.baseUrl = a, new Error(y);
218
+ } catch (a) {
219
+ console.error("passkey.login.error", a);
220
+ const y = h(a, n("verifyPasskeyFailed"), n);
221
+ throw r.baseUrl = s, new Error(y);
221
222
  }
222
223
  }), _ = i(() => {
223
224
  });
@@ -234,12 +235,12 @@ function re({
234
235
  loginPasskey: L,
235
236
  logoutPasskey: _,
236
237
  switchPassport: N,
237
- baseUrl: t.baseUrl,
238
+ baseUrl: r.baseUrl,
238
239
  setBaseUrl: B,
239
240
  setTargetAppPid: T,
240
241
  passkeyState: d,
241
- disconnecting: t.disconnecting,
242
- connecting: t.connecting,
242
+ disconnecting: r.disconnecting,
243
+ connecting: r.connecting,
243
244
  t: n
244
245
  },
245
246
  children: [
@@ -261,7 +262,7 @@ function re({
261
262
  function me() {
262
263
  return K(F);
263
264
  }
264
- re.propTypes = {
265
+ ae.propTypes = {
265
266
  children: p.node.isRequired,
266
267
  locale: p.string,
267
268
  onAddPasskey: p.func,
@@ -272,6 +273,6 @@ re.propTypes = {
272
273
  export {
273
274
  he as PasskeyConsumer,
274
275
  F as PasskeyContext,
275
- re as PasskeyProvider,
276
+ ae as PasskeyProvider,
276
277
  me as usePasskey
277
278
  };
@@ -1,5 +1,5 @@
1
1
  import { translate as I } from "@arcblock/ux/lib/Locale/util";
2
- import { LOGIN_PROVIDER as n } from "@blocklet/constant";
2
+ import { LOGIN_PROVIDER as n } from "@arcblock/ux/lib/Util/constant";
3
3
  import { toBase64 as A } from "@ocap/util";
4
4
  import { translations as C } from "../libs/locales.js";
5
5
  function k({ state: p, locale: a, connectApi: c }) {
@@ -1,10 +1,10 @@
1
1
  const e = {
2
2
  login: {
3
3
  en: {
4
- title: "Connect",
5
- scan: "Please use the following methods to complete the connection",
4
+ title: "Login",
5
+ scan: "Login with one of the following methods",
6
6
  confirm: "Confirm connection in your DID Wallet",
7
- success: "Successfully connected"
7
+ success: "Successfully logged in"
8
8
  },
9
9
  zh: {
10
10
  title: "登录",
@@ -1,4 +1,4 @@
1
- const o = "3.2.19", s = {
1
+ const o = "3.3.1", s = {
2
2
  version: o
3
3
  };
4
4
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcblock/did-connect-react",
3
- "version": "3.2.19",
3
+ "version": "3.3.1",
4
4
  "description": "Client side library to work with DID Connect by ArcBlock.",
5
5
  "keywords": [
6
6
  "react",
@@ -32,17 +32,17 @@
32
32
  "url": "https://github.com/ArcBlock/ux/issues"
33
33
  },
34
34
  "dependencies": {
35
- "@arcblock/bridge": "3.2.19",
36
- "@arcblock/did": "^1.27.15",
37
- "@arcblock/icons": "3.2.19",
38
- "@arcblock/react-hooks": "3.2.19",
39
- "@arcblock/ws": "^1.27.15",
40
- "@blocklet/constant": "^1.17.5",
35
+ "@arcblock/bridge": "3.3.1",
36
+ "@arcblock/did": "^1.27.16",
37
+ "@arcblock/icons": "3.3.1",
38
+ "@arcblock/react-hooks": "3.3.1",
39
+ "@arcblock/ws": "^1.27.16",
40
+ "@blocklet/constant": "^1.17.6",
41
41
  "@fontsource/lexend": "^5.2.9",
42
42
  "@iconify-icons/logos": "^1.2.36",
43
43
  "@iconify-icons/material-symbols": "^1.2.58",
44
44
  "@iconify/react": "^5.2.1",
45
- "@ocap/util": "^1.27.15",
45
+ "@ocap/util": "^1.27.16",
46
46
  "@simplewebauthn/browser": "^13.1.0",
47
47
  "ahooks": "^3.8.5",
48
48
  "axios": "^1.10.0",
@@ -81,5 +81,5 @@
81
81
  "eslint-plugin-react-hooks": "^4.6.2",
82
82
  "jest": "^29.7.0"
83
83
  },
84
- "gitHead": "8439c6a0c022c3fab219191ff035d737c422f3ff"
84
+ "gitHead": "39aec3e1aef080ae289918120dc12629940a75b4"
85
85
  }
@@ -70,6 +70,7 @@ export default {
70
70
  'Sign in with Passkey - More secure and convenient authentication. No passwords to remember, easily access apps and websites.',
71
71
  didConnectTitle: 'DID Connect',
72
72
  didConnectDescription: 'Decentralized identities and apps, W3C DID-based, future-ready.',
73
+ noAuthenticationProvider: 'No authentication provider configured',
73
74
  },
74
75
  zh: {
75
76
  generateError: '二维码生成失败',
@@ -141,5 +142,6 @@ export default {
141
142
  '使用 Passkey 账户登录 - 更安全、更便捷的身份验证方式。无需记忆密码,轻松登录各类应用和网站',
142
143
  didConnectTitle: 'DID Connect',
143
144
  didConnectDescription: '面向未来的基于 W3C DID 去中心化身份和应用',
145
+ noAuthenticationProvider: '未配置任何身份验证提供者',
144
146
  },
145
147
  };
@@ -29,7 +29,7 @@ export default function ConnectChooseList({
29
29
  webWalletUrl = getWebWalletUrl(),
30
30
  tokenKey,
31
31
  passkeyBehavior = 'none',
32
- onRest = noop,
32
+ onReset = noop,
33
33
  showMobileLogin = true,
34
34
  showOAuthLogin = true,
35
35
  showPasskeyLogin = true,
@@ -100,7 +100,7 @@ export default function ConnectChooseList({
100
100
 
101
101
  const defaultRetryConnect = useMemoizedFn(async () => {
102
102
  tokenState.reset();
103
- await onRest();
103
+ await onReset();
104
104
  tokenState.status = 'created';
105
105
  connectState.chooseMethod = 'wallet';
106
106
  });
@@ -169,7 +169,7 @@ export default function ConnectChooseList({
169
169
  onClick={async () => {
170
170
  localStorage.setItem(GA_LAST_LOGIN_METHOD, 'wallet');
171
171
  tokenState.reset();
172
- await onRest();
172
+ await onReset();
173
173
  tokenState.status = 'created';
174
174
  connectState.chooseMethod = 'wallet';
175
175
  const connectFn = walletLoginRef.current?.connect;
@@ -193,7 +193,7 @@ export default function ConnectChooseList({
193
193
  connectState.chooseMethod = 'wallet-web';
194
194
  const connectFn = webLoginRef.current.connect;
195
195
  connectState.retryConnect = async () => {
196
- await onRest();
196
+ await onReset();
197
197
  tokenState.error = '';
198
198
  tokenState.status = 'scanned';
199
199
  connectFn();
@@ -294,7 +294,7 @@ ConnectChooseList.propTypes = {
294
294
  webWalletUrl: PropTypes.string,
295
295
  tokenKey: PropTypes.string.isRequired,
296
296
  passkeyBehavior: PropTypes.oneOf(['none', 'both', 'only-existing', 'only-new']),
297
- onRest: PropTypes.func,
297
+ onReset: PropTypes.func,
298
298
  showMobileLogin: PropTypes.bool,
299
299
  showOAuthLogin: PropTypes.bool,
300
300
  showPasskeyLogin: PropTypes.bool,