@abtnode/blocklet-services 1.7.11 → 1.7.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/api/middlewares/proxy-to-daemon.js +4 -2
  2. package/api/routes/blocklet.js +39 -2
  3. package/api/services/auth/connect/fuel.js +73 -0
  4. package/api/services/auth/connect/invite.js +1 -0
  5. package/api/services/auth/connect/issue-passport.js +1 -0
  6. package/api/services/auth/connect/setup.js +11 -1
  7. package/api/services/auth/index.js +2 -0
  8. package/build/asset-manifest.json +28 -28
  9. package/build/index.html +1 -1
  10. package/build/{precache-manifest.6bba5a0937fec8cc0577975770db10ff.js → precache-manifest.62677c47082207508be287829a517379.js} +26 -26
  11. package/build/service-worker.js +1 -1
  12. package/build/static/js/0.d567f606.chunk.js +3 -0
  13. package/build/static/js/{0.8641a485.chunk.js.LICENSE.txt → 0.d567f606.chunk.js.LICENSE.txt} +0 -0
  14. package/build/static/js/0.d567f606.chunk.js.map +1 -0
  15. package/build/static/js/1.ab9dcdd2.chunk.js +2 -0
  16. package/build/static/js/1.ab9dcdd2.chunk.js.map +1 -0
  17. package/build/static/js/{10.eae356ec.chunk.js → 10.605a889f.chunk.js} +2 -2
  18. package/build/static/js/{10.eae356ec.chunk.js.map → 10.605a889f.chunk.js.map} +1 -1
  19. package/build/static/js/4.ec5cc748.chunk.js +3 -0
  20. package/build/static/js/{4.973ae192.chunk.js.LICENSE.txt → 4.ec5cc748.chunk.js.LICENSE.txt} +0 -0
  21. package/build/static/js/4.ec5cc748.chunk.js.map +1 -0
  22. package/build/static/js/5.20ba603f.chunk.js +2 -0
  23. package/build/static/js/5.20ba603f.chunk.js.map +1 -0
  24. package/build/static/js/6.f3503586.chunk.js +2 -0
  25. package/build/static/js/{6.60aaf58a.chunk.js.map → 6.f3503586.chunk.js.map} +1 -1
  26. package/build/static/js/7.9310535b.chunk.js +2 -0
  27. package/build/static/js/7.9310535b.chunk.js.map +1 -0
  28. package/build/static/js/{8.7e2dd683.chunk.js → 8.ec34ae8e.chunk.js} +2 -2
  29. package/build/static/js/{8.7e2dd683.chunk.js.map → 8.ec34ae8e.chunk.js.map} +1 -1
  30. package/build/static/js/9.0c82bd91.chunk.js +2 -0
  31. package/build/static/js/9.0c82bd91.chunk.js.map +1 -0
  32. package/build/static/js/main.f3a4f0ac.chunk.js +2 -0
  33. package/build/static/js/main.f3a4f0ac.chunk.js.map +1 -0
  34. package/build/static/js/{runtime-main.d47db38c.js → runtime-main.49dce7d3.js} +2 -2
  35. package/build/static/js/{runtime-main.d47db38c.js.map → runtime-main.49dce7d3.js.map} +1 -1
  36. package/package.json +25 -25
  37. package/build/static/js/0.8641a485.chunk.js +0 -3
  38. package/build/static/js/0.8641a485.chunk.js.map +0 -1
  39. package/build/static/js/1.d6f10e20.chunk.js +0 -2
  40. package/build/static/js/1.d6f10e20.chunk.js.map +0 -1
  41. package/build/static/js/4.973ae192.chunk.js +0 -3
  42. package/build/static/js/4.973ae192.chunk.js.map +0 -1
  43. package/build/static/js/5.a97b78a4.chunk.js +0 -2
  44. package/build/static/js/5.a97b78a4.chunk.js.map +0 -1
  45. package/build/static/js/6.60aaf58a.chunk.js +0 -2
  46. package/build/static/js/7.6ffbad13.chunk.js +0 -2
  47. package/build/static/js/7.6ffbad13.chunk.js.map +0 -1
  48. package/build/static/js/9.9561f820.chunk.js +0 -2
  49. package/build/static/js/9.9561f820.chunk.js.map +0 -1
  50. package/build/static/js/main.73e47d11.chunk.js +0 -2
  51. package/build/static/js/main.73e47d11.chunk.js.map +0 -1
