@abtnode/blocklet-services 1.7.27 → 1.8.0
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/build/asset-manifest.json +27 -27
- package/build/index.html +1 -1
- package/build/{precache-manifest.67b60e743946195adf9851e7799c2f61.js → precache-manifest.7625909ed45635e482eceeadce66e323.js} +25 -25
- package/build/service-worker.js +1 -1
- package/build/static/js/{1.036172aa.chunk.js → 1.ed5e7598.chunk.js} +2 -2
- package/build/static/js/{1.036172aa.chunk.js.map → 1.ed5e7598.chunk.js.map} +1 -1
- package/build/static/js/{11.71752117.chunk.js → 11.f2449444.chunk.js} +2 -2
- package/build/static/js/{11.71752117.chunk.js.map → 11.f2449444.chunk.js.map} +1 -1
- package/build/static/js/{12.d2f688d1.chunk.js → 12.00f1963c.chunk.js} +2 -2
- package/build/static/js/{12.d2f688d1.chunk.js.map → 12.00f1963c.chunk.js.map} +1 -1
- package/build/static/js/{13.487ca3ee.chunk.js → 13.503ff0b6.chunk.js} +2 -2
- package/build/static/js/{13.487ca3ee.chunk.js.map → 13.503ff0b6.chunk.js.map} +1 -1
- package/build/static/js/{2.e1621dbd.chunk.js → 2.67e38483.chunk.js} +2 -2
- package/build/static/js/{2.e1621dbd.chunk.js.map → 2.67e38483.chunk.js.map} +1 -1
- package/build/static/js/{5.b60037bf.chunk.js → 5.45856697.chunk.js} +3 -3
- package/build/static/js/{5.b60037bf.chunk.js.LICENSE.txt → 5.45856697.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/5.45856697.chunk.js.map +1 -0
- package/build/static/js/6.5f45e222.chunk.js +2 -0
- package/build/static/js/6.5f45e222.chunk.js.map +1 -0
- package/build/static/js/7.12b5972d.chunk.js +2 -0
- package/build/static/js/7.12b5972d.chunk.js.map +1 -0
- package/build/static/js/{8.9011969f.chunk.js → 8.a7835261.chunk.js} +2 -2
- package/build/static/js/{8.9011969f.chunk.js.map → 8.a7835261.chunk.js.map} +1 -1
- package/build/static/js/{main.244df430.chunk.js → main.61a2b5ee.chunk.js} +2 -2
- package/build/static/js/{main.244df430.chunk.js.map → main.61a2b5ee.chunk.js.map} +1 -1
- package/build/static/js/{runtime-main.adb5a635.js → runtime-main.48ab9a12.js} +2 -2
- package/build/static/js/{runtime-main.adb5a635.js.map → runtime-main.48ab9a12.js.map} +1 -1
- package/package.json +18 -18
- package/build/static/js/5.b60037bf.chunk.js.map +0 -1
- package/build/static/js/6.5d7f0b08.chunk.js +0 -2
- package/build/static/js/6.5d7f0b08.chunk.js.map +0 -1
- package/build/static/js/7.381fbef6.chunk.js +0 -2
- package/build/static/js/7.381fbef6.chunk.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(this["webpackJsonp@abtnode/blocklet-services"]=this["webpackJsonp@abtnode/blocklet-services"]||[]).push([[11],{1035:function(e,t,s){"use strict";var o=s(69);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var s=g(t);if(s&&s.has(e))return s.get(e);var o={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if("default"!==r&&Object.prototype.hasOwnProperty.call(e,r)){var n=a?Object.getOwnPropertyDescriptor(e,r):null;n&&(n.get||n.set)?Object.defineProperty(o,r,n):o[r]=e[r]}o.default=e,s&&s.set(e,o);return o}(s(0)),r=h(s(48)),n=s(361),i=h(s(70)),l=h(s(914)),c=h(s(76)),u=h(s(
|
|
2
|
-
//# sourceMappingURL=11.
|
|
1
|
+
(this["webpackJsonp@abtnode/blocklet-services"]=this["webpackJsonp@abtnode/blocklet-services"]||[]).push([[11],{1035:function(e,t,s){"use strict";var o=s(69);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var s=g(t);if(s&&s.has(e))return s.get(e);var o={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if("default"!==r&&Object.prototype.hasOwnProperty.call(e,r)){var n=a?Object.getOwnPropertyDescriptor(e,r):null;n&&(n.get||n.set)?Object.defineProperty(o,r,n):o[r]=e[r]}o.default=e,s&&s.set(e,o);return o}(s(0)),r=h(s(48)),n=s(361),i=h(s(70)),l=h(s(914)),c=h(s(76)),u=h(s(151)),p=h(s(360)),d=h(s(507)),f=s(124),m=s(77),v=h(s(895)),P=h(s(882));function h(e){return e&&e.__esModule?e:{default:e}}function g(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,s=new WeakMap;return(g=function(e){return e?s:t})(e)}var y=(0,r.default)(u.default).withConfig({displayName:"issue-passport__Div",componentId:"sc-ovfail-0"})([".header{text-align:center;margin-bottom:8px;}.subheader{text-align:center;margin-bottom:24px;}.login{padding:24px;height:auto;min-height:480px;display:flex;flex-direction:column;}.connect{background:#fafafa;}"]),D=(0,v.default)((function(e){var t=e.SessionContext,s=e.webWalletUrl,r=(0,a.useContext)(t),u=r.api,v=r.session,h=(0,a.useContext)(f.LocaleContext),g=h.t,D=h.locale,b=(0,a.useState)(!1),w=o(b,2),I=w[0],_=w[1],x=(0,n.useHistory)(),E=(0,P.default)().setPassportId,W={},C=new URL(window.location.href).searchParams.get("id");return C&&(W.id=C),a.default.createElement(y,null,I?a.default.createElement("div",{className:"login"},a.default.createElement("div",{className:"connect"},a.default.createElement(c.default,{textAlign:"center"},a.default.createElement(c.default,{mb:3,color:"success.main"},a.default.createElement(l.default,{style:{fontSize:60}})),a.default.createElement(i.default,{component:"p",variant:"body1",className:"subheader"},g("issuePassport.dialog.success")),a.default.createElement(c.default,{mt:3},a.default.createElement(p.default,{variant:"contained",color:"primary",onClick:function(){var e;try{v.logout()}catch(t){}((null===(e=window.env)||void 0===e?void 0:e.apiPrefix)||"").startsWith(m.WELLKNOWN_SERVICE_PATH_PREFIX)?x.replace("".concat(m.WELLKNOWN_SERVICE_PATH_PREFIX,"/login")):x.replace("/")}},g("issuePassport.dialog.loginWithPassport")))))):a.default.createElement(d.default,{className:"connect",action:"issue-passport",checkFn:u.get,checkTimeout:6e5,socketUrl:u.socketUrl,webWalletUrl:s,onSuccess:function(e){null!==e&&void 0!==e&&e.passportId&&E(e.passportId),_(!0)},locale:D,messages:{title:g("issuePassport.title"),scan:g("issuePassport.description",{name:window.env.appName}),confirm:g("issuePassport.dialog.confirm"),success:g("issuePassport.dialog.success")},extraParams:W}))}));t.default=D},1219:function(e,t,s){"use strict";s.r(t),s.d(t,"default",(function(){return c}));var o=s(0),a=s.n(o),r=s(1035),n=s.n(r),i=s(222),l=s(223);function c(){return a.a.createElement(n.a,{SessionContext:i.a,webWalletUrl:Object(l.b)()})}},882:function(e,t,s){"use strict";var o=s(69);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=(0,r.default)("passportId",""),t=o(e,3),s=t[0],a=t[1],n=t[2];return{getPassportId:function(){return setTimeout((function(){n()}),0),s||""},setPassportId:a}};var a,r=(a=s(363))&&a.__esModule?a:{default:a}},895:function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t){return a.default.createElement(r.LocaleProvider,{translations:n.translations},a.default.createElement(e,t))}};var o,a=(o=s(0))&&o.__esModule?o:{default:o},r=s(124),n=s(896)},896:function(e,t,s){"use strict";var o=s(897),a=s(898);e.exports={translations:{zh:a,en:o}}},897:function(e,t,s){"use strict";var o=s(359);e.exports=o({issuePassport:{title:"Receive Passport",description:"Use DID Wallet to receive the passport issued by {name}",dialog:{scan:"Use your DID Wallet to claim the passport",confirm:"Confirm on your DID Wallet",success:"The passport has been successfully added in your wallet",loginWithPassport:"Connect with this Passport"}},lostPassport:{title:"Lost Passport",description:"The owner of {name} can scan the QR code to retrieve the passport, members please contact the owner to reissue the passport",dialog:{scan:"Use your DID Wallet to recover the passport",confirm:"Confirm on your DID Wallet",success:"The passport has been successfully added in your wallet"},return:"Connect with passport",selectPassport:"Select passport",receivePassport:"Receive passport"},common:{next:"Next",complete:"Complete"},invite:{message:"{name} invite you to be the {role} of {dapp}",receive:"Receive with",validUntil:"Valid until:",viewPermission:"View Permission",emptyPermission:"Empty Permission",open:"Open",description:{step1:"Download and setup your {wallet}",step2:"Click above button to receive passport",step3:"Login in {dapp} with received passport"}},receive:{dialog:{title:"Use your DID Wallet to receive passport",scan:"Connect your DID Wallet to receive passport",confirm:"Confirm on your DID Wallet",success:"You are successfully connected"}}})},898:function(e,t,s){"use strict";var o=s(359);e.exports=o({issuePassport:{title:"\u9886\u53d6\u901a\u884c\u8bc1",description:"\u4f7f\u7528 DID \u94b1\u5305\u9886\u53d6 {name} \u9881\u53d1\u7684\u901a\u884c\u8bc1",dialog:{confirm:"\u5728\u60a8\u7684 DID \u94b1\u5305\u4e0a\u786e\u8ba4",success:"\u901a\u884c\u8bc1\u5df2\u6210\u529f\u6dfb\u52a0\u5230\u60a8\u7684 DID \u94b1\u5305",loginWithPassport:"\u7528\u6b64\u901a\u884c\u8bc1\u8fde\u63a5"}},lostPassport:{title:"\u627e\u56de\u901a\u884c\u8bc1",description:"{name} \u6240\u6709\u8005\u53ef\u626b\u63cf\u4e8c\u7ef4\u7801\u627e\u56de\u901a\u884c\u8bc1\uff0c\u6210\u5458\u8bf7\u8054\u7cfb\u6240\u6709\u8005\u91cd\u65b0\u9881\u53d1\u901a\u884c\u8bc1",dialog:{scan:"\u7528\u60a8\u7684 DID \u94b1\u5305\u626b\u63cf\u4e0b\u9762\u7684\u4e8c\u7ef4\u7801",confirm:"\u5728\u60a8\u7684 DID \u94b1\u5305\u4e0a\u786e\u8ba4",success:"\u901a\u884c\u8bc1\u5df2\u6210\u529f\u6dfb\u52a0\u5230\u60a8\u7684 DID \u94b1\u5305"},return:"\u4f7f\u7528\u901a\u884c\u8bc1\u767b\u5f55",selectPassport:"\u9009\u62e9\u901a\u884c\u8bc1",receivePassport:"\u9886\u53d6\u901a\u884c\u8bc1"},common:{next:"\u4e0b\u4e00\u6b65",complete:"\u5b8c\u6210"},invite:{message:"{name} \u9080\u8bf7\u4f60\u6210\u4e3a {dapp} \u7684 {role}",receive:"\u9886\u53d6\u901a\u884c\u8bc1",validUntil:"\u8fc7\u671f\u65f6\u95f4\uff1a",viewPermission:"\u67e5\u770b\u6743\u9650",emptyPermission:"\u6ca1\u6709\u6743\u9650",open:"\u6253\u5f00",description:{step1:"\u4e0b\u8f7d\u5e76\u8bbe\u7f6e\u597d\u4f60\u7684 {wallet}",step2:"\u70b9\u51fb\u4e0a\u9762\u7684\u6309\u94ae\u9886\u53d6\u901a\u884c\u8bc1",step3:"\u4f7f\u7528\u901a\u884c\u8bc1\u767b\u5f55 {dapp}"}},receive:{dialog:{title:"\u8bf7\u8fde\u63a5 DID \u94b1\u5305\u9886\u53d6\u901a\u884c\u8bc1",scan:"\u7528\u60a8\u7684 DID \u94b1\u5305\u626b\u63cf\u4e0b\u9762\u7684\u4e8c\u7ef4\u7801\u9886\u53d6\u901a\u884c\u8bc1",confirm:"\u5728\u60a8\u7684 DID \u94b1\u5305\u4e0a\u786e\u8ba4",success:"\u8fde\u63a5\u6210\u529f"}}})},914:function(e,t,s){"use strict";var o=s(125);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=o(s(126)),r=s(2),n=(0,a.default)((0,r.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckCircle");t.default=n}}]);
|
|
2
|
+
//# sourceMappingURL=11.f2449444.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../ux/lib/issue-passport.js","pages/issue-passport.js","../../ux/lib/hooks/use-passport-id.js","../../ux/lib/wrap-locale.js","../../ux/lib/locales/index.js","../../ux/lib/locales/en.js","../../ux/lib/locales/zh.js","../../../node_modules/@mui/icons-material/CheckCircle.js"],"names":["Object","defineProperty","exports","value","default","_react","obj","nodeInterop","__esModule","cache","_getRequireWildcardCache","has","get","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_reactRouterDom","_Typography","_CheckCircle","_Box","_Center","_Button","_Connect","_context","_constant","_wrapLocale","_usePassportId","WeakMap","cacheBabelInterop","cacheNodeInterop","Div","withConfig","displayName","componentId","_default","_ref","SessionContext","webWalletUrl","useContext","api","session","LocaleContext","t","locale","useState","success","setSuccess","history","useHistory","setPassportId","extraParams","id","URL","window","location","href","searchParams","createElement","className","textAlign","mb","color","style","fontSize","component","variant","mt","onClick","_window$env","logout","err","env","apiPrefix","startsWith","WELLKNOWN_SERVICE_PATH_PREFIX","replace","concat","action","checkFn","checkTimeout","socketUrl","onSuccess","result","passportId","messages","title","scan","name","appName","confirm","LostPassport","getWebWalletUrl","_useLocalStorage","clearPassportId","getPassportId","setTimeout","Component","props","LocaleProvider","translations","_locales","en","zh","module","flat","issuePassport","description","dialog","loginWithPassport","lostPassport","return","selectPassport","receivePassport","common","next","complete","invite","message","receive","validUntil","viewPermission","emptyPermission","open","step1","step2","step3","_createSvgIcon","_jsxRuntime","jsx","d"],"mappings":"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","file":"static/js/11.71752117.chunk.js","sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _styledComponents = _interopRequireDefault(require(\"styled-components\"));\n\nvar _reactRouterDom = require(\"react-router-dom\");\n\nvar _Typography = _interopRequireDefault(require(\"@mui/material/Typography\"));\n\nvar _CheckCircle = _interopRequireDefault(require(\"@mui/icons-material/CheckCircle\"));\n\nvar _Box = _interopRequireDefault(require(\"@mui/material/Box\"));\n\nvar _Center = _interopRequireDefault(require(\"@arcblock/ux/lib/Center\"));\n\nvar _Button = _interopRequireDefault(require(\"@arcblock/ux/lib/Button\"));\n\nvar _Connect = _interopRequireDefault(require(\"@arcblock/did-connect/lib/Connect\"));\n\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\n\nvar _constant = require(\"@abtnode/constant\");\n\nvar _wrapLocale = _interopRequireDefault(require(\"./wrap-locale\"));\n\nvar _usePassportId = _interopRequireDefault(require(\"./hooks/use-passport-id\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/* eslint-disable react/jsx-one-expression-per-line, no-undef */\n// eslint-disable-next-line react/prop-types\nfunction IssuePassport(_ref) {\n let {\n SessionContext,\n webWalletUrl\n } = _ref;\n const {\n api,\n session\n } = (0, _react.useContext)(SessionContext);\n const {\n t,\n locale\n } = (0, _react.useContext)(_context.LocaleContext);\n const [success, setSuccess] = (0, _react.useState)(false);\n const history = (0, _reactRouterDom.useHistory)();\n const {\n setPassportId\n } = (0, _usePassportId.default)();\n\n const onReceivePassport = result => {\n if (result !== null && result !== void 0 && result.passportId) {\n setPassportId(result.passportId);\n }\n\n setSuccess(true);\n };\n\n const extraParams = {};\n const {\n searchParams\n } = new URL(window.location.href);\n const id = searchParams.get('id');\n\n if (id) {\n extraParams.id = id;\n }\n\n const onUsePassport = () => {\n var _window$env;\n\n try {\n session.logout();\n } catch (err) {// Do nothing\n }\n\n if ((((_window$env = window.env) === null || _window$env === void 0 ? void 0 : _window$env.apiPrefix) || '').startsWith(_constant.WELLKNOWN_SERVICE_PATH_PREFIX)) {\n history.replace(\"\".concat(_constant.WELLKNOWN_SERVICE_PATH_PREFIX, \"/login\"));\n return;\n }\n\n history.replace('/');\n };\n\n return /*#__PURE__*/_react.default.createElement(Div, null, success ? /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"login\"\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"connect\"\n }, /*#__PURE__*/_react.default.createElement(_Box.default, {\n textAlign: \"center\"\n }, /*#__PURE__*/_react.default.createElement(_Box.default, {\n mb: 3,\n color: \"success.main\"\n }, /*#__PURE__*/_react.default.createElement(_CheckCircle.default, {\n style: {\n fontSize: 60\n }\n })), /*#__PURE__*/_react.default.createElement(_Typography.default, {\n component: \"p\",\n variant: \"body1\",\n className: \"subheader\"\n }, t('issuePassport.dialog.success')), /*#__PURE__*/_react.default.createElement(_Box.default, {\n mt: 3\n }, /*#__PURE__*/_react.default.createElement(_Button.default, {\n variant: \"contained\",\n color: \"primary\",\n onClick: onUsePassport\n }, t('issuePassport.dialog.loginWithPassport')))))) : /*#__PURE__*/_react.default.createElement(_Connect.default, {\n className: \"connect\",\n action: \"issue-passport\",\n checkFn: api.get,\n checkTimeout: 10 * 60 * 1000,\n socketUrl: api.socketUrl,\n webWalletUrl: webWalletUrl,\n onSuccess: onReceivePassport,\n locale: locale,\n messages: {\n title: t('issuePassport.title'),\n scan: t('issuePassport.description', {\n name: window.env.appName\n }),\n confirm: t('issuePassport.dialog.confirm'),\n success: t('issuePassport.dialog.success')\n },\n extraParams: extraParams\n }));\n}\n\nconst Div = (0, _styledComponents.default)(_Center.default).withConfig({\n displayName: \"issue-passport__Div\",\n componentId: \"sc-ovfail-0\"\n})([\".header{text-align:center;margin-bottom:8px;}.subheader{text-align:center;margin-bottom:24px;}.login{padding:24px;height:auto;min-height:480px;display:flex;flex-direction:column;}.connect{background:#fafafa;}\"]);\n\nvar _default = (0, _wrapLocale.default)(IssuePassport);\n\nexports.default = _default;","/* eslint-disable react/jsx-one-expression-per-line */\nimport React from 'react';\nimport IssuePassportPage from '@abtnode/ux/lib/issue-passport';\n\nimport { SessionContext } from '../contexts/session';\nimport { getWebWalletUrl } from '../util';\n\nexport default function LostPassport() {\n return <IssuePassportPage SessionContext={SessionContext} webWalletUrl={getWebWalletUrl()} />;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = usePassportId;\n\nvar _useLocalStorage = _interopRequireDefault(require(\"react-use/lib/useLocalStorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction usePassportId() {\n const [passportId, setPassportId, clearPassportId] = (0, _useLocalStorage.default)('passportId', '');\n\n const getPassportId = () => {\n setTimeout(() => {\n clearPassportId();\n }, 0);\n return passportId || '';\n };\n\n return {\n getPassportId,\n setPassportId\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = wrapLocale;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\n\nvar _locales = require(\"./locales\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable react/jsx-props-no-spreading */\n\n/* eslint-disable import/no-extraneous-dependencies */\nfunction wrapLocale(Component) {\n return props => /*#__PURE__*/_react.default.createElement(_context.LocaleProvider, {\n translations: _locales.translations\n }, /*#__PURE__*/_react.default.createElement(Component, props));\n}","\"use strict\";\n\nconst en = require('./en');\n\nconst zh = require('./zh');\n\nmodule.exports = {\n translations: {\n zh,\n en\n }\n};","\"use strict\";\n\n/* eslint-disable import/no-extraneous-dependencies */\nconst flat = require('flat');\n\nmodule.exports = flat({\n issuePassport: {\n title: 'Receive Passport',\n description: 'Use DID Wallet to receive the passport issued by {name}',\n dialog: {\n scan: 'Use your DID Wallet to claim the passport',\n confirm: 'Confirm on your DID Wallet',\n success: 'The passport has been successfully added in your wallet',\n loginWithPassport: 'Connect with this Passport'\n }\n },\n lostPassport: {\n title: 'Lost Passport',\n description: 'The owner of {name} can scan the QR code to retrieve the passport, members please contact the owner to reissue the passport',\n dialog: {\n scan: 'Use your DID Wallet to recover the passport',\n confirm: 'Confirm on your DID Wallet',\n success: 'The passport has been successfully added in your wallet'\n },\n return: 'Connect with passport',\n selectPassport: 'Select passport',\n receivePassport: 'Receive passport'\n },\n common: {\n next: 'Next',\n complete: 'Complete'\n },\n invite: {\n message: '{name} invite you to be the {role} of {dapp}',\n receive: 'Receive with',\n validUntil: 'Valid until:',\n viewPermission: 'View Permission',\n emptyPermission: 'Empty Permission',\n open: 'Open',\n description: {\n step1: 'Download and setup your {wallet}',\n step2: 'Click above button to receive passport',\n step3: 'Login in {dapp} with received passport'\n }\n },\n receive: {\n dialog: {\n title: 'Use your DID Wallet to receive passport',\n scan: 'Connect your DID Wallet to receive passport',\n confirm: 'Confirm on your DID Wallet',\n success: 'You are successfully connected'\n }\n }\n});","\"use strict\";\n\n/* eslint-disable import/no-extraneous-dependencies */\nconst flat = require('flat');\n\nmodule.exports = flat({\n issuePassport: {\n title: '领取通行证',\n description: '使用 DID 钱包领取 {name} 颁发的通行证',\n dialog: {\n confirm: '在您的 DID 钱包上确认',\n success: '通行证已成功添加到您的 DID 钱包',\n loginWithPassport: '用此通行证连接'\n }\n },\n lostPassport: {\n title: '找回通行证',\n description: '{name} 所有者可扫描二维码找回通行证,成员请联系所有者重新颁发通行证',\n dialog: {\n scan: '用您的 DID 钱包扫描下面的二维码',\n confirm: '在您的 DID 钱包上确认',\n success: '通行证已成功添加到您的 DID 钱包'\n },\n return: '使用通行证登录',\n selectPassport: '选择通行证',\n receivePassport: '领取通行证'\n },\n common: {\n next: '下一步',\n complete: '完成'\n },\n invite: {\n message: '{name} 邀请你成为 {dapp} 的 {role}',\n receive: '领取通行证',\n validUntil: '过期时间:',\n viewPermission: '查看权限',\n emptyPermission: '没有权限',\n open: '打开',\n description: {\n step1: '下载并设置好你的 {wallet}',\n step2: '点击上面的按钮领取通行证',\n step3: '使用通行证登录 {dapp}'\n }\n },\n receive: {\n dialog: {\n title: '请连接 DID 钱包领取通行证',\n scan: '用您的 DID 钱包扫描下面的二维码领取通行证',\n confirm: '在您的 DID 钱包上确认',\n success: '连接成功'\n }\n }\n});","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckCircle');\n\nexports.default = _default;"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["../../ux/lib/issue-passport.js","pages/issue-passport.js","../../ux/lib/hooks/use-passport-id.js","../../ux/lib/wrap-locale.js","../../ux/lib/locales/index.js","../../ux/lib/locales/en.js","../../ux/lib/locales/zh.js","../../../node_modules/@mui/icons-material/CheckCircle.js"],"names":["Object","defineProperty","exports","value","default","_react","obj","nodeInterop","__esModule","cache","_getRequireWildcardCache","has","get","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_reactRouterDom","_Typography","_CheckCircle","_Box","_Center","_Button","_Connect","_context","_constant","_wrapLocale","_usePassportId","WeakMap","cacheBabelInterop","cacheNodeInterop","Div","withConfig","displayName","componentId","_default","_ref","SessionContext","webWalletUrl","useContext","api","session","LocaleContext","t","locale","useState","success","setSuccess","history","useHistory","setPassportId","extraParams","id","URL","window","location","href","searchParams","createElement","className","textAlign","mb","color","style","fontSize","component","variant","mt","onClick","_window$env","logout","err","env","apiPrefix","startsWith","WELLKNOWN_SERVICE_PATH_PREFIX","replace","concat","action","checkFn","checkTimeout","socketUrl","onSuccess","result","passportId","messages","title","scan","name","appName","confirm","LostPassport","getWebWalletUrl","_useLocalStorage","clearPassportId","getPassportId","setTimeout","Component","props","LocaleProvider","translations","_locales","en","zh","module","flat","issuePassport","description","dialog","loginWithPassport","lostPassport","return","selectPassport","receivePassport","common","next","complete","invite","message","receive","validUntil","viewPermission","emptyPermission","open","step1","step2","step3","_createSvgIcon","_jsxRuntime","jsx","d"],"mappings":"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","file":"static/js/11.f2449444.chunk.js","sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _styledComponents = _interopRequireDefault(require(\"styled-components\"));\n\nvar _reactRouterDom = require(\"react-router-dom\");\n\nvar _Typography = _interopRequireDefault(require(\"@mui/material/Typography\"));\n\nvar _CheckCircle = _interopRequireDefault(require(\"@mui/icons-material/CheckCircle\"));\n\nvar _Box = _interopRequireDefault(require(\"@mui/material/Box\"));\n\nvar _Center = _interopRequireDefault(require(\"@arcblock/ux/lib/Center\"));\n\nvar _Button = _interopRequireDefault(require(\"@arcblock/ux/lib/Button\"));\n\nvar _Connect = _interopRequireDefault(require(\"@arcblock/did-connect/lib/Connect\"));\n\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\n\nvar _constant = require(\"@abtnode/constant\");\n\nvar _wrapLocale = _interopRequireDefault(require(\"./wrap-locale\"));\n\nvar _usePassportId = _interopRequireDefault(require(\"./hooks/use-passport-id\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/* eslint-disable react/jsx-one-expression-per-line, no-undef */\n// eslint-disable-next-line react/prop-types\nfunction IssuePassport(_ref) {\n let {\n SessionContext,\n webWalletUrl\n } = _ref;\n const {\n api,\n session\n } = (0, _react.useContext)(SessionContext);\n const {\n t,\n locale\n } = (0, _react.useContext)(_context.LocaleContext);\n const [success, setSuccess] = (0, _react.useState)(false);\n const history = (0, _reactRouterDom.useHistory)();\n const {\n setPassportId\n } = (0, _usePassportId.default)();\n\n const onReceivePassport = result => {\n if (result !== null && result !== void 0 && result.passportId) {\n setPassportId(result.passportId);\n }\n\n setSuccess(true);\n };\n\n const extraParams = {};\n const {\n searchParams\n } = new URL(window.location.href);\n const id = searchParams.get('id');\n\n if (id) {\n extraParams.id = id;\n }\n\n const onUsePassport = () => {\n var _window$env;\n\n try {\n session.logout();\n } catch (err) {// Do nothing\n }\n\n if ((((_window$env = window.env) === null || _window$env === void 0 ? void 0 : _window$env.apiPrefix) || '').startsWith(_constant.WELLKNOWN_SERVICE_PATH_PREFIX)) {\n history.replace(\"\".concat(_constant.WELLKNOWN_SERVICE_PATH_PREFIX, \"/login\"));\n return;\n }\n\n history.replace('/');\n };\n\n return /*#__PURE__*/_react.default.createElement(Div, null, success ? /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"login\"\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"connect\"\n }, /*#__PURE__*/_react.default.createElement(_Box.default, {\n textAlign: \"center\"\n }, /*#__PURE__*/_react.default.createElement(_Box.default, {\n mb: 3,\n color: \"success.main\"\n }, /*#__PURE__*/_react.default.createElement(_CheckCircle.default, {\n style: {\n fontSize: 60\n }\n })), /*#__PURE__*/_react.default.createElement(_Typography.default, {\n component: \"p\",\n variant: \"body1\",\n className: \"subheader\"\n }, t('issuePassport.dialog.success')), /*#__PURE__*/_react.default.createElement(_Box.default, {\n mt: 3\n }, /*#__PURE__*/_react.default.createElement(_Button.default, {\n variant: \"contained\",\n color: \"primary\",\n onClick: onUsePassport\n }, t('issuePassport.dialog.loginWithPassport')))))) : /*#__PURE__*/_react.default.createElement(_Connect.default, {\n className: \"connect\",\n action: \"issue-passport\",\n checkFn: api.get,\n checkTimeout: 10 * 60 * 1000,\n socketUrl: api.socketUrl,\n webWalletUrl: webWalletUrl,\n onSuccess: onReceivePassport,\n locale: locale,\n messages: {\n title: t('issuePassport.title'),\n scan: t('issuePassport.description', {\n name: window.env.appName\n }),\n confirm: t('issuePassport.dialog.confirm'),\n success: t('issuePassport.dialog.success')\n },\n extraParams: extraParams\n }));\n}\n\nconst Div = (0, _styledComponents.default)(_Center.default).withConfig({\n displayName: \"issue-passport__Div\",\n componentId: \"sc-ovfail-0\"\n})([\".header{text-align:center;margin-bottom:8px;}.subheader{text-align:center;margin-bottom:24px;}.login{padding:24px;height:auto;min-height:480px;display:flex;flex-direction:column;}.connect{background:#fafafa;}\"]);\n\nvar _default = (0, _wrapLocale.default)(IssuePassport);\n\nexports.default = _default;","/* eslint-disable react/jsx-one-expression-per-line */\nimport React from 'react';\nimport IssuePassportPage from '@abtnode/ux/lib/issue-passport';\n\nimport { SessionContext } from '../contexts/session';\nimport { getWebWalletUrl } from '../util';\n\nexport default function LostPassport() {\n return <IssuePassportPage SessionContext={SessionContext} webWalletUrl={getWebWalletUrl()} />;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = usePassportId;\n\nvar _useLocalStorage = _interopRequireDefault(require(\"react-use/lib/useLocalStorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction usePassportId() {\n const [passportId, setPassportId, clearPassportId] = (0, _useLocalStorage.default)('passportId', '');\n\n const getPassportId = () => {\n setTimeout(() => {\n clearPassportId();\n }, 0);\n return passportId || '';\n };\n\n return {\n getPassportId,\n setPassportId\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = wrapLocale;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\n\nvar _locales = require(\"./locales\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable react/jsx-props-no-spreading */\n\n/* eslint-disable import/no-extraneous-dependencies */\nfunction wrapLocale(Component) {\n return props => /*#__PURE__*/_react.default.createElement(_context.LocaleProvider, {\n translations: _locales.translations\n }, /*#__PURE__*/_react.default.createElement(Component, props));\n}","\"use strict\";\n\nconst en = require('./en');\n\nconst zh = require('./zh');\n\nmodule.exports = {\n translations: {\n zh,\n en\n }\n};","\"use strict\";\n\n/* eslint-disable import/no-extraneous-dependencies */\nconst flat = require('flat');\n\nmodule.exports = flat({\n issuePassport: {\n title: 'Receive Passport',\n description: 'Use DID Wallet to receive the passport issued by {name}',\n dialog: {\n scan: 'Use your DID Wallet to claim the passport',\n confirm: 'Confirm on your DID Wallet',\n success: 'The passport has been successfully added in your wallet',\n loginWithPassport: 'Connect with this Passport'\n }\n },\n lostPassport: {\n title: 'Lost Passport',\n description: 'The owner of {name} can scan the QR code to retrieve the passport, members please contact the owner to reissue the passport',\n dialog: {\n scan: 'Use your DID Wallet to recover the passport',\n confirm: 'Confirm on your DID Wallet',\n success: 'The passport has been successfully added in your wallet'\n },\n return: 'Connect with passport',\n selectPassport: 'Select passport',\n receivePassport: 'Receive passport'\n },\n common: {\n next: 'Next',\n complete: 'Complete'\n },\n invite: {\n message: '{name} invite you to be the {role} of {dapp}',\n receive: 'Receive with',\n validUntil: 'Valid until:',\n viewPermission: 'View Permission',\n emptyPermission: 'Empty Permission',\n open: 'Open',\n description: {\n step1: 'Download and setup your {wallet}',\n step2: 'Click above button to receive passport',\n step3: 'Login in {dapp} with received passport'\n }\n },\n receive: {\n dialog: {\n title: 'Use your DID Wallet to receive passport',\n scan: 'Connect your DID Wallet to receive passport',\n confirm: 'Confirm on your DID Wallet',\n success: 'You are successfully connected'\n }\n }\n});","\"use strict\";\n\n/* eslint-disable import/no-extraneous-dependencies */\nconst flat = require('flat');\n\nmodule.exports = flat({\n issuePassport: {\n title: '领取通行证',\n description: '使用 DID 钱包领取 {name} 颁发的通行证',\n dialog: {\n confirm: '在您的 DID 钱包上确认',\n success: '通行证已成功添加到您的 DID 钱包',\n loginWithPassport: '用此通行证连接'\n }\n },\n lostPassport: {\n title: '找回通行证',\n description: '{name} 所有者可扫描二维码找回通行证,成员请联系所有者重新颁发通行证',\n dialog: {\n scan: '用您的 DID 钱包扫描下面的二维码',\n confirm: '在您的 DID 钱包上确认',\n success: '通行证已成功添加到您的 DID 钱包'\n },\n return: '使用通行证登录',\n selectPassport: '选择通行证',\n receivePassport: '领取通行证'\n },\n common: {\n next: '下一步',\n complete: '完成'\n },\n invite: {\n message: '{name} 邀请你成为 {dapp} 的 {role}',\n receive: '领取通行证',\n validUntil: '过期时间:',\n viewPermission: '查看权限',\n emptyPermission: '没有权限',\n open: '打开',\n description: {\n step1: '下载并设置好你的 {wallet}',\n step2: '点击上面的按钮领取通行证',\n step3: '使用通行证登录 {dapp}'\n }\n },\n receive: {\n dialog: {\n title: '请连接 DID 钱包领取通行证',\n scan: '用您的 DID 钱包扫描下面的二维码领取通行证',\n confirm: '在您的 DID 钱包上确认',\n success: '连接成功'\n }\n }\n});","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckCircle');\n\nexports.default = _default;"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(this["webpackJsonp@abtnode/blocklet-services"]=this["webpackJsonp@abtnode/blocklet-services"]||[]).push([[12],{1141:function(e,n,t){"use strict";var a=t(125);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(t(126)),o=t(2),i=(0,r.default)((0,o.jsx)("path",{d:"M8 5v14l11-7z"}),"PlayArrow");n.default=i},1221:function(e,n,t){"use strict";t.r(n),t.d(n,"default",(function(){return W}));var a,r,o,i=t(25),l=t(11),c=t(1034),s=t(0),u=t.n(s),d=t(221),f=t(486),p=t(1141),E=t.n(p),m=t(188),_=t(360),L=t.n(_),h=t(124),b=t(150),g=t.n(b),v=t(508),O=t.n(v),T=t(509),C=t.n(T),k=t(367),w=t.n(k),y=t(152),x=t.n(y),B=t(128),A=t.n(B),P=t(424),S=t(1013),R=t.n(S),K=t(886),I=t(77),N=t(947),j=t.n(N),F=t(285),U=t(222),D=["appInfo"],M=function(e){var n=e.appInfo,t=Object(c.a)(e,D),a=u.a.useState(!1),r=Object(l.a)(a,2),o=r[0],i=r[1],s=Object(P.a)((function(e){return e.breakpoints.down("md")}))?32:48;return o?u.a.createElement(O.a,{did:n.publisher,size:s}):u.a.createElement(w.a,Object.assign({src:n.icon,alt:n.title,width:s,height:s},t,{onError:function(){return i(!0)}}))};function W(){var e=Object(h.useLocaleContext)().t,n=Object(s.useState)(null),t=Object(l.a)(n,2),a=t[0],r=t[1],o=Object(s.useState)(!1),i=Object(l.a)(o,2),c=i[0],d=i[1],p=Object(s.useState)(!1),m=Object(l.a)(p,2),_=m[0],b=m[1],v=Object(P.a)((function(e){return e.breakpoints.down("md")})),O=function(){var e=new URL(window.location.href).searchParams.get("redirect")||"/";window.location=decodeURIComponent(e)};Object(s.useEffect)((function(){var e=null,n=function(){F.a.get("/blocklet/detail").then((function(n){var t=n.data;"running"!==t.status?"starting"!==t.status&&(b(!1),r(t),clearInterval(e)):O()})).catch((function(e){d(!1),g.a.error(e.message)}))};d(!0),F.a.get("/blocklet/detail").then((function(t){var a=t.data;d(!1),"running"!==a.status?(r(a),"starting"===a.status&&(b(!0),e=setInterval(n,3e3))):O()})).catch((function(e){d(!1),g.a.error(e.message)}))}),[]);if(!a)return u.a.createElement(x.a,null,u.a.createElement(A.a,null));var T={icon:"".concat(I.WELLKNOWN_SERVICE_PATH_PREFIX,"/blocklet/logo"),title:Object(K.getDisplayName)(a),publisher:a.appDid},k=localStorage.getItem("blocklet-server-url");return u.a.createElement(z,null,u.a.createElement("header",{className:"root-header"},!v&&u.a.createElement("div",{className:"left"},u.a.createElement(R.a,{width:"128",height:"48",onClick:function(){k&&window.open(k)},style:{cursor:k?"pointer":""}})),u.a.createElement("div",{className:"right"},u.a.createElement(j.a,{SessionContext:U.a}))),u.a.createElement(H,{elevation:0},u.a.createElement(Y,null,u.a.createElement(M,{appInfo:T}),u.a.createElement("div",{className:"app-info_content"},u.a.createElement(f.a,{className:"app-info_name"},T.title),u.a.createElement(C.a,{size:14,className:"app-info_did"},T.publisher))),u.a.createElement(f.a,{className:"title-box"},u.a.createElement(f.a,{className:"icon"},u.a.createElement(E.a,null)),u.a.createElement(f.a,{className:"title"},e("blocklet.startApplication"))),u.a.createElement(f.a,{className:"sub-title"},e("blocklet.startDescription",{name:Object(K.getDisplayName)(a)})),u.a.createElement(f.a,{mt:8},u.a.createElement(L.a,{style:{minWidth:200},disabled:c||_,variant:"contained",color:"primary",size:"large",loading:_,onClick:function(){return d(!0),b(!0),void F.a.post("/blocklet/start").then((function(){O()})).catch((function(e){g.a.error(e.message),d(!1),b(!1)}))}},e(_?"blocklet.starting":"blocklet.start")))))}var z=d.default.div(a||(a=Object(i.a)(["\n width: 100vw;\n height: 100vh;\n background: #f6f8fa;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .root-header {\n position: fixed;\n z-index: 200;\n top: 0;\n display: flex;\n width: 100%;\n height: 68px;\n align-items: center;\n justify-content: flex-end;\n padding: 24px;\n max-width: 1245px;\n\n "," {\n padding: 14px 16px;\n height: 56px;\n }\n\n .left {\n margin-top: 4px;\n margin-right: auto;\n "," {\n margin-top: 0%;\n }\n }\n\n .right {\n display: flex;\n align-items: center;\n "," {\n button,\n a {\n padding-left: 8px;\n padding-right: 8px;\n }\n }\n }\n }\n"])),(function(e){return e.theme.breakpoints.down("md")}),(function(e){return e.theme.breakpoints.down("md")}),(function(e){return e.theme.breakpoints.down("md")})),H=Object(d.default)(m.a)(r||(r=Object(i.a)(["\n width: 80vw;\n max-width: 1245px;\n height: 80vh;\n box-sizing: border-box;\n padding: 32px;\n &.MuiPaper-rounded {\n border-radius: 8px;\n }\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n "," {\n width: 100vw;\n height: 100vh;\n left: 0;\n top: 0;\n padding: 32px 0;\n }\n\n .MuiIconButton-root {\n svg {\n fill: #888;\n }\n &.Mui-disabled {\n opacity: 0.4;\n }\n }\n\n .title-box {\n display: flex;\n align-items: center;\n "," {\n margin-top: 60px;\n }\n }\n\n .icon {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 32px;\n height: 32px;\n border-radius: 100%;\n background-color: ",";\n color: ",";\n }\n\n .title {\n margin-left: 12px;\n color: ",";\n font-size: 24px;\n font-weight: bolder;\n }\n\n .sub-title {\n margin-top: 24px;\n color: ",";\n font-size: 16px;\n }\n"])),(function(e){return e.theme.breakpoints.down("md")}),(function(e){return e.theme.breakpoints.down("md")}),(function(e){return e.theme.palette.primary.main}),(function(e){return e.theme.palette.common.white}),(function(e){return e.theme.palette.primary.main}),(function(e){return e.theme.palette.grey[700]})),Y=d.default.div(o||(o=Object(i.a)(["\n display: flex;\n align-items: center;\n position: absolute;\n left: 24px;\n right: 24px;\n top: 24px;\n font-size: 16px;\n font-weight: 500;\n color: #222;\n\n /* \u7981\u6b62 app icon shrink */\n > *:first-child {\n flex: 0 0 auto;\n }\n\n .app-info_content {\n padding-left: 16px;\n overflow: hidden;\n }\n\n .app-info_name {\n max-width: 100%;\n padding-right: 32px;\n line-height: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: bold;\n }\n\n .app-info_did {\n transform: translate(0, 2px);\n }\n\n .app-info_did .did-address__text {\n color: #666;\n font-size: 14px;\n }\n\n "," {\n top: 12px;\n .app-info_did {\n transform: translate(0, 0);\n }\n .app-info_did .did-address__text {\n font-size: 12px;\n }\n }\n"])),(function(e){return e.theme.breakpoints.down("md")}))},886:function(e,n,t){var a=t(45),r=t(281),o=t(1014),i=t(946),l=t(1015),c=t(77),s=c.NODE_SERVICES,u=c.SLOT_FOR_IP_DNS_SITE,d=c.WHO_CAN_ACCESS,f=t(906),p=f.BlockletGroup,E=f.fromBlockletStatus,m=f.fromBlockletSource,_=f.BLOCKLET_INTERFACE_TYPE_WEB,L=f.BLOCKLET_CONFIGURABLE_KEY,h=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return"".concat(n.map((function(e){return e&&e.meta?e.meta.did:""})).join("/")).concat(n.length?"/":"").concat(e&&e.meta?e.meta.did:"")},b=function e(n,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},l=i.parallel,c=void 0!==l&&l,s=i.sync,u=i.params,d=i._parent,f=i._root,p=i._level,E=void 0===p?0:p,m=i._tasks,_=i._ancestors,L=void 0===_?[]:_,b=f||d||n,g=h(n,L),v=L.concat(n);if(s){var O=t(n,{parent:d,root:b,level:E,params:u,ancestors:L,id:g});if(n.children){var T,C=o(n.children);try{for(C.s();!(T=C.n()).done;){var k=T.value;e(k,t,{sync:s,params:O,_parent:n,_root:b,_level:E+1,_ancestors:v})}}catch(A){C.e(A)}finally{C.f()}}return null}if(!c)return new Promise(function(){var i=r(a.mark((function r(i,l){var c,s,f,p;return a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,a.next=3,t(n,{parent:d,root:b,level:E,ancestors:L,params:u,id:g});case 3:if(c=a.sent,!n.children){a.next=22;break}s=o(n.children),a.prev=6,s.s();case 8:if((f=s.n()).done){a.next=14;break}return p=f.value,a.next=12,e(p,t,{params:c,_parent:n,_root:b,_level:E+1,_ancestors:v});case 12:a.next=8;break;case 14:a.next=19;break;case 16:a.prev=16,a.t0=a.catch(6),s.e(a.t0);case 19:return a.prev=19,s.f(),a.finish(19);case 22:i(null),a.next=28;break;case 25:a.prev=25,a.t1=a.catch(0),l(a.t1);case 28:case"end":return a.stop()}}),r,null,[[0,25],[6,16,19,22]])})));return function(e,n){return i.apply(this,arguments)}}());var w=m||[];if(w.push(t(n,{parent:d,root:b,level:E,ancestors:L})),n.children){var y,x=o(n.children);try{for(x.s();!(y=x.n()).done;){var B=y.value;e(B,t,{parallel:c,_parent:n,_root:b,_level:E+1,_tasks:w,_ancestors:v,id:g})}}catch(A){x.e(A)}finally{x.f()}}return m?null:Promise.all(w)},g=function(e,n){return b(e,n,{sync:!0})},v=function(e,n,t){return b(e,(function(e,t){return 0===t.level?{}:n(e,t)}),t)},O=function(e,n){var t={};if(!n)return t;for(var a=n.length-1;a>=0;a--){var r=n[a];Array.isArray(r.configs)&&r.configs.forEach((function(n){var a=n.key,r=n.value,o=n.secure,i=n.shared;if(!t[a]&&r&&!1===o&&!1!==i&&!L[a]){var l=(e.configs||[]).find((function(e){return e.key===a}));l&&l.value||(t[a]=r)}}))}return t},T=function(e){if(!e)return null;var n=(e.meta||e||{}).interfaces,t=void 0===n?[]:n;return Array.isArray(t)?t.find((function(e){return e.type===_})):null},C=function(e,n){var t=[n];n===s.AUTH&&t.push(s.AUTH_SERVICE);var a=T(e);return a?(a.services||[]).find((function(e){return t.includes(e.name)})):null};e.exports={isFreeBlocklet:function(e){return!e.payment||(e.payment.price||[]).map((function(e){return e.value||0})).every((function(e){return 0===e}))},isComponentBlocklet:function(e){return!1!==i(e,"capabilities.component")},forEachBlocklet:b,forEachBlockletSync:g,forEachChild:v,forEachChildSync:function(e,n){return v(e,n,{sync:!0})},isDeletableBlocklet:function(e){if(!e)return!1;var n=e.environments.find((function(e){return"BLOCKLET_DELETABLE"===e.key}));return!n||"yes"===n.value},getSharedConfigObj:O,getAppMissingConfigs:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=[];return g(e,(function(e,t){var a=t.ancestors,r=e.configs||[],o=O(e,a);r.forEach((function(t){!t.required||t.value||o[t.key]||n.push({did:e.meta.did,key:t.key,description:t.description})}))})),n},getComponentMissingConfigs:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=[],a=e.configs||[],r=O(e,n);return a.forEach((function(n){!n.required||n.value||r[n.key]||t.push({did:e.meta.did,key:n.key,description:n.description})})),t},wipeSensitiveData:function(e){return e?(b(e,(function(n){(n.configs||[]).forEach((function(e){e.secure&&(e.value=e.value?"__encrypted__":"")})),(n.environments||[]).forEach((function(e){["BLOCKLET_APP_SK"].includes(e.key)&&(e.value="__encrypted__")})),delete e.configObj,delete e.environmentObj}),{sync:!0}),e):e},hasRunnableComponent:function(e){var n=!1;return g(e,(function(e){e.meta.group!==p.gateway&&(n=!0)})),n},getDisplayName:function(e){var n,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=e.meta;if(!t&&e.environments){var r=e.environments.find((function(e){return"BLOCKLET_APP_NAME"===e.key}));r&&r.value&&(n=r.value)}return n||a.title||a.name},fixBlockletStatus:function(e){e&&(g(e,(function(e){e.status=E(e.status),void 0!==e.source&&(e.source=m(e.source))})),e.settings&&(e.settings.children||[]).forEach((function(e){g(e,(function(e){e.status=E(e.status),void 0!==e.source&&(e.source=m(e.source))}))})))},findWebInterface:T,findServiceFromMeta:C,getWhoCanAccess:function(e){if(!e)return d.ALL;if(i(e,"settings.whoCanAccess"))return e.settings.whoCanAccess;var n=C(e.meta,s.AUTH);return i(n,"config.whoCanAccess")?n.config.whoCanAccess:d.ALL},replaceSlotToIp:function(e,n){return(e||"").replace(u,(n||"").replace(/\./g,"-"))},urlFriendly:function(e){return l(e.replace(/^[@./-]/,"").replace(/[@./_]/g,"-"))},getComponentId:h,getComponentName:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return"".concat(n.map((function(e){return e&&e.meta?e.meta.name:""})).join("/")).concat(n.length?"/":"").concat(e&&e.meta?e.meta.name:"")},getComponentBundleId:function(e){return"".concat(e.meta.bundleName,"@").concat(e.meta.version)},findComponentById:function e(n,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=a._ancestors,i=void 0===r?[]:r,l=a.returnAncestors,c=void 0!==l&&l,s=h(n,i);if(t===s)return c?{component:n,ancestors:i}:n;var u,d=o(n.children||[]);try{for(d.s();!(u=d.n()).done;){var f=u.value,p=i.concat(n),E=e(f,t,{_ancestors:p,returnAncestors:c});if(E)return E}}catch(m){d.e(m)}finally{d.f()}return null}}},906:function(e,n){var t=function(e){return function(n){var t=Object.entries(e).find((function(e){return e[1]===Number(n)}));return t?t[0]:"unknown"}},a=function(e){return function(n){return Object.keys(e).find((function(t){return e[t]===Number(n)}))}},r=Object.freeze({added:0,downloading:1,downloaded:2,installing:3,installed:4,starting:5,running:6,stopping:7,stopped:8,error:9,upgrading:10,restarting:11,corrupted:12,waiting:13,deleted:14}),o=t(r),i=a(r),l=Object.freeze({registry:0,local:1,upload:2,url:3,custom:4}),c=t(l),s=a(l),u=Object.freeze({static:"static",dapp:"dapp",starter:!1,gateway:"gateway"}),d=Object.freeze({added:"blocklet.added",downloadFailed:"blocklet.downloadFailed",installed:"blocklet.installed",installFailed:"blocklet.installFailed",upgraded:"blocklet.upgraded",downgraded:"blocklet.downgraded",deployed:"blocklet.deployed",updated:"blocklet.updated",statusChange:"blocklet.statusChange",removed:"blocklet.removed",started:"blocklet.started",startFailed:"blocklet.startFailed",stopped:"blocklet.stopped",reloaded:"blocklet.reloaded",purchaseChange:"blocklet.purchaseChange"}),f=["web","service","wellknown"],p=["publicUrl"],E=["publicUrl","wellknownUrl"],m=["tcp","udp","http"];e.exports=Object.freeze({BlockletStatus:r,fromBlockletStatus:o,toBlockletStatus:i,BlockletSource:l,fromBlockletSource:c,toBlockletSource:s,BlockletGroup:u,BLOCKLET_GROUPS:["dapp","static","gateway"],BlockletEvents:d,BLOCKLET_PLATFORMS:["aix","darwin","freebsd","linux","openbsd","sunos","win32"],BLOCKLET_ARCHITECTURES:["arm","arm64","ia32","mips","mipsel","ppc","ppc64","s390","s390x","x32","x64"],BLOCKLET_MODES:Object.freeze({PRODUCTION:"production",DEVELOPMENT:"development"}),BLOCKLET_FACTORY_SHARES:{developer:.7,store:.3},BLOCKLET_INTERFACE_PUBLIC:"publicUrl",BLOCKLET_INTERFACE_WELLKNOWN:"wellknownUrl",BLOCKLET_UI_INTERFACES:p,BLOCKLET_STANDARD_INTERFACES:E,BLOCKLET_INTERFACE_TYPE_WEB:"web",BLOCKLET_INTERFACE_TYPE_SERVICE:"service",BLOCKLET_INTERFACE_TYPE_WELLKNOWN:"wellknown",BLOCKLET_INTERFACE_TYPES:f,BLOCKLET_INTERFACE_PROTOCOL_HTTP:"http",BLOCKLET_INTERFACE_PROTOCOL_TCP:"tcp",BLOCKLET_INTERFACE_PROTOCOL_UDP:"udp",BLOCKLET_INTERFACE_PROTOCOLS:m,BLOCKLET_DYNAMIC_PATH_PREFIX:"*",BLOCKLET_DEFAULT_PORT_NAME:"BLOCKLET_PORT",BLOCKLET_DEFAULT_PATH_REWRITE:"/",BLOCKLET_RELEASE_FOLDER:".blocklet/release",BLOCKLET_RELEASE_FILE:"blocklet.json",BLOCKLET_BUNDLE_FOLDER:".blocklet/bundle",BLOCKLET_BUNDLE_FILE:"blocklet.zip",BLOCKLET_ENTRY_FILE:"blocklet.js",BLOCKLET_META_FILE:"blocklet.yml",BLOCKLET_META_FILE_ALT:"blocklet.yaml",BLOCKLET_META_FILE_OLD:"blocklet.json",BLOCKLET_DEFAULT_VERSION:"1.0.0",BLOCKLET_LATEST_SPEC_VERSION:"1.2.7",BLOCKLET_LATEST_REQUIREMENT_SERVER:">=1.7.0",BLOCKLET_LATEST_REQUIREMENT_ABTNODE:">=1.5.15",BLOCKLET_CONFIGURABLE_KEY:{BLOCKLET_CLUSTER_SIZE:"BLOCKLET_CLUSTER_SIZE",BLOCKLET_APP_NAME:"BLOCKLET_APP_NAME",BLOCKLET_APP_DESCRIPTION:"BLOCKLET_APP_DESCRIPTION",BLOCKLET_APP_SK:"BLOCKLET_APP_SK",BLOCKLET_APP_URL:"BLOCKLET_APP_URL",BLOCKLET_PASSPORT_COLOR:"BLOCKLET_PASSPORT_COLOR",BLOCKLET_WALLET_TYPE:"BLOCKLET_WALLET_TYPE",BLOCKLET_DELETABLE:"BLOCKLET_DELETABLE"}})},947:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=m;var a=function(e,n){if(!n&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var t=E(n);if(t&&t.has(e))return t.get(e);var a={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(a,o,i):a[o]=e[o]}a.default=e,t&&t.set(e,a);return a}(t(0)),r=p(t(48)),o=p(t(10)),i=p(t(127)),l=p(t(1016)),c=t(361),s=p(t(1017)),u=p(t(1018)),d=t(124),f=t(148);function p(e){return e&&e.__esModule?e:{default:e}}function E(e){if("function"!==typeof WeakMap)return null;var n=new WeakMap,t=new WeakMap;return(E=function(e){return e?t:n})(e)}function m(e){var n=e.SessionContext,t=e.webWalletUrl,r=e.extraItems,o=e.showLocale,p=e.showHelper,E=e.showSessionManager,m=e.sessionManagerProps,L=(0,a.useContext)(n).session,h=(0,a.useContext)(d.LocaleContext).locale,b=(0,c.useLocation)(),g=t||(0,f.getWebWalletUrl)(),v={"/dashboard":"/introduction/abtnode-overview","/store":"/marketplace","/blocklets":"/blocklet","/router/rules":"/router","/router/engine":"/router","/settings/basic":"/misc","/settings/team":"/misc/member-management","/console":"/misc/graphql-console"};return a.default.createElement(_,null,r.map((function(e){return e})),o&&a.default.createElement(u.default,{"data-cy":"locale-addon",size:23,showText:!1,className:"locale-addon"}),p&&a.default.createElement(i.default,{onClick:function(){var e=b.pathname,n="";e.indexOf("/blocklets")>-1?n=v["/blocklets"]:e.indexOf("/store")>-1?n=v["/store"]:v[e]&&(n=v[e]),window.open("https://docs.arcblock.io/abtnode/".concat(h).concat(n),"_blank")}},a.default.createElement(l.default,{style:{fontSize:28}})),E&&a.default.createElement(s.default,Object.assign({session:L,webWalletUrl:g,size:24,showRole:!0},m)))}m.propTypes={SessionContext:o.default.object.isRequired,webWalletUrl:o.default.string,extraItems:o.default.array,showLocale:o.default.bool,showSessionManager:o.default.bool,showHelper:o.default.bool,sessionManagerProps:o.default.object},m.defaultProps={webWalletUrl:"",extraItems:[],showLocale:!0,showSessionManager:!0,showHelper:!0,sessionManagerProps:{}};var _=r.default.div.withConfig({displayName:"addon__Div",componentId:"sc-5tyqcw-0"})(["display:flex;justify-content:center;align-items:center;.user-addon{.user-avatar{width:28px;border-radius:14px;height:auto;}}","{> button,> a{padding-left:8px;padding-right:8px;}}"],(function(e){return e.theme.breakpoints.down("md")}))}}]);
|
|
2
|
-
//# sourceMappingURL=12.
|
|
1
|
+
(this["webpackJsonp@abtnode/blocklet-services"]=this["webpackJsonp@abtnode/blocklet-services"]||[]).push([[12],{1141:function(e,n,t){"use strict";var a=t(125);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(t(126)),o=t(2),i=(0,r.default)((0,o.jsx)("path",{d:"M8 5v14l11-7z"}),"PlayArrow");n.default=i},1221:function(e,n,t){"use strict";t.r(n),t.d(n,"default",(function(){return W}));var a,r,o,i=t(25),l=t(11),c=t(1034),s=t(0),u=t.n(s),d=t(221),f=t(486),p=t(1141),E=t.n(p),m=t(188),_=t(360),L=t.n(_),h=t(124),b=t(150),g=t.n(b),v=t(508),O=t.n(v),T=t(509),C=t.n(T),k=t(367),w=t.n(k),y=t(151),x=t.n(y),B=t(127),A=t.n(B),P=t(424),S=t(1013),R=t.n(S),K=t(886),I=t(77),N=t(947),j=t.n(N),F=t(285),U=t(222),D=["appInfo"],M=function(e){var n=e.appInfo,t=Object(c.a)(e,D),a=u.a.useState(!1),r=Object(l.a)(a,2),o=r[0],i=r[1],s=Object(P.a)((function(e){return e.breakpoints.down("md")}))?32:48;return o?u.a.createElement(O.a,{did:n.publisher,size:s}):u.a.createElement(w.a,Object.assign({src:n.icon,alt:n.title,width:s,height:s},t,{onError:function(){return i(!0)}}))};function W(){var e=Object(h.useLocaleContext)().t,n=Object(s.useState)(null),t=Object(l.a)(n,2),a=t[0],r=t[1],o=Object(s.useState)(!1),i=Object(l.a)(o,2),c=i[0],d=i[1],p=Object(s.useState)(!1),m=Object(l.a)(p,2),_=m[0],b=m[1],v=Object(P.a)((function(e){return e.breakpoints.down("md")})),O=function(){var e=new URL(window.location.href).searchParams.get("redirect")||"/";window.location=decodeURIComponent(e)};Object(s.useEffect)((function(){var e=null,n=function(){F.a.get("/blocklet/detail").then((function(n){var t=n.data;"running"!==t.status?"starting"!==t.status&&(b(!1),r(t),clearInterval(e)):O()})).catch((function(e){d(!1),g.a.error(e.message)}))};d(!0),F.a.get("/blocklet/detail").then((function(t){var a=t.data;d(!1),"running"!==a.status?(r(a),"starting"===a.status&&(b(!0),e=setInterval(n,3e3))):O()})).catch((function(e){d(!1),g.a.error(e.message)}))}),[]);if(!a)return u.a.createElement(x.a,null,u.a.createElement(A.a,null));var T={icon:"".concat(I.WELLKNOWN_SERVICE_PATH_PREFIX,"/blocklet/logo"),title:Object(K.getDisplayName)(a),publisher:a.appDid},k=localStorage.getItem("blocklet-server-url");return u.a.createElement(z,null,u.a.createElement("header",{className:"root-header"},!v&&u.a.createElement("div",{className:"left"},u.a.createElement(R.a,{width:"128",height:"48",onClick:function(){k&&window.open(k)},style:{cursor:k?"pointer":""}})),u.a.createElement("div",{className:"right"},u.a.createElement(j.a,{SessionContext:U.a}))),u.a.createElement(H,{elevation:0},u.a.createElement(Y,null,u.a.createElement(M,{appInfo:T}),u.a.createElement("div",{className:"app-info_content"},u.a.createElement(f.a,{className:"app-info_name"},T.title),u.a.createElement(C.a,{size:14,className:"app-info_did"},T.publisher))),u.a.createElement(f.a,{className:"title-box"},u.a.createElement(f.a,{className:"icon"},u.a.createElement(E.a,null)),u.a.createElement(f.a,{className:"title"},e("blocklet.startApplication"))),u.a.createElement(f.a,{className:"sub-title"},e("blocklet.startDescription",{name:Object(K.getDisplayName)(a)})),u.a.createElement(f.a,{mt:8},u.a.createElement(L.a,{style:{minWidth:200},disabled:c||_,variant:"contained",color:"primary",size:"large",loading:_,onClick:function(){return d(!0),b(!0),void F.a.post("/blocklet/start").then((function(){O()})).catch((function(e){g.a.error(e.message),d(!1),b(!1)}))}},e(_?"blocklet.starting":"blocklet.start")))))}var z=d.default.div(a||(a=Object(i.a)(["\n width: 100vw;\n height: 100vh;\n background: #f6f8fa;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .root-header {\n position: fixed;\n z-index: 200;\n top: 0;\n display: flex;\n width: 100%;\n height: 68px;\n align-items: center;\n justify-content: flex-end;\n padding: 24px;\n max-width: 1245px;\n\n "," {\n padding: 14px 16px;\n height: 56px;\n }\n\n .left {\n margin-top: 4px;\n margin-right: auto;\n "," {\n margin-top: 0%;\n }\n }\n\n .right {\n display: flex;\n align-items: center;\n "," {\n button,\n a {\n padding-left: 8px;\n padding-right: 8px;\n }\n }\n }\n }\n"])),(function(e){return e.theme.breakpoints.down("md")}),(function(e){return e.theme.breakpoints.down("md")}),(function(e){return e.theme.breakpoints.down("md")})),H=Object(d.default)(m.a)(r||(r=Object(i.a)(["\n width: 80vw;\n max-width: 1245px;\n height: 80vh;\n box-sizing: border-box;\n padding: 32px;\n &.MuiPaper-rounded {\n border-radius: 8px;\n }\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n "," {\n width: 100vw;\n height: 100vh;\n left: 0;\n top: 0;\n padding: 32px 0;\n }\n\n .MuiIconButton-root {\n svg {\n fill: #888;\n }\n &.Mui-disabled {\n opacity: 0.4;\n }\n }\n\n .title-box {\n display: flex;\n align-items: center;\n "," {\n margin-top: 60px;\n }\n }\n\n .icon {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 32px;\n height: 32px;\n border-radius: 100%;\n background-color: ",";\n color: ",";\n }\n\n .title {\n margin-left: 12px;\n color: ",";\n font-size: 24px;\n font-weight: bolder;\n }\n\n .sub-title {\n margin-top: 24px;\n color: ",";\n font-size: 16px;\n }\n"])),(function(e){return e.theme.breakpoints.down("md")}),(function(e){return e.theme.breakpoints.down("md")}),(function(e){return e.theme.palette.primary.main}),(function(e){return e.theme.palette.common.white}),(function(e){return e.theme.palette.primary.main}),(function(e){return e.theme.palette.grey[700]})),Y=d.default.div(o||(o=Object(i.a)(["\n display: flex;\n align-items: center;\n position: absolute;\n left: 24px;\n right: 24px;\n top: 24px;\n font-size: 16px;\n font-weight: 500;\n color: #222;\n\n /* \u7981\u6b62 app icon shrink */\n > *:first-child {\n flex: 0 0 auto;\n }\n\n .app-info_content {\n padding-left: 16px;\n overflow: hidden;\n }\n\n .app-info_name {\n max-width: 100%;\n padding-right: 32px;\n line-height: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: bold;\n }\n\n .app-info_did {\n transform: translate(0, 2px);\n }\n\n .app-info_did .did-address__text {\n color: #666;\n font-size: 14px;\n }\n\n "," {\n top: 12px;\n .app-info_did {\n transform: translate(0, 0);\n }\n .app-info_did .did-address__text {\n font-size: 12px;\n }\n }\n"])),(function(e){return e.theme.breakpoints.down("md")}))},886:function(e,n,t){var a=t(45),r=t(281),o=t(1014),i=t(946),l=t(1015),c=t(77),s=c.NODE_SERVICES,u=c.SLOT_FOR_IP_DNS_SITE,d=c.WHO_CAN_ACCESS,f=t(906),p=f.BlockletGroup,E=f.fromBlockletStatus,m=f.fromBlockletSource,_=f.BLOCKLET_INTERFACE_TYPE_WEB,L=f.BLOCKLET_CONFIGURABLE_KEY,h=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return"".concat(n.map((function(e){return e&&e.meta?e.meta.did:""})).join("/")).concat(n.length?"/":"").concat(e&&e.meta?e.meta.did:"")},b=function e(n,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},l=i.parallel,c=void 0!==l&&l,s=i.sync,u=i.params,d=i._parent,f=i._root,p=i._level,E=void 0===p?0:p,m=i._tasks,_=i._ancestors,L=void 0===_?[]:_,b=f||d||n,g=h(n,L),v=L.concat(n);if(s){var O=t(n,{parent:d,root:b,level:E,params:u,ancestors:L,id:g});if(n.children){var T,C=o(n.children);try{for(C.s();!(T=C.n()).done;){var k=T.value;e(k,t,{sync:s,params:O,_parent:n,_root:b,_level:E+1,_ancestors:v})}}catch(A){C.e(A)}finally{C.f()}}return null}if(!c)return new Promise(function(){var i=r(a.mark((function r(i,l){var c,s,f,p;return a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,a.next=3,t(n,{parent:d,root:b,level:E,ancestors:L,params:u,id:g});case 3:if(c=a.sent,!n.children){a.next=22;break}s=o(n.children),a.prev=6,s.s();case 8:if((f=s.n()).done){a.next=14;break}return p=f.value,a.next=12,e(p,t,{params:c,_parent:n,_root:b,_level:E+1,_ancestors:v});case 12:a.next=8;break;case 14:a.next=19;break;case 16:a.prev=16,a.t0=a.catch(6),s.e(a.t0);case 19:return a.prev=19,s.f(),a.finish(19);case 22:i(null),a.next=28;break;case 25:a.prev=25,a.t1=a.catch(0),l(a.t1);case 28:case"end":return a.stop()}}),r,null,[[0,25],[6,16,19,22]])})));return function(e,n){return i.apply(this,arguments)}}());var w=m||[];if(w.push(t(n,{parent:d,root:b,level:E,ancestors:L})),n.children){var y,x=o(n.children);try{for(x.s();!(y=x.n()).done;){var B=y.value;e(B,t,{parallel:c,_parent:n,_root:b,_level:E+1,_tasks:w,_ancestors:v,id:g})}}catch(A){x.e(A)}finally{x.f()}}return m?null:Promise.all(w)},g=function(e,n){return b(e,n,{sync:!0})},v=function(e,n,t){return b(e,(function(e,t){return 0===t.level?{}:n(e,t)}),t)},O=function(e,n){var t={};if(!n)return t;for(var a=n.length-1;a>=0;a--){var r=n[a];Array.isArray(r.configs)&&r.configs.forEach((function(n){var a=n.key,r=n.value,o=n.secure,i=n.shared;if(!t[a]&&r&&!1===o&&!1!==i&&!L[a]){var l=(e.configs||[]).find((function(e){return e.key===a}));l&&l.value||(t[a]=r)}}))}return t},T=function(e){if(!e)return null;var n=(e.meta||e||{}).interfaces,t=void 0===n?[]:n;return Array.isArray(t)?t.find((function(e){return e.type===_})):null},C=function(e,n){var t=[n];n===s.AUTH&&t.push(s.AUTH_SERVICE);var a=T(e);return a?(a.services||[]).find((function(e){return t.includes(e.name)})):null};e.exports={isFreeBlocklet:function(e){return!e.payment||(e.payment.price||[]).map((function(e){return e.value||0})).every((function(e){return 0===e}))},isComponentBlocklet:function(e){return!1!==i(e,"capabilities.component")},forEachBlocklet:b,forEachBlockletSync:g,forEachChild:v,forEachChildSync:function(e,n){return v(e,n,{sync:!0})},isDeletableBlocklet:function(e){if(!e)return!1;var n=e.environments.find((function(e){return"BLOCKLET_DELETABLE"===e.key}));return!n||"yes"===n.value},getSharedConfigObj:O,getAppMissingConfigs:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=[];return g(e,(function(e,t){var a=t.ancestors,r=e.configs||[],o=O(e,a);r.forEach((function(t){!t.required||t.value||o[t.key]||n.push({did:e.meta.did,key:t.key,description:t.description})}))})),n},getComponentMissingConfigs:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=[],a=e.configs||[],r=O(e,n);return a.forEach((function(n){!n.required||n.value||r[n.key]||t.push({did:e.meta.did,key:n.key,description:n.description})})),t},wipeSensitiveData:function(e){return e?(b(e,(function(n){(n.configs||[]).forEach((function(e){e.secure&&(e.value=e.value?"__encrypted__":"")})),(n.environments||[]).forEach((function(e){["BLOCKLET_APP_SK"].includes(e.key)&&(e.value="__encrypted__")})),delete e.configObj,delete e.environmentObj}),{sync:!0}),e):e},hasRunnableComponent:function(e){var n=!1;return g(e,(function(e){e.meta.group!==p.gateway&&(n=!0)})),n},getDisplayName:function(e){var n,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=e.meta;if(!t&&e.environments){var r=e.environments.find((function(e){return"BLOCKLET_APP_NAME"===e.key}));r&&r.value&&(n=r.value)}return n||a.title||a.name},fixBlockletStatus:function(e){e&&(g(e,(function(e){e.status=E(e.status),void 0!==e.source&&(e.source=m(e.source))})),e.settings&&(e.settings.children||[]).forEach((function(e){g(e,(function(e){e.status=E(e.status),void 0!==e.source&&(e.source=m(e.source))}))})))},findWebInterface:T,findServiceFromMeta:C,getWhoCanAccess:function(e){if(!e)return d.ALL;if(i(e,"settings.whoCanAccess"))return e.settings.whoCanAccess;var n=C(e.meta,s.AUTH);return i(n,"config.whoCanAccess")?n.config.whoCanAccess:d.ALL},replaceSlotToIp:function(e,n){return(e||"").replace(u,(n||"").replace(/\./g,"-"))},urlFriendly:function(e){return l(e.replace(/^[@./-]/,"").replace(/[@./_]/g,"-"))},getComponentId:h,getComponentName:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return"".concat(n.map((function(e){return e&&e.meta?e.meta.name:""})).join("/")).concat(n.length?"/":"").concat(e&&e.meta?e.meta.name:"")},getComponentBundleId:function(e){return"".concat(e.meta.bundleName,"@").concat(e.meta.version)},findComponentById:function e(n,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=a._ancestors,i=void 0===r?[]:r,l=a.returnAncestors,c=void 0!==l&&l,s=h(n,i);if(t===s)return c?{component:n,ancestors:i}:n;var u,d=o(n.children||[]);try{for(d.s();!(u=d.n()).done;){var f=u.value,p=i.concat(n),E=e(f,t,{_ancestors:p,returnAncestors:c});if(E)return E}}catch(m){d.e(m)}finally{d.f()}return null}}},906:function(e,n){var t=function(e){return function(n){var t=Object.entries(e).find((function(e){return e[1]===Number(n)}));return t?t[0]:"unknown"}},a=function(e){return function(n){return Object.keys(e).find((function(t){return e[t]===Number(n)}))}},r=Object.freeze({added:0,downloading:1,downloaded:2,installing:3,installed:4,starting:5,running:6,stopping:7,stopped:8,error:9,upgrading:10,restarting:11,corrupted:12,waiting:13,deleted:14}),o=t(r),i=a(r),l=Object.freeze({registry:0,local:1,upload:2,url:3,custom:4}),c=t(l),s=a(l),u=Object.freeze({static:"static",dapp:"dapp",starter:!1,gateway:"gateway"}),d=Object.freeze({added:"blocklet.added",downloadFailed:"blocklet.downloadFailed",installed:"blocklet.installed",installFailed:"blocklet.installFailed",upgraded:"blocklet.upgraded",downgraded:"blocklet.downgraded",deployed:"blocklet.deployed",updated:"blocklet.updated",statusChange:"blocklet.statusChange",removed:"blocklet.removed",started:"blocklet.started",startFailed:"blocklet.startFailed",stopped:"blocklet.stopped",reloaded:"blocklet.reloaded",purchaseChange:"blocklet.purchaseChange"}),f=["web","service","wellknown"],p=["publicUrl"],E=["publicUrl","wellknownUrl"],m=["tcp","udp","http"];e.exports=Object.freeze({BlockletStatus:r,fromBlockletStatus:o,toBlockletStatus:i,BlockletSource:l,fromBlockletSource:c,toBlockletSource:s,BlockletGroup:u,BLOCKLET_GROUPS:["dapp","static","gateway"],BlockletEvents:d,BLOCKLET_PLATFORMS:["aix","darwin","freebsd","linux","openbsd","sunos","win32"],BLOCKLET_ARCHITECTURES:["arm","arm64","ia32","mips","mipsel","ppc","ppc64","s390","s390x","x32","x64"],BLOCKLET_MODES:Object.freeze({PRODUCTION:"production",DEVELOPMENT:"development"}),BLOCKLET_FACTORY_SHARES:{developer:.7,store:.3},BLOCKLET_INTERFACE_PUBLIC:"publicUrl",BLOCKLET_INTERFACE_WELLKNOWN:"wellknownUrl",BLOCKLET_UI_INTERFACES:p,BLOCKLET_STANDARD_INTERFACES:E,BLOCKLET_INTERFACE_TYPE_WEB:"web",BLOCKLET_INTERFACE_TYPE_SERVICE:"service",BLOCKLET_INTERFACE_TYPE_WELLKNOWN:"wellknown",BLOCKLET_INTERFACE_TYPES:f,BLOCKLET_INTERFACE_PROTOCOL_HTTP:"http",BLOCKLET_INTERFACE_PROTOCOL_TCP:"tcp",BLOCKLET_INTERFACE_PROTOCOL_UDP:"udp",BLOCKLET_INTERFACE_PROTOCOLS:m,BLOCKLET_DYNAMIC_PATH_PREFIX:"*",BLOCKLET_DEFAULT_PORT_NAME:"BLOCKLET_PORT",BLOCKLET_DEFAULT_PATH_REWRITE:"/",BLOCKLET_RELEASE_FOLDER:".blocklet/release",BLOCKLET_RELEASE_FILE:"blocklet.json",BLOCKLET_BUNDLE_FOLDER:".blocklet/bundle",BLOCKLET_BUNDLE_FILE:"blocklet.zip",BLOCKLET_ENTRY_FILE:"blocklet.js",BLOCKLET_META_FILE:"blocklet.yml",BLOCKLET_META_FILE_ALT:"blocklet.yaml",BLOCKLET_META_FILE_OLD:"blocklet.json",BLOCKLET_DEFAULT_VERSION:"1.0.0",BLOCKLET_LATEST_SPEC_VERSION:"1.2.7",BLOCKLET_LATEST_REQUIREMENT_SERVER:">=1.7.0",BLOCKLET_LATEST_REQUIREMENT_ABTNODE:">=1.5.15",BLOCKLET_CONFIGURABLE_KEY:{BLOCKLET_CLUSTER_SIZE:"BLOCKLET_CLUSTER_SIZE",BLOCKLET_APP_NAME:"BLOCKLET_APP_NAME",BLOCKLET_APP_DESCRIPTION:"BLOCKLET_APP_DESCRIPTION",BLOCKLET_APP_SK:"BLOCKLET_APP_SK",BLOCKLET_APP_URL:"BLOCKLET_APP_URL",BLOCKLET_PASSPORT_COLOR:"BLOCKLET_PASSPORT_COLOR",BLOCKLET_WALLET_TYPE:"BLOCKLET_WALLET_TYPE",BLOCKLET_DELETABLE:"BLOCKLET_DELETABLE"}})},947:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=m;var a=function(e,n){if(!n&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var t=E(n);if(t&&t.has(e))return t.get(e);var a={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(a,o,i):a[o]=e[o]}a.default=e,t&&t.set(e,a);return a}(t(0)),r=p(t(48)),o=p(t(10)),i=p(t(128)),l=p(t(1016)),c=t(361),s=p(t(1017)),u=p(t(1018)),d=t(124),f=t(148);function p(e){return e&&e.__esModule?e:{default:e}}function E(e){if("function"!==typeof WeakMap)return null;var n=new WeakMap,t=new WeakMap;return(E=function(e){return e?t:n})(e)}function m(e){var n=e.SessionContext,t=e.webWalletUrl,r=e.extraItems,o=e.showLocale,p=e.showHelper,E=e.showSessionManager,m=e.sessionManagerProps,L=(0,a.useContext)(n).session,h=(0,a.useContext)(d.LocaleContext).locale,b=(0,c.useLocation)(),g=t||(0,f.getWebWalletUrl)(),v={"/dashboard":"/introduction/abtnode-overview","/store":"/marketplace","/blocklets":"/blocklet","/router/rules":"/router","/router/engine":"/router","/settings/basic":"/misc","/settings/team":"/misc/member-management","/console":"/misc/graphql-console"};return a.default.createElement(_,null,r.map((function(e){return e})),o&&a.default.createElement(u.default,{"data-cy":"locale-addon",size:23,showText:!1,className:"locale-addon"}),p&&a.default.createElement(i.default,{onClick:function(){var e=b.pathname,n="";e.indexOf("/blocklets")>-1?n=v["/blocklets"]:e.indexOf("/store")>-1?n=v["/store"]:v[e]&&(n=v[e]),window.open("https://docs.arcblock.io/abtnode/".concat(h).concat(n),"_blank")}},a.default.createElement(l.default,{style:{fontSize:28}})),E&&a.default.createElement(s.default,Object.assign({session:L,webWalletUrl:g,size:24,showRole:!0},m)))}m.propTypes={SessionContext:o.default.object.isRequired,webWalletUrl:o.default.string,extraItems:o.default.array,showLocale:o.default.bool,showSessionManager:o.default.bool,showHelper:o.default.bool,sessionManagerProps:o.default.object},m.defaultProps={webWalletUrl:"",extraItems:[],showLocale:!0,showSessionManager:!0,showHelper:!0,sessionManagerProps:{}};var _=r.default.div.withConfig({displayName:"addon__Div",componentId:"sc-5tyqcw-0"})(["display:flex;justify-content:center;align-items:center;.user-addon{.user-avatar{width:28px;border-radius:14px;height:auto;}}","{> button,> a{padding-left:8px;padding-right:8px;}}"],(function(e){return e.theme.breakpoints.down("md")}))}}]);
|
|
2
|
+
//# sourceMappingURL=12.00f1963c.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/@mui/icons-material/PlayArrow.js","pages/start.js","../../../blocklet/meta/lib/util.js","../../../blocklet/meta/lib/constants.js","../../ux/lib/layout/addon.js"],"names":["_interopRequireDefault","require","Object","defineProperty","exports","value","default","_createSvgIcon","_jsxRuntime","_default","jsx","d","AppIcon","appInfo","rest","React","useState","error","setError","size","useMediaQuery","theme","breakpoints","down","did","publisher","src","icon","alt","title","width","height","onError","Start","t","useLocaleContext","blocklet","setBlocklet","loading","setLoading","starting","setStarting","isMobile","visitBlocklet","redirect","URL","window","location","href","searchParams","get","decodeURIComponent","useEffect","timer","checkStatus","api","then","data","status","clearInterval","catch","err","Toast","message","setInterval","WELLKNOWN_SERVICE_PATH_PREFIX","getDisplayName","appDid","serverUrl","localStorage","getItem","Root","className","onClick","open","style","cursor","SessionContext","StyledPaper","elevation","AppInfo","name","mt","minWidth","disabled","variant","color","post","styled","div","props","Paper","palette","primary","main","common","white","grey","slugify","NODE_SERVICES","SLOT_FOR_IP_DNS_SITE","WHO_CAN_ACCESS","BlockletGroup","fromBlockletStatus","fromBlockletSource","BLOCKLET_INTERFACE_TYPE_WEB","BLOCKLET_CONFIGURABLE_KEY","getComponentId","component","ancestors","map","x","meta","join","length","forEachBlocklet","cb","parallel","sync","inputParams","params","_parent","_root","_level","inputTasks","_tasks","_ancestors","root","id","newAncestors","concat","parent","level","children","child","Promise","resolve","reject","tasks","push","all","forEachBlockletSync","forEachChild","b","opt","getSharedConfigObj","res","i","ancestor","Array","isArray","configs","forEach","key","secure","shared","config","find","findWebInterface","interfaces","type","findServiceFromMeta","ServiceName","names","AUTH","AUTH_SERVICE","webInterface","services","includes","module","isFreeBlocklet","payment","price","every","isComponentBlocklet","forEachChildSync","isDeletableBlocklet","environments","getAppMissingConfigs","missingConfigs","sharedConfigObj","item","required","description","getComponentMissingConfigs","wipeSensitiveData","configObj","environmentObj","hasRunnableComponent","has","group","gateway","displayName","onlyUseMeta","target","e","fixBlockletStatus","undefined","source","settings","getWhoCanAccess","ALL","whoCanAccess","service","replaceSlotToIp","url","ip","replace","urlFriendly","getComponentName","getComponentBundleId","bundleName","version","findComponentById","componentId","returnAncestors","fromEntry","entries","v","match","Number","toEntry","keys","BlockletStatus","freeze","added","downloading","downloaded","installing","installed","running","stopping","stopped","upgrading","restarting","corrupted","waiting","deleted","toBlockletStatus","BlockletSource","registry","local","upload","custom","toBlockletSource","static","dapp","starter","BlockletEvents","downloadFailed","installFailed","upgraded","downgraded","deployed","updated","statusChange","removed","started","startFailed","reloaded","purchaseChange","BLOCKLET_INTERFACE_TYPES","BLOCKLET_UI_INTERFACES","BLOCKLET_STANDARD_INTERFACES","BLOCKLET_INTERFACE_PROTOCOLS","BLOCKLET_GROUPS","BLOCKLET_PLATFORMS","BLOCKLET_ARCHITECTURES","BLOCKLET_MODES","PRODUCTION","DEVELOPMENT","BLOCKLET_FACTORY_SHARES","developer","store","BLOCKLET_INTERFACE_PUBLIC","BLOCKLET_INTERFACE_WELLKNOWN","BLOCKLET_INTERFACE_TYPE_SERVICE","BLOCKLET_INTERFACE_TYPE_WELLKNOWN","BLOCKLET_INTERFACE_PROTOCOL_HTTP","BLOCKLET_INTERFACE_PROTOCOL_TCP","BLOCKLET_INTERFACE_PROTOCOL_UDP","BLOCKLET_DYNAMIC_PATH_PREFIX","BLOCKLET_DEFAULT_PORT_NAME","BLOCKLET_DEFAULT_PATH_REWRITE","BLOCKLET_RELEASE_FOLDER","BLOCKLET_RELEASE_FILE","BLOCKLET_BUNDLE_FOLDER","BLOCKLET_BUNDLE_FILE","BLOCKLET_ENTRY_FILE","BLOCKLET_META_FILE","BLOCKLET_META_FILE_ALT","BLOCKLET_META_FILE_OLD","BLOCKLET_DEFAULT_VERSION","BLOCKLET_LATEST_SPEC_VERSION","BLOCKLET_LATEST_REQUIREMENT_SERVER","BLOCKLET_LATEST_REQUIREMENT_ABTNODE","BLOCKLET_CLUSTER_SIZE","BLOCKLET_APP_NAME","BLOCKLET_APP_DESCRIPTION","BLOCKLET_APP_SK","BLOCKLET_APP_URL","BLOCKLET_PASSPORT_COLOR","BLOCKLET_WALLET_TYPE","BLOCKLET_DELETABLE","HeaderAddon","_react","obj","nodeInterop","__esModule","cache","_getRequireWildcardCache","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","prototype","hasOwnProperty","call","desc","set","_interopRequireWildcard","_styledComponents","_propTypes","_IconButton","_HelpOutline","_reactRouterDom","_SessionManager","_selector","_context","_utils","WeakMap","cacheBabelInterop","cacheNodeInterop","_ref","webWalletUrl","extraItems","showLocale","showHelper","showSessionManager","sessionManagerProps","session","useContext","locale","LocaleContext","useLocation","walletUrl","getWebWalletUrl","docPaths","createElement","Div","showText","pathName","pathname","path","indexOf","fontSize","assign","showRole","propTypes","object","isRequired","string","array","bool","defaultProps","withConfig"],"mappings":"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","file":"static/js/12.d2f688d1.chunk.js","sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M8 5v14l11-7z\"\n}), 'PlayArrow');\n\nexports.default = _default;","/* eslint-disable react/jsx-one-expression-per-line */\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from '@emotion/styled';\n\nimport Box from '@mui/material/Box';\nimport PlayArrowIcon from '@mui/icons-material/PlayArrow';\nimport Paper from '@mui/material/Paper';\n\nimport Button from '@arcblock/ux/lib/Button';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport Toast from '@abtnode/ux/lib/toast';\nimport DidAvatar from '@arcblock/did-connect/lib/Avatar';\nimport DidAddress from '@arcblock/did-connect/lib/Address';\nimport Img from '@arcblock/ux/lib/Img';\nimport Center from '@arcblock/ux/lib/Center';\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport ServerLogo from '@arcblock/icons/lib/ServerLogo';\n\nimport { getDisplayName } from '@blocklet/meta/lib/util';\nimport { WELLKNOWN_SERVICE_PATH_PREFIX } from '@abtnode/constant';\nimport HeaderAddon from '@abtnode/ux/lib/layout/addon';\n\nimport api from '../libs/api';\nimport { SessionContext } from '../contexts/session';\n\nconst AppIcon = ({ appInfo, ...rest }) => {\n const [error, setError] = React.useState(false);\n const isMobile = useMediaQuery((theme) => theme.breakpoints.down('md'));\n const size = isMobile ? 32 : 48;\n\n if (error) {\n return <DidAvatar did={appInfo.publisher} size={size} />;\n }\n return (\n <Img src={appInfo.icon} alt={appInfo.title} width={size} height={size} {...rest} onError={() => setError(true)} />\n );\n};\n\nAppIcon.propTypes = {\n appInfo: PropTypes.object.isRequired,\n};\n\nexport default function Start() {\n const { t } = useLocaleContext();\n const [blocklet, setBlocklet] = useState(null);\n const [loading, setLoading] = useState(false);\n const [starting, setStarting] = useState(false);\n const isMobile = useMediaQuery((theme) => theme.breakpoints.down('md'));\n\n const visitBlocklet = () => {\n const url = new URL(window.location.href);\n const redirect = url.searchParams.get('redirect') || '/';\n window.location = decodeURIComponent(redirect);\n };\n\n useEffect(() => {\n let timer = null;\n\n const checkStatus = () => {\n api\n .get('/blocklet/detail')\n .then(({ data }) => {\n if (data.status === 'running') {\n visitBlocklet();\n return;\n }\n\n if (data.status !== 'starting') {\n setStarting(false);\n setBlocklet(data);\n clearInterval(timer);\n }\n })\n .catch((err) => {\n setLoading(false);\n Toast.error(err.message);\n });\n };\n\n setLoading(true);\n api\n .get('/blocklet/detail')\n .then(({ data }) => {\n setLoading(false);\n if (data.status === 'running') {\n visitBlocklet();\n return;\n }\n\n setBlocklet(data);\n\n if (data.status === 'starting') {\n setStarting(true);\n timer = setInterval(checkStatus, 3000);\n }\n })\n .catch((err) => {\n setLoading(false);\n Toast.error(err.message);\n });\n }, []);\n\n const startBlocklet = () => {\n setLoading(true);\n setStarting(true);\n api\n .post('/blocklet/start')\n .then(() => {\n visitBlocklet();\n })\n .catch((err) => {\n Toast.error(err.message);\n setLoading(false);\n setStarting(false);\n });\n };\n\n if (!blocklet) {\n return (\n <Center>\n <Spinner />\n </Center>\n );\n }\n\n const appInfo = {\n icon: `${WELLKNOWN_SERVICE_PATH_PREFIX}/blocklet/logo`,\n title: getDisplayName(blocklet),\n publisher: blocklet.appDid,\n };\n const serverUrl = localStorage.getItem('blocklet-server-url');\n\n const clickLogo = () => {\n if (serverUrl) {\n window.open(serverUrl);\n }\n };\n\n return (\n <Root>\n <header className=\"root-header\">\n {!isMobile && (\n <div className=\"left\">\n <ServerLogo width=\"128\" height=\"48\" onClick={clickLogo} style={{ cursor: serverUrl ? 'pointer' : '' }} />\n </div>\n )}\n <div className=\"right\">\n <HeaderAddon SessionContext={SessionContext} />\n </div>\n </header>\n\n <StyledPaper elevation={0}>\n <AppInfo>\n <AppIcon appInfo={appInfo} />\n <div className=\"app-info_content\">\n <Box className=\"app-info_name\">{appInfo.title}</Box>\n <DidAddress size={14} className=\"app-info_did\">\n {appInfo.publisher}\n </DidAddress>\n </div>\n </AppInfo>\n\n <Box className=\"title-box\">\n <Box className=\"icon\">\n <PlayArrowIcon />\n </Box>\n <Box className=\"title\">{t('blocklet.startApplication')}</Box>\n </Box>\n <Box className=\"sub-title\">{t('blocklet.startDescription', { name: getDisplayName(blocklet) })}</Box>\n\n <Box mt={8}>\n <Button\n style={{ minWidth: 200 }}\n disabled={loading || starting}\n variant=\"contained\"\n color=\"primary\"\n size=\"large\"\n loading={starting}\n onClick={() => startBlocklet()}>\n {starting ? t('blocklet.starting') : t('blocklet.start')}\n </Button>\n </Box>\n </StyledPaper>\n </Root>\n );\n}\n\nconst Root = styled.div`\n width: 100vw;\n height: 100vh;\n background: #f6f8fa;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .root-header {\n position: fixed;\n z-index: 200;\n top: 0;\n display: flex;\n width: 100%;\n height: 68px;\n align-items: center;\n justify-content: flex-end;\n padding: 24px;\n max-width: 1245px;\n\n ${(props) => props.theme.breakpoints.down('md')} {\n padding: 14px 16px;\n height: 56px;\n }\n\n .left {\n margin-top: 4px;\n margin-right: auto;\n ${(props) => props.theme.breakpoints.down('md')} {\n margin-top: 0%;\n }\n }\n\n .right {\n display: flex;\n align-items: center;\n ${(props) => props.theme.breakpoints.down('md')} {\n button,\n a {\n padding-left: 8px;\n padding-right: 8px;\n }\n }\n }\n }\n`;\n\nconst StyledPaper = styled(Paper)`\n width: 80vw;\n max-width: 1245px;\n height: 80vh;\n box-sizing: border-box;\n padding: 32px;\n &.MuiPaper-rounded {\n border-radius: 8px;\n }\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n ${(props) => props.theme.breakpoints.down('md')} {\n width: 100vw;\n height: 100vh;\n left: 0;\n top: 0;\n padding: 32px 0;\n }\n\n .MuiIconButton-root {\n svg {\n fill: #888;\n }\n &.Mui-disabled {\n opacity: 0.4;\n }\n }\n\n .title-box {\n display: flex;\n align-items: center;\n ${(props) => props.theme.breakpoints.down('md')} {\n margin-top: 60px;\n }\n }\n\n .icon {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 32px;\n height: 32px;\n border-radius: 100%;\n background-color: ${(props) => props.theme.palette.primary.main};\n color: ${(props) => props.theme.palette.common.white};\n }\n\n .title {\n margin-left: 12px;\n color: ${(props) => props.theme.palette.primary.main};\n font-size: 24px;\n font-weight: bolder;\n }\n\n .sub-title {\n margin-top: 24px;\n color: ${(props) => props.theme.palette.grey[700]};\n font-size: 16px;\n }\n`;\n\nconst AppInfo = styled.div`\n display: flex;\n align-items: center;\n position: absolute;\n left: 24px;\n right: 24px;\n top: 24px;\n font-size: 16px;\n font-weight: 500;\n color: #222;\n\n /* 禁止 app icon shrink */\n > *:first-child {\n flex: 0 0 auto;\n }\n\n .app-info_content {\n padding-left: 16px;\n overflow: hidden;\n }\n\n .app-info_name {\n max-width: 100%;\n padding-right: 32px;\n line-height: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: bold;\n }\n\n .app-info_did {\n transform: translate(0, 2px);\n }\n\n .app-info_did .did-address__text {\n color: #666;\n font-size: 14px;\n }\n\n ${(props) => props.theme.breakpoints.down('md')} {\n top: 12px;\n .app-info_did {\n transform: translate(0, 0);\n }\n .app-info_did .did-address__text {\n font-size: 12px;\n }\n }\n`;\n","/* eslint-disable no-await-in-loop */\nconst get = require('lodash/get');\nconst slugify = require('slugify');\n\nconst { NODE_SERVICES, SLOT_FOR_IP_DNS_SITE, WHO_CAN_ACCESS } = require('@abtnode/constant');\n\nconst {\n BlockletGroup,\n fromBlockletStatus,\n fromBlockletSource,\n BLOCKLET_INTERFACE_TYPE_WEB,\n BLOCKLET_CONFIGURABLE_KEY,\n} = require('./constants');\n\nconst getComponentId = (component, ancestors = []) =>\n `${ancestors.map((x) => (x && x.meta ? x.meta.did : '')).join('/')}${ancestors.length ? '/' : ''}${\n component && component.meta ? component.meta.did : ''\n }`;\n\nconst getComponentName = (component, ancestors = []) =>\n `${ancestors.map((x) => (x && x.meta ? x.meta.name : '')).join('/')}${ancestors.length ? '/' : ''}${\n component && component.meta ? component.meta.name : ''\n }`;\n\nconst getComponentBundleId = (component) => `${component.meta.bundleName}@${component.meta.version}`;\n\nconst forEachBlocklet = (\n blocklet,\n cb,\n { parallel = false, sync, params: inputParams, _parent, _root, _level = 0, _tasks: inputTasks, _ancestors = [] } = {}\n) => {\n const root = _root || _parent || blocklet;\n\n // id maybe meaningless if no meta in blocklet or _ancestors\n const id = getComponentId(blocklet, _ancestors);\n\n const newAncestors = _ancestors.concat(blocklet);\n\n // sync\n if (sync) {\n const params = cb(blocklet, {\n parent: _parent,\n root,\n level: _level,\n params: inputParams,\n ancestors: _ancestors,\n id,\n });\n if (blocklet.children) {\n for (const child of blocklet.children) {\n forEachBlocklet(child, cb, {\n sync,\n params,\n _parent: blocklet,\n _root: root,\n _level: _level + 1,\n _ancestors: newAncestors,\n });\n }\n }\n return null;\n }\n\n // serial\n if (!parallel) {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n try {\n const params = await cb(blocklet, {\n parent: _parent,\n root,\n level: _level,\n ancestors: _ancestors,\n params: inputParams,\n id,\n });\n if (blocklet.children) {\n for (const child of blocklet.children) {\n await forEachBlocklet(child, cb, {\n params,\n _parent: blocklet,\n _root: root,\n _level: _level + 1,\n _ancestors: newAncestors,\n });\n }\n }\n\n resolve(null);\n } catch (err) {\n reject(err);\n }\n });\n }\n\n // parallel\n const tasks = inputTasks || [];\n tasks.push(cb(blocklet, { parent: _parent, root, level: _level, ancestors: _ancestors }));\n if (blocklet.children) {\n for (const child of blocklet.children) {\n forEachBlocklet(child, cb, {\n parallel,\n _parent: blocklet,\n _root: root,\n _level: _level + 1,\n _tasks: tasks,\n _ancestors: newAncestors,\n id,\n });\n }\n }\n if (inputTasks) {\n return null;\n }\n return Promise.all(tasks);\n};\n\nconst forEachBlockletSync = (blocklet, cb) => forEachBlocklet(blocklet, cb, { sync: true });\n\nconst forEachChild = (blocklet, cb, params) => {\n return forEachBlocklet(\n blocklet,\n (b, opt) => {\n if (opt.level === 0) {\n return {};\n }\n return cb(b, opt);\n },\n params\n );\n};\n\nconst forEachChildSync = (blocklet, cb) => forEachChild(blocklet, cb, { sync: true });\n\nconst findComponentById = (blocklet, componentId, { _ancestors = [], returnAncestors = false } = {}) => {\n const id = getComponentId(blocklet, _ancestors);\n if (componentId === id) {\n if (returnAncestors) {\n return {\n component: blocklet,\n ancestors: _ancestors,\n };\n }\n\n return blocklet;\n }\n\n for (const child of blocklet.children || []) {\n const ancestors = _ancestors.concat(blocklet);\n const component = findComponentById(child, componentId, { _ancestors: ancestors, returnAncestors });\n if (component) {\n return component;\n }\n }\n\n return null;\n};\n\nconst getSharedConfigObj = (component, ancestors) => {\n const res = {};\n if (!ancestors) {\n return res;\n }\n\n for (let i = ancestors.length - 1; i >= 0; i--) {\n const ancestor = ancestors[i];\n if (Array.isArray(ancestor.configs)) {\n ancestor.configs.forEach(({ key, value, secure, shared }) => {\n if (res[key]) {\n return;\n }\n\n if (!value || secure !== false || shared === false || BLOCKLET_CONFIGURABLE_KEY[key]) {\n return;\n }\n\n const config = (component.configs || []).find((x) => x.key === key);\n if (config && config.value) {\n return;\n }\n\n res[key] = value;\n });\n }\n }\n\n return res;\n};\n\nconst getAppMissingConfigs = (blocklet = {}) => {\n const missingConfigs = [];\n\n forEachBlockletSync(blocklet, (b, { ancestors }) => {\n const configs = b.configs || [];\n const sharedConfigObj = getSharedConfigObj(b, ancestors);\n configs.forEach((item) => {\n if (item.required && !item.value && !sharedConfigObj[item.key]) {\n missingConfigs.push({ did: b.meta.did, key: item.key, description: item.description });\n }\n });\n });\n\n return missingConfigs;\n};\n\nconst getComponentMissingConfigs = (component = {}, ancestors = []) => {\n const missingConfigs = [];\n\n const configs = component.configs || [];\n const sharedConfigObj = getSharedConfigObj(component, ancestors);\n configs.forEach((item) => {\n if (item.required && !item.value && !sharedConfigObj[item.key]) {\n missingConfigs.push({ did: component.meta.did, key: item.key, description: item.description });\n }\n });\n\n return missingConfigs;\n};\n\nconst isFreeBlocklet = (meta) => {\n if (!meta.payment) {\n return true;\n }\n\n const priceList = (meta.payment.price || []).map((x) => x.value || 0);\n return priceList.every((x) => x === 0);\n};\n\nconst isComponentBlocklet = (meta) => {\n return get(meta, 'capabilities.component') !== false;\n};\n\nconst wipeSensitiveData = (blocklet) => {\n if (!blocklet) {\n return blocklet;\n }\n\n forEachBlocklet(\n blocklet,\n (d) => {\n (d.configs || []).forEach((x) => {\n if (x.secure) {\n x.value = x.value ? '__encrypted__' : '';\n }\n });\n (d.environments || []).forEach((x) => {\n if (['BLOCKLET_APP_SK'].includes(x.key)) {\n x.value = '__encrypted__';\n }\n });\n\n delete blocklet.configObj;\n delete blocklet.environmentObj;\n },\n { sync: true }\n );\n\n return blocklet;\n};\n\nconst isDeletableBlocklet = (blocklet) => {\n if (!blocklet) {\n return false;\n }\n\n const config = blocklet.environments.find((x) => x.key === 'BLOCKLET_DELETABLE');\n if (!config) {\n return true;\n }\n\n return config.value === 'yes';\n};\n\nconst hasRunnableComponent = (blocklet) => {\n let has = false;\n forEachBlockletSync(blocklet, (x) => {\n if (x.meta.group !== BlockletGroup.gateway) {\n has = true;\n }\n });\n\n return has;\n};\n\n/**\n * 获取 blocklet 的 name\n * @param {Object} blocklet 应用数据\n * @param {Boolean} onlyUseMeta 优先使用应用元数据的name\n * @returns blocklet display name\n */\nconst getDisplayName = (blocklet, onlyUseMeta = false) => {\n const { meta } = blocklet;\n let displayName;\n\n if (!onlyUseMeta && blocklet.environments) {\n const target = blocklet.environments.find((e) => e.key === 'BLOCKLET_APP_NAME');\n if (target && target.value) {\n displayName = target.value;\n }\n }\n return displayName || meta.title || meta.name;\n};\n\nconst fixBlockletStatus = (blocklet) => {\n if (!blocklet) {\n return;\n }\n\n forEachBlockletSync(blocklet, (b) => {\n b.status = fromBlockletStatus(b.status);\n if (b.source !== undefined) {\n b.source = fromBlockletSource(b.source);\n }\n });\n\n if (blocklet.settings) {\n (blocklet.settings.children || []).forEach((child) => {\n forEachBlockletSync(child, (b) => {\n b.status = fromBlockletStatus(b.status);\n if (b.source !== undefined) {\n b.source = fromBlockletSource(b.source);\n }\n });\n });\n }\n};\n\nconst findWebInterface = (blocklet) => {\n if (!blocklet) {\n return null;\n }\n\n const meta = blocklet.meta || blocklet || {};\n const { interfaces = [] } = meta;\n\n if (!Array.isArray(interfaces)) {\n return null;\n }\n\n return interfaces.find((x) => x.type === BLOCKLET_INTERFACE_TYPE_WEB);\n};\n\nconst findServiceFromMeta = (meta, ServiceName) => {\n const names = [ServiceName];\n\n // backward compatible\n if (ServiceName === NODE_SERVICES.AUTH) {\n names.push(NODE_SERVICES.AUTH_SERVICE);\n }\n\n const webInterface = findWebInterface(meta);\n\n if (!webInterface) {\n return null;\n }\n\n return (webInterface.services || []).find((x) => names.includes(x.name));\n};\n\nconst getWhoCanAccess = (blocklet) => {\n if (!blocklet) {\n return WHO_CAN_ACCESS.ALL;\n }\n\n if (get(blocklet, 'settings.whoCanAccess')) {\n return blocklet.settings.whoCanAccess;\n }\n\n const service = findServiceFromMeta(blocklet.meta, NODE_SERVICES.AUTH);\n if (get(service, 'config.whoCanAccess')) {\n return service.config.whoCanAccess;\n }\n\n return WHO_CAN_ACCESS.ALL;\n};\n\nconst replaceSlotToIp = (url, ip) => (url || '').replace(SLOT_FOR_IP_DNS_SITE, (ip || '').replace(/\\./g, '-'));\n\nconst urlFriendly = (name) => slugify(name.replace(/^[@./-]/, '').replace(/[@./_]/g, '-'));\n\nmodule.exports = {\n isFreeBlocklet,\n isComponentBlocklet,\n forEachBlocklet,\n forEachBlockletSync,\n forEachChild,\n forEachChildSync,\n isDeletableBlocklet,\n getSharedConfigObj,\n getAppMissingConfigs,\n getComponentMissingConfigs,\n wipeSensitiveData,\n hasRunnableComponent,\n getDisplayName,\n fixBlockletStatus,\n findWebInterface,\n findServiceFromMeta,\n getWhoCanAccess,\n replaceSlotToIp,\n urlFriendly,\n getComponentId,\n getComponentName,\n getComponentBundleId,\n findComponentById,\n};\n","const fromEntry = (entries) => (v) => {\n const match = Object.entries(entries).find((x) => x[1] === Number(v));\n return match ? match[0] : 'unknown';\n};\n\nconst toEntry = (entries) => (v) => Object.keys(entries).find((x) => entries[x] === Number(v));\n\n// Blocklet Status\n\nconst BlockletStatus = Object.freeze({\n added: 0,\n downloading: 1,\n downloaded: 2, // Deprecated\n installing: 3,\n installed: 4,\n starting: 5,\n running: 6,\n stopping: 7,\n stopped: 8,\n error: 9,\n upgrading: 10,\n restarting: 11, // Deprecated\n corrupted: 12,\n waiting: 13,\n deleted: 14,\n});\n\nconst fromBlockletStatus = fromEntry(BlockletStatus);\nconst toBlockletStatus = toEntry(BlockletStatus);\n\n// Blocklet Source\n\nconst BlockletSource = Object.freeze({\n // Installed from Blocklet Store\n registry: 0,\n\n // Installed from local development source folder\n local: 1,\n\n // Installed from uploading bundle directly\n upload: 2,\n\n // Installed from a url (similar to Blocklet Store)\n url: 3,\n\n // Installed by custom creation\n custom: 4,\n});\n\nconst fromBlockletSource = fromEntry(BlockletSource);\nconst toBlockletSource = toEntry(BlockletSource);\n\n// Blocklet Group(Type)\n\nconst BlockletGroup = Object.freeze({\n // Only static website\n // The website is served by by Blocklet Server at runtime\n static: 'static',\n\n // The runtime instance is provided by its own backend server\n dapp: 'dapp',\n\n starter: false, // deprecated\n\n // This type is used to combine other component blocklets\n // No instance will be spawned at runtime\n gateway: 'gateway',\n});\n\nconst BLOCKLET_GROUPS = ['dapp', 'static', 'gateway'];\n\n// Blocklet Events\n\nconst BlockletEvents = Object.freeze({\n added: 'blocklet.added',\n downloadFailed: 'blocklet.downloadFailed',\n installed: 'blocklet.installed',\n installFailed: 'blocklet.installFailed',\n upgraded: 'blocklet.upgraded',\n downgraded: 'blocklet.downgraded',\n deployed: 'blocklet.deployed',\n updated: 'blocklet.updated',\n statusChange: 'blocklet.statusChange',\n removed: 'blocklet.removed',\n started: 'blocklet.started',\n startFailed: 'blocklet.startFailed',\n stopped: 'blocklet.stopped',\n reloaded: 'blocklet.reloaded', // Deprecated\n purchaseChange: 'blocklet.purchaseChange',\n});\n\n// Blocklet Interface\n\nconst BLOCKLET_INTERFACE_TYPE_WEB = 'web';\nconst BLOCKLET_INTERFACE_TYPE_SERVICE = 'service';\n\n// Wellknown interface declares an sub-interface under web interface\n// The path of the wellknown interface must starts with /.well-known, e.g. /.well-known/acme-challenge)\n// The wellknown interface can be mounted to every endpoint of the abtnode and all blocklets on the abtnode\nconst BLOCKLET_INTERFACE_TYPE_WELLKNOWN = 'wellknown';\nconst BLOCKLET_INTERFACE_TYPES = [\n BLOCKLET_INTERFACE_TYPE_WEB,\n BLOCKLET_INTERFACE_TYPE_SERVICE,\n BLOCKLET_INTERFACE_TYPE_WELLKNOWN,\n];\n\nconst BLOCKLET_INTERFACE_PUBLIC = 'publicUrl';\nconst BLOCKLET_INTERFACE_WELLKNOWN = 'wellknownUrl'; // Deprecated\nconst BLOCKLET_UI_INTERFACES = [BLOCKLET_INTERFACE_PUBLIC];\nconst BLOCKLET_STANDARD_INTERFACES = [BLOCKLET_INTERFACE_PUBLIC, BLOCKLET_INTERFACE_WELLKNOWN];\n\nconst BLOCKLET_INTERFACE_PROTOCOL_HTTP = 'http';\nconst BLOCKLET_INTERFACE_PROTOCOL_TCP = 'tcp';\nconst BLOCKLET_INTERFACE_PROTOCOL_UDP = 'udp';\nconst BLOCKLET_INTERFACE_PROTOCOLS = [\n BLOCKLET_INTERFACE_PROTOCOL_TCP,\n BLOCKLET_INTERFACE_PROTOCOL_UDP,\n BLOCKLET_INTERFACE_PROTOCOL_HTTP,\n];\n\nmodule.exports = Object.freeze({\n BlockletStatus,\n fromBlockletStatus,\n toBlockletStatus,\n\n BlockletSource,\n fromBlockletSource,\n toBlockletSource,\n\n BlockletGroup,\n BLOCKLET_GROUPS,\n\n BlockletEvents,\n\n BLOCKLET_PLATFORMS: ['aix', 'darwin', 'freebsd', 'linux', 'openbsd', 'sunos', 'win32'],\n BLOCKLET_ARCHITECTURES: ['arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 's390', 's390x', 'x32', 'x64'],\n\n BLOCKLET_MODES: Object.freeze({\n PRODUCTION: 'production',\n DEVELOPMENT: 'development',\n }),\n\n BLOCKLET_FACTORY_SHARES: { developer: 0.7, store: 0.3 },\n\n // interface\n BLOCKLET_INTERFACE_PUBLIC,\n BLOCKLET_INTERFACE_WELLKNOWN, // Deprecated\n BLOCKLET_UI_INTERFACES,\n BLOCKLET_STANDARD_INTERFACES,\n\n BLOCKLET_INTERFACE_TYPE_WEB,\n BLOCKLET_INTERFACE_TYPE_SERVICE,\n BLOCKLET_INTERFACE_TYPE_WELLKNOWN,\n BLOCKLET_INTERFACE_TYPES,\n\n BLOCKLET_INTERFACE_PROTOCOL_HTTP,\n BLOCKLET_INTERFACE_PROTOCOL_TCP,\n BLOCKLET_INTERFACE_PROTOCOL_UDP,\n BLOCKLET_INTERFACE_PROTOCOLS,\n\n BLOCKLET_DYNAMIC_PATH_PREFIX: '*',\n BLOCKLET_DEFAULT_PORT_NAME: 'BLOCKLET_PORT',\n BLOCKLET_DEFAULT_PATH_REWRITE: '/',\n\n // bundle\n BLOCKLET_RELEASE_FOLDER: '.blocklet/release',\n BLOCKLET_RELEASE_FILE: 'blocklet.json',\n BLOCKLET_BUNDLE_FOLDER: '.blocklet/bundle',\n BLOCKLET_BUNDLE_FILE: 'blocklet.zip',\n BLOCKLET_ENTRY_FILE: 'blocklet.js',\n BLOCKLET_META_FILE: 'blocklet.yml',\n BLOCKLET_META_FILE_ALT: 'blocklet.yaml',\n BLOCKLET_META_FILE_OLD: 'blocklet.json',\n\n BLOCKLET_DEFAULT_VERSION: '1.0.0',\n\n BLOCKLET_LATEST_SPEC_VERSION: '1.2.7',\n BLOCKLET_LATEST_REQUIREMENT_SERVER: '>=1.7.0',\n BLOCKLET_LATEST_REQUIREMENT_ABTNODE: '>=1.5.15', // Deprecated\n\n BLOCKLET_CONFIGURABLE_KEY: {\n BLOCKLET_CLUSTER_SIZE: 'BLOCKLET_CLUSTER_SIZE',\n BLOCKLET_APP_NAME: 'BLOCKLET_APP_NAME',\n BLOCKLET_APP_DESCRIPTION: 'BLOCKLET_APP_DESCRIPTION',\n BLOCKLET_APP_SK: 'BLOCKLET_APP_SK',\n BLOCKLET_APP_URL: 'BLOCKLET_APP_URL',\n BLOCKLET_PASSPORT_COLOR: 'BLOCKLET_PASSPORT_COLOR',\n BLOCKLET_WALLET_TYPE: 'BLOCKLET_WALLET_TYPE',\n BLOCKLET_DELETABLE: 'BLOCKLET_DELETABLE',\n },\n});\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = HeaderAddon;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _styledComponents = _interopRequireDefault(require(\"styled-components\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _IconButton = _interopRequireDefault(require(\"@mui/material/IconButton\"));\n\nvar _HelpOutline = _interopRequireDefault(require(\"@mui/icons-material/HelpOutline\"));\n\nvar _reactRouterDom = require(\"react-router-dom\");\n\nvar _SessionManager = _interopRequireDefault(require(\"@arcblock/did-connect/lib/SessionManager\"));\n\nvar _selector = _interopRequireDefault(require(\"@arcblock/ux/lib/Locale/selector\"));\n\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\n\nvar _utils = require(\"@arcblock/did-connect/lib/utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/* eslint-disable react/jsx-one-expression-per-line */\nfunction HeaderAddon(_ref) {\n let {\n SessionContext,\n webWalletUrl,\n extraItems,\n showLocale,\n showHelper,\n showSessionManager,\n sessionManagerProps\n } = _ref;\n const {\n session\n } = (0, _react.useContext)(SessionContext);\n const {\n locale\n } = (0, _react.useContext)(_context.LocaleContext);\n const location = (0, _reactRouterDom.useLocation)();\n const walletUrl = webWalletUrl || (0, _utils.getWebWalletUrl)();\n const docPaths = {\n '/dashboard': '/introduction/abtnode-overview',\n '/store': '/marketplace',\n '/blocklets': '/blocklet',\n '/router/rules': '/router',\n '/router/engine': '/router',\n '/settings/basic': '/misc',\n '/settings/team': '/misc/member-management',\n '/console': '/misc/graphql-console'\n };\n\n const onHelpClick = () => {\n const pathName = location.pathname;\n let path = '';\n\n if (pathName.indexOf('/blocklets') > -1) {\n path = docPaths['/blocklets'];\n } else if (pathName.indexOf('/store') > -1) {\n path = docPaths['/store'];\n } else if (docPaths[pathName]) {\n path = docPaths[pathName];\n }\n\n window.open(\"https://docs.arcblock.io/abtnode/\".concat(locale).concat(path), '_blank');\n };\n\n return /*#__PURE__*/_react.default.createElement(Div, null, extraItems.map(x => x), showLocale && /*#__PURE__*/_react.default.createElement(_selector.default, {\n \"data-cy\": \"locale-addon\",\n size: 23,\n showText: false,\n className: \"locale-addon\"\n }), showHelper && /*#__PURE__*/_react.default.createElement(_IconButton.default, {\n onClick: onHelpClick\n }, /*#__PURE__*/_react.default.createElement(_HelpOutline.default, {\n style: {\n fontSize: 28\n }\n })), showSessionManager && /*#__PURE__*/_react.default.createElement(_SessionManager.default, Object.assign({\n session: session,\n webWalletUrl: walletUrl,\n size: 24,\n showRole: true\n }, sessionManagerProps)));\n}\n\nHeaderAddon.propTypes = {\n SessionContext: _propTypes.default.object.isRequired,\n webWalletUrl: _propTypes.default.string,\n extraItems: _propTypes.default.array,\n showLocale: _propTypes.default.bool,\n showSessionManager: _propTypes.default.bool,\n showHelper: _propTypes.default.bool,\n sessionManagerProps: _propTypes.default.object\n};\nHeaderAddon.defaultProps = {\n webWalletUrl: '',\n extraItems: [],\n showLocale: true,\n showSessionManager: true,\n showHelper: true,\n sessionManagerProps: {}\n};\n\nconst Div = _styledComponents.default.div.withConfig({\n displayName: \"addon__Div\",\n componentId: \"sc-5tyqcw-0\"\n})([\"display:flex;justify-content:center;align-items:center;.user-addon{.user-avatar{width:28px;border-radius:14px;height:auto;}}\", \"{> button,> a{padding-left:8px;padding-right:8px;}}\"], props => props.theme.breakpoints.down('md'));"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/@mui/icons-material/PlayArrow.js","pages/start.js","../../../blocklet/meta/lib/util.js","../../../blocklet/meta/lib/constants.js","../../ux/lib/layout/addon.js"],"names":["_interopRequireDefault","require","Object","defineProperty","exports","value","default","_createSvgIcon","_jsxRuntime","_default","jsx","d","AppIcon","appInfo","rest","React","useState","error","setError","size","useMediaQuery","theme","breakpoints","down","did","publisher","src","icon","alt","title","width","height","onError","Start","t","useLocaleContext","blocklet","setBlocklet","loading","setLoading","starting","setStarting","isMobile","visitBlocklet","redirect","URL","window","location","href","searchParams","get","decodeURIComponent","useEffect","timer","checkStatus","api","then","data","status","clearInterval","catch","err","Toast","message","setInterval","WELLKNOWN_SERVICE_PATH_PREFIX","getDisplayName","appDid","serverUrl","localStorage","getItem","Root","className","onClick","open","style","cursor","SessionContext","StyledPaper","elevation","AppInfo","name","mt","minWidth","disabled","variant","color","post","styled","div","props","Paper","palette","primary","main","common","white","grey","slugify","NODE_SERVICES","SLOT_FOR_IP_DNS_SITE","WHO_CAN_ACCESS","BlockletGroup","fromBlockletStatus","fromBlockletSource","BLOCKLET_INTERFACE_TYPE_WEB","BLOCKLET_CONFIGURABLE_KEY","getComponentId","component","ancestors","map","x","meta","join","length","forEachBlocklet","cb","parallel","sync","inputParams","params","_parent","_root","_level","inputTasks","_tasks","_ancestors","root","id","newAncestors","concat","parent","level","children","child","Promise","resolve","reject","tasks","push","all","forEachBlockletSync","forEachChild","b","opt","getSharedConfigObj","res","i","ancestor","Array","isArray","configs","forEach","key","secure","shared","config","find","findWebInterface","interfaces","type","findServiceFromMeta","ServiceName","names","AUTH","AUTH_SERVICE","webInterface","services","includes","module","isFreeBlocklet","payment","price","every","isComponentBlocklet","forEachChildSync","isDeletableBlocklet","environments","getAppMissingConfigs","missingConfigs","sharedConfigObj","item","required","description","getComponentMissingConfigs","wipeSensitiveData","configObj","environmentObj","hasRunnableComponent","has","group","gateway","displayName","onlyUseMeta","target","e","fixBlockletStatus","undefined","source","settings","getWhoCanAccess","ALL","whoCanAccess","service","replaceSlotToIp","url","ip","replace","urlFriendly","getComponentName","getComponentBundleId","bundleName","version","findComponentById","componentId","returnAncestors","fromEntry","entries","v","match","Number","toEntry","keys","BlockletStatus","freeze","added","downloading","downloaded","installing","installed","running","stopping","stopped","upgrading","restarting","corrupted","waiting","deleted","toBlockletStatus","BlockletSource","registry","local","upload","custom","toBlockletSource","static","dapp","starter","BlockletEvents","downloadFailed","installFailed","upgraded","downgraded","deployed","updated","statusChange","removed","started","startFailed","reloaded","purchaseChange","BLOCKLET_INTERFACE_TYPES","BLOCKLET_UI_INTERFACES","BLOCKLET_STANDARD_INTERFACES","BLOCKLET_INTERFACE_PROTOCOLS","BLOCKLET_GROUPS","BLOCKLET_PLATFORMS","BLOCKLET_ARCHITECTURES","BLOCKLET_MODES","PRODUCTION","DEVELOPMENT","BLOCKLET_FACTORY_SHARES","developer","store","BLOCKLET_INTERFACE_PUBLIC","BLOCKLET_INTERFACE_WELLKNOWN","BLOCKLET_INTERFACE_TYPE_SERVICE","BLOCKLET_INTERFACE_TYPE_WELLKNOWN","BLOCKLET_INTERFACE_PROTOCOL_HTTP","BLOCKLET_INTERFACE_PROTOCOL_TCP","BLOCKLET_INTERFACE_PROTOCOL_UDP","BLOCKLET_DYNAMIC_PATH_PREFIX","BLOCKLET_DEFAULT_PORT_NAME","BLOCKLET_DEFAULT_PATH_REWRITE","BLOCKLET_RELEASE_FOLDER","BLOCKLET_RELEASE_FILE","BLOCKLET_BUNDLE_FOLDER","BLOCKLET_BUNDLE_FILE","BLOCKLET_ENTRY_FILE","BLOCKLET_META_FILE","BLOCKLET_META_FILE_ALT","BLOCKLET_META_FILE_OLD","BLOCKLET_DEFAULT_VERSION","BLOCKLET_LATEST_SPEC_VERSION","BLOCKLET_LATEST_REQUIREMENT_SERVER","BLOCKLET_LATEST_REQUIREMENT_ABTNODE","BLOCKLET_CLUSTER_SIZE","BLOCKLET_APP_NAME","BLOCKLET_APP_DESCRIPTION","BLOCKLET_APP_SK","BLOCKLET_APP_URL","BLOCKLET_PASSPORT_COLOR","BLOCKLET_WALLET_TYPE","BLOCKLET_DELETABLE","HeaderAddon","_react","obj","nodeInterop","__esModule","cache","_getRequireWildcardCache","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","prototype","hasOwnProperty","call","desc","set","_interopRequireWildcard","_styledComponents","_propTypes","_IconButton","_HelpOutline","_reactRouterDom","_SessionManager","_selector","_context","_utils","WeakMap","cacheBabelInterop","cacheNodeInterop","_ref","webWalletUrl","extraItems","showLocale","showHelper","showSessionManager","sessionManagerProps","session","useContext","locale","LocaleContext","useLocation","walletUrl","getWebWalletUrl","docPaths","createElement","Div","showText","pathName","pathname","path","indexOf","fontSize","assign","showRole","propTypes","object","isRequired","string","array","bool","defaultProps","withConfig"],"mappings":"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","file":"static/js/12.00f1963c.chunk.js","sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M8 5v14l11-7z\"\n}), 'PlayArrow');\n\nexports.default = _default;","/* eslint-disable react/jsx-one-expression-per-line */\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from '@emotion/styled';\n\nimport Box from '@mui/material/Box';\nimport PlayArrowIcon from '@mui/icons-material/PlayArrow';\nimport Paper from '@mui/material/Paper';\n\nimport Button from '@arcblock/ux/lib/Button';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport Toast from '@abtnode/ux/lib/toast';\nimport DidAvatar from '@arcblock/did-connect/lib/Avatar';\nimport DidAddress from '@arcblock/did-connect/lib/Address';\nimport Img from '@arcblock/ux/lib/Img';\nimport Center from '@arcblock/ux/lib/Center';\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport ServerLogo from '@arcblock/icons/lib/ServerLogo';\n\nimport { getDisplayName } from '@blocklet/meta/lib/util';\nimport { WELLKNOWN_SERVICE_PATH_PREFIX } from '@abtnode/constant';\nimport HeaderAddon from '@abtnode/ux/lib/layout/addon';\n\nimport api from '../libs/api';\nimport { SessionContext } from '../contexts/session';\n\nconst AppIcon = ({ appInfo, ...rest }) => {\n const [error, setError] = React.useState(false);\n const isMobile = useMediaQuery((theme) => theme.breakpoints.down('md'));\n const size = isMobile ? 32 : 48;\n\n if (error) {\n return <DidAvatar did={appInfo.publisher} size={size} />;\n }\n return (\n <Img src={appInfo.icon} alt={appInfo.title} width={size} height={size} {...rest} onError={() => setError(true)} />\n );\n};\n\nAppIcon.propTypes = {\n appInfo: PropTypes.object.isRequired,\n};\n\nexport default function Start() {\n const { t } = useLocaleContext();\n const [blocklet, setBlocklet] = useState(null);\n const [loading, setLoading] = useState(false);\n const [starting, setStarting] = useState(false);\n const isMobile = useMediaQuery((theme) => theme.breakpoints.down('md'));\n\n const visitBlocklet = () => {\n const url = new URL(window.location.href);\n const redirect = url.searchParams.get('redirect') || '/';\n window.location = decodeURIComponent(redirect);\n };\n\n useEffect(() => {\n let timer = null;\n\n const checkStatus = () => {\n api\n .get('/blocklet/detail')\n .then(({ data }) => {\n if (data.status === 'running') {\n visitBlocklet();\n return;\n }\n\n if (data.status !== 'starting') {\n setStarting(false);\n setBlocklet(data);\n clearInterval(timer);\n }\n })\n .catch((err) => {\n setLoading(false);\n Toast.error(err.message);\n });\n };\n\n setLoading(true);\n api\n .get('/blocklet/detail')\n .then(({ data }) => {\n setLoading(false);\n if (data.status === 'running') {\n visitBlocklet();\n return;\n }\n\n setBlocklet(data);\n\n if (data.status === 'starting') {\n setStarting(true);\n timer = setInterval(checkStatus, 3000);\n }\n })\n .catch((err) => {\n setLoading(false);\n Toast.error(err.message);\n });\n }, []);\n\n const startBlocklet = () => {\n setLoading(true);\n setStarting(true);\n api\n .post('/blocklet/start')\n .then(() => {\n visitBlocklet();\n })\n .catch((err) => {\n Toast.error(err.message);\n setLoading(false);\n setStarting(false);\n });\n };\n\n if (!blocklet) {\n return (\n <Center>\n <Spinner />\n </Center>\n );\n }\n\n const appInfo = {\n icon: `${WELLKNOWN_SERVICE_PATH_PREFIX}/blocklet/logo`,\n title: getDisplayName(blocklet),\n publisher: blocklet.appDid,\n };\n const serverUrl = localStorage.getItem('blocklet-server-url');\n\n const clickLogo = () => {\n if (serverUrl) {\n window.open(serverUrl);\n }\n };\n\n return (\n <Root>\n <header className=\"root-header\">\n {!isMobile && (\n <div className=\"left\">\n <ServerLogo width=\"128\" height=\"48\" onClick={clickLogo} style={{ cursor: serverUrl ? 'pointer' : '' }} />\n </div>\n )}\n <div className=\"right\">\n <HeaderAddon SessionContext={SessionContext} />\n </div>\n </header>\n\n <StyledPaper elevation={0}>\n <AppInfo>\n <AppIcon appInfo={appInfo} />\n <div className=\"app-info_content\">\n <Box className=\"app-info_name\">{appInfo.title}</Box>\n <DidAddress size={14} className=\"app-info_did\">\n {appInfo.publisher}\n </DidAddress>\n </div>\n </AppInfo>\n\n <Box className=\"title-box\">\n <Box className=\"icon\">\n <PlayArrowIcon />\n </Box>\n <Box className=\"title\">{t('blocklet.startApplication')}</Box>\n </Box>\n <Box className=\"sub-title\">{t('blocklet.startDescription', { name: getDisplayName(blocklet) })}</Box>\n\n <Box mt={8}>\n <Button\n style={{ minWidth: 200 }}\n disabled={loading || starting}\n variant=\"contained\"\n color=\"primary\"\n size=\"large\"\n loading={starting}\n onClick={() => startBlocklet()}>\n {starting ? t('blocklet.starting') : t('blocklet.start')}\n </Button>\n </Box>\n </StyledPaper>\n </Root>\n );\n}\n\nconst Root = styled.div`\n width: 100vw;\n height: 100vh;\n background: #f6f8fa;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .root-header {\n position: fixed;\n z-index: 200;\n top: 0;\n display: flex;\n width: 100%;\n height: 68px;\n align-items: center;\n justify-content: flex-end;\n padding: 24px;\n max-width: 1245px;\n\n ${(props) => props.theme.breakpoints.down('md')} {\n padding: 14px 16px;\n height: 56px;\n }\n\n .left {\n margin-top: 4px;\n margin-right: auto;\n ${(props) => props.theme.breakpoints.down('md')} {\n margin-top: 0%;\n }\n }\n\n .right {\n display: flex;\n align-items: center;\n ${(props) => props.theme.breakpoints.down('md')} {\n button,\n a {\n padding-left: 8px;\n padding-right: 8px;\n }\n }\n }\n }\n`;\n\nconst StyledPaper = styled(Paper)`\n width: 80vw;\n max-width: 1245px;\n height: 80vh;\n box-sizing: border-box;\n padding: 32px;\n &.MuiPaper-rounded {\n border-radius: 8px;\n }\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n ${(props) => props.theme.breakpoints.down('md')} {\n width: 100vw;\n height: 100vh;\n left: 0;\n top: 0;\n padding: 32px 0;\n }\n\n .MuiIconButton-root {\n svg {\n fill: #888;\n }\n &.Mui-disabled {\n opacity: 0.4;\n }\n }\n\n .title-box {\n display: flex;\n align-items: center;\n ${(props) => props.theme.breakpoints.down('md')} {\n margin-top: 60px;\n }\n }\n\n .icon {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 32px;\n height: 32px;\n border-radius: 100%;\n background-color: ${(props) => props.theme.palette.primary.main};\n color: ${(props) => props.theme.palette.common.white};\n }\n\n .title {\n margin-left: 12px;\n color: ${(props) => props.theme.palette.primary.main};\n font-size: 24px;\n font-weight: bolder;\n }\n\n .sub-title {\n margin-top: 24px;\n color: ${(props) => props.theme.palette.grey[700]};\n font-size: 16px;\n }\n`;\n\nconst AppInfo = styled.div`\n display: flex;\n align-items: center;\n position: absolute;\n left: 24px;\n right: 24px;\n top: 24px;\n font-size: 16px;\n font-weight: 500;\n color: #222;\n\n /* 禁止 app icon shrink */\n > *:first-child {\n flex: 0 0 auto;\n }\n\n .app-info_content {\n padding-left: 16px;\n overflow: hidden;\n }\n\n .app-info_name {\n max-width: 100%;\n padding-right: 32px;\n line-height: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: bold;\n }\n\n .app-info_did {\n transform: translate(0, 2px);\n }\n\n .app-info_did .did-address__text {\n color: #666;\n font-size: 14px;\n }\n\n ${(props) => props.theme.breakpoints.down('md')} {\n top: 12px;\n .app-info_did {\n transform: translate(0, 0);\n }\n .app-info_did .did-address__text {\n font-size: 12px;\n }\n }\n`;\n","/* eslint-disable no-await-in-loop */\nconst get = require('lodash/get');\nconst slugify = require('slugify');\n\nconst { NODE_SERVICES, SLOT_FOR_IP_DNS_SITE, WHO_CAN_ACCESS } = require('@abtnode/constant');\n\nconst {\n BlockletGroup,\n fromBlockletStatus,\n fromBlockletSource,\n BLOCKLET_INTERFACE_TYPE_WEB,\n BLOCKLET_CONFIGURABLE_KEY,\n} = require('./constants');\n\nconst getComponentId = (component, ancestors = []) =>\n `${ancestors.map((x) => (x && x.meta ? x.meta.did : '')).join('/')}${ancestors.length ? '/' : ''}${\n component && component.meta ? component.meta.did : ''\n }`;\n\nconst getComponentName = (component, ancestors = []) =>\n `${ancestors.map((x) => (x && x.meta ? x.meta.name : '')).join('/')}${ancestors.length ? '/' : ''}${\n component && component.meta ? component.meta.name : ''\n }`;\n\nconst getComponentBundleId = (component) => `${component.meta.bundleName}@${component.meta.version}`;\n\nconst forEachBlocklet = (\n blocklet,\n cb,\n { parallel = false, sync, params: inputParams, _parent, _root, _level = 0, _tasks: inputTasks, _ancestors = [] } = {}\n) => {\n const root = _root || _parent || blocklet;\n\n // id maybe meaningless if no meta in blocklet or _ancestors\n const id = getComponentId(blocklet, _ancestors);\n\n const newAncestors = _ancestors.concat(blocklet);\n\n // sync\n if (sync) {\n const params = cb(blocklet, {\n parent: _parent,\n root,\n level: _level,\n params: inputParams,\n ancestors: _ancestors,\n id,\n });\n if (blocklet.children) {\n for (const child of blocklet.children) {\n forEachBlocklet(child, cb, {\n sync,\n params,\n _parent: blocklet,\n _root: root,\n _level: _level + 1,\n _ancestors: newAncestors,\n });\n }\n }\n return null;\n }\n\n // serial\n if (!parallel) {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n try {\n const params = await cb(blocklet, {\n parent: _parent,\n root,\n level: _level,\n ancestors: _ancestors,\n params: inputParams,\n id,\n });\n if (blocklet.children) {\n for (const child of blocklet.children) {\n await forEachBlocklet(child, cb, {\n params,\n _parent: blocklet,\n _root: root,\n _level: _level + 1,\n _ancestors: newAncestors,\n });\n }\n }\n\n resolve(null);\n } catch (err) {\n reject(err);\n }\n });\n }\n\n // parallel\n const tasks = inputTasks || [];\n tasks.push(cb(blocklet, { parent: _parent, root, level: _level, ancestors: _ancestors }));\n if (blocklet.children) {\n for (const child of blocklet.children) {\n forEachBlocklet(child, cb, {\n parallel,\n _parent: blocklet,\n _root: root,\n _level: _level + 1,\n _tasks: tasks,\n _ancestors: newAncestors,\n id,\n });\n }\n }\n if (inputTasks) {\n return null;\n }\n return Promise.all(tasks);\n};\n\nconst forEachBlockletSync = (blocklet, cb) => forEachBlocklet(blocklet, cb, { sync: true });\n\nconst forEachChild = (blocklet, cb, params) => {\n return forEachBlocklet(\n blocklet,\n (b, opt) => {\n if (opt.level === 0) {\n return {};\n }\n return cb(b, opt);\n },\n params\n );\n};\n\nconst forEachChildSync = (blocklet, cb) => forEachChild(blocklet, cb, { sync: true });\n\nconst findComponentById = (blocklet, componentId, { _ancestors = [], returnAncestors = false } = {}) => {\n const id = getComponentId(blocklet, _ancestors);\n if (componentId === id) {\n if (returnAncestors) {\n return {\n component: blocklet,\n ancestors: _ancestors,\n };\n }\n\n return blocklet;\n }\n\n for (const child of blocklet.children || []) {\n const ancestors = _ancestors.concat(blocklet);\n const component = findComponentById(child, componentId, { _ancestors: ancestors, returnAncestors });\n if (component) {\n return component;\n }\n }\n\n return null;\n};\n\nconst getSharedConfigObj = (component, ancestors) => {\n const res = {};\n if (!ancestors) {\n return res;\n }\n\n for (let i = ancestors.length - 1; i >= 0; i--) {\n const ancestor = ancestors[i];\n if (Array.isArray(ancestor.configs)) {\n ancestor.configs.forEach(({ key, value, secure, shared }) => {\n if (res[key]) {\n return;\n }\n\n if (!value || secure !== false || shared === false || BLOCKLET_CONFIGURABLE_KEY[key]) {\n return;\n }\n\n const config = (component.configs || []).find((x) => x.key === key);\n if (config && config.value) {\n return;\n }\n\n res[key] = value;\n });\n }\n }\n\n return res;\n};\n\nconst getAppMissingConfigs = (blocklet = {}) => {\n const missingConfigs = [];\n\n forEachBlockletSync(blocklet, (b, { ancestors }) => {\n const configs = b.configs || [];\n const sharedConfigObj = getSharedConfigObj(b, ancestors);\n configs.forEach((item) => {\n if (item.required && !item.value && !sharedConfigObj[item.key]) {\n missingConfigs.push({ did: b.meta.did, key: item.key, description: item.description });\n }\n });\n });\n\n return missingConfigs;\n};\n\nconst getComponentMissingConfigs = (component = {}, ancestors = []) => {\n const missingConfigs = [];\n\n const configs = component.configs || [];\n const sharedConfigObj = getSharedConfigObj(component, ancestors);\n configs.forEach((item) => {\n if (item.required && !item.value && !sharedConfigObj[item.key]) {\n missingConfigs.push({ did: component.meta.did, key: item.key, description: item.description });\n }\n });\n\n return missingConfigs;\n};\n\nconst isFreeBlocklet = (meta) => {\n if (!meta.payment) {\n return true;\n }\n\n const priceList = (meta.payment.price || []).map((x) => x.value || 0);\n return priceList.every((x) => x === 0);\n};\n\nconst isComponentBlocklet = (meta) => {\n return get(meta, 'capabilities.component') !== false;\n};\n\nconst wipeSensitiveData = (blocklet) => {\n if (!blocklet) {\n return blocklet;\n }\n\n forEachBlocklet(\n blocklet,\n (d) => {\n (d.configs || []).forEach((x) => {\n if (x.secure) {\n x.value = x.value ? '__encrypted__' : '';\n }\n });\n (d.environments || []).forEach((x) => {\n if (['BLOCKLET_APP_SK'].includes(x.key)) {\n x.value = '__encrypted__';\n }\n });\n\n delete blocklet.configObj;\n delete blocklet.environmentObj;\n },\n { sync: true }\n );\n\n return blocklet;\n};\n\nconst isDeletableBlocklet = (blocklet) => {\n if (!blocklet) {\n return false;\n }\n\n const config = blocklet.environments.find((x) => x.key === 'BLOCKLET_DELETABLE');\n if (!config) {\n return true;\n }\n\n return config.value === 'yes';\n};\n\nconst hasRunnableComponent = (blocklet) => {\n let has = false;\n forEachBlockletSync(blocklet, (x) => {\n if (x.meta.group !== BlockletGroup.gateway) {\n has = true;\n }\n });\n\n return has;\n};\n\n/**\n * 获取 blocklet 的 name\n * @param {Object} blocklet 应用数据\n * @param {Boolean} onlyUseMeta 优先使用应用元数据的name\n * @returns blocklet display name\n */\nconst getDisplayName = (blocklet, onlyUseMeta = false) => {\n const { meta } = blocklet;\n let displayName;\n\n if (!onlyUseMeta && blocklet.environments) {\n const target = blocklet.environments.find((e) => e.key === 'BLOCKLET_APP_NAME');\n if (target && target.value) {\n displayName = target.value;\n }\n }\n return displayName || meta.title || meta.name;\n};\n\nconst fixBlockletStatus = (blocklet) => {\n if (!blocklet) {\n return;\n }\n\n forEachBlockletSync(blocklet, (b) => {\n b.status = fromBlockletStatus(b.status);\n if (b.source !== undefined) {\n b.source = fromBlockletSource(b.source);\n }\n });\n\n if (blocklet.settings) {\n (blocklet.settings.children || []).forEach((child) => {\n forEachBlockletSync(child, (b) => {\n b.status = fromBlockletStatus(b.status);\n if (b.source !== undefined) {\n b.source = fromBlockletSource(b.source);\n }\n });\n });\n }\n};\n\nconst findWebInterface = (blocklet) => {\n if (!blocklet) {\n return null;\n }\n\n const meta = blocklet.meta || blocklet || {};\n const { interfaces = [] } = meta;\n\n if (!Array.isArray(interfaces)) {\n return null;\n }\n\n return interfaces.find((x) => x.type === BLOCKLET_INTERFACE_TYPE_WEB);\n};\n\nconst findServiceFromMeta = (meta, ServiceName) => {\n const names = [ServiceName];\n\n // backward compatible\n if (ServiceName === NODE_SERVICES.AUTH) {\n names.push(NODE_SERVICES.AUTH_SERVICE);\n }\n\n const webInterface = findWebInterface(meta);\n\n if (!webInterface) {\n return null;\n }\n\n return (webInterface.services || []).find((x) => names.includes(x.name));\n};\n\nconst getWhoCanAccess = (blocklet) => {\n if (!blocklet) {\n return WHO_CAN_ACCESS.ALL;\n }\n\n if (get(blocklet, 'settings.whoCanAccess')) {\n return blocklet.settings.whoCanAccess;\n }\n\n const service = findServiceFromMeta(blocklet.meta, NODE_SERVICES.AUTH);\n if (get(service, 'config.whoCanAccess')) {\n return service.config.whoCanAccess;\n }\n\n return WHO_CAN_ACCESS.ALL;\n};\n\nconst replaceSlotToIp = (url, ip) => (url || '').replace(SLOT_FOR_IP_DNS_SITE, (ip || '').replace(/\\./g, '-'));\n\nconst urlFriendly = (name) => slugify(name.replace(/^[@./-]/, '').replace(/[@./_]/g, '-'));\n\nmodule.exports = {\n isFreeBlocklet,\n isComponentBlocklet,\n forEachBlocklet,\n forEachBlockletSync,\n forEachChild,\n forEachChildSync,\n isDeletableBlocklet,\n getSharedConfigObj,\n getAppMissingConfigs,\n getComponentMissingConfigs,\n wipeSensitiveData,\n hasRunnableComponent,\n getDisplayName,\n fixBlockletStatus,\n findWebInterface,\n findServiceFromMeta,\n getWhoCanAccess,\n replaceSlotToIp,\n urlFriendly,\n getComponentId,\n getComponentName,\n getComponentBundleId,\n findComponentById,\n};\n","const fromEntry = (entries) => (v) => {\n const match = Object.entries(entries).find((x) => x[1] === Number(v));\n return match ? match[0] : 'unknown';\n};\n\nconst toEntry = (entries) => (v) => Object.keys(entries).find((x) => entries[x] === Number(v));\n\n// Blocklet Status\n\nconst BlockletStatus = Object.freeze({\n added: 0,\n downloading: 1,\n downloaded: 2, // Deprecated\n installing: 3,\n installed: 4,\n starting: 5,\n running: 6,\n stopping: 7,\n stopped: 8,\n error: 9,\n upgrading: 10,\n restarting: 11, // Deprecated\n corrupted: 12,\n waiting: 13,\n deleted: 14,\n});\n\nconst fromBlockletStatus = fromEntry(BlockletStatus);\nconst toBlockletStatus = toEntry(BlockletStatus);\n\n// Blocklet Source\n\nconst BlockletSource = Object.freeze({\n // Installed from Blocklet Store\n registry: 0,\n\n // Installed from local development source folder\n local: 1,\n\n // Installed from uploading bundle directly\n upload: 2,\n\n // Installed from a url (similar to Blocklet Store)\n url: 3,\n\n // Installed by custom creation\n custom: 4,\n});\n\nconst fromBlockletSource = fromEntry(BlockletSource);\nconst toBlockletSource = toEntry(BlockletSource);\n\n// Blocklet Group(Type)\n\nconst BlockletGroup = Object.freeze({\n // Only static website\n // The website is served by by Blocklet Server at runtime\n static: 'static',\n\n // The runtime instance is provided by its own backend server\n dapp: 'dapp',\n\n starter: false, // deprecated\n\n // This type is used to combine other component blocklets\n // No instance will be spawned at runtime\n gateway: 'gateway',\n});\n\nconst BLOCKLET_GROUPS = ['dapp', 'static', 'gateway'];\n\n// Blocklet Events\n\nconst BlockletEvents = Object.freeze({\n added: 'blocklet.added',\n downloadFailed: 'blocklet.downloadFailed',\n installed: 'blocklet.installed',\n installFailed: 'blocklet.installFailed',\n upgraded: 'blocklet.upgraded',\n downgraded: 'blocklet.downgraded',\n deployed: 'blocklet.deployed',\n updated: 'blocklet.updated',\n statusChange: 'blocklet.statusChange',\n removed: 'blocklet.removed',\n started: 'blocklet.started',\n startFailed: 'blocklet.startFailed',\n stopped: 'blocklet.stopped',\n reloaded: 'blocklet.reloaded', // Deprecated\n purchaseChange: 'blocklet.purchaseChange',\n});\n\n// Blocklet Interface\n\nconst BLOCKLET_INTERFACE_TYPE_WEB = 'web';\nconst BLOCKLET_INTERFACE_TYPE_SERVICE = 'service';\n\n// Wellknown interface declares an sub-interface under web interface\n// The path of the wellknown interface must starts with /.well-known, e.g. /.well-known/acme-challenge)\n// The wellknown interface can be mounted to every endpoint of the abtnode and all blocklets on the abtnode\nconst BLOCKLET_INTERFACE_TYPE_WELLKNOWN = 'wellknown';\nconst BLOCKLET_INTERFACE_TYPES = [\n BLOCKLET_INTERFACE_TYPE_WEB,\n BLOCKLET_INTERFACE_TYPE_SERVICE,\n BLOCKLET_INTERFACE_TYPE_WELLKNOWN,\n];\n\nconst BLOCKLET_INTERFACE_PUBLIC = 'publicUrl';\nconst BLOCKLET_INTERFACE_WELLKNOWN = 'wellknownUrl'; // Deprecated\nconst BLOCKLET_UI_INTERFACES = [BLOCKLET_INTERFACE_PUBLIC];\nconst BLOCKLET_STANDARD_INTERFACES = [BLOCKLET_INTERFACE_PUBLIC, BLOCKLET_INTERFACE_WELLKNOWN];\n\nconst BLOCKLET_INTERFACE_PROTOCOL_HTTP = 'http';\nconst BLOCKLET_INTERFACE_PROTOCOL_TCP = 'tcp';\nconst BLOCKLET_INTERFACE_PROTOCOL_UDP = 'udp';\nconst BLOCKLET_INTERFACE_PROTOCOLS = [\n BLOCKLET_INTERFACE_PROTOCOL_TCP,\n BLOCKLET_INTERFACE_PROTOCOL_UDP,\n BLOCKLET_INTERFACE_PROTOCOL_HTTP,\n];\n\nmodule.exports = Object.freeze({\n BlockletStatus,\n fromBlockletStatus,\n toBlockletStatus,\n\n BlockletSource,\n fromBlockletSource,\n toBlockletSource,\n\n BlockletGroup,\n BLOCKLET_GROUPS,\n\n BlockletEvents,\n\n BLOCKLET_PLATFORMS: ['aix', 'darwin', 'freebsd', 'linux', 'openbsd', 'sunos', 'win32'],\n BLOCKLET_ARCHITECTURES: ['arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 's390', 's390x', 'x32', 'x64'],\n\n BLOCKLET_MODES: Object.freeze({\n PRODUCTION: 'production',\n DEVELOPMENT: 'development',\n }),\n\n BLOCKLET_FACTORY_SHARES: { developer: 0.7, store: 0.3 },\n\n // interface\n BLOCKLET_INTERFACE_PUBLIC,\n BLOCKLET_INTERFACE_WELLKNOWN, // Deprecated\n BLOCKLET_UI_INTERFACES,\n BLOCKLET_STANDARD_INTERFACES,\n\n BLOCKLET_INTERFACE_TYPE_WEB,\n BLOCKLET_INTERFACE_TYPE_SERVICE,\n BLOCKLET_INTERFACE_TYPE_WELLKNOWN,\n BLOCKLET_INTERFACE_TYPES,\n\n BLOCKLET_INTERFACE_PROTOCOL_HTTP,\n BLOCKLET_INTERFACE_PROTOCOL_TCP,\n BLOCKLET_INTERFACE_PROTOCOL_UDP,\n BLOCKLET_INTERFACE_PROTOCOLS,\n\n BLOCKLET_DYNAMIC_PATH_PREFIX: '*',\n BLOCKLET_DEFAULT_PORT_NAME: 'BLOCKLET_PORT',\n BLOCKLET_DEFAULT_PATH_REWRITE: '/',\n\n // bundle\n BLOCKLET_RELEASE_FOLDER: '.blocklet/release',\n BLOCKLET_RELEASE_FILE: 'blocklet.json',\n BLOCKLET_BUNDLE_FOLDER: '.blocklet/bundle',\n BLOCKLET_BUNDLE_FILE: 'blocklet.zip',\n BLOCKLET_ENTRY_FILE: 'blocklet.js',\n BLOCKLET_META_FILE: 'blocklet.yml',\n BLOCKLET_META_FILE_ALT: 'blocklet.yaml',\n BLOCKLET_META_FILE_OLD: 'blocklet.json',\n\n BLOCKLET_DEFAULT_VERSION: '1.0.0',\n\n BLOCKLET_LATEST_SPEC_VERSION: '1.2.7',\n BLOCKLET_LATEST_REQUIREMENT_SERVER: '>=1.7.0',\n BLOCKLET_LATEST_REQUIREMENT_ABTNODE: '>=1.5.15', // Deprecated\n\n BLOCKLET_CONFIGURABLE_KEY: {\n BLOCKLET_CLUSTER_SIZE: 'BLOCKLET_CLUSTER_SIZE',\n BLOCKLET_APP_NAME: 'BLOCKLET_APP_NAME',\n BLOCKLET_APP_DESCRIPTION: 'BLOCKLET_APP_DESCRIPTION',\n BLOCKLET_APP_SK: 'BLOCKLET_APP_SK',\n BLOCKLET_APP_URL: 'BLOCKLET_APP_URL',\n BLOCKLET_PASSPORT_COLOR: 'BLOCKLET_PASSPORT_COLOR',\n BLOCKLET_WALLET_TYPE: 'BLOCKLET_WALLET_TYPE',\n BLOCKLET_DELETABLE: 'BLOCKLET_DELETABLE',\n },\n});\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = HeaderAddon;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _styledComponents = _interopRequireDefault(require(\"styled-components\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _IconButton = _interopRequireDefault(require(\"@mui/material/IconButton\"));\n\nvar _HelpOutline = _interopRequireDefault(require(\"@mui/icons-material/HelpOutline\"));\n\nvar _reactRouterDom = require(\"react-router-dom\");\n\nvar _SessionManager = _interopRequireDefault(require(\"@arcblock/did-connect/lib/SessionManager\"));\n\nvar _selector = _interopRequireDefault(require(\"@arcblock/ux/lib/Locale/selector\"));\n\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\n\nvar _utils = require(\"@arcblock/did-connect/lib/utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/* eslint-disable react/jsx-one-expression-per-line */\nfunction HeaderAddon(_ref) {\n let {\n SessionContext,\n webWalletUrl,\n extraItems,\n showLocale,\n showHelper,\n showSessionManager,\n sessionManagerProps\n } = _ref;\n const {\n session\n } = (0, _react.useContext)(SessionContext);\n const {\n locale\n } = (0, _react.useContext)(_context.LocaleContext);\n const location = (0, _reactRouterDom.useLocation)();\n const walletUrl = webWalletUrl || (0, _utils.getWebWalletUrl)();\n const docPaths = {\n '/dashboard': '/introduction/abtnode-overview',\n '/store': '/marketplace',\n '/blocklets': '/blocklet',\n '/router/rules': '/router',\n '/router/engine': '/router',\n '/settings/basic': '/misc',\n '/settings/team': '/misc/member-management',\n '/console': '/misc/graphql-console'\n };\n\n const onHelpClick = () => {\n const pathName = location.pathname;\n let path = '';\n\n if (pathName.indexOf('/blocklets') > -1) {\n path = docPaths['/blocklets'];\n } else if (pathName.indexOf('/store') > -1) {\n path = docPaths['/store'];\n } else if (docPaths[pathName]) {\n path = docPaths[pathName];\n }\n\n window.open(\"https://docs.arcblock.io/abtnode/\".concat(locale).concat(path), '_blank');\n };\n\n return /*#__PURE__*/_react.default.createElement(Div, null, extraItems.map(x => x), showLocale && /*#__PURE__*/_react.default.createElement(_selector.default, {\n \"data-cy\": \"locale-addon\",\n size: 23,\n showText: false,\n className: \"locale-addon\"\n }), showHelper && /*#__PURE__*/_react.default.createElement(_IconButton.default, {\n onClick: onHelpClick\n }, /*#__PURE__*/_react.default.createElement(_HelpOutline.default, {\n style: {\n fontSize: 28\n }\n })), showSessionManager && /*#__PURE__*/_react.default.createElement(_SessionManager.default, Object.assign({\n session: session,\n webWalletUrl: walletUrl,\n size: 24,\n showRole: true\n }, sessionManagerProps)));\n}\n\nHeaderAddon.propTypes = {\n SessionContext: _propTypes.default.object.isRequired,\n webWalletUrl: _propTypes.default.string,\n extraItems: _propTypes.default.array,\n showLocale: _propTypes.default.bool,\n showSessionManager: _propTypes.default.bool,\n showHelper: _propTypes.default.bool,\n sessionManagerProps: _propTypes.default.object\n};\nHeaderAddon.defaultProps = {\n webWalletUrl: '',\n extraItems: [],\n showLocale: true,\n showSessionManager: true,\n showHelper: true,\n sessionManagerProps: {}\n};\n\nconst Div = _styledComponents.default.div.withConfig({\n displayName: \"addon__Div\",\n componentId: \"sc-5tyqcw-0\"\n})([\"display:flex;justify-content:center;align-items:center;.user-addon{.user-avatar{width:28px;border-radius:14px;height:auto;}}\", \"{> button,> a{padding-left:8px;padding-right:8px;}}\"], props => props.theme.breakpoints.down('md'));"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(this["webpackJsonp@abtnode/blocklet-services"]=this["webpackJsonp@abtnode/blocklet-services"]||[]).push([[13],{1218:function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return _}));var a,o=n(25),c=n(45),r=n.n(c),i=n(130),s=n(0),l=n.n(s),u=n(221),d=n(27),f=n(361),p=n(
|
|
2
|
-
//# sourceMappingURL=13.
|
|
1
|
+
(this["webpackJsonp@abtnode/blocklet-services"]=this["webpackJsonp@abtnode/blocklet-services"]||[]).push([[13],{1218:function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return _}));var a,o=n(25),c=n(45),r=n.n(c),i=n(130),s=n(0),l=n.n(s),u=n(221),d=n(27),f=n(361),p=n(127),m=n.n(p),w=n(486),b=n(151),g=n.n(b),v=n(507),h=n.n(v),E=n(124),k=n(882),I=n.n(k),x=n(77),P=n(222),O=n(223);function _(){var e=Object(P.c)(),t=e.api,n=e.session,a=Object(E.useLocaleContext)(),o=a.t,c=a.locale,s=I()().getPassportId,u=Object(d.k)(),p=new URL(window.location.href).searchParams,b=p.get("redirect"),v=function(){var e=Object(i.a)(r.a.mark((function e(t,a){return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return Object(O.f)(a(t.sessionToken)),e.next=3,n.refresh();case 3:setTimeout((function(){if(b){var e=decodeURIComponent(b);e.startsWith(x.WELLKNOWN_SERVICE_PATH_PREFIX)?u.replace(e):window.location=e}else window.location=window.env.pathPrefix||"/"}),50);case 4:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),k={passportId:s()},_=p.get("inviteId");return _&&(k.inviteId=_),n.loading?l.a.createElement(g.a,null,l.a.createElement(m.a,null)):l.a.createElement(j,null,l.a.createElement("div",{className:"connect-wrapper"},l.a.createElement(h.a,{className:"connect",action:_?"invite":"login",checkFn:t.get,checkTimeout:6e5,socketUrl:t.socketUrl,webWalletUrl:Object(O.b)(),onSuccess:v,locale:c,messages:{title:o("login.dialog.title"),scan:o("login.dialog.scan"),confirm:o("login.dialog.confirm"),success:o("login.dialog.success")},extraParams:k,extraContent:l.a.createElement(w.a,{textAlign:"center",fontSize:14},l.a.createElement(f.Link,{to:"".concat(x.WELLKNOWN_SERVICE_PATH_PREFIX,"/lost-passport?redirect=").concat(encodeURIComponent("".concat(window.location.pathname).concat(window.location.search))),style:{color:"#4598FA"}},o("lostPassport.title")))})))}var j=u.default.div(a||(a=Object(o.a)(["\n box-sizing: border-box;\n width: 100%;\n height: 100vh;\n position: relative;\n display: flex;\n flex-direction: column;\n .connect-wrapper {\n flex: 1;\n }\n .connect {\n background: #fafafa;\n }\n"])))},882:function(e,t,n){"use strict";var a=n(69);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=(0,c.default)("passportId",""),t=a(e,3),n=t[0],o=t[1],r=t[2];return{getPassportId:function(){return setTimeout((function(){r()}),0),n||""},setPassportId:o}};var o,c=(o=n(363))&&o.__esModule?o:{default:o}}}]);
|
|
2
|
+
//# sourceMappingURL=13.503ff0b6.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["pages/login.js","../../ux/lib/hooks/use-passport-id.js"],"names":["UserLogin","useSessionContext","api","session","useLocaleContext","t","locale","getPassportId","usePassportId","history","useHistory","searchParams","URL","window","location","href","redirect","get","onLogin","result","decrypt","a","setSessionToken","sessionToken","refresh","setTimeout","url","decodeURIComponent","startsWith","WELLKNOWN_SERVICE_PATH_PREFIX","replace","env","pathPrefix","extraParams","passportId","inviteId","loading","Div","className","action","checkFn","checkTimeout","socketUrl","webWalletUrl","getWebWalletUrl","onSuccess","messages","title","scan","confirm","success","extraContent","textAlign","fontSize","to","encodeURIComponent","pathname","search","style","color","styled","div","Object","defineProperty","exports","value","default","_useLocalStorage","setPassportId","clearPassportId","obj","require","__esModule"],"mappings":"uYAkBe,SAASA,IACtB,MAAyBC,cAAjBC,EAAR,EAAQA,IAAKC,EAAb,EAAaA,QACb,EAAsBC,6BAAdC,EAAR,EAAQA,EAAGC,EAAX,EAAWA,OACHC,EAAkBC,MAAlBD,cACFE,EAAUC,cAERC,EAAiB,IAAIC,IAAIC,OAAOC,SAASC,MAAzCJ,aACFK,EAAWL,EAAaM,IAAI,YAE5BC,EAAO,uCAAG,WAAOC,EAAQC,GAAf,SAAAC,EAAA,6DACdC,YAAgBF,EAAQD,EAAOI,eADjB,SAGRpB,EAAQqB,UAHA,OAKdC,YAAW,WACT,GAAIT,EAAU,CACZ,IAAMU,EAAMC,mBAAmBX,GAC3BU,EAAIE,WAAWC,iCACjBpB,EAAQqB,QAAQJ,GAEhBb,OAAOC,SAAWY,OAGpBb,OAAOC,SAAWD,OAAOkB,IAAIC,YAAc,MAE5C,IAhBW,2CAAH,wDAmBPC,EAAc,CAAEC,WAAY3B,KAC5B4B,EAAWxB,EAAaM,IAAI,YAKlC,OAJIkB,IACFF,EAAYE,SAAWA,GAGrBhC,EAAQiC,QAER,kBAAC,IAAD,KACE,kBAAC,IAAD,OAMJ,kBAACC,EAAD,KACE,yBAAKC,UAAU,mBACb,kBAAC,IAAD,CACEA,UAAU,UACVC,OAAQJ,EAAW,SAAW,QAC9BK,QAAStC,EAAIe,IACbwB,aAAc,IACdC,UAAWxC,EAAIwC,UACfC,aAAcC,cACdC,UAAW3B,EACXZ,OAAQA,EACRwC,SAAU,CACRC,MAAO1C,EAAE,sBACT2C,KAAM3C,EAAE,qBACR4C,QAAS5C,EAAE,wBACX6C,QAAS7C,EAAE,yBAEb4B,YAAaA,EACbkB,aACE,kBAAC,IAAD,CAAKC,UAAU,SAASC,SAAU,IAChC,kBAAC,OAAD,CACEC,GAAE,UAAKzB,gCAAL,mCAA6D0B,mBAAmB,GAAD,OAC5E1C,OAAOC,SAAS0C,UAD4D,OACjD3C,OAAOC,SAAS2C,UAEhDC,MAAO,CAAEC,MAAO,YACftD,EAAE,4BAUnB,IAAMgC,EAAMuB,UAAOC,IAAV,oP,6CC9FTC,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,QAMR,WACE,OAAqD,EAAIC,EAAiBD,SAAS,aAAc,IAAjG,SAAOhC,EAAP,KAAmBkC,EAAnB,KAAkCC,EAAlC,KASA,MAAO,CACL9D,cARoB,WAIpB,OAHAkB,YAAW,WACT4C,MACC,GACInC,GAAc,IAKrBkC,kBAhBJ,IAEgCE,EAF5BH,GAE4BG,EAFcC,EAAQ,OAEDD,EAAIE,WAAaF,EAAM,CAAEJ,QAASI","file":"static/js/13.
|
|
1
|
+
{"version":3,"sources":["pages/login.js","../../ux/lib/hooks/use-passport-id.js"],"names":["UserLogin","useSessionContext","api","session","useLocaleContext","t","locale","getPassportId","usePassportId","history","useHistory","searchParams","URL","window","location","href","redirect","get","onLogin","result","decrypt","a","setSessionToken","sessionToken","refresh","setTimeout","url","decodeURIComponent","startsWith","WELLKNOWN_SERVICE_PATH_PREFIX","replace","env","pathPrefix","extraParams","passportId","inviteId","loading","Div","className","action","checkFn","checkTimeout","socketUrl","webWalletUrl","getWebWalletUrl","onSuccess","messages","title","scan","confirm","success","extraContent","textAlign","fontSize","to","encodeURIComponent","pathname","search","style","color","styled","div","Object","defineProperty","exports","value","default","_useLocalStorage","setPassportId","clearPassportId","obj","require","__esModule"],"mappings":"uYAkBe,SAASA,IACtB,MAAyBC,cAAjBC,EAAR,EAAQA,IAAKC,EAAb,EAAaA,QACb,EAAsBC,6BAAdC,EAAR,EAAQA,EAAGC,EAAX,EAAWA,OACHC,EAAkBC,MAAlBD,cACFE,EAAUC,cAERC,EAAiB,IAAIC,IAAIC,OAAOC,SAASC,MAAzCJ,aACFK,EAAWL,EAAaM,IAAI,YAE5BC,EAAO,uCAAG,WAAOC,EAAQC,GAAf,SAAAC,EAAA,6DACdC,YAAgBF,EAAQD,EAAOI,eADjB,SAGRpB,EAAQqB,UAHA,OAKdC,YAAW,WACT,GAAIT,EAAU,CACZ,IAAMU,EAAMC,mBAAmBX,GAC3BU,EAAIE,WAAWC,iCACjBpB,EAAQqB,QAAQJ,GAEhBb,OAAOC,SAAWY,OAGpBb,OAAOC,SAAWD,OAAOkB,IAAIC,YAAc,MAE5C,IAhBW,2CAAH,wDAmBPC,EAAc,CAAEC,WAAY3B,KAC5B4B,EAAWxB,EAAaM,IAAI,YAKlC,OAJIkB,IACFF,EAAYE,SAAWA,GAGrBhC,EAAQiC,QAER,kBAAC,IAAD,KACE,kBAAC,IAAD,OAMJ,kBAACC,EAAD,KACE,yBAAKC,UAAU,mBACb,kBAAC,IAAD,CACEA,UAAU,UACVC,OAAQJ,EAAW,SAAW,QAC9BK,QAAStC,EAAIe,IACbwB,aAAc,IACdC,UAAWxC,EAAIwC,UACfC,aAAcC,cACdC,UAAW3B,EACXZ,OAAQA,EACRwC,SAAU,CACRC,MAAO1C,EAAE,sBACT2C,KAAM3C,EAAE,qBACR4C,QAAS5C,EAAE,wBACX6C,QAAS7C,EAAE,yBAEb4B,YAAaA,EACbkB,aACE,kBAAC,IAAD,CAAKC,UAAU,SAASC,SAAU,IAChC,kBAAC,OAAD,CACEC,GAAE,UAAKzB,gCAAL,mCAA6D0B,mBAAmB,GAAD,OAC5E1C,OAAOC,SAAS0C,UAD4D,OACjD3C,OAAOC,SAAS2C,UAEhDC,MAAO,CAAEC,MAAO,YACftD,EAAE,4BAUnB,IAAMgC,EAAMuB,UAAOC,IAAV,oP,6CC9FTC,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,QAMR,WACE,OAAqD,EAAIC,EAAiBD,SAAS,aAAc,IAAjG,SAAOhC,EAAP,KAAmBkC,EAAnB,KAAkCC,EAAlC,KASA,MAAO,CACL9D,cARoB,WAIpB,OAHAkB,YAAW,WACT4C,MACC,GACInC,GAAc,IAKrBkC,kBAhBJ,IAEgCE,EAF5BH,GAE4BG,EAFcC,EAAQ,OAEDD,EAAIE,WAAaF,EAAM,CAAEJ,QAASI","file":"static/js/13.503ff0b6.chunk.js","sourcesContent":["/* eslint-disable react/jsx-one-expression-per-line */\nimport React from 'react';\nimport styled from '@emotion/styled';\nimport { Link, useHistory } from 'react-router-dom';\n\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport Box from '@mui/material/Box';\nimport Center from '@arcblock/ux/lib/Center';\n\nimport DidConnect from '@arcblock/did-connect/lib/Connect';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\n\nimport usePassportId from '@abtnode/ux/lib/hooks/use-passport-id';\nimport { WELLKNOWN_SERVICE_PATH_PREFIX } from '@abtnode/constant';\n\nimport { useSessionContext } from '../contexts/session';\nimport { getWebWalletUrl, setSessionToken } from '../util';\n\nexport default function UserLogin() {\n const { api, session } = useSessionContext();\n const { t, locale } = useLocaleContext();\n const { getPassportId } = usePassportId();\n const history = useHistory();\n\n const { searchParams } = new URL(window.location.href);\n const redirect = searchParams.get('redirect');\n\n const onLogin = async (result, decrypt) => {\n setSessionToken(decrypt(result.sessionToken));\n\n await session.refresh();\n\n setTimeout(() => {\n if (redirect) {\n const url = decodeURIComponent(redirect);\n if (url.startsWith(WELLKNOWN_SERVICE_PATH_PREFIX)) {\n history.replace(url);\n } else {\n window.location = url;\n }\n } else {\n window.location = window.env.pathPrefix || '/';\n }\n }, 50);\n };\n\n const extraParams = { passportId: getPassportId() };\n const inviteId = searchParams.get('inviteId');\n if (inviteId) {\n extraParams.inviteId = inviteId;\n }\n\n if (session.loading) {\n return (\n <Center>\n <Spinner />\n </Center>\n );\n }\n\n return (\n <Div>\n <div className=\"connect-wrapper\">\n <DidConnect\n className=\"connect\"\n action={inviteId ? 'invite' : 'login'}\n checkFn={api.get}\n checkTimeout={10 * 60 * 1000}\n socketUrl={api.socketUrl}\n webWalletUrl={getWebWalletUrl()}\n onSuccess={onLogin}\n locale={locale}\n messages={{\n title: t('login.dialog.title'),\n scan: t('login.dialog.scan'),\n confirm: t('login.dialog.confirm'),\n success: t('login.dialog.success'),\n }}\n extraParams={extraParams}\n extraContent={\n <Box textAlign=\"center\" fontSize={14}>\n <Link\n to={`${WELLKNOWN_SERVICE_PATH_PREFIX}/lost-passport?redirect=${encodeURIComponent(\n `${window.location.pathname}${window.location.search}`\n )}`}\n style={{ color: '#4598FA' }}>\n {t('lostPassport.title')}\n </Link>\n </Box>\n }\n />\n </div>\n </Div>\n );\n}\n\nconst Div = styled.div`\n box-sizing: border-box;\n width: 100%;\n height: 100vh;\n position: relative;\n display: flex;\n flex-direction: column;\n .connect-wrapper {\n flex: 1;\n }\n .connect {\n background: #fafafa;\n }\n`;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = usePassportId;\n\nvar _useLocalStorage = _interopRequireDefault(require(\"react-use/lib/useLocalStorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction usePassportId() {\n const [passportId, setPassportId, clearPassportId] = (0, _useLocalStorage.default)('passportId', '');\n\n const getPassportId = () => {\n setTimeout(() => {\n clearPassportId();\n }, 0);\n return passportId || '';\n };\n\n return {\n getPassportId,\n setPassportId\n };\n}"],"sourceRoot":""}
|