@abtnode/blocklet-services 1.6.23 → 1.6.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/build/asset-manifest.json +26 -26
  2. package/build/index.html +1 -1
  3. package/build/{precache-manifest.b61da416864625d7da6840b710c5fd05.js → precache-manifest.f3419eb785f255da7655fa425fc775a1.js} +35 -35
  4. package/build/service-worker.js +1 -1
  5. package/build/static/css/{2.73d52aac.chunk.css → 2.cc9dc85c.chunk.css} +2 -2
  6. package/build/static/css/{2.73d52aac.chunk.css.map → 2.cc9dc85c.chunk.css.map} +1 -1
  7. package/build/static/js/2.90523f87.chunk.js +3 -0
  8. package/build/static/js/{2.adca7e30.chunk.js.LICENSE.txt → 2.90523f87.chunk.js.LICENSE.txt} +0 -0
  9. package/build/static/js/2.90523f87.chunk.js.map +1 -0
  10. package/build/static/js/3.e6540184.chunk.js +3 -0
  11. package/build/static/js/{3.9cf8cde1.chunk.js.LICENSE.txt → 3.e6540184.chunk.js.LICENSE.txt} +0 -0
  12. package/build/static/js/3.e6540184.chunk.js.map +1 -0
  13. package/build/static/js/{4.3bcd2384.chunk.js → 4.4410aa8a.chunk.js} +2 -2
  14. package/build/static/js/{4.3bcd2384.chunk.js.map → 4.4410aa8a.chunk.js.map} +1 -1
  15. package/build/static/js/{5.a0b39d30.chunk.js → 5.967448ae.chunk.js} +2 -2
  16. package/build/static/js/{5.a0b39d30.chunk.js.map → 5.967448ae.chunk.js.map} +1 -1
  17. package/build/static/js/{6.91e31d64.chunk.js → 6.1de827ed.chunk.js} +2 -2
  18. package/build/static/js/{6.91e31d64.chunk.js.map → 6.1de827ed.chunk.js.map} +1 -1
  19. package/build/static/js/{7.aa6a9bc1.chunk.js → 7.cb386b54.chunk.js} +2 -2
  20. package/build/static/js/{7.aa6a9bc1.chunk.js.map → 7.cb386b54.chunk.js.map} +1 -1
  21. package/build/static/js/main.c51a8d5b.chunk.js +2 -0
  22. package/build/static/js/main.c51a8d5b.chunk.js.map +1 -0
  23. package/build/static/js/{runtime-main.8d9f8ef7.js → runtime-main.24dfe4a3.js} +2 -2
  24. package/build/static/js/{runtime-main.8d9f8ef7.js.map → runtime-main.24dfe4a3.js.map} +1 -1
  25. package/build/static/media/ubuntu-mono-all-400-normal.50636a55.woff +0 -0
  26. package/build/static/media/ubuntu-mono-cyrillic-400-normal.d8183030.woff2 +0 -0
  27. package/build/static/media/ubuntu-mono-cyrillic-ext-400-normal.918b4f73.woff2 +0 -0
  28. package/build/static/media/ubuntu-mono-greek-400-normal.5334a11e.woff2 +0 -0
  29. package/build/static/media/ubuntu-mono-greek-ext-400-normal.df389c99.woff2 +0 -0
  30. package/build/static/media/ubuntu-mono-latin-400-normal.8d1b9298.woff2 +0 -0
  31. package/build/static/media/ubuntu-mono-latin-ext-400-normal.84fa8bc1.woff2 +0 -0
  32. package/package.json +16 -15
  33. package/build/static/js/2.adca7e30.chunk.js +0 -3
  34. package/build/static/js/2.adca7e30.chunk.js.map +0 -1
  35. package/build/static/js/3.9cf8cde1.chunk.js +0 -3
  36. package/build/static/js/3.9cf8cde1.chunk.js.map +0 -1
  37. package/build/static/js/main.0fef8e40.chunk.js +0 -2
  38. package/build/static/js/main.0fef8e40.chunk.js.map +0 -1
  39. package/build/static/media/ubuntu-mono-all-400-normal.e39678a8.woff +0 -0
  40. package/build/static/media/ubuntu-mono-cyrillic-400-normal.e09900e7.woff2 +0 -0
  41. package/build/static/media/ubuntu-mono-cyrillic-ext-400-normal.762d0b06.woff2 +0 -0
  42. package/build/static/media/ubuntu-mono-greek-400-normal.81c98658.woff2 +0 -0
  43. package/build/static/media/ubuntu-mono-greek-ext-400-normal.1af17851.woff2 +0 -0
  44. package/build/static/media/ubuntu-mono-latin-400-normal.469ee478.woff2 +0 -0
  45. package/build/static/media/ubuntu-mono-latin-ext-400-normal.e28ff028.woff2 +0 -0
