@abtnode/blocklet-services 1.8.62 → 1.8.63-beta-c51e554d

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.
@@ -68,22 +68,24 @@ module.exports = {
68
68
  cacheError
69
69
  );
70
70
 
71
- server.get(
72
- `${prefix}/blocklet/favicon`,
73
- attachSendLogoContext({
74
- onSendFallbackLogo,
75
- onGetBlocklet: ({ req }) => {
76
- return req.getBlocklet();
77
- },
78
- }),
79
- ensureBlockletExist,
80
- ensureCustomFavicon,
81
- ensureCustomSquareLogo,
82
- ensureBundleLogo,
83
- ensureDefaultLogo,
84
- fallbackLogo,
85
- cacheError
86
- );
71
+ ['/favicon.ico', `${prefix}/blocklet/favicon`].forEach((x) => {
72
+ server.get(
73
+ x,
74
+ attachSendLogoContext({
75
+ onSendFallbackLogo,
76
+ onGetBlocklet: ({ req }) => {
77
+ return req.getBlocklet();
78
+ },
79
+ }),
80
+ ensureBlockletExist,
81
+ ensureCustomFavicon,
82
+ ensureCustomSquareLogo,
83
+ ensureBundleLogo,
84
+ ensureDefaultLogo,
85
+ fallbackLogo,
86
+ cacheError
87
+ );
88
+ });
87
89
 
