@abtnode/blocklet-services 1.8.3 → 1.8.4
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/api/index.js +3 -1
- package/api/libs/connect/session.js +456 -0
- package/api/libs/connect/v2.js +3 -0
- package/api/routes/{connect-relay.js → connect/relay.js} +3 -3
- package/api/routes/connect/session.js +120 -0
- package/api/services/auth/connect/login.js +17 -292
- package/api/services/auth/connect/switch-passport.js +18 -103
- package/api/services/auth/connect/switch-profile.js +17 -63
- package/api/services/notification/channel/app-channel.js +4 -1
- package/build/asset-manifest.json +7 -7
- package/build/index.html +1 -1
- package/build/static/js/{12.a879bfa6.chunk.js → 12.0e874475.chunk.js} +2 -2
- package/build/static/js/12.0e874475.chunk.js.map +1 -0
- package/build/static/js/{7.96fdf7e5.chunk.js → 7.b2428475.chunk.js} +2 -2
- package/build/static/js/7.b2428475.chunk.js.map +1 -0
- package/build/static/js/{runtime-main.7fadd252.js → runtime-main.2227285f.js} +2 -2
- package/build/static/js/{runtime-main.7fadd252.js.map → runtime-main.2227285f.js.map} +1 -1
- package/package.json +21 -21
- package/build/static/js/12.a879bfa6.chunk.js.map +0 -1
- package/build/static/js/7.96fdf7e5.chunk.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(this["webpackJsonp@abtnode/blocklet-services"]=this["webpackJsonp@abtnode/blocklet-services"]||[]).push([[12],{1149:function(e,n,t){"use strict";var r=t(132);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var o=r(t(133)),a=t(2),i=(0,o.default)((0,a.jsx)("path",{d:"M8 5v14l11-7z"}),"PlayArrow");n.default=i},1237:function(e,n,t){"use strict";t.r(n),t.d(n,"default",(function(){return W}));var r,o,a,i=t(24),c=t(93),l=t(11),s=t(1020),d=t(0),u=t(379),p=t(441),f=t(1149),E=t.n(f),h=t(127),b=t(380),_=t.n(b),O=t(131),L=t(160),g=t.n(L),m=t(535),v=t.n(m),T=t(536),C=t.n(T),x=t(401),j=t.n(x),k=t(161),w=t.n(k),y=t(134),B=t.n(y),A=t(450),P=t(1021),S=t.n(P),R=t(896),I=t(73),K=t(954),N=t.n(K),F=t(387),D=t(237),M=t(2),U=["appInfo"];function z(e){var n=e.appInfo,t=Object(s.a)(e,U),r=Object(d.useState)(!1),o=Object(l.a)(r,2),a=o[0],i=o[1],u=Object(A.a)((function(e){return e.breakpoints.down("md")}))?32:48;return a?Object(M.jsx)(v.a,{did:n.publisher,size:u}):Object(M.jsx)(j.a,Object(c.a)(Object(c.a)({src:n.icon,alt:n.title,width:u,height:u},t),{},{onError:function(){return i(!0)}}))}function W(){var e=Object(O.useLocaleContext)().t,n=Object(d.useState)(null),t=Object(l.a)(n,2),r=t[0],o=t[1],a=Object(d.useState)(!1),i=Object(l.a)(a,2),c=i[0],s=i[1],u=Object(d.useState)(!1),f=Object(l.a)(u,2),h=f[0],b=f[1],L=Object(A.a)((function(e){return e.breakpoints.down("md")})),m=function(){var e=new URL(window.location.href).searchParams.get("redirect")||"/";window.location=decodeURIComponent(e)};Object(d.useEffect)((function(){var e=null,n=function(){F.a.get("/blocklet/detail").then((function(n){var t=n.data;"running"!==t.status?"starting"!==t.status&&(b(!1),o(t),clearInterval(e)):m()})).catch((function(e){s(!1),g.a.error(e.message)}))};s(!0),F.a.get("/blocklet/detail").then((function(t){var r=t.data;s(!1),"running"!==r.status?(o(r),"starting"===r.status&&(b(!0),e=setInterval(n,3e3))):m()})).catch((function(e){s(!1),g.a.error(e.message)}))}),[]);if(!r)return Object(M.jsx)(w.a,{children:Object(M.jsx)(B.a,{})});var v={icon:"".concat(I.WELLKNOWN_SERVICE_PATH_PREFIX,"/blocklet/logo"),title:Object(R.getDisplayName)(r),publisher:r.appDid},T=localStorage.getItem("blocklet-server-url");return Object(M.jsxs)(H,{children:[Object(M.jsxs)("header",{className:"root-header",children:[!L&&Object(M.jsx)("div",{className:"left",children:Object(M.jsx)(S.a,{width:"128",height:"48",onClick:function(){T&&window.open(T)},style:{cursor:T?"pointer":""}})}),Object(M.jsx)("div",{className:"right",children:Object(M.jsx)(N.a,{SessionContext:D.a})})]}),Object(M.jsxs)(Y,{elevation:0,children:[Object(M.jsxs)(V,{children:[Object(M.jsx)(z,{appInfo:v}),Object(M.jsxs)("div",{className:"app-info_content",children:[Object(M.jsx)(p.a,{className:"app-info_name",children:v.title}),Object(M.jsx)(C.a,{size:14,className:"app-info_did",children:v.publisher})]})]}),Object(M.jsxs)(p.a,{className:"title-box",children:[Object(M.jsx)(p.a,{className:"icon",children:Object(M.jsx)(E.a,{})}),Object(M.jsx)(p.a,{className:"title",children:e("blocklet.startApplication")})]}),Object(M.jsx)(p.a,{className:"sub-title",children:e("blocklet.startDescription",{name:Object(R.getDisplayName)(r)})}),Object(M.jsx)(p.a,{mt:8,children:Object(M.jsx)(_.a,{style:{minWidth:200},disabled:c||h,variant:"contained",color:"primary",size:"large",loading:h,onClick:function(){return s(!0),b(!0),void F.a.post("/blocklet/start").then((function(){m()})).catch((function(e){g.a.error(e.message),s(!1),b(!1)}))},children:e(h?"blocklet.starting":"blocklet.start")})})]})]})}var H=u.default.div(r||(r=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")})),Y=Object(u.default)(h.a)(o||(o=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]})),V=u.default.div(a||(a=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")}))},896:function(e,n,t){var r=t(303).default,o=t(304).default,a=t(1022).default,i=t(392),c=t(1023),l=t(384),s=t(73),d=s.NODE_SERVICES,u=s.SLOT_FOR_IP_DNS_SITE,p=s.WHO_CAN_ACCESS,f=t(914),E=f.BlockletGroup,h=f.fromBlockletStatus,b=f.fromBlockletSource,_=f.BLOCKLET_INTERFACE_TYPE_WEB,O=f.BLOCKLET_CONFIGURABLE_KEY,L=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return"".concat(n.map((function(e){return e&&e.meta?e.meta.did:""})).join("/")).concat(n.length?"/":"").concat(e&&e.meta?e.meta.did:"")},g=function e(n,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},c=i.parallel,l=void 0!==c&&c,s=i.sync,d=i.params,u=i._parent,p=i._root,f=i._level,E=void 0===f?0:f,h=i._tasks,b=i._ancestors,_=void 0===b?[]:b,O=p||u||n,g=L(n,_),m=_.concat(n);if(s){var v=t(n,{parent:u,root:O,level:E,params:d,ancestors:_,id:g});if(n.children){var T,C=a(n.children);try{for(C.s();!(T=C.n()).done;){var x=T.value;e(x,t,{sync:s,params:v,_parent:n,_root:O,_level:E+1,_ancestors:m})}}catch(B){C.e(B)}finally{C.f()}}return null}if(!l)return new Promise(function(){var i=o(r().mark((function o(i,c){var l,s,p,f;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,t(n,{parent:u,root:O,level:E,ancestors:_,params:d,id:g});case 3:if(l=r.sent,!n.children){r.next=22;break}s=a(n.children),r.prev=6,s.s();case 8:if((p=s.n()).done){r.next=14;break}return f=p.value,r.next=12,e(f,t,{params:l,_parent:n,_root:O,_level:E+1,_ancestors:m});case 12:r.next=8;break;case 14:r.next=19;break;case 16:r.prev=16,r.t0=r.catch(6),s.e(r.t0);case 19:return r.prev=19,s.f(),r.finish(19);case 22:i(null),r.next=28;break;case 25:r.prev=25,r.t1=r.catch(0),c(r.t1);case 28:case"end":return r.stop()}}),o,null,[[0,25],[6,16,19,22]])})));return function(e,n){return i.apply(this,arguments)}}());var j=h||[];if(j.push(t(n,{parent:u,root:O,level:E,ancestors:_})),n.children){var k,w=a(n.children);try{for(w.s();!(k=w.n()).done;){var y=k.value;e(y,t,{parallel:l,_parent:n,_root:O,_level:E+1,_tasks:j,_ancestors:m,id:g})}}catch(B){w.e(B)}finally{w.f()}}return h?null:Promise.all(j)},m=function(e,n){return g(e,n,{sync:!0})},v=function(e,n,t){return g(e,(function(e,t){return 0===t.level?{}:n(e,t)}),t)},T=function(e,n){var t={};if(!n)return t;for(var r=n.length-1;r>=0;r--){var o=n[r];Array.isArray(o.configs)&&o.configs.forEach((function(n){var r=n.key,o=n.value,a=n.secure,i=n.shared;if(!t[r]&&o&&!1===a&&!1!==i&&!O[r]){var c=(e.configs||[]).find((function(e){return e.key===r}));c&&c.value||(t[r]=o)}}))}return t},C=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},x=function(e,n){var t=[n];n===d.AUTH&&t.push(d.AUTH_SERVICE);var r=C(e);return r?(r.services||[]).find((function(e){return t.includes(e.name)})):null};e.exports={isFreeBlocklet:function(e){return!e.payment||(e.payment.price||[]).map((function(e){return e.value||0})).every((function(e){return 0===e}))},isComponentBlocklet:function(e){return!1!==i(e,"capabilities.component")},forEachBlocklet:g,forEachBlockletSync:m,forEachChild:v,forEachChildSync:function(e,n){return v(e,n,{sync:!0})},isDeletableBlocklet:function(e){if(!e)return!1;var n=e.environments.find((function(e){return"BLOCKLET_DELETABLE"===e.key}));return!n||"yes"===n.value},getSharedConfigObj:T,getAppMissingConfigs:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=[];return m(e,(function(e,t){var r=t.ancestors,o=e.configs||[],a=T(e,r);o.forEach((function(t){!t.required||t.value||a[t.key]||n.push({did:e.meta.did,key:t.key,description:t.description})}))})),n},getComponentMissingConfigs:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=[],r=e.configs||[],o=T(e,n);return r.forEach((function(n){!n.required||n.value||o[n.key]||t.push({did:e.meta.did,key:n.key,description:n.description})})),t},wipeSensitiveData:function(e){return e?(g(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!==E.gateway&&(n=!0)})),n},getDisplayName:function(e){var n,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=e.meta;if(!t&&e.environments){var o=e.environments.find((function(e){return"BLOCKLET_APP_NAME"===e.key}));o&&o.value&&(n=o.value)}return n||r.title||r.name},fixBlockletStatus:function(e){e&&(m(e,(function(e){e.status=h(e.status),void 0!==e.source&&(e.source=b(e.source))})),e.settings&&(e.settings.children||[]).forEach((function(e){m(e,(function(e){e.status=h(e.status),void 0!==e.source&&(e.source=b(e.source))}))})))},findWebInterface:C,findServiceFromMeta:x,getWhoCanAccess:function(e){if(!e)return p.ALL;if(i(e,"settings.whoCanAccess"))return e.settings.whoCanAccess;var n=x(e.meta,d.AUTH);return i(n,"config.whoCanAccess")?n.config.whoCanAccess:p.ALL},replaceSlotToIp:function(e,n){return(e||"").replace(u,(n||"").replace(/\./g,"-"))},urlFriendly:function(e){return c(e.replace(/^[@./-]/,"").replace(/[@./_]/g,"-"))},getComponentId:L,getComponentName:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return"".concat(n.map((function(e){return e&&e.meta?e.meta.name:""})).join("/")).concat(n.length?"/":"").concat(e&&e.meta?e.meta.name:"")},getComponentBundleId:function(e){return"".concat(e.meta.bundleName,"@").concat(e.meta.version)},findComponentById:function e(n,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=r._ancestors,i=void 0===o?[]:o,c=r.returnAncestors,l=void 0!==c&&c,s=L(n,i);if(t===s)return l?{component:n,ancestors:i}:n;var d,u=a(n.children||[]);try{for(u.s();!(d=u.n()).done;){var p=d.value,f=i.concat(n),E=e(p,t,{_ancestors:f,returnAncestors:l});if(E)return E}}catch(h){u.e(h)}finally{u.f()}return null},getParentComponentName:function(e){if(!e)return"";var n=e.split("/");return n.pop(),n.length?(n[n.length-1].startsWith("@")&&n.pop(),n.length?n.join("/"):""):""},getConnectAppUrl:function(e){var n=e.request,t=e.baseUrl,r=n.headers["x-blocklet-did"]||"",o=n.headers["x-blocklet-real-did"]||"",a=n.headers["x-path-prefix"]||"/",i=n.headers["x-group-path-prefix"]||"/",c=t;return r!==o&&a!==i&&(c=l(l(c,"/").replace(a,i),"")),c}}},914: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"}},r=function(e){return function(n){return Object.keys(e).find((function(t){return e[t]===Number(n)}))}},o=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}),a=t(o),i=r(o),c=Object.freeze({registry:0,local:1,upload:2,url:3,custom:4}),l=t(c),s=r(c),d=Object.freeze({static:"static",dapp:"dapp",starter:!1,gateway:"gateway"}),u=Object.freeze({added:"blocklet.added",downloadFailed:"blocklet.downloadFailed",installed:"blocklet.installed",installFailed:"blocklet.installFailed",upgraded:"blocklet.upgraded",upgradeFailed:"blocklet.upgradedFailed",downgraded:"blocklet.downgraded",downgradeFailed:"blocklet.downgradedFailed",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="service",f="wellknown",E=["web",p,f],h="publicUrl",b="wellknownUrl",_=[h],O=[h,b],L="http",g=["tcp","udp",L];e.exports=Object.freeze({BlockletStatus:o,fromBlockletStatus:a,toBlockletStatus:i,BlockletSource:c,fromBlockletSource:l,toBlockletSource:s,BlockletGroup:d,BLOCKLET_GROUPS:["dapp","static","gateway"],BlockletEvents:u,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:h,BLOCKLET_INTERFACE_WELLKNOWN:b,BLOCKLET_UI_INTERFACES:_,BLOCKLET_STANDARD_INTERFACES:O,BLOCKLET_INTERFACE_TYPE_WEB:"web",BLOCKLET_INTERFACE_TYPE_SERVICE:p,BLOCKLET_INTERFACE_TYPE_WELLKNOWN:f,BLOCKLET_INTERFACE_TYPES:E,BLOCKLET_INTERFACE_PROTOCOL_HTTP:L,BLOCKLET_INTERFACE_PROTOCOL_TCP:"tcp",BLOCKLET_INTERFACE_PROTOCOL_UDP:"udp",BLOCKLET_INTERFACE_PROTOCOLS:g,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"}})},954:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=O;var r=t(0),o=E(t(46)),a=E(t(10)),i=E(t(135)),c=t(381),l=E(t(1024)),s=E(t(1025)),d=t(131),u=E(t(1026)),p=E(t(1027)),f=t(2);function E(e){return e&&e.__esModule?e:{default:e}}function h(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function b(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?h(Object(t),!0).forEach((function(n){_(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):h(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function _(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function O(e){var n=e.SessionContext,t=e.extraItems,o=e.showLocale,a=e.showHelper,E=e.showSessionManager,h=e.sessionManagerProps,_=(0,r.useContext)(n).session,O=(0,r.useContext)(d.LocaleContext).locale,g=(0,c.useLocation)(),m={"/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(0,f.jsxs)(L,{children:[t.map((function(e,n){return(0,r.cloneElement)(e,{key:n})})),o&&(0,f.jsx)(s.default,{"data-cy":"locale-addon",icon:u.default,size:23,showText:!1,className:"locale-addon"}),a&&(0,f.jsx)(i.default,{onClick:function(){var e=g.pathname,n="";e.indexOf("/blocklets")>-1?n=m["/blocklets"]:e.indexOf("/store")>-1?n=m["/store"]:m[e]&&(n=m[e]),window.open("https://docs.arcblock.io/abtnode/".concat(O).concat(n),"_blank")},children:(0,f.jsx)(p.default,{})}),E&&(0,f.jsx)(l.default,b({session:_,size:24,showRole:!0},h))]})}O.propTypes={SessionContext:a.default.object.isRequired,webWalletUrl:a.default.string,extraItems:a.default.array,showLocale:a.default.bool,showSessionManager:a.default.bool,showHelper:a.default.bool,sessionManagerProps:a.default.object},O.defaultProps={webWalletUrl:"",extraItems:[],showLocale:!0,showSessionManager:!0,showHelper:!0,sessionManagerProps:{}};var L=o.default.div.withConfig({displayName:"addon__Div",componentId:"sc-5tyqcw-0"})(["display:flex;justify-content:center;align-items:center;.MuiIconButton-root svg{width:26px;height:26px;}.user-addon{.user-avatar{width:28px;border-radius:14px;height:auto;}}","{> button,> a{padding-left:8px;padding-right:8px;}}"],(function(e){return e.theme.breakpoints.down("md")}))}}]);
|
|
2
|
-
//# sourceMappingURL=12.
|
|
1
|
+
(this["webpackJsonp@abtnode/blocklet-services"]=this["webpackJsonp@abtnode/blocklet-services"]||[]).push([[12],{1149:function(e,n,t){"use strict";var r=t(132);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var o=r(t(133)),a=t(2),i=(0,o.default)((0,a.jsx)("path",{d:"M8 5v14l11-7z"}),"PlayArrow");n.default=i},1237:function(e,n,t){"use strict";t.r(n),t.d(n,"default",(function(){return W}));var r,o,a,i=t(24),c=t(93),l=t(11),s=t(1020),d=t(0),u=t(379),p=t(441),f=t(1149),E=t.n(f),h=t(127),b=t(380),_=t.n(b),O=t(131),L=t(160),g=t.n(L),m=t(535),v=t.n(m),C=t(536),T=t.n(C),x=t(401),j=t.n(x),k=t(161),w=t.n(k),y=t(134),B=t.n(y),A=t(450),P=t(1021),S=t.n(P),R=t(896),I=t(73),K=t(954),N=t.n(K),F=t(387),D=t(237),U=t(2),M=["appInfo"];function z(e){var n=e.appInfo,t=Object(s.a)(e,M),r=Object(d.useState)(!1),o=Object(l.a)(r,2),a=o[0],i=o[1],u=Object(A.a)((function(e){return e.breakpoints.down("md")}))?32:48;return a?Object(U.jsx)(v.a,{did:n.publisher,size:u}):Object(U.jsx)(j.a,Object(c.a)(Object(c.a)({src:n.icon,alt:n.title,width:u,height:u},t),{},{onError:function(){return i(!0)}}))}function W(){var e=Object(O.useLocaleContext)().t,n=Object(d.useState)(null),t=Object(l.a)(n,2),r=t[0],o=t[1],a=Object(d.useState)(!1),i=Object(l.a)(a,2),c=i[0],s=i[1],u=Object(d.useState)(!1),f=Object(l.a)(u,2),h=f[0],b=f[1],L=Object(A.a)((function(e){return e.breakpoints.down("md")})),m=function(){var e=new URL(window.location.href).searchParams.get("redirect")||"/";window.location=decodeURIComponent(e)};Object(d.useEffect)((function(){var e=null,n=function(){F.a.get("/blocklet/detail").then((function(n){var t=n.data;"running"!==t.status?"starting"!==t.status&&(b(!1),o(t),clearInterval(e)):m()})).catch((function(e){s(!1),g.a.error(e.message)}))};s(!0),F.a.get("/blocklet/detail").then((function(t){var r=t.data;s(!1),"running"!==r.status?(o(r),"starting"===r.status&&(b(!0),e=setInterval(n,3e3))):m()})).catch((function(e){s(!1),g.a.error(e.message)}))}),[]);if(!r)return Object(U.jsx)(w.a,{children:Object(U.jsx)(B.a,{})});var v={icon:"".concat(I.WELLKNOWN_SERVICE_PATH_PREFIX,"/blocklet/logo"),title:Object(R.getDisplayName)(r),publisher:r.appDid},C=localStorage.getItem("blocklet-server-url");return Object(U.jsxs)(H,{children:[Object(U.jsxs)("header",{className:"root-header",children:[!L&&Object(U.jsx)("div",{className:"left",children:Object(U.jsx)(S.a,{width:"128",height:"48",onClick:function(){C&&window.open(C)},style:{cursor:C?"pointer":""}})}),Object(U.jsx)("div",{className:"right",children:Object(U.jsx)(N.a,{SessionContext:D.a})})]}),Object(U.jsxs)(Y,{elevation:0,children:[Object(U.jsxs)(V,{children:[Object(U.jsx)(z,{appInfo:v}),Object(U.jsxs)("div",{className:"app-info_content",children:[Object(U.jsx)(p.a,{className:"app-info_name",children:v.title}),Object(U.jsx)(T.a,{size:14,className:"app-info_did",children:v.publisher})]})]}),Object(U.jsxs)(p.a,{className:"title-box",children:[Object(U.jsx)(p.a,{className:"icon",children:Object(U.jsx)(E.a,{})}),Object(U.jsx)(p.a,{className:"title",children:e("blocklet.startApplication")})]}),Object(U.jsx)(p.a,{className:"sub-title",children:e("blocklet.startDescription",{name:Object(R.getDisplayName)(r)})}),Object(U.jsx)(p.a,{mt:8,children:Object(U.jsx)(_.a,{style:{minWidth:200},disabled:c||h,variant:"contained",color:"primary",size:"large",loading:h,onClick:function(){return s(!0),b(!0),void F.a.post("/blocklet/start").then((function(){m()})).catch((function(e){g.a.error(e.message),s(!1),b(!1)}))},children:e(h?"blocklet.starting":"blocklet.start")})})]})]})}var H=u.default.div(r||(r=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")})),Y=Object(u.default)(h.a)(o||(o=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]})),V=u.default.div(a||(a=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")}))},896:function(e,n,t){var r=t(303).default,o=t(304).default,a=t(1022).default,i=t(392),c=t(1023),l=t(384),s=t(73),d=s.NODE_SERVICES,u=s.SLOT_FOR_IP_DNS_SITE,p=s.WHO_CAN_ACCESS,f=t(914),E=f.BlockletGroup,h=f.fromBlockletStatus,b=f.fromBlockletSource,_=f.BLOCKLET_INTERFACE_TYPE_WEB,O=f.BLOCKLET_CONFIGURABLE_KEY,L=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return"".concat(n.map((function(e){return e&&e.meta?e.meta.did:""})).join("/")).concat(n.length?"/":"").concat(e&&e.meta?e.meta.did:"")},g=function e(n,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},c=i.parallel,l=void 0!==c&&c,s=i.sync,d=i.params,u=i._parent,p=i._root,f=i._level,E=void 0===f?0:f,h=i._tasks,b=i._ancestors,_=void 0===b?[]:b,O=p||u||n,g=L(n,_),m=_.concat(n);if(s){var v=t(n,{parent:u,root:O,level:E,params:d,ancestors:_,id:g});if(n.children){var C,T=a(n.children);try{for(T.s();!(C=T.n()).done;){var x=C.value;e(x,t,{sync:s,params:v,_parent:n,_root:O,_level:E+1,_ancestors:m})}}catch(B){T.e(B)}finally{T.f()}}return null}if(!l)return new Promise(function(){var i=o(r().mark((function o(i,c){var l,s,p,f;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,t(n,{parent:u,root:O,level:E,ancestors:_,params:d,id:g});case 3:if(l=r.sent,!n.children){r.next=22;break}s=a(n.children),r.prev=6,s.s();case 8:if((p=s.n()).done){r.next=14;break}return f=p.value,r.next=12,e(f,t,{params:l,_parent:n,_root:O,_level:E+1,_ancestors:m});case 12:r.next=8;break;case 14:r.next=19;break;case 16:r.prev=16,r.t0=r.catch(6),s.e(r.t0);case 19:return r.prev=19,s.f(),r.finish(19);case 22:i(null),r.next=28;break;case 25:r.prev=25,r.t1=r.catch(0),c(r.t1);case 28:case"end":return r.stop()}}),o,null,[[0,25],[6,16,19,22]])})));return function(e,n){return i.apply(this,arguments)}}());var j=h||[];if(j.push(t(n,{parent:u,root:O,level:E,ancestors:_})),n.children){var k,w=a(n.children);try{for(w.s();!(k=w.n()).done;){var y=k.value;e(y,t,{parallel:l,_parent:n,_root:O,_level:E+1,_tasks:j,_ancestors:m,id:g})}}catch(B){w.e(B)}finally{w.f()}}return h?null:Promise.all(j)},m=function(e,n){return g(e,n,{sync:!0})},v=function(e,n,t){return g(e,(function(e,t){return 0===t.level?{}:n(e,t)}),t)},C=function(e,n){var t={};if(!n)return t;for(var r=n.length-1;r>=0;r--){var o=n[r];Array.isArray(o.configs)&&o.configs.forEach((function(n){var r=n.key,o=n.value,a=n.secure,i=n.shared;if(!t[r]&&o&&!1===a&&!1!==i&&!O[r]){var c=(e.configs||[]).find((function(e){return e.key===r}));c&&c.value||(t[r]=o)}}))}return t},T=function(e){if(!e)return null;var n=(e.meta||e||{}).interfaces,t=void 0===n?[]:n;return Array.isArray(t)?t.find((function(e){return e.type===_})):null},x=function(e,n){var t=[n];n===d.AUTH&&t.push(d.AUTH_SERVICE);var r=T(e);return r?(r.services||[]).find((function(e){return t.includes(e.name)})):null};e.exports={isFreeBlocklet:function(e){return!e.payment||(e.payment.price||[]).map((function(e){return e.value||0})).every((function(e){return 0===e}))},isComponentBlocklet:function(e){return!1!==i(e,"capabilities.component")},forEachBlocklet:g,forEachBlockletSync:m,forEachChild:v,forEachChildSync:function(e,n){return v(e,n,{sync:!0})},isDeletableBlocklet:function(e){if(!e)return!1;var n=e.environments.find((function(e){return"BLOCKLET_DELETABLE"===e.key}));return!n||"yes"===n.value},getSharedConfigObj:C,getAppMissingConfigs:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=[];return m(e,(function(e,t){var r=t.ancestors,o=e.configs||[],a=C(e,r);o.forEach((function(t){!t.required||t.value||a[t.key]||n.push({did:e.meta.did,key:t.key,description:t.description})}))})),n},getComponentMissingConfigs:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=[],r=e.configs||[],o=C(e,n);return r.forEach((function(n){!n.required||n.value||o[n.key]||t.push({did:e.meta.did,key:n.key,description:n.description})})),t},wipeSensitiveData:function(e){return e?(g(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!==E.gateway&&(n=!0)})),n},getDisplayName:function(e){var n,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=e.meta;if(!t&&e.environments){var o=e.environments.find((function(e){return"BLOCKLET_APP_NAME"===e.key}));o&&o.value&&(n=o.value)}return n||r.title||r.name},fixBlockletStatus:function(e){e&&(m(e,(function(e){e.status=h(e.status),void 0!==e.source&&(e.source=b(e.source))})),e.settings&&(e.settings.children||[]).forEach((function(e){m(e,(function(e){e.status=h(e.status),void 0!==e.source&&(e.source=b(e.source))}))})))},findWebInterface:T,findServiceFromMeta:x,getWhoCanAccess:function(e){if(!e)return p.ALL;if(i(e,"settings.whoCanAccess"))return e.settings.whoCanAccess;var n=x(e.meta,d.AUTH);return i(n,"config.whoCanAccess")?n.config.whoCanAccess:p.ALL},replaceSlotToIp:function(e,n){return(e||"").replace(u,(n||"").replace(/\./g,"-"))},urlFriendly:function(e){return c(e.replace(/^[@./-]/,"").replace(/[@./_]/g,"-"))},getComponentId:L,getComponentName:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return"".concat(n.map((function(e){return e&&e.meta?e.meta.name:""})).join("/")).concat(n.length?"/":"").concat(e&&e.meta?e.meta.name:"")},getComponentBundleId:function(e){return"".concat(e.meta.bundleName,"@").concat(e.meta.version)},findComponentById:function e(n,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=r._ancestors,i=void 0===o?[]:o,c=r.returnAncestors,l=void 0!==c&&c,s=L(n,i);if(t===s)return l?{component:n,ancestors:i}:n;var d,u=a(n.children||[]);try{for(u.s();!(d=u.n()).done;){var p=d.value,f=i.concat(n),E=e(p,t,{_ancestors:f,returnAncestors:l});if(E)return E}}catch(h){u.e(h)}finally{u.f()}return null},getParentComponentName:function(e){if(!e)return"";var n=e.split("/");return n.pop(),n.length?(n[n.length-1].startsWith("@")&&n.pop(),n.length?n.join("/"):""):""},getConnectAppUrl:function(e){var n=e.request,t=e.baseUrl,r=n.headers["x-blocklet-did"]||"",o=n.headers["x-blocklet-real-did"]||"",a=n.headers["x-path-prefix"]||"/",i=n.headers["x-group-path-prefix"]||"/",c=t;return r!==o&&a!==i&&(c=l(l(c,"/").replace(a,i),"")),c}}},914: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"}},r=function(e){return function(n){return Object.keys(e).find((function(t){return e[t]===Number(n)}))}},o=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}),a=t(o),i=r(o),c=Object.freeze({registry:0,local:1,upload:2,url:3,custom:4}),l=t(c),s=r(c),d=Object.freeze({static:"static",dapp:"dapp",starter:!1,gateway:"gateway"}),u=Object.freeze({added:"blocklet.added",downloadFailed:"blocklet.downloadFailed",installed:"blocklet.installed",installFailed:"blocklet.installFailed",upgraded:"blocklet.upgraded",upgradeFailed:"blocklet.upgradedFailed",downgraded:"blocklet.downgraded",downgradeFailed:"blocklet.downgradedFailed",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="service",f="wellknown",E=["web",p,f],h="publicUrl",b="wellknownUrl",_=[h],O=[h,b],L="http",g=["tcp","udp",L];e.exports=Object.freeze({BlockletStatus:o,fromBlockletStatus:a,toBlockletStatus:i,BlockletSource:c,fromBlockletSource:l,toBlockletSource:s,BlockletGroup:d,BLOCKLET_GROUPS:["dapp","static","gateway"],BlockletEvents:u,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:h,BLOCKLET_INTERFACE_WELLKNOWN:b,BLOCKLET_UI_INTERFACES:_,BLOCKLET_STANDARD_INTERFACES:O,BLOCKLET_INTERFACE_TYPE_WEB:"web",BLOCKLET_INTERFACE_TYPE_SERVICE:p,BLOCKLET_INTERFACE_TYPE_WELLKNOWN:f,BLOCKLET_INTERFACE_TYPES:E,BLOCKLET_INTERFACE_PROTOCOL_HTTP:L,BLOCKLET_INTERFACE_PROTOCOL_TCP:"tcp",BLOCKLET_INTERFACE_PROTOCOL_UDP:"udp",BLOCKLET_INTERFACE_PROTOCOLS:g,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_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"}})},954:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=O;var r=t(0),o=E(t(46)),a=E(t(10)),i=E(t(135)),c=t(381),l=E(t(1024)),s=E(t(1025)),d=t(131),u=E(t(1026)),p=E(t(1027)),f=t(2);function E(e){return e&&e.__esModule?e:{default:e}}function h(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function b(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?h(Object(t),!0).forEach((function(n){_(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):h(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function _(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function O(e){var n=e.SessionContext,t=e.extraItems,o=e.showLocale,a=e.showHelper,E=e.showSessionManager,h=e.sessionManagerProps,_=(0,r.useContext)(n).session,O=(0,r.useContext)(d.LocaleContext).locale,g=(0,c.useLocation)(),m={"/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(0,f.jsxs)(L,{children:[t.map((function(e,n){return(0,r.cloneElement)(e,{key:n})})),o&&(0,f.jsx)(s.default,{"data-cy":"locale-addon",icon:u.default,size:23,showText:!1,className:"locale-addon"}),a&&(0,f.jsx)(i.default,{onClick:function(){var e=g.pathname,n="";e.indexOf("/blocklets")>-1?n=m["/blocklets"]:e.indexOf("/store")>-1?n=m["/store"]:m[e]&&(n=m[e]),window.open("https://docs.arcblock.io/abtnode/".concat(O).concat(n),"_blank")},children:(0,f.jsx)(p.default,{})}),E&&(0,f.jsx)(l.default,b({session:_,size:24,showRole:!0},h))]})}O.propTypes={SessionContext:a.default.object.isRequired,webWalletUrl:a.default.string,extraItems:a.default.array,showLocale:a.default.bool,showSessionManager:a.default.bool,showHelper:a.default.bool,sessionManagerProps:a.default.object},O.defaultProps={webWalletUrl:"",extraItems:[],showLocale:!0,showSessionManager:!0,showHelper:!0,sessionManagerProps:{}};var L=o.default.div.withConfig({displayName:"addon__Div",componentId:"sc-5tyqcw-0"})(["display:flex;justify-content:center;align-items:center;.MuiIconButton-root svg{width:26px;height:26px;}.user-addon{.user-avatar{width:28px;border-radius:14px;height:auto;}}","{> button,> a{padding-left:8px;padding-right:8px;}}"],(function(e){return e.theme.breakpoints.down("md")}))}}]);
|
|
2
|
+
//# sourceMappingURL=12.0e874475.chunk.js.map
|
|
@@ -0,0 +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","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","joinUrl","NODE_SERVICES","SLOT_FOR_IP_DNS_SITE","WHO_CAN_ACCESS","BlockletGroup","fromBlockletStatus","fromBlockletSource","BLOCKLET_INTERFACE_TYPE_WEB","BLOCKLET_CONFIGURABLE_KEY","getComponentId","component","ancestors","map","x","meta","join","length","forEachBlocklet","cb","parallel","sync","inputParams","params","_parent","_root","_level","inputTasks","_tasks","_ancestors","root","id","newAncestors","concat","parent","level","children","child","Promise","resolve","reject","tasks","push","all","forEachBlockletSync","forEachChild","b","opt","getSharedConfigObj","res","i","ancestor","Array","isArray","configs","forEach","key","secure","shared","config","find","findWebInterface","interfaces","type","findServiceFromMeta","ServiceName","names","AUTH","AUTH_SERVICE","webInterface","services","includes","module","isFreeBlocklet","payment","price","every","isComponentBlocklet","forEachChildSync","isDeletableBlocklet","environments","getAppMissingConfigs","missingConfigs","sharedConfigObj","item","required","description","getComponentMissingConfigs","wipeSensitiveData","configObj","environmentObj","hasRunnableComponent","has","group","gateway","displayName","onlyUseMeta","target","e","fixBlockletStatus","undefined","source","settings","getWhoCanAccess","ALL","whoCanAccess","service","replaceSlotToIp","url","ip","replace","urlFriendly","getComponentName","getComponentBundleId","bundleName","version","findComponentById","componentId","returnAncestors","getParentComponentName","arr","split","pop","startsWith","getConnectAppUrl","request","baseUrl","blockletDid","headers","blockletRealDid","pathPrefix","groupPathPrefix","appUrl","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","upgradeFailed","downgraded","downgradeFailed","deployed","updated","statusChange","removed","started","startFailed","reloaded","purchaseChange","BLOCKLET_INTERFACE_TYPE_SERVICE","BLOCKLET_INTERFACE_TYPE_WELLKNOWN","BLOCKLET_INTERFACE_TYPES","BLOCKLET_INTERFACE_PUBLIC","BLOCKLET_INTERFACE_WELLKNOWN","BLOCKLET_UI_INTERFACES","BLOCKLET_STANDARD_INTERFACES","BLOCKLET_INTERFACE_PROTOCOL_HTTP","BLOCKLET_INTERFACE_PROTOCOLS","BLOCKLET_GROUPS","BLOCKLET_PLATFORMS","BLOCKLET_ARCHITECTURES","BLOCKLET_MODES","PRODUCTION","DEVELOPMENT","BLOCKLET_FACTORY_SHARES","developer","store","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_DEFAULT_VERSION","BLOCKLET_LATEST_SPEC_VERSION","BLOCKLET_LATEST_REQUIREMENT_SERVER","BLOCKLET_LATEST_REQUIREMENT_ABTNODE","BLOCKLET_CLUSTER_SIZE","BLOCKLET_APP_NAME","BLOCKLET_APP_DESCRIPTION","BLOCKLET_APP_SK","BLOCKLET_APP_URL","BLOCKLET_PASSPORT_COLOR","BLOCKLET_WALLET_TYPE","BLOCKLET_DELETABLE","HeaderAddon","_react","_styledComponents","_propTypes","_IconButton","_reactRouterDom","_SessionManager","_selector","_context","_Globe","_QuestionMarkCircle","obj","__esModule","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","configurable","writable","_ref","extraItems","showLocale","showHelper","showSessionManager","sessionManagerProps","session","useContext","locale","LocaleContext","useLocation","docPaths","jsxs","Div","index","cloneElement","showText","pathName","pathname","path","indexOf","showRole","propTypes","isRequired","webWalletUrl","string","array","bool","defaultProps","withConfig"],"mappings":"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","file":"static/js/12.0e874475.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 { useState, useEffect } from 'react';\n\nimport PropTypes from 'prop-types';\nimport styled from '@emotion/styled';\n\nimport Box from '@mui/material/Box';\nimport PlayArrowIcon from '@mui/icons-material/PlayArrow';\nimport Paper from '@mui/material/Paper';\n\nimport Button from '@arcblock/ux/lib/Button';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport Toast from '@abtnode/ux/lib/toast';\nimport DidAvatar from '@arcblock/did-connect/lib/Avatar';\nimport DidAddress from '@arcblock/did-connect/lib/Address';\nimport Img from '@arcblock/ux/lib/Img';\nimport Center from '@arcblock/ux/lib/Center';\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport ServerLogo from '@arcblock/icons/lib/ServerLogo';\n\nimport { getDisplayName } from '@blocklet/meta/lib/util';\nimport { WELLKNOWN_SERVICE_PATH_PREFIX } from '@abtnode/constant';\nimport HeaderAddon from '@abtnode/ux/lib/layout/addon';\n\nimport api from '../libs/api';\nimport { SessionContext } from '../contexts/session';\n\nfunction AppIcon({ appInfo, ...rest }) {\n const [error, setError] = 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');\nconst joinUrl = require('url-join');\n\nconst { NODE_SERVICES, SLOT_FOR_IP_DNS_SITE, WHO_CAN_ACCESS } = require('@abtnode/constant');\n\nconst {\n BlockletGroup,\n fromBlockletStatus,\n fromBlockletSource,\n BLOCKLET_INTERFACE_TYPE_WEB,\n BLOCKLET_CONFIGURABLE_KEY,\n} = require('./constants');\n\nconst getComponentId = (component, ancestors = []) =>\n `${ancestors.map((x) => (x && x.meta ? x.meta.did : '')).join('/')}${ancestors.length ? '/' : ''}${\n component && component.meta ? component.meta.did : ''\n }`;\n\nconst getComponentName = (component, ancestors = []) =>\n `${ancestors.map((x) => (x && x.meta ? x.meta.name : '')).join('/')}${ancestors.length ? '/' : ''}${\n component && component.meta ? component.meta.name : ''\n }`;\n\nconst getComponentBundleId = (component) => `${component.meta.bundleName}@${component.meta.version}`;\n\n/**\n * a => ''\n * @a/b => ''\n * a/b => a\n * @a/b/c => @a/b\n * a/@b/c => a\n * @a/b/@c/d => @a/b\n * @a/b/@c/d/e => @a/b/@c/d\n * @a/b/@c/d/@e/f => @a/b/@c/d\n */\nconst getParentComponentName = (name) => {\n if (!name) {\n return '';\n }\n\n const arr = name.split('/');\n arr.pop();\n\n if (!arr.length) {\n return '';\n }\n\n if (arr[arr.length - 1].startsWith('@')) {\n arr.pop();\n }\n\n if (!arr.length) {\n return '';\n }\n\n return arr.join('/');\n};\n\nconst forEachBlocklet = (\n blocklet,\n cb,\n { parallel = false, sync, params: inputParams, _parent, _root, _level = 0, _tasks: inputTasks, _ancestors = [] } = {}\n) => {\n const root = _root || _parent || blocklet;\n\n // id maybe meaningless if no meta in blocklet or _ancestors\n const id = getComponentId(blocklet, _ancestors);\n\n const newAncestors = _ancestors.concat(blocklet);\n\n // sync\n if (sync) {\n const params = cb(blocklet, {\n parent: _parent,\n root,\n level: _level,\n params: inputParams,\n ancestors: _ancestors,\n id,\n });\n if (blocklet.children) {\n for (const child of blocklet.children) {\n forEachBlocklet(child, cb, {\n sync,\n params,\n _parent: blocklet,\n _root: root,\n _level: _level + 1,\n _ancestors: newAncestors,\n });\n }\n }\n return null;\n }\n\n // serial\n if (!parallel) {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n try {\n const params = await cb(blocklet, {\n parent: _parent,\n root,\n level: _level,\n ancestors: _ancestors,\n params: inputParams,\n id,\n });\n if (blocklet.children) {\n for (const child of blocklet.children) {\n await forEachBlocklet(child, cb, {\n params,\n _parent: blocklet,\n _root: root,\n _level: _level + 1,\n _ancestors: newAncestors,\n });\n }\n }\n\n resolve(null);\n } catch (err) {\n reject(err);\n }\n });\n }\n\n // parallel\n const tasks = inputTasks || [];\n tasks.push(cb(blocklet, { parent: _parent, root, level: _level, ancestors: _ancestors }));\n if (blocklet.children) {\n for (const child of blocklet.children) {\n forEachBlocklet(child, cb, {\n parallel,\n _parent: blocklet,\n _root: root,\n _level: _level + 1,\n _tasks: tasks,\n _ancestors: newAncestors,\n id,\n });\n }\n }\n if (inputTasks) {\n return null;\n }\n return Promise.all(tasks);\n};\n\nconst forEachBlockletSync = (blocklet, cb) => forEachBlocklet(blocklet, cb, { sync: true });\n\nconst forEachChild = (blocklet, cb, params) => {\n return forEachBlocklet(\n blocklet,\n (b, opt) => {\n if (opt.level === 0) {\n return {};\n }\n return cb(b, opt);\n },\n params\n );\n};\n\nconst forEachChildSync = (blocklet, cb) => forEachChild(blocklet, cb, { sync: true });\n\nconst findComponentById = (blocklet, componentId, { _ancestors = [], returnAncestors = false } = {}) => {\n const id = getComponentId(blocklet, _ancestors);\n if (componentId === id) {\n if (returnAncestors) {\n return {\n component: blocklet,\n ancestors: _ancestors,\n };\n }\n\n return blocklet;\n }\n\n for (const child of blocklet.children || []) {\n const ancestors = _ancestors.concat(blocklet);\n const component = findComponentById(child, componentId, { _ancestors: ancestors, returnAncestors });\n if (component) {\n return component;\n }\n }\n\n return null;\n};\n\nconst getSharedConfigObj = (component, ancestors) => {\n const res = {};\n if (!ancestors) {\n return res;\n }\n\n for (let i = ancestors.length - 1; i >= 0; i--) {\n const ancestor = ancestors[i];\n if (Array.isArray(ancestor.configs)) {\n ancestor.configs.forEach(({ key, value, secure, shared }) => {\n if (res[key]) {\n return;\n }\n\n if (!value || secure !== false || shared === false || BLOCKLET_CONFIGURABLE_KEY[key]) {\n return;\n }\n\n const config = (component.configs || []).find((x) => x.key === key);\n if (config && config.value) {\n return;\n }\n\n res[key] = value;\n });\n }\n }\n\n return res;\n};\n\nconst getAppMissingConfigs = (blocklet = {}) => {\n const missingConfigs = [];\n\n forEachBlockletSync(blocklet, (b, { ancestors }) => {\n const configs = b.configs || [];\n const sharedConfigObj = getSharedConfigObj(b, ancestors);\n configs.forEach((item) => {\n if (item.required && !item.value && !sharedConfigObj[item.key]) {\n missingConfigs.push({ did: b.meta.did, key: item.key, description: item.description });\n }\n });\n });\n\n return missingConfigs;\n};\n\nconst getComponentMissingConfigs = (component = {}, ancestors = []) => {\n const missingConfigs = [];\n\n const configs = component.configs || [];\n const sharedConfigObj = getSharedConfigObj(component, ancestors);\n configs.forEach((item) => {\n if (item.required && !item.value && !sharedConfigObj[item.key]) {\n missingConfigs.push({ did: component.meta.did, key: item.key, description: item.description });\n }\n });\n\n return missingConfigs;\n};\n\nconst isFreeBlocklet = (meta) => {\n if (!meta.payment) {\n return true;\n }\n\n const priceList = (meta.payment.price || []).map((x) => x.value || 0);\n return priceList.every((x) => x === 0);\n};\n\nconst isComponentBlocklet = (meta) => {\n return get(meta, 'capabilities.component') !== false;\n};\n\nconst wipeSensitiveData = (blocklet) => {\n if (!blocklet) {\n return blocklet;\n }\n\n forEachBlocklet(\n blocklet,\n (d) => {\n (d.configs || []).forEach((x) => {\n if (x.secure) {\n x.value = x.value ? '__encrypted__' : '';\n }\n });\n (d.environments || []).forEach((x) => {\n if (['BLOCKLET_APP_SK'].includes(x.key)) {\n x.value = '__encrypted__';\n }\n });\n\n delete blocklet.configObj;\n delete blocklet.environmentObj;\n },\n { sync: true }\n );\n\n return blocklet;\n};\n\nconst isDeletableBlocklet = (blocklet) => {\n if (!blocklet) {\n return false;\n }\n\n const config = blocklet.environments.find((x) => x.key === 'BLOCKLET_DELETABLE');\n if (!config) {\n return true;\n }\n\n return config.value === 'yes';\n};\n\nconst hasRunnableComponent = (blocklet) => {\n let has = false;\n forEachBlockletSync(blocklet, (x) => {\n if (x.meta.group !== BlockletGroup.gateway) {\n has = true;\n }\n });\n\n return has;\n};\n\n/**\n * 获取 blocklet 的 name\n * @param {Object} blocklet 应用数据\n * @param {Boolean} onlyUseMeta 优先使用应用元数据的name\n * @returns blocklet display name\n */\nconst getDisplayName = (blocklet, onlyUseMeta = false) => {\n const { meta } = blocklet;\n let displayName;\n\n if (!onlyUseMeta && blocklet.environments) {\n const target = blocklet.environments.find((e) => e.key === 'BLOCKLET_APP_NAME');\n if (target && target.value) {\n displayName = target.value;\n }\n }\n return displayName || meta.title || meta.name;\n};\n\nconst fixBlockletStatus = (blocklet) => {\n if (!blocklet) {\n return;\n }\n\n forEachBlockletSync(blocklet, (b) => {\n b.status = fromBlockletStatus(b.status);\n if (b.source !== undefined) {\n b.source = fromBlockletSource(b.source);\n }\n });\n\n if (blocklet.settings) {\n (blocklet.settings.children || []).forEach((child) => {\n forEachBlockletSync(child, (b) => {\n b.status = fromBlockletStatus(b.status);\n if (b.source !== undefined) {\n b.source = fromBlockletSource(b.source);\n }\n });\n });\n }\n};\n\nconst findWebInterface = (blocklet) => {\n if (!blocklet) {\n return null;\n }\n\n const meta = blocklet.meta || blocklet || {};\n const { interfaces = [] } = meta;\n\n if (!Array.isArray(interfaces)) {\n return null;\n }\n\n return interfaces.find((x) => x.type === BLOCKLET_INTERFACE_TYPE_WEB);\n};\n\nconst findServiceFromMeta = (meta, ServiceName) => {\n const names = [ServiceName];\n\n // backward compatible\n if (ServiceName === NODE_SERVICES.AUTH) {\n names.push(NODE_SERVICES.AUTH_SERVICE);\n }\n\n const webInterface = findWebInterface(meta);\n\n if (!webInterface) {\n return null;\n }\n\n return (webInterface.services || []).find((x) => names.includes(x.name));\n};\n\nconst getWhoCanAccess = (blocklet) => {\n if (!blocklet) {\n return WHO_CAN_ACCESS.ALL;\n }\n\n if (get(blocklet, 'settings.whoCanAccess')) {\n return blocklet.settings.whoCanAccess;\n }\n\n const service = findServiceFromMeta(blocklet.meta, NODE_SERVICES.AUTH);\n if (get(service, 'config.whoCanAccess')) {\n return service.config.whoCanAccess;\n }\n\n return WHO_CAN_ACCESS.ALL;\n};\n\nconst getConnectAppUrl = ({ request, baseUrl }) => {\n const blockletDid = request.headers['x-blocklet-did'] || '';\n const blockletRealDid = request.headers['x-blocklet-real-did'] || '';\n const pathPrefix = request.headers['x-path-prefix'] || '/';\n const groupPathPrefix = request.headers['x-group-path-prefix'] || '/';\n\n // Child blocklets should set appInfo.link to exactly the same path as the root blocklet\n let appUrl = baseUrl;\n if (blockletDid !== blockletRealDid && pathPrefix !== groupPathPrefix) {\n appUrl = joinUrl(joinUrl(appUrl, '/').replace(pathPrefix, groupPathPrefix), '');\n }\n\n return appUrl;\n};\n\nconst replaceSlotToIp = (url, ip) => (url || '').replace(SLOT_FOR_IP_DNS_SITE, (ip || '').replace(/\\./g, '-'));\n\nconst urlFriendly = (name) => slugify(name.replace(/^[@./-]/, '').replace(/[@./_]/g, '-'));\n\nmodule.exports = {\n isFreeBlocklet,\n isComponentBlocklet,\n forEachBlocklet,\n forEachBlockletSync,\n forEachChild,\n forEachChildSync,\n isDeletableBlocklet,\n getSharedConfigObj,\n getAppMissingConfigs,\n getComponentMissingConfigs,\n wipeSensitiveData,\n hasRunnableComponent,\n getDisplayName,\n fixBlockletStatus,\n findWebInterface,\n findServiceFromMeta,\n getWhoCanAccess,\n replaceSlotToIp,\n urlFriendly,\n getComponentId,\n getComponentName,\n getComponentBundleId,\n findComponentById,\n getParentComponentName,\n getConnectAppUrl,\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 upgradeFailed: 'blocklet.upgradedFailed',\n downgraded: 'blocklet.downgraded',\n downgradeFailed: 'blocklet.downgradedFailed',\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\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 = 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 _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 _Globe = _interopRequireDefault(require(\"@arcblock/icons/lib/Globe\"));\n\nvar _QuestionMarkCircle = _interopRequireDefault(require(\"@arcblock/icons/lib/QuestionMarkCircle\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction HeaderAddon(_ref) {\n let {\n SessionContext,\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 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__*/(0, _jsxRuntime.jsxs)(Div, {\n children: [extraItems.map((x, index) => /*#__PURE__*/(0, _react.cloneElement)(x, {\n key: index\n })), showLocale && /*#__PURE__*/(0, _jsxRuntime.jsx)(_selector.default, {\n \"data-cy\": \"locale-addon\",\n icon: _Globe.default,\n size: 23,\n showText: false,\n className: \"locale-addon\"\n }), showHelper && /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {\n onClick: onHelpClick,\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_QuestionMarkCircle.default, {})\n }), showSessionManager && /*#__PURE__*/(0, _jsxRuntime.jsx)(_SessionManager.default, _objectSpread({\n session: session,\n size: 24,\n showRole: true\n }, sessionManagerProps))]\n });\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;.MuiIconButton-root svg{width:26px;height:26px;}.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":""}
|