@abtnode/blocklet-services 1.7.18 → 1.7.19
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 +28 -28
- package/build/index.html +1 -1
- package/build/{precache-manifest.c82f233909194dca95a9f73ae18caf89.js → precache-manifest.8af23f541cf71cf21af3b5eb2929e4b0.js} +27 -27
- package/build/service-worker.js +1 -1
- package/build/static/js/0.06a42cd5.chunk.js +3 -0
- package/build/static/js/{0.65d89c48.chunk.js.LICENSE.txt → 0.06a42cd5.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/0.06a42cd5.chunk.js.map +1 -0
- package/build/static/js/1.d7898839.chunk.js +2 -0
- package/build/static/js/1.d7898839.chunk.js.map +1 -0
- package/build/static/js/{10.d8b82f8d.chunk.js → 10.336770fb.chunk.js} +2 -2
- package/build/static/js/{10.d8b82f8d.chunk.js.map → 10.336770fb.chunk.js.map} +1 -1
- package/build/static/js/4.e1667b15.chunk.js +3 -0
- package/build/static/js/{4.7a36b2ba.chunk.js.LICENSE.txt → 4.e1667b15.chunk.js.LICENSE.txt} +1 -1
- package/build/static/js/4.e1667b15.chunk.js.map +1 -0
- package/build/static/js/5.326ad876.chunk.js +2 -0
- package/build/static/js/5.326ad876.chunk.js.map +1 -0
- package/build/static/js/{6.fa05fa72.chunk.js → 6.408320ab.chunk.js} +2 -2
- package/build/static/js/{6.fa05fa72.chunk.js.map → 6.408320ab.chunk.js.map} +1 -1
- package/build/static/js/{7.f7f97288.chunk.js → 7.987e34e1.chunk.js} +2 -2
- package/build/static/js/{7.f7f97288.chunk.js.map → 7.987e34e1.chunk.js.map} +1 -1
- package/build/static/js/{8.018740e7.chunk.js → 8.07a80841.chunk.js} +2 -2
- package/build/static/js/{8.018740e7.chunk.js.map → 8.07a80841.chunk.js.map} +1 -1
- package/build/static/js/9.a64267bb.chunk.js +2 -0
- package/build/static/js/{9.bedec3ae.chunk.js.map → 9.a64267bb.chunk.js.map} +1 -1
- package/build/static/js/{main.e3089af8.chunk.js → main.9b6d45d8.chunk.js} +2 -2
- package/build/static/js/{main.e3089af8.chunk.js.map → main.9b6d45d8.chunk.js.map} +1 -1
- package/build/static/js/{runtime-main.fca72100.js → runtime-main.bd0882ad.js} +2 -2
- package/build/static/js/{runtime-main.fca72100.js.map → runtime-main.bd0882ad.js.map} +1 -1
- package/package.json +26 -26
- package/build/static/js/0.65d89c48.chunk.js +0 -3
- package/build/static/js/0.65d89c48.chunk.js.map +0 -1
- package/build/static/js/1.45d34a8d.chunk.js +0 -2
- package/build/static/js/1.45d34a8d.chunk.js.map +0 -1
- package/build/static/js/4.7a36b2ba.chunk.js +0 -3
- package/build/static/js/4.7a36b2ba.chunk.js.map +0 -1
- package/build/static/js/5.3334eaed.chunk.js +0 -2
- package/build/static/js/5.3334eaed.chunk.js.map +0 -1
- package/build/static/js/9.bedec3ae.chunk.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(this["webpackJsonp@abtnode/blocklet-services"]=this["webpackJsonp@abtnode/blocklet-services"]||[]).push([[8],{1047:function(e,t,s){"use strict";var a=s(
|
|
2
|
-
//# sourceMappingURL=8.
|
|
1
|
+
(this["webpackJsonp@abtnode/blocklet-services"]=this["webpackJsonp@abtnode/blocklet-services"]||[]).push([[8],{1047:function(e,t,s){"use strict";var a=s(70);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=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 a={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if("default"!==r&&Object.prototype.hasOwnProperty.call(e,r)){var n=o?Object.getOwnPropertyDescriptor(e,r):null;n&&(n.get||n.set)?Object.defineProperty(a,r,n):a[r]=e[r]}a.default=e,s&&s.set(e,a);return a}(s(0)),r=P(s(47)),n=s(373),l=P(s(71)),i=P(s(921)),c=P(s(76)),u=P(s(154)),d=P(s(372)),p=P(s(527)),f=s(125),m=s(72),v=P(s(922)),h=P(s(906));function P(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 b=(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;}"]),y=(0,v.default)((function(e){var t=e.SessionContext,s=e.webWalletUrl,r=(0,o.useContext)(t),u=r.api,v=r.session,P=(0,o.useContext)(f.LocaleContext),g=P.t,y=P.locale,D=(0,o.useState)(!1),w=a(D,2),_=w[0],x=w[1],I=(0,n.useHistory)(),E=(0,h.default)().setPassportId,W={},C=new URL(window.location.href).searchParams.get("id");return C&&(W.id=C),o.default.createElement(b,null,_?o.default.createElement("div",{className:"login"},o.default.createElement("div",{className:"connect"},o.default.createElement(c.default,{textAlign:"center"},o.default.createElement(c.default,{mb:3,color:"success.main"},o.default.createElement(i.default,{style:{fontSize:60}})),o.default.createElement(l.default,{component:"p",variant:"body1",className:"subheader"},g("issuePassport.dialog.success")),o.default.createElement(c.default,{mt:3},o.default.createElement(d.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)?I.replace("".concat(m.WELLKNOWN_SERVICE_PATH_PREFIX,"/login")):I.replace("/")}},g("issuePassport.dialog.loginWithPassport")))))):o.default.createElement(p.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),x(!0)},locale:y,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=y},1217:function(e,t,s){"use strict";s.r(t),s.d(t,"default",(function(){return c}));var a=s(0),o=s.n(a),r=s(1047),n=s.n(r),l=s(227),i=s(228);function c(){return o.a.createElement(n.a,{SessionContext:l.a,webWalletUrl:Object(i.b)()})}},906:function(e,t,s){"use strict";var a=s(70);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=(0,r.default)("passportId",""),t=a(e,3),s=t[0],o=t[1],n=t[2];return{getPassportId:function(){return setTimeout((function(){n()}),0),s},setPassportId:o}};var o,r=(o=s(377))&&o.__esModule?o:{default:o}},921:function(e,t,s){"use strict";var a=s(145);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(s(146)),r=s(2),n=(0,o.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},922:function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t){return o.default.createElement(r.LocaleProvider,{translations:n.translations},o.default.createElement(e,t))}};var a,o=(a=s(0))&&a.__esModule?a:{default:a},r=s(125),n=s(923)},923:function(e,t,s){"use strict";var a=s(924),o=s(925);e.exports={translations:{zh:o,en:a}}},924:function(e,t,s){"use strict";var a=s(375);e.exports=a({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"}})},925:function(e,t,s){"use strict";var a=s(375);e.exports=a({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"}})}}]);
|
|
2
|
+
//# sourceMappingURL=8.07a80841.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","../../../node_modules/@mui/icons-material/CheckCircle.js","../../ux/lib/wrap-locale.js","../../ux/lib/locales/index.js","../../ux/lib/locales/en.js","../../ux/lib/locales/zh.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","_createSvgIcon","_jsxRuntime","jsx","d","Component","props","LocaleProvider","translations","_locales","en","zh","module","flat","issuePassport","description","dialog","loginWithPassport","lostPassport","return","selectPassport","receivePassport","common","next","complete"],"mappings":"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","file":"static/js/8.018740e7.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\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;","\"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});","\"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});"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["../../ux/lib/issue-passport.js","pages/issue-passport.js","../../ux/lib/hooks/use-passport-id.js","../../../node_modules/@mui/icons-material/CheckCircle.js","../../ux/lib/wrap-locale.js","../../ux/lib/locales/index.js","../../ux/lib/locales/en.js","../../ux/lib/locales/zh.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","_createSvgIcon","_jsxRuntime","jsx","d","Component","props","LocaleProvider","translations","_locales","en","zh","module","flat","issuePassport","description","dialog","loginWithPassport","lostPassport","return","selectPassport","receivePassport","common","next","complete"],"mappings":"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","file":"static/js/8.07a80841.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\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;","\"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});","\"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});"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(this["webpackJsonp@abtnode/blocklet-services"]=this["webpackJsonp@abtnode/blocklet-services"]||[]).push([[9],{1151:function(e,n,t){"use strict";var a=t(145);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(t(146)),o=t(2),i=(0,r.default)((0,o.jsx)("path",{d:"M8 5v14l11-7z"}),"PlayArrow");n.default=i},1219:function(e,n,t){"use strict";t.r(n),t.d(n,"default",(function(){return W}));var a,r,o,i=t(24),l=t(11),c=t(1046),s=t(0),u=t.n(s),d=t(47),p=t(504),f=t(1151),E=t.n(f),L=t(191),_=t(372),m=t.n(_),b=t(125),h=t(151),O=t.n(h),T=t(535),g=t.n(T),v=t(528),C=t.n(v),k=t(389),w=t.n(k),x=t(154),B=t.n(x),y=t(127),A=t.n(y),P=t(439),S=t(1025),R=t.n(S),K=t(905),I=t(72),N=t(950),j=t.n(N),F=t(309),D=t(227),U=["appInfo"],M=function(e){var n=e.appInfo,t=Object(c.a)(e,U),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(g.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(b.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],f=Object(s.useState)(!1),L=Object(l.a)(f,2),_=L[0],h=L[1],T=Object(P.a)((function(e){return e.breakpoints.down("md")})),g=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&&(h(!1),r(t),clearInterval(e)):g()})).catch((function(e){d(!1),O.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&&(h(!0),e=setInterval(n,3e3))):g()})).catch((function(e){d(!1),O.a.error(e.message)}))}),[]);if(!a)return u.a.createElement(B.a,null,u.a.createElement(A.a,null));var v={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"},!T&&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:D.a}))),u.a.createElement(H,{elevation:0},u.a.createElement(Y,null,u.a.createElement(M,{appInfo:v}),u.a.createElement("div",{className:"app-info_content"},u.a.createElement(p.a,{className:"app-info_name"},v.title),u.a.createElement(C.a,{size:14,className:"app-info_did"},v.publisher))),u.a.createElement(p.a,{className:"title-box"},u.a.createElement(p.a,{className:"icon"},u.a.createElement(E.a,null)),u.a.createElement(p.a,{className:"title"},e("blocklet.startApplication"))),u.a.createElement(p.a,{className:"sub-title"},e("blocklet.startDescription",{name:Object(K.getDisplayName)(a)})),u.a.createElement(p.a,{mt:8},u.a.createElement(m.a,{style:{minWidth:200},disabled:c||_,variant:"contained",color:"primary",size:"large",loading:_,onClick:function(){return d(!0),h(!0),void F.a.post("/blocklet/start").then((function(){g()})).catch((function(e){O.a.error(e.message),d(!1),h(!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)(L.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")}))},905:function(e,n,t){var a=t(48),r=t(289),o=t(1026),i=t(949),l=t(1027),c=t(72),s=c.NODE_SERVICES,u=c.SLOT_FOR_IP_DNS_SITE,d=c.WHO_CAN_ACCESS,p=t(913),f=p.BlockletGroup,E=p.fromBlockletStatus,L=p.fromBlockletSource,_=p.BLOCKLET_INTERFACE_TYPE_WEB,m=function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.parallel,l=void 0!==i&&i,c=t.sync;if(c){if(n(e),e.children){var s,u=o(e.children);try{for(u.s();!(s=u.n()).done;){var d=s.value;n(d)}}catch(_){u.e(_)}finally{u.f()}}return null}if(!l)return new Promise(function(){var t=r(a.mark((function t(r,i){var l,c,s;return a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,n(e);case 3:if(!e.children){t.next=21;break}l=o(e.children),t.prev=5,l.s();case 7:if((c=l.n()).done){t.next=13;break}return s=c.value,t.next=11,n(s);case 11:t.next=7;break;case 13:t.next=18;break;case 15:t.prev=15,t.t0=t.catch(5),l.e(t.t0);case 18:return t.prev=18,l.f(),t.finish(18);case 21:r(null),t.next=27;break;case 24:t.prev=24,t.t1=t.catch(0),i(t.t1);case 27:case"end":return t.stop()}}),t,null,[[0,24],[5,15,18,21]])})));return function(e,n){return t.apply(this,arguments)}}());var p=[];if(p.push(n(e)),e.children){var f,E=o(e.children);try{for(E.s();!(f=E.n()).done;){var L=f.value;p.push(n(L))}}catch(_){E.e(_)}finally{E.f()}}return Promise.all(p)},b=function(e,n){return m(e,n,{sync:!0})},h=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},O=function(e,n){var t=[n];n===s.AUTH&&t.push(s.AUTH_SERVICE);var a=h(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")},forEachBlockletSync:b,isDeletableBlocklet:function(e){if(!e)return!1;var n=e.environments.find((function(e){return"BLOCKLET_DELETABLE"===e.key}));return!n||"yes"===n.value},forEachBlocklet:m,getRequiredMissingConfigs:function(e){var n=[],t=e.configs||[];t.forEach((function(t){t.required&&!t.value&&n.push({did:e.meta.did,key:t.key,description:t.description})}));var a,r=o(e.children||[]);try{var i=function(){var e=a.value;(e.configs||[]).forEach((function(a){!a.required||a.value||t.some((function(e){return e.key===a.key&&e.value}))||n.push({did:e.meta.did,key:a.key,description:a.description})}))};for(r.s();!(a=r.n()).done;)i()}catch(l){r.e(l)}finally{r.f()}return n},wipeSensitiveData:function(e){return e?(m(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 b(e,(function(e){e.meta.group!==f.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&&(e.status=E(e.status),e.source=L(e.source),(e.children||[]).forEach((function(e){e.status=E(e.status),void 0!==e.source&&(e.source=L(e.source))})),e.settings&&(e.settings.children||[]).forEach((function(e){e.status=E(e.status),void 0!==e.source&&(e.source=L(e.source))})))},findWebInterface:h,findServiceFromMeta:O,getWhoCanAccess:function(e){if(!e)return d.ALL;if(i(e,"settings.whoCanAccess"))return e.settings.whoCanAccess;var n=O(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,"-"))}}},913: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"}),p=["web","service","wellknown"],f=["publicUrl"],E=["publicUrl","wellknownUrl"],L=["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:f,BLOCKLET_STANDARD_INTERFACES:E,BLOCKLET_INTERFACE_TYPE_WEB:"web",BLOCKLET_INTERFACE_TYPE_SERVICE:"service",BLOCKLET_INTERFACE_TYPE_WELLKNOWN:"wellknown",BLOCKLET_INTERFACE_TYPES:p,BLOCKLET_INTERFACE_PROTOCOL_HTTP:"http",BLOCKLET_INTERFACE_PROTOCOL_TCP:"tcp",BLOCKLET_INTERFACE_PROTOCOL_UDP:"udp",BLOCKLET_INTERFACE_PROTOCOLS:L,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"}})},950:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=L;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=f(t(47)),o=f(t(10)),i=f(t(126)),l=f(t(1028)),c=t(373),s=f(t(1029)),u=f(t(1030)),d=t(125),p=t(152);function f(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 L(e){var n=e.SessionContext,t=e.webWalletUrl,r=e.extraItems,o=e.showLocale,f=e.showHelper,E=e.showSessionManager,L=e.sessionManagerProps,m=(0,a.useContext)(n).session,b=(0,a.useContext)(d.LocaleContext).locale,h=(0,c.useLocation)(),O=t||(0,p.getWebWalletUrl)(),T={"/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"}),f&&a.default.createElement(i.default,{onClick:function(){var e=h.pathname,n="";e.indexOf("/blocklets")>-1?n=T["/blocklets"]:e.indexOf("/store")>-1?n=T["/store"]:T[e]&&(n=T[e]),window.open("https://docs.arcblock.io/abtnode/".concat(b).concat(n),"_blank")}},a.default.createElement(l.default,{style:{fontSize:28}})),E&&a.default.createElement(s.default,Object.assign({session:m,webWalletUrl:O,size:24,showRole:!0},L)))}L.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},L.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=9.a64267bb.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","forEachBlocklet","cb","parallel","sync","children","child","Promise","resolve","reject","tasks","push","all","forEachBlockletSync","findWebInterface","meta","interfaces","Array","isArray","find","x","type","findServiceFromMeta","ServiceName","names","AUTH","AUTH_SERVICE","webInterface","services","includes","module","isFreeBlocklet","payment","price","map","every","isComponentBlocklet","isDeletableBlocklet","config","environments","key","getRequiredMissingConfigs","missingConfigs","configs","forEach","item","required","description","some","y","wipeSensitiveData","secure","configObj","environmentObj","hasRunnableComponent","has","group","gateway","displayName","onlyUseMeta","target","e","fixBlockletStatus","source","undefined","settings","getWhoCanAccess","ALL","whoCanAccess","service","replaceSlotToIp","url","ip","replace","urlFriendly","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_CONFIGURABLE_KEY","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","concat","fontSize","assign","showRole","propTypes","object","isRequired","string","array","bool","defaultProps","withConfig","componentId"],"mappings":"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","file":"static/js/9.bedec3ae.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 'styled-components';\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 { BlockletGroup, fromBlockletStatus, fromBlockletSource, BLOCKLET_INTERFACE_TYPE_WEB } = require('./constants');\n\nconst forEachBlocklet = (blocklet, cb, { parallel = false, sync } = {}) => {\n // sync\n if (sync) {\n cb(blocklet);\n if (blocklet.children) {\n for (const child of blocklet.children) {\n cb(child);\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 await cb(blocklet);\n if (blocklet.children) {\n for (const child of blocklet.children) {\n await cb(child);\n }\n }\n\n resolve(null);\n } catch (err) {\n reject(err);\n }\n });\n }\n\n // parallel\n const tasks = [];\n tasks.push(cb(blocklet));\n if (blocklet.children) {\n for (const child of blocklet.children) {\n tasks.push(cb(child));\n }\n }\n return Promise.all(tasks);\n};\n\nconst forEachBlockletSync = (blocklet, cb) => forEachBlocklet(blocklet, cb, { sync: true });\n\nconst getRequiredMissingConfigs = (blocklet) => {\n const missingConfigs = [];\n const configs = blocklet.configs || [];\n configs.forEach((item) => {\n if (item.required && !item.value) {\n missingConfigs.push({ did: blocklet.meta.did, key: item.key, description: item.description });\n }\n });\n\n // eslint-disable-next-line no-restricted-syntax\n for (const child of blocklet.children || []) {\n const childConfigs = child.configs || [];\n // configProp does not exist in root blocklet config\n // or value of configProp in root blocklet config is empty.\n childConfigs.forEach((x) => {\n if (x.required && !x.value && !configs.some((y) => y.key === x.key && y.value)) {\n missingConfigs.push({ did: child.meta.did, key: x.key, description: x.description });\n }\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 blocklet.status = fromBlockletStatus(blocklet.status);\n blocklet.source = fromBlockletSource(blocklet.source);\n (blocklet.children || []).forEach((child) => {\n child.status = fromBlockletStatus(child.status);\n if (child.source !== undefined) {\n child.source = fromBlockletSource(child.source);\n }\n });\n if (blocklet.settings) {\n (blocklet.settings.children || []).forEach((child) => {\n child.status = fromBlockletStatus(child.status);\n if (child.source !== undefined) {\n child.source = fromBlockletSource(child.source);\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 forEachBlockletSync,\n isDeletableBlocklet,\n forEachBlocklet,\n getRequiredMissingConfigs,\n wipeSensitiveData,\n hasRunnableComponent,\n getDisplayName,\n fixBlockletStatus,\n findWebInterface,\n findServiceFromMeta,\n getWhoCanAccess,\n replaceSlotToIp,\n urlFriendly,\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","forEachBlocklet","cb","parallel","sync","children","child","Promise","resolve","reject","tasks","push","all","forEachBlockletSync","findWebInterface","meta","interfaces","Array","isArray","find","x","type","findServiceFromMeta","ServiceName","names","AUTH","AUTH_SERVICE","webInterface","services","includes","module","isFreeBlocklet","payment","price","map","every","isComponentBlocklet","isDeletableBlocklet","config","environments","key","getRequiredMissingConfigs","missingConfigs","configs","forEach","item","required","description","some","y","wipeSensitiveData","secure","configObj","environmentObj","hasRunnableComponent","has","group","gateway","displayName","onlyUseMeta","target","e","fixBlockletStatus","source","undefined","settings","getWhoCanAccess","ALL","whoCanAccess","service","replaceSlotToIp","url","ip","replace","urlFriendly","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_CONFIGURABLE_KEY","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","concat","fontSize","assign","showRole","propTypes","object","isRequired","string","array","bool","defaultProps","withConfig","componentId"],"mappings":"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","file":"static/js/9.a64267bb.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 'styled-components';\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 { BlockletGroup, fromBlockletStatus, fromBlockletSource, BLOCKLET_INTERFACE_TYPE_WEB } = require('./constants');\n\nconst forEachBlocklet = (blocklet, cb, { parallel = false, sync } = {}) => {\n // sync\n if (sync) {\n cb(blocklet);\n if (blocklet.children) {\n for (const child of blocklet.children) {\n cb(child);\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 await cb(blocklet);\n if (blocklet.children) {\n for (const child of blocklet.children) {\n await cb(child);\n }\n }\n\n resolve(null);\n } catch (err) {\n reject(err);\n }\n });\n }\n\n // parallel\n const tasks = [];\n tasks.push(cb(blocklet));\n if (blocklet.children) {\n for (const child of blocklet.children) {\n tasks.push(cb(child));\n }\n }\n return Promise.all(tasks);\n};\n\nconst forEachBlockletSync = (blocklet, cb) => forEachBlocklet(blocklet, cb, { sync: true });\n\nconst getRequiredMissingConfigs = (blocklet) => {\n const missingConfigs = [];\n const configs = blocklet.configs || [];\n configs.forEach((item) => {\n if (item.required && !item.value) {\n missingConfigs.push({ did: blocklet.meta.did, key: item.key, description: item.description });\n }\n });\n\n // eslint-disable-next-line no-restricted-syntax\n for (const child of blocklet.children || []) {\n const childConfigs = child.configs || [];\n // configProp does not exist in root blocklet config\n // or value of configProp in root blocklet config is empty.\n childConfigs.forEach((x) => {\n if (x.required && !x.value && !configs.some((y) => y.key === x.key && y.value)) {\n missingConfigs.push({ did: child.meta.did, key: x.key, description: x.description });\n }\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 blocklet.status = fromBlockletStatus(blocklet.status);\n blocklet.source = fromBlockletSource(blocklet.source);\n (blocklet.children || []).forEach((child) => {\n child.status = fromBlockletStatus(child.status);\n if (child.source !== undefined) {\n child.source = fromBlockletSource(child.source);\n }\n });\n if (blocklet.settings) {\n (blocklet.settings.children || []).forEach((child) => {\n child.status = fromBlockletStatus(child.status);\n if (child.source !== undefined) {\n child.source = fromBlockletSource(child.source);\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 forEachBlockletSync,\n isDeletableBlocklet,\n forEachBlocklet,\n getRequiredMissingConfigs,\n wipeSensitiveData,\n hasRunnableComponent,\n getDisplayName,\n fixBlockletStatus,\n findWebInterface,\n findServiceFromMeta,\n getWhoCanAccess,\n replaceSlotToIp,\n urlFriendly,\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":""}
|