88
90
  server.get(
89
91
  `${prefix}/blocklet/logo-bundle/?**`,
@@ -1,5 +1,6 @@
1
1
  /* eslint-disable arrow-parens */
2
2
  const get = require('lodash/get');
3
+ const cookie = require('cookie');
3
4
  const minimatch = require('minimatch');
4
5
  const bearerToken = require('express-bearer-token');
5
6
 
@@ -34,7 +35,12 @@ const createSessionRoutes = require('./session');
34
35
  const createPassportRoutes = require('./passport');
35
36
  const { getRedirectUrl } = require('../../util');
36
37
 
37
- const getTokenFromWsConnect = (req) => {
38
+ const getTokenFromWsConnect = (req, options) => {
39
+ const cookies = cookie.parse(req.headers.cookie || '');
40
+ if (cookies[options.sessionTokenKey]) {
41
+ return cookies[options.sessionTokenKey];
42
+ }
43
+
38
44
  const { searchParams } = new URL(req.url, `http://${req.headers.host || 'unknown'}`);
39
45
  return searchParams.get('token');
40
46
  };
@@ -173,7 +179,7 @@ const init = ({ node, options }) => {
173
179
  routes.createSessionRoutes = { init: (router, node) => createSessionRoutes.init(router, node, createSessionToken) };
174
180
 
175
181
  const ensureWsUser = async (req) => {
176
- const token = getTokenFromWsConnect(req);
182
+ const token = getTokenFromWsConnect(req, options);
177
183
 
178
184
  // ignore some dev path in dev mode
179
185
  if (await isDevWsConnect(req)) {
@@ -185,7 +191,7 @@ const init = ({ node, options }) => {
185
191
 
186
192
  // auth middleware for websocket connect
187
193
  middlewares.ensureWsAuth = async (req, socket, head, next) => {
188
- const token = getTokenFromWsConnect(req);
194
+ const token = getTokenFromWsConnect(req, options);
189
195
 
190
196
  // ignore some dev path in dev mode
191
197
  if (await isDevWsConnect(req)) {
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "files": {
3
3
  "main.css": "/.blocklet/proxy/blocklet-service/static/css/main.632501d5.css",
4
- "main.js": "/.blocklet/proxy/blocklet-service/static/js/main.59a1465e.js",
4
+ "main.js": "/.blocklet/proxy/blocklet-service/static/js/main.e03a3989.js",
5
5
  "static/js/560.3efa5410.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/560.3efa5410.chunk.js",
6
6
  "static/js/255.d2001b91.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/255.d2001b91.chunk.js",
7
7
  "static/js/371.f9acea25.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/371.f9acea25.chunk.js",
8
8
  "static/js/737.a6089895.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/737.a6089895.chunk.js",
9
- "static/js/906.f8540d1c.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/906.f8540d1c.chunk.js",
9
+ "static/js/906.3058a45b.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/906.3058a45b.chunk.js",
10
10
  "static/js/868.ffa052dc.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/868.ffa052dc.chunk.js",
11
11
  "static/js/409.d234c0ae.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/409.d234c0ae.chunk.js",
12
12
  "static/js/682.c64ae291.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/682.c64ae291.chunk.js",
@@ -42,12 +42,12 @@
42
42
  "router-template-styles/styles.css": "/.blocklet/proxy/blocklet-service/router-template-styles/styles.css",
43
43
  "index.html": "/.blocklet/proxy/blocklet-service/index.html",
44
44
  "main.632501d5.css.map": "/.blocklet/proxy/blocklet-service/static/css/main.632501d5.css.map",
45
- "main.59a1465e.js.map": "/.blocklet/proxy/blocklet-service/static/js/main.59a1465e.js.map",
45
+ "main.e03a3989.js.map": "/.blocklet/proxy/blocklet-service/static/js/main.e03a3989.js.map",
46
46
  "560.3efa5410.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/560.3efa5410.chunk.js.map",
47
47
  "255.d2001b91.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/255.d2001b91.chunk.js.map",
48
48
  "371.f9acea25.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/371.f9acea25.chunk.js.map",
49
49
  "737.a6089895.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/737.a6089895.chunk.js.map",
50
- "906.f8540d1c.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/906.f8540d1c.chunk.js.map",
50
+ "906.3058a45b.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/906.3058a45b.chunk.js.map",
51
51
  "868.ffa052dc.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/868.ffa052dc.chunk.js.map",
52
52
  "409.d234c0ae.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/409.d234c0ae.chunk.js.map",
53
53
  "682.c64ae291.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/682.c64ae291.chunk.js.map",
@@ -64,6 +64,6 @@
64
64
  },
65
65
  "entrypoints": [
66
66
  "static/css/main.632501d5.css",
67
- "static/js/main.59a1465e.js"
67
+ "static/js/main.e03a3989.js"
68
68
  ]
69
69
  }
package/build/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/.well-known/service/blocklet/favicon"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"/><meta name="theme-color" content="#000000"/><title>Blocklet Service</title><script src=".well-known/service/api/env"></script><script src="__blocklet__.js"></script><script defer="defer" src="/.blocklet/proxy/blocklet-service/static/js/main.59a1465e.js"></script><link href="/.blocklet/proxy/blocklet-service/static/css/main.632501d5.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/.well-known/service/blocklet/favicon"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"/><meta name="theme-color" content="#000000"/><title>Blocklet Service</title><script src=".well-known/service/api/env"></script><script src="__blocklet__.js"></script><script defer="defer" src="/.blocklet/proxy/blocklet-service/static/js/main.e03a3989.js"></script><link href="/.blocklet/proxy/blocklet-service/static/css/main.632501d5.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_abtnode_blocklet_services=self.webpackChunk_abtnode_blocklet_services||[]).push([[906],{99368:function(e,n,t){t.r(n),t.d(n,{default:function(){return ln}});var r,o=t(71171),i=t(33028),a=t(32723),s=t(34795),c=t(30969),l=t(30734),u=t(16380),d=t(19611),p=t.n(d),f=t(54470),h=t(38361),m=t(90445),x=t(71464),v=t(75255),g=t(42167),b=t(61802),y=t(56229),j=t(19006),w=t(47650),k=t(20244),Z=t(7017),C=t(59505),O=t(38507),P=t(18757),S=t(4485),E=t(7284),L=t(54177),_=t(37574);function N(e){var n=e.onNext,t=(0,g.useLocaleContext)(),r=t.t,o=t.locale,i=(0,S.Tt)(),c=i.api,l=i.session,u=function(){var e=(0,s.Z)((0,a.Z)().mark((function e(t,r){return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(0,O.ZB)(r(t.sessionToken)),e.prev=1,e.next=4,l.refresh();case 4:n(),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(1),L.default.error(e.t0.message);case 10:case"end":return e.stop()}}),e,null,[[1,7]])})));return function(n,t){return e.apply(this,arguments)}}();return(0,_.jsx)(I,{popup:!0,open:!0,hideCloseButton:!0,action:"setup",checkFn:c.get,checkTimeout:6e5,socketUrl:c.socketUrl,webWalletUrl:(0,O.yP)(),onSuccess:u,locale:o,messages:{title:r("setup.connect.title"),scan:r("setup.connect.scan"),confirm:r("setup.connect.confirm"),success:r("setup.connect.success")},extraParams:{setup:!0,launchType:(0,O.tX)("launchType"),nftId:(0,O.tX)("nftId")}})}N.defaultProps={onNext:function(){}};var T,B,A,I=(0,u.default)(E.default)(r||(r=(0,o.Z)(["\n .action-info-desc {\n padding: 0 72px;\n }\n"]))),R=t(59740),D=t(68079),W=t(96234),z=t(88674),F=t.n(z),U=t(12700),K=t.n(U),M=t(43260),q=t.n(M),H=t(79476),V=t(65063),G=t(47768),Y=t(65724),X=t(98465),Q=(0,u.default)(X.Z)(T||(T=(0,o.Z)(["\n display: flex;\n flex-direction: column;\n padding-bottom: 16px;\n "," {\n padding-top: 34px;\n padding-bottom: 34px;\n }\n .header {\n width: 100%;\n margin-bottom: 34px;\n "," {\n margin-bottom: 64px;\n }\n }\n .container-main {\n position: relative;\n flex: 1;\n width: 100%;\n }\n .container-inner {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n overflow-y: auto;\n }\n"])),(function(e){return e.theme.breakpoints.up("md")}),(function(e){return e.theme.breakpoints.up("md")})),$=t(88029);function J(e){var n=e.blocklet,t=e.onStartNow,r=e.children,o=e.disabled,i=(0,g.useLocaleContext)().t;return!n||(0,O.bg)(n.meta)?(0,_.jsx)(ee,{children:r}):(0,_.jsxs)(ne,{children:[(0,_.jsx)($.default,{className:"start-now",variant:"contained",color:"primary",disabled:o,onClick:function(){return t()},children:i("setup.startNow")}),(0,_.jsx)(h.Z,{display:"flex",alignItems:"center",children:r})]})}J.defaultProps={blocklet:null,onStartNow:function(){},children:null,disabled:!1};var ee=(0,u.default)(h.Z)(B||(B=(0,o.Z)(["\n padding-top: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n .bottom-button {\n min-width: 200px;\n }\n "," {\n .bottom-button {\n min-width: 150px;\n }\n }\n"])),(function(e){return e.theme.breakpoints.down("md")})),ne=(0,u.default)(h.Z)(A||(A=(0,o.Z)(["\n padding-bottom: 48px;\n padding-top: 24px;\n margin: 0 auto;\n width: 80%;\n display: flex;\n align-items: center;\n justify-content: space-around;\n .start-now {\n min-width: 140px;\n }\n .bottom-button {\n min-width: 120px;\n }\n "," {\n width: 100%;\n }\n\n "," {\n .start-now {\n min-width: 100px;\n }\n .bottom-button {\n min-width: 80px;\n }\n }\n"])),(function(e){return e.theme.breakpoints.down("lg")}),(function(e){return e.theme.breakpoints.down("md")}));function te(e){var n=Object.assign({},(function(e){if(null==e)throw new TypeError("Cannot destructure "+e)}(e),e));return(0,_.jsx)($.default,(0,i.Z)({className:"bottom-button",variant:"contained",color:"primary"},n))}var re=["childDid"],oe=["value"];function ie(e){var n=e.onNext,t=e.onPrevious,r=(0,v.Z)((function(e){return e.breakpoints.down("md")})),o=(0,g.useLocaleContext)().t,l=(0,c.useState)(!1),u=(0,W.Z)(l,2),d=u[0],p=u[1],f=(0,c.useState)(null),m=(0,W.Z)(f,2),x=m[0],b=m[1],y=(0,P.y0)(),j=y.blocklet,w=y.actions,k=(j.configs||[]).filter((function(e){return!Y.BLOCKLET_CONFIGURABLE_KEY[e.key]})),C=j.environments.find((function(e){return"BLOCKLET_PASSPORT_COLOR"===e.key})),O=[{key:Y.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_NAME,description:o("blocklet.config.name"),value:j.environments.find((function(e){return"BLOCKLET_APP_NAME"===e.key})).value},{key:Y.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_DESCRIPTION,description:o("blocklet.config.description"),value:j.environments.find((function(e){return"BLOCKLET_APP_DESCRIPTION"===e.key})).value},{key:Y.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_PASSPORT_COLOR,description:o("blocklet.config.passportColor"),value:C?C.value:"auto",componentType:"passport",componentProps:{blocklet:j}}],S=[];(0,Z.forEachChildSync)(j,(function(e,n){var t=n.ancestors.slice(1).map((function(e){return e.meta.did}));S.push((e.configs||[]).map((function(n){return(0,i.Z)((0,i.Z)({},n),{},{childDid:t.concat(e.meta.did)})})))}));var E=K()(q()([].concat((0,D.Z)(k),S)),"key").filter((function(e){return!!e.key})).sort((function(e,n){return e.required&&!n.required?-1:n.required&&!e.required?1:0})),N=(0,Z.getAppMissingConfigs)(j).length,T=function(){var e=(0,s.Z)((0,a.Z)().mark((function e(n){var t,r,o;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=x.childDid,r=(0,R.Z)(x,re),o=[(0,i.Z)((0,i.Z)({},F()(r,["componentType","componentProps"])),{},{value:n})],e.prev=2,p(!0),e.next=6,w.configBlocklet({configs:o,childDid:t});case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(2),L.default.error(e.t0.message);case 11:return e.prev=11,p(!1),e.finish(11);case 14:case"end":return e.stop()}}),e,null,[[2,8,11,14]])})));return function(n){return e.apply(this,arguments)}}(),B={},A=[].concat(O,(0,D.Z)(E)).map((function(e){var n=e.value,t=(0,R.Z)(e,oe);return B[e.key]=n,(0,i.Z)({},t)}));return(0,_.jsxs)(Q,{children:[(0,_.jsx)("div",{className:"header",style:{marginBottom:16},children:(0,_.jsx)(G.default,{title:o("setup.config.title"),subTitle:o("setup.config.subTitle"),onClickBack:function(){t()}})}),(0,_.jsx)("div",{className:"container-main",children:(0,_.jsx)("div",{className:"container-inner",children:(0,_.jsx)(V.Z,{bottom:(0,_.jsx)(J,{mt:8,disabled:d||x,blocklet:j,onStartNow:function(){return n("complete")},children:(0,_.jsx)(h.Z,{display:"flex",alignItems:"center",children:(0,_.jsx)(te,{disabled:d||N||x,onClick:function(){w.refreshFuel({showError:!1}),n()},children:o("setup.next")})})}),children:(0,_.jsx)(H.default,{style:{margin:"0 auto 20px",width:"80%",paddingTop:r?0:38},loading:d,schema:A,defaultValue:B,onChange:function(e,n){var t=n.action,r=n.currentItem;"edit"===t?b(r):["cancel","confirm"].includes(t)&&b(null),"confirm"===t&&T(e[r.key])}})})})})]})}ie.defaultProps={onNext:function(){},onPrevious:function(){}};var ae,se,ce=t(87006),le=t(50576),ue=t(95803),de=t.n(ue),pe=t(33359),fe=t(48952);function he(e){var n,t,r,o=e.onNext,l=e.onPrevious,u=(0,c.useContext)(g.LocaleContext),d=u.t,f=u.locale,m=(0,c.useState)(""),x=(0,W.Z)(m,1)[0],v=(0,c.useState)(!1),b=(0,W.Z)(v,2),y=b[0],j=b[1],w=(0,P.y0)(),k=w.blocklet,Z=w.meta,O=(0,c.useState)((null===(n=k.environments.find((function(e){return e.key===C.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_SPACE_ENDPOINT})))||void 0===n?void 0:n.value)||""),S=(0,W.Z)(O,2),N=S[0],T=S[1],B=(0,c.useState)("https://service.didspaces.com/app"),A=(0,W.Z)(B,2),I=A[0],R=A[1],D=window.blocklet,z=D.appId,F=D.appName,U=D.appDescription;function K(e,n){return M.apply(this,arguments)}function M(){return(M=(0,s.Z)((0,a.Z)().mark((function e(n,t){return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fe.Z.configBlocklet({input:{did:[n],configs:[{key:C.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_SPACE_ENDPOINT,value:t}]}}).then((function(){L.default.success(d("setup.didSpace.getStorageAuthorizeSuccessfully",f))})).catch((function(e){console.error(e),L.default.error(e.message)}));case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var q=(0,c.useState)({open:!1,action:"one-click-authorization",checkTimeout:3e5,checkFn:de().create({baseURL:p()(I,"space")}).get,onSuccess:function(){var e=(0,s.Z)((0,a.Z)().mark((function e(n,t){return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return T(t(n.endpoint)),e.next=3,K(k.meta.did,t(n.endpoint));case 3:setTimeout((function(){Y((function(e){return(0,i.Z)((0,i.Z)({},e),{},{open:!1})}))}),3e3);case 4:case"end":return e.stop()}}),e)})));return function(n,t){return e.apply(this,arguments)}}(),onClose:function(){Y((function(e){return(0,i.Z)((0,i.Z)({},e),{},{open:!1})}))}}),H=(0,W.Z)(q,2),V=H[0],Y=H[1],X=function(){var e=(0,s.Z)((0,a.Z)().mark((function e(){return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(0,le.isEmpty)(I)){e.next=3;break}return L.default.error(d("setup.didSpace.addressCannotEmpty",f)),e.abrupt("return");case 3:Y((function(e){return(0,i.Z)((0,i.Z)({},e),{},{prefix:p()(I,"space/api/did"),baseUrl:new URL(I).origin,checkFn:de().create({baseURL:p()(I,"space")}).get,extraParams:{appDid:z,appName:F,appDescription:U,scopes:"list:object read:object write:object"},open:!0})}));case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,c.useEffect)((function(){Y((function(e){return(0,i.Z)((0,i.Z)({},e),{},{messages:{title:d("setup.didSpace.authorize.title",{appName:F}),scan:d("setup.didSpace.authorize.scan",{appName:F}),confirm:"",success:(0,_.jsx)(pe.Z,{gutterBottom:!0,children:d("setup.didSpace.authorize.success")})}})}))}),[F,f,d]),(0,_.jsxs)(xe,{children:[(0,_.jsx)("div",{className:"header",children:(0,_.jsx)(G.default,{title:d("setup.didSpace.title"),subTitle:d("setup.didSpace.subTitle"),onClickBack:l})}),(0,_.jsx)(ve,{label:d("setup.didSpace.label"),value:I,onChange:function(e){var n=e.target.value;(0,le.isEmpty)(n)?j(d("setup.didSpace.addressCannotEmpty",f)):j(null),R(n)},autoFocus:!0,size:"small",error:!!y,helperText:y,InputProps:{endAdornment:(0,_.jsx)(te,{color:"primary",onClick:X,size:"small",sx:{position:"absolute",right:0,display:"flex",justifyContent:"center",alignItems:"center",width:"140px",height:"100%"},children:d(N?"setup.didSpace.reAuthorization":"setup.didSpace.goToAuthorization")})}}),N&&(0,_.jsx)(h.Z,{color:"text.secondary",children:(0,_.jsx)(h.Z,{display:"flex",children:(0,_.jsxs)(h.Z,{display:"inline",children:[d("setup.didSpace.tips"),": \xa0"," ",(0,_.jsx)(h.Z,{display:"inline",color:"primary.main",fontWeight:"fontWeightBold",children:d("setup.didSpace.getStorageAuthorizeSuccessfully")})]})})}),"required"===(null===Z||void 0===Z||null===(t=Z.capabilities)||void 0===t?void 0:t.didSpace)&&(0,_.jsx)(J,{mt:8,children:(0,_.jsx)(te,{loading:!!x,disabled:y||!!x||!I||!N,onClick:function(){return o()},children:x||d("setup.next")})}),"optional"===(null===Z||void 0===Z||null===(r=Z.capabilities)||void 0===r?void 0:r.didSpace)&&(0,_.jsx)(J,{mt:8,disabled:!!x,blocklet:k,onStartNow:function(){return o("complete")},children:(0,_.jsx)(te,{loading:!!x,disabled:!!x,onClick:function(){return o()},children:x||d(N?"setup.continue":"setup.skip")})}),(0,_.jsx)(E.default,{prefix:V.prefix,open:V.open,popup:!0,action:V.action,baseUrl:V.baseUrl,checkFn:V.checkFn,onSuccess:V.onSuccess,onClose:V.onClose,checkTimeout:V.checkTimeout,extraParams:V.extraParams,messages:V.messages,locale:f})]})}he.defaultProps={onNext:function(){},onPrevious:function(){}};var me,xe=(0,u.default)(Q)(ae||(ae=(0,o.Z)(["\n height: 100%;\n overflow-y: auto;\n"]))),ve=(0,u.default)(ce.Z)(se||(se=(0,o.Z)(["\n height: 56px;\n width: 580px;\n "," {\n width: 75%;\n }\n input.MuiInputBase-input {\n width: calc(100% - 144px);\n }\n"])),(function(e){return e.theme.breakpoints.down("md")})),ge=he,be=t(85710),ye=t(62068),je=t(99042),we=function(e){return["waiting","creating","renewaling"].includes(null===e||void 0===e?void 0:e.status)},ke=function(e){return new Promise((function(n,t){var r=setInterval((0,s.Z)((0,a.Z)().mark((function o(){var i,s;return(0,a.Z)().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return o.prev=0,o.next=3,fe.Z.findCertificateByDomain({input:{domain:e}});case 3:if(i=o.sent,"generated"!==(null===(s=i.cert)||void 0===s?void 0:s.status)){o.next=9;break}return clearInterval(r),n(!0),o.abrupt("return");case 9:we(s)||(clearInterval(r),n(!1)),o.next=16;break;case 12:o.prev=12,o.t0=o.catch(0),clearInterval(r),t(o.t0);case 16:case"end":return o.stop()}}),o,null,[[0,12]])}))),1e3)}))},Ze=function(){var e=(0,s.Z)((0,a.Z)().mark((function e(n){return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fe.Z.issueLetsEncryptCert({input:{domain:n}});case 2:return e.abrupt("return",ke(n));case 3:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}();function Ce(e){var n,t=e.onNext,r=e.onPrevious,o=(0,c.useContext)(g.LocaleContext),i=o.t,l=o.locale,u=(0,c.useState)(""),d=(0,W.Z)(u,2),p=d[0],f=d[1],m=(0,c.useState)(!1),x=(0,W.Z)(m,2),v=x[0],b=x[1],y=(0,P.y0)().blocklet,j=(0,c.useState)(""),w=(0,W.Z)(j,2),k=w[0],C=w[1],O=(0,c.useState)(!1),S=(0,W.Z)(O,2),E=S[0],N=S[1],T=((null===y||void 0===y?void 0:y.site)||{}).domainAliases||[],B=(null===(n=T.filter((function(e){return!e.isProtected}))[0])||void 0===n?void 0:n.value)||"",A=T.filter((function(e){return e.isProtected})).map((function(e){return(0,Z.replaceSlotToIp)(e.value,k)})),I=(0,c.useState)(B),R=(0,W.Z)(I,2),D=R[0],z=R[1],F=function(){var e=(0,s.Z)((0,a.Z)().mark((function e(n){return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return f(i("setup.domain.addingDomain")),e.next=3,(0,be.sleep)(1500);case 3:if(T.some((function(e){return e.value===D}))){e.next=8;break}return e.next=6,fe.Z.addDomainAlias({input:{id:y.site.id,domainAlias:D}});case 6:return e.next=8,fe.Z.takeRoutingSnapshot({input:{dryRun:!1,message:"add domain ".concat(D," from blocklet services")}});case 8:return e.next=10,fe.Z.configBlocklet({input:{did:[y.meta.did],configs:[{key:Y.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_URL,value:"http".concat(n?"s":"","://").concat(D)}]}});case 10:t();case 11:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),U=function(){var e=(0,s.Z)((0,a.Z)().mark((function e(){var n,t,r,o,s;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!p){e.next=2;break}return e.abrupt("return");case 2:return e.prev=2,f(i("setup.domain.checkingResolvable")),e.next=6,(0,be.sleep)(1500);case 6:return e.next=8,je.Z.get("/dns-resolve?hostname=".concat(D));case 8:if(n=e.sent,t=n.data.address){e.next=12;break}throw new Error(i("setup.domain.cannotResolve",{domain:D}));case 12:if(t===k){e.next=14;break}throw new Error(i("setup.domain.resolvedAddressError",{domain:D,curDomain:window.location.hostname}));case 14:return f(i("setup.domain.addingCert")),r=!1,e.next=18,fe.Z.findCertificateByDomain({input:{domain:D}});case 18:if(o=e.sent,s=o.cert){e.next=26;break}return e.next=23,Ze(D,l);case 23:r=e.sent,e.next=39;break;case 26:if("generated"!==s.status){e.next=30;break}r=!0,e.next=39;break;case 30:if(!["waiting","creating","renewaling"].includes(s.status)){e.next=36;break}return e.next=33,ke(D);case 33:r=e.sent,e.next=39;break;case 36:return e.next=38,Ze(D,l);case 38:r=e.sent;case 39:r?F(r):N(!0),e.next=46;break;case 42:e.prev=42,e.t0=e.catch(2),L.default.error(e.t0.message),f("");case 46:case"end":return e.stop()}}),e,null,[[2,42]])})));return function(){return e.apply(this,arguments)}}();return(0,c.useEffect)((function(){je.Z.get("/dns-resolve?hostname=".concat(window.location.hostname)).then((function(e){var n=e.data;C(n.address||"")})).catch((function(e){console.error(e.message)}))}),[]),(0,_.jsxs)(Oe,{children:[(0,_.jsx)("div",{className:"header",children:(0,_.jsx)(G.default,{title:i("setup.domain.title"),subTitle:i("setup.domain.subTitle"),onClickBack:r})}),E&&(0,_.jsx)(ye.default,{PaperProps:{style:{minHeight:"auto"}},open:E,showCloseButton:!1,title:i("setup.domain.genCertFailed"),actions:(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(te,{color:"reverse",variant:"text",onClick:function(){f(""),N(!1)},children:i("setup.cancel")}),(0,_.jsx)(te,{color:"primary",variant:"text",onClick:function(){N(!1),F(!1)},children:i("setup.confirm")})]}),children:i("setup.domain.certFailedDesc")}),(0,_.jsxs)(h.Z,{className:"form",children:[(0,_.jsxs)(h.Z,{children:[(0,_.jsxs)(h.Z,{mb:1,color:"text.primary",fontWeight:"fontWeightBold",children:[(0,_.jsx)(h.Z,{display:"inline",children:i("setup.domain.skipStart")}),(0,_.jsx)(te,{variant:"text",size:"small",disabled:!!p,onClick:function(){return t()},style:{paddingTop:0},children:(0,_.jsx)("span",{style:{textDecoration:"underline"},children:i("setup.domain.skip")})}),(0,_.jsx)(h.Z,{display:"inline",children:i("setup.domain.skipEnd")})]}),A.map((function(e){return(0,_.jsx)(h.Z,{component:"li",fontWeight:"fontWeightBold",color:"primary.main",children:e})})),(0,_.jsx)(h.Z,{mt:1,fontWeight:"fontWeightBold",color:"text.secondary",children:i("setup.domain.certTip")}),(0,_.jsx)(h.Z,{})]}),(0,_.jsx)(h.Z,{mt:4,fontWeight:"fontWeightBold",children:i("setup.domain.subTitle")}),(0,_.jsx)(ce.Z,{style:{marginTop:16,minHeight:64},label:i("setup.domain.label"),fullWidth:!0,value:D,onChange:function(e){var n=e.target.value;z(n);var t=(0,be.validateDomain)(n,l);b(t)},autoFocus:!0,size:"small",variant:"outlined",error:!!v,helperText:v}),D&&(0,_.jsxs)(h.Z,{color:"text.secondary",children:[(0,_.jsxs)(h.Z,{display:"flex",children:[i("setup.domain.tipStart"),(0,_.jsx)(h.Z,{mx:.5,color:"primary.main",fontWeight:"fontWeightBold",children:D}),i("setup.domain.tipEnd")]}),(0,_.jsxs)(h.Z,{component:"li",children:[i("setup.domain.recordType"),":"," ",(0,_.jsx)(h.Z,{display:"inline",fontWeight:"fontWeightBold",color:"primary.main",children:"A"})]}),(0,_.jsxs)(h.Z,{component:"li",children:[i("setup.domain.recordValue"),":"," ",(0,_.jsx)(h.Z,{display:"inline",fontWeight:"fontWeightBold",color:"primary.main",children:k})]})]})]}),(0,_.jsx)(J,{mt:8,disabled:!!p,blocklet:y,onStartNow:function(){return t("complete")},children:D?(0,_.jsx)(te,{loading:!!p,disabled:v||!!p||!D,onClick:function(){return U()},children:p||i("setup.next")}):(0,_.jsx)(te,{variant:"outlined",disabled:!!p,onClick:function(){return t()},children:i("setup.skip")})})]})}Ce.defaultProps={onNext:function(){},onPrevious:function(){}};var Oe=(0,u.default)(Q)(me||(me=(0,o.Z)(["\n height: 100%;\n overflow-y: auto;\n .form {\n width: 580px;\n word-break: break-all;\n "," {\n width: 80%;\n }\n }\n"])),(function(e){return e.theme.breakpoints.down("md")})),Pe=t(33248),Se=t(97517),Ee=t(49884),Le=t(87535),_e=t(88876),Ne=t(94702),Te=t(15508),Be=t(55829),Ae=t(6779),Ie=t(94551);function Re(e){var n=e.children,t=(0,g.useLocaleContext)().t;return(0,_.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[n,(0,_.jsx)(Ae.Z,{title:t("blocklet.config.access.publicInstanceTip"),children:(0,_.jsx)(Ie.Z,{children:(0,_.jsx)(Be.default,{fontSize:"small"})})})]})}var De,We=(0,c.memo)(Re);function ze(e){var n=e.onNext,t=(0,Ne.default)(),r=(0,g.useLocaleContext)(),o=r.t,i=r.locale,l=(0,c.useState)(!1),u=(0,W.Z)(l,2),d=u[0],p=u[1],f=(0,c.useState)(""),m=(0,W.Z)(f,2),x=m[0],v=m[1],b=(0,c.useState)(!1),y=(0,W.Z)(b,2),j=y[0],w=y[1],C=(0,P.y0)(),O=C.blocklet,S=C.actions,E=C.getPublicInstance;(0,c.useEffect)((function(){v((0,Z.getWhoCanAccess)(O)),w(E(O))}),[O]);var N=function(){var e=(0,s.Z)((0,a.Z)().mark((function e(n){return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,p(!0),e.next=4,(0,be.sleep)(800);case 4:return e.next=6,S.configWhoCanAccess(n);case 6:p(!1),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(0),p(!1),L.default.error(e.t0.message);case 13:case"end":return e.stop()}}),e,null,[[0,9]])})));return function(n){return e.apply(this,arguments)}}(),T=function(){var e=(0,s.Z)((0,a.Z)().mark((function e(n){return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!d){e.next=2;break}return e.abrupt("return");case 2:return v(n.target.value),e.next=5,N(n.target.value);case 5:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),B=function(){var e=(0,s.Z)((0,a.Z)().mark((function e(n){var t;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.target.checked,e.prev=1,p(!0),e.next=5,S.configPublicToStore(t);case 5:p(!1),e.next=12;break;case 8:e.prev=8,e.t0=e.catch(1),p(!1),L.default.error(e.t0.message);case 12:case"end":return e.stop()}}),e,null,[[1,8]])})));return function(n){return e.apply(this,arguments)}}(),A={marginRight:4,fontSize:18,verticalAlign:"text-bottom",color:t.palette.text.secondary};return(0,_.jsxs)(Ke,{children:[(0,_.jsx)("div",{className:"header",children:(0,_.jsx)(G.default,{title:o("blocklet.config.access.description")})}),(0,_.jsx)(Le.Z,{component:"fieldset",children:(0,_.jsx)(Se.Z,{name:"inherit",value:x,onChange:T,children:Te.default.map((function(e){return(0,_.jsxs)("div",{style:{marginBottom:16},children:[(0,_.jsx)(Ee.Z,{value:e.value,control:(0,_.jsx)(Pe.Z,{color:"primary"}),label:(0,_.jsxs)("span",{children:[(0,_.jsx)(e.icon,{style:A}),e.title[i]]})}),(0,_.jsxs)(h.Z,{className:"tip",children:[e.description[i],e.value===k.WHO_CAN_ACCESS.ALL&&x===k.WHO_CAN_ACCESS.ALL&&"registry"===O.source&&(0,_.jsx)(We,{children:(0,_.jsx)(Ee.Z,{style:{marginRight:0},value:e.value,control:(0,_.jsx)(_e.Z,{size:"small"}),label:(0,_.jsx)("span",{children:o("blocklet.config.access.publicToStore")}),onChange:B,checked:j,disabled:d})})]})]},e.value)}))})}),(0,_.jsx)(J,{mt:8,disabled:d,blocklet:O,onStartNow:function(){return n("complete")},children:(0,_.jsx)(h.Z,{display:"flex",alignItems:"center",children:(0,_.jsx)(te,{loading:d,disabled:d,onClick:function(){return n()},children:o("setup.continue")})})})]})}ze.defaultProps={onNext:function(){}};var Fe,Ue,Ke=(0,u.default)(Q)(De||(De=(0,o.Z)(["\n height: 100%;\n overflow-y: auto;\n .header {\n width: 100%;\n }\n .tip {\n margin-left: 32px;\n font-size: 12px;\n margin-top: -8px;\n color: ",";\n }\n"])),(function(e){return e.theme.palette.text.secondary})),Me=u.default.span(Fe||(Fe=(0,o.Z)(["\n color: ",";\n &::before {\n content: '*';\n }\n"])),(function(e){return e.theme.palette.error.main})),qe=t(622),He=t(11909),Ve=t(51193),Ge=t.n(Ve);function Ye(e){var n=e.onNext,t=e.onPrevious,r=(0,c.useContext)(g.LocaleContext),o=r.locale,a=r.t,s=(0,P.y0)(),l=s.blocklet,u=s.gas,d=s.tokenInfo,f=s.actions,m=(0,S.Tt)().api,x=(0,c.useState)(!1),v=(0,W.Z)(x,2),y=v[0],j=v[1],w=u||{},k=w.need,Z=void 0===k?"":k,C=w.current,O=void 0===C?"":C,L=w.owe,N=void 0===L?99999:L,T=w.deficiency,B=w.symbol,A=void 0===B?"":B,I=w.endpoint,R=(I?new URL(I):{}).origin,D=void 0===R?"/":R;(0,c.useEffect)((function(){var e=setInterval((function(){f.refreshFuel()}),2e3);return function(){clearInterval(e)}}),[]);return u?(0,_.jsxs)(Je,{children:[(0,_.jsx)("div",{className:"header",children:(0,_.jsx)(G.default,{title:a("setup.fuel.title"),onClickBack:t})}),(0,_.jsxs)(h.Z,{className:"qr-body",children:[(0,_.jsxs)(h.Z,{mb:6,className:"tip",children:[a("setup.fuel.tipStart").replace("slot",""),(0,_.jsx)("span",{className:"amount",children:"".concat(Z," ").concat(A)}),a("setup.fuel.tipEnd")]}),(0,_.jsx)(h.Z,{fontSize:16,fontWeight:"fontWeightBold",mb:.5,children:a("setup.fuel.addressTitle")}),(0,_.jsxs)(h.Z,{display:"flex",alignItems:"center",children:[(0,_.jsx)(Ge(),{className:"address",children:l.appDid}),(0,_.jsx)(qe.Z,{style:{lineHeight:1},target:"_blank",href:p()(D,"/explorer/accounts/",l.appDid),underline:"hover",children:(0,_.jsx)(He.default,{className:"icon-launch"})})]}),(0,_.jsx)(h.Z,{my:2,children:(0,_.jsx)(te,{color:"primary",onClick:function(){return j(!0)},disabled:!N,children:a("setup.fuel.fuelApp")})}),(0,_.jsx)(E.default,{popup:!0,open:y,action:"fuel",checkFn:m.get,checkTimeout:6e5,socketUrl:m.socketUrl,onSuccess:function(){j(!1)},onClose:function(){return j(!1)},locale:o,messages:{title:a("setup.connect.title"),scan:a("setup.connect.scan"),confirm:a("setup.connect.confirm"),success:a("setup.connect.success")},extraParams:(0,i.Z)((0,i.Z)({amount:T},d),{},{endpoint:I})}),(0,_.jsxs)(h.Z,{display:"flex",color:"text.secondary",children:[(0,_.jsxs)(h.Z,{display:"flex",children:[(0,_.jsxs)(h.Z,{children:[a("setup.fuel.need"),":"]}),(0,_.jsx)(h.Z,{ml:.5,color:"primary.main",fontWeight:"fontWeightBold",children:Z})]}),(0,_.jsxs)(h.Z,{display:"flex",ml:3,children:[(0,_.jsxs)(h.Z,{children:[a("setup.fuel.current"),":"]}),(0,_.jsx)(h.Z,{ml:.5,color:N>0?"error.main":"primary.main",fontWeight:"fontWeightBold",children:O})]})]})]}),(0,_.jsx)(J,{mt:8,children:(0,_.jsx)(te,{disabled:N>0,onClick:function(){return n()},children:a("setup.next")})})]}):(0,_.jsx)(h.Z,{display:"flex",justifyContent:"center",alignItems:"center",width:"100%",children:(0,_.jsx)(b.default,{})})}Ye.defaultProps={onNext:function(){},onPrevious:function(){}};var Xe,Qe,$e,Je=(0,u.default)(Q)(Ue||(Ue=(0,o.Z)(["\n .qr-body {\n width: 580px;\n "," {\n width: 80%;\n }\n display: flex;\n flex-direction: column;\n align-items: center;\n\n .tip {\n font-size: 16px;\n font-weight: bold;\n }\n\n .address {\n width: 100%;\n text-align: center;\n }\n\n .amount {\n color: ",";\n }\n\n .icon-launch {\n font-size: 16px;\n margin-left: 6px;\n line-height: 1;\n color: ",";\n }\n }\n"])),(function(e){return e.theme.breakpoints.down("md")}),(function(e){return e.theme.palette.primary.main}),(function(e){return e.theme.palette.primary.main})),en=t(23426),nn=t(67615);function tn(e){var n=e.onPrevious,t=(0,g.useLocaleContext)().t,r=(0,c.useState)(!1),o=(0,W.Z)(r,2),i=o[0],l=o[1],u=(0,c.useState)("starting"),d=(0,W.Z)(u,2),p=d[0],f=d[1],m=(0,c.useState)(),x=(0,W.Z)(m,2),v=x[0],y=x[1],j=(0,P.y0)().blocklet,w=(0,c.useState)(""),k=(0,W.Z)(w,2),Z=k[0],C=k[1],S=(0,O.tX)("fromLauncher"),E=!["starting","running"].includes(p),N="starting"===p,T={stopped:t("blocklet.start"),starting:t("blocklet.starting"),running:t("blocklet.open")},B=function(){var e=new URL(window.location.href).searchParams.get("redirect");window.location.href=e?new URL(e,Z).href:Z},A=function(){var e=(0,s.Z)((0,a.Z)().mark((function e(){var n,t;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l(!0),f("starting"),e.prev=2,e.next=5,je.Z.post("/blocklet/start",{fromSetup:!0});case 5:l(!1),f("running"),e.next=16;break;case 9:e.prev=9,e.t0=e.catch(2),t=(null===e.t0||void 0===e.t0||null===(n=e.t0.response)||void 0===n?void 0:n.data)||e.t0.message,L.default.error(t),l(!1),f("stopped"),y(t);case 16:case"end":return e.stop()}}),e,null,[[2,9]])})));return function(){return e.apply(this,arguments)}}();(0,c.useEffect)((function(){f(j.status),["starting","running"].includes(j.status)||A()}),[]),(0,c.useEffect)((function(){var e=function(){var e=(0,s.Z)((0,a.Z)().mark((function e(){var n;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,nn.evaluateURLs)(j.site.domainAliases.map((function(e){return(0,be.getAccessUrl)(e.value,O.Bq)})));case 2:n=e.sent,C(n[0].url);case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();Z||e()}),[j,Z]);var I=localStorage.getItem("blocklet-server-url"),R=t(v?"setup.complete.failedTitle":"setup.complete.title"),D=N||!Z;return S&&!D&&(E?A():B()),(0,_.jsx)(rn,{children:(0,_.jsx)(on,{variant:v?"error":"success",title:R,footer:(0,_.jsxs)(J,{children:[E&&(0,_.jsx)(te,{variant:"outlined",disabled:i,onClick:function(){return n()},children:t("setup.previous")}),S?(0,_.jsxs)(cn,{rel:"noreferrer",children:[(0,_.jsx)(b.default,{size:[16,10],style:{marginRight:14}})," ",t("common.redirecting")]}):(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(te,{style:{marginLeft:E?24:0},disabled:i||N,onClick:function(){return E?A():B()},loading:D,children:T[p]||T.stopped}),("running"===p||v)&&!!I&&(0,_.jsx)(h.Z,{width:"100%",mt:2,children:(0,_.jsx)("a",{href:I,target:"_blank",rel:"noopener noreferrer",className:"back-to-server-link",children:t("setup.complete.backToServer")})})]})]})})})}var rn=(0,u.default)(Q)(Xe||(Xe=(0,o.Z)(["\n justify-content: center;\n .icon-success {\n width: 64px;\n height: 64px;\n color: ",";\n }\n .back-to-server-link {\n color: ",";\n }\n"])),(function(e){return e.theme.palette.success.main}),(function(e){return e.theme.palette.primary.main})),on=(0,u.default)(en.default)(Qe||(Qe=(0,o.Z)(["\n && .result-footer {\n height: 120px;\n > div {\n flex-wrap: wrap;\n }\n }\n"])));tn.defaultProps={onPrevious:function(){}};var an,sn,cn=u.default.a($e||($e=(0,o.Z)(["\n display: flex;\n justify-content: center;\n align-items: center;\n height: 36px;\n color: ",";\n"])),(function(e){return e.theme.palette.primary.main}));function ln(){var e,n,t,r=(0,v.Z)((function(e){return e.breakpoints.down("md")})),o=(0,g.useLocaleContext)(),u=o.t,d=o.locale,x=(0,l.s0)(),E=(0,P.y0)(),L=E.meta,T=E.blocklet,B=E.actions,A=localStorage.getItem("blocklet-server-url"),I=(0,O.tX)("fromLauncher");(0,c.useEffect)((function(){B.refreshMeta(),B.refreshBlocklet({showError:!1}),(0,O.NU)()}),[]),(0,c.useEffect)((function(){B.refreshFuel({showError:!1})}),[null===T||void 0===T||null===(e=T.meta)||void 0===e?void 0:e.did]);var R="".concat(k.WELLKNOWN_SERVICE_PATH_PREFIX,"/setup"),D=[{key:"connect",name:u("setup.steps.connect"),path:p()(R,"connect")},{key:"access",name:u("setup.steps.access"),path:p()(R,"access")},{key:"domain",name:u("setup.steps.domain"),path:p()(R,"domain")},function(e){var n,t=null===e||void 0===e||null===(n=e.capabilities)||void 0===n?void 0:n.didSpace;if(!t)return null;if(t===C.BLOCKLET_APP_SPACE_ENDPOINTS.REQUIRED)return{key:"did-space",name:(0,_.jsxs)(_.Fragment,{children:[u("setup.steps.didSpace")," ",(0,_.jsx)(Me,{})]}),path:p()(R,"did-space")};if(t===C.BLOCKLET_APP_SPACE_ENDPOINTS.OPTIONAL)return{key:"did-space",name:(0,_.jsx)(_.Fragment,{children:u("setup.steps.didSpace")}),path:p()(R,"did-space")};throw new Error("capabilities.didSpace cannot take the value ".concat(t))}(L),{key:"config",name:(0,_.jsxs)(_.Fragment,{children:[u("setup.steps.config")," ",(0,O.o2)(L)&&(0,_.jsx)(Me,{})]}),path:p()(R,"config")},null!==L&&void 0!==L&&null!==(n=L.requirements)&&void 0!==n&&null!==(t=n.fuels)&&void 0!==t&&t.length?{key:"fuel",name:(0,_.jsxs)(_.Fragment,{children:[u("setup.steps.fuel")," ",(0,_.jsx)(Me,{})]}),path:p()(R,"fuel")}:null].filter(Boolean),W=D.findIndex((function(e){return"".concat(O.Bq.replace(/\/$/,"")).concat(R,"/").concat(e.key)===window.location.pathname})),z=p()(O.Bq,k.WELLKNOWN_SERVICE_PATH_PREFIX,"/blocklet/logo"),F=function(){var e=(0,s.Z)((0,a.Z)().mark((function e(n){var t,r,o;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=new URL(window.location.href),r=t.search,n?(o=D.findIndex((function(e){return e.key===n})),x(o>-1?"".concat(p()(R,D[o].key)).concat(r):"".concat(p()(R,"complete")).concat(r))):D[W+1]?x("".concat(p()(R,D[W+1].key)).concat(r)):x("".concat(p()(R,"complete")).concat(r)),e.next=4,B.refreshBlocklet();case 4:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),U=function(){x(-1)};function K(e,n){return T?(0,_.jsx)(e,(0,i.Z)((0,i.Z)({blocklet:T},n),{},{onNext:F,onPrevious:U})):(0,_.jsx)(h.Z,{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center",children:(0,_.jsx)(b.default,{})})}var M=function(){window.open(A)},q=r?(0,_.jsx)(j.Z,{onClick:M,width:"32",height:"32",style:{cursor:"pointer"}}):(0,_.jsx)(w.Z,{onClick:M,width:"128",height:"48",style:{marginTop:-1,cursor:"pointer"}}),H=[{key:"agreement",name:u("setup.steps.introduction")},{key:"select-node",name:u("setup.steps.selectNodeDesc")},{key:"install",name:u("setup.steps.launchAppDesc")},{key:"setup",name:u("setup.steps.setupAppDesc"),children:D},{key:"complete",name:u("setup.steps.launched"),path:p()(R,"complete")}];return I||H.splice(1,1),(0,_.jsxs)(dn,{steps:H,children:[(0,_.jsx)(f.Global,{styles:un}),(0,_.jsx)(m.default,{locale:d,blockletMeta:(0,i.Z)((0,i.Z)({},L),{},{title:(0,Z.getDisplayName)((0,i.Z)((0,i.Z)({},T),{},{meta:L}))}),navLogo:q,pcWidth:"80%",style:{height:"100%"},logoUrl:z,useOfSkeleton:!1,headerEndAddons:(0,_.jsx)(y.Z,{SessionContext:S.B3,sessionManagerProps:{disableLogout:!0}}),launchingText:u("setup.title"),children:(0,_.jsxs)(l.Z5,{children:[(0,_.jsx)(l.AW,{path:"connect",element:(0,_.jsx)(N,{onNext:F})}),(0,_.jsx)(l.AW,{path:"domain",element:K(Ce)}),(0,_.jsx)(l.AW,{path:"did-space",element:K(ge)}),(0,_.jsx)(l.AW,{path:"config",element:K(ie)}),(0,_.jsx)(l.AW,{path:"access",element:K(ze)}),(0,_.jsx)(l.AW,{path:"fuel",element:K(Ye)}),(0,_.jsx)(l.AW,{path:"complete",element:K(tn)}),(0,_.jsx)(l.AW,{path:"*",element:(0,_.jsx)(l.Fg,{to:"connect".concat(window.location.search),replace:!0})})]})})]})}var un=(0,f.css)(an||(an=(0,o.Z)(["\n html,\n body,\n #root,\n #root > .wrapper {\n height: 100%;\n }\n"]))),dn=(0,u.default)(x.StepProvider)(sn||(sn=(0,o.Z)([""])))},98465:function(e,n,t){n.Z=f;var r,o=c(t(16380)),i=c(t(24974)),a=t(37574),s=["children"];function c(e){return e&&e.__esModule?e:{default:e}}function l(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 u(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){d(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function d(e,n,t){return(n=function(e){var n=function(e,n){if("object"!==typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"===typeof n?n:String(n)}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function p(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function f(e){var n=e.children,t=p(e,s);return(0,a.jsx)(x,u(u({},t),{},{children:n}))}f.propTypes={children:i.default.any.isRequired};var h,m,x=o.default.div(r||(h=["\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n height: 100%;\n\n .header {\n text-align: center;\n }\n\n .body {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-top: 30px;\n width: 100%;\n min-height: 200px;\n flex: 1;\n\n "," {\n padding: 24px;\n }\n\n "," {\n padding: 0 16px 16px;\n }\n }\n\n .footer {\n display: flex;\n justify-content: center;\n\n "," {\n padding-bottom: 34px;\n }\n\n "," {\n margin-top: auto;\n padding-bottom: 10px;\n }\n }\n"],m||(m=h.slice(0)),r=Object.freeze(Object.defineProperties(h,{raw:{value:Object.freeze(m)}}))),(function(e){return e.theme.breakpoints.up("md")}),(function(e){return e.theme.breakpoints.down("md")}),(function(e){return e.theme.breakpoints.up("sm")}),(function(e){return e.theme.breakpoints.down("md")}))},56229:function(e,n,t){n.Z=b;var r,o=t(30969),i=m(t(16380)),a=m(t(24974)),s=m(t(98623)),c=t(86822),l=m(t(85820)),u=m(t(71847)),d=t(42167),p=m(t(46513)),f=m(t(91077)),h=t(37574);function m(e){return e&&e.__esModule?e:{default:e}}function x(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 v(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?x(Object(t),!0).forEach((function(n){g(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):x(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function g(e,n,t){return(n=function(e){var n=function(e,n){if("object"!==typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"===typeof n?n:String(n)}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function b(e){var n=e.SessionContext,t=e.extraItems,r=e.showLocale,i=e.showHelper,a=e.showSessionManager,m=e.sessionManagerProps,x=(0,o.useContext)(n).session,g=(0,o.useContext)(d.LocaleContext).locale,b=(0,c.useLocation)(),y={"/store":{endpoint:"https://store.blocklet.io"},"/dashboard":{path:"/conceptual/overview"},"/settings/router":{path:"/conceptual/server-architecture"}};return(0,h.jsxs)(w,{children:[t.map((function(e,n){return(0,o.cloneElement)(e,{key:n})})),r&&(0,h.jsx)(u.default,{"data-cy":"locale-addon",icon:p.default,size:23,showText:!1,className:"locale-addon"}),i&&(0,h.jsx)(s.default,{onClick:function(){var e=b.pathname,n={};e.indexOf("/store")>-1?n=y["/store"]:y[e]&&(n=y[e]),window.open("".concat(n.endpoint||"https://developer.blocklet.io/docs","/").concat(g).concat(n.path||""),"_blank")},children:(0,h.jsx)(f.default,{})}),a&&(0,h.jsx)(l.default,v({session:x,size:24,showRole:!0},m))]})}b.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},b.defaultProps={webWalletUrl:"",extraItems:[],showLocale:!0,showSessionManager:!0,showHelper:!0,sessionManagerProps:{}};var y,j,w=i.default.div(r||(y=["\n display: flex;\n justify-content: center;\n align-items: center;\n\n .MuiIconButton-root svg {\n width: 26px;\n height: 26px;\n }\n\n .user-addon {\n .user-avatar {\n width: 28px;\n border-radius: 14px;\n height: auto;\n }\n }\n\n "," {\n > button,\n > a {\n padding-left: 8px;\n padding-right: 8px;\n }\n }\n"],j||(j=y.slice(0)),r=Object.freeze(Object.defineProperties(y,{raw:{value:Object.freeze(j)}}))),(function(e){return e.theme.breakpoints.down("md")}))},19006:function(e,n,t){n.Z=void 0;(r=t(30969))&&r.__esModule;var r,o=t(37574);function i(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 a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){s(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var c=function(e){return(0,o.jsxs)("svg",a(a({},e),{},{children:[(0,o.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M50.152 10.642L31.72 0 13.288 10.642v14.152L1 31.89v21.283l18.432 10.642 12.258-7.077.03.017.03-.017 12.258 7.077L62.44 53.172V31.89l-12.288-7.095V10.642zM60.52 32.997l-12.288-7.094V11.75L31.72 2.217 15.208 11.75v14.153L2.92 32.997v19.067l16.512 9.533L31.69 54.52l.03.017.03-.017 12.258 7.077 16.512-9.533V32.997z",fill:"url(#paint0_linear_615_426)"}),(0,o.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M50.152 24.83L31.72 14.19 13.288 24.831v21.283L31.72 56.756l18.432-10.642V24.831zm-34.944 1.11l16.512-9.534 16.512 9.533v19.067L31.72 54.539l-16.512-9.533V25.939zm13.338-2.894a.96.96 0 0 1 .924-.696h4.5a.96.96 0 0 1 .924.696l.856 2.999 2.12 1.223 3.025-.757a.96.96 0 0 1 1.064.451l2.25 3.898a.96.96 0 0 1-.14 1.148l-2.17 2.24v2.448l2.17 2.24a.96.96 0 0 1 .14 1.148l-2.25 3.899a.96.96 0 0 1-1.065.45l-3.024-.756-2.12 1.223-.856 2.998a.96.96 0 0 1-.923.697H29.47a.96.96 0 0 1-.924-.697L27.69 44.9l-2.12-1.223-3.024.757a.96.96 0 0 1-1.065-.451l-2.25-3.898a.96.96 0 0 1 .141-1.148l2.168-2.241v-2.447l-2.168-2.241a.96.96 0 0 1-.142-1.148l2.251-3.898a.96.96 0 0 1 1.065-.451l3.025.757 2.119-1.223.856-2.999zm.44 4.467a.96.96 0 0 0 .443-.567l.765-2.676h3.053l.764 2.676a.96.96 0 0 0 .443.567l2.792 1.612a.96.96 0 0 0 .713.1l2.7-.676 1.526 2.644-1.935 2a.96.96 0 0 0-.27.668v3.223c0 .25.097.489.27.668l1.935 2-1.527 2.643-2.699-.675a.96.96 0 0 0-.713.1l-2.792 1.612a.96.96 0 0 0-.443.567l-.764 2.676h-3.053l-.765-2.676a.96.96 0 0 0-.443-.567l-2.792-1.612a.96.96 0 0 0-.713-.1l-2.7.675-1.526-2.643 1.935-2a.96.96 0 0 0 .27-.668V33.86a.96.96 0 0 0-.27-.667l-1.935-2 1.527-2.644 2.7.676a.96.96 0 0 0 .712-.1l2.792-1.612zm2.734 14.128a6.168 6.168 0 1 1 0-12.337 6.168 6.168 0 0 1 0 12.337zm4.248-6.169a4.248 4.248 0 1 1-8.496 0 4.248 4.248 0 0 1 8.496 0z",fill:"url(#paint1_linear_615_426)"}),(0,o.jsxs)("defs",{children:[(0,o.jsxs)("linearGradient",{id:"paint0_linear_615_426",x1:"31.72",y1:"95.721",x2:"95.488",y2:"34.325",gradientUnits:"userSpaceOnUse",children:[(0,o.jsx)("stop",{stopColor:"#0FA4B7"}),(0,o.jsx)("stop",{offset:".495",stopColor:"#1DC1C7"}),(0,o.jsx)("stop",{offset:"1",stopColor:"#2BE0D7"})]}),(0,o.jsxs)("linearGradient",{id:"paint1_linear_615_426",x1:"28.437",y1:"99.246",x2:"98.761",y2:"44.937",gradientUnits:"userSpaceOnUse",children:[(0,o.jsx)("stop",{stopColor:"#0FA4B7"}),(0,o.jsx)("stop",{offset:".495",stopColor:"#1DC1C7"}),(0,o.jsx)("stop",{offset:"1",stopColor:"#2BE0D7"})]})]})]}))};c.defaultProps={width:"64",height:"64",viewBox:"0 0 64 64",fill:"none",xmlns:"http://www.w3.org/2000/svg"},c.displayName="server-logo-notext";var l=c;n.Z=l},65063:function(e,n,t){var r=t(43681).default;n.Z=void 0;var o,i=t(30969),a=l(t(16380)),s=l(t(24974)),c=t(37574);function l(e){return e&&e.__esModule?e:{default:e}}function u(e){var n=e.children,t=e.bottom,o=e.onBottomFix,a=(0,i.useRef)(null),s=(0,i.useRef)(null),l=(0,i.useRef)(null),u=(0,i.useRef)(null),d=(0,i.useState)(!1),p=r(d,2),h=p[0],m=p[1];return(0,i.useEffect)((function(){var e,n,t=function(){e||(e=setTimeout((function(){s.current&&(s.current.scrollHeight>a.current.clientHeight-l.current.clientHeight?("fix"!==u.current&&(o("fix"),u.current="fix"),m(!0)):("scroll"!==u.current&&(o("scroll"),u.current="scroll"),m(!1))),e=null}),50))};return window.ResizeObserver?n=new ResizeObserver(t):window.addEventListener("resize",t),n.observe(a.current),n.observe(s.current),function(){n?n.disconnect():window.removeEventListener("resize",t),e&&clearTimeout(e)}}),[o]),(0,c.jsxs)(f,{ref:a,className:"".concat(h?"scroll-mode":""),children:[(0,c.jsx)("div",{className:"compact-context",ref:s,children:n}),(0,c.jsx)("div",{className:"fix-container",ref:l,children:t})]})}var d,p,f=a.default.div(o||(d=["\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n animation: fadein ease 0.5s;\n &.scroll-mode {\n .compact-context {\n flex: 1;\n overflow-y: auto;\n }\n .fix-container {\n flex-shrink: 0;\n }\n }\n\n @keyframes fadein {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n"],p||(p=d.slice(0)),o=Object.freeze(Object.defineProperties(d,{raw:{value:Object.freeze(p)}}))));u.propTypes={children:s.default.any,bottom:s.default.element.isRequired,onBottomFix:s.default.func},u.defaultProps={children:[],onBottomFix:function(){}};var h=u;n.Z=h},722:function(e,n,t){t.r(n),t.d(n,{default:function(){return r.Z}});var r=t(20146)}}]);
2
+ //# sourceMappingURL=906.3058a45b.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/js/906.3058a45b.chunk.js","mappings":"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","sources":["components/setup/connect.js","components/setup/layout.js","components/setup/step-actions.js","components/setup/button.js","../../../node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","components/setup/config.js","components/setup/did-space.js","components/setup/domain.js","components/setup/public-instance.js","components/setup/access-control.js","components/setup/required.js","components/setup/fuel.js","components/setup/complete.js","pages/setup.js","../../ux/lib/launch-blocklet/content-layout.js","../../ux/lib/layout/addon.js","../../../node_modules/@arcblock/icons/lib/ServerLogoNotext.js","../../../node_modules/@blocklet/launcher-layout/lib/compact-layout.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport DidConnect from '@arcblock/did-connect/lib/Connect';\nimport Toast from '@abtnode/ux/lib/toast';\nimport styled from '@emotion/styled';\n\nimport { useSessionContext } from '../../contexts/session';\nimport { getFromQuery, getWebWalletUrl, setSessionToken } from '../../util';\n\nexport default function Connect({ onNext }) {\n const { t, locale } = useLocaleContext();\n const { api, session } = useSessionContext();\n\n const onConnect = async (result, decrypt) => {\n setSessionToken(decrypt(result.sessionToken));\n try {\n await session.refresh();\n onNext();\n } catch (err) {\n Toast.error(err.message);\n }\n };\n\n return (\n <WrapConnect\n popup\n open\n hideCloseButton\n action=\"setup\"\n checkFn={api.get}\n checkTimeout={10 * 60 * 1000}\n socketUrl={api.socketUrl}\n webWalletUrl={getWebWalletUrl()}\n onSuccess={onConnect}\n locale={locale}\n messages={{\n title: t('setup.connect.title'),\n scan: t('setup.connect.scan'),\n confirm: t('setup.connect.confirm'),\n success: t('setup.connect.success'),\n }}\n extraParams={{ setup: true, launchType: getFromQuery('launchType'), nftId: getFromQuery('nftId') }}\n />\n );\n}\n\nConnect.propTypes = {\n onNext: PropTypes.func,\n};\n\nConnect.defaultProps = {\n onNext: () => {},\n};\n\nconst WrapConnect = styled(DidConnect)`\n .action-info-desc {\n padding: 0 72px;\n }\n`;\n","import styled from '@emotion/styled';\n\nimport ContentLayout from '@abtnode/ux/lib/launch-blocklet/content-layout';\n\nconst Container = styled(ContentLayout)`\n display: flex;\n flex-direction: column;\n padding-bottom: 16px;\n ${(props) => props.theme.breakpoints.up('md')} {\n padding-top: 34px;\n padding-bottom: 34px;\n }\n .header {\n width: 100%;\n margin-bottom: 34px;\n ${(props) => props.theme.breakpoints.up('md')} {\n margin-bottom: 64px;\n }\n }\n .container-main {\n position: relative;\n flex: 1;\n width: 100%;\n }\n .container-inner {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n overflow-y: auto;\n }\n`;\n\nexport default Container;\n","import PropTypes from 'prop-types';\nimport styled from '@emotion/styled';\n\nimport Box from '@mui/material/Box';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport Button from '@arcblock/ux/lib/Button';\n\nimport { hasRequiredSteps } from '../../util';\n\nexport default function StepActions({ blocklet, onStartNow, children, disabled }) {\n const { t } = useLocaleContext();\n\n if (!blocklet || hasRequiredSteps(blocklet.meta)) {\n return <Center>{children}</Center>;\n }\n\n return (\n <Between>\n <Button\n className=\"start-now\"\n variant=\"contained\"\n color=\"primary\"\n disabled={disabled}\n onClick={() => onStartNow()}>\n {t('setup.startNow')}\n </Button>\n <Box display=\"flex\" alignItems=\"center\">\n {children}\n </Box>\n </Between>\n );\n}\n\nStepActions.propTypes = {\n blocklet: PropTypes.object,\n onStartNow: PropTypes.func,\n children: PropTypes.any,\n disabled: PropTypes.bool,\n};\nStepActions.defaultProps = {\n blocklet: null,\n onStartNow: () => {},\n children: null,\n disabled: false,\n};\n\nconst Center = styled(Box)`\n padding-top: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n .bottom-button {\n min-width: 200px;\n }\n ${(props) => props.theme.breakpoints.down('md')} {\n .bottom-button {\n min-width: 150px;\n }\n }\n`;\n\nconst Between = styled(Box)`\n padding-bottom: 48px;\n padding-top: 24px;\n margin: 0 auto;\n width: 80%;\n display: flex;\n align-items: center;\n justify-content: space-around;\n .start-now {\n min-width: 140px;\n }\n .bottom-button {\n min-width: 120px;\n }\n ${(props) => props.theme.breakpoints.down('lg')} {\n width: 100%;\n }\n\n ${(props) => props.theme.breakpoints.down('md')} {\n .start-now {\n min-width: 100px;\n }\n .bottom-button {\n min-width: 80px;\n }\n }\n`;\n","import Button from '@arcblock/ux/lib/Button';\n\nexport default function StyledButton({ ...props }) {\n return <Button className=\"bottom-button\" variant=\"contained\" color=\"primary\" {...props} />;\n}\n","export default function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure \" + obj);\n}","import { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport omit from 'lodash/omit';\nimport uniqBy from 'lodash/uniqBy';\nimport flatten from 'lodash/flatten';\n\nimport Box from '@mui/material/Box';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport SchemaForm from '@abtnode/ux/lib/schema-form';\nimport Toast from '@abtnode/ux/lib/toast';\nimport CompactLayout from '@blocklet/launcher-layout/lib/compact-layout';\n\nimport PageHeader from '@blocklet/launcher-layout/lib/page-header';\n\nimport { getAppMissingConfigs, forEachChildSync } from '@blocklet/meta/lib/util';\nimport { BLOCKLET_CONFIGURABLE_KEY } from '@blocklet/meta/lib/constants';\n\nimport { useBlockletContext } from '../../contexts/blocklet';\nimport Layout from './layout';\nimport StepActions from './step-actions';\nimport Button from './button';\n\nexport default function Config({ onNext, onPrevious }) {\n const isMobile = useMediaQuery((theme) => theme.breakpoints.down('md'));\n const { t } = useLocaleContext();\n const [loading, setLoading] = useState(false);\n const [editingItem, setEditingItem] = useState(null);\n const { blocklet, actions } = useBlockletContext();\n\n const selfConfigs = (blocklet.configs || []).filter((x) => !BLOCKLET_CONFIGURABLE_KEY[x.key]);\n const customColor = blocklet.environments.find((x) => x.key === 'BLOCKLET_PASSPORT_COLOR');\n\n const configurableEnvs = [\n {\n key: BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_NAME,\n description: t('blocklet.config.name'),\n value: blocklet.environments.find((x) => x.key === 'BLOCKLET_APP_NAME').value,\n },\n {\n key: BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_DESCRIPTION,\n description: t('blocklet.config.description'),\n value: blocklet.environments.find((x) => x.key === 'BLOCKLET_APP_DESCRIPTION').value,\n },\n {\n key: BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_PASSPORT_COLOR,\n description: t('blocklet.config.passportColor'),\n value: customColor ? customColor.value : 'auto',\n componentType: 'passport',\n componentProps: {\n blocklet,\n },\n },\n ];\n\n const childrenConfigs = [];\n forEachChildSync(blocklet, (b, { ancestors }) => {\n const ancestorDids = ancestors.slice(1).map((x) => x.meta.did);\n\n childrenConfigs.push((b.configs || []).map((x) => ({ ...x, childDid: ancestorDids.concat(b.meta.did) })));\n });\n\n const filteredConfigs = uniqBy(flatten([...selfConfigs, ...childrenConfigs]), 'key').filter((x) => !!x.key);\n\n const sortedConfig = filteredConfigs.sort((a, b) => {\n if (a.required && !b.required) {\n return -1;\n }\n\n if (b.required && !a.required) {\n return 1;\n }\n\n return 0;\n });\n\n const missingRequiredConfigs = getAppMissingConfigs(blocklet).length;\n\n const onSubmitConfig = async (value) => {\n const { childDid, ...config } = editingItem;\n\n const configs = [\n {\n // omit the backend unused configs\n ...omit(config, ['componentType', 'componentProps']),\n value,\n },\n ];\n\n try {\n setLoading(true);\n await actions.configBlocklet({\n configs,\n childDid,\n });\n } catch (err) {\n Toast.error(err.message);\n } finally {\n setLoading(false);\n }\n };\n\n const defaultValue = {};\n\n const schemaList = [...configurableEnvs, ...sortedConfig].map((item) => {\n const { value, ...rest } = item;\n defaultValue[item.key] = value;\n return {\n ...rest,\n };\n });\n\n const clickBack = () => {\n onPrevious();\n };\n\n return (\n <Layout>\n <div className=\"header\" style={{ marginBottom: 16 }}>\n <PageHeader title={t('setup.config.title')} subTitle={t('setup.config.subTitle')} onClickBack={clickBack} />\n </div>\n <div className=\"container-main\">\n <div className=\"container-inner\">\n <CompactLayout\n bottom={\n <StepActions\n mt={8}\n disabled={loading || editingItem}\n blocklet={blocklet}\n onStartNow={() => onNext('complete')}>\n <Box display=\"flex\" alignItems=\"center\">\n <Button\n disabled={loading || missingRequiredConfigs || editingItem}\n onClick={() => {\n actions.refreshFuel({ showError: false });\n onNext();\n }}>\n {t('setup.next')}\n </Button>\n </Box>\n </StepActions>\n }>\n <SchemaForm\n style={{ margin: '0 auto 20px', width: '80%', paddingTop: isMobile ? 0 : 38 }}\n loading={loading}\n schema={schemaList}\n defaultValue={defaultValue}\n onChange={(changeValue, { action, currentItem }) => {\n if (action === 'edit') {\n setEditingItem(currentItem);\n } else if (['cancel', 'confirm'].includes(action)) {\n setEditingItem(null);\n }\n if (action === 'confirm') {\n onSubmitConfig(changeValue[currentItem.key]);\n }\n }}\n />\n </CompactLayout>\n </div>\n </div>\n </Layout>\n );\n}\n\nConfig.propTypes = {\n onNext: PropTypes.func,\n onPrevious: PropTypes.func,\n};\n\nConfig.defaultProps = {\n onNext: () => {},\n onPrevious: () => {},\n};\n","import { useState, useContext, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from '@emotion/styled';\nimport TextField from '@mui/material/TextField';\nimport Box from '@mui/material/Box';\nimport { LocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport Toast from '@abtnode/ux/lib/toast';\nimport PageHeader from '@blocklet/launcher-layout/lib/page-header';\nimport { isEmpty } from 'lodash';\nimport { BLOCKLET_CONFIGURABLE_KEY } from '@blocklet/constant';\nimport axios from 'axios';\nimport urljoin from 'url-join';\nimport DidConnect from '@arcblock/did-connect/lib/Connect';\nimport { Typography } from '@mui/material';\nimport client from '../../libs/client';\nimport Button from './button';\nimport StepActions from './step-actions';\nimport Layout from './layout';\nimport { useBlockletContext } from '../../contexts/blocklet';\n\nfunction DidSpace({ onNext, onPrevious }) {\n const { t, locale } = useContext(LocaleContext);\n const [loadingText] = useState('');\n const [errorMessage, setErrorMessage] = useState(false);\n const { blocklet, meta } = useBlockletContext();\n const [endpoint, setEndpoint] = useState(\n blocklet.environments.find((e) => e.key === BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_SPACE_ENDPOINT)?.value || ''\n );\n const [didSpacesUrl, setDidSpacesUrl] = useState('https://service.didspaces.com/app');\n const { appId: appDid, appName, appDescription } = window.blocklet;\n\n async function saveStorageEndpoint(did, storageEndpoint) {\n await client\n .configBlocklet({\n input: {\n did: [did],\n configs: [\n {\n key: BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_SPACE_ENDPOINT,\n value: storageEndpoint,\n },\n ],\n },\n })\n .then(() => {\n Toast.success(t('setup.didSpace.getStorageAuthorizeSuccessfully', locale));\n })\n .catch((error) => {\n console.error(error);\n Toast.error(error.message);\n });\n }\n const [authorizeConnect, setAuthorizeConnect] = useState({\n open: false,\n action: 'one-click-authorization',\n checkTimeout: 1000 * 300,\n checkFn: axios.create({ baseURL: urljoin(didSpacesUrl, 'space') }).get,\n /**\n *\n * @param {{endpoint: string}} response\n */\n onSuccess: async (response, decrypt) => {\n setEndpoint(decrypt(response.endpoint));\n\n await saveStorageEndpoint(blocklet.meta.did, decrypt(response.endpoint));\n setTimeout(() => {\n setAuthorizeConnect((preValue) => ({\n ...preValue,\n open: false,\n }));\n }, 3000);\n },\n onClose: () => {\n setAuthorizeConnect((preValue) => ({\n ...preValue,\n open: false,\n }));\n },\n });\n\n const handleOnClickAuthorize = async () => {\n if (isEmpty(didSpacesUrl)) {\n Toast.error(t('setup.didSpace.addressCannotEmpty', locale));\n return;\n }\n\n setAuthorizeConnect((preValue) => ({\n ...preValue,\n prefix: urljoin(didSpacesUrl, 'space/api/did'),\n baseUrl: new URL(didSpacesUrl).origin,\n checkFn: axios.create({ baseURL: urljoin(didSpacesUrl, 'space') }).get,\n extraParams: {\n appDid,\n appName,\n appDescription,\n scopes: 'list:object read:object write:object',\n },\n open: true,\n }));\n };\n\n const onDidSpacesUrlChange = (event) => {\n const { value } = event.target;\n if (isEmpty(value)) {\n setErrorMessage(t('setup.didSpace.addressCannotEmpty', locale));\n } else {\n setErrorMessage(null);\n }\n setDidSpacesUrl(value);\n };\n\n useEffect(() => {\n setAuthorizeConnect((preValue) => ({\n ...preValue,\n messages: {\n title: t('setup.didSpace.authorize.title', { appName }),\n scan: t('setup.didSpace.authorize.scan', { appName }),\n confirm: '',\n success: <Typography gutterBottom>{t('setup.didSpace.authorize.success')}</Typography>,\n },\n }));\n }, [appName, locale, t]);\n\n return (\n <Container>\n {/* 标题区 */}\n <div className=\"header\">\n <PageHeader\n title={t('setup.didSpace.title')}\n subTitle={t('setup.didSpace.subTitle')}\n onClickBack={onPrevious}\n />\n </div>\n\n {/* 填写 did storage 的实例地址 */}\n <StorageUrlTextField\n label={t('setup.didSpace.label')}\n value={didSpacesUrl}\n onChange={onDidSpacesUrlChange}\n autoFocus\n size=\"small\"\n error={!!errorMessage}\n helperText={errorMessage}\n InputProps={{\n endAdornment: (\n <Button\n color=\"primary\"\n onClick={handleOnClickAuthorize}\n size=\"small\"\n sx={{\n position: 'absolute',\n right: 0,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n width: '140px',\n height: '100%',\n }}>\n {endpoint ? t('setup.didSpace.reAuthorization') : t('setup.didSpace.goToAuthorization')}\n </Button>\n ),\n }}\n />\n {/* 友情提示区 */}\n {endpoint && (\n <Box color=\"text.secondary\">\n <Box display=\"flex\">\n <Box display=\"inline\">\n {t('setup.didSpace.tips')}: &nbsp;{' '}\n <Box display=\"inline\" color=\"primary.main\" fontWeight=\"fontWeightBold\">\n {t('setup.didSpace.getStorageAuthorizeSuccessfully')}\n </Box>\n </Box>\n </Box>\n </Box>\n )}\n\n {meta?.capabilities?.didSpace === 'required' && (\n <StepActions mt={8}>\n <Button\n loading={!!loadingText}\n disabled={errorMessage || !!loadingText || !didSpacesUrl || !endpoint}\n onClick={() => onNext()}>\n {loadingText || t('setup.next')}\n </Button>\n </StepActions>\n )}\n {meta?.capabilities?.didSpace === 'optional' && (\n <StepActions mt={8} disabled={!!loadingText} blocklet={blocklet} onStartNow={() => onNext('complete')}>\n <Button loading={!!loadingText} disabled={!!loadingText} onClick={() => onNext()}>\n {loadingText || (endpoint ? t('setup.continue') : t('setup.skip'))}\n </Button>\n </StepActions>\n )}\n {/* 获得endpoint */}\n <DidConnect\n prefix={authorizeConnect.prefix}\n open={authorizeConnect.open}\n popup\n action={authorizeConnect.action}\n baseUrl={authorizeConnect.baseUrl}\n checkFn={authorizeConnect.checkFn}\n onSuccess={authorizeConnect.onSuccess}\n onClose={authorizeConnect.onClose}\n checkTimeout={authorizeConnect.checkTimeout}\n extraParams={authorizeConnect.extraParams}\n messages={authorizeConnect.messages}\n locale={locale}\n />\n </Container>\n );\n}\n\nDidSpace.propTypes = {\n onNext: PropTypes.func,\n onPrevious: PropTypes.func,\n};\nDidSpace.defaultProps = {\n onNext: () => {},\n onPrevious: () => {},\n};\n\nconst Container = styled(Layout)`\n height: 100%;\n overflow-y: auto;\n`;\n\nconst StorageUrlTextField = styled(TextField)`\n height: 56px;\n width: 580px;\n ${(props) => props.theme.breakpoints.down('md')} {\n width: 75%;\n }\n input.MuiInputBase-input {\n width: calc(100% - 144px);\n }\n`;\n\nexport default DidSpace;\n","import { useState, useContext, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from '@emotion/styled';\n\nimport TextField from '@mui/material/TextField';\nimport Box from '@mui/material/Box';\nimport { LocaleContext } from '@arcblock/ux/lib/Locale/context';\n\nimport Toast from '@abtnode/ux/lib/toast';\nimport PageHeader from '@blocklet/launcher-layout/lib/page-header';\nimport { validateDomain, sleep } from '@abtnode/ux/lib/util';\nimport { BLOCKLET_CONFIGURABLE_KEY } from '@blocklet/meta/lib/constants';\nimport Dialog from '@arcblock/ux/lib/Dialog';\nimport { replaceSlotToIp } from '@blocklet/meta/lib/util';\n\nimport { useBlockletContext } from '../../contexts/blocklet';\nimport api from '../../libs/api';\nimport client from '../../libs/client';\nimport Layout from './layout';\nimport StepActions from './step-actions';\nimport Button from './button';\n\nconst isCertInProgress = (cert) => ['waiting', 'creating', 'renewaling'].includes(cert?.status);\n\nconst waitForCert = (domain) =>\n new Promise((resolve, reject) => {\n const timer = setInterval(async () => {\n try {\n const { cert } = await client.findCertificateByDomain({ input: { domain } });\n\n if (cert?.status === 'generated') {\n clearInterval(timer);\n resolve(true);\n return;\n }\n\n if (!isCertInProgress(cert)) {\n clearInterval(timer);\n resolve(false);\n }\n } catch (err) {\n clearInterval(timer);\n reject(err);\n }\n }, 1000);\n });\n\nconst addCert = async (domain) => {\n await client.issueLetsEncryptCert({ input: { domain } });\n return waitForCert(domain);\n};\n\nexport default function Domain({ onNext, onPrevious }) {\n const { t, locale } = useContext(LocaleContext);\n const [loadingText, setLoadingText] = useState('');\n const [error, setError] = useState(false);\n const { blocklet } = useBlockletContext();\n const [ip, setIp] = useState('');\n const [showCertFailed, setShowCertFailed] = useState(false);\n\n const site = blocklet?.site || {};\n const domains = site.domainAliases || [];\n const defaultCustomDomain = domains.filter((x) => !x.isProtected)[0]?.value || '';\n const systemDomains = domains.filter((x) => x.isProtected).map((x) => replaceSlotToIp(x.value, ip));\n const [domain, setDomain] = useState(defaultCustomDomain);\n\n const addDomain = async (secure) => {\n setLoadingText(t('setup.domain.addingDomain'));\n await sleep(1500);\n if (!domains.some((x) => x.value === domain)) {\n await client.addDomainAlias({ input: { id: blocklet.site.id, domainAlias: domain } });\n await client.takeRoutingSnapshot({\n input: { dryRun: false, message: `add domain ${domain} from blocklet services` },\n });\n }\n await client.configBlocklet({\n input: {\n did: [blocklet.meta.did],\n configs: [{ key: BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_URL, value: `http${secure ? 's' : ''}://${domain}` }],\n },\n });\n onNext();\n };\n\n const submitDomain = async () => {\n if (loadingText) {\n return;\n }\n\n try {\n setLoadingText(t('setup.domain.checkingResolvable'));\n await sleep(1500);\n const {\n data: { address },\n } = await api.get(`/dns-resolve?hostname=${domain}`);\n if (!address) {\n throw new Error(t('setup.domain.cannotResolve', { domain }));\n }\n\n if (address !== ip) {\n throw new Error(t('setup.domain.resolvedAddressError', { domain, curDomain: window.location.hostname }));\n }\n\n setLoadingText(t('setup.domain.addingCert'));\n let generated = false;\n const { cert } = await client.findCertificateByDomain({ input: { domain } });\n if (!cert) {\n generated = await addCert(domain, locale);\n } else if (cert.status === 'generated') {\n generated = true;\n } else if (['waiting', 'creating', 'renewaling'].includes(cert.status)) {\n generated = await waitForCert(domain, locale);\n } else {\n generated = await addCert(domain, locale);\n }\n\n if (generated) {\n addDomain(generated);\n } else {\n setShowCertFailed(true);\n }\n } catch (err) {\n Toast.error(err.message);\n setLoadingText('');\n }\n };\n\n useEffect(() => {\n api\n .get(`/dns-resolve?hostname=${window.location.hostname}`)\n .then(({ data }) => {\n setIp(data.address || '');\n })\n .catch((err) => {\n console.error(err.message);\n });\n }, []);\n\n return (\n <Container>\n <div className=\"header\">\n <PageHeader title={t('setup.domain.title')} subTitle={t('setup.domain.subTitle')} onClickBack={onPrevious} />\n </div>\n {showCertFailed && (\n <Dialog\n PaperProps={{\n style: {\n minHeight: 'auto',\n },\n }}\n open={showCertFailed}\n showCloseButton={false}\n title={t('setup.domain.genCertFailed')}\n actions={\n <>\n <Button\n color=\"reverse\"\n variant=\"text\"\n onClick={() => {\n setLoadingText('');\n setShowCertFailed(false);\n }}>\n {t('setup.cancel')}\n </Button>\n <Button\n color=\"primary\"\n variant=\"text\"\n onClick={() => {\n setShowCertFailed(false);\n addDomain(false);\n }}>\n {t('setup.confirm')}\n </Button>\n </>\n }>\n {t('setup.domain.certFailedDesc')}\n </Dialog>\n )}\n <Box className=\"form\">\n <Box>\n <Box mb={1} color=\"text.primary\" fontWeight=\"fontWeightBold\">\n <Box display=\"inline\">{t('setup.domain.skipStart')}</Box>\n <Button\n variant=\"text\"\n size=\"small\"\n disabled={!!loadingText}\n onClick={() => onNext()}\n style={{ paddingTop: 0 }}>\n <span style={{ textDecoration: 'underline' }}>{t('setup.domain.skip')}</span>\n </Button>\n <Box display=\"inline\">{t('setup.domain.skipEnd')}</Box>\n </Box>\n {systemDomains.map((x) => (\n <Box component=\"li\" fontWeight=\"fontWeightBold\" color=\"primary.main\">\n {x}\n </Box>\n ))}\n <Box mt={1} fontWeight=\"fontWeightBold\" color=\"text.secondary\">\n {t('setup.domain.certTip')}\n </Box>\n <Box />\n </Box>\n\n <Box mt={4} fontWeight=\"fontWeightBold\">\n {t('setup.domain.subTitle')}\n </Box>\n <TextField\n style={{ marginTop: 16, minHeight: 64 }}\n label={t('setup.domain.label')}\n fullWidth\n value={domain}\n onChange={(e) => {\n const { value } = e.target;\n setDomain(value);\n const errMessage = validateDomain(value, locale);\n setError(errMessage);\n }}\n autoFocus\n size=\"small\"\n variant=\"outlined\"\n error={!!error}\n helperText={error}\n />\n\n {domain && (\n <Box color=\"text.secondary\">\n <Box display=\"flex\">\n {t('setup.domain.tipStart')}\n <Box mx={0.5} color=\"primary.main\" fontWeight=\"fontWeightBold\">\n {domain}\n </Box>\n {t('setup.domain.tipEnd')}\n </Box>\n <Box component=\"li\">\n {t('setup.domain.recordType')}:{' '}\n <Box display=\"inline\" fontWeight=\"fontWeightBold\" color=\"primary.main\">\n A\n </Box>\n </Box>\n <Box component=\"li\">\n {t('setup.domain.recordValue')}:{' '}\n <Box display=\"inline\" fontWeight=\"fontWeightBold\" color=\"primary.main\">\n {ip}\n </Box>\n </Box>\n </Box>\n )}\n </Box>\n <StepActions mt={8} disabled={!!loadingText} blocklet={blocklet} onStartNow={() => onNext('complete')}>\n {!domain ? (\n <Button variant=\"outlined\" disabled={!!loadingText} onClick={() => onNext()}>\n {t('setup.skip')}\n </Button>\n ) : (\n <Button loading={!!loadingText} disabled={error || !!loadingText || !domain} onClick={() => submitDomain()}>\n {loadingText || t('setup.next')}\n </Button>\n )}\n </StepActions>\n </Container>\n );\n}\n\nDomain.propTypes = {\n onNext: PropTypes.func,\n onPrevious: PropTypes.func,\n};\nDomain.defaultProps = {\n onNext: () => {},\n onPrevious: () => {},\n};\n\nconst Container = styled(Layout)`\n height: 100%;\n overflow-y: auto;\n .form {\n width: 580px;\n word-break: break-all;\n ${(props) => props.theme.breakpoints.down('md')} {\n width: 80%;\n }\n }\n`;\n","import { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\n\nimport InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';\nimport Tooltip from '@mui/material/Tooltip';\nimport IconButton from '@mui/material/IconButton';\n\nfunction PublicInstance({ children }) {\n const { t } = useLocaleContext();\n return (\n <div style={{ display: 'flex', alignItems: 'center' }}>\n {children}\n <Tooltip title={t('blocklet.config.access.publicInstanceTip')}>\n <IconButton>\n <InfoOutlinedIcon fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n </div>\n );\n}\nPublicInstance.propTypes = {\n children: PropTypes.any.isRequired,\n};\n\nexport default memo(PublicInstance);\n","/* eslint-disable prettier/prettier */\nimport { useState, useEffect } from 'react';\nimport styled from '@emotion/styled';\nimport PropTypes from 'prop-types';\n\nimport Radio from '@mui/material/Radio';\nimport RadioGroup from '@mui/material/RadioGroup';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport FormControl from '@mui/material/FormControl';\nimport Box from '@mui/material/Box';\nimport Checkbox from '@mui/material/Checkbox';\nimport useTheme from '@mui/material/styles/useTheme';\n\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport Toast from '@abtnode/ux/lib/toast';\nimport { WHO_CAN_ACCESS } from '@abtnode/constant';\n\nimport { getWhoCanAccess } from '@blocklet/meta/lib/util';\n\nimport PageHeader from '@blocklet/launcher-layout/lib/page-header';\nimport { sleep } from '@abtnode/ux/lib/util';\nimport AccessConfig from '@abtnode/ux/lib/who-can-access/config';\n\nimport { useBlockletContext } from '../../contexts/blocklet';\nimport Layout from './layout';\nimport StepActions from './step-actions';\nimport Button from './button';\nimport PublicInstance from './public-instance';\n\nexport default function AccessControl({ onNext }) {\n const theme = useTheme();\n const { t, locale } = useLocaleContext();\n const [loading, setLoading] = useState(false);\n const [value, setValue] = useState('');\n const [publicToStore, setPublicToStore] = useState(false);\n const { blocklet, actions, getPublicInstance } = useBlockletContext();\n\n useEffect(() => {\n setValue(getWhoCanAccess(blocklet));\n setPublicToStore(getPublicInstance(blocklet));\n }, [blocklet]); // eslint-disable-line\n\n const submit = async (whoCanAccess) => {\n try {\n setLoading(true);\n await sleep(800);\n await actions.configWhoCanAccess(whoCanAccess);\n setLoading(false);\n } catch (err) {\n setLoading(false);\n Toast.error(err.message);\n }\n };\n\n const handleChange = async (event) => {\n if (loading) {\n return;\n }\n setValue(event.target.value);\n await submit(event.target.value);\n };\n const handleCheckBox = async (event) => {\n const isPublic = event.target.checked;\n try {\n setLoading(true);\n await actions.configPublicToStore(isPublic);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n Toast.error(error.message);\n }\n };\n\n const iconStyle = {\n marginRight: 4,\n fontSize: 18,\n verticalAlign: 'text-bottom',\n color: theme.palette.text.secondary,\n };\n\n return (\n <Container>\n <div className=\"header\">\n <PageHeader title={t('blocklet.config.access.description')} />\n </div>\n\n <FormControl component=\"fieldset\">\n <RadioGroup name=\"inherit\" value={value} onChange={handleChange}>\n {AccessConfig.map((rule) => {\n return (\n <div key={rule.value} style={{ marginBottom: 16 }}>\n <FormControlLabel\n value={rule.value}\n control={<Radio color=\"primary\" />}\n label={\n <span>\n <rule.icon style={iconStyle} />\n {rule.title[locale]}\n </span>\n }\n />\n <Box className=\"tip\">\n {rule.description[locale]}\n {rule.value === WHO_CAN_ACCESS.ALL && value === WHO_CAN_ACCESS.ALL && blocklet.source === 'registry' && (\n <PublicInstance>\n <FormControlLabel\n style={{ marginRight: 0 }}\n value={rule.value}\n control={<Checkbox size=\"small\" />}\n label={<span>{t('blocklet.config.access.publicToStore')}</span>}\n onChange={handleCheckBox}\n checked={publicToStore}\n disabled={loading}\n />\n </PublicInstance>\n )}\n </Box>\n </div>\n );\n })}\n </RadioGroup>\n </FormControl>\n\n <StepActions mt={8} disabled={loading} blocklet={blocklet} onStartNow={() => onNext('complete')}>\n <Box display=\"flex\" alignItems=\"center\">\n <Button loading={loading} disabled={loading} onClick={() => onNext()}>\n {t('setup.continue')}\n </Button>\n </Box>\n </StepActions>\n </Container>\n );\n}\n\nAccessControl.propTypes = {\n onNext: PropTypes.func,\n};\n\nAccessControl.defaultProps = {\n onNext: () => {},\n};\n\nconst Container = styled(Layout)`\n height: 100%;\n overflow-y: auto;\n .header {\n width: 100%;\n }\n .tip {\n margin-left: 32px;\n font-size: 12px;\n margin-top: -8px;\n color: ${(props) => props.theme.palette.text.secondary};\n }\n`;\n","import styled from '@emotion/styled';\n\nconst Required = styled.span`\n color: ${(props) => props.theme.palette.error.main};\n &::before {\n content: '*';\n }\n`;\n\nexport default Required;\n","import { useState, useContext, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from '@emotion/styled';\nimport joinUrl from 'url-join';\n\nimport Box from '@mui/material/Box';\nimport Link from '@mui/material/Link';\nimport LaunchIcon from '@mui/icons-material/Launch';\nimport { LocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport DidConnect from '@arcblock/did-connect/lib/Connect';\nimport DidAddress from '@arcblock/did-connect/lib/Address';\nimport Spinner from '@arcblock/ux/lib/Spinner';\n\nimport PageHeader from '@blocklet/launcher-layout/lib/page-header';\n\nimport { useBlockletContext } from '../../contexts/blocklet';\nimport { useSessionContext } from '../../contexts/session';\nimport Layout from './layout';\nimport StepActions from './step-actions';\nimport Button from './button';\n\nexport default function Fuel({ onNext, onPrevious }) {\n const { locale, t } = useContext(LocaleContext);\n const { blocklet, gas, tokenInfo, actions } = useBlockletContext();\n const { api } = useSessionContext();\n const [open, setOpen] = useState(false);\n const { need = '', current = '', owe = 99999, deficiency, symbol = '', endpoint } = gas || {};\n const { origin: explorer = '/' } = endpoint ? new URL(endpoint) : {};\n\n useEffect(() => {\n const timer = setInterval(() => {\n actions.refreshFuel();\n }, 2000);\n\n return () => {\n clearInterval(timer);\n };\n }, []); // eslint-disable-line\n\n const onSuccess = () => {\n setOpen(false);\n };\n\n if (!gas) {\n return (\n <Box display=\"flex\" justifyContent=\"center\" alignItems=\"center\" width=\"100%\">\n <Spinner />\n </Box>\n );\n }\n\n return (\n <Container>\n <div className=\"header\">\n <PageHeader title={t('setup.fuel.title')} onClickBack={onPrevious} />\n </div>\n\n <Box className=\"qr-body\">\n <Box mb={6} className=\"tip\">\n {t('setup.fuel.tipStart').replace('slot', '')}\n <span className=\"amount\">{`${need} ${symbol}`}</span>\n {t('setup.fuel.tipEnd')}\n </Box>\n <Box fontSize={16} fontWeight=\"fontWeightBold\" mb={0.5}>\n {t('setup.fuel.addressTitle')}\n </Box>\n <Box display=\"flex\" alignItems=\"center\">\n <DidAddress className=\"address\">{blocklet.appDid}</DidAddress>\n <Link\n style={{ lineHeight: 1 }}\n target=\"_blank\"\n href={joinUrl(explorer, '/explorer/accounts/', blocklet.appDid)}\n underline=\"hover\">\n <LaunchIcon className=\"icon-launch\" />\n </Link>\n </Box>\n <Box my={2}>\n <Button color=\"primary\" onClick={() => setOpen(true)} disabled={!owe}>\n {t('setup.fuel.fuelApp')}\n </Button>\n </Box>\n <DidConnect\n popup\n open={open}\n action=\"fuel\"\n checkFn={api.get}\n checkTimeout={10 * 60 * 1000}\n socketUrl={api.socketUrl}\n onSuccess={onSuccess}\n onClose={() => setOpen(false)}\n locale={locale}\n messages={{\n title: t('setup.connect.title'),\n scan: t('setup.connect.scan'),\n confirm: t('setup.connect.confirm'),\n success: t('setup.connect.success'),\n }}\n extraParams={{ amount: deficiency, ...tokenInfo, endpoint }}\n />\n\n <Box display=\"flex\" color=\"text.secondary\">\n <Box display=\"flex\">\n <Box>{t('setup.fuel.need')}:</Box>\n <Box ml={0.5} color=\"primary.main\" fontWeight=\"fontWeightBold\">\n {need}\n </Box>\n </Box>\n <Box display=\"flex\" ml={3}>\n <Box>{t('setup.fuel.current')}:</Box>\n <Box ml={0.5} color={owe > 0 ? 'error.main' : 'primary.main'} fontWeight=\"fontWeightBold\">\n {current}\n </Box>\n </Box>\n </Box>\n </Box>\n\n <StepActions mt={8}>\n <Button disabled={owe > 0} onClick={() => onNext()}>\n {t('setup.next')}\n </Button>\n </StepActions>\n </Container>\n );\n}\n\nFuel.propTypes = {\n onNext: PropTypes.func,\n onPrevious: PropTypes.func,\n};\nFuel.defaultProps = {\n onNext: () => {},\n onPrevious: () => {},\n};\n\nconst Container = styled(Layout)`\n .qr-body {\n width: 580px;\n ${(props) => props.theme.breakpoints.down('md')} {\n width: 80%;\n }\n display: flex;\n flex-direction: column;\n align-items: center;\n\n .tip {\n font-size: 16px;\n font-weight: bold;\n }\n\n .address {\n width: 100%;\n text-align: center;\n }\n\n .amount {\n color: ${(props) => props.theme.palette.primary.main};\n }\n\n .icon-launch {\n font-size: 16px;\n margin-left: 6px;\n line-height: 1;\n color: ${(props) => props.theme.palette.primary.main};\n }\n }\n`;\n","import { useState, useEffect } from 'react';\nimport styled from '@emotion/styled';\nimport PropTypes from 'prop-types';\n\nimport ResultMessage from '@blocklet/launcher-layout/lib/launch-result-message';\n\nimport Box from '@mui/material/Box';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport Toast from '@abtnode/ux/lib/toast';\nimport { getAccessUrl } from '@abtnode/ux/lib/util';\nimport { evaluateURLs } from '@abtnode/util/lib/url-evaluation';\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport api from '../../libs/api';\nimport Layout from './layout';\nimport StepActions from './step-actions';\nimport Button from './button';\nimport { useBlockletContext } from '../../contexts/blocklet';\nimport { getFromQuery, PREFIX } from '../../util';\n\nexport default function Complete({ onPrevious }) {\n const { t } = useLocaleContext();\n const [loading, setLoading] = useState(false);\n const [status, setStatus] = useState('starting'); // stopped, starting, running\n const [startupError, setStartupError] = useState();\n const { blocklet } = useBlockletContext();\n const [recommendedURL, setRecommendedURL] = useState('');\n const fromLauncher = getFromQuery('fromLauncher');\n\n const isStopped = !['starting', 'running'].includes(status);\n const isStarting = status === 'starting';\n const statusText = {\n stopped: t('blocklet.start'),\n starting: t('blocklet.starting'),\n running: t('blocklet.open'),\n };\n\n const visitBlocklet = () => {\n const url = new URL(window.location.href);\n const redirect = url.searchParams.get('redirect');\n if (redirect) {\n window.location.href = new URL(redirect, recommendedURL).href;\n } else {\n window.location.href = recommendedURL;\n }\n };\n\n const startBlocklet = async () => {\n setLoading(true);\n setStatus('starting');\n try {\n await api.post('/blocklet/start', {\n fromSetup: true,\n });\n setLoading(false);\n setStatus('running');\n } catch (err) {\n const errMsg = err?.response?.data || err.message;\n Toast.error(errMsg);\n setLoading(false);\n setStatus('stopped');\n setStartupError(errMsg);\n }\n };\n\n useEffect(() => {\n setStatus(blocklet.status);\n if (!['starting', 'running'].includes(blocklet.status)) {\n startBlocklet();\n }\n }, []); // eslint-disable-line\n\n useEffect(() => {\n const _setRecommendedURL = async () => {\n const results = await evaluateURLs(blocklet.site.domainAliases.map((item) => getAccessUrl(item.value, PREFIX)));\n setRecommendedURL(results[0].url);\n };\n if (!recommendedURL) {\n _setRecommendedURL();\n }\n }, [blocklet, recommendedURL]);\n\n const serverUrl = localStorage.getItem('blocklet-server-url');\n const title = startupError ? t('setup.complete.failedTitle') : t('setup.complete.title');\n\n const isButtonLoading = isStarting || !recommendedURL;\n\n if (fromLauncher && !isButtonLoading) {\n if (isStopped) {\n startBlocklet();\n } else {\n visitBlocklet();\n }\n }\n\n return (\n <Container>\n <StyledResultMessage\n variant={startupError ? 'error' : 'success'}\n title={title}\n footer={\n <StepActions>\n {isStopped && (\n <Button variant=\"outlined\" disabled={loading} onClick={() => onPrevious()}>\n {t('setup.previous')}\n </Button>\n )}\n\n {fromLauncher ? (\n <LinkEle rel=\"noreferrer\">\n <Spinner size={[16, 10]} style={{ marginRight: 14 }} /> {t('common.redirecting')}\n </LinkEle>\n ) : (\n <>\n <Button\n style={{ marginLeft: isStopped ? 24 : 0 }}\n disabled={loading || isStarting}\n onClick={() => (isStopped ? startBlocklet() : visitBlocklet())}\n loading={isButtonLoading}>\n {statusText[status] || statusText.stopped}\n </Button>\n\n {(status === 'running' || startupError) && !!serverUrl && (\n <Box width=\"100%\" mt={2}>\n <a href={serverUrl} target=\"_blank\" rel=\"noopener noreferrer\" className=\"back-to-server-link\">\n {t('setup.complete.backToServer')}\n </a>\n </Box>\n )}\n </>\n )}\n </StepActions>\n }\n />\n </Container>\n );\n}\n\nconst Container = styled(Layout)`\n justify-content: center;\n .icon-success {\n width: 64px;\n height: 64px;\n color: ${(props) => props.theme.palette.success.main};\n }\n .back-to-server-link {\n color: ${(props) => props.theme.palette.primary.main};\n }\n`;\n\nconst StyledResultMessage = styled(ResultMessage)`\n && .result-footer {\n height: 120px;\n > div {\n flex-wrap: wrap;\n }\n }\n`;\n\nComplete.propTypes = {\n onPrevious: PropTypes.func,\n};\n\nComplete.defaultProps = {\n onPrevious: () => {},\n};\n\nconst LinkEle = styled.a`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 36px;\n color: ${(props) => props.theme.palette.primary.main};\n`;\n","import { useEffect } from 'react';\nimport { Routes, Route, Navigate, useNavigate } from 'react-router-dom';\nimport styled from '@emotion/styled';\nimport joinUrl from 'url-join';\nimport { Global, css } from '@emotion/react';\n\nimport Box from '@mui/material/Box';\nimport Layout from '@blocklet/launcher-layout';\nimport { StepProvider } from '@blocklet/launcher-layout/lib/context/step';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport HeaderAddon from '@abtnode/ux/lib/layout/addon';\nimport ServerLogoNotext from '@arcblock/icons/lib/ServerLogoNotext';\nimport ServerLogo from '@arcblock/icons/lib/ServerLogo';\n\nimport { WELLKNOWN_SERVICE_PATH_PREFIX } from '@abtnode/constant';\nimport { getDisplayName } from '@blocklet/meta/lib/util';\n\nimport { BLOCKLET_APP_SPACE_ENDPOINTS } from '@blocklet/constant';\nimport { hasRequiredEnvironments, saveServerUrl, PREFIX, getFromQuery } from '../util';\nimport { useBlockletContext } from '../contexts/blocklet';\nimport { SessionContext } from '../contexts/session';\nimport Connect from '../components/setup/connect';\nimport Config from '../components/setup/config';\nimport DidSpace from '../components/setup/did-space';\nimport Domain from '../components/setup/domain';\nimport AccessControl from '../components/setup/access-control';\nimport Required from '../components/setup/required';\nimport Fuel from '../components/setup/fuel';\nimport Complete from '../components/setup/complete';\n\nexport default function BlockletSetup() {\n const isMobile = useMediaQuery((theme) => theme.breakpoints.down('md'));\n const { t, locale } = useLocaleContext();\n const navigate = useNavigate();\n const { meta, blocklet, actions } = useBlockletContext();\n const serverUrl = localStorage.getItem('blocklet-server-url');\n\n const fromLauncher = getFromQuery('fromLauncher');\n\n useEffect(() => {\n actions.refreshMeta();\n actions.refreshBlocklet({ showError: false });\n // setup 流程刚开始时, 保存 serverUrl 到 localStorage, 方便在 setup 流程结束后返回 server\n saveServerUrl();\n }, []); // eslint-disable-line\n\n useEffect(() => {\n actions.refreshFuel({ showError: false });\n }, [blocklet?.meta?.did]); // eslint-disable-line\n\n const basePath = `${WELLKNOWN_SERVICE_PATH_PREFIX}/setup`;\n\n const getDidSpacesStep = (blockletMeta) => {\n /**\n * @type {'required' | 'optional' | undefined}\n */\n const didSpaceAbility = blockletMeta?.capabilities?.didSpace;\n\n if (!didSpaceAbility) {\n return null;\n }\n\n if (didSpaceAbility === BLOCKLET_APP_SPACE_ENDPOINTS.REQUIRED) {\n return {\n key: 'did-space',\n name: (\n <>\n {t('setup.steps.didSpace')} <Required />\n </>\n ),\n path: joinUrl(basePath, 'did-space'),\n };\n }\n\n if (didSpaceAbility === BLOCKLET_APP_SPACE_ENDPOINTS.OPTIONAL) {\n return {\n key: 'did-space',\n name: <>{t('setup.steps.didSpace')}</>,\n path: joinUrl(basePath, 'did-space'),\n };\n }\n\n throw new Error(`capabilities.didSpace cannot take the value ${didSpaceAbility}`);\n };\n\n const steps = [\n {\n key: 'connect',\n name: t('setup.steps.connect'),\n path: joinUrl(basePath, 'connect'),\n },\n {\n key: 'access',\n name: t('setup.steps.access'),\n path: joinUrl(basePath, 'access'),\n },\n {\n key: 'domain',\n name: t('setup.steps.domain'),\n path: joinUrl(basePath, 'domain'),\n },\n getDidSpacesStep(meta),\n {\n key: 'config',\n name: (\n <>\n {t('setup.steps.config')} {hasRequiredEnvironments(meta) && <Required />}\n </>\n ),\n path: joinUrl(basePath, 'config'),\n },\n meta?.requirements?.fuels?.length\n ? {\n key: 'fuel',\n name: (\n <>\n {t('setup.steps.fuel')} <Required />\n </>\n ),\n path: joinUrl(basePath, 'fuel'),\n }\n : null,\n ].filter(Boolean);\n\n const stepIndex = steps.findIndex(\n (x) => `${PREFIX.replace(/\\/$/, '')}${basePath}/${x.key}` === window.location.pathname\n );\n\n const logoUrl = joinUrl(PREFIX, WELLKNOWN_SERVICE_PATH_PREFIX, '/blocklet/logo');\n\n const onNext = async (key) => {\n const { search } = new URL(window.location.href);\n if (!key) {\n if (steps[stepIndex + 1]) {\n navigate(`${joinUrl(basePath, steps[stepIndex + 1].key)}${search}`);\n } else {\n navigate(`${joinUrl(basePath, 'complete')}${search}`);\n }\n } else {\n const index = steps.findIndex((x) => x.key === key);\n if (index > -1) {\n navigate(`${joinUrl(basePath, steps[index].key)}${search}`);\n } else {\n navigate(`${joinUrl(basePath, 'complete')}${search}`);\n }\n }\n\n await actions.refreshBlocklet();\n };\n\n const onPrevious = () => {\n navigate(-1);\n };\n\n function withSetup(Component, props) {\n if (!blocklet) {\n return (\n <Box width=\"100%\" height=\"100%\" display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Spinner />\n </Box>\n );\n }\n\n return <Component blocklet={blocklet} {...props} onNext={onNext} onPrevious={onPrevious} />;\n }\n\n const clickLogo = () => {\n window.open(serverUrl);\n };\n\n const logo = !isMobile ? (\n <ServerLogo onClick={clickLogo} width=\"128\" height=\"48\" style={{ marginTop: -1, cursor: 'pointer' }} />\n ) : (\n <ServerLogoNotext onClick={clickLogo} width=\"32\" height=\"32\" style={{ cursor: 'pointer' }} />\n );\n\n const totalSteps = [\n {\n key: 'agreement',\n name: t('setup.steps.introduction'),\n },\n {\n key: 'select-node',\n name: t('setup.steps.selectNodeDesc'),\n },\n {\n key: 'install',\n name: t('setup.steps.launchAppDesc'),\n },\n {\n key: 'setup',\n name: t('setup.steps.setupAppDesc'),\n children: steps,\n },\n {\n key: 'complete',\n name: t('setup.steps.launched'),\n path: joinUrl(basePath, 'complete'),\n },\n ];\n\n if (!fromLauncher) {\n totalSteps.splice(1, 1);\n }\n\n return (\n <StyledStepProvider steps={totalSteps}>\n <Global styles={launcherGlobalStyle} />\n <Layout\n locale={locale}\n blockletMeta={{ ...meta, title: getDisplayName({ ...blocklet, meta }) }}\n navLogo={logo}\n pcWidth=\"80%\"\n style={{ height: '100%' }}\n logoUrl={logoUrl}\n useOfSkeleton={false}\n headerEndAddons={<HeaderAddon SessionContext={SessionContext} sessionManagerProps={{ disableLogout: true }} />}\n launchingText={t('setup.title')}>\n <Routes>\n <Route path=\"connect\" element={<Connect onNext={onNext} />} />\n <Route path=\"domain\" element={withSetup(Domain)} />\n <Route path=\"did-space\" element={withSetup(DidSpace)} />\n <Route path=\"config\" element={withSetup(Config)} />\n <Route path=\"access\" element={withSetup(AccessControl)} />\n <Route path=\"fuel\" element={withSetup(Fuel)} />\n <Route path=\"complete\" element={withSetup(Complete)} />\n <Route path=\"*\" element={<Navigate to={`connect${window.location.search}`} replace />} />\n </Routes>\n </Layout>\n </StyledStepProvider>\n );\n}\n\nconst launcherGlobalStyle = css`\n html,\n body,\n #root,\n #root > .wrapper {\n height: 100%;\n }\n`;\n\nconst StyledStepProvider = styled(StepProvider)``;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ContentLayout;\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _templateObject;\nconst _excluded = [\"children\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\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; }\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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ContentLayout(_ref) {\n let {\n children\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(Container, _objectSpread(_objectSpread({}, props), {}, {\n children: children\n }));\n}\nContentLayout.propTypes = {\n children: _propTypes.default.any.isRequired\n};\nconst Container = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n width: 100%;\\n height: 100%;\\n\\n .header {\\n text-align: center;\\n }\\n\\n .body {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n margin-top: 30px;\\n width: 100%;\\n min-height: 200px;\\n flex: 1;\\n\\n \", \" {\\n padding: 24px;\\n }\\n\\n \", \" {\\n padding: 0 16px 16px;\\n }\\n }\\n\\n .footer {\\n display: flex;\\n justify-content: center;\\n\\n \", \" {\\n padding-bottom: 34px;\\n }\\n\\n \", \" {\\n margin-top: auto;\\n padding-bottom: 10px;\\n }\\n }\\n\"])), props => props.theme.breakpoints.up('md'), props => props.theme.breakpoints.down('md'), props => props.theme.breakpoints.up('sm'), props => props.theme.breakpoints.down('md'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = HeaderAddon;\nvar _react = require(\"react\");\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _IconButton = _interopRequireDefault(require(\"@mui/material/IconButton\"));\nvar _reactRouterDom = require(\"react-router-dom\");\nvar _SessionManager = _interopRequireDefault(require(\"@arcblock/did-connect/lib/SessionManager\"));\nvar _selector = _interopRequireDefault(require(\"@arcblock/ux/lib/Locale/selector\"));\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\nvar _Globe = _interopRequireDefault(require(\"@arcblock/icons/lib/Globe\"));\nvar _QuestionMarkCircle = _interopRequireDefault(require(\"@arcblock/icons/lib/QuestionMarkCircle\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _templateObject;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\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; }\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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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 defaultEndpoint = 'https://developer.blocklet.io/docs';\n const docMap = {\n '/store': {\n endpoint: 'https://store.blocklet.io'\n },\n '/dashboard': {\n path: '/conceptual/overview'\n },\n '/settings/router': {\n path: '/conceptual/server-architecture'\n }\n };\n const onHelpClick = () => {\n const pathName = location.pathname;\n let doc = {};\n if (pathName.indexOf('/store') > -1) {\n doc = docMap['/store'];\n } else if (docMap[pathName]) {\n doc = docMap[pathName];\n }\n window.open(\"\".concat(doc.endpoint || defaultEndpoint, \"/\").concat(locale).concat(doc.path || ''), '_blank');\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}\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};\nconst Div = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n\\n .MuiIconButton-root svg {\\n width: 26px;\\n height: 26px;\\n }\\n\\n .user-addon {\\n .user-avatar {\\n width: 28px;\\n border-radius: 14px;\\n height: auto;\\n }\\n }\\n\\n \", \" {\\n > button,\\n > a {\\n padding-left: 8px;\\n padding-right: 8px;\\n }\\n }\\n\"])), props => props.theme.breakpoints.down('md'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\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\nvar Component = function Component(props) {\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(\"svg\", _objectSpread(_objectSpread({}, props), {}, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M50.152 10.642L31.72 0 13.288 10.642v14.152L1 31.89v21.283l18.432 10.642 12.258-7.077.03.017.03-.017 12.258 7.077L62.44 53.172V31.89l-12.288-7.095V10.642zM60.52 32.997l-12.288-7.094V11.75L31.72 2.217 15.208 11.75v14.153L2.92 32.997v19.067l16.512 9.533L31.69 54.52l.03.017.03-.017 12.258 7.077 16.512-9.533V32.997z\",\n fill: \"url(#paint0_linear_615_426)\"\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M50.152 24.83L31.72 14.19 13.288 24.831v21.283L31.72 56.756l18.432-10.642V24.831zm-34.944 1.11l16.512-9.534 16.512 9.533v19.067L31.72 54.539l-16.512-9.533V25.939zm13.338-2.894a.96.96 0 0 1 .924-.696h4.5a.96.96 0 0 1 .924.696l.856 2.999 2.12 1.223 3.025-.757a.96.96 0 0 1 1.064.451l2.25 3.898a.96.96 0 0 1-.14 1.148l-2.17 2.24v2.448l2.17 2.24a.96.96 0 0 1 .14 1.148l-2.25 3.899a.96.96 0 0 1-1.065.45l-3.024-.756-2.12 1.223-.856 2.998a.96.96 0 0 1-.923.697H29.47a.96.96 0 0 1-.924-.697L27.69 44.9l-2.12-1.223-3.024.757a.96.96 0 0 1-1.065-.451l-2.25-3.898a.96.96 0 0 1 .141-1.148l2.168-2.241v-2.447l-2.168-2.241a.96.96 0 0 1-.142-1.148l2.251-3.898a.96.96 0 0 1 1.065-.451l3.025.757 2.119-1.223.856-2.999zm.44 4.467a.96.96 0 0 0 .443-.567l.765-2.676h3.053l.764 2.676a.96.96 0 0 0 .443.567l2.792 1.612a.96.96 0 0 0 .713.1l2.7-.676 1.526 2.644-1.935 2a.96.96 0 0 0-.27.668v3.223c0 .25.097.489.27.668l1.935 2-1.527 2.643-2.699-.675a.96.96 0 0 0-.713.1l-2.792 1.612a.96.96 0 0 0-.443.567l-.764 2.676h-3.053l-.765-2.676a.96.96 0 0 0-.443-.567l-2.792-1.612a.96.96 0 0 0-.713-.1l-2.7.675-1.526-2.643 1.935-2a.96.96 0 0 0 .27-.668V33.86a.96.96 0 0 0-.27-.667l-1.935-2 1.527-2.644 2.7.676a.96.96 0 0 0 .712-.1l2.792-1.612zm2.734 14.128a6.168 6.168 0 1 1 0-12.337 6.168 6.168 0 0 1 0 12.337zm4.248-6.169a4.248 4.248 0 1 1-8.496 0 4.248 4.248 0 0 1 8.496 0z\",\n fill: \"url(#paint1_linear_615_426)\"\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(\"defs\", {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(\"linearGradient\", {\n id: \"paint0_linear_615_426\",\n x1: \"31.72\",\n y1: \"95.721\",\n x2: \"95.488\",\n y2: \"34.325\",\n gradientUnits: \"userSpaceOnUse\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"stop\", {\n stopColor: \"#0FA4B7\"\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"stop\", {\n offset: \".495\",\n stopColor: \"#1DC1C7\"\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"stop\", {\n offset: \"1\",\n stopColor: \"#2BE0D7\"\n })]\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(\"linearGradient\", {\n id: \"paint1_linear_615_426\",\n x1: \"28.437\",\n y1: \"99.246\",\n x2: \"98.761\",\n y2: \"44.937\",\n gradientUnits: \"userSpaceOnUse\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"stop\", {\n stopColor: \"#0FA4B7\"\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"stop\", {\n offset: \".495\",\n stopColor: \"#1DC1C7\"\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"stop\", {\n offset: \"1\",\n stopColor: \"#2BE0D7\"\n })]\n })]\n })]\n }));\n};\n\nComponent.defaultProps = {\n width: \"64\",\n height: \"64\",\n viewBox: \"0 0 64 64\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nComponent.displayName = \"server-logo-notext\";\nvar _default = Component;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _react = require(\"react\");\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _templateObject;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\nfunction CompactLayout(_ref) {\n let {\n children,\n bottom,\n onBottomFix\n } = _ref;\n const mainCon = (0, _react.useRef)(null);\n const childsCon = (0, _react.useRef)(null);\n const compactCon = (0, _react.useRef)(null);\n const isFix = (0, _react.useRef)(null);\n const [scrollMode, setScrollMode] = (0, _react.useState)(false);\n (0, _react.useEffect)(() => {\n let inTimer;\n const fixSize = () => {\n if (inTimer) {\n return;\n }\n inTimer = setTimeout(() => {\n if (childsCon.current) {\n if (childsCon.current.scrollHeight > mainCon.current.clientHeight - compactCon.current.clientHeight) {\n if (isFix.current !== 'fix') {\n onBottomFix('fix');\n isFix.current = 'fix';\n }\n setScrollMode(true);\n } else {\n if (isFix.current !== 'scroll') {\n onBottomFix('scroll');\n isFix.current = 'scroll';\n }\n setScrollMode(false);\n }\n }\n inTimer = null;\n }, 50);\n };\n let resizeObs;\n if (window.ResizeObserver) {\n resizeObs = new ResizeObserver(fixSize);\n } else {\n window.addEventListener('resize', fixSize);\n }\n resizeObs.observe(mainCon.current);\n resizeObs.observe(childsCon.current);\n return () => {\n if (resizeObs) {\n resizeObs.disconnect();\n } else {\n window.removeEventListener('resize', fixSize);\n }\n if (inTimer) {\n clearTimeout(inTimer);\n }\n };\n }, [onBottomFix]);\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Container, {\n ref: mainCon,\n className: \"\".concat(scrollMode ? 'scroll-mode' : ''),\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"compact-context\",\n ref: childsCon,\n children: children\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"fix-container\",\n ref: compactCon,\n children: bottom\n })]\n });\n}\nconst Container = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n height: 100%;\\n animation: fadein ease 0.5s;\\n &.scroll-mode {\\n .compact-context {\\n flex: 1;\\n overflow-y: auto;\\n }\\n .fix-container {\\n flex-shrink: 0;\\n }\\n }\\n\\n @keyframes fadein {\\n 0% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n\"])));\nCompactLayout.propTypes = {\n children: _propTypes.default.any,\n bottom: _propTypes.default.element.isRequired,\n onBottomFix: _propTypes.default.func\n};\nCompactLayout.defaultProps = {\n children: [],\n onBottomFix: () => {}\n};\nvar _default = CompactLayout;\nexports.default = _default;"],"names":["Connect","onNext","useLocaleContext","t","locale","useSessionContext","api","session","onConnect","result","decrypt","setSessionToken","sessionToken","refresh","Toast","message","WrapConnect","popup","open","hideCloseButton","action","checkFn","get","checkTimeout","socketUrl","webWalletUrl","getWebWalletUrl","onSuccess","messages","title","scan","confirm","success","extraParams","setup","launchType","getFromQuery","nftId","defaultProps","styled","DidConnect","ContentLayout","props","theme","breakpoints","up","StepActions","blocklet","onStartNow","children","disabled","hasRequiredSteps","meta","Center","Between","Button","className","variant","color","onClick","Box","display","alignItems","down","StyledButton","obj","TypeError","Config","onPrevious","isMobile","useMediaQuery","useState","loading","setLoading","editingItem","setEditingItem","useBlockletContext","actions","selfConfigs","configs","filter","x","BLOCKLET_CONFIGURABLE_KEY","key","customColor","environments","find","configurableEnvs","description","value","componentType","componentProps","childrenConfigs","forEachChildSync","b","ancestorDids","ancestors","slice","map","did","push","childDid","concat","sortedConfig","uniqBy","flatten","sort","a","required","missingRequiredConfigs","getAppMissingConfigs","length","onSubmitConfig","config","omit","configBlocklet","defaultValue","schemaList","item","rest","style","marginBottom","subTitle","onClickBack","bottom","mt","refreshFuel","showError","margin","width","paddingTop","schema","onChange","changeValue","currentItem","includes","DidSpace","useContext","LocaleContext","loadingText","errorMessage","setErrorMessage","e","endpoint","setEndpoint","didSpacesUrl","setDidSpacesUrl","window","appDid","appId","appName","appDescription","saveStorageEndpoint","storageEndpoint","client","input","then","catch","error","console","axios","baseURL","urljoin","response","setTimeout","setAuthorizeConnect","preValue","onClose","authorizeConnect","handleOnClickAuthorize","isEmpty","prefix","baseUrl","URL","origin","scopes","useEffect","Typography","gutterBottom","StorageUrlTextField","label","event","target","autoFocus","size","helperText","InputProps","endAdornment","sx","position","right","justifyContent","height","fontWeight","capabilities","didSpace","Container","Layout","TextField","isCertInProgress","cert","status","waitForCert","domain","Promise","resolve","reject","timer","setInterval","clearInterval","addCert","Domain","setLoadingText","setError","ip","setIp","showCertFailed","setShowCertFailed","domains","site","domainAliases","defaultCustomDomain","isProtected","systemDomains","replaceSlotToIp","setDomain","addDomain","secure","sleep","some","id","domainAlias","dryRun","submitDomain","address","data","Error","curDomain","location","hostname","generated","err","Dialog","PaperProps","minHeight","showCloseButton","mb","textDecoration","component","marginTop","fullWidth","errMessage","validateDomain","mx","PublicInstance","Tooltip","IconButton","InfoOutlined","fontSize","memo","AccessControl","useTheme","setValue","publicToStore","setPublicToStore","getPublicInstance","getWhoCanAccess","submit","whoCanAccess","configWhoCanAccess","handleChange","handleCheckBox","isPublic","checked","configPublicToStore","iconStyle","marginRight","verticalAlign","palette","text","secondary","FormControl","RadioGroup","name","AccessConfig","rule","FormControlLabel","control","Radio","icon","WHO_CAN_ACCESS","source","Checkbox","main","Fuel","gas","tokenInfo","setOpen","need","current","owe","deficiency","symbol","explorer","replace","Link","lineHeight","href","joinUrl","underline","Launch","my","amount","ml","Spinner","primary","Complete","setStatus","startupError","setStartupError","recommendedURL","setRecommendedURL","fromLauncher","isStopped","isStarting","statusText","stopped","starting","running","visitBlocklet","redirect","searchParams","startBlocklet","fromSetup","errMsg","_setRecommendedURL","evaluateURLs","getAccessUrl","PREFIX","results","url","serverUrl","localStorage","getItem","isButtonLoading","StyledResultMessage","footer","LinkEle","rel","marginLeft","ResultMessage","BlockletSetup","navigate","useNavigate","refreshMeta","refreshBlocklet","saveServerUrl","basePath","WELLKNOWN_SERVICE_PATH_PREFIX","steps","path","blockletMeta","didSpaceAbility","BLOCKLET_APP_SPACE_ENDPOINTS","getDidSpacesStep","hasRequiredEnvironments","requirements","fuels","Boolean","stepIndex","findIndex","pathname","logoUrl","search","index","withSetup","Component","clickLogo","logo","ServerLogoNotext","cursor","ServerLogo","totalSteps","splice","StyledStepProvider","Global","styles","launcherGlobalStyle","getDisplayName","navLogo","pcWidth","useOfSkeleton","headerEndAddons","SessionContext","sessionManagerProps","disableLogout","launchingText","element","to","css","StepProvider","exports","_templateObject","_styled","_interopRequireDefault","require","_propTypes","_jsxRuntime","_excluded","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","i","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","arg","hint","prim","Symbol","toPrimitive","undefined","res","call","String","Number","_toPrimitive","_toPropertyKey","configurable","writable","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","prototype","propertyIsEnumerable","_ref","jsx","propTypes","any","isRequired","strings","raw","div","freeze","HeaderAddon","_react","_IconButton","_reactRouterDom","_SessionManager","_selector","_context","_Globe","_QuestionMarkCircle","extraItems","showLocale","showHelper","showSessionManager","useLocation","docMap","jsxs","Div","cloneElement","showText","pathName","doc","showRole","string","array","bool","fillRule","clipRule","d","fill","x1","y1","x2","y2","gradientUnits","stopColor","offset","viewBox","xmlns","displayName","_default","CompactLayout","onBottomFix","mainCon","useRef","childsCon","compactCon","isFix","scrollMode","setScrollMode","inTimer","resizeObs","fixSize","scrollHeight","clientHeight","ResizeObserver","addEventListener","observe","disconnect","removeEventListener","clearTimeout","ref","func"],"sourceRoot":""}