@@ -1,2 +0,0 @@
1
- (this["webpackJsonp@abtnode/blocklet-services"]=this["webpackJsonp@abtnode/blocklet-services"]||[]).push([[0],{159:function(e,t,n){var a,o=n(173),r=Object.freeze({AUTH_SERVICE:"@abtnode/auth-service"}),i=Object.freeze({AUTH_SERVICE:"/.service/".concat(r.AUTH_SERVICE)}),s=Object.freeze({OWNER:"owner",ADMIN:"admin",MEMBER:"member",GUEST:"guest"}),c={roles:Object.freeze([{name:s.OWNER,title:"Owner",description:"Has full administrative access to the Blocklet Server",passport:!0},{name:s.ADMIN,title:"Admin",description:"Has full permissions to manage blocklet and Blocklet Server such as install/remove/start/stop blocklet, manage blocklet URL mapping and certificates, manage blocklet team, manage node integrations and access keys, upgrade node to a new version",passport:!0},{name:s.MEMBER,title:"Member",description:"Has permissions to manage blocklets, such as install/remove/start/stop blocklet, manage blocklet URL mapping and certificates",passport:!0},{name:s.GUEST,title:"Guest",description:"Has all read permissions on Blocklet Server",passport:!0},{name:"ci",title:"CI",description:"Deploy blocklet to Blocklet Server",passport:!0,ci:!0},{name:"certificate",title:"Certificate",description:"Manage https certificates for blocklets on the Blocklet Server",passport:!0,ci:!0},{name:r.AUTH_SERVICE,title:"Auth Service"}]),permissions:Object.freeze([{name:"query_node",description:"View node data, include dashboard and node settings, log stream for both Blocklet Server and blocklets"},{name:"mutate_node",description:"Change node settings, upgrade node to a new version"},{name:"query_session",description:"Get data from a long running session"},{name:"mutate_session",description:"Start/update/end a long running session"},{name:"query_accessKey",description:"View access keys for Blocklet Server"},{name:"mutate_accessKey",description:"Manage access keys for Blocklet Server, such as create/update/delete"},{name:"query_team",description:"View team data(members/roles/permissions) for Blocklet Server and blocklets"},{name:"mutate_team",description:"Manage team data(members/roles/permissions) for Blocklet Server and blocklets"},{name:"query_blocklet",description:"View store and installed blocklets, including blocklet runtime configuration, domains and urls"},{name:"mutate_blocklet",description:"Perform state changing actions on blocklets, such as install/upgrade/config/start/stop/remove"},{name:"query_router",description:"View sites, URL mapping and certificates in service gateway"},{name:"mutate_router",description:"Manage sites, URL mapping and certificates in service gateway"},{name:"query_certificate",description:"View certificates in service gateway"},{name:"mutate_certificate",description:"Manage certificates in service gateway"},{name:"query_notification",description:"View notifications"},{name:"mutate_notification",description:"Manage notifications, such as mark notifications as read"},{name:"query_webhook",description:"View integrations"},{name:"mutate_webhook",description:"Manage integrations"}]),grants:Object.freeze((a={},o(a,s.GUEST,["query_blocklet","query_router","query_webhook","query_notification","query_team","query_accessKey","query_node","query_session"]),o(a,s.MEMBER,[s.GUEST,"mutate_blocklet","mutate_router","mutate_notification","mutate_session"]),o(a,s.ADMIN,[s.MEMBER,"mutate_team","mutate_webhook","mutate_accessKey","mutate_node","mutate_certificate"]),o(a,s.OWNER,[s.ADMIN]),o(a,"@abtnode/auth-service",["query_team","mutate_team"]),o(a,"ci",["query_blocklet","mutate_blocklet"]),o(a,"certificate",["query_certificate","mutate_certificate"]),a))};e.exports=Object.freeze({NODE_MODES:Object.freeze({PRODUCTION:"production",DEBUG:"debug",MAINTENANCE:"maintenance",IMMUTABLE:"immutable"}),DEFAULT_DESCRIPTION:"Web Interface to manage your Blocklet Server",NODE_UPGRADE_PROGRESS:Object.freeze({SETUP:"setup",INSTALLING:"installing",RESTARTING:"restarting",CLEANUP:"cleanup",COMPLETE:"complete",ROLLBACK:"rollback"}),VC_TYPE_BLOCKLET_PURCHASE:"BlockletPurchaseCredential",VC_TYPE_NODE_PASSPORT:"ABTNodePassport",VC_TYPE_GENERAL_PASSPORT:"NFTPassport",NFT_TYPE_SERVER_OWNERSHIP:"BlockletServerOwnershipNFT",NODE_PACKAGE_NAME:"@abtnode/cli",NODE_COMMAND_NAME:"abtnode",PROCESS_NAME_DAEMON:"abt-node-daemon",PROCESS_NAME_PROXY:"abt-node-db-hub",PROCESS_NAME_UPDATER:"abt-node-updater",PROCESS_NAME_SERVICE:"abt-node-service",PROCESS_NAME_LOG_ROTATE:"abt-node-log-rotate",PROCESS_NAME_EVENT_HUB:"abt-node-event-hub",NODE_REGISTER_URL:"https://install.arcblock.io/",WEB_WALLET_URL:"https://web.abtwallet.io",BLOCKLET_STORE_URL:"https://store.blocklet.dev",BLOCKLET_STORE_URL_DEV:"https://dev.store.blocklet.dev",BLOCKLET_STORE_API_PREFIX:"/api",BLOCKLET_STORE_META_PATH:"/api/store.json",DEFAULT_DID_REGISTRY:"https://registry.abtnet.io",DEFAULT_DID_DOMAIN:"did.abtnet.io",DEFAULT_IP_DNS_DOMAIN_SUFFIX:"ip.abtnet.io",DEFAULT_IP_DOMAIN:"*.ip.abtnet.io",DEFAULT_WILDCARD_CERT_HOST:"https://releases.arcblock.io/",DEFAULT_CERTIFICATE_EMAIL:"certs@arcblock.io",CONFIG_FILENAME:"config.yml",CONFIG_FILENAME_OLD:"abtnode.yml",CONFIG_FOLDER_NAME:".blocklet-server",CONFIG_FOLDER_NAME_OLD:".abtnode",EXPORTED_FOLDER_NAME:"exported_blocklet_server",StatusCode:Object.freeze({ok:0,blocklet_not_found:1,blocklet_not_purchased:2,forbidden:403,internal:500,timeout:504}),ROUTER_PROVIDER_NONE:"none",DOMAIN_FOR_IP_SITE:"",DOMAIN_FOR_IP_SITE_REGEXP:"~^\\d+.\\d+.\\d+.\\d+$",DOMAIN_FOR_DEFAULT_SITE:"*",DOMAIN_FOR_INTERNAL_SITE:"127.0.0.1",NAME_FOR_WELLKNOWN_SITE:"wellknown",WELLKNOWN_PATH_PREFIX:"/.well-known",WELLKNOWN_ACME_CHALLENGE_PREFIX:"/.well-known/acme-challenge",WELLKNOWN_DID_RESOLVER_PREFIX:"/.well-known/did.json",WELLKNOWN_AUTH_PATH_PREFIX:"/.well-known/auth",SLOT_FOR_IP_DNS_SITE:"888-888-888-888",DEFAULT_ADMIN_PATH:"/admin",DEFAULT_SERVICE_PATH:"/.abtnode/service",DEFAULT_HTTP_PORT:80,DEFAULT_HTTPS_PORT:443,MAX_UPLOAD_FILE_SIZE:500,DEFAULT_DAEMON_PORT:8089,BLOCKLET_PROXY_PATH_PREFIX:"/.blocklet/proxy",BLOCKLET_SITE_GROUP_SUFFIX:".blocklet-domain-group",DAY_IN_MS:864e5,DAEMON_MAX_MEM_LIMIT_IN_MB:600,PROXY_MAX_MEM_LIMIT_IN_MB:300,BLOCKLET_MAX_MEM_LIMIT_IN_MB:300,CERTIFICATE_EXPIRES_OFFSET:6912e5,CERTIFICATE_EXPIRES_WARNING_OFFSET:6048e5,ROUTING_RULE_TYPES:Object.freeze({NONE:"none",DAEMON:"daemon",SERVICE:"service",BLOCKLET:"blocklet",REDIRECT:"redirect",GENERAL_PROXY:"general_proxy"}),ROLES:s,RBAC_CONFIG:c,genPermissionName:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"access";return"".concat(t,"_").concat(e.replace("_","-"))},PASSPORT_STATUS:{VALID:"valid",REVOKED:"revoked"},NODE_SERVICES:r,NODE_SERVICES_PREFIX:i,DISK_ALERT_THRESHOLD_PERCENT:80})},166:function(e,t,n){"use strict";n.d(t,"b",(function(){return s})),n.d(t,"a",(function(){return c}));n(0);var a=n(288),o=n.n(a),r="/";window.env&&(r=window.env.groupPathPrefix||window.env.pathPrefix||"/");var i=o()("login_token","cookie",{returnDomain:!1,path:r}),s=i.SessionProvider,c=i.SessionContext;i.SessionConsumer,i.withSession},287:function(e,t,n){var a=n(349),o=n(350);e.exports={translations:{zh:o,en:a}}},319:function(e,t,n){e.exports=n(447)},349:function(e,t,n){var a=n(165);e.exports=a({login:{loginTo:"Login",description:"You must login with DID Wallet to access {name}",already:"You are logged in as",dialog:{title:"Login Required",scan:"Connect your DID Wallet to provide user profile",confirm:"Confirm on your DID Wallet",success:"You are logged in successfully"}},lostPassport:{title:"Lost Passport?"}})},350:function(e,t,n){var a=n(165);e.exports=a({login:{loginTo:"\u767b\u5f55",description:"\u9700\u8981\u4f7f\u7528 DID Wallet \u767b\u5f55\u624d\u53ef\u4ee5\u8bbf\u95ee {name}",already:"\u4f60\u5df2\u7ecf\u767b\u5f55",dialog:{title:"\u8bf7\u767b\u5f55",scan:"\u7528\u60a8\u7684 DID \u94b1\u5305\u626b\u63cf\u4e0b\u9762\u7684\u4e8c\u7ef4\u7801",confirm:"\u5728\u60a8\u7684 DID \u94b1\u5305\u4e0a\u786e\u8ba4",success:"\u767b\u5f55\u6210\u529f"}},lostPassport:{title:"\u627e\u56de\u901a\u884c\u8bc1\uff1f"}})},447:function(e,t,n){"use strict";n.r(t);var a,o=n(0),r=n.n(o),i=n(12),s=n.n(i),c=n(19),l=n(168),E=n(94),_=n.n(E),d=n(125),u=n.n(d),m=n(159),p=n(174),O=n(25),T=n(471),R=n(472),b=n(164),I=n(286),A=n(287),S=n(166),N=Object(O.createGlobalStyle)(a||(a=Object(p.a)(["\n a {\n color: ",";\n text-decoration: none;\n }\n\n a:hover {\n text-decoration: none;\n }\n"])),(function(e){return e.theme.palette.success.main})),L=Object(o.lazy)((function(){return n.e(7).then(n.bind(null,740))})),P=Object(o.lazy)((function(){return n.e(6).then(n.bind(null,741))})),D=Object(o.lazy)((function(){return n.e(5).then(n.bind(null,742))})),f=Object(o.lazy)((function(){return Promise.all([n.e(3),n.e(4)]).then(n.bind(null,743))})),g=function(){var e=r.a.createElement(u.a,null,r.a.createElement(_.a,null));return r.a.createElement(o.Suspense,{fallback:e},r.a.createElement(c.g,null,r.a.createElement(c.d,{exact:!0,path:"".concat(m.WELLKNOWN_AUTH_PATH_PREFIX,"/lost-passport"),component:f}),r.a.createElement(c.d,{exact:!0,path:"".concat(m.WELLKNOWN_AUTH_PATH_PREFIX,"/issue-passport"),component:D}),r.a.createElement(c.d,{exact:!0,path:"/users",component:L}),r.a.createElement(c.d,{exact:!0,path:"/",component:P}),r.a.createElement(c.c,{to:"/"})))},M=Object(c.o)((function(e){var t=e.children,n=Object(I.create)({typography:{fontSize:14,button:{textTransform:"none"}}});return r.a.createElement(T.a,{theme:n},r.a.createElement(O.ThemeProvider,{theme:n},r.a.createElement(b.LocaleProvider,{translations:A.translations},r.a.createElement(S.b,{serviceHost:window.env&&window.env.apiPrefix?window.env.apiPrefix:"",autoLogin:!1},r.a.createElement(R.a,null),r.a.createElement(N,null),r.a.createElement("div",{className:"wrapper"},t)))))})),k=function(){var e=window.env&&window.env.pathPrefix?window.env.pathPrefix:"/";return r.a.createElement(l.BrowserRouter,{basename:e},r.a.createElement(M,null,r.a.createElement(g,null)))};s.a.render(r.a.createElement(k,null),document.getElementById("root"))}},[[319,1,2]],[3,4,5,6,7]]);
2
- //# sourceMappingURL=main.0fef8e40.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../constant/index.js","contexts/session.js","locales/index.js","locales/en.js","locales/zh.js","components/root.js","app.js","index.js"],"names":["NODE_SERVICES","Object","freeze","AUTH_SERVICE","NODE_SERVICES_PREFIX","ROLES","OWNER","ADMIN","MEMBER","GUEST","RBAC_CONFIG","roles","name","title","description","passport","ci","permissions","grants","module","exports","NODE_MODES","PRODUCTION","DEBUG","MAINTENANCE","IMMUTABLE","DEFAULT_DESCRIPTION","NODE_UPGRADE_PROGRESS","SETUP","INSTALLING","RESTARTING","CLEANUP","COMPLETE","ROLLBACK","VC_TYPE_BLOCKLET_PURCHASE","VC_TYPE_NODE_PASSPORT","VC_TYPE_GENERAL_PASSPORT","NFT_TYPE_SERVER_OWNERSHIP","NODE_PACKAGE_NAME","NODE_COMMAND_NAME","PROCESS_NAME_DAEMON","PROCESS_NAME_PROXY","PROCESS_NAME_UPDATER","PROCESS_NAME_SERVICE","PROCESS_NAME_LOG_ROTATE","PROCESS_NAME_EVENT_HUB","NODE_REGISTER_URL","WEB_WALLET_URL","BLOCKLET_STORE_URL","BLOCKLET_STORE_URL_DEV","BLOCKLET_STORE_API_PREFIX","BLOCKLET_STORE_META_PATH","DEFAULT_DID_REGISTRY","DEFAULT_DID_DOMAIN","DEFAULT_IP_DNS_DOMAIN_SUFFIX","DEFAULT_IP_DOMAIN","DEFAULT_WILDCARD_CERT_HOST","DEFAULT_CERTIFICATE_EMAIL","CONFIG_FILENAME","CONFIG_FILENAME_OLD","CONFIG_FOLDER_NAME","CONFIG_FOLDER_NAME_OLD","EXPORTED_FOLDER_NAME","StatusCode","ok","blocklet_not_found","blocklet_not_purchased","forbidden","internal","timeout","ROUTER_PROVIDER_NONE","DOMAIN_FOR_IP_SITE","DOMAIN_FOR_IP_SITE_REGEXP","DOMAIN_FOR_DEFAULT_SITE","DOMAIN_FOR_INTERNAL_SITE","NAME_FOR_WELLKNOWN_SITE","WELLKNOWN_PATH_PREFIX","WELLKNOWN_ACME_CHALLENGE_PREFIX","WELLKNOWN_DID_RESOLVER_PREFIX","WELLKNOWN_AUTH_PATH_PREFIX","SLOT_FOR_IP_DNS_SITE","DEFAULT_ADMIN_PATH","DEFAULT_SERVICE_PATH","DEFAULT_HTTP_PORT","DEFAULT_HTTPS_PORT","MAX_UPLOAD_FILE_SIZE","DEFAULT_DAEMON_PORT","BLOCKLET_PROXY_PATH_PREFIX","BLOCKLET_SITE_GROUP_SUFFIX","DAY_IN_MS","DAEMON_MAX_MEM_LIMIT_IN_MB","PROXY_MAX_MEM_LIMIT_IN_MB","BLOCKLET_MAX_MEM_LIMIT_IN_MB","CERTIFICATE_EXPIRES_OFFSET","CERTIFICATE_EXPIRES_WARNING_OFFSET","ROUTING_RULE_TYPES","NONE","DAEMON","SERVICE","BLOCKLET","REDIRECT","GENERAL_PROXY","genPermissionName","resource","action","replace","PASSPORT_STATUS","VALID","REVOKED","DISK_ALERT_THRESHOLD_PERCENT","path","window","env","groupPathPrefix","pathPrefix","createSessionContext","returnDomain","SessionProvider","SessionContext","SessionConsumer","withSession","en","require","zh","translations","flat","login","loginTo","already","dialog","scan","confirm","success","lostPassport","GlobalStyle","createGlobalStyle","props","theme","palette","main","UserList","lazy","UserLogin","IssuePassport","LostPassport","App","fallback","exact","component","to","WithRouter","withRouter","children","create","typography","fontSize","button","textTransform","serviceHost","apiPrefix","autoLogin","CssBaseline","className","prefix","basename","ReactDOM","render","document","getElementById"],"mappings":"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","file":"static/js/main.0fef8e40.chunk.js","sourcesContent":["const NODE_SERVICES = Object.freeze({\n AUTH_SERVICE: '@abtnode/auth-service',\n});\n\nconst NODE_SERVICES_PREFIX = Object.freeze({\n AUTH_SERVICE: `/.service/${NODE_SERVICES.AUTH_SERVICE}`,\n});\n\nconst ROLES = Object.freeze({\n OWNER: 'owner',\n ADMIN: 'admin',\n MEMBER: 'member',\n GUEST: 'guest',\n});\n\nconst RBAC_CONFIG = {\n roles: Object.freeze([\n {\n name: ROLES.OWNER,\n title: 'Owner',\n description: 'Has full administrative access to the Blocklet Server',\n passport: true,\n },\n {\n name: ROLES.ADMIN,\n title: 'Admin',\n description:\n 'Has full permissions to manage blocklet and Blocklet Server such as install/remove/start/stop blocklet, manage blocklet URL mapping and certificates, manage blocklet team, manage node integrations and access keys, upgrade node to a new version',\n passport: true,\n },\n {\n name: ROLES.MEMBER,\n title: 'Member',\n description:\n 'Has permissions to manage blocklets, such as install/remove/start/stop blocklet, manage blocklet URL mapping and certificates',\n passport: true,\n },\n {\n name: ROLES.GUEST,\n title: 'Guest',\n description: 'Has all read permissions on Blocklet Server',\n passport: true,\n },\n {\n name: 'ci',\n title: 'CI',\n description: 'Deploy blocklet to Blocklet Server',\n passport: true,\n ci: true,\n },\n {\n name: 'certificate',\n title: 'Certificate',\n description: 'Manage https certificates for blocklets on the Blocklet Server',\n passport: true,\n ci: true,\n },\n {\n name: NODE_SERVICES.AUTH_SERVICE,\n title: 'Auth Service',\n },\n ]),\n permissions: Object.freeze([\n {\n name: 'query_node',\n description:\n 'View node data, include dashboard and node settings, log stream for both Blocklet Server and blocklets',\n },\n {\n name: 'mutate_node',\n description: 'Change node settings, upgrade node to a new version',\n },\n {\n name: 'query_session',\n description: 'Get data from a long running session',\n },\n {\n name: 'mutate_session',\n description: 'Start/update/end a long running session',\n },\n {\n name: 'query_accessKey',\n description: 'View access keys for Blocklet Server',\n },\n {\n name: 'mutate_accessKey',\n description: 'Manage access keys for Blocklet Server, such as create/update/delete',\n },\n {\n name: 'query_team',\n description: 'View team data(members/roles/permissions) for Blocklet Server and blocklets',\n },\n {\n name: 'mutate_team',\n description: 'Manage team data(members/roles/permissions) for Blocklet Server and blocklets',\n },\n {\n name: 'query_blocklet',\n description: 'View store and installed blocklets, including blocklet runtime configuration, domains and urls',\n },\n {\n name: 'mutate_blocklet',\n description: 'Perform state changing actions on blocklets, such as install/upgrade/config/start/stop/remove',\n },\n {\n name: 'query_router',\n description: 'View sites, URL mapping and certificates in service gateway',\n },\n {\n name: 'mutate_router',\n description: 'Manage sites, URL mapping and certificates in service gateway',\n },\n {\n name: 'query_certificate',\n description: 'View certificates in service gateway',\n },\n {\n name: 'mutate_certificate',\n description: 'Manage certificates in service gateway',\n },\n {\n name: 'query_notification',\n description: 'View notifications',\n },\n {\n name: 'mutate_notification',\n description: 'Manage notifications, such as mark notifications as read',\n },\n {\n name: 'query_webhook',\n description: 'View integrations',\n },\n {\n name: 'mutate_webhook',\n description: 'Manage integrations',\n },\n ]),\n grants: Object.freeze({\n [ROLES.GUEST]: [\n 'query_blocklet',\n 'query_router',\n 'query_webhook',\n 'query_notification',\n 'query_team',\n 'query_accessKey',\n 'query_node',\n 'query_session',\n ],\n [ROLES.MEMBER]: [ROLES.GUEST, 'mutate_blocklet', 'mutate_router', 'mutate_notification', 'mutate_session'],\n [ROLES.ADMIN]: [\n ROLES.MEMBER,\n 'mutate_team',\n 'mutate_webhook',\n 'mutate_accessKey',\n 'mutate_node',\n 'mutate_certificate',\n ],\n [ROLES.OWNER]: [ROLES.ADMIN],\n '@abtnode/auth-service': ['query_team', 'mutate_team'],\n ci: ['query_blocklet', 'mutate_blocklet'],\n certificate: ['query_certificate', 'mutate_certificate'],\n }),\n};\n\nconst DAY_IN_MS = 24 * 60 * 60 * 1000;\n\nmodule.exports = Object.freeze({\n // Blocklet Server\n NODE_MODES: Object.freeze({\n PRODUCTION: 'production',\n DEBUG: 'debug',\n MAINTENANCE: 'maintenance',\n IMMUTABLE: 'immutable',\n }),\n\n DEFAULT_DESCRIPTION: 'Web Interface to manage your Blocklet Server',\n\n NODE_UPGRADE_PROGRESS: Object.freeze({\n SETUP: 'setup', // backup\n INSTALLING: 'installing',\n RESTARTING: 'restarting',\n CLEANUP: 'cleanup',\n COMPLETE: 'complete',\n ROLLBACK: 'rollback',\n }),\n\n VC_TYPE_BLOCKLET_PURCHASE: 'BlockletPurchaseCredential',\n VC_TYPE_NODE_PASSPORT: 'ABTNodePassport',\n VC_TYPE_GENERAL_PASSPORT: 'NFTPassport',\n\n NFT_TYPE_SERVER_OWNERSHIP: 'BlockletServerOwnershipNFT',\n\n NODE_PACKAGE_NAME: '@abtnode/cli', // deprecated in 1.6.0\n NODE_COMMAND_NAME: 'abtnode', // deprecated in 1.6.0\n\n PROCESS_NAME_DAEMON: 'abt-node-daemon',\n PROCESS_NAME_PROXY: 'abt-node-db-hub',\n PROCESS_NAME_UPDATER: 'abt-node-updater',\n PROCESS_NAME_SERVICE: 'abt-node-service',\n PROCESS_NAME_LOG_ROTATE: 'abt-node-log-rotate',\n PROCESS_NAME_EVENT_HUB: 'abt-node-event-hub',\n\n NODE_REGISTER_URL: 'https://install.arcblock.io/',\n WEB_WALLET_URL: 'https://web.abtwallet.io',\n BLOCKLET_STORE_URL: 'https://store.blocklet.dev',\n BLOCKLET_STORE_URL_DEV: 'https://dev.store.blocklet.dev',\n BLOCKLET_STORE_API_PREFIX: '/api',\n BLOCKLET_STORE_META_PATH: '/api/store.json',\n\n DEFAULT_DID_REGISTRY: 'https://registry.abtnet.io',\n DEFAULT_DID_DOMAIN: 'did.abtnet.io',\n DEFAULT_IP_DNS_DOMAIN_SUFFIX: 'ip.abtnet.io',\n DEFAULT_IP_DOMAIN: '*.ip.abtnet.io',\n DEFAULT_WILDCARD_CERT_HOST: 'https://releases.arcblock.io/',\n\n DEFAULT_CERTIFICATE_EMAIL: 'certs@arcblock.io',\n\n CONFIG_FILENAME: 'config.yml',\n CONFIG_FILENAME_OLD: 'abtnode.yml',\n CONFIG_FOLDER_NAME: '.blocklet-server',\n CONFIG_FOLDER_NAME_OLD: '.abtnode',\n EXPORTED_FOLDER_NAME: 'exported_blocklet_server',\n\n StatusCode: Object.freeze({\n ok: 0,\n\n blocklet_not_found: 1,\n blocklet_not_purchased: 2,\n\n forbidden: 403,\n internal: 500,\n timeout: 504,\n }),\n\n // Service Gateway\n ROUTER_PROVIDER_NONE: 'none',\n DOMAIN_FOR_IP_SITE: '',\n DOMAIN_FOR_IP_SITE_REGEXP: `~^\\\\d+.\\\\d+.\\\\d+.\\\\d+$`, // eslint-disable-line\n DOMAIN_FOR_DEFAULT_SITE: '*',\n DOMAIN_FOR_INTERNAL_SITE: '127.0.0.1',\n NAME_FOR_WELLKNOWN_SITE: 'wellknown',\n WELLKNOWN_PATH_PREFIX: '/.well-known',\n WELLKNOWN_ACME_CHALLENGE_PREFIX: '/.well-known/acme-challenge',\n WELLKNOWN_DID_RESOLVER_PREFIX: '/.well-known/did.json',\n WELLKNOWN_AUTH_PATH_PREFIX: '/.well-known/auth',\n SLOT_FOR_IP_DNS_SITE: '888-888-888-888',\n\n DEFAULT_ADMIN_PATH: '/admin',\n DEFAULT_SERVICE_PATH: '/.abtnode/service',\n DEFAULT_HTTP_PORT: 80,\n DEFAULT_HTTPS_PORT: 443,\n MAX_UPLOAD_FILE_SIZE: 500, // unit: MB\n DEFAULT_DAEMON_PORT: 8089,\n\n BLOCKLET_PROXY_PATH_PREFIX: '/.blocklet/proxy',\n BLOCKLET_SITE_GROUP_SUFFIX: '.blocklet-domain-group',\n\n // Time and dates\n DAY_IN_MS,\n DAEMON_MAX_MEM_LIMIT_IN_MB: 600,\n PROXY_MAX_MEM_LIMIT_IN_MB: 300,\n BLOCKLET_MAX_MEM_LIMIT_IN_MB: 300,\n CERTIFICATE_EXPIRES_OFFSET: 8 * DAY_IN_MS,\n CERTIFICATE_EXPIRES_WARNING_OFFSET: 7 * DAY_IN_MS,\n ROUTING_RULE_TYPES: Object.freeze({\n NONE: 'none',\n DAEMON: 'daemon',\n SERVICE: 'service',\n BLOCKLET: 'blocklet',\n REDIRECT: 'redirect',\n GENERAL_PROXY: 'general_proxy',\n }),\n\n // Team\n ROLES,\n RBAC_CONFIG,\n genPermissionName: (resource, action = 'access') => `${action}_${resource.replace('_', '-')}`, // resource cannot include '_'\n PASSPORT_STATUS: {\n VALID: 'valid',\n REVOKED: 'revoked',\n },\n\n // Service\n NODE_SERVICES,\n NODE_SERVICES_PREFIX,\n\n DISK_ALERT_THRESHOLD_PERCENT: 80,\n});\n","/* eslint-disable object-curly-newline */\nimport { useContext } from 'react';\nimport createSessionContext from '@arcblock/did-connect/lib/Session';\n\nlet path = '/';\nif (window.env) {\n path = window.env.groupPathPrefix || window.env.pathPrefix || '/';\n}\n\nconst { SessionProvider, SessionContext, SessionConsumer, withSession } = createSessionContext(\n 'login_token',\n 'cookie',\n {\n returnDomain: false,\n path,\n }\n);\n\nfunction useSessionContext() {\n const info = useContext(SessionContext);\n return info;\n}\n\nexport { SessionProvider, SessionContext, SessionConsumer, useSessionContext, withSession };\n","const en = require('./en');\nconst zh = require('./zh');\n\nmodule.exports = { translations: { zh, en } };\n","const flat = require('flat');\n\nmodule.exports = flat({\n login: {\n loginTo: 'Login',\n description: 'You must login with DID Wallet to access {name}',\n already: 'You are logged in as',\n dialog: {\n title: 'Login Required',\n scan: 'Connect your DID Wallet to provide user profile',\n confirm: 'Confirm on your DID Wallet',\n success: 'You are logged in successfully',\n },\n },\n lostPassport: {\n title: 'Lost Passport?',\n },\n});\n","const flat = require('flat');\n\nmodule.exports = flat({\n login: {\n loginTo: '登录',\n description: '需要使用 DID Wallet 登录才可以访问 {name}',\n already: '你已经登录',\n dialog: {\n title: '请登录',\n scan: '用您的 DID 钱包扫描下面的二维码',\n confirm: '在您的 DID 钱包上确认',\n success: '登录成功',\n },\n },\n lostPassport: {\n title: '找回通行证?',\n },\n});\n","import React from 'react';\nimport { createGlobalStyle, ThemeProvider } from 'styled-components';\n\nimport { MuiThemeProvider } from '@material-ui/core/styles';\nimport CssBaseline from '@material-ui/core/CssBaseline';\n\nimport { LocaleProvider } from '@arcblock/ux/lib/Locale/context';\nimport { create } from '@arcblock/ux/lib/Theme';\n\nimport { translations } from '../locales';\nimport { SessionProvider } from '../contexts/session';\n\nconst GlobalStyle = createGlobalStyle`\n a {\n color: ${(props) => props.theme.palette.success.main};\n text-decoration: none;\n }\n\n a:hover {\n text-decoration: none;\n }\n`;\n\n// eslint-disable-next-line react/prop-types\nexport default ({ children }) => {\n const theme = create({\n typography: {\n fontSize: 14,\n button: {\n textTransform: 'none',\n },\n },\n });\n\n return (\n <MuiThemeProvider theme={theme}>\n <ThemeProvider theme={theme}>\n <LocaleProvider translations={translations}>\n <SessionProvider\n serviceHost={window.env && window.env.apiPrefix ? window.env.apiPrefix : ''}\n autoLogin={false}>\n <CssBaseline />\n <GlobalStyle />\n <div className=\"wrapper\">{children}</div>\n </SessionProvider>\n </LocaleProvider>\n </ThemeProvider>\n </MuiThemeProvider>\n );\n};\n","/* eslint-disable object-curly-newline */\nimport React, { Suspense, lazy } from 'react';\nimport { BrowserRouter as Router, Route, Switch, withRouter, Redirect } from 'react-router-dom';\n\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport Center from '@arcblock/ux/lib/Center';\n\nimport { WELLKNOWN_AUTH_PATH_PREFIX } from '@abtnode/constant';\n\nimport Root from './components/root';\n\nconst UserList = lazy(() => import(/* webpackPrefetch: true */ './pages/users'));\nconst UserLogin = lazy(() => import(/* webpackPrefetch: true */ './pages/login'));\nconst IssuePassport = lazy(() => import(/* webpackPrefetch: true */ './pages/issue-passport'));\nconst LostPassport = lazy(() => import(/* webpackPrefetch: true */ './pages/lost-passport'));\n\nexport const App = () => {\n const fallback = (\n <Center>\n <Spinner />\n </Center>\n );\n\n return (\n <Suspense fallback={fallback}>\n <Switch>\n <Route exact path={`${WELLKNOWN_AUTH_PATH_PREFIX}/lost-passport`} component={LostPassport} />\n <Route exact path={`${WELLKNOWN_AUTH_PATH_PREFIX}/issue-passport`} component={IssuePassport} />\n <Route exact path=\"/users\" component={UserList} />\n <Route exact path=\"/\" component={UserLogin} />\n <Redirect to=\"/\" />\n </Switch>\n </Suspense>\n );\n};\n\nconst WithRouter = withRouter(Root);\n\nexport default () => {\n const prefix = window.env && window.env.pathPrefix ? window.env.pathPrefix : '/';\n return (\n <Router basename={prefix}>\n <WithRouter>\n <App />\n </WithRouter>\n </Router>\n );\n};\n","import React from 'react';\nimport ReactDOM from 'react-dom';\n// eslint-disable-next-line import/no-named-as-default\nimport App from './app';\n\nReactDOM.render(<App />, document.getElementById('root'));\n"],"sourceRoot":""}