@@ -1,2 +0,0 @@
1
- (this["webpackJsonp@abtnode/blocklet-services"]=this["webpackJsonp@abtnode/blocklet-services"]||[]).push([[9],{1119:function(e,n,t){"use strict";var a=t(34),r=t(95);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var o=r(t(0)),i=(0,a(t(96)).default)(o.createElement("path",{d:"M8 5v14l11-7z"}),"PlayArrow");n.default=i},1182:function(e,n,t){"use strict";t.r(n),t.d(n,"default",(function(){return W}));var a,r,o,i=t(295),l=t(33),c=t(1012),s=t(0),u=t.n(s),d=t(29),p=t(264),f=t(1119),E=t.n(f),L=t(292),_=t(296),m=t.n(_),b=t(77),h=t(99),O=t.n(h),T=t(491),g=t.n(T),v=t(489),C=t.n(v),k=t(304),w=t.n(k),x=t(104),B=t.n(x),y=t(80),A=t.n(y),P=t(287),S=t(994),R=t.n(S),K=t(874),N=t(53),I=t(918),j=t.n(I),F=t(228),D=t(158),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("sm")}))?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("sm")})),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(N.WELLKNOWN_SERVICE_PATH_PREFIX,"/blocklet/logo"),title:Object(K.getDisplayName)(a),publisher:a.appDid};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"})),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\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("sm")}),(function(e){return e.theme.breakpoints.down("sm")}),(function(e){return e.theme.breakpoints.down("sm")})),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("sm")}),(function(e){return e.theme.breakpoints.down("sm")}),(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("sm")}))},51:function(e,n,t){"use strict";t.r(n);var a=t(217);t.d(n,"default",(function(){return a.a}))},874:function(e,n,t){var a=t(31),r=t(216),o=t(161),i=t(917),l=t(53),c=l.NODE_SERVICES,s=l.SLOT_FOR_IP_DNS_SITE,u=l.WHO_CAN_ACCESS,d=t(881),p=d.BlockletGroup,f=d.fromBlockletStatus,E=d.fromBlockletSource,L=d.BLOCKLET_INTERFACE_TYPE_WEB,_=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)},m=function(e,n){return _(e,n,{sync:!0})},b=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===L})):null},h=function(e,n){var t=[n];n===c.AUTH&&t.push(c.AUTH_SERVICE);var a=b(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:m,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:_,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?(_(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 m(e,(function(e){e.meta.group!==p.gateway&&(n=!0)})),n},getDisplayName:function(e){var n,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=e.meta;if(!t&&e.environments){var r=e.environments.find((function(e){return"BLOCKLET_APP_NAME"===e.key}));r&&r.value&&(n=r.value)}return n||a.title||a.name},fixBlockletStatus:function(e){e&&(e.status=f(e.status),e.source=E(e.source),(e.children||[]).forEach((function(e){e.status=f(e.status),void 0!==e.source&&(e.source=E(e.source))})))},findWebInterface:b,findServiceFromMeta:h,getWhoCanAccess:function(e){if(!e)return u.ALL;if(i(e,"settings.whoCanAccess"))return e.settings.whoCanAccess;var n=h(e.meta,c.AUTH);return i(n,"config.whoCanAccess")?n.config.whoCanAccess:u.ALL},replaceSlotToIp:function(e,n){return(e||"").replace(s,(n||"").replace(/\./g,"-"))}}},881: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}),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.4",BLOCKLET_LATEST_REQUIREMENT_SERVER:">=1.6.2",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"}})},918: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(29)),o=f(t(5)),i=f(t(73)),l=f(t(995)),c=t(297),s=f(t(996)),u=f(t(997)),d=t(77),p=t(215);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("sm")}))}}]);
2
- //# sourceMappingURL=9.9561f820.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../node_modules/@material-ui/icons/PlayArrow.js","pages/start.js","../../../node_modules/@material-ui/core/esm/Typography/index.js","../../../blocklet/meta/lib/util.js","../../../blocklet/meta/lib/constants.js","../../ux/lib/layout/addon.js"],"names":["_interopRequireDefault","require","_interopRequireWildcard","Object","defineProperty","exports","value","default","React","_default","createElement","d","AppIcon","appInfo","rest","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","Root","className","SessionContext","StyledPaper","elevation","AppInfo","name","mt","style","minWidth","disabled","variant","color","onClick","post","styled","div","props","Paper","palette","primary","main","common","white","grey","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","getWhoCanAccess","ALL","settings","whoCanAccess","service","replaceSlotToIp","url","ip","replace","fromEntry","entries","v","match","Number","toEntry","keys","BlockletStatus","freeze","added","downloading","downloaded","installing","installed","running","stopping","stopped","upgrading","restarting","corrupted","waiting","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","_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","Div","showText","pathName","pathname","path","indexOf","open","concat","fontSize","assign","showRole","propTypes","object","isRequired","string","array","bool","defaultProps","withConfig","componentId"],"mappings":"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","file":"static/js/9.9561f820.chunk.js","sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"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 '@material-ui/core/Box';\nimport PlayArrowIcon from '@material-ui/icons/PlayArrow';\nimport Paper from '@material-ui/core/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 '@material-ui/core/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('sm'));\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('sm'));\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\n return (\n <Root>\n <header className=\"root-header\">\n {!isMobile && (\n <div className=\"left\">\n <ServerLogo width=\"128\" height=\"48\" />\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\n ${(props) => props.theme.breakpoints.down('sm')} {\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('sm')} {\n margin-top: 0%;\n }\n }\n\n .right {\n display: flex;\n align-items: center;\n ${(props) => props.theme.breakpoints.down('sm')} {\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('sm')} {\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('sm')} {\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('sm')} {\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","export { default } from './Typography';","/* eslint-disable no-await-in-loop */\nconst get = require('lodash/get');\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};\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\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};\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});\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.4',\n BLOCKLET_LATEST_REQUIREMENT_SERVER: '>=1.6.2',\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(\"@material-ui/core/IconButton\"));\n\nvar _HelpOutline = _interopRequireDefault(require(\"@material-ui/icons/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('sm'));"],"sourceRoot":""}