@blocklet/launcher-workflow 2.2.48 → 2.2.49

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.
package/es/checkout.js CHANGED
@@ -16,6 +16,7 @@ import { useNavigate, useSearchParams } from 'react-router-dom';
16
16
  import useAsync from 'react-use/lib/useAsync';
17
17
  import useSetState from 'react-use/lib/useSetState';
18
18
  import joinURL from 'url-join';
19
+ import useBrowser from '@arcblock/react-hooks/lib/useBrowser';
19
20
  import Confirm from '@arcblock/ux/lib/Dialog/confirm';
20
21
  import ResultMessage from '@blocklet/launcher-layout/lib/launch-result-message';
21
22
  import formatError from '@blocklet/launcher-util/es/format-error';
@@ -92,8 +93,10 @@ function CheckoutPage({
92
93
  paying: false,
93
94
  planId: params.get('planId'),
94
95
  sessionId: params.get('sessionId'),
95
- paymentMethod: params.get('paymentMethod')
96
+ paymentMethod: params.get('paymentMethod'),
97
+ autoLogin: true
96
98
  });
99
+ const browser = useBrowser();
97
100
  const navigate = useNavigate();
98
101
  const {
99
102
  create,
@@ -173,6 +176,17 @@ function CheckoutPage({
173
176
  paying: false
174
177
  });
175
178
  };
179
+ const ensureLogin = () => {
180
+ return new Promise(resolve => {
181
+ if (!session.user) {
182
+ session.login(() => {
183
+ resolve();
184
+ });
185
+ } else {
186
+ resolve();
187
+ }
188
+ });
189
+ };
176
190
  const handlePay = () => {
177
191
  if (enableBlockletAgreement && !state.agreed) {
178
192
  setState({
@@ -185,10 +199,21 @@ function CheckoutPage({
185
199
  }, 2000);
186
200
  return;
187
201
  }
188
- setState({
189
- showPayment: true,
190
- paying: true
191
- });
202
+ if (browser.wallet) {
203
+ ensureLogin().then(() => {
204
+ setState({
205
+ showPayment: true,
206
+ paying: true,
207
+ autoLogin: false
208
+ });
209
+ });
210
+ } else {
211
+ setState({
212
+ showPayment: true,
213
+ paying: true,
214
+ autoLogin: true
215
+ });
216
+ }
192
217
  };
193
218
  const handleConnected = result => {
194
219
  if (isPurchaseOnly) {
@@ -405,7 +430,8 @@ function CheckoutPage({
405
430
  forceSwitch: !session?.user,
406
431
  // HACK: 在 openPopup 阶段需要手动添加 sourceAppPid 字段
407
432
  sourceAppPid: session?.user?.sourceAppPid
408
- }
433
+ },
434
+ autoLogin: state.autoLogin
409
435
  }), /*#__PURE__*/_jsx(Confirm, {
410
436
  open: state.showPaidDialog.open,
411
437
  disableEscapeKeyDown: true,
package/es/purchase.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /* eslint-disable react-hooks/exhaustive-deps */
2
2
  import Button from '@arcblock/ux/lib/Button';
3
3
  import Center from '@arcblock/ux/lib/Center';
4
+ import useConnect from '@arcblock/did-connect/lib/Connect/use-connect';
4
5
  import CompactLayout from '@blocklet/launcher-layout/lib/compact-layout';
5
6
  import { NFT_TYPE_SERVERLESS } from '@blocklet/launcher-util/es/constant';
6
7
  import useMobile from '@blocklet/launcher-ux/lib/use-mobile';
@@ -19,6 +20,7 @@ import joinURL from 'url-join';
19
20
  import { API_DID_PREFIX } from '@arcblock/did-connect/lib/constant';
20
21
  import ResultMessage from '@blocklet/launcher-layout/lib/launch-result-message';
21
22
  import formatError from '@blocklet/launcher-util/es/format-error';
23
+ import useBrowser from '@arcblock/react-hooks/lib/useBrowser';
22
24
  import '@splidejs/splide/dist/css/splide.min.css';
23
25
  var NextIcon = function NextIcon(props) {
24
26
  return /*#__PURE__*/_jsx("svg", {
@@ -90,9 +92,12 @@ function PurchasePage({
90
92
  const {
91
93
  session,
92
94
  storage,
93
- events,
94
- connectApi
95
+ events
95
96
  } = useSessionContext();
97
+ const {
98
+ connectApi,
99
+ connectHolder
100
+ } = useConnect();
96
101
  const [params, setParams] = useSearchParams();
97
102
  const {
98
103
  routerPrefix,
@@ -120,6 +125,7 @@ function PurchasePage({
120
125
  const api = create({
121
126
  baseURL: didPayPrefix
122
127
  });
128
+ const browser = useBrowser();
123
129
  const selectPlan = launch => {
124
130
  if (!state.plans.length) {
125
131
  return;
@@ -330,34 +336,76 @@ function PurchasePage({
330
336
  console.error('parse product feature failed:', error);
331
337
  }
332
338
  }
333
- const handleRedeem = () => {
334
- connectApi.openPopup({
335
- useSocket: false,
336
- locale,
337
- action: 'redeem',
338
- prefix: `${window.location.origin}${joinURL(baseURL || '', API_DID_PREFIX)}`,
339
- onSuccess: handleRedeemed,
340
- checkTimeout: 60 * 5000,
341
- showDownload: false,
342
- extraParams: {
343
- planId: state.planId || state.plans[0]._id,
344
- sessionId: state.sessionId,
345
- forceSwitch: !session?.user,
346
- // HACK: 在 openPopup 阶段需要手动添加 sourceAppPid 字段
347
- sourceAppPid: session?.user?.sourceAppPid,
348
- provider: 'wallet'
349
- },
350
- messages: {
351
- title: t('redeem.dialog.title'),
352
- scan: t('redeem.dialog.scan'),
353
- confirm: t('redeem.dialog.confirm'),
354
- success: t('redeem.dialog.success')
355
- },
356
- baseUrl: window.location.origin
357
- }, {
358
- locale
339
+ const ensureLogin = () => {
340
+ return new Promise(resolve => {
341
+ if (!session.user) {
342
+ session.login(() => {
343
+ resolve();
344
+ });
345
+ } else {
346
+ resolve();
347
+ }
359
348
  });
360
349
  };
350
+ const handleRedeem = () => {
351
+ if (browser.wallet) {
352
+ // HACK: 钱包客户端中因为打开浏览器 Tab 的限制,所以在钱包客户端浏览器中使用 “登录 -> 兑换(购买)" 两步的流程
353
+ ensureLogin().then(() => {
354
+ connectApi.open({
355
+ useSocket: false,
356
+ locale,
357
+ action: 'redeem',
358
+ prefix: `${window.location.origin}${joinURL(baseURL || '', API_DID_PREFIX)}`,
359
+ onSuccess: handleRedeemed,
360
+ checkTimeout: 60 * 5000,
361
+ showDownload: false,
362
+ extraParams: {
363
+ planId: state.planId || state.plans[0]._id,
364
+ sessionId: state.sessionId,
365
+ forceSwitch: !session?.user,
366
+ // HACK: 在 openPopup 阶段需要手动添加 sourceAppPid 字段
367
+ sourceAppPid: session?.user?.sourceAppPid,
368
+ provider: 'wallet'
369
+ },
370
+ messages: {
371
+ title: t('redeem.dialog.title'),
372
+ scan: t('redeem.dialog.scan'),
373
+ confirm: t('redeem.dialog.confirm'),
374
+ success: t('redeem.dialog.success')
375
+ }
376
+ }, {
377
+ locale
378
+ });
379
+ });
380
+ } else {
381
+ connectApi.openPopup({
382
+ useSocket: false,
383
+ locale,
384
+ action: 'redeem',
385
+ prefix: `${window.location.origin}${joinURL(baseURL || '', API_DID_PREFIX)}`,
386
+ onSuccess: handleRedeemed,
387
+ checkTimeout: 60 * 5000,
388
+ showDownload: false,
389
+ extraParams: {
390
+ planId: state.planId || state.plans[0]._id,
391
+ sessionId: state.sessionId,
392
+ forceSwitch: !session?.user,
393
+ // HACK: 在 openPopup 阶段需要手动添加 sourceAppPid 字段
394
+ sourceAppPid: session?.user?.sourceAppPid,
395
+ provider: 'wallet'
396
+ },
397
+ messages: {
398
+ title: t('redeem.dialog.title'),
399
+ scan: t('redeem.dialog.scan'),
400
+ confirm: t('redeem.dialog.confirm'),
401
+ success: t('redeem.dialog.success')
402
+ },
403
+ baseUrl: window.location.origin
404
+ }, {
405
+ locale
406
+ });
407
+ }
408
+ };
361
409
  const handleRedeemed = ({
362
410
  sessionToken,
363
411
  nftId,
@@ -521,7 +569,7 @@ function PurchasePage({
521
569
  })
522
570
  })]
523
571
  })
524
- }), session.user && /*#__PURE__*/_jsx(InProgressSession, {})]
572
+ }), session.user && /*#__PURE__*/_jsx(InProgressSession, {}), connectHolder]
525
573
  });
526
574
  }
527
575
  const Container = styled(Layout)`
package/lib/checkout.js CHANGED
@@ -21,6 +21,7 @@ var _reactRouterDom = require("react-router-dom");
21
21
  var _useAsync = _interopRequireDefault(require("react-use/lib/useAsync"));
22
22
  var _useSetState = _interopRequireDefault(require("react-use/lib/useSetState"));
23
23
  var _urlJoin = _interopRequireDefault(require("url-join"));
24
+ var _useBrowser = _interopRequireDefault(require("@arcblock/react-hooks/lib/useBrowser"));
24
25
  var _confirm = _interopRequireDefault(require("@arcblock/ux/lib/Dialog/confirm"));
25
26
  var _launchResultMessage = _interopRequireDefault(require("@blocklet/launcher-layout/lib/launch-result-message"));
26
27
  var _formatError = _interopRequireDefault(require("@blocklet/launcher-util/es/format-error"));
@@ -44,8 +45,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
44
45
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
45
46
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
46
47
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
47
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
48
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
48
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
49
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
49
50
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
50
51
  var SpaceIcon = function SpaceIcon(props) {
51
52
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("svg", _objectSpread(_objectSpread({}, props), {}, {
@@ -107,8 +108,10 @@ function CheckoutPage(_ref) {
107
108
  paying: false,
108
109
  planId: params.get('planId'),
109
110
  sessionId: params.get('sessionId'),
110
- paymentMethod: params.get('paymentMethod')
111
+ paymentMethod: params.get('paymentMethod'),
112
+ autoLogin: true
111
113
  });
114
+ const browser = (0, _useBrowser.default)();
112
115
  const navigate = (0, _reactRouterDom.useNavigate)();
113
116
  const {
114
117
  create,
@@ -189,6 +192,17 @@ function CheckoutPage(_ref) {
189
192
  paying: false
190
193
  });
191
194
  };
195
+ const ensureLogin = () => {
196
+ return new Promise(resolve => {
197
+ if (!session.user) {
198
+ session.login(() => {
199
+ resolve();
200
+ });
201
+ } else {
202
+ resolve();
203
+ }
204
+ });
205
+ };
192
206
  const handlePay = () => {
193
207
  if (enableBlockletAgreement && !state.agreed) {
194
208
  setState({
@@ -201,10 +215,21 @@ function CheckoutPage(_ref) {
201
215
  }, 2000);
202
216
  return;
203
217
  }
204
- setState({
205
- showPayment: true,
206
- paying: true
207
- });
218
+ if (browser.wallet) {
219
+ ensureLogin().then(() => {
220
+ setState({
221
+ showPayment: true,
222
+ paying: true,
223
+ autoLogin: false
224
+ });
225
+ });
226
+ } else {
227
+ setState({
228
+ showPayment: true,
229
+ paying: true,
230
+ autoLogin: true
231
+ });
232
+ }
208
233
  };
209
234
  const handleConnected = result => {
210
235
  if (isPurchaseOnly) {
@@ -423,7 +448,8 @@ function CheckoutPage(_ref) {
423
448
  forceSwitch: !(session !== null && session !== void 0 && session.user),
424
449
  // HACK: 在 openPopup 阶段需要手动添加 sourceAppPid 字段
425
450
  sourceAppPid: session === null || session === void 0 || (_session$user3 = session.user) === null || _session$user3 === void 0 ? void 0 : _session$user3.sourceAppPid
426
- }
451
+ },
452
+ autoLogin: state.autoLogin
427
453
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_confirm.default, {
428
454
  open: state.showPaidDialog.open,
429
455
  disableEscapeKeyDown: true,
@@ -17,8 +17,8 @@ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(
17
17
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18
18
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19
19
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
21
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
20
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
21
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
22
22
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
23
23
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
24
24
  var CheckedIcon = function CheckedIcon(props) {
@@ -30,8 +30,8 @@ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(
30
30
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
31
31
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
32
32
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
33
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
34
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
33
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
34
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
35
35
  const STATUS = {
36
36
  waiting: 0,
37
37
  // 未使用
@@ -15,8 +15,8 @@ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(
15
15
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
16
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
17
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
18
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
19
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
18
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
19
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
20
20
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
21
21
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
22
22
  const Body = /*#__PURE__*/(0, _react.forwardRef)(function Body(_ref, ref) {
@@ -14,8 +14,8 @@ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(
14
14
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
15
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
16
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
18
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
17
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
18
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
19
19
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
20
20
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
21
21
  function Footer(_ref) {
@@ -14,8 +14,8 @@ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(
14
14
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
15
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
16
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
18
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
17
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
18
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
19
19
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
20
20
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
21
21
  function Layout(_ref) {
@@ -24,8 +24,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
24
24
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25
25
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26
26
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
27
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
28
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
27
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
28
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
29
29
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
30
30
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
31
31
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
@@ -17,8 +17,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
17
17
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18
18
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19
19
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
21
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
20
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
21
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
22
22
  _axios.default.defaults.timeout = 200000;
23
23
  const RequestContext = /*#__PURE__*/(0, _react.createContext)();
24
24
  const {
package/lib/purchase.js CHANGED
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
8
8
  var _Center = _interopRequireDefault(require("@arcblock/ux/lib/Center"));
9
+ var _useConnect = _interopRequireDefault(require("@arcblock/did-connect/lib/Connect/use-connect"));
9
10
  var _compactLayout = _interopRequireDefault(require("@blocklet/launcher-layout/lib/compact-layout"));
10
11
  var _constant = require("@blocklet/launcher-util/es/constant");
11
12
  var _useMobile = _interopRequireDefault(require("@blocklet/launcher-ux/lib/use-mobile"));
@@ -24,6 +25,7 @@ var _urlJoin = _interopRequireDefault(require("url-join"));
24
25
  var _constant2 = require("@arcblock/did-connect/lib/constant");
25
26
  var _launchResultMessage = _interopRequireDefault(require("@blocklet/launcher-layout/lib/launch-result-message"));
26
27
  var _formatError = _interopRequireDefault(require("@blocklet/launcher-util/es/format-error"));
28
+ var _useBrowser = _interopRequireDefault(require("@arcblock/react-hooks/lib/useBrowser"));
27
29
  require("@splidejs/splide/dist/css/splide.min.css");
28
30
  var _inProgressSession = _interopRequireDefault(require("./components/in-progress-session"));
29
31
  var _layout = _interopRequireDefault(require("./components/layout"));
@@ -45,8 +47,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
45
47
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
46
48
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
47
49
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
48
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
49
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
50
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
51
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
50
52
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
51
53
  var NextIcon = function NextIcon(props) {
52
54
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("svg", _objectSpread(_objectSpread({}, props), {}, {
@@ -104,9 +106,12 @@ function PurchasePage(_ref) {
104
106
  const {
105
107
  session,
106
108
  storage,
107
- events,
108
- connectApi
109
+ events
109
110
  } = (0, _session.useSessionContext)();
111
+ const {
112
+ connectApi,
113
+ connectHolder
114
+ } = (0, _useConnect.default)();
110
115
  const [params, setParams] = (0, _reactRouterDom.useSearchParams)();
111
116
  const {
112
117
  routerPrefix,
@@ -134,6 +139,7 @@ function PurchasePage(_ref) {
134
139
  const api = create({
135
140
  baseURL: didPayPrefix
136
141
  });
142
+ const browser = (0, _useBrowser.default)();
137
143
  const selectPlan = launch => {
138
144
  if (!state.plans.length) {
139
145
  return;
@@ -348,35 +354,78 @@ function PurchasePage(_ref) {
348
354
  console.error('parse product feature failed:', error);
349
355
  }
350
356
  }
351
- const handleRedeem = () => {
352
- var _session$user;
353
- connectApi.openPopup({
354
- useSocket: false,
355
- locale,
356
- action: 'redeem',
357
- prefix: "".concat(window.location.origin).concat((0, _urlJoin.default)(baseURL || '', _constant2.API_DID_PREFIX)),
358
- onSuccess: handleRedeemed,
359
- checkTimeout: 60 * 5000,
360
- showDownload: false,
361
- extraParams: {
362
- planId: state.planId || state.plans[0]._id,
363
- sessionId: state.sessionId,
364
- forceSwitch: !(session !== null && session !== void 0 && session.user),
365
- // HACK: 在 openPopup 阶段需要手动添加 sourceAppPid 字段
366
- sourceAppPid: session === null || session === void 0 || (_session$user = session.user) === null || _session$user === void 0 ? void 0 : _session$user.sourceAppPid,
367
- provider: 'wallet'
368
- },
369
- messages: {
370
- title: t('redeem.dialog.title'),
371
- scan: t('redeem.dialog.scan'),
372
- confirm: t('redeem.dialog.confirm'),
373
- success: t('redeem.dialog.success')
374
- },
375
- baseUrl: window.location.origin
376
- }, {
377
- locale
357
+ const ensureLogin = () => {
358
+ return new Promise(resolve => {
359
+ if (!session.user) {
360
+ session.login(() => {
361
+ resolve();
362
+ });
363
+ } else {
364
+ resolve();
365
+ }
378
366
  });
379
367
  };
368
+ const handleRedeem = () => {
369
+ if (browser.wallet) {
370
+ // HACK: 钱包客户端中因为打开浏览器 Tab 的限制,所以在钱包客户端浏览器中使用 “登录 -> 兑换(购买)" 两步的流程
371
+ ensureLogin().then(() => {
372
+ var _session$user;
373
+ connectApi.open({
374
+ useSocket: false,
375
+ locale,
376
+ action: 'redeem',
377
+ prefix: "".concat(window.location.origin).concat((0, _urlJoin.default)(baseURL || '', _constant2.API_DID_PREFIX)),
378
+ onSuccess: handleRedeemed,
379
+ checkTimeout: 60 * 5000,
380
+ showDownload: false,
381
+ extraParams: {
382
+ planId: state.planId || state.plans[0]._id,
383
+ sessionId: state.sessionId,
384
+ forceSwitch: !(session !== null && session !== void 0 && session.user),
385
+ // HACK: 在 openPopup 阶段需要手动添加 sourceAppPid 字段
386
+ sourceAppPid: session === null || session === void 0 || (_session$user = session.user) === null || _session$user === void 0 ? void 0 : _session$user.sourceAppPid,
387
+ provider: 'wallet'
388
+ },
389
+ messages: {
390
+ title: t('redeem.dialog.title'),
391
+ scan: t('redeem.dialog.scan'),
392
+ confirm: t('redeem.dialog.confirm'),
393
+ success: t('redeem.dialog.success')
394
+ }
395
+ }, {
396
+ locale
397
+ });
398
+ });
399
+ } else {
400
+ var _session$user2;
401
+ connectApi.openPopup({
402
+ useSocket: false,
403
+ locale,
404
+ action: 'redeem',
405
+ prefix: "".concat(window.location.origin).concat((0, _urlJoin.default)(baseURL || '', _constant2.API_DID_PREFIX)),
406
+ onSuccess: handleRedeemed,
407
+ checkTimeout: 60 * 5000,
408
+ showDownload: false,
409
+ extraParams: {
410
+ planId: state.planId || state.plans[0]._id,
411
+ sessionId: state.sessionId,
412
+ forceSwitch: !(session !== null && session !== void 0 && session.user),
413
+ // HACK: 在 openPopup 阶段需要手动添加 sourceAppPid 字段
414
+ sourceAppPid: session === null || session === void 0 || (_session$user2 = session.user) === null || _session$user2 === void 0 ? void 0 : _session$user2.sourceAppPid,
415
+ provider: 'wallet'
416
+ },
417
+ messages: {
418
+ title: t('redeem.dialog.title'),
419
+ scan: t('redeem.dialog.scan'),
420
+ confirm: t('redeem.dialog.confirm'),
421
+ success: t('redeem.dialog.success')
422
+ },
423
+ baseUrl: window.location.origin
424
+ }, {
425
+ locale
426
+ });
427
+ }
428
+ };
380
429
  const handleRedeemed = _ref3 => {
381
430
  let {
382
431
  sessionToken,
@@ -541,7 +590,7 @@ function PurchasePage(_ref) {
541
590
  })
542
591
  })]
543
592
  })
544
- }), session.user && /*#__PURE__*/(0, _jsxRuntime.jsx)(_inProgressSession.default, {})]
593
+ }), session.user && /*#__PURE__*/(0, _jsxRuntime.jsx)(_inProgressSession.default, {}), connectHolder]
545
594
  });
546
595
  }
547
596
  const Container = (0, _styled.default)(_layout.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .container-inner {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n }\n\n .plan-list {\n display: flex;\n justify-content: center;\n align-items: center;\n\n @media (min-width: 900px) {\n margin-top: 20px;\n }\n\n @media (min-width: 680px) and (max-width: 899px) {\n justify-content: center;\n }\n\n .toc {\n min-width: 180px;\n margin-right: 20px;\n }\n\n button.splide__pagination__page.is-active {\n background: #9397a1;\n }\n }\n\n .splide__pagination-custom {\n bottom: -24px;\n }\n\n .footer {\n display: flex;\n justify-content: ", ";\n align-item: center;\n margin-top: auto;\n padding-top: 16px;\n padding-bottom: ", ";\n\n > * {\n margin: 0 8px;\n ", " {\n margin: 0 16px;\n }\n }\n\n @media (max-width: ", "px) {\n flex-direction: column;\n align-items: center;\n }\n\n .footer-left {\n display: flex;\n gap: 16px;\n align-items: center;\n justify-content: space-between;\n\n .select-space {\n order: 1;\n color: #000;\n\n &:hover {\n text-decoration: underline !important;\n }\n }\n\n .redeem-button {\n order: 1;\n }\n\n @media (max-width: ", "px) {\n width: 100%;\n flex-direction: column;\n\n .redeem-button {\n width: 100%;\n order: 2;\n }\n }\n }\n\n .button-next {\n min-width: 200px;\n\n @media (max-width: ", "px) {\n width: 100%;\n margin-top: 20px;\n }\n }\n }\n"])), props => props.embed ? 'space-between' : 'flex-end', props => props.embed ? '0' : '16px', props => props.theme.breakpoints.up('md'), props => props.theme.breakpoints.values.sm, props => props.theme.breakpoints.values.sm, props => props.theme.breakpoints.values.sm);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blocklet/launcher-workflow",
3
- "version": "2.2.48",
3
+ "version": "2.2.49",
4
4
  "description": "Purchase components for Launcher UI",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -41,20 +41,20 @@
41
41
  "react": ">=18.1.0"
42
42
  },
43
43
  "dependencies": {
44
- "@arcblock/did-connect": "^2.8.20",
45
- "@arcblock/icons": "^2.8.20",
46
- "@arcblock/license": "^2.8.20",
47
- "@arcblock/react-hooks": "^2.8.20",
48
- "@arcblock/ux": "^2.8.20",
49
- "@blocklet/launcher-layout": "2.2.48",
50
- "@blocklet/launcher-util": "2.2.48",
51
- "@blocklet/launcher-ux": "2.2.48",
52
- "@blocklet/payment": "^1.13.65",
53
- "@emotion/react": "^11.11.1",
44
+ "@arcblock/did-connect": "^2.8.24",
45
+ "@arcblock/icons": "^2.8.24",
46
+ "@arcblock/license": "^2.8.24",
47
+ "@arcblock/react-hooks": "^2.8.24",
48
+ "@arcblock/ux": "^2.8.24",
49
+ "@blocklet/launcher-layout": "2.2.49",
50
+ "@blocklet/launcher-util": "2.2.49",
51
+ "@blocklet/launcher-ux": "2.2.49",
52
+ "@blocklet/payment": "^1.13.87",
53
+ "@emotion/react": "^11.11.3",
54
54
  "@emotion/styled": "^11.11.0",
55
- "@mui/icons-material": "^5.14.19",
56
- "@mui/material": "^5.14.19",
57
- "@ocap/util": "^1.18.103",
55
+ "@mui/icons-material": "^5.15.2",
56
+ "@mui/material": "^5.15.2",
57
+ "@ocap/util": "^1.18.108",
58
58
  "@splidejs/react-splide": "^0.7.12",
59
59
  "@splidejs/splide": "^4.1.4",
60
60
  "@splidejs/splide-extension-grid": "^0.4.1",
@@ -70,14 +70,14 @@
70
70
  "lodash.throttle": "^4.1.1",
71
71
  "prop-types": "^15.8.1",
72
72
  "react-lottie-player": "^1.5.5",
73
- "react-router-dom": "^6.20.1",
73
+ "react-router-dom": "^6.21.1",
74
74
  "react-use": "^17.4.2",
75
75
  "url-join": "^4.0.1"
76
76
  },
77
77
  "devDependencies": {
78
78
  "@babel/cli": "^7.23.4",
79
- "@babel/core": "^7.23.5",
80
- "@babel/preset-env": "^7.23.5",
79
+ "@babel/core": "^7.23.7",
80
+ "@babel/preset-env": "^7.23.7",
81
81
  "@babel/preset-react": "^7.23.3",
82
82
  "babel-plugin-inline-react-svg": "^2.0.2",
83
83
  "glob": "^10.3.10",
@@ -101,5 +101,5 @@
101
101
  "require": "./lib/locales/index.js"
102
102
  }
103
103
  },
104
- "gitHead": "95e2aba074d38f74501bf7a661b145e3f23056a4"
104
+ "gitHead": "697f27715d2ba135fb140659bdb56e835450dd43"
105
105
  }