@abtnode/webapp 1.16.32-beta-f35ca4b8 → 1.16.32-beta-93e1a798
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blocklet.js +1 -1
- package/blocklet.yml +1 -1
- package/dist/assets/{Add-CrVU4iag.js → Add-D_k4pI9W.js} +1 -1
- package/dist/assets/{ArrowDropDown-Dcn5e8ly.js → ArrowDropDown-Fj1T5r_G.js} +1 -1
- package/dist/assets/{Autocomplete-aIdNDEL-.js → Autocomplete-36UFOW-a.js} +1 -1
- package/dist/assets/{Breadcrumbs-CXRVOUaw.js → Breadcrumbs-kKBUARWg.js} +1 -1
- package/dist/assets/{ButtonGroup-7mkCQlrm.js → ButtonGroup-CES_ASkn.js} +1 -1
- package/dist/assets/{CheckCircle-Bfk4fg63.js → CheckCircle-BebjtNY9.js} +1 -1
- package/dist/assets/{ChevronLeft-C0tWZhe0.js → ChevronLeft-BVPkwsiy.js} +1 -1
- package/dist/assets/{ChevronRight-Cy58kVA1.js → ChevronRight-ChF0KBJG.js} +1 -1
- package/dist/assets/{Close-uSQDOggL.js → Close-DrkkcxlK.js} +1 -1
- package/dist/assets/{Delete-Dc7SNaDg.js → Delete-DzIkIBeP.js} +1 -1
- package/dist/assets/{DeleteOutline-DCHqqi5l.js → DeleteOutline-Bby7Ht9O.js} +1 -1
- package/dist/assets/{Done-BgYDb8pl.js → Done-LLl5p9CV.js} +1 -1
- package/dist/assets/{Edit-DS4SRT1Z.js → Edit-CF2dV-p0.js} +1 -1
- package/dist/assets/{EditIcon-D-sfdNT0.js → EditIcon-CS66rX17.js} +1 -1
- package/dist/assets/{ExpandMore-DkEFEOxf.js → ExpandMore-BjFpCvCs.js} +1 -1
- package/dist/assets/{Google-dURdg8SH.js → Google-CEg0_-Ba.js} +1 -1
- package/dist/assets/{Https-CQFYbmfg.js → Https-6X3V6mo0.js} +1 -1
- package/dist/assets/{InputAdornment-C8mYs2cn.js → InputAdornment-ycCoKHr0.js} +1 -1
- package/dist/assets/{InputLabel-B1j7mM5X.js → InputLabel-CbBV3Frl.js} +1 -1
- package/dist/assets/{LastPage-DvyF__jR.js → LastPage-BPNA0QD7.js} +1 -1
- package/dist/assets/{Launch-C9TnBby2.js → Launch-BQ5k3Pyt.js} +1 -1
- package/dist/assets/{Link-tptEI5Ov.js → Link-CrgCiVTG.js} +1 -1
- package/dist/assets/{LoadingButton-BJeZNO98.js → LoadingButton-DK2qXs8-.js} +1 -1
- package/dist/assets/{LockIcon-CCYDgiA9.js → LockIcon-Dsr8612h.js} +1 -1
- package/dist/assets/{Loop-BV9sPKwB.js → Loop-DKDVusA2.js} +1 -1
- package/dist/assets/{MoreHoriz-p0VaffeZ.js → MoreHoriz-DpkDHId8.js} +1 -1
- package/dist/assets/{MoreVert-D7U3C1RJ.js → MoreVert-EDIahDDk.js} +1 -1
- package/dist/assets/{Pagination-BNBOxoP7.js → Pagination-889zSuEV.js} +1 -1
- package/dist/assets/{Public-DldRmgtm.js → Public-B1TdO-Ph.js} +1 -1
- package/dist/assets/{SchemaReference.es-Cj1qFzwO.js → SchemaReference.es-CIGzgiK1.js} +1 -1
- package/dist/assets/{Search-C72vhPrR.js → Search-Dol4CnmY.js} +1 -1
- package/dist/assets/{Select-D1lY3LQG.js → Select-CYNjgjo3.js} +1 -1
- package/dist/assets/{Skeleton-bksK9EQ0.js → Skeleton-CzjJPNB7.js} +1 -1
- package/dist/assets/{Slider-CbEQ27T8.js → Slider-wwN-tiI7.js} +1 -1
- package/dist/assets/{Stepper-Doz-_QYU.js → Stepper-BG1rAugU.js} +1 -1
- package/dist/assets/{TextField-kQx3sAGR.js → TextField-B8Ndn_Ly.js} +1 -1
- package/dist/assets/{ToggleButtonGroup-C1syeauh.js → ToggleButtonGroup-CgfxUxDK.js} +1 -1
- package/dist/assets/{ViewColumn-CBqnaawo.js → ViewColumn-DkiM5eqL.js} +1 -1
- package/dist/assets/{ViewList-J5q5F0G_.js → ViewList-SsmYyAxZ.js} +1 -1
- package/dist/assets/{actions-Cn5PkGYM.js → actions-C-Plplr7.js} +1 -1
- package/dist/assets/{actions-C4t1PEJi.js → actions-CrXporZt.js} +1 -1
- package/dist/assets/{agreement-BW_X8O9K.js → agreement-WG4qIDoW.js} +1 -1
- package/dist/assets/api-B-aFuxhe.js +1 -0
- package/dist/assets/{app-avatar-CzTx2uPE.js → app-avatar-d8qNeOSe.js} +1 -1
- package/dist/assets/{audit-logs-CBBPjsSt.js → audit-logs--xCClvIG.js} +1 -1
- package/dist/assets/blocklet-fx7ejRT1.js +1 -0
- package/dist/assets/{brace-fold.es-3bhfSN2I.js → brace-fold.es-D9Lmc_JQ.js} +1 -1
- package/dist/assets/{bundle-avatar-C6lYc46c.js → bundle-avatar-Csnfb0Gl.js} +1 -1
- package/dist/assets/{chart-B1HGYnJR.js → chart-YMtcv4Pw.js} +1 -1
- package/dist/assets/{click-to-copy-DYkJUEds.js → click-to-copy-BVC4LJBm.js} +1 -1
- package/dist/assets/{closebrackets.es-DeVqbYP2.js → closebrackets.es-Bp0tSkEe.js} +1 -1
- package/dist/assets/{codemirror.es-Du4qRjp0.js → codemirror.es-oZBhhqd0.js} +1 -1
- package/dist/assets/{comment.es-CCo2X9yk.js → comment.es-DsmOpPCK.js} +1 -1
- package/dist/assets/{config-navigation-Cl0W33eM.js → config-navigation-C22iRX72.js} +1 -1
- package/dist/assets/{delete-confirm-BeJKD7Bp.js → delete-confirm-DB1Hsz09.js} +1 -1
- package/dist/assets/{detail-BpGjVixl.js → detail-BRhupi6R.js} +3 -3
- package/dist/assets/{dialog.es-PugcSzA-.js → dialog.es-DUxAmmR0.js} +1 -1
- package/dist/assets/{download-Botg6F7n.js → download-CS0Nwqbd.js} +1 -1
- package/dist/assets/{foldgutter.es-BGL4JV26.js → foldgutter.es-BUBeDpkw.js} +1 -1
- package/dist/assets/getValidReactChildren-DP5iwnLz.js +1 -0
- package/dist/assets/{hint.es-Byg_BqGI.js → hint.es-DYpAHag2.js} +1 -1
- package/dist/assets/{hint.es2-DOHf5haL.js → hint.es2-BGuO_Ryp.js} +1 -1
- package/dist/assets/{iframe-B0_yxwdl.js → iframe-DP4MxIys.js} +1 -1
- package/dist/assets/{index-Co-UUK3y.js → index--bLRFav8.js} +1 -1
- package/dist/assets/{index-UsBHl2fn.js → index-5PA93kSc.js} +5 -5
- package/dist/assets/{index-DBUN7I_x.js → index-6g5X1kQS.js} +1 -1
- package/dist/assets/{index-vahMKwUj.js → index-9y4YR_6P.js} +1 -1
- package/dist/assets/{index-DNeFUdjP.js → index-B0pJul6M.js} +1 -1
- package/dist/assets/{index-DP0Qx805.js → index-B5kkYZq8.js} +1 -1
- package/dist/assets/{index-dKvWGHlG.js → index-BJ57e_hS.js} +1 -1
- package/dist/assets/{index-B-dgg_7V.js → index-BJrQBQOR.js} +1 -1
- package/dist/assets/{index-DALpnmZa.js → index-BLWpQDG1.js} +1 -1
- package/dist/assets/{index-C0A64lpg.js → index-BVMgCTFa.js} +1 -1
- package/dist/assets/{index-C0Ux2a-4.js → index-BZupyUWp.js} +1 -1
- package/dist/assets/{index-CE43hPAy.js → index-BarUm_gh.js} +1 -1
- package/dist/assets/{index-C9QWROlO.js → index-BdODRvyL.js} +3 -3
- package/dist/assets/{index-Dfddf3Zf.js → index-BsrqDkz-.js} +1 -1
- package/dist/assets/{index-fLBtZX_u.js → index-C-rb1x2V.js} +1 -1
- package/dist/assets/{index-BjImoaPY.js → index-C58ue_9I.js} +1 -1
- package/dist/assets/{index-DhNPGktt.js → index-C9LZUW4N.js} +1 -1
- package/dist/assets/{index-DeiblLLO.js → index-CFm2Y_4c.js} +1 -1
- package/dist/assets/{index-DUZgU2qh.js → index-CLn0Mq8q.js} +1 -1
- package/dist/assets/{index-Bd88oXZE.js → index-CTRjGuKx.js} +3 -3
- package/dist/assets/{index-8yVQ7VYg.js → index-Cd5kGc_9.js} +1 -1
- package/dist/assets/{index-CAPmDJRT.js → index-ChSFSE0T.js} +1 -1
- package/dist/assets/{index-euGBouHi.js → index-CiSkmE2u.js} +3 -3
- package/dist/assets/{index-DeaRODgK.js → index-CpvpLQ3r.js} +1 -1
- package/dist/assets/{index-D0VO7WgE.js → index-D-HUAuYc.js} +1 -1
- package/dist/assets/{index-Kac2SwHT.js → index-D19VVree.js} +1 -1
- package/dist/assets/{index-_cR88l1n.js → index-D4j0UCn_.js} +1 -1
- package/dist/assets/{index-CBYC6xoV.js → index-DITPbpVB.js} +1 -1
- package/dist/assets/{index-8nWfzKes.js → index-DL0tSq_I.js} +1 -1
- package/dist/assets/{index-DQO2RskJ.js → index-DQOcXiyw.js} +1 -1
- package/dist/assets/{index-DQBtl0fk.js → index-DZeE4hxl.js} +1 -1
- package/dist/assets/{index-D6UaRj0X.js → index-D_JFrv2N.js} +1 -1
- package/dist/assets/{index-BpBCpY0O.js → index-D_enoZPw.js} +1 -1
- package/dist/assets/{index-BGEa7wgm.js → index-DcM9WqBq.js} +1 -1
- package/dist/assets/{index-1quYfQ0h.js → index-DcQHhGHM.js} +1 -1
- package/dist/assets/{index-C8_Sa1ZZ.js → index-Dgsigr8r.js} +1 -1
- package/dist/assets/{index-o6UEpCzX.js → index-Dz_vS133.js} +1 -1
- package/dist/assets/{index-C8AIaLfh.js → index-JJQ9Omt7.js} +1 -1
- package/dist/assets/{index-CcGSwTMt.js → index-TrxAhXnV.js} +1 -1
- package/dist/assets/{index-BGNI59h2.js → index-Ud3GHmKK.js} +1 -1
- package/dist/assets/{index-OJDHb5ZY.js → index-X5ZsLA2j.js} +1 -1
- package/dist/assets/{index-C2-bicAv.js → index-XhvmS84N.js} +1 -1
- package/dist/assets/{index-Cd0Mo1_w.js → index-f7uSWUvq.js} +1 -1
- package/dist/assets/{index.es-BxVSrDG1.js → index.es-B4ORsvbs.js} +1 -1
- package/dist/assets/{index.esm-DkiKGA7O.js → index.esm-B270ufs-.js} +1 -1
- package/dist/assets/{info-addon.es-BpgVPfAf.js → info-addon.es-BzRM6G1a.js} +1 -1
- package/dist/assets/{info.es-DUGHSeuV.js → info.es-DGgsrgEc.js} +1 -1
- package/dist/assets/{install-from-url-DOdPcOLo.js → install-from-url-C2gBahK1.js} +1 -1
- package/dist/assets/{invitation-B8rpCHkF.js → invitation-CdX27Uxz.js} +1 -1
- package/dist/assets/{is-path-prefix-equal-B3nYZSlR.js → is-path-prefix-equal-BkEH1NZx.js} +1 -1
- package/dist/assets/{isEqual-Bh4I8aKs.js → isEqual-CNnvQgen.js} +1 -1
- package/dist/assets/{item-FJYzqgxR.js → item-JRZi_aRE.js} +1 -1
- package/dist/assets/{javascript.es-DJeH8pQ5.js → javascript.es-By6ZeMFv.js} +1 -1
- package/dist/assets/{jump-to-line.es-CHS7Cpce.js → jump-to-line.es-BBq6_jaH.js} +1 -1
- package/dist/assets/{jump.es-B8fZ5UkD.js → jump.es-CwMJ9osH.js} +1 -1
- package/dist/assets/{line-BxqlcjK5.js → line-CKpAedts.js} +3 -3
- package/dist/assets/{lint.es-dNi4Ghyk.js → lint.es-1aZjgiyc.js} +1 -1
- package/dist/assets/{lint.es2-C58OpqsC.js → lint.es2-Db-t_UEm.js} +1 -1
- package/dist/assets/{lint.es3-BvXIsXsu.js → lint.es3-D8HsQO7s.js} +1 -1
- package/dist/assets/{list-header-Dj2MozqK.js → list-header-B-qlxkz3.js} +1 -1
- package/dist/assets/{log-wE1x1bn4.js → log-Bk7_nQYj.js} +1 -1
- package/dist/assets/{lottie-C_o2afe-.js → lottie-BM_265d4.js} +1 -1
- package/dist/assets/{matchbrackets.es-rYpajz6C.js → matchbrackets.es-BWKnOHAT.js} +1 -1
- package/dist/assets/{memory-BP-6gvQx.js → memory-nuYLHuFl.js} +1 -1
- package/dist/assets/{mode.es-Bl1GOgFG.js → mode.es-BDqcWOl_.js} +1 -1
- package/dist/assets/{mode.es2-BGLi7eHl.js → mode.es2-CB0HZW7S.js} +1 -1
- package/dist/assets/{mode.es3-CuL41pUD.js → mode.es3-DyR4-E4M.js} +1 -1
- package/dist/assets/{onlineParser.es-DqkyzxAH.js → onlineParser.es-CPCTT-Qa.js} +1 -1
- package/dist/assets/{overview-DbeljR0t.js → overview-B97iWfKs.js} +1 -1
- package/dist/assets/{react-Cq9eJ3Pl.js → react-B2TCaRmX.js} +3 -3
- package/dist/assets/{redux-b00FNul4.js → redux-DYkNRFlr.js} +1 -1
- package/dist/assets/{resource-dialog-BmGWI1C9.js → resource-dialog-BhhfM8h1.js} +1 -1
- package/dist/assets/{runtime-CpZ4o9fb.js → runtime-9pTI3HeQ.js} +1 -1
- package/dist/assets/{schema-BijIBYj3.js → schema-Bj-RxzG3.js} +1 -1
- package/dist/assets/sdk-muHS20Ah.js +1 -0
- package/dist/assets/{search.es-Bt-btCjo.js → search.es-Djf8-sUv.js} +1 -1
- package/dist/assets/{searchcursor.es-DZhpv8ff.js → searchcursor.es-DZEW11iz.js} +1 -1
- package/dist/assets/{service-CR1LOIU5.js → service-Oon6YJGj.js} +1 -1
- package/dist/assets/{shorten-label-e4SQFDIH.js → shorten-label-Dc8UKk1Q.js} +1 -1
- package/dist/assets/{show-hint.es-JabryCH1.js → show-hint.es-k48vHIcC.js} +1 -1
- package/dist/assets/{slicedToArray-C3c8ZMzC.js → slicedToArray-rpnwAzRV.js} +1 -1
- package/dist/assets/{spaces-Bu2IhfbA.js → spaces-BJikzBFK.js} +1 -1
- package/dist/assets/{status-kAhSFHIM.js → status-CBbIVZ8o.js} +1 -1
- package/dist/assets/{sublime.es-CxnSzwic.js → sublime.es-C9MYLBy2.js} +1 -1
- package/dist/assets/{switch-control-FJGNlGgR.js → switch-control-7-MGIzPK.js} +1 -1
- package/dist/assets/{table-icons-CWkkl61x.js → table-icons-BS_ATSp2.js} +1 -1
- package/dist/assets/{team-BLioMvZg.js → team-CpKT_TRB.js} +1 -1
- package/dist/assets/{toUpper-gLmZ1q0C.js → toUpper-Cji_NEex.js} +1 -1
- package/dist/assets/{traffic-BBsVBreQ.js → traffic-D_VS-ogp.js} +1 -1
- package/dist/assets/{url-evaluation-DZQMDJ58.js → url-evaluation-CeM0t6WP.js} +1 -1
- package/dist/assets/{url-join-BR2c59F6.js → url-join-C4mC0iDe.js} +1 -1
- package/dist/assets/{use-blocklet-info-for-connect-did-spaces-DqWceY_h.js → use-blocklet-info-for-connect-did-spaces-DOU25_RL.js} +1 -1
- package/dist/assets/{useLocalStorage-kQm6yPnj.js → useLocalStorage-Djk9mE88.js} +1 -1
- package/dist/assets/{useThemeProps-DzCadJBj.js → useThemeProps-DZY4Hl_X.js} +1 -1
- package/dist/assets/{util-D5KPPsSc.js → util-Bg0Sovun.js} +1 -1
- package/dist/assets/{wait-container-BiujCyhV.js → wait-container-BXER-iJR.js} +1 -1
- package/dist/assets/{withStyles-eMUb1FPy.js → withStyles-DeG1LPw1.js} +1 -1
- package/dist/assets/{wrap-locale-BpbnnA7O.js → wrap-locale-C0m1LlXs.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/service-worker.js +1 -1
- package/package.json +1 -1
- package/dist/assets/api-vPjN6Bfi.js +0 -1
- package/dist/assets/blocklet-cMQmhjnL.js +0 -1
- package/dist/assets/getValidReactChildren-C3Ot9SvD.js +0 -1
- package/dist/assets/sdk-CwPZ3suW.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-DITPbpVB.js","./index-BojVbZw0.js","./index-DQOcXiyw.js","./click-to-copy-BVC4LJBm.js","./withStyles-DeG1LPw1.js","./index-6g5X1kQS.js","./useLocalStorage-Djk9mE88.js","./index-XhvmS84N.js","./useThemeProps-DZY4Hl_X.js","./index-X5ZsLA2j.js","./redux-DYkNRFlr.js","./ViewColumn-DkiM5eqL.js","./Select-CYNjgjo3.js","./Delete-DzIkIBeP.js","./InputLabel-CbBV3Frl.js","./TextField-B8Ndn_Ly.js","./LastPage-BPNA0QD7.js","./Search-Dol4CnmY.js","./index-Cd5kGc_9.js","./MoreVert-EDIahDDk.js","./status-CBbIVZ8o.js","./url-evaluation-CeM0t6WP.js","./actions-CrXporZt.js","./ButtonGroup-CES_ASkn.js","./getValidReactChildren-DP5iwnLz.js","./index-B5kkYZq8.js","./isEqual-CNnvQgen.js","./install-from-url-C2gBahK1.js","./schema-Bj-RxzG3.js","./index-DL0tSq_I.js","./Stepper-BG1rAugU.js","./app-avatar-d8qNeOSe.js","./Add-D_k4pI9W.js","./index-CpvpLQ3r.js","./ExpandMore-BjFpCvCs.js","./index--bLRFav8.js","./index-D-HUAuYc.js","./url-join-C4mC0iDe.js","./Skeleton-CzjJPNB7.js","./Close-DrkkcxlK.js","./lottie-BM_265d4.js","./wait-container-BXER-iJR.js","./Launch-BQ5k3Pyt.js","./DeleteOutline-Bby7Ht9O.js","./spaces-BJikzBFK.js","./api-B-aFuxhe.js","./index-BVMgCTFa.js","./item-JRZi_aRE.js","./index-Dgsigr8r.js","./index-ZG7jWpak.js","./index-BJ57e_hS.js","./InputAdornment-ycCoKHr0.js","./preact.module-DJUF--8d.js","./Done-LLl5p9CV.js","./delete-confirm-DB1Hsz09.js","./shorten-label-Dc8UKk1Q.js","./blocklet-fx7ejRT1.js","./item-D_j8BgsJ.css","./ArrowDropDown-Fj1T5r_G.js","./Breadcrumbs-kKBUARWg.js","./index-CLn0Mq8q.js","./index-BJrQBQOR.js","./index.esm-B270ufs-.js","./switch-control-7-MGIzPK.js","./is-path-prefix-equal-BkEH1NZx.js","./Link-CrgCiVTG.js","./logo-BKA11TRi.js","./LoadingButton-DK2qXs8-.js","./Public-B1TdO-Ph.js","./CheckCircle-BebjtNY9.js","./ChevronRight-ChF0KBJG.js","./Edit-CF2dV-p0.js","./Https-6X3V6mo0.js","./Slider-wwN-tiI7.js","./index-D_enoZPw.js","./download-CS0Nwqbd.js","./download-D33dFtt_.css","./index-C-rb1x2V.js","./audit-logs--xCClvIG.js","./index-TrxAhXnV.js","./index-D4PP6P2d.css","./Pagination-889zSuEV.js","./index-D19VVree.js","./index-f7uSWUvq.js","./Loop-DKDVusA2.js","./ViewList-SsmYyAxZ.js","./list-header-B-qlxkz3.js","./index-CFm2Y_4c.js","./resource-dialog-BhhfM8h1.js","./index-C9LZUW4N.js","./team-CpKT_TRB.js","./sdk-muHS20Ah.js","./actions-C-Plplr7.js","./MoreHoriz-DpkDHId8.js","./index-9y4YR_6P.js","./EditIcon-CS66rX17.js","./LockIcon-Dsr8612h.js","./Google-CEg0_-Ba.js","./ToggleButtonGroup-CgfxUxDK.js","./detail-BRhupi6R.js","./index-BsrqDkz-.js","./index-B0pJul6M.js","./invitation-CdX27Uxz.js","./index-DcM9WqBq.js","./wrap-locale-C0m1LlXs.js","./index-CiSkmE2u.js","./index-BLWpQDG1.js","./index-DZeE4hxl.js","./agreement-WG4qIDoW.js","./index-ChSFSE0T.js","./index-D_JFrv2N.js","./index-5PA93kSc.js","./index-C7igR7se.css","./index-C58ue_9I.js","./traffic-D_VS-ogp.js","./iframe-DP4MxIys.js","./ChevronLeft-BVPkwsiy.js","./chart-YMtcv4Pw.js","./bundle-avatar-Csnfb0Gl.js","./memory-nuYLHuFl.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var Km=a=>{throw TypeError(a)};var Pp=(a,j,_e)=>j.has(a)||Km("Cannot "+_e);var Wr=(a,j,_e)=>(Pp(a,j,"read from private field"),_e?_e.call(a):j.get(a)),Ms=(a,j,_e)=>j.has(a)?Km("Cannot add the same private member more than once"):j instanceof WeakSet?j.add(a):j.set(a,_e),Uo=(a,j,_e,et)=>(Pp(a,j,"write to private field"),et?et.call(a,_e):j.set(a,_e),_e),So=(a,j,_e)=>(Pp(a,j,"access private method"),_e);var Mp=(a,j,_e,et)=>({set _(nt){Uo(a,j,nt,_e)},get _(){return Wr(a,j,et)}});function _mergeNamespaces(a,j){for(var _e=0;_e<j.length;_e++){const et=j[_e];if(typeof et!="string"&&!Array.isArray(et)){for(const nt in et)if(nt!=="default"&&!(nt in a)){const tt=Object.getOwnPropertyDescriptor(et,nt);tt&&Object.defineProperty(a,nt,tt.get?tt:{enumerable:!0,get:()=>et[nt]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}(function(){const j=document.createElement("link").relList;if(j&&j.supports&&j.supports("modulepreload"))return;for(const nt of document.querySelectorAll('link[rel="modulepreload"]'))et(nt);new MutationObserver(nt=>{for(const tt of nt)if(tt.type==="childList")for(const it of tt.addedNodes)it.tagName==="LINK"&&it.rel==="modulepreload"&&et(it)}).observe(document,{childList:!0,subtree:!0});function _e(nt){const tt={};return nt.integrity&&(tt.integrity=nt.integrity),nt.referrerPolicy&&(tt.referrerPolicy=nt.referrerPolicy),nt.crossOrigin==="use-credentials"?tt.credentials="include":nt.crossOrigin==="anonymous"?tt.credentials="omit":tt.credentials="same-origin",tt}function et(nt){if(nt.ep)return;nt.ep=!0;const tt=_e(nt);fetch(nt.href,tt)}})();var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs$1(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}function getAugmentedNamespace(a){if(a.__esModule)return a;var j=a.default;if(typeof j=="function"){var _e=function et(){return this instanceof et?Reflect.construct(j,arguments,this.constructor):j.apply(this,arguments)};_e.prototype=j.prototype}else _e={};return Object.defineProperty(_e,"__esModule",{value:!0}),Object.keys(a).forEach(function(et){var nt=Object.getOwnPropertyDescriptor(a,et);Object.defineProperty(_e,et,nt.get?nt:{enumerable:!0,get:function(){return a[et]}})}),_e}var jsxRuntime={exports:{}},reactJsxRuntime_production_min={},react={exports:{}},react_production_min={};/**
|
|
3
3
|
* @license React
|
|
4
4
|
* react.production.min.js
|
|
@@ -276,7 +276,7 @@ use chrome, FireFox or Internet Explorer 11`)}var j=safeBufferExports,_e=browser
|
|
|
276
276
|
`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(j){return j instanceof this?j:new this(j)}static concat(j,..._e){const et=new this(j);return _e.forEach(nt=>et.set(nt)),et}static accessor(j){const et=(this[$internals]=this[$internals]={accessors:{}}).accessors,nt=this.prototype;function tt(it){const ut=normalizeHeader(it);et[ut]||(buildAccessors(nt,it),et[ut]=!0)}return utils$1.isArray(j)?j.forEach(tt):tt(j),this}};AxiosHeaders$1.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);utils$1.reduceDescriptors(AxiosHeaders$1.prototype,({value:a},j)=>{let _e=j[0].toUpperCase()+j.slice(1);return{get:()=>a,set(et){this[_e]=et}}});utils$1.freezeMethods(AxiosHeaders$1);function transformData(a,j){const _e=this||defaults$1,et=j||_e,nt=AxiosHeaders$1.from(et.headers);let tt=et.data;return utils$1.forEach(a,function(ut){tt=ut.call(_e,tt,nt.normalize(),j?j.status:void 0)}),nt.normalize(),tt}function isCancel$1(a){return!!(a&&a.__CANCEL__)}function CanceledError$1(a,j,_e){AxiosError$1.call(this,a??"canceled",AxiosError$1.ERR_CANCELED,j,_e),this.name="CanceledError"}utils$1.inherits(CanceledError$1,AxiosError$1,{__CANCEL__:!0});function settle(a,j,_e){const et=_e.config.validateStatus;!_e.status||!et||et(_e.status)?a(_e):j(new AxiosError$1("Request failed with status code "+_e.status,[AxiosError$1.ERR_BAD_REQUEST,AxiosError$1.ERR_BAD_RESPONSE][Math.floor(_e.status/100)-4],_e.config,_e.request,_e))}function parseProtocol(a){const j=/^([-+\w]{1,25})(:?\/\/|:)/.exec(a);return j&&j[1]||""}function speedometer(a,j){a=a||10;const _e=new Array(a),et=new Array(a);let nt=0,tt=0,it;return j=j!==void 0?j:1e3,function(ft){const pt=Date.now(),dt=et[tt];it||(it=pt),_e[nt]=ft,et[nt]=pt;let mt=tt,Et=0;for(;mt!==nt;)Et+=_e[mt++],mt=mt%a;if(nt=(nt+1)%a,nt===tt&&(tt=(tt+1)%a),pt-it<j)return;const Tt=dt&&pt-dt;return Tt?Math.round(Et*1e3/Tt):void 0}}function throttle(a,j){let _e=0,et=1e3/j,nt,tt;const it=(pt,dt=Date.now())=>{_e=dt,nt=null,tt&&(clearTimeout(tt),tt=null),a.apply(null,pt)};return[(...pt)=>{const dt=Date.now(),mt=dt-_e;mt>=et?it(pt,dt):(nt=pt,tt||(tt=setTimeout(()=>{tt=null,it(nt)},et-mt)))},()=>nt&&it(nt)]}const progressEventReducer=(a,j,_e=3)=>{let et=0;const nt=speedometer(50,250);return throttle(tt=>{const it=tt.loaded,ut=tt.lengthComputable?tt.total:void 0,ft=it-et,pt=nt(ft),dt=it<=ut;et=it;const mt={loaded:it,total:ut,progress:ut?it/ut:void 0,bytes:ft,rate:pt||void 0,estimated:pt&&ut&&dt?(ut-it)/pt:void 0,event:tt,lengthComputable:ut!=null,[j?"download":"upload"]:!0};a(mt)},_e)},progressEventDecorator=(a,j)=>{const _e=a!=null;return[et=>j[0]({lengthComputable:_e,total:a,loaded:et}),j[1]]},asyncDecorator=a=>(...j)=>utils$1.asap(()=>a(...j)),isURLSameOrigin=platform.hasStandardBrowserEnv?function a(){const j=platform.navigator&&/(msie|trident)/i.test(platform.navigator.userAgent),_e=document.createElement("a");let et;function nt(tt){let it=tt;return j&&(_e.setAttribute("href",it),it=_e.href),_e.setAttribute("href",it),{href:_e.href,protocol:_e.protocol?_e.protocol.replace(/:$/,""):"",host:_e.host,search:_e.search?_e.search.replace(/^\?/,""):"",hash:_e.hash?_e.hash.replace(/^#/,""):"",hostname:_e.hostname,port:_e.port,pathname:_e.pathname.charAt(0)==="/"?_e.pathname:"/"+_e.pathname}}return et=nt(window.location.href),function(it){const ut=utils$1.isString(it)?nt(it):it;return ut.protocol===et.protocol&&ut.host===et.host}}():function a(){return function(){return!0}}(),cookies=platform.hasStandardBrowserEnv?{write(a,j,_e,et,nt,tt){const it=[a+"="+encodeURIComponent(j)];utils$1.isNumber(_e)&&it.push("expires="+new Date(_e).toGMTString()),utils$1.isString(et)&&it.push("path="+et),utils$1.isString(nt)&&it.push("domain="+nt),tt===!0&&it.push("secure"),document.cookie=it.join("; ")},read(a){const j=document.cookie.match(new RegExp("(^|;\\s*)("+a+")=([^;]*)"));return j?decodeURIComponent(j[3]):null},remove(a){this.write(a,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function isAbsoluteURL(a){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(a)}function combineURLs(a,j){return j?a.replace(/\/?\/$/,"")+"/"+j.replace(/^\/+/,""):a}function buildFullPath(a,j){return a&&!isAbsoluteURL(j)?combineURLs(a,j):j}const headersToObject=a=>a instanceof AxiosHeaders$1?{...a}:a;function mergeConfig$1(a,j){j=j||{};const _e={};function et(pt,dt,mt){return utils$1.isPlainObject(pt)&&utils$1.isPlainObject(dt)?utils$1.merge.call({caseless:mt},pt,dt):utils$1.isPlainObject(dt)?utils$1.merge({},dt):utils$1.isArray(dt)?dt.slice():dt}function nt(pt,dt,mt){if(utils$1.isUndefined(dt)){if(!utils$1.isUndefined(pt))return et(void 0,pt,mt)}else return et(pt,dt,mt)}function tt(pt,dt){if(!utils$1.isUndefined(dt))return et(void 0,dt)}function it(pt,dt){if(utils$1.isUndefined(dt)){if(!utils$1.isUndefined(pt))return et(void 0,pt)}else return et(void 0,dt)}function ut(pt,dt,mt){if(mt in j)return et(pt,dt);if(mt in a)return et(void 0,pt)}const ft={url:tt,method:tt,data:tt,baseURL:it,transformRequest:it,transformResponse:it,paramsSerializer:it,timeout:it,timeoutMessage:it,withCredentials:it,withXSRFToken:it,adapter:it,responseType:it,xsrfCookieName:it,xsrfHeaderName:it,onUploadProgress:it,onDownloadProgress:it,decompress:it,maxContentLength:it,maxBodyLength:it,beforeRedirect:it,transport:it,httpAgent:it,httpsAgent:it,cancelToken:it,socketPath:it,responseEncoding:it,validateStatus:ut,headers:(pt,dt)=>nt(headersToObject(pt),headersToObject(dt),!0)};return utils$1.forEach(Object.keys(Object.assign({},a,j)),function(dt){const mt=ft[dt]||nt,Et=mt(a[dt],j[dt],dt);utils$1.isUndefined(Et)&&mt!==ut||(_e[dt]=Et)}),_e}const resolveConfig=a=>{const j=mergeConfig$1({},a);let{data:_e,withXSRFToken:et,xsrfHeaderName:nt,xsrfCookieName:tt,headers:it,auth:ut}=j;j.headers=it=AxiosHeaders$1.from(it),j.url=buildURL(buildFullPath(j.baseURL,j.url),a.params,a.paramsSerializer),ut&&it.set("Authorization","Basic "+btoa((ut.username||"")+":"+(ut.password?unescape(encodeURIComponent(ut.password)):"")));let ft;if(utils$1.isFormData(_e)){if(platform.hasStandardBrowserEnv||platform.hasStandardBrowserWebWorkerEnv)it.setContentType(void 0);else if((ft=it.getContentType())!==!1){const[pt,...dt]=ft?ft.split(";").map(mt=>mt.trim()).filter(Boolean):[];it.setContentType([pt||"multipart/form-data",...dt].join("; "))}}if(platform.hasStandardBrowserEnv&&(et&&utils$1.isFunction(et)&&(et=et(j)),et||et!==!1&&isURLSameOrigin(j.url))){const pt=nt&&tt&&cookies.read(tt);pt&&it.set(nt,pt)}return j},isXHRAdapterSupported=typeof XMLHttpRequest<"u",xhrAdapter=isXHRAdapterSupported&&function(a){return new Promise(function(_e,et){const nt=resolveConfig(a);let tt=nt.data;const it=AxiosHeaders$1.from(nt.headers).normalize();let{responseType:ut,onUploadProgress:ft,onDownloadProgress:pt}=nt,dt,mt,Et,Tt,St;function $t(){Tt&&Tt(),St&&St(),nt.cancelToken&&nt.cancelToken.unsubscribe(dt),nt.signal&&nt.signal.removeEventListener("abort",dt)}let Dt=new XMLHttpRequest;Dt.open(nt.method.toUpperCase(),nt.url,!0),Dt.timeout=nt.timeout;function At(){if(!Dt)return;const Lt=AxiosHeaders$1.from("getAllResponseHeaders"in Dt&&Dt.getAllResponseHeaders()),Wt={data:!ut||ut==="text"||ut==="json"?Dt.responseText:Dt.response,status:Dt.status,statusText:Dt.statusText,headers:Lt,config:a,request:Dt};settle(function(Ht){_e(Ht),$t()},function(Ht){et(Ht),$t()},Wt),Dt=null}"onloadend"in Dt?Dt.onloadend=At:Dt.onreadystatechange=function(){!Dt||Dt.readyState!==4||Dt.status===0&&!(Dt.responseURL&&Dt.responseURL.indexOf("file:")===0)||setTimeout(At)},Dt.onabort=function(){Dt&&(et(new AxiosError$1("Request aborted",AxiosError$1.ECONNABORTED,a,Dt)),Dt=null)},Dt.onerror=function(){et(new AxiosError$1("Network Error",AxiosError$1.ERR_NETWORK,a,Dt)),Dt=null},Dt.ontimeout=function(){let It=nt.timeout?"timeout of "+nt.timeout+"ms exceeded":"timeout exceeded";const Wt=nt.transitional||transitionalDefaults;nt.timeoutErrorMessage&&(It=nt.timeoutErrorMessage),et(new AxiosError$1(It,Wt.clarifyTimeoutError?AxiosError$1.ETIMEDOUT:AxiosError$1.ECONNABORTED,a,Dt)),Dt=null},tt===void 0&&it.setContentType(null),"setRequestHeader"in Dt&&utils$1.forEach(it.toJSON(),function(It,Wt){Dt.setRequestHeader(Wt,It)}),utils$1.isUndefined(nt.withCredentials)||(Dt.withCredentials=!!nt.withCredentials),ut&&ut!=="json"&&(Dt.responseType=nt.responseType),pt&&([Et,St]=progressEventReducer(pt,!0),Dt.addEventListener("progress",Et)),ft&&Dt.upload&&([mt,Tt]=progressEventReducer(ft),Dt.upload.addEventListener("progress",mt),Dt.upload.addEventListener("loadend",Tt)),(nt.cancelToken||nt.signal)&&(dt=Lt=>{Dt&&(et(!Lt||Lt.type?new CanceledError$1(null,a,Dt):Lt),Dt.abort(),Dt=null)},nt.cancelToken&&nt.cancelToken.subscribe(dt),nt.signal&&(nt.signal.aborted?dt():nt.signal.addEventListener("abort",dt)));const Pt=parseProtocol(nt.url);if(Pt&&platform.protocols.indexOf(Pt)===-1){et(new AxiosError$1("Unsupported protocol "+Pt+":",AxiosError$1.ERR_BAD_REQUEST,a));return}Dt.send(tt||null)})},composeSignals=(a,j)=>{const{length:_e}=a=a?a.filter(Boolean):[];if(j||_e){let et=new AbortController,nt;const tt=function(pt){if(!nt){nt=!0,ut();const dt=pt instanceof Error?pt:this.reason;et.abort(dt instanceof AxiosError$1?dt:new CanceledError$1(dt instanceof Error?dt.message:dt))}};let it=j&&setTimeout(()=>{it=null,tt(new AxiosError$1(`timeout ${j} of ms exceeded`,AxiosError$1.ETIMEDOUT))},j);const ut=()=>{a&&(it&&clearTimeout(it),it=null,a.forEach(pt=>{pt.unsubscribe?pt.unsubscribe(tt):pt.removeEventListener("abort",tt)}),a=null)};a.forEach(pt=>pt.addEventListener("abort",tt));const{signal:ft}=et;return ft.unsubscribe=()=>utils$1.asap(ut),ft}},streamChunk=function*(a,j){let _e=a.byteLength;if(!j||_e<j){yield a;return}let et=0,nt;for(;et<_e;)nt=et+j,yield a.slice(et,nt),et=nt},readBytes=async function*(a,j){for await(const _e of readStream(a))yield*streamChunk(_e,j)},readStream=async function*(a){if(a[Symbol.asyncIterator]){yield*a;return}const j=a.getReader();try{for(;;){const{done:_e,value:et}=await j.read();if(_e)break;yield et}}finally{await j.cancel()}},trackStream=(a,j,_e,et)=>{const nt=readBytes(a,j);let tt=0,it,ut=ft=>{it||(it=!0,et&&et(ft))};return new ReadableStream({async pull(ft){try{const{done:pt,value:dt}=await nt.next();if(pt){ut(),ft.close();return}let mt=dt.byteLength;if(_e){let Et=tt+=mt;_e(Et)}ft.enqueue(new Uint8Array(dt))}catch(pt){throw ut(pt),pt}},cancel(ft){return ut(ft),nt.return()}},{highWaterMark:2})},isFetchSupported=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",isReadableStreamSupported=isFetchSupported&&typeof ReadableStream=="function",encodeText=isFetchSupported&&(typeof TextEncoder=="function"?(a=>j=>a.encode(j))(new TextEncoder):async a=>new Uint8Array(await new Response(a).arrayBuffer())),test$1=(a,...j)=>{try{return!!a(...j)}catch{return!1}},supportsRequestStream=isReadableStreamSupported&&test$1(()=>{let a=!1;const j=new Request(platform.origin,{body:new ReadableStream,method:"POST",get duplex(){return a=!0,"half"}}).headers.has("Content-Type");return a&&!j}),DEFAULT_CHUNK_SIZE=64*1024,supportsResponseStream=isReadableStreamSupported&&test$1(()=>utils$1.isReadableStream(new Response("").body)),resolvers={stream:supportsResponseStream&&(a=>a.body)};isFetchSupported&&(a=>{["text","arrayBuffer","blob","formData","stream"].forEach(j=>{!resolvers[j]&&(resolvers[j]=utils$1.isFunction(a[j])?_e=>_e[j]():(_e,et)=>{throw new AxiosError$1(`Response type '${j}' is not supported`,AxiosError$1.ERR_NOT_SUPPORT,et)})})})(new Response);const getBodyLength=async a=>{if(a==null)return 0;if(utils$1.isBlob(a))return a.size;if(utils$1.isSpecCompliantForm(a))return(await new Request(platform.origin,{method:"POST",body:a}).arrayBuffer()).byteLength;if(utils$1.isArrayBufferView(a)||utils$1.isArrayBuffer(a))return a.byteLength;if(utils$1.isURLSearchParams(a)&&(a=a+""),utils$1.isString(a))return(await encodeText(a)).byteLength},resolveBodyLength=async(a,j)=>{const _e=utils$1.toFiniteNumber(a.getContentLength());return _e??getBodyLength(j)},fetchAdapter=isFetchSupported&&(async a=>{let{url:j,method:_e,data:et,signal:nt,cancelToken:tt,timeout:it,onDownloadProgress:ut,onUploadProgress:ft,responseType:pt,headers:dt,withCredentials:mt="same-origin",fetchOptions:Et}=resolveConfig(a);pt=pt?(pt+"").toLowerCase():"text";let Tt=composeSignals([nt,tt&&tt.toAbortSignal()],it),St;const $t=Tt&&Tt.unsubscribe&&(()=>{Tt.unsubscribe()});let Dt;try{if(ft&&supportsRequestStream&&_e!=="get"&&_e!=="head"&&(Dt=await resolveBodyLength(dt,et))!==0){let Wt=new Request(j,{method:"POST",body:et,duplex:"half"}),Vt;if(utils$1.isFormData(et)&&(Vt=Wt.headers.get("content-type"))&&dt.setContentType(Vt),Wt.body){const[Ht,Kt]=progressEventDecorator(Dt,progressEventReducer(asyncDecorator(ft)));et=trackStream(Wt.body,DEFAULT_CHUNK_SIZE,Ht,Kt)}}utils$1.isString(mt)||(mt=mt?"include":"omit");const At="credentials"in Request.prototype;St=new Request(j,{...Et,signal:Tt,method:_e.toUpperCase(),headers:dt.normalize().toJSON(),body:et,duplex:"half",credentials:At?mt:void 0});let Pt=await fetch(St);const Lt=supportsResponseStream&&(pt==="stream"||pt==="response");if(supportsResponseStream&&(ut||Lt&&$t)){const Wt={};["status","statusText","headers"].forEach(Qt=>{Wt[Qt]=Pt[Qt]});const Vt=utils$1.toFiniteNumber(Pt.headers.get("content-length")),[Ht,Kt]=ut&&progressEventDecorator(Vt,progressEventReducer(asyncDecorator(ut),!0))||[];Pt=new Response(trackStream(Pt.body,DEFAULT_CHUNK_SIZE,Ht,()=>{Kt&&Kt(),$t&&$t()}),Wt)}pt=pt||"text";let It=await resolvers[utils$1.findKey(resolvers,pt)||"text"](Pt,a);return!Lt&&$t&&$t(),await new Promise((Wt,Vt)=>{settle(Wt,Vt,{data:It,headers:AxiosHeaders$1.from(Pt.headers),status:Pt.status,statusText:Pt.statusText,config:a,request:St})})}catch(At){throw $t&&$t(),At&&At.name==="TypeError"&&/fetch/i.test(At.message)?Object.assign(new AxiosError$1("Network Error",AxiosError$1.ERR_NETWORK,a,St),{cause:At.cause||At}):AxiosError$1.from(At,At&&At.code,a,St)}}),knownAdapters={http:httpAdapter,xhr:xhrAdapter,fetch:fetchAdapter};utils$1.forEach(knownAdapters,(a,j)=>{if(a){try{Object.defineProperty(a,"name",{value:j})}catch{}Object.defineProperty(a,"adapterName",{value:j})}});const renderReason=a=>`- ${a}`,isResolvedHandle=a=>utils$1.isFunction(a)||a===null||a===!1,adapters={getAdapter:a=>{a=utils$1.isArray(a)?a:[a];const{length:j}=a;let _e,et;const nt={};for(let tt=0;tt<j;tt++){_e=a[tt];let it;if(et=_e,!isResolvedHandle(_e)&&(et=knownAdapters[(it=String(_e)).toLowerCase()],et===void 0))throw new AxiosError$1(`Unknown adapter '${it}'`);if(et)break;nt[it||"#"+tt]=et}if(!et){const tt=Object.entries(nt).map(([ut,ft])=>`adapter ${ut} `+(ft===!1?"is not supported by the environment":"is not available in the build"));let it=j?tt.length>1?`since :
|
|
277
277
|
`+tt.map(renderReason).join(`
|
|
278
278
|
`):" "+renderReason(tt[0]):"as no adapter specified";throw new AxiosError$1("There is no suitable adapter to dispatch the request "+it,"ERR_NOT_SUPPORT")}return et},adapters:knownAdapters};function throwIfCancellationRequested(a){if(a.cancelToken&&a.cancelToken.throwIfRequested(),a.signal&&a.signal.aborted)throw new CanceledError$1(null,a)}function dispatchRequest(a){return throwIfCancellationRequested(a),a.headers=AxiosHeaders$1.from(a.headers),a.data=transformData.call(a,a.transformRequest),["post","put","patch"].indexOf(a.method)!==-1&&a.headers.setContentType("application/x-www-form-urlencoded",!1),adapters.getAdapter(a.adapter||defaults$1.adapter)(a).then(function(et){return throwIfCancellationRequested(a),et.data=transformData.call(a,a.transformResponse,et),et.headers=AxiosHeaders$1.from(et.headers),et},function(et){return isCancel$1(et)||(throwIfCancellationRequested(a),et&&et.response&&(et.response.data=transformData.call(a,a.transformResponse,et.response),et.response.headers=AxiosHeaders$1.from(et.response.headers))),Promise.reject(et)})}const VERSION$1="1.7.7",validators$1={};["object","boolean","number","function","string","symbol"].forEach((a,j)=>{validators$1[a]=function(et){return typeof et===a||"a"+(j<1?"n ":" ")+a}});const deprecatedWarnings={};validators$1.transitional=function a(j,_e,et){function nt(tt,it){return"[Axios v"+VERSION$1+"] Transitional option '"+tt+"'"+it+(et?". "+et:"")}return(tt,it,ut)=>{if(j===!1)throw new AxiosError$1(nt(it," has been removed"+(_e?" in "+_e:"")),AxiosError$1.ERR_DEPRECATED);return _e&&!deprecatedWarnings[it]&&(deprecatedWarnings[it]=!0,console.warn(nt(it," has been deprecated since v"+_e+" and will be removed in the near future"))),j?j(tt,it,ut):!0}};function assertOptions(a,j,_e){if(typeof a!="object")throw new AxiosError$1("options must be an object",AxiosError$1.ERR_BAD_OPTION_VALUE);const et=Object.keys(a);let nt=et.length;for(;nt-- >0;){const tt=et[nt],it=j[tt];if(it){const ut=a[tt],ft=ut===void 0||it(ut,tt,a);if(ft!==!0)throw new AxiosError$1("option "+tt+" must be "+ft,AxiosError$1.ERR_BAD_OPTION_VALUE);continue}if(_e!==!0)throw new AxiosError$1("Unknown option "+tt,AxiosError$1.ERR_BAD_OPTION)}}const validator={assertOptions,validators:validators$1},validators=validator.validators;let Axios$1=class{constructor(j){this.defaults=j,this.interceptors={request:new InterceptorManager,response:new InterceptorManager}}async request(j,_e){try{return await this._request(j,_e)}catch(et){if(et instanceof Error){let nt;Error.captureStackTrace?Error.captureStackTrace(nt={}):nt=new Error;const tt=nt.stack?nt.stack.replace(/^.+\n/,""):"";try{et.stack?tt&&!String(et.stack).endsWith(tt.replace(/^.+\n.+\n/,""))&&(et.stack+=`
|
|
279
|
-
`+tt):et.stack=tt}catch{}}throw et}}_request(j,_e){typeof j=="string"?(_e=_e||{},_e.url=j):_e=j||{},_e=mergeConfig$1(this.defaults,_e);const{transitional:et,paramsSerializer:nt,headers:tt}=_e;et!==void 0&&validator.assertOptions(et,{silentJSONParsing:validators.transitional(validators.boolean),forcedJSONParsing:validators.transitional(validators.boolean),clarifyTimeoutError:validators.transitional(validators.boolean)},!1),nt!=null&&(utils$1.isFunction(nt)?_e.paramsSerializer={serialize:nt}:validator.assertOptions(nt,{encode:validators.function,serialize:validators.function},!0)),_e.method=(_e.method||this.defaults.method||"get").toLowerCase();let it=tt&&utils$1.merge(tt.common,tt[_e.method]);tt&&utils$1.forEach(["delete","get","head","post","put","patch","common"],St=>{delete tt[St]}),_e.headers=AxiosHeaders$1.concat(it,tt);const ut=[];let ft=!0;this.interceptors.request.forEach(function($t){typeof $t.runWhen=="function"&&$t.runWhen(_e)===!1||(ft=ft&&$t.synchronous,ut.unshift($t.fulfilled,$t.rejected))});const pt=[];this.interceptors.response.forEach(function($t){pt.push($t.fulfilled,$t.rejected)});let dt,mt=0,Et;if(!ft){const St=[dispatchRequest.bind(this),void 0];for(St.unshift.apply(St,ut),St.push.apply(St,pt),Et=St.length,dt=Promise.resolve(_e);mt<Et;)dt=dt.then(St[mt++],St[mt++]);return dt}Et=ut.length;let Tt=_e;for(mt=0;mt<Et;){const St=ut[mt++],$t=ut[mt++];try{Tt=St(Tt)}catch(Dt){$t.call(this,Dt);break}}try{dt=dispatchRequest.call(this,Tt)}catch(St){return Promise.reject(St)}for(mt=0,Et=pt.length;mt<Et;)dt=dt.then(pt[mt++],pt[mt++]);return dt}getUri(j){j=mergeConfig$1(this.defaults,j);const _e=buildFullPath(j.baseURL,j.url);return buildURL(_e,j.params,j.paramsSerializer)}};utils$1.forEach(["delete","get","head","options"],function a(j){Axios$1.prototype[j]=function(_e,et){return this.request(mergeConfig$1(et||{},{method:j,url:_e,data:(et||{}).data}))}});utils$1.forEach(["post","put","patch"],function a(j){function _e(et){return function(tt,it,ut){return this.request(mergeConfig$1(ut||{},{method:j,headers:et?{"Content-Type":"multipart/form-data"}:{},url:tt,data:it}))}}Axios$1.prototype[j]=_e(),Axios$1.prototype[j+"Form"]=_e(!0)});let CancelToken$1=class Zm{constructor(j){if(typeof j!="function")throw new TypeError("executor must be a function.");let _e;this.promise=new Promise(function(tt){_e=tt});const et=this;this.promise.then(nt=>{if(!et._listeners)return;let tt=et._listeners.length;for(;tt-- >0;)et._listeners[tt](nt);et._listeners=null}),this.promise.then=nt=>{let tt;const it=new Promise(ut=>{et.subscribe(ut),tt=ut}).then(nt);return it.cancel=function(){et.unsubscribe(tt)},it},j(function(tt,it,ut){et.reason||(et.reason=new CanceledError$1(tt,it,ut),_e(et.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(j){if(this.reason){j(this.reason);return}this._listeners?this._listeners.push(j):this._listeners=[j]}unsubscribe(j){if(!this._listeners)return;const _e=this._listeners.indexOf(j);_e!==-1&&this._listeners.splice(_e,1)}toAbortSignal(){const j=new AbortController,_e=et=>{j.abort(et)};return this.subscribe(_e),j.signal.unsubscribe=()=>this.unsubscribe(_e),j.signal}static source(){let j;return{token:new Zm(function(nt){j=nt}),cancel:j}}};function spread$1(a){return function(_e){return a.apply(null,_e)}}function isAxiosError$1(a){return utils$1.isObject(a)&&a.isAxiosError===!0}const HttpStatusCode$1={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(HttpStatusCode$1).forEach(([a,j])=>{HttpStatusCode$1[j]=a});function createInstance(a){const j=new Axios$1(a),_e=bind(Axios$1.prototype.request,j);return utils$1.extend(_e,Axios$1.prototype,j,{allOwnKeys:!0}),utils$1.extend(_e,j,null,{allOwnKeys:!0}),_e.create=function(nt){return createInstance(mergeConfig$1(a,nt))},_e}const axios$4=createInstance(defaults$1);axios$4.Axios=Axios$1;axios$4.CanceledError=CanceledError$1;axios$4.CancelToken=CancelToken$1;axios$4.isCancel=isCancel$1;axios$4.VERSION=VERSION$1;axios$4.toFormData=toFormData$1;axios$4.AxiosError=AxiosError$1;axios$4.Cancel=axios$4.CanceledError;axios$4.all=function a(j){return Promise.all(j)};axios$4.spread=spread$1;axios$4.isAxiosError=isAxiosError$1;axios$4.mergeConfig=mergeConfig$1;axios$4.AxiosHeaders=AxiosHeaders$1;axios$4.formToJSON=a=>formDataToJSON(utils$1.isHTMLForm(a)?new FormData(a):a);axios$4.getAdapter=adapters.getAdapter;axios$4.HttpStatusCode=HttpStatusCode$1;axios$4.default=axios$4;const{Axios,AxiosError,CanceledError,isCancel,CancelToken,VERSION,all,Cancel,isAxiosError,spread,toFormData,AxiosHeaders,HttpStatusCode,formToJSON,getAdapter,mergeConfig}=axios$4,axios$3=Object.freeze(Object.defineProperty({__proto__:null,Axios,AxiosError,AxiosHeaders,Cancel,CancelToken,CanceledError,HttpStatusCode,VERSION,all,default:axios$4,formToJSON,getAdapter,isAxiosError,isCancel,mergeConfig,spread,toFormData},Symbol.toStringTag,{value:"Module"}));var isUrl_1=isUrl,protocolAndDomainRE=/^(?:\w+:)?\/\/(\S+)$/,localhostDomainRE=/^localhost[\:?\d]*(?:[^\:?\d]\S*)?$/,nonLocalhostDomainRE=/^[^\s\.]+\.\S{2,}$/;function isUrl(a){if(typeof a!="string")return!1;var j=a.match(protocolAndDomainRE);if(!j)return!1;var _e=j[1];return _e?!!(localhostDomainRE.test(_e)||nonLocalhostDomainRE.test(_e)):!1}const isUrl$1=getDefaultExportFromCjs$1(isUrl_1);var __defProp$3=Object.defineProperty,__defNormalProp$3=(a,j,_e)=>j in a?__defProp$3(a,j,{enumerable:!0,configurable:!0,writable:!0,value:_e}):a[j]=_e,__publicField$3=(a,j,_e)=>(__defNormalProp$3(a,j+"",_e),_e);class AuthService{constructor({api:j}){__publicField$3(this,"api"),this.api=j}async getUserPublicInfo({did:j}){const{data:_e}=await this.api.get("/api/user",{params:{did:j}});return _e}async getUserPrivacyConfig({did:j}){const{data:_e}=await this.api.get("/api/user/privacy/config",{params:{did:j}});return _e}async saveUserPrivacyConfig(j){const{data:_e}=await this.api.post("/api/user/privacy/config",j);return _e}async getUserNotificationConfig(){const{data:j}=await this.api.get("/api/user/notification/config");return j}async saveUserNotificationConfig(j){const{data:_e}=await this.api.post("/api/user/notification/config",j);return _e}async testNotificationWebhook(j){const{data:_e}=await this.api.put("/api/user/notification/webhook",j);return _e}async getProfileUrl({did:j,locale:_e}){const et=`${constant$3.WELLKNOWN_SERVICE_PATH_PREFIX}/user`;return withQuery(et,{did:j,locale:_e})}async getProfile(){const{data:j}=await this.api.get("/api/user/profile");return j}async refreshProfile(){await this.api.put("/api/user/refreshProfile")}async saveProfile({locale:j,inviter:_e}){const{data:et}=await this.api.put("/api/user/profile",{locale:j,inviter:_e});return et}async logout({visitorId:j}){const{data:_e}=await this.api.post("/api/user/logout",{visitorId:j});return _e}}class TokenService{getSessionToken(){return api$2.get(constant$3.SESSION_TOKEN_STORAGE_KEY)}setSessionToken(j){api$2.set(constant$3.SESSION_TOKEN_STORAGE_KEY,j)}removeSessionToken(){api$2.remove(constant$3.SESSION_TOKEN_STORAGE_KEY)}getRefreshToken(){return localStorage.getItem(constant$3.REFRESH_TOKEN_STORAGE_KEY)}setRefreshToken(j){localStorage.setItem(constant$3.REFRESH_TOKEN_STORAGE_KEY,j)}removeRefreshToken(){localStorage.removeItem(constant$3.REFRESH_TOKEN_STORAGE_KEY)}}const blockletCache=new QuickLRU({maxSize:30,maxAge:60*1e3});class BlockletService{async getBlocklet(j,_e=!1){if(!j){if(typeof window>"u"||typeof document>"u")throw new Error("Cannot get blocklet in server side without baseUrl");return window.blocklet}if(!_e&&blockletCache.has(j))return blockletCache.get(j);const et=withQuery(joinURL(j,"__blocklet__.js"),{type:"json",t:Date.now()}),tt=await(await fetch(et)).json();return blockletCache.set(j,tt),tt}async loadBlocklet(){return new Promise((j,_e)=>{if(typeof window>"u"||typeof document>"u"){_e();return}const et=document.createElement("script");let nt="/";window.blocklet&&window.blocklet.prefix&&(nt=window.blocklet.prefix),et.src=withQuery(joinURL(nt,"__blocklet__.js"),{t:Date.now()}),et.onload=()=>{j()},et.onerror=()=>{_e()},document.head.append(et)})}getPrefix(j){var _e;return j?(j==null?void 0:j.prefix)||"/":typeof window>"u"||typeof document>"u"?null:((_e=window.blocklet)==null?void 0:_e.prefix)||"/"}}var __defProp$2$1=Object.defineProperty,__defNormalProp$2=(a,j,_e)=>j in a?__defProp$2$1(a,j,{enumerable:!0,configurable:!0,writable:!0,value:_e}):a[j]=_e,__publicField$2=(a,j,_e)=>(__defNormalProp$2(a,typeof j!="symbol"?j+"":j,_e),_e);class UserSessionService{constructor({api:j,blocklet:_e}){__publicField$2(this,"api"),__publicField$2(this,"blocklet"),this.api=j,this.blocklet=_e||new BlockletService}async getUserSessions({did:j}){const _e=await this.blocklet.getBlocklet(),{data:et}=await this.api.get("/api/user-session",{params:{userDid:j,appPid:_e.appPid}});return et}}var __defProp$1$1=Object.defineProperty,__defNormalProp$1=(a,j,_e)=>j in a?__defProp$1$1(a,j,{enumerable:!0,configurable:!0,writable:!0,value:_e}):a[j]=_e,__publicField$1=(a,j,_e)=>(__defNormalProp$1(a,j+"",_e),_e);class ComponentService{constructor({blocklet:j=window.blocklet}){__publicField$1(this,"blocklet"),this.blocklet=j}getComponent(j){var nt;return(((nt=this.blocklet)==null?void 0:nt.componentMountPoints)||[]).find(tt=>[tt.title,tt.name,tt.did].includes(j))}getComponentMountPoint(j){const _e=this.getComponent(j);return(_e==null?void 0:_e.mountPoint)||""}getUrl(j,..._e){var tt;const et=this.getComponentMountPoint(j),nt=((tt=this.blocklet)==null?void 0:tt.appUrl)||"";return joinURL(nt,et,..._e)}}const version$3="1.16.31",sleep$2=(a=0)=>new Promise(j=>{setTimeout(()=>{j()},a)}),getBearerToken=a=>`Bearer ${encodeURIComponent(a)}`,visitorIdKey="__visitor_id",getVisitorId$1=()=>localStorage.getItem(visitorIdKey);function getCSRFToken(){return api$2.get("x-csrf-token")}async function sleepForLoading(a,j=300){a.metaData.endTime=+new Date;const{startTime:_e,endTime:et}=a.metaData,nt=et-_e;nt<j&&await sleep$2(j-nt),delete a.metaData}const createAxios$1=(a,j)=>{const _e={...a==null?void 0:a.headers,"x-blocklet-js-sdk-version":version$3},et=getVisitorId$1();[void 0,null].includes(et)||(_e["x-blocklet-visitor-id"]=et);const nt=axios$4.create({...a,headers:_e});return j!=null&&j.lazy&&(nt.interceptors.request.use(tt=>(tt.metaData={startTime:+new Date},tt),tt=>Promise.reject(tt)),nt.interceptors.response.use(async tt=>(await sleepForLoading(tt.config,j==null?void 0:j.lazyTime),tt),async tt=>(await sleepForLoading(tt.response.config,j==null?void 0:j.lazyTime),Promise.reject(tt)))),nt.interceptors.request.use(tt=>{var ut,ft;const it=(j==null?void 0:j.componentDid)??((ft=(ut=window.blocklet)==null?void 0:ut.componentId)==null?void 0:ft.split("/").pop());return tt.baseURL=new ComponentService({}).getComponentMountPoint(it),tt.headers["x-csrf-token"]=getCSRFToken(),tt.timeout=20*1e3,tt},tt=>Promise.reject(tt)),nt};async function renewRefreshToken$1(a){if(!a)throw new Error("Refresh token not found");const j=createAxios$1({baseURL:constant$3.WELLKNOWN_SERVICE_PATH_PREFIX,timeout:10*1e3,headers:{authorization:getBearerToken(a)}}),{data:_e}=await j.post("/api/did/refreshSession");return _e}function createRequest$1({getSessionToken:a,setSessionToken:j,removeSessionToken:_e,getRefreshToken:et,setRefreshToken:nt,removeRefreshToken:tt,onRefreshTokenError:it,onRefreshTokenSuccess:ut},ft,pt){let dt=null;const mt=createAxios$1({timeout:30*1e3,...ft},pt);return mt.interceptors.request.use(async Et=>{if(!api$2.get(constant$3.SESSION_TOKEN_STORAGE_KEY)){const Tt=a();Tt&&(Et.headers.authorization=getBearerToken(Tt))}return dt&&await dt,Et},Et=>Promise.reject(Et)),mt.interceptors.response.use(Et=>Et,async Et=>{var St;const Tt=Et.config;if(Tt.headers={...Tt==null?void 0:Tt.headers},((St=Et==null?void 0:Et.response)==null?void 0:St.status)===401&&!Tt._retry){Tt._retry=!0;try{dt||(dt=renewRefreshToken$1(et()));const $t=await dt;return j($t.nextToken),nt($t.nextRefreshToken),typeof ut=="function"&&ut($t),mt(Tt)}catch($t){return _e(),tt(),typeof it=="function"&&it($t),Promise.reject(Et)}finally{dt=null}}return Promise.reject(Et)}),mt}var __defProp$4=Object.defineProperty,__defNormalProp$4=(a,j,_e)=>j in a?__defProp$4(a,j,{enumerable:!0,configurable:!0,writable:!0,value:_e}):a[j]=_e,__publicField=(a,j,_e)=>(__defNormalProp$4(a,typeof j!="symbol"?j+"":j,_e),_e);class BlockletSDK{constructor(){__publicField(this,"api"),__publicField(this,"user"),__publicField(this,"userSession"),__publicField(this,"token"),__publicField(this,"blocklet");const j=new TokenService,_e=createRequest$1({getSessionToken:j.getSessionToken,setSessionToken:j.setSessionToken,removeSessionToken:j.removeSessionToken,getRefreshToken:j.getRefreshToken,setRefreshToken:j.setRefreshToken,removeRefreshToken:j.removeRefreshToken,onRefreshTokenError:()=>{console.error("Failed to refresh token")},onRefreshTokenSuccess:()=>{}},{baseURL:constant$3.WELLKNOWN_SERVICE_PATH_PREFIX});this.user=new AuthService({api:_e});const et=new BlockletService;this.userSession=new UserSessionService({api:_e,blocklet:et}),this.token=j,this.api=_e,this.blocklet=et}}function createAxios$2(a={},j={}){const _e=new TokenService;return createRequest$1({getSessionToken:_e.getSessionToken,setSessionToken:_e.setSessionToken,removeSessionToken:_e.removeSessionToken,getRefreshToken:_e.getRefreshToken,setRefreshToken:_e.setRefreshToken,removeRefreshToken:_e.removeRefreshToken,onRefreshTokenError:()=>{console.error("Failed to refresh token")},onRefreshTokenSuccess:()=>{}},a,j)}const name="@arcblock/did-connect",version$2="2.10.33",description="Client side library to work with DID Connect by ArcBlock.",keywords=["react","arcblock","component"],author="wangshijun<wangshijun2010@gmail.com>",homepage="https://github.com/ArcBlock/ux#readme",license="Apache-2.0",main="lib/index.js",module$1="lib/index.js",repository={type:"git",url:"git+https://github.com/ArcBlock/ux.git"},scripts={lint:"eslint src tests --ext js --ext jsx","lint:fix":"npm run lint -- --fix",build:"babel --config-file ./babel.config.es.js src --out-dir lib --copy-files --no-copy-ignored",autoexports:"node tools/auto-exports.js",watch:"babel --config-file ./babel.config.es.js src --out-dir lib -w --copy-files --no-copy-ignored",precommit:"CI=1 npm run lint",prepush:"CI=1 npm run lint",prepublish:"npm run build",test:"node tools/jest.js",coverage:"npm run test -- --coverage"},bugs={url:"https://github.com/ArcBlock/ux/issues"},dependencies={"@arcblock/bridge":"^2.10.33","@arcblock/icons":"^2.10.33","@arcblock/react-hooks":"^2.10.33","@arcblock/ws":"^1.18.135","@fontsource/inter":"^5.0.16","@iconify-icons/logos":"^1.2.36","@iconify-icons/material-symbols":"^1.2.58","@iconify/react":"^4.1.1",ahooks:"^3.7.10",axios:"^1.7.5",buffer:"^6.0.3","core-js":"^3.25.5",eventemitter3:"^5.0.1","js-cookie":"^2.2.1","jwt-decode":"^3.1.2",lodash:"^4.17.21","mdi-material-ui":"^7.5.0","p-queue":"^6.6.2","p-wait-for":"^5.0.2","path-to-regexp":"^1.8.0",semver:"^7.6.3",tweetnacl:"^1.0.3","tweetnacl-sealedbox-js":"^1.2.0",ufo:"^1.5.3"},peerDependencies={"@arcblock/ux":"^2.9.79","@blocklet/js-sdk":"^1.16.30","@emotion/react":"^11.10.4","@emotion/styled":"^11.10.4","@mui/material":"^5.15.0",react:"^18.2.0","react-dom":"^18.2.0"},publishConfig={access:"public"},devDependencies={"@babel/cli":"^7.19.3","@babel/core":"^7.19.3","@babel/preset-env":"^7.19.3","@babel/preset-react":"^7.18.6","eslint-plugin-react-hooks":"^4.6.0",glob:"^10.3.3",jest:"^28.1.3"},gitHead="58a96227a0ce1ff3bb36b5f29ad09a4179d26020",pkg={name,version:version$2,description,keywords,author,homepage,license,main,module:module$1,repository,scripts,bugs,dependencies,peerDependencies,publishConfig,devDependencies,gitHead},DEFAULT_TIMEOUT$1=5*60,DEFAULT_WINDOW_TIMEOUT=30*60,AUTH_SERVICE_PREFIX="/.well-known/service",SESSION_TOKEN_STORAGE_KEY="login_token",REFRESH_TOKEN_STORAGE_KEY="refresh_token",RELAY_SOCKET_PREFIX="/.well-known/service",API_DID_PREFIX="/api/did",DEFAULT_NAME="DID Connect",DID_CONNECT_URL_PARAMS_NAME="__did-connect__";class NotOpenError extends Error{constructor(){super("Failed to open popup")}}const{version:version$1}=pkg;function unescape$2(a){return(a+"===".slice((a.length+3)%4)).replace(/-/g,"+").replace(/_/g,"/")}function escape$3(a){return a.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}const decodeConnectUrl=a=>window.atob(unescape$2(a)),parseTokenFromConnectUrl=a=>{const j=new URL(a),_e=decodeURIComponent(j.searchParams.get("url"));return new URL(_e).searchParams.get("_t_")},getAppId$1=(a,j)=>{var et,nt,tt;let _e=j==null?void 0:j.publisher;if(!_e){if(a!=null&&a.agentDid)return a.agentDid;_e=a==null?void 0:a.publisher}return _e?_e.replace("did:abt:",""):((et=globalThis.blocklet)==null?void 0:et.appPid)||((nt=globalThis.blocklet)==null?void 0:nt.appId)||((tt=globalThis.env)==null?void 0:tt.appId)||""},getConnectedInfo=a=>{var _e;const j={connected_did:a.did||"",connected_pk:a.pk||"",connected_app:getAppId$1(a.appInfo,a.memberAppInfo)};return(_e=a==null?void 0:a.connectedWallet)!=null&&_e.os&&(j.connected_wallet_os=a.connectedWallet.os),j},updateConnectedInfo=(a,j=!1)=>{if(!a)return;j||(a=getConnectedInfo(a));const _e=getCookieOptions({expireInDays:7,returnDomain:!1});isNil$1(a.connected_did)||Cookies.set("connected_did",a.connected_did,_e),isNil$1(a.connected_pk)||Cookies.set("connected_pk",a.connected_pk,_e),isNil$1(a.connected_app)||Cookies.set("connected_app",a.connected_app,_e),a.connected_wallet_os&&Cookies.set("connected_wallet_os",a.connected_wallet_os,_e)},encodeKey=a=>escape$3(Buffer$1$1.from(a).toString("base64")),decodeKey=a=>Uint8Array.from(Buffer$1$1.from(unescape$2(a),"base64")),decrypt$1=(a,j,_e)=>{const et=SealedBox.open(Uint8Array.from(Buffer$1$1.from(a,"base64")),decodeKey(j),decodeKey(_e));return JSON.parse(Buffer$1$1.from(et).toString("utf8"))},encrypt=(a,j)=>Buffer$1$1.from(SealedBox.seal(Uint8Array.from(Buffer$1$1.from(a)),decodeKey(j))).toString("base64"),parseNextWorkflow=(a,j="_t_")=>{const _e=new URL(a),et={baseUrl:_e.origin,prefix:_e.pathname.replace(/\/auth$/,""),token:_e.searchParams.get(j)||""};if(!et.baseUrl)throw new Error("Invalid next workflow: origin empty");if(!et.token)throw new Error("Invalid next workflow: token not found");return et},getApiErrorMessage=(a,j)=>{var et;let _e=a.message;return a.response&&(_e=((et=a.response)==null?void 0:et.data)||j),_e},createAxios=(a={},{lazy:j=!1,lazyTime:_e=300}={})=>createAxios$2({...a,headers:{...a.headers,"x-did-connect-version":version$1}},{lazy:j,lazyTime:_e}),sleep$1=(a=0)=>new Promise(j=>{setTimeout(()=>{j()},a)});function getBrowserLang(){if(typeof window>"u")return null;const a=window.navigator.languages&&window.navigator.languages[0]||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage||window.navigator.systemLanguage||null;return{"zh-CN":"zh","zh-TW":"zh",zh:"zh",en:"en"}[a]||"en"}async function decodeUrlParams(){const a=window.location.href;try{const j=new URL(a),_e=j.searchParams.get(DID_CONNECT_URL_PARAMS_NAME);if(_e){j.searchParams.delete(DID_CONNECT_URL_PARAMS_NAME);const et=JSON.parse(Buffer$1$1.from(_e,"base64").toString("utf-8"));if(isString$2(et.forceConnected)&&isUndefined$2(et.sourceAppPid)){const tt=await new BlockletSDK().user.getUserPublicInfo({did:et.forceConnected});isUndefined$2(tt==null?void 0:tt.sourceAppPid)||(et.sourceAppPid=tt.sourceAppPid)}return{params:et,url:j.href}}}catch{console.warn("Failed to decode did-connect url params")}return{params:null,url:a}}const openPopup=(a,{width:j=600,height:_e=700,name:et="did-connect:popup"}={})=>{const nt=window.screenX+(window.innerWidth-j)/2,tt=window.screenY+(window.innerHeight-_e)/2,it=[`left=${nt}`,`top=${tt}`,`width=${j}`,`height=${_e}`,"resizable=no","scrollbars=yes","status=yes","popup=yes"],ut=window.open("",et,it.join(","));if(ut===null)throw new NotOpenError;return ut.location.href=a,ut},runPopup=a=>new Promise((j,_e)=>{let et,nt;const tt=({data:it})=>{if(it&&it.type==="authorization_response"){if(it!=null&&it.error){console.error(it.error);return}setTimeout(()=>{var ut;(ut=a.popup)==null||ut.close(),clearTimeout(nt),clearInterval(et),window.removeEventListener("message",tt,!1),j(it)},a.closeTimeout||0)}};nt=setTimeout(()=>{clearInterval(et),_e(new Error("Timeout")),window.removeEventListener("message",tt,!1)},(a.timeoutInSeconds||DEFAULT_WINDOW_TIMEOUT)*1e3),et=setInterval(()=>{var it;(it=a.popup)!=null&&it.closed&&(clearInterval(et),clearTimeout(nt),window.removeEventListener("message",tt,!1),_e(new Error("Popup closed")))},1e3),window.addEventListener("message",tt)}),keyPair=tweetnacl.box.keyPair();function useSecurity(){const[a,j]=useLocalStorageState("__encKey",{defaultValue:encodeKey(keyPair.publicKey),deserializer:it=>it,serializer:it=>it}),[_e,et]=useLocalStorageState("__decKey",{defaultValue:encodeKey(keyPair.secretKey),deserializer:it=>it,serializer:it=>it});return reactExports.useEffect(()=>{localStorage.getItem("__encKey")||j(encodeKey(keyPair.publicKey)),localStorage.getItem("__decKey")||et(encodeKey(keyPair.secretKey))},[]),{encryptKey:a,decryptKey:_e,decrypt:(it,ut=a,ft=_e)=>decrypt$1(it,ut,ft),encrypt:(it,ut=a)=>encrypt(it,ut)}}var lodash={exports:{}};/**
|
|
279
|
+
`+tt):et.stack=tt}catch{}}throw et}}_request(j,_e){typeof j=="string"?(_e=_e||{},_e.url=j):_e=j||{},_e=mergeConfig$1(this.defaults,_e);const{transitional:et,paramsSerializer:nt,headers:tt}=_e;et!==void 0&&validator.assertOptions(et,{silentJSONParsing:validators.transitional(validators.boolean),forcedJSONParsing:validators.transitional(validators.boolean),clarifyTimeoutError:validators.transitional(validators.boolean)},!1),nt!=null&&(utils$1.isFunction(nt)?_e.paramsSerializer={serialize:nt}:validator.assertOptions(nt,{encode:validators.function,serialize:validators.function},!0)),_e.method=(_e.method||this.defaults.method||"get").toLowerCase();let it=tt&&utils$1.merge(tt.common,tt[_e.method]);tt&&utils$1.forEach(["delete","get","head","post","put","patch","common"],St=>{delete tt[St]}),_e.headers=AxiosHeaders$1.concat(it,tt);const ut=[];let ft=!0;this.interceptors.request.forEach(function($t){typeof $t.runWhen=="function"&&$t.runWhen(_e)===!1||(ft=ft&&$t.synchronous,ut.unshift($t.fulfilled,$t.rejected))});const pt=[];this.interceptors.response.forEach(function($t){pt.push($t.fulfilled,$t.rejected)});let dt,mt=0,Et;if(!ft){const St=[dispatchRequest.bind(this),void 0];for(St.unshift.apply(St,ut),St.push.apply(St,pt),Et=St.length,dt=Promise.resolve(_e);mt<Et;)dt=dt.then(St[mt++],St[mt++]);return dt}Et=ut.length;let Tt=_e;for(mt=0;mt<Et;){const St=ut[mt++],$t=ut[mt++];try{Tt=St(Tt)}catch(Dt){$t.call(this,Dt);break}}try{dt=dispatchRequest.call(this,Tt)}catch(St){return Promise.reject(St)}for(mt=0,Et=pt.length;mt<Et;)dt=dt.then(pt[mt++],pt[mt++]);return dt}getUri(j){j=mergeConfig$1(this.defaults,j);const _e=buildFullPath(j.baseURL,j.url);return buildURL(_e,j.params,j.paramsSerializer)}};utils$1.forEach(["delete","get","head","options"],function a(j){Axios$1.prototype[j]=function(_e,et){return this.request(mergeConfig$1(et||{},{method:j,url:_e,data:(et||{}).data}))}});utils$1.forEach(["post","put","patch"],function a(j){function _e(et){return function(tt,it,ut){return this.request(mergeConfig$1(ut||{},{method:j,headers:et?{"Content-Type":"multipart/form-data"}:{},url:tt,data:it}))}}Axios$1.prototype[j]=_e(),Axios$1.prototype[j+"Form"]=_e(!0)});let CancelToken$1=class Zm{constructor(j){if(typeof j!="function")throw new TypeError("executor must be a function.");let _e;this.promise=new Promise(function(tt){_e=tt});const et=this;this.promise.then(nt=>{if(!et._listeners)return;let tt=et._listeners.length;for(;tt-- >0;)et._listeners[tt](nt);et._listeners=null}),this.promise.then=nt=>{let tt;const it=new Promise(ut=>{et.subscribe(ut),tt=ut}).then(nt);return it.cancel=function(){et.unsubscribe(tt)},it},j(function(tt,it,ut){et.reason||(et.reason=new CanceledError$1(tt,it,ut),_e(et.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(j){if(this.reason){j(this.reason);return}this._listeners?this._listeners.push(j):this._listeners=[j]}unsubscribe(j){if(!this._listeners)return;const _e=this._listeners.indexOf(j);_e!==-1&&this._listeners.splice(_e,1)}toAbortSignal(){const j=new AbortController,_e=et=>{j.abort(et)};return this.subscribe(_e),j.signal.unsubscribe=()=>this.unsubscribe(_e),j.signal}static source(){let j;return{token:new Zm(function(nt){j=nt}),cancel:j}}};function spread$1(a){return function(_e){return a.apply(null,_e)}}function isAxiosError$1(a){return utils$1.isObject(a)&&a.isAxiosError===!0}const HttpStatusCode$1={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(HttpStatusCode$1).forEach(([a,j])=>{HttpStatusCode$1[j]=a});function createInstance(a){const j=new Axios$1(a),_e=bind(Axios$1.prototype.request,j);return utils$1.extend(_e,Axios$1.prototype,j,{allOwnKeys:!0}),utils$1.extend(_e,j,null,{allOwnKeys:!0}),_e.create=function(nt){return createInstance(mergeConfig$1(a,nt))},_e}const axios$4=createInstance(defaults$1);axios$4.Axios=Axios$1;axios$4.CanceledError=CanceledError$1;axios$4.CancelToken=CancelToken$1;axios$4.isCancel=isCancel$1;axios$4.VERSION=VERSION$1;axios$4.toFormData=toFormData$1;axios$4.AxiosError=AxiosError$1;axios$4.Cancel=axios$4.CanceledError;axios$4.all=function a(j){return Promise.all(j)};axios$4.spread=spread$1;axios$4.isAxiosError=isAxiosError$1;axios$4.mergeConfig=mergeConfig$1;axios$4.AxiosHeaders=AxiosHeaders$1;axios$4.formToJSON=a=>formDataToJSON(utils$1.isHTMLForm(a)?new FormData(a):a);axios$4.getAdapter=adapters.getAdapter;axios$4.HttpStatusCode=HttpStatusCode$1;axios$4.default=axios$4;const{Axios,AxiosError,CanceledError,isCancel,CancelToken,VERSION,all,Cancel,isAxiosError,spread,toFormData,AxiosHeaders,HttpStatusCode,formToJSON,getAdapter,mergeConfig}=axios$4,axios$3=Object.freeze(Object.defineProperty({__proto__:null,Axios,AxiosError,AxiosHeaders,Cancel,CancelToken,CanceledError,HttpStatusCode,VERSION,all,default:axios$4,formToJSON,getAdapter,isAxiosError,isCancel,mergeConfig,spread,toFormData},Symbol.toStringTag,{value:"Module"}));var isUrl_1=isUrl,protocolAndDomainRE=/^(?:\w+:)?\/\/(\S+)$/,localhostDomainRE=/^localhost[\:?\d]*(?:[^\:?\d]\S*)?$/,nonLocalhostDomainRE=/^[^\s\.]+\.\S{2,}$/;function isUrl(a){if(typeof a!="string")return!1;var j=a.match(protocolAndDomainRE);if(!j)return!1;var _e=j[1];return _e?!!(localhostDomainRE.test(_e)||nonLocalhostDomainRE.test(_e)):!1}const isUrl$1=getDefaultExportFromCjs$1(isUrl_1);var __defProp$3=Object.defineProperty,__defNormalProp$3=(a,j,_e)=>j in a?__defProp$3(a,j,{enumerable:!0,configurable:!0,writable:!0,value:_e}):a[j]=_e,__publicField$3=(a,j,_e)=>(__defNormalProp$3(a,j+"",_e),_e);class AuthService{constructor({api:j}){__publicField$3(this,"api"),this.api=j}async getUserPublicInfo({did:j}){const{data:_e}=await this.api.get("/api/user",{params:{did:j}});return _e}async getUserPrivacyConfig({did:j}){const{data:_e}=await this.api.get("/api/user/privacy/config",{params:{did:j}});return _e}async saveUserPrivacyConfig(j){const{data:_e}=await this.api.post("/api/user/privacy/config",j);return _e}async getUserNotificationConfig(){const{data:j}=await this.api.get("/api/user/notification/config");return j}async saveUserNotificationConfig(j){const{data:_e}=await this.api.post("/api/user/notification/config",j);return _e}async testNotificationWebhook(j){const{data:_e}=await this.api.put("/api/user/notification/webhook",j);return _e}async getProfileUrl({did:j,locale:_e}){const et=`${constant$3.WELLKNOWN_SERVICE_PATH_PREFIX}/user`;return withQuery(et,{did:j,locale:_e})}async getProfile(){const{data:j}=await this.api.get("/api/user/profile");return j}async refreshProfile(){await this.api.put("/api/user/refreshProfile")}async saveProfile({locale:j,inviter:_e}){const{data:et}=await this.api.put("/api/user/profile",{locale:j,inviter:_e});return et}async logout({visitorId:j}){const{data:_e}=await this.api.post("/api/user/logout",{visitorId:j});return _e}}class TokenService{getSessionToken(){return api$2.get(constant$3.SESSION_TOKEN_STORAGE_KEY)}setSessionToken(j){api$2.set(constant$3.SESSION_TOKEN_STORAGE_KEY,j)}removeSessionToken(){api$2.remove(constant$3.SESSION_TOKEN_STORAGE_KEY)}getRefreshToken(){return localStorage.getItem(constant$3.REFRESH_TOKEN_STORAGE_KEY)}setRefreshToken(j){localStorage.setItem(constant$3.REFRESH_TOKEN_STORAGE_KEY,j)}removeRefreshToken(){localStorage.removeItem(constant$3.REFRESH_TOKEN_STORAGE_KEY)}}const blockletCache=new QuickLRU({maxSize:30,maxAge:60*1e3});class BlockletService{async getBlocklet(j,_e=!1){if(!j){if(typeof window>"u"||typeof document>"u")throw new Error("Cannot get blocklet in server side without baseUrl");return window.blocklet}if(!_e&&blockletCache.has(j))return blockletCache.get(j);const et=withQuery(joinURL(j,"__blocklet__.js"),{type:"json",t:Date.now()}),tt=await(await fetch(et)).json();return blockletCache.set(j,tt),tt}async loadBlocklet(){return new Promise((j,_e)=>{if(typeof window>"u"||typeof document>"u"){_e();return}const et=document.createElement("script");let nt="/";window.blocklet&&window.blocklet.prefix&&(nt=window.blocklet.prefix),et.src=withQuery(joinURL(nt,"__blocklet__.js"),{t:Date.now()}),et.onload=()=>{j()},et.onerror=()=>{_e()},document.head.append(et)})}getPrefix(j){var _e;return j?(j==null?void 0:j.prefix)||"/":typeof window>"u"||typeof document>"u"?null:((_e=window.blocklet)==null?void 0:_e.prefix)||"/"}}var __defProp$2$1=Object.defineProperty,__defNormalProp$2=(a,j,_e)=>j in a?__defProp$2$1(a,j,{enumerable:!0,configurable:!0,writable:!0,value:_e}):a[j]=_e,__publicField$2=(a,j,_e)=>(__defNormalProp$2(a,typeof j!="symbol"?j+"":j,_e),_e);class UserSessionService{constructor({api:j,blocklet:_e}){__publicField$2(this,"api"),__publicField$2(this,"blocklet"),this.api=j,this.blocklet=_e||new BlockletService}async getUserSessions({did:j}){const _e=await this.blocklet.getBlocklet(),{data:et}=await this.api.get("/api/user-session",{params:{userDid:j,appPid:_e.appPid}});return et}}var __defProp$1$1=Object.defineProperty,__defNormalProp$1=(a,j,_e)=>j in a?__defProp$1$1(a,j,{enumerable:!0,configurable:!0,writable:!0,value:_e}):a[j]=_e,__publicField$1=(a,j,_e)=>(__defNormalProp$1(a,j+"",_e),_e);class ComponentService{constructor({blocklet:j=window.blocklet}={}){__publicField$1(this,"blocklet"),this.blocklet=j}getComponent(j){var nt;return(((nt=this.blocklet)==null?void 0:nt.componentMountPoints)||[]).find(tt=>[tt.title,tt.name,tt.did].includes(j))}getComponentMountPoint(j){const _e=this.getComponent(j);return(_e==null?void 0:_e.mountPoint)||""}getUrl(j,..._e){var tt;const et=this.getComponentMountPoint(j),nt=((tt=this.blocklet)==null?void 0:tt.appUrl)||"";return joinURL(nt,et,..._e)}}const version$3="1.16.31",sleep$2=(a=0)=>new Promise(j=>{setTimeout(()=>{j()},a)}),getBearerToken=a=>`Bearer ${encodeURIComponent(a)}`,visitorIdKey="__visitor_id",getVisitorId$1=()=>localStorage.getItem(visitorIdKey);function getCSRFToken(){return api$2.get("x-csrf-token")}async function sleepForLoading(a,j=300){a.metaData.endTime=+new Date;const{startTime:_e,endTime:et}=a.metaData,nt=et-_e;nt<j&&await sleep$2(j-nt),delete a.metaData}const createAxios$1=(a,j)=>{const _e={...a==null?void 0:a.headers,"x-blocklet-js-sdk-version":version$3},et=new ComponentService,nt=getVisitorId$1();[void 0,null].includes(nt)||(_e["x-blocklet-visitor-id"]=nt);const tt=axios$4.create({...a,headers:_e});return j!=null&&j.lazy&&(tt.interceptors.request.use(it=>(it.metaData={startTime:+new Date},it),it=>Promise.reject(it)),tt.interceptors.response.use(async it=>(await sleepForLoading(it.config,j==null?void 0:j.lazyTime),it),async it=>(await sleepForLoading(it.response.config,j==null?void 0:j.lazyTime),Promise.reject(it)))),tt.interceptors.request.use(it=>{var ft,pt;const ut=(j==null?void 0:j.componentDid)??((pt=(ft=window.blocklet)==null?void 0:ft.componentId)==null?void 0:pt.split("/").pop());return it.baseURL=it.baseURL||et.getComponentMountPoint(ut),it.timeout=it.timeout||20*1e3,it.headers["x-csrf-token"]=getCSRFToken(),it},it=>Promise.reject(it)),tt};async function renewRefreshToken$1(a){if(!a)throw new Error("Refresh token not found");const j=createAxios$1({baseURL:constant$3.WELLKNOWN_SERVICE_PATH_PREFIX,timeout:10*1e3,headers:{authorization:getBearerToken(a)}}),{data:_e}=await j.post("/api/did/refreshSession");return _e}function createRequest$1({getSessionToken:a,setSessionToken:j,removeSessionToken:_e,getRefreshToken:et,setRefreshToken:nt,removeRefreshToken:tt,onRefreshTokenError:it,onRefreshTokenSuccess:ut},ft,pt){let dt=null;const mt=createAxios$1({timeout:30*1e3,...ft},pt);return mt.interceptors.request.use(async Et=>{if(!api$2.get(constant$3.SESSION_TOKEN_STORAGE_KEY)){const Tt=a();Tt&&(Et.headers.authorization=getBearerToken(Tt))}return dt&&await dt,Et},Et=>Promise.reject(Et)),mt.interceptors.response.use(Et=>Et,async Et=>{var St;const Tt=Et.config;if(Tt.headers={...Tt==null?void 0:Tt.headers},((St=Et==null?void 0:Et.response)==null?void 0:St.status)===401&&!Tt._retry){Tt._retry=!0;try{dt||(dt=renewRefreshToken$1(et()));const $t=await dt;return j($t.nextToken),nt($t.nextRefreshToken),typeof ut=="function"&&ut($t),mt(Tt)}catch($t){return _e(),tt(),typeof it=="function"&&it($t),Promise.reject(Et)}finally{dt=null}}return Promise.reject(Et)}),mt}var __defProp$4=Object.defineProperty,__defNormalProp$4=(a,j,_e)=>j in a?__defProp$4(a,j,{enumerable:!0,configurable:!0,writable:!0,value:_e}):a[j]=_e,__publicField=(a,j,_e)=>(__defNormalProp$4(a,typeof j!="symbol"?j+"":j,_e),_e);class BlockletSDK{constructor(){__publicField(this,"api"),__publicField(this,"user"),__publicField(this,"userSession"),__publicField(this,"token"),__publicField(this,"blocklet");const j=new TokenService,_e=createRequest$1({getSessionToken:j.getSessionToken,setSessionToken:j.setSessionToken,removeSessionToken:j.removeSessionToken,getRefreshToken:j.getRefreshToken,setRefreshToken:j.setRefreshToken,removeRefreshToken:j.removeRefreshToken,onRefreshTokenError:()=>{console.error("Failed to refresh token")},onRefreshTokenSuccess:()=>{}},{baseURL:constant$3.WELLKNOWN_SERVICE_PATH_PREFIX});this.user=new AuthService({api:_e});const et=new BlockletService;this.userSession=new UserSessionService({api:_e,blocklet:et}),this.token=j,this.api=_e,this.blocklet=et}}function createAxios$2(a={},j={}){const _e=new TokenService;return createRequest$1({getSessionToken:_e.getSessionToken,setSessionToken:_e.setSessionToken,removeSessionToken:_e.removeSessionToken,getRefreshToken:_e.getRefreshToken,setRefreshToken:_e.setRefreshToken,removeRefreshToken:_e.removeRefreshToken,onRefreshTokenError:()=>{console.error("Failed to refresh token")},onRefreshTokenSuccess:()=>{}},a,j)}const name="@arcblock/did-connect",version$2="2.10.33",description="Client side library to work with DID Connect by ArcBlock.",keywords=["react","arcblock","component"],author="wangshijun<wangshijun2010@gmail.com>",homepage="https://github.com/ArcBlock/ux#readme",license="Apache-2.0",main="lib/index.js",module$1="lib/index.js",repository={type:"git",url:"git+https://github.com/ArcBlock/ux.git"},scripts={lint:"eslint src tests --ext js --ext jsx","lint:fix":"npm run lint -- --fix",build:"babel --config-file ./babel.config.es.js src --out-dir lib --copy-files --no-copy-ignored",autoexports:"node tools/auto-exports.js",watch:"babel --config-file ./babel.config.es.js src --out-dir lib -w --copy-files --no-copy-ignored",precommit:"CI=1 npm run lint",prepush:"CI=1 npm run lint",prepublish:"npm run build",test:"node tools/jest.js",coverage:"npm run test -- --coverage"},bugs={url:"https://github.com/ArcBlock/ux/issues"},dependencies={"@arcblock/bridge":"^2.10.33","@arcblock/icons":"^2.10.33","@arcblock/react-hooks":"^2.10.33","@arcblock/ws":"^1.18.135","@fontsource/inter":"^5.0.16","@iconify-icons/logos":"^1.2.36","@iconify-icons/material-symbols":"^1.2.58","@iconify/react":"^4.1.1",ahooks:"^3.7.10",axios:"^1.7.5",buffer:"^6.0.3","core-js":"^3.25.5",eventemitter3:"^5.0.1","js-cookie":"^2.2.1","jwt-decode":"^3.1.2",lodash:"^4.17.21","mdi-material-ui":"^7.5.0","p-queue":"^6.6.2","p-wait-for":"^5.0.2","path-to-regexp":"^1.8.0",semver:"^7.6.3",tweetnacl:"^1.0.3","tweetnacl-sealedbox-js":"^1.2.0",ufo:"^1.5.3"},peerDependencies={"@arcblock/ux":"^2.9.79","@blocklet/js-sdk":"^1.16.30","@emotion/react":"^11.10.4","@emotion/styled":"^11.10.4","@mui/material":"^5.15.0",react:"^18.2.0","react-dom":"^18.2.0"},publishConfig={access:"public"},devDependencies={"@babel/cli":"^7.19.3","@babel/core":"^7.19.3","@babel/preset-env":"^7.19.3","@babel/preset-react":"^7.18.6","eslint-plugin-react-hooks":"^4.6.0",glob:"^10.3.3",jest:"^28.1.3"},gitHead="58a96227a0ce1ff3bb36b5f29ad09a4179d26020",pkg={name,version:version$2,description,keywords,author,homepage,license,main,module:module$1,repository,scripts,bugs,dependencies,peerDependencies,publishConfig,devDependencies,gitHead},DEFAULT_TIMEOUT$1=5*60,DEFAULT_WINDOW_TIMEOUT=30*60,AUTH_SERVICE_PREFIX="/.well-known/service",SESSION_TOKEN_STORAGE_KEY="login_token",REFRESH_TOKEN_STORAGE_KEY="refresh_token",RELAY_SOCKET_PREFIX="/.well-known/service",API_DID_PREFIX="/api/did",DEFAULT_NAME="DID Connect",DID_CONNECT_URL_PARAMS_NAME="__did-connect__";class NotOpenError extends Error{constructor(){super("Failed to open popup")}}const{version:version$1}=pkg;function unescape$2(a){return(a+"===".slice((a.length+3)%4)).replace(/-/g,"+").replace(/_/g,"/")}function escape$3(a){return a.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}const decodeConnectUrl=a=>window.atob(unescape$2(a)),parseTokenFromConnectUrl=a=>{const j=new URL(a),_e=decodeURIComponent(j.searchParams.get("url"));return new URL(_e).searchParams.get("_t_")},getAppId$1=(a,j)=>{var et,nt,tt;let _e=j==null?void 0:j.publisher;if(!_e){if(a!=null&&a.agentDid)return a.agentDid;_e=a==null?void 0:a.publisher}return _e?_e.replace("did:abt:",""):((et=globalThis.blocklet)==null?void 0:et.appPid)||((nt=globalThis.blocklet)==null?void 0:nt.appId)||((tt=globalThis.env)==null?void 0:tt.appId)||""},getConnectedInfo=a=>{var _e;const j={connected_did:a.did||"",connected_pk:a.pk||"",connected_app:getAppId$1(a.appInfo,a.memberAppInfo)};return(_e=a==null?void 0:a.connectedWallet)!=null&&_e.os&&(j.connected_wallet_os=a.connectedWallet.os),j},updateConnectedInfo=(a,j=!1)=>{if(!a)return;j||(a=getConnectedInfo(a));const _e=getCookieOptions({expireInDays:7,returnDomain:!1});isNil$1(a.connected_did)||Cookies.set("connected_did",a.connected_did,_e),isNil$1(a.connected_pk)||Cookies.set("connected_pk",a.connected_pk,_e),isNil$1(a.connected_app)||Cookies.set("connected_app",a.connected_app,_e),a.connected_wallet_os&&Cookies.set("connected_wallet_os",a.connected_wallet_os,_e)},encodeKey=a=>escape$3(Buffer$1$1.from(a).toString("base64")),decodeKey=a=>Uint8Array.from(Buffer$1$1.from(unescape$2(a),"base64")),decrypt$1=(a,j,_e)=>{const et=SealedBox.open(Uint8Array.from(Buffer$1$1.from(a,"base64")),decodeKey(j),decodeKey(_e));return JSON.parse(Buffer$1$1.from(et).toString("utf8"))},encrypt=(a,j)=>Buffer$1$1.from(SealedBox.seal(Uint8Array.from(Buffer$1$1.from(a)),decodeKey(j))).toString("base64"),parseNextWorkflow=(a,j="_t_")=>{const _e=new URL(a),et={baseUrl:_e.origin,prefix:_e.pathname.replace(/\/auth$/,""),token:_e.searchParams.get(j)||""};if(!et.baseUrl)throw new Error("Invalid next workflow: origin empty");if(!et.token)throw new Error("Invalid next workflow: token not found");return et},getApiErrorMessage=(a,j)=>{var et;let _e=a.message;return a.response&&(_e=((et=a.response)==null?void 0:et.data)||j),_e},createAxios=(a={},{lazy:j=!1,lazyTime:_e=300}={})=>createAxios$2({...a,headers:{...a.headers,"x-did-connect-version":version$1}},{lazy:j,lazyTime:_e}),sleep$1=(a=0)=>new Promise(j=>{setTimeout(()=>{j()},a)});function getBrowserLang(){if(typeof window>"u")return null;const a=window.navigator.languages&&window.navigator.languages[0]||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage||window.navigator.systemLanguage||null;return{"zh-CN":"zh","zh-TW":"zh",zh:"zh",en:"en"}[a]||"en"}async function decodeUrlParams(){const a=window.location.href;try{const j=new URL(a),_e=j.searchParams.get(DID_CONNECT_URL_PARAMS_NAME);if(_e){j.searchParams.delete(DID_CONNECT_URL_PARAMS_NAME);const et=JSON.parse(Buffer$1$1.from(_e,"base64").toString("utf-8"));if(isString$2(et.forceConnected)&&isUndefined$2(et.sourceAppPid)){const tt=await new BlockletSDK().user.getUserPublicInfo({did:et.forceConnected});isUndefined$2(tt==null?void 0:tt.sourceAppPid)||(et.sourceAppPid=tt.sourceAppPid)}return{params:et,url:j.href}}}catch{console.warn("Failed to decode did-connect url params")}return{params:null,url:a}}const openPopup=(a,{width:j=600,height:_e=700,name:et="did-connect:popup"}={})=>{const nt=window.screenX+(window.innerWidth-j)/2,tt=window.screenY+(window.innerHeight-_e)/2,it=[`left=${nt}`,`top=${tt}`,`width=${j}`,`height=${_e}`,"resizable=no","scrollbars=yes","status=yes","popup=yes"],ut=window.open("",et,it.join(","));if(ut===null)throw new NotOpenError;return ut.location.href=a,ut},runPopup=a=>new Promise((j,_e)=>{let et,nt;const tt=({data:it})=>{if(it&&it.type==="authorization_response"){if(it!=null&&it.error){console.error(it.error);return}setTimeout(()=>{var ut;(ut=a.popup)==null||ut.close(),clearTimeout(nt),clearInterval(et),window.removeEventListener("message",tt,!1),j(it)},a.closeTimeout||0)}};nt=setTimeout(()=>{clearInterval(et),_e(new Error("Timeout")),window.removeEventListener("message",tt,!1)},(a.timeoutInSeconds||DEFAULT_WINDOW_TIMEOUT)*1e3),et=setInterval(()=>{var it;(it=a.popup)!=null&&it.closed&&(clearInterval(et),clearTimeout(nt),window.removeEventListener("message",tt,!1),_e(new Error("Popup closed")))},1e3),window.addEventListener("message",tt)}),keyPair=tweetnacl.box.keyPair();function useSecurity(){const[a,j]=useLocalStorageState("__encKey",{defaultValue:encodeKey(keyPair.publicKey),deserializer:it=>it,serializer:it=>it}),[_e,et]=useLocalStorageState("__decKey",{defaultValue:encodeKey(keyPair.secretKey),deserializer:it=>it,serializer:it=>it});return reactExports.useEffect(()=>{localStorage.getItem("__encKey")||j(encodeKey(keyPair.publicKey)),localStorage.getItem("__decKey")||et(encodeKey(keyPair.secretKey))},[]),{encryptKey:a,decryptKey:_e,decrypt:(it,ut=a,ft=_e)=>decrypt$1(it,ut,ft),encrypt:(it,ut=a)=>encrypt(it,ut)}}var lodash={exports:{}};/**
|
|
280
280
|
* @license
|
|
281
281
|
* Lodash <https://lodash.com/>
|
|
282
282
|
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
@@ -2578,4 +2578,4 @@ ${et}
|
|
|
2578
2578
|
${a=>a.scrollable?"":"overflow: hidden"};
|
|
2579
2579
|
}
|
|
2580
2580
|
`;function GlobalSubscriber(){const{t:a}=useLocaleContext(),{session:j}=useSessionContext$1(),{info:_e,refresh:et}=useNodeContext();return useSubscription(constant.TeamEvents.userUpdated,({teamDid:nt,user:tt})=>{nt===_e.did&&tt&&!tt.approved&&j&&j.user&&j.user.did===tt.did&&(toast.warning(a("session.forbidLogin"),{autoHideDuration:10*1e3}),j.logout())}),useSubscription(constant$3.EVENTS.NOTIFICATION_CREATE,nt=>{nt.entityType==="node"&&et({silent:!0})}),useSubscription(constant$3.EVENTS.NODE_UPDATED,()=>{et({silent:!0})}),null}var util={},baseUniq=_baseUniq;function uniq(a){return a&&a.length?baseUniq(a):[]}var uniq_1=uniq;const uniq$1=getDefaultExportFromCjs$1(uniq_1),require$$6=getAugmentedNamespace(dist$2);class Node{constructor(j){this.value=j,this.next=void 0}}let Queue$1=class{constructor(){this.clear()}enqueue(j){const _e=new Node(j);this._head?(this._tail.next=_e,this._tail=_e):(this._head=_e,this._tail=_e),this._size++}dequeue(){const j=this._head;if(j)return this._head=this._head.next,this._size--,j.value}clear(){this._head=void 0,this._tail=void 0,this._size=0}get size(){return this._size}*[Symbol.iterator](){let j=this._head;for(;j;)yield j.value,j=j.next}};var yoctoQueue=Queue$1;const Queue=yoctoQueue,pLimit=a=>{if(!((Number.isInteger(a)||a===1/0)&&a>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");const j=new Queue;let _e=0;const et=()=>{_e--,j.size>0&&j.dequeue()()},nt=async(ut,ft,...pt)=>{_e++;const dt=(async()=>ut(...pt))();ft(dt);try{await dt}catch{}et()},tt=(ut,ft,...pt)=>{j.enqueue(nt.bind(null,ut,ft,...pt)),(async()=>(await Promise.resolve(),_e<a&&j.size>0&&j.dequeue()()))()},it=(ut,...ft)=>new Promise(pt=>{tt(ut,pt,...ft)});return Object.defineProperties(it,{activeCount:{get:()=>_e},pendingCount:{get:()=>j.size},clearQueue:{value:()=>{j.clear()}}}),it};var pLimit_1=pLimit,engine={},browser={};browser.endianness=function(){return"LE"};browser.hostname=function(){return typeof location<"u"?location.hostname:""};browser.loadavg=function(){return[]};browser.uptime=function(){return 0};browser.freemem=function(){return Number.MAX_VALUE};browser.totalmem=function(){return Number.MAX_VALUE};browser.cpus=function(){return[]};browser.type=function(){return"Browser"};browser.release=function(){return typeof navigator<"u"?navigator.appVersion:""};browser.networkInterfaces=browser.getNetworkInterfaces=function(){return{}};browser.arch=function(){return"javascript"};browser.platform=function(){return"browser"};browser.tmpdir=browser.tmpDir=function(){return"/tmp"};browser.EOL=`
|
|
2581
|
-
`;browser.homedir=function(){return"/"};(function(a){var j=commonjsGlobal&&commonjsGlobal.__importDefault||function(pt){return pt&&pt.__esModule?pt:{default:pt}};Object.defineProperty(a,"__esModule",{value:!0}),a.hasMountPoint=a.hasStartEngine=a.isPackBlocklet=a.isGatewayBlocklet=a.getBlockletEngine=void 0;const _e=j(browser),et=constant,nt=pt=>{if(pt===void 0)throw new Error("blocklet meta param is required");const{engine:dt}=pt;if(!dt)return{interpreter:"node",source:""};if(!Array.isArray(dt))return dt;const mt=_e.default.platform(),Et=dt.find(Tt=>Tt.platform===mt);if(!Et)throw new Error(`can not find a proper engine interpreter on ${mt}`);return Et};a.getBlockletEngine=nt;const tt=pt=>(pt==null?void 0:pt.group)===et.BlockletGroup.gateway;a.isGatewayBlocklet=tt;const it=pt=>(pt==null?void 0:pt.group)===et.BlockletGroup.pack;a.isPackBlocklet=it;const ut=pt=>!!(pt!=null&&pt.main)||(0,a.getBlockletEngine)(pt||{}).interpreter==="blocklet";a.hasStartEngine=ut;const ft=pt=>((0,a.hasStartEngine)(pt)||((pt==null?void 0:pt.interfaces)||[]).find(dt=>dt.type===et.BLOCKLET_INTERFACE_TYPE_WEB))&&(0,a.isGatewayBlocklet)(pt)===!1;a.hasMountPoint=ft})(engine);(function(a){var j=commonjsGlobal&&commonjsGlobal.__importDefault||function(fn){return fn&&fn.__esModule?fn:{default:fn}};Object.defineProperty(a,"__esModule",{value:!0}),a.hasStartEngine=a.isPackBlocklet=a.isGatewayBlocklet=a.isAccessible=a.isRunning=a.isBeforeInstalled=a.isInProgress=a.getBlockletServices=a.getBlockletAppIdList=a.getRolesFromAuthConfig=a.isPreferenceKey=a.isExternalBlocklet=a.getBlockletChainInfo=a.getChainInfo=a.getConnectAppUrl=a.getParentComponentName=a.filterComponentsV2=a.findComponentByIdV2=a.findComponentV2=a.findComponentById=a.findComponent=a.getComponentBundleId=a.getComponentName=a.getComponentId=a.replaceSlotToIp=a.getComponentWhoCanAccess=a.getWhoCanAccess=a.findServiceFromMeta=a.findWebInterfacePort=a.findWebInterface=a.fixBlockletStatus=a.getAppDescription=a.getDisplayName=a.getAppName=a.hasRunnableComponent=a.wipeSensitiveData=a.isEnvShareable=a.isEnvShareableToClient=a.getComponentMissingConfigs=a.getAppMissingConfigs=a.getSharedConfigObj=a.isDeletableBlocklet=a.forEachComponentV2Sync=a.forEachComponentV2=a.forEachChildSync=a.forEachChild=a.forEachBlockletSync=a.forEachBlocklet=a.isFreeComponent=a.isFreeBlocklet=void 0,a.hasResourceType=void 0,a.getAppUrl=Jt;const _e=j(get_1),et=j(uniq_1),nt=require$$6,tt=j(pLimit_1),it=j(constant$3),ut=constant,ft=engine;Object.defineProperty(a,"hasStartEngine",{enumerable:!0,get:function(){return ft.hasStartEngine}}),Object.defineProperty(a,"isGatewayBlocklet",{enumerable:!0,get:function(){return ft.isGatewayBlocklet}}),Object.defineProperty(a,"isPackBlocklet",{enumerable:!0,get:function(){return ft.isPackBlocklet}});const{NODE_SERVICES:pt,SLOT_FOR_IP_DNS_SITE:dt,WHO_CAN_ACCESS:mt,WHO_CAN_ACCESS_PREFIX_ROLES:Et}=it.default,Tt=(fn,En=[])=>`${En.map($n=>$n&&$n.meta?$n.meta.did:"").join("/")}${En.length?"/":""}${fn&&fn.meta?fn.meta.did:""}`;a.getComponentId=Tt;const St=(fn,En=[])=>`${En.map($n=>$n&&$n.meta?$n.meta.name:"").join("/")}${En.length?"/":""}${fn&&fn.meta?fn.meta.name:""}`;a.getComponentName=St;const $t=fn=>`${fn.meta.bundleName}@${fn.meta.version}`;a.getComponentBundleId=$t;const Dt=fn=>{if(!fn)return"";const En=fn.split("/");return En.pop(),!En.length||(En[En.length-1].startsWith("@")&&En.pop(),!En.length)?"":En.join("/")};a.getParentComponentName=Dt;const At=(fn,En,{parallel:$n=!1,concurrencyLimit:zn=5,sync:nn,params:Ft,_parent:Xt,_root:hn,_level:Sn=0,_tasks:Fn,_ancestors:kn=[],_limit:Pn}={})=>{const Wn=hn||Xt||fn,In=Tt(fn,kn),Nn=kn.concat(fn);if(nn){const Gn=En(fn,{parent:Xt,root:Wn,level:Sn,params:Ft,ancestors:kn,id:In});if(fn.children)for(const Ir of fn.children)At(Ir,En,{sync:nn,params:Gn,_parent:fn,_root:Wn,_level:Sn+1,_ancestors:Nn});return null}if(!$n)return new Promise(async(Gn,Ir)=>{try{const Hn=await En(fn,{parent:Xt,root:Wn,level:Sn,ancestors:kn,params:Ft,id:In});if(fn.children)for(const Xn of fn.children)await At(Xn,En,{params:Hn,_parent:fn,_root:Wn,_level:Sn+1,_ancestors:Nn});Gn(null)}catch(Hn){Ir(Hn)}});const fr=Pn||(0,tt.default)(zn),Un=Fn||[];if(Un.push(fr(()=>En(fn,{parent:Xt,root:Wn,level:Sn,ancestors:kn,id:In}))),fn.children)for(const Gn of fn.children)At(Gn,En,{parallel:$n,_parent:fn,_root:Wn,_level:Sn+1,_tasks:Un,_ancestors:Nn,_limit:fr});return Fn?null:Promise.all(Un)};a.forEachBlocklet=At;const Pt=(fn,En)=>At(fn,En,{sync:!0});a.forEachBlockletSync=Pt;const Lt=(fn,En,{parallel:$n=!1,concurrencyLimit:zn=5,sync:nn}={})=>{if(nn){if(fn.children)for(const hn of fn.children)En(hn);return null}if(!$n)return new Promise(async(hn,Sn)=>{try{if(fn.children)for(const Fn of fn.children)await En(Fn);hn(null)}catch(Fn){Sn(Fn)}});const Ft=(0,tt.default)(zn),Xt=[];if(fn.children)for(const hn of fn.children)Xt.push(Ft(()=>En(hn)));return Promise.all(Xt)};a.forEachComponentV2=Lt;const It=(fn,En)=>Lt(fn,En,{sync:!0});a.forEachComponentV2Sync=It;const Wt=(fn,En,$n)=>At(fn,(zn,nn)=>nn.level===0?{}:En(zn,nn),$n);a.forEachChild=Wt;const Vt=(fn,En)=>Wt(fn,En,{sync:!0});a.forEachChildSync=Vt;const Ht=(fn,En,{_ancestors:$n=[],returnAncestors:zn=!1}={})=>{if(!En)return null;if(En(fn,{ancestors:$n}))return zn?{component:fn,ancestors:$n}:fn;for(const nn of fn.children||[]){const Ft=$n.concat(fn),Xt=Ht(nn,En,{_ancestors:Ft,returnAncestors:zn});if(Xt)return Xt}return null};a.findComponent=Ht;const Kt=(fn,En,{returnAncestors:$n=!1}={})=>(Array.isArray(En)&&(En=En.join("/")),Ht(fn,(zn,{ancestors:nn})=>{const Ft=Tt(zn,nn);return En===Ft},{returnAncestors:$n}));a.findComponentById=Kt;const Qt=(fn,En)=>{if(!En)return null;for(const $n of fn.children||[])if(En($n,fn))return $n;return null};a.findComponentV2=Qt;const mn=(fn,En)=>En?(Array.isArray(En)&&(En=En.join("/")),Qt(fn,($n,zn)=>{if(En.includes("/")){const nn=Tt($n,[zn]);return En===nn}return En===$n.meta.did})):null;a.findComponentByIdV2=mn;const Ct=(fn,En)=>{if(!En)return[];const $n=[];for(const zn of fn.children||[])En(zn,fn)&&$n.push(zn);return $n};a.filterComponentsV2=Ct;const rt=fn=>!!fn&&!!(fn.key||fn.name)&&!fn.secure&&fn.shared!==!1&&!ut.BLOCKLET_CONFIGURABLE_KEY[fn.key||fn.name];a.isEnvShareableToClient=rt;const st=fn=>!!fn&&!!(fn.key||fn.name)&&!fn.secure&&!!fn.shared&&!ut.BLOCKLET_CONFIGURABLE_KEY[fn.key||fn.name];a.isEnvShareable=st;const ct=(fn,En)=>{const $n={};return!fn||!En||(Array.isArray(fn.configs)&&fn.configs.forEach(({key:zn,value:nn,secure:Ft})=>{if(!st({key:zn,secure:Ft,shared:!0}))return;const Xt=(fn.configObj||{})[zn]||nn,hn=(En.configs||[]).find(Sn=>Sn.key===zn);(!hn||st(hn)||!hn.value&&!(En.configObj||{})[hn.key])&&($n[zn]=Xt)}),(fn.configs||[]).forEach(({key:zn,value:nn})=>{[ut.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_CHAIN_HOST,ut.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_CHAIN_ID,ut.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_CHAIN_TYPE].includes(zn)&&($n[ut.CHAIN_PROP_MAP[zn]]=nn)})),$n};a.getSharedConfigObj=ct;const ht=fn=>fn.key.startsWith(ut.BLOCKLET_PREFERENCE_PREFIX)===!0;a.isPreferenceKey=ht;const vt=(fn,En)=>!!(fn.required&&(!fn.value&&!En[fn.key]||Object.values(ut.CHAIN_PROP_MAP).includes(fn.key)&&Object.keys(En).includes(fn.key)&&!En[fn.key])),xt=(fn={})=>{const En=[];return It(fn,$n=>{var Ft;if(((Ft=$n.meta)==null?void 0:Ft.group)===ut.BlockletGroup.gateway)return;const zn=$n.configs||[],nn=ct(fn,$n);zn.forEach(Xt=>{vt(Xt,nn)&&En.push({did:$n.meta.did,key:Xt.key,description:Xt.description})})}),En.filter($n=>!ht($n))};a.getAppMissingConfigs=xt;const wt=(fn={},En={})=>{const $n=[],zn=fn.configs||[],nn=ct(En,fn);return zn.forEach(Ft=>{vt(Ft,nn)&&$n.push({did:fn.meta.did,key:Ft.key,description:Ft.description})}),$n};a.getComponentMissingConfigs=wt;const yt=fn=>fn.payment?(fn.payment.price||[]).map($n=>$n.value||0).every($n=>$n===0):!0;a.isFreeBlocklet=yt;const ot=fn=>!fn.payment||!fn.payment.componentPrice?!0:!fn.payment.componentPrice.length;a.isFreeComponent=ot;const bt=fn=>fn&&(At(fn,En=>{En.configs&&(En.configs=En.configs.filter($n=>!ht($n)),En.configs.forEach($n=>{$n.secure&&($n.value=$n.value?"__encrypted__":"")})),(En.environments||[]).forEach($n=>{["BLOCKLET_APP_SK","BLOCKLET_APP_PSK"].includes($n.key)&&($n.value="__encrypted__")}),(En.migratedFrom||[]).forEach($n=>{$n.appSk="__encrypted__"}),delete fn.configObj,delete fn.environmentObj},{sync:!0}),fn);a.wipeSensitiveData=bt;const Mt=fn=>{if(!fn)return!1;const En=fn.environments.find($n=>$n.key==="BLOCKLET_DELETABLE");return En?En.value==="yes":!0};a.isDeletableBlocklet=Mt;const Ot=fn=>{let En=!1;return Pt(fn,$n=>{$n.meta.group!==ut.BlockletGroup.gateway&&(En=!0)}),En};a.hasRunnableComponent=Ot;const zt=(fn,En=!1)=>{if(!fn)return"";const{meta:$n}=fn;let zn;if(!En&&fn.environments){const nn=fn.environments.find(Ft=>Ft.key==="BLOCKLET_APP_NAME");nn&&nn.value&&(zn=nn.value)}return zn||$n.title||$n.name};a.getAppName=zt,a.getDisplayName=zt;const Bt=(fn,En=!1)=>{if(!fn)return"";const{meta:$n}=fn;let zn;if(!En&&fn.environments){const nn=fn.environments.find(Ft=>Ft.key==="BLOCKLET_APP_DESCRIPTION");nn&&nn.value&&(zn=nn.value)}return zn||$n.description||$n.name};a.getAppDescription=Bt;function Jt(fn){var zn,nn,Ft;const En=(Ft=(nn=(zn=fn==null?void 0:fn.site)==null?void 0:zn.domainAliases)==null?void 0:nn.sort((Xt,hn)=>{var Sn,Fn,kn,Pn;return(Sn=Xt.accessibility)!=null&&Sn.accessible&&((Fn=hn.accessibility)!=null&&Fn.accessible)?+Xt.isProtected-+hn.isProtected:+((kn=hn.accessibility)==null?void 0:kn.accessible)-+((Pn=Xt.accessibility)==null?void 0:Pn.accessible)}))==null?void 0:Ft.map(Xt=>{var Fn;const hn=(Fn=Xt==null?void 0:Xt.domainStatus)!=null&&Fn.isHttps?"https://":"http://",Sn=Xt==null?void 0:Xt.value;return`${hn}${Sn}`}).filter(Boolean);return En==null?void 0:En[0]}const qt=fn=>{fn&&(Pt(fn,En=>{En.status=(0,ut.fromBlockletStatus)(En.status),En.source!==void 0&&(En.source=(0,ut.fromBlockletSource)(En.source))}),fn.settings&&(fn.settings.children||[]).forEach(En=>{Pt(En,$n=>{$n.status=(0,ut.fromBlockletStatus)($n.status),$n.source!==void 0&&($n.source=(0,ut.fromBlockletSource)($n.source))})}))};a.fixBlockletStatus=qt;const tn=fn=>{if(!fn)return null;const En=fn.meta||fn||{},{interfaces:$n=[]}=En;return Array.isArray($n)?$n.find(zn=>zn.type===ut.BLOCKLET_INTERFACE_TYPE_WEB):null};a.findWebInterface=tn;const cn=fn=>{if(!fn)return null;const En=tn(fn),{ports:$n}=fn;return!En||!$n?null:$n[En.port]};a.findWebInterfacePort=cn;const gn=(fn,En)=>{const $n=[En],zn=tn(fn);return zn?(zn.services||[]).find(nn=>$n.includes(nn.name)):null};a.findServiceFromMeta=gn;const Yt=fn=>{if(!fn)return mt.ALL;if((0,_e.default)(fn,"settings.whoCanAccess"))return fn.settings.whoCanAccess;const En=gn(fn.meta,pt.AUTH);return(0,_e.default)(En,"config.whoCanAccess")?En.config.whoCanAccess:mt.ALL};a.getWhoCanAccess=Yt;const Nt=(fn,En)=>{const $n=(fn.configs||[]).find(nn=>nn.key===ut.BLOCKLET_CONFIGURABLE_KEY.COMPONENT_ACCESS_WHO);if($n)return $n.value;if(En&&(0,_e.default)(En,"settings.whoCanAccess")&&(0,_e.default)(En,"settings.whoCanAccess")!==mt.ALL)return(0,_e.default)(En,"settings.whoCanAccess");const zn=gn(fn.meta,pt.AUTH);return(0,_e.default)(zn,"config.whoCanAccess")?zn.config.whoCanAccess:mt.ALL};a.getComponentWhoCanAccess=Nt;const Gt=({request:fn,baseUrl:En})=>{const $n=fn.headers["x-blocklet-did"]||"",zn=fn.headers["x-blocklet-real-did"]||"",nn=fn.headers["x-path-prefix"]||"/",Ft=fn.headers["x-group-path-prefix"]||"/";let Xt=En;return $n!==zn&&nn!==Ft&&(Xt=(0,nt.joinURL)(Xt,"/").replace(nn,Ft)),Xt};a.getConnectAppUrl=Gt;const sn=(fn,En)=>{const $n=(En||"").includes(":")?":":/\./;return(fn||"").replace(dt,(En||"").replace(new RegExp($n,"g"),"-"))};a.replaceSlotToIp=sn;const an=fn=>{const En=Object.entries(ut.CHAIN_INFO_CONFIG).reduce(($n,zn)=>{const[nn,[Ft,Xt]]=zn;return $n[Ft]=(0,_e.default)(fn,nn)||Xt,$n},{});return En.type==="ethereum"&&En.id==="none"&&(En.id="1"),En};a.getChainInfo=an;const vn=fn=>{const En=an({});if(!fn)return En;const $n=an(fn.configObj);if($n.host!=="none")return $n;let zn;return Vt(fn,nn=>{if(zn&&zn.host!=="none")return;const Ft=an(nn.configObj);Ft.host!=="none"&&(zn=Ft)}),zn||En};a.getBlockletChainInfo=vn;const Rn=fn=>!!(fn!=null&&fn.controller);a.isExternalBlocklet=Rn;const un=fn=>fn.whoCanAccess.startsWith(Et)?fn.whoCanAccess.substring(Et.length).split(","):[];a.getRolesFromAuthConfig=un;const yn=fn=>{const En=Array.isArray(fn.migratedFrom)?fn.migratedFrom.map($n=>$n.appDid):[];return(0,et.default)([fn.appDid,fn.appPid,...En].filter(Boolean))};a.getBlockletAppIdList=yn;const jn=fn=>{const En=[];return fn&&Pt(fn,$n=>{var nn;(((nn=$n.meta)==null?void 0:nn.interfaces)||[]).filter(Ft=>Ft.type===ut.BLOCKLET_INTERFACE_TYPE_SERVICE).forEach(Ft=>{const Xt=Ft.port||{};En.push({name:Ft.name,protocol:Ft.protocol,port:Number(Xt.external),upstreamPort:Number(($n.ports||{})[Xt.internal])})})}),En};a.getBlockletServices=jn;const Tn=fn=>[ut.BlockletStatus.downloading,ut.BlockletStatus.waiting,ut.BlockletStatus.starting,ut.BlockletStatus.installing,ut.BlockletStatus.stopping,ut.BlockletStatus.upgrading,"downloading","waiting","starting","installing","extracting","stopping","upgrading","restarting","deleting"].includes(fn);a.isInProgress=Tn;const Mn=fn=>[ut.BlockletStatus.added,ut.BlockletStatus.waiting,ut.BlockletStatus.downloading,ut.BlockletStatus.installing,"added","waiting","downloading","installing"].includes(fn);a.isBeforeInstalled=Mn;const lr=fn=>[ut.BlockletStatus.running,"running"].includes(fn);a.isRunning=lr;const xn=fn=>[ut.BlockletStatus.running,ut.BlockletStatus.waiting,ut.BlockletStatus.downloading,"running","waiting","downloading"].includes(fn);a.isAccessible=xn;const Cn=(fn,{type:En,did:$n}={type:"",did:""})=>{var zn,nn,Ft;return fn?!(0,ft.hasStartEngine)(fn.meta)&&((Ft=(nn=(zn=fn.meta)==null?void 0:zn.resource)==null?void 0:nn.bundles)==null?void 0:Ft.length)>0&&(fn.meta.resource.bundles||[]).some(Xt=>Xt.type===En&&Xt.did===$n):!1};a.hasResourceType=Cn,a.default={isFreeBlocklet:yt,isFreeComponent:ot,forEachBlocklet:At,forEachBlockletSync:Pt,forEachChild:Wt,forEachChildSync:Vt,forEachComponentV2:Lt,forEachComponentV2Sync:It,isDeletableBlocklet:Mt,getSharedConfigObj:ct,getAppMissingConfigs:xt,getComponentMissingConfigs:wt,isEnvShareableToClient:rt,isEnvShareable:st,wipeSensitiveData:bt,hasRunnableComponent:Ot,getAppName:zt,getAppDescription:Bt,getAppUrl:Jt,getDisplayName:zt,fixBlockletStatus:qt,findWebInterface:tn,findWebInterfacePort:cn,findServiceFromMeta:gn,getWhoCanAccess:Yt,getComponentWhoCanAccess:Nt,replaceSlotToIp:sn,getComponentId:Tt,getComponentName:St,getComponentBundleId:$t,findComponent:Ht,findComponentById:Kt,findComponentV2:Qt,findComponentByIdV2:mn,filterComponentsV2:Ct,getParentComponentName:Dt,getConnectAppUrl:Gt,getChainInfo:an,getBlockletChainInfo:vn,isExternalBlocklet:Rn,isPreferenceKey:ht,getRolesFromAuthConfig:un,getBlockletServices:jn,isInProgress:Tn,isBeforeInstalled:Mn,isRunning:lr,isAccessible:xn,isGatewayBlocklet:ft.isGatewayBlocklet,isPackBlocklet:ft.isPackBlocklet,hasStartEngine:ft.hasStartEngine,hasResourceType:Cn}})(util);const getServerUrl=(a,j=!1)=>{const _e=a.routing.adminPath;return j?encodeURIComponent(joinURL(window.location.origin,_e)):joinURL(window.location.origin,_e)},getLaunchAgreementUrl=(a,j,_e)=>{const et=getServerUrl(j),nt=joinURL(_e,`/api/blocklets/${a.did}/blocklet.json`),tt=new URL(joinURL(et,"/launch-blocklet/agreement"));return tt.searchParams.set("blocklet_meta_url",nt),tt.searchParams.set("from",window.location.href),tt.href},ensureDomainAliases=async(a,{getIP:j}={})=>{if(!a||!a.length)return[];if(!j||!a.some(et=>et.value.includes(constant$3.SLOT_FOR_IP_DNS_SITE)))return a;const _e=await j();return _e?a.map(et=>{try{return et.value=util.replaceSlotToIp(et.value,_e),et}catch{return et}}).filter(Boolean):a},getAppCapabilities=a=>{const j={didSpace:null};return util.forEachBlockletSync(a,_e=>{var et,nt;j.didSpace===constant.BLOCKLET_APP_SPACE_REQUIREMENT.REQUIRED||j.didSpace===constant.BLOCKLET_APP_SPACE_REQUIREMENT.REQUIRED_ON_SETUP||(nt=(et=_e==null?void 0:_e.meta)==null?void 0:et.capabilities)!=null&&nt.didSpace&&(j.didSpace=_e.meta.capabilities.didSpace)}),j},fixBlocklet=async(a,{fixRuntime:j=!0,oldBlocklet:_e,getIP:et}={})=>{if(a.site||(a.site={domainAliases:[],rules:[]}),a.site.rules.forEach(nt=>{nt.from.pathPrefix=normalizePathPrefix$1(nt.from.pathPrefix||"/")}),a.site.rules=sortBy$1(a.site.rules,nt=>nt.from.pathPrefix),j===!0)a.site.domainAliases=await ensureDomainAliases(a.site.domainAliases,{getIP:et}),a.appRuntimeInfo&&(a.appRuntimeInfo.startAt=new Date-a.appRuntimeInfo.uptime),util.forEachBlockletSync(a,nt=>{nt.runtimeInfo&&(nt.runtimeInfo.startAt=new Date-nt.runtimeInfo.uptime)});else if(j==="merge-old"&&_e){a.site.domainAliases=_e.site.domainAliases,a.appRuntimeInfo=_e.appRuntimeInfo;const nt={};util.forEachBlockletSync(_e,(tt,{id:it})=>{nt[it]=tt}),util.forEachBlockletSync(a,(tt,{id:it})=>{const ut=nt[it];ut&&(tt.runtimeInfo=ut.runtimeInfo,tt.diskInfo=ut.diskInfo,tt.engine=ut.engine)})}else a.site.domainAliases=[];a.capabilities=getAppCapabilities(a)},DEFAULT_WALLET_TYPE="arcblock",getWalletType=(a,j=!1)=>{let _e;return j?(_e=(a.configs||[]).find(et=>et.key==="BLOCKLET_APP_CHAIN_TYPE"),_e&&_e.value||(_e=(a.environments||[]).find(et=>["CHAIN_TYPE","BLOCKLET_APP_CHAIN_TYPE"].includes(et.key)),_e&&_e.value)?_e.value:DEFAULT_WALLET_TYPE):(_e=(a.environments||[]).find(et=>["CHAIN_TYPE","BLOCKLET_APP_CHAIN_TYPE"].includes(et.name)),_e&&_e.default?_e.default:DEFAULT_WALLET_TYPE)},isServerless=a=>!isEmpty$2(a==null?void 0:a.controller);let cache=null;const fetch$1=async()=>{const a=window.env.apiPrefix||"/",j=joinURL(a,"/api/dns-resolve?accessible=1");try{return(await axios$4.get(j)).data.address}catch{return null}},getIp=()=>(cache||(cache=fetch$1()),cache),BlockletsContext=reactExports.createContext({}),{Provider:Provider$2,Consumer:Consumer$2}=BlockletsContext,mergeBlocklets=(a,j,_e)=>_e?a.map(et=>{const nt={...et},tt=j.find(it=>it.meta.did===et.meta.did);return tt&&_e.forEach(it=>{nt[it]=tt[it]}),nt}):j;function BlockletsProvider({children:a}){const j=useNodeContext(),_e=createClient(),[et,nt]=reactExports.useState(null),[tt,it]=reactExports.useState(!1),[ut,ft]=reactExports.useState([]),[pt,dt]=reactExports.useState([]),[mt,Et]=reactExports.useState(!1),Tt=(It,Wt)=>{util.isExternalBlocklet(It)?dt(Wt):ft(Wt)},St=4,$t=async({silent:It=!0,retries:Wt=St,updates:Vt,useCache:Ht=!0}={})=>{It||it(!0);try{nt(null);const{blocklets:Kt}=await _e.getBlocklets({input:{useCache:Ht}});for(const Ct of Kt)await fixBlocklet(Ct,{getIP:getIp});const Qt=Kt.filter(Ct=>!util.isExternalBlocklet(Ct)),mn=Kt.filter(util.isExternalBlocklet);ft(Ct=>mergeBlocklets(Ct,Qt,Vt)),dt(Ct=>mergeBlocklets(Ct,mn,Vt)),it(!1),Et(!0)}catch(Kt){Wt>0?setTimeout(()=>$t({silent:It,retries:Wt-1,useCache:Ht}),1e3):(it(!1),nt(Kt))}},Dt=async It=>{try{const{blocklet:Wt}=await j.api.getBlocklet({input:{did:It.meta.did,attachRuntimeInfo:!0}});await fixBlocklet(Wt,{getIP:getIp}),Tt(Wt,Vt=>Vt.some(Ht=>Ht.meta.did===Wt.meta.did)?Vt.map(Ht=>Ht.meta.did===Wt.meta.did?Wt:Ht):[...Vt,Wt])}catch(Wt){nt(Wt)}},At=It=>{j.refresh(),Dt(It)};reactExports.useEffect(()=>{$t({silent:!1})},[]);const Pt=It=>{const Wt={};util.forEachBlockletSync(It,(Vt,{id:Ht})=>{Wt[Ht]=constant.fromBlockletStatus(Vt.status)}),Tt(It,Vt=>Vt.map(Ht=>(Ht.meta.did===It.meta.did&&util.forEachBlockletSync(Ht,(Kt,{id:Qt})=>{Wt[Qt]&&(Kt.status=Wt[Qt])}),Ht)))};useSubscription(constant.BlockletEvents.added,It=>{It.status=constant.fromBlockletStatus(It.status),Tt(It,Wt=>[...Wt,It])}),useSubscription(constant.BlockletEvents.removed,It=>{j.refresh(),Tt(It,Wt=>Wt.filter(Vt=>Vt.meta.did!==It.meta.did))}),useSubscription(constant.BlockletEvents.statusChange,Pt),useSubscription(constant.BlockletEvents.installed,At),useSubscription(constant.BlockletEvents.upgraded,At),useSubscription(constant.BlockletEvents.updated,Dt),useSubscription(constant.BlockletEvents.startFailed,Dt);const Lt={loading:tt,error:et,data:ut,externalData:pt,refresh:$t,initialized:mt,api:_e};return jsxRuntimeExports.jsx(Provider$2,{value:{blocklets:Lt},children:a})}function useBlockletsContext(){const{blocklets:a}=reactExports.useContext(BlockletsContext);return a}const authorize=({user:a,launchType:j,nftId:_e})=>{var et;if(!a)return!1;if(j==="serverless"){if(!_e)throw new Error("nftId is required");return((et=a==null?void 0:a.controller)==null?void 0:et.nftId)===_e}return(a.permissions||[]).includes("mutate_blocklets")},isServerlessBlockletInstalled=a=>{var j,_e;return a.isGetBlocklet&&((_e=(j=a.runtimeBlocklet)==null?void 0:j.controller)==null?void 0:_e.consumedAt)},getRestoredAccessUrl=async a=>{const j=getBlockletUrls({blocklet:a});let _e="";return _e=j.find(et=>{try{const{hostname:nt}=new URL(et);return urlEvaluation.isSlpDomain(nt)}catch(nt){return console.error(nt),!1}}),_e||(_e=await getAccessibleUrl(j)),_e},LaunchBlockletContext=reactExports.createContext({}),{Provider:Provider$1,Consumer:Consumer$1}=LaunchBlockletContext;function LaunchBlockletProvider({children:a}){const{session:j}=useSessionContext$1(),{t:_e}=useLocaleContext(),{api:et,info:nt}=useNodeContext(),[tt]=useSearchParams(),it=createClient(),ut=tt.get("launchType"),ft=tt.get("fromLauncher"),pt=tt.get("blocklet_meta_url")||"",dt=tt.get("nftId")||"",mt=tt.get("launcherSessionId")||"",Et=tt.get("launcherUrl")||"",Tt=new URL(pt).origin,[St,$t]=reactExports.useState({meta:null,appDid:tt.get("appDid")||null,sessionId:tt.get("sessionId")||null,isFree:!0,isExternal:!1,isInstalling:!1,isInstalled:!1,isRunning:!1,launcherSession:null,registryUrl:""}),Dt=(mn,Ct)=>$t(rt=>({...rt,appDid:mn,sessionId:Ct})),At=authorize({user:j.user,launchType:ut,nftId:dt}),[Pt,Lt]=reactExports.useState(null),[It,Wt]=reactExports.useState(!0),Vt=reactExports.useMemo(()=>nt?getServerUrl(nt):"",[nt]),Ht=async mn=>{if(!mn)throw new Error("appDid should not be empty");const{blocklet:Ct}=await et.getBlocklet({input:{did:mn,attachConfig:!1}});if(!Ct)return null;const rt=constant.BlockletStatus[Ct.status],st=!!dt,ct=rt<constant.BlockletStatus.installed,ht=rt===constant.BlockletStatus.installed,vt=rt===constant.BlockletStatus.running;return $t(xt=>({...xt,isInstalled:ht,isRunning:vt,isExternal:st,isInstalling:ct})),{isInstalled:ht,isRunning:vt,isExternal:st,isInstalling:ct}},Kt=async()=>{Wt(!0);try{if(!pt)throw new Error(_e("common.invalidParam"));const[{meta:mn,isFree:Ct,registryUrl:rt},{launcherSession:st,error:ct}]=await Promise.all([et.getBlockletMetaFromUrl({input:{url:pt,checkPrice:!0}}),mt?et.getLauncherSession({input:{launcherSessionId:mt,launcherUrl:Et}}):Promise.resolve({})]);if(mt&&!st)throw new Error(`Launch session invalid: ${ct}`);if(!mn)throw new Error(_e("LaunchBlockletBlocklet.error.loadMetaFailed"));let ht={};At&&St.appDid&&(ht=await Ht(St.appDid)),$t(vt=>({...vt,...ht,meta:mn,isFree:Ct,registryUrl:rt,launcherSession:st}))}catch(mn){console.error(mn),Lt(mn.message)}finally{Wt(!1)}};reactExports.useEffect(()=>{var mn,Ct,rt;((mn=j==null?void 0:j.user)==null?void 0:mn.role)===constant$3.SERVER_ROLES.EXTERNAL_BLOCKLET_CONTROLLER&&((rt=(Ct=j==null?void 0:j.user)==null?void 0:Ct.controller)==null?void 0:rt.nftId)!==dt&&j.logout(),Kt()},[]),reactExports.useEffect(()=>{It||!St.meta||(At?St.appDid&&Ht(St.appDid).catch(mn=>{toast.error(mn.message)}):($t(mn=>({...mn,isInstalled:!1,isRunning:!1,isExternal:!1})),Lt(null)))},[At]);const Qt={meta:St.meta,isFree:St.isFree,appDid:St.appDid,sessionId:St.sessionId,isInstalling:St.isInstalling,isInstalled:St.isInstalled,isExternal:St.isExternal,isRunning:St.isRunning,serverUrl:Vt,storeUrl:St.registryUrl||Tt,blockletMetaUrl:pt,fromLauncher:ft,loading:It,error:Pt,api:it,getBlocklet:Ht,setAppDid:Dt,launcherUrl:Et,launcherSession:St.launcherSession,launcherSessionId:mt};return jsxRuntimeExports.jsx(Provider$1,{value:Qt,children:a})}function useLaunchBlockletContext(){return reactExports.useContext(LaunchBlockletContext)}function useQuery(){return new URLSearchParams(useLocation().search)}const BlockletAppContext=reactExports.createContext(),{Provider,Consumer}=BlockletAppContext;function BlockletAppProvider({children:a}){const _e=useQuery().get("blocklet_meta_url"),et=_default$2(async()=>{const{data:tt}=await axios$1.get(_e);return tt});if(et.loading)return jsxRuntimeExports.jsx(Center,{children:jsxRuntimeExports.jsx(CircularProgress,{})});const nt={meta:et.value,error:et.error};return jsxRuntimeExports.jsx(Provider,{value:nt,children:a})}BlockletAppProvider.propTypes={children:PropTypes.any.isRequired};function useBlockletAppContext(){return reactExports.useContext(BlockletAppContext)}const Dashboard=reactExports.lazy(()=>__vitePreload(()=>import("./index-CBYC6xoV.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url)),BlockletList=reactExports.lazy(()=>__vitePreload(()=>import("./index-DBUN7I_x.js"),__vite__mapDeps([5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,2,30,31,32,33,34]),import.meta.url)),BlockletRestore=reactExports.lazy(()=>__vitePreload(()=>import("./index-Co-UUK3y.js"),__vite__mapDeps([35,36,37,38,39,40,41,6,42,43,44,45,15,12,14,26,19,18]),import.meta.url)),BlockletStore=reactExports.lazy(()=>__vitePreload(()=>import("./index-C0A64lpg.js"),__vite__mapDeps([46,6,47,48,49,18,17,50,12,51,52,32,15,14,42,53,43,54,3,55,56,19,23,24,57,58,59]),import.meta.url)),Settings=reactExports.lazy(()=>__vitePreload(()=>import("./index-DUZgU2qh.js"),__vite__mapDeps([60,61,13,58,62,63,50,64,15,12,14,7,8,9,10,11,16,17,18,19,65,54,3,55,2,66,6,67,68,32,21,20,69,34,70,71,72,4,73]),import.meta.url)),LogPage=reactExports.lazy(()=>__vitePreload(()=>import("./index-BpBCpY0O.js"),__vite__mapDeps([74,75,23,24,12,76]),import.meta.url)),TeamPage=reactExports.lazy(()=>__vitePreload(()=>import("./index-fLBtZX_u.js"),__vite__mapDeps([77,61,13,78,79,80,18,6,12,14,81,16,82,83,32,84,85,86,17,15,7,8,9,10,11,19,87,34,88,89,50,25,26,49,21,90,56,3,2,91,92,93,55,94,33,23,24,95,96,97,48,51,98,1,54,71]),import.meta.url)),BlockletDetail=reactExports.lazy(()=>__vitePreload(()=>import("./detail-BpGjVixl.js"),__vite__mapDeps([99,61,13,20,21,22,6,19,23,24,31,56,90,59]),import.meta.url)),EULAPage=reactExports.lazy(()=>__vitePreload(()=>import("./index-BGNI59h2.js"),[],import.meta.url)),Notifications=reactExports.lazy(()=>__vitePreload(()=>import("./index-Dfddf3Zf.js"),__vite__mapDeps([100,1,81,16]),import.meta.url)),IssuePassport=reactExports.lazy(()=>__vitePreload(()=>import("./index-DNeFUdjP.js"),__vite__mapDeps([101,102,89,103,91,69,104]),import.meta.url)),LostPassport=reactExports.lazy(()=>__vitePreload(()=>import("./index-euGBouHi.js"),__vite__mapDeps([105,69,85,53,104,30]),import.meta.url)),ExchangePassport=reactExports.lazy(()=>__vitePreload(()=>import("./index-DALpnmZa.js"),__vite__mapDeps([106,104]),import.meta.url)),BlockletLauncher=reactExports.lazy(()=>__vitePreload(()=>import("./index-DQBtl0fk.js"),__vite__mapDeps([107,36,37,38,39,40,41,108,79,80,45,26,6,28,25,29,66]),import.meta.url)),NotFoundPage=reactExports.lazy(()=>__vitePreload(()=>import("./index-CAPmDJRT.js"),__vite__mapDeps([109,89]),import.meta.url)),Invite=reactExports.lazy(()=>__vitePreload(()=>import("./index-D6UaRj0X.js"),__vite__mapDeps([110,102,89,103,91,69,104]),import.meta.url)),Console=reactExports.lazy(()=>__vitePreload(()=>import("./index-UsBHl2fn.js").then(a=>a.a2),__vite__mapDeps([111,112]),import.meta.url)),AnalyticsPage=reactExports.lazy(()=>__vitePreload(()=>import("./index-BjImoaPY.js"),__vite__mapDeps([113,61,13,114,115,116,70,12,117,8,15,14,51,7,9,10,11,16,17,18,19,31,118,119,4,6,98,24]),import.meta.url));function useSharedContext(){const a=useNodeContext(),{session:j}=useSessionContext$1(),{wallet:_e}=useBrowser(),et=j.user&&j.user.did;return reactExports.useEffect(()=>{const nt=getWsClient();return et?nt.connect():nt.isConnected()&&nt.disconnect(),()=>{nt.isConnected()&&nt.disconnect()}},[et]),reactExports.useEffect(()=>{if(_e)return()=>{};const nt=()=>{document.visibilityState==="visible"&&j.refresh()};return document.addEventListener("visibilitychange",nt),()=>{document.removeEventListener("visibilitychange",nt)}},[]),{node:a,session:j}}function ProtectedApp(){var it;const{t:a}=useLocaleContext(),{node:j,session:_e}=useSharedContext(),et=useLocation();reactExports.useEffect(()=>{window.tracker&&typeof window.tracker.pageView=="function"&&window.tracker.pageView(`${et.pathname}${et.search}`)},[et]),reactExports.useEffect(()=>{var ut;((ut=_e==null?void 0:_e.user)==null?void 0:ut.role)===constant$3.SERVER_ROLES.EXTERNAL_BLOCKLET_CONTROLLER&&_e.logout()},[(it=_e==null?void 0:_e.user)==null?void 0:it.role]);const nt=jsxRuntimeExports.jsx(CircularProgress,{});if(j.loading||_e.loading)return jsxRuntimeExports.jsx(Center,{children:nt});if(!j.info.initialized)return getAuthMethod.getServerAuthMethod(j.info)==="nft"?jsxRuntimeExports.jsx(NodeVerifyOwner,{action:"verify-owner"}):jsxRuntimeExports.jsx(Center,{children:jsxRuntimeExports.jsx(NodeConnectOwner,{})});if(j.info.upgradeSessionId)return jsxRuntimeExports.jsx(Center,{children:jsxRuntimeExports.jsx(MaintainProgress,{})});if(!_e.user)return jsxRuntimeExports.jsx(NodeLogin,{loadingEle:nt});const tt=jsxRuntimeExports.jsx(Center,{children:jsxRuntimeExports.jsx(CircularProgress,{})});return jsxRuntimeExports.jsx(NotificationProvider,{children:jsxRuntimeExports.jsxs(BlockletsProvider,{children:[jsxRuntimeExports.jsx(Health,{}),jsxRuntimeExports.jsx(CheckNodeStatus,{}),jsxRuntimeExports.jsx(GlobalSubscriber,{}),jsxRuntimeExports.jsx(reactExports.Suspense,{fallback:tt,children:jsxRuntimeExports.jsxs(Routes,{children:[jsxRuntimeExports.jsx(Route,{path:"/dashboard",element:jsxRuntimeExports.jsx(DashboardRoute,{fullWidth:!0,title:"Dashboard",children:jsxRuntimeExports.jsx(Dashboard,{})})}),jsxRuntimeExports.jsx(Route,{path:"/blocklets",element:jsxRuntimeExports.jsx(DashboardRoute,{fullWidth:!0,title:a("common.blocklets"),children:jsxRuntimeExports.jsx(BlockletList,{})})}),jsxRuntimeExports.jsx(Route,{path:"/blocklets/:did/:tab",element:jsxRuntimeExports.jsx(DashboardRoute,{fullWidth:!0,title:"Blocklets",children:jsxRuntimeExports.jsx(BlockletDetail,{})})}),jsxRuntimeExports.jsx(Route,{path:"/settings/:tab",element:jsxRuntimeExports.jsx(DashboardRoute,{fullWidth:!0,title:a("common.setting"),children:jsxRuntimeExports.jsx(Settings,{})})}),jsxRuntimeExports.jsx(Route,{path:"/eula",element:jsxRuntimeExports.jsx(DashboardRoute,{fullWidth:!0,title:a("setup.steps.eula"),children:jsxRuntimeExports.jsx(EULAPage,{})})}),jsxRuntimeExports.jsx(Route,{path:"/store",element:jsxRuntimeExports.jsx(DashboardRoute,{fullWidth:!0,title:a("common.store"),children:jsxRuntimeExports.jsx(BlockletStore,{})})}),jsxRuntimeExports.jsx(Route,{path:"/console",element:jsxRuntimeExports.jsx(DashboardRoute,{title:`GraphQL ${a("common.console")}`,scrollable:!1,fullWidth:!0,children:jsxRuntimeExports.jsx(Console,{})})}),jsxRuntimeExports.jsx(Route,{path:"/notifications",element:jsxRuntimeExports.jsx(DashboardRoute,{children:jsxRuntimeExports.jsx(Notifications,{})})}),jsxRuntimeExports.jsx(Route,{path:"/team/:tab",element:jsxRuntimeExports.jsx(DashboardRoute,{fullWidth:!0,title:a("common.team"),children:jsxRuntimeExports.jsx(TeamPage,{})})}),jsxRuntimeExports.jsx(Route,{path:"/logs/:name",element:jsxRuntimeExports.jsx(DashboardRoute,{scrollable:!1,fullWidth:!0,title:a("common.logs"),children:jsxRuntimeExports.jsx(LogPage,{})})}),jsxRuntimeExports.jsx(Route,{path:"/analytics/:tab",element:jsxRuntimeExports.jsx(DashboardRoute,{fullWidth:!0,title:a("common.analytics"),children:jsxRuntimeExports.jsx(AnalyticsPage,{})})}),jsxRuntimeExports.jsx(Route,{path:"/",element:jsxRuntimeExports.jsx(Navigate,{to:"/dashboard",replace:!0})}),jsxRuntimeExports.jsx(Route,{path:"/team",element:jsxRuntimeExports.jsx(Navigate,{to:"/team/members",replace:!0})}),jsxRuntimeExports.jsx(Route,{path:"/analytics",element:jsxRuntimeExports.jsx(Navigate,{to:"/analytics/traffic",replace:!0})}),jsxRuntimeExports.jsx(Route,{path:"/logs",element:jsxRuntimeExports.jsx(Navigate,{to:"/logs/abtnode",replace:!0})}),jsxRuntimeExports.jsx(Route,{path:"/router",element:jsxRuntimeExports.jsx(Navigate,{to:"/router/rules",replace:!0})}),jsxRuntimeExports.jsx(Route,{path:"/settings",element:jsxRuntimeExports.jsx(Navigate,{to:"/settings/basic",replace:!0})}),jsxRuntimeExports.jsx(Route,{path:"/marketplace",element:jsxRuntimeExports.jsx(Navigate,{to:"/store",replace:!0})}),jsxRuntimeExports.jsx(Route,{path:"/marketplace/:did",element:jsxRuntimeExports.jsx(Navigate,{to:"/store/:did",replace:!0})}),jsxRuntimeExports.jsx(Route,{path:"*",element:jsxRuntimeExports.jsx(NotFoundPage,{})})]})})]})})}function UnprotectedWrapper({children:a}){const{node:j,session:_e}=useSharedContext();return j.loading||!_e.initialized&&_e.loading?jsxRuntimeExports.jsx(Center,{children:jsxRuntimeExports.jsx(CircularProgress,{})}):j.info.upgradeSessionId?jsxRuntimeExports.jsx(Center,{children:jsxRuntimeExports.jsx(MaintainProgress,{})}):a}function App(){const{changeLocale:a}=useLocaleContext(),j=useQuery();reactExports.useEffect(()=>{const et=j.get("locale");et&&["zh","en"].includes(et)&&a(et)},[]);const _e=jsxRuntimeExports.jsx(Center,{children:jsxRuntimeExports.jsx(CircularProgress,{})});return jsxRuntimeExports.jsx(reactExports.Suspense,{fallback:_e,children:jsxRuntimeExports.jsxs(Routes,{children:[jsxRuntimeExports.jsx(Route,{path:`${constant$3.WELLKNOWN_SERVICE_PATH_PREFIX}/issue-passport`,element:jsxRuntimeExports.jsx(UnprotectedWrapper,{children:jsxRuntimeExports.jsx(IssuePassport,{})})}),jsxRuntimeExports.jsx(Route,{path:`${constant$3.WELLKNOWN_SERVICE_PATH_PREFIX}/lost-passport`,element:jsxRuntimeExports.jsx(UnprotectedWrapper,{children:jsxRuntimeExports.jsx(LostPassport,{})})}),jsxRuntimeExports.jsx(Route,{path:`${constant$3.WELLKNOWN_SERVICE_PATH_PREFIX}/exchange-passport`,element:jsxRuntimeExports.jsx(UnprotectedWrapper,{children:jsxRuntimeExports.jsx(ExchangePassport,{})})}),jsxRuntimeExports.jsx(Route,{path:"/accept-server",element:jsxRuntimeExports.jsx(UnprotectedWrapper,{children:jsxRuntimeExports.jsx(NodeVerifyOwner,{action:"accept-server"})})}),jsxRuntimeExports.jsx(Route,{path:"/launch-blocklet/*",element:jsxRuntimeExports.jsx(UnprotectedWrapper,{children:jsxRuntimeExports.jsx(LaunchBlockletProvider,{children:jsxRuntimeExports.jsx(BlockletLauncher,{})})})}),jsxRuntimeExports.jsx(Route,{path:"/blocklets/restore/*",element:jsxRuntimeExports.jsx(UnprotectedWrapper,{children:jsxRuntimeExports.jsx(BlockletAppProvider,{children:jsxRuntimeExports.jsx(BlockletRestore,{})})})}),jsxRuntimeExports.jsx(Route,{path:`${constant$3.WELLKNOWN_SERVICE_PATH_PREFIX}/invite`,element:jsxRuntimeExports.jsx(UnprotectedWrapper,{children:jsxRuntimeExports.jsx(Invite,{})})}),jsxRuntimeExports.jsx(Route,{path:"/*",element:jsxRuntimeExports.jsx(ProtectedApp,{})})]})})}function AppWrapper(){const a=window.env&&window.env.apiPrefix?window.env.apiPrefix:"/";return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(CssBaseline,{}),jsxRuntimeExports.jsx(BrowserRouter,{history,basename:a,children:jsxRuntimeExports.jsx(Root$5,{children:jsxRuntimeExports.jsx(App,{})})})]})}const root=createRoot(document.getElementById("root"));root.render(jsxRuntimeExports.jsx(AppWrapper,{}));const prefix=window.env&&window.env.apiPrefix?window.env.apiPrefix:"/";register(`${prefix}/service-worker.js`.replace(/\/+/g,"/"),{registrationOptions:{scope:prefix},registered(){console.info("Service worker has been registered.")},ready(){console.info("Service worker is active.")},cached(){console.info("Content has been cached for offline use.")},updatefound(){console.info("New content is downloading.")},updated(){console.info("New content is available; please refresh.")},offline(){console.info("No internet connection found. App is running in offline mode.")},error(a){console.error("Error during service worker registration:",a)}});export{default_1$n as $,useNavigate as A,ButtonComponent as B,CircularProgress as C,Dialog as D,toast as E,useSearchParams as F,Grid as G,constant$3 as H,ImageIcon as I,useMediaQuery as J,Alert as K,LinearProgress as L,formatError$1 as M,util as N,Link$2 as O,PropTypes as P,Box as Q,isEmpty$2 as R,RelativeTime$1 as S,TagComponent as T,MenuItem$1 as U,Permission as V,WrappedDidAddress as W,Center as X,toString_1 as Y,propTypesExports as Z,_createCompounder as _,useSubscription as a,Menu$1 as a$,lodashExports as a0,api$1 as a1,IconButton as a2,Confirm as a3,makeStyles as a4,ListItemSecondaryAction as a5,List as a6,ListItem as a7,ListItemText as a8,getServerUrl as a9,ErrorFallback as aA,formatRegistryLogoPath as aB,engine as aC,ListItemIcon as aD,ensureDomainAliases as aE,normalizePathPrefix$1 as aF,sortBy$1 as aG,getIp as aH,stringSortHandlerAsc as aI,getAccessUrl as aJ,requireCreateSvgIcon as aK,interopRequireDefaultExports as aL,history as aM,semver$1 as aN,useReactive as aO,useAsyncEffect as aP,sleep as aQ,checkInputByType as aR,Stack$5 as aS,isChrome as aT,_default$2 as aU,axios$1 as aV,shouldCheckDomainStatus as aW,formatMountPoint as aX,_default$5 as aY,FormControlLabel as aZ,Checkbox as a_,useBlockletAppContext as aa,getAuthMethod as ab,ConfirmDialog as ac,setSessionToken as ad,getRestoredAccessUrl as ae,Debug as af,isServerlessBlockletInstalled as ag,getWsClient as ah,useTheme$2 as ai,useQuery as aj,getPathPrefix as ak,HeaderAddon as al,SessionContext as am,Global as an,Routes as ao,Route as ap,Navigate as aq,css$1 as ar,AvatarWithErrorBoundary as as,formatToDatetime as at,getLaunchAgreementUrl as au,axios$4 as av,useSessionContext$1 as aw,Tooltip as ax,getBlockletMetaUrl as ay,ErrorBoundary as az,constant as b,useForkRef as b$,checkIsWildcardDomain as b0,Popover as b1,Card as b2,CardContent as b3,formatToDate as b4,sortDomains as b5,Collapse as b6,isUrl$1 as b7,__awaiter as b8,__generator as b9,_baseRest as bA,_arrayFilter as bB,last_1 as bC,isArrayLikeObject_1 as bD,default_1$c as bE,isDownloading as bF,withPermission as bG,getBlockletUrl as bH,getBlockletUrlParams as bI,createSvgIcon$1 as bJ,styled$1 as bK,ButtonBase as bL,_extends$2 as bM,emphasize_1 as bN,_objectWithoutPropertiesLoose$1 as bO,generateUtilityClasses as bP,generateUtilityClass as bQ,useDefaultProps as bR,useSlotProps as bS,clsx$1 as bT,composeClasses as bU,rootShouldForwardProp as bV,SwitchBase as bW,capitalize$3 as bX,alpha_1 as bY,createChainedFunction$1 as bZ,useControlled as b_,__spread as ba,React$2 as bb,dayjs$1 as bc,Divider as bd,isCertificateMatch as be,NodeContext as bf,useParams as bg,__assign as bh,__spreadArrays as bi,DidAddressWrapper as bj,createPassportSvg as bk,useNodeContext$1 as bl,getWalletType as bm,__vitePreload as bn,isInstalling as bo,Badge as bp,NavLink$1 as bq,createAppPassportSvg as br,_SetCache as bs,_arrayMap as bt,_baseUnary as bu,_arrayIncludes as bv,_arrayIncludesWith as bw,_cacheHas as bx,_baseFlatten as by,_baseUniq as bz,createClient as c,useEventCallback$1 as c$,useId as c0,merge$1 as c1,toSlotDomain as c2,omit$1 as c3,fixBlocklet as c4,memoize$5 as c5,defaultCheckAccessible as c6,getBlockletUrls as c7,urlEvaluation as c8,ButtonGroupContext as c9,useMount as cA,API_DID_PREFIX as cB,AUTH_SERVICE_PREFIX as cC,formatDateTime as cD,getExplorerLink as cE,patchJsxToLocale as cF,flat$1 as cG,en$2 as cH,LocaleProvider as cI,getAugmentedNamespace as cJ,Theme as cK,ReactDOM as cL,global$2 as cM,punycodeExports as cN,commonjsGlobal as cO,copy$1 as cP,dist$4 as cQ,Util as cR,require$$3 as cS,getSessionToken as cT,SvgLogo as cU,hoistStatics as cV,getLogoHash as cW,useEnhancedEffect$1 as cX,debounce$5 as cY,ownerWindow as cZ,useRtl as c_,ButtonGroupButtonContext as ca,BlockletAdminRoles as cb,ListItemAvatar as cc,Avatar$1 as cd,NotificationTag as ce,useNotificationContext as cf,useRequest as cg,useMemoizedFn as ch,isNumber$2 as ci,__read as cj,useLatest as ck,defaultDayjs as cl,useBrowser as cm,isFromWallet as cn,Container$3 as co,isFunction$8 as cp,usePassportId as cq,FullPage as cr,useLaunchBlockletContext as cs,useSecurity as ct,authorize as cu,isNewStoreUrl as cv,getAccessibleUrl as cw,getBlockletLogoUrl as cx,Img as cy,useLocation as cz,useBlockletsContext as d,checkboxClasses as d$,ownerDocument as d0,colors$1 as d1,useFormControl as d2,formControlState as d3,util$6 as d4,upperFirst$2 as d5,camelCase$2 as d6,ClickToCopy as d7,formatMuiErrorMessage$1 as d8,useTheme$3 as d9,easing as dA,emphasize$1 as dB,getContrastRatio$1 as dC,getLuminance$1 as dD,hexToRgb$1 as dE,hslToRgb$1 as dF,keyframes as dG,lighten$1 as dH,createMixins as dI,recomposeColor$1 as dJ,responsiveFontSizes as dK,rgbToHex$1 as dL,getUnit as dM,toUnitless as dN,Paper as dO,getPaperUtilityClass as dP,paperClasses as dQ,getIconButtonUtilityClass as dR,iconButtonClasses as dS,getTypographyUtilityClass as dT,typographyClasses as dU,chipClasses as dV,Chip as dW,getChipUtilityClass as dX,buttonClasses as dY,Button$1 as dZ,getButtonUtilityClass as d_,deepmerge$1 as da,GlobalStyles$2 as db,ThemeProvider$2 as dc,toPropertyKey$3 as dd,createSpacing as de,createBreakpoints as df,createTheme$1 as dg,private_safeDarken_1 as dh,private_safeLighten_1 as di,private_safeEmphasize_1 as dj,private_safeAlpha_1 as dk,private_safeColorChannel_1 as dl,defaultSxConfig as dm,styleFunctionSx$1 as dn,getOverlayAlpha as dp,hslToRgb_1 as dq,THEME_ID as dr,createTypography as ds,StyledEngineProvider as dt,ThemeProvider$1 as du,alpha$1 as dv,createMuiTheme as dw,darken$1 as dx,decomposeColor$1 as dy,duration as dz,_default$1 as e,ThemeProvider$4 as e$,getCheckboxUtilityClass as e0,formControlLabelClasses as e1,getFormControlLabelUtilityClasses as e2,getGridUtilityClass as e3,gridClasses as e4,Grow as e5,getListItemTextUtilityClass as e6,listItemTextClasses as e7,PopoverPaper as e8,PopoverRoot as e9,isObject$p as eA,cloneDeep$1 as eB,padStart_1 as eC,Buffer$3 as eD,lib$2 as eE,upperFirst_1 as eF,pick_1 as eG,lib$1 as eH,urlExports as eI,cloneDeep_1 as eJ,get_1 as eK,DID as eL,FormControlContext as eM,GlobalStyles as eN,isMuiElement as eO,slotShouldForwardProp as eP,ClickAwayListener as eQ,MenuList as eR,Popper as eS,_baseIsEqual as eT,SvgIcon as eU,process$1$1 as eV,urlPathFriendly$1 as eW,useThemeProps as eX,defaultTheme$2 as eY,commonjsRequire as eZ,create$4 as e_,getOffsetLeft as ea,getOffsetTop as eb,getPopoverUtilityClass as ec,popoverClasses as ed,getMenuItemUtilityClass as ee,menuItemClasses as ef,getTooltipUtilityClass as eg,tooltipClasses as eh,lighten_1 as ei,darken_1 as ej,Toolbar as ek,getToolbarUtilityClass as el,toolbarClasses as em,isHostComponent as en,emotionSerialize_esm as eo,emotionUtils_browser_esm as ep,emotionCache_browser_esm as eq,emotionReact_browser_esm as er,reactDomExports as es,Close as et,_baseIteratee as eu,isArrayLike_1 as ev,keys_1 as ew,_baseFindIndex as ex,toInteger_1 as ey,noop$7 as ez,LocaleContext as f,ThemeProvider as f$,Hidden as f0,Check$1 as f1,withQuery as f2,createTheme$3 as f3,styled$2 as f4,useTheme$4 as f5,extendSxProp as f6,getTargetElement as f7,useEventListener as f8,useUpdateEffect as f9,translate as fA,util$5 as fB,shams$1 as fC,hasPropertyDescriptors_1 as fD,defineDataProperty as fE,safeBufferExports as fF,requireBrowser$9 as fG,requireElliptic as fH,requireCryptoBrowserify as fI,ripemd160 as fJ,getInviteLink$1 as fK,SessionContext$1 as fL,getIssuePassportLink as fM,Icon as fN,getTextColor_1 as fO,isProtectedRole as fP,lib$3 as fQ,createPassportSvg$2 as fR,semver as fS,browserExports as fT,require$$0$1 as fU,isAbsoluteUrl as fV,dist$1 as fW,browser$4 as fX,requireObjectWithoutPropertiesLoose as fY,loadIcon as fZ,createTheme as f_,__spreadArray as fa,_baseOrderBy as fb,isArray_1 as fc,default_1$p as fd,useCreation as fe,parseQuery as ff,useDebounceFn as fg,createRoot as fh,useSize as fi,colors$2 as fj,callBound$2 as fk,callBindExports as fl,normalizePathPrefix_1 as fm,clamp$1 as fn,useIsFocusVisible as fo,extractEventHandlers as fp,resolveProps as fq,debounce_1 as fr,noop_1 as fs,_default$3 as ft,formatTime as fu,RelativeTime as fv,useUpdate as fw,tmp as fx,getVisitorId$2 as fy,useConfirm as fz,getDefaultExportFromCjs$1 as g,functionPlugin as g$,Fade as g0,ListItemButton as g1,AUTH_SERVICE_PREFIX$1 as g2,getTranslation as g3,SessionPermission as g4,NAVIGATION_URL as g5,LocaleSelector as g6,SessionUser as g7,default_1$l as g8,ResponsiveHeader as g9,objectAssign$1 as gA,_inheritsLoose$3 as gB,forceReflow as gC,Transition$1 as gD,_baseIndexOf as gE,_baseToString as gF,_baseTrim as gG,_castSlice as gH,_charsEndIndex as gI,_stringToArray as gJ,validateDomain as gK,axios_1 as gL,CopyButton as gM,isServerless as gN,getSystemDomains as gO,data$m as gP,isRunning as gQ,getTransferAppLink as gR,pick$1 as gS,data$g as gT,data$f as gU,data$h as gV,_copyArray as gW,usePreviousProps as gX,setRef as gY,ClearIcon as gZ,hoistNonReactStatics_cjs as g_,withErrorBoundary as ga,NavMenu as gb,DashboardWrapper as gc,BlockletSDK as gd,useUnmount as ge,identity_1 as gf,_baseForOwn as gg,_baseMap as gh,isString_1 as gi,isPlainObject_1 as gj,default_1$h as gk,browser as gl,uniq_1 as gm,pLimit_1 as gn,require$$6 as go,_isIndex as gp,_typeof$2 as gq,Dialog$1 as gr,dialogClasses as gs,DialogContent as gt,FocusTrap as gu,DialogActions as gv,TransitionGroup as gw,localizedFormatPlugin as gx,isExtracting as gy,APP_PREFIX as gz,useTheme as h,jssGlobal as h0,jssNested as h1,camelCase as h2,defaultUnit as h3,jssVendorPrefixer as h4,jssPropsSort as h5,createJss as h6,getDynamicStyles as h7,isNil_1 as h8,omit_1 as h9,require$$4$3 as hA,useTimeout as hB,createPopper as hC,getScrollbarSize as hD,reactIsExports as hE,isValidClusterSize as hF,extractStatusUrlFromNextWorkflow as hG,pWaitFor$1 as hH,hasRequiredSteps as hI,getStoreList as hJ,flatten$4 as hK,trimEnd$1 as hL,useCheckUpdateByUrl as hM,DialogTitle as hN,Icon$1 as hO,_baseEach as hP,_baseAssignValue as hQ,throttle$4 as hR,pTimeout$2 as hS,TimeoutError_1 as hT,debounce$3 as hU,uniq$1 as hV,Backdrop as hW,withoutTrailingSlash as ha,isString$2 as hb,isAbsoluteUrl$1 as hc,nanoid as hd,omitBy$1 as he,isNil$1 as hf,isEqual$1 as hg,useEffectWithTarget$1 as hh,__values as hi,isString$3 as hj,isFunction$5 as hk,_unsupportedIterableToArray as hl,_setPrototypeOf as hm,_assertThisInitialized$1 as hn,_createClass as ho,CacheProvider as hp,createCache as hq,StyleSheet$1 as hr,ThemeContext$1 as hs,React$3 as ht,require$$1$4 as hu,isPlainObject$5 as hv,require$$1$5 as hw,require$$2$1 as hx,require$$5 as hy,require$$6$2 as hz,Link$1 as i,jsxRuntimeExports as j,get$6 as k,filesize as l,Typography as m,newStyled as n,formatLocale as o,prettyMs as p,joinURL as q,reactExports as r,styled as s,useLocaleContext as t,useNodeContext as u,useSessionContext as v,_default as w,DialogContentText as x,DidConnect as y,getWebWalletUrl as z};
|
|
2581
|
+
`;browser.homedir=function(){return"/"};(function(a){var j=commonjsGlobal&&commonjsGlobal.__importDefault||function(pt){return pt&&pt.__esModule?pt:{default:pt}};Object.defineProperty(a,"__esModule",{value:!0}),a.hasMountPoint=a.hasStartEngine=a.isPackBlocklet=a.isGatewayBlocklet=a.getBlockletEngine=void 0;const _e=j(browser),et=constant,nt=pt=>{if(pt===void 0)throw new Error("blocklet meta param is required");const{engine:dt}=pt;if(!dt)return{interpreter:"node",source:""};if(!Array.isArray(dt))return dt;const mt=_e.default.platform(),Et=dt.find(Tt=>Tt.platform===mt);if(!Et)throw new Error(`can not find a proper engine interpreter on ${mt}`);return Et};a.getBlockletEngine=nt;const tt=pt=>(pt==null?void 0:pt.group)===et.BlockletGroup.gateway;a.isGatewayBlocklet=tt;const it=pt=>(pt==null?void 0:pt.group)===et.BlockletGroup.pack;a.isPackBlocklet=it;const ut=pt=>!!(pt!=null&&pt.main)||(0,a.getBlockletEngine)(pt||{}).interpreter==="blocklet";a.hasStartEngine=ut;const ft=pt=>((0,a.hasStartEngine)(pt)||((pt==null?void 0:pt.interfaces)||[]).find(dt=>dt.type===et.BLOCKLET_INTERFACE_TYPE_WEB))&&(0,a.isGatewayBlocklet)(pt)===!1;a.hasMountPoint=ft})(engine);(function(a){var j=commonjsGlobal&&commonjsGlobal.__importDefault||function(fn){return fn&&fn.__esModule?fn:{default:fn}};Object.defineProperty(a,"__esModule",{value:!0}),a.hasStartEngine=a.isPackBlocklet=a.isGatewayBlocklet=a.isAccessible=a.isRunning=a.isBeforeInstalled=a.isInProgress=a.getBlockletServices=a.getBlockletAppIdList=a.getRolesFromAuthConfig=a.isPreferenceKey=a.isExternalBlocklet=a.getBlockletChainInfo=a.getChainInfo=a.getConnectAppUrl=a.getParentComponentName=a.filterComponentsV2=a.findComponentByIdV2=a.findComponentV2=a.findComponentById=a.findComponent=a.getComponentBundleId=a.getComponentName=a.getComponentId=a.replaceSlotToIp=a.getComponentWhoCanAccess=a.getWhoCanAccess=a.findServiceFromMeta=a.findWebInterfacePort=a.findWebInterface=a.fixBlockletStatus=a.getAppDescription=a.getDisplayName=a.getAppName=a.hasRunnableComponent=a.wipeSensitiveData=a.isEnvShareable=a.isEnvShareableToClient=a.getComponentMissingConfigs=a.getAppMissingConfigs=a.getSharedConfigObj=a.isDeletableBlocklet=a.forEachComponentV2Sync=a.forEachComponentV2=a.forEachChildSync=a.forEachChild=a.forEachBlockletSync=a.forEachBlocklet=a.isFreeComponent=a.isFreeBlocklet=void 0,a.hasResourceType=void 0,a.getAppUrl=Jt;const _e=j(get_1),et=j(uniq_1),nt=require$$6,tt=j(pLimit_1),it=j(constant$3),ut=constant,ft=engine;Object.defineProperty(a,"hasStartEngine",{enumerable:!0,get:function(){return ft.hasStartEngine}}),Object.defineProperty(a,"isGatewayBlocklet",{enumerable:!0,get:function(){return ft.isGatewayBlocklet}}),Object.defineProperty(a,"isPackBlocklet",{enumerable:!0,get:function(){return ft.isPackBlocklet}});const{NODE_SERVICES:pt,SLOT_FOR_IP_DNS_SITE:dt,WHO_CAN_ACCESS:mt,WHO_CAN_ACCESS_PREFIX_ROLES:Et}=it.default,Tt=(fn,En=[])=>`${En.map($n=>$n&&$n.meta?$n.meta.did:"").join("/")}${En.length?"/":""}${fn&&fn.meta?fn.meta.did:""}`;a.getComponentId=Tt;const St=(fn,En=[])=>`${En.map($n=>$n&&$n.meta?$n.meta.name:"").join("/")}${En.length?"/":""}${fn&&fn.meta?fn.meta.name:""}`;a.getComponentName=St;const $t=fn=>`${fn.meta.bundleName}@${fn.meta.version}`;a.getComponentBundleId=$t;const Dt=fn=>{if(!fn)return"";const En=fn.split("/");return En.pop(),!En.length||(En[En.length-1].startsWith("@")&&En.pop(),!En.length)?"":En.join("/")};a.getParentComponentName=Dt;const At=(fn,En,{parallel:$n=!1,concurrencyLimit:zn=5,sync:nn,params:Ft,_parent:Xt,_root:hn,_level:Sn=0,_tasks:Fn,_ancestors:kn=[],_limit:Pn}={})=>{const Wn=hn||Xt||fn,In=Tt(fn,kn),Nn=kn.concat(fn);if(nn){const Gn=En(fn,{parent:Xt,root:Wn,level:Sn,params:Ft,ancestors:kn,id:In});if(fn.children)for(const Ir of fn.children)At(Ir,En,{sync:nn,params:Gn,_parent:fn,_root:Wn,_level:Sn+1,_ancestors:Nn});return null}if(!$n)return new Promise(async(Gn,Ir)=>{try{const Hn=await En(fn,{parent:Xt,root:Wn,level:Sn,ancestors:kn,params:Ft,id:In});if(fn.children)for(const Xn of fn.children)await At(Xn,En,{params:Hn,_parent:fn,_root:Wn,_level:Sn+1,_ancestors:Nn});Gn(null)}catch(Hn){Ir(Hn)}});const fr=Pn||(0,tt.default)(zn),Un=Fn||[];if(Un.push(fr(()=>En(fn,{parent:Xt,root:Wn,level:Sn,ancestors:kn,id:In}))),fn.children)for(const Gn of fn.children)At(Gn,En,{parallel:$n,_parent:fn,_root:Wn,_level:Sn+1,_tasks:Un,_ancestors:Nn,_limit:fr});return Fn?null:Promise.all(Un)};a.forEachBlocklet=At;const Pt=(fn,En)=>At(fn,En,{sync:!0});a.forEachBlockletSync=Pt;const Lt=(fn,En,{parallel:$n=!1,concurrencyLimit:zn=5,sync:nn}={})=>{if(nn){if(fn.children)for(const hn of fn.children)En(hn);return null}if(!$n)return new Promise(async(hn,Sn)=>{try{if(fn.children)for(const Fn of fn.children)await En(Fn);hn(null)}catch(Fn){Sn(Fn)}});const Ft=(0,tt.default)(zn),Xt=[];if(fn.children)for(const hn of fn.children)Xt.push(Ft(()=>En(hn)));return Promise.all(Xt)};a.forEachComponentV2=Lt;const It=(fn,En)=>Lt(fn,En,{sync:!0});a.forEachComponentV2Sync=It;const Wt=(fn,En,$n)=>At(fn,(zn,nn)=>nn.level===0?{}:En(zn,nn),$n);a.forEachChild=Wt;const Vt=(fn,En)=>Wt(fn,En,{sync:!0});a.forEachChildSync=Vt;const Ht=(fn,En,{_ancestors:$n=[],returnAncestors:zn=!1}={})=>{if(!En)return null;if(En(fn,{ancestors:$n}))return zn?{component:fn,ancestors:$n}:fn;for(const nn of fn.children||[]){const Ft=$n.concat(fn),Xt=Ht(nn,En,{_ancestors:Ft,returnAncestors:zn});if(Xt)return Xt}return null};a.findComponent=Ht;const Kt=(fn,En,{returnAncestors:$n=!1}={})=>(Array.isArray(En)&&(En=En.join("/")),Ht(fn,(zn,{ancestors:nn})=>{const Ft=Tt(zn,nn);return En===Ft},{returnAncestors:$n}));a.findComponentById=Kt;const Qt=(fn,En)=>{if(!En)return null;for(const $n of fn.children||[])if(En($n,fn))return $n;return null};a.findComponentV2=Qt;const mn=(fn,En)=>En?(Array.isArray(En)&&(En=En.join("/")),Qt(fn,($n,zn)=>{if(En.includes("/")){const nn=Tt($n,[zn]);return En===nn}return En===$n.meta.did})):null;a.findComponentByIdV2=mn;const Ct=(fn,En)=>{if(!En)return[];const $n=[];for(const zn of fn.children||[])En(zn,fn)&&$n.push(zn);return $n};a.filterComponentsV2=Ct;const rt=fn=>!!fn&&!!(fn.key||fn.name)&&!fn.secure&&fn.shared!==!1&&!ut.BLOCKLET_CONFIGURABLE_KEY[fn.key||fn.name];a.isEnvShareableToClient=rt;const st=fn=>!!fn&&!!(fn.key||fn.name)&&!fn.secure&&!!fn.shared&&!ut.BLOCKLET_CONFIGURABLE_KEY[fn.key||fn.name];a.isEnvShareable=st;const ct=(fn,En)=>{const $n={};return!fn||!En||(Array.isArray(fn.configs)&&fn.configs.forEach(({key:zn,value:nn,secure:Ft})=>{if(!st({key:zn,secure:Ft,shared:!0}))return;const Xt=(fn.configObj||{})[zn]||nn,hn=(En.configs||[]).find(Sn=>Sn.key===zn);(!hn||st(hn)||!hn.value&&!(En.configObj||{})[hn.key])&&($n[zn]=Xt)}),(fn.configs||[]).forEach(({key:zn,value:nn})=>{[ut.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_CHAIN_HOST,ut.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_CHAIN_ID,ut.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_CHAIN_TYPE].includes(zn)&&($n[ut.CHAIN_PROP_MAP[zn]]=nn)})),$n};a.getSharedConfigObj=ct;const ht=fn=>fn.key.startsWith(ut.BLOCKLET_PREFERENCE_PREFIX)===!0;a.isPreferenceKey=ht;const vt=(fn,En)=>!!(fn.required&&(!fn.value&&!En[fn.key]||Object.values(ut.CHAIN_PROP_MAP).includes(fn.key)&&Object.keys(En).includes(fn.key)&&!En[fn.key])),xt=(fn={})=>{const En=[];return It(fn,$n=>{var Ft;if(((Ft=$n.meta)==null?void 0:Ft.group)===ut.BlockletGroup.gateway)return;const zn=$n.configs||[],nn=ct(fn,$n);zn.forEach(Xt=>{vt(Xt,nn)&&En.push({did:$n.meta.did,key:Xt.key,description:Xt.description})})}),En.filter($n=>!ht($n))};a.getAppMissingConfigs=xt;const wt=(fn={},En={})=>{const $n=[],zn=fn.configs||[],nn=ct(En,fn);return zn.forEach(Ft=>{vt(Ft,nn)&&$n.push({did:fn.meta.did,key:Ft.key,description:Ft.description})}),$n};a.getComponentMissingConfigs=wt;const yt=fn=>fn.payment?(fn.payment.price||[]).map($n=>$n.value||0).every($n=>$n===0):!0;a.isFreeBlocklet=yt;const ot=fn=>!fn.payment||!fn.payment.componentPrice?!0:!fn.payment.componentPrice.length;a.isFreeComponent=ot;const bt=fn=>fn&&(At(fn,En=>{En.configs&&(En.configs=En.configs.filter($n=>!ht($n)),En.configs.forEach($n=>{$n.secure&&($n.value=$n.value?"__encrypted__":"")})),(En.environments||[]).forEach($n=>{["BLOCKLET_APP_SK","BLOCKLET_APP_PSK"].includes($n.key)&&($n.value="__encrypted__")}),(En.migratedFrom||[]).forEach($n=>{$n.appSk="__encrypted__"}),delete fn.configObj,delete fn.environmentObj},{sync:!0}),fn);a.wipeSensitiveData=bt;const Mt=fn=>{if(!fn)return!1;const En=fn.environments.find($n=>$n.key==="BLOCKLET_DELETABLE");return En?En.value==="yes":!0};a.isDeletableBlocklet=Mt;const Ot=fn=>{let En=!1;return Pt(fn,$n=>{$n.meta.group!==ut.BlockletGroup.gateway&&(En=!0)}),En};a.hasRunnableComponent=Ot;const zt=(fn,En=!1)=>{if(!fn)return"";const{meta:$n}=fn;let zn;if(!En&&fn.environments){const nn=fn.environments.find(Ft=>Ft.key==="BLOCKLET_APP_NAME");nn&&nn.value&&(zn=nn.value)}return zn||$n.title||$n.name};a.getAppName=zt,a.getDisplayName=zt;const Bt=(fn,En=!1)=>{if(!fn)return"";const{meta:$n}=fn;let zn;if(!En&&fn.environments){const nn=fn.environments.find(Ft=>Ft.key==="BLOCKLET_APP_DESCRIPTION");nn&&nn.value&&(zn=nn.value)}return zn||$n.description||$n.name};a.getAppDescription=Bt;function Jt(fn){var zn,nn,Ft;const En=(Ft=(nn=(zn=fn==null?void 0:fn.site)==null?void 0:zn.domainAliases)==null?void 0:nn.sort((Xt,hn)=>{var Sn,Fn,kn,Pn;return(Sn=Xt.accessibility)!=null&&Sn.accessible&&((Fn=hn.accessibility)!=null&&Fn.accessible)?+Xt.isProtected-+hn.isProtected:+((kn=hn.accessibility)==null?void 0:kn.accessible)-+((Pn=Xt.accessibility)==null?void 0:Pn.accessible)}))==null?void 0:Ft.map(Xt=>{var Fn;const hn=(Fn=Xt==null?void 0:Xt.domainStatus)!=null&&Fn.isHttps?"https://":"http://",Sn=Xt==null?void 0:Xt.value;return`${hn}${Sn}`}).filter(Boolean);return En==null?void 0:En[0]}const qt=fn=>{fn&&(Pt(fn,En=>{En.status=(0,ut.fromBlockletStatus)(En.status),En.source!==void 0&&(En.source=(0,ut.fromBlockletSource)(En.source))}),fn.settings&&(fn.settings.children||[]).forEach(En=>{Pt(En,$n=>{$n.status=(0,ut.fromBlockletStatus)($n.status),$n.source!==void 0&&($n.source=(0,ut.fromBlockletSource)($n.source))})}))};a.fixBlockletStatus=qt;const tn=fn=>{if(!fn)return null;const En=fn.meta||fn||{},{interfaces:$n=[]}=En;return Array.isArray($n)?$n.find(zn=>zn.type===ut.BLOCKLET_INTERFACE_TYPE_WEB):null};a.findWebInterface=tn;const cn=fn=>{if(!fn)return null;const En=tn(fn),{ports:$n}=fn;return!En||!$n?null:$n[En.port]};a.findWebInterfacePort=cn;const gn=(fn,En)=>{const $n=[En],zn=tn(fn);return zn?(zn.services||[]).find(nn=>$n.includes(nn.name)):null};a.findServiceFromMeta=gn;const Yt=fn=>{if(!fn)return mt.ALL;if((0,_e.default)(fn,"settings.whoCanAccess"))return fn.settings.whoCanAccess;const En=gn(fn.meta,pt.AUTH);return(0,_e.default)(En,"config.whoCanAccess")?En.config.whoCanAccess:mt.ALL};a.getWhoCanAccess=Yt;const Nt=(fn,En)=>{const $n=(fn.configs||[]).find(nn=>nn.key===ut.BLOCKLET_CONFIGURABLE_KEY.COMPONENT_ACCESS_WHO);if($n)return $n.value;if(En&&(0,_e.default)(En,"settings.whoCanAccess")&&(0,_e.default)(En,"settings.whoCanAccess")!==mt.ALL)return(0,_e.default)(En,"settings.whoCanAccess");const zn=gn(fn.meta,pt.AUTH);return(0,_e.default)(zn,"config.whoCanAccess")?zn.config.whoCanAccess:mt.ALL};a.getComponentWhoCanAccess=Nt;const Gt=({request:fn,baseUrl:En})=>{const $n=fn.headers["x-blocklet-did"]||"",zn=fn.headers["x-blocklet-real-did"]||"",nn=fn.headers["x-path-prefix"]||"/",Ft=fn.headers["x-group-path-prefix"]||"/";let Xt=En;return $n!==zn&&nn!==Ft&&(Xt=(0,nt.joinURL)(Xt,"/").replace(nn,Ft)),Xt};a.getConnectAppUrl=Gt;const sn=(fn,En)=>{const $n=(En||"").includes(":")?":":/\./;return(fn||"").replace(dt,(En||"").replace(new RegExp($n,"g"),"-"))};a.replaceSlotToIp=sn;const an=fn=>{const En=Object.entries(ut.CHAIN_INFO_CONFIG).reduce(($n,zn)=>{const[nn,[Ft,Xt]]=zn;return $n[Ft]=(0,_e.default)(fn,nn)||Xt,$n},{});return En.type==="ethereum"&&En.id==="none"&&(En.id="1"),En};a.getChainInfo=an;const vn=fn=>{const En=an({});if(!fn)return En;const $n=an(fn.configObj);if($n.host!=="none")return $n;let zn;return Vt(fn,nn=>{if(zn&&zn.host!=="none")return;const Ft=an(nn.configObj);Ft.host!=="none"&&(zn=Ft)}),zn||En};a.getBlockletChainInfo=vn;const Rn=fn=>!!(fn!=null&&fn.controller);a.isExternalBlocklet=Rn;const un=fn=>fn.whoCanAccess.startsWith(Et)?fn.whoCanAccess.substring(Et.length).split(","):[];a.getRolesFromAuthConfig=un;const yn=fn=>{const En=Array.isArray(fn.migratedFrom)?fn.migratedFrom.map($n=>$n.appDid):[];return(0,et.default)([fn.appDid,fn.appPid,...En].filter(Boolean))};a.getBlockletAppIdList=yn;const jn=fn=>{const En=[];return fn&&Pt(fn,$n=>{var nn;(((nn=$n.meta)==null?void 0:nn.interfaces)||[]).filter(Ft=>Ft.type===ut.BLOCKLET_INTERFACE_TYPE_SERVICE).forEach(Ft=>{const Xt=Ft.port||{};En.push({name:Ft.name,protocol:Ft.protocol,port:Number(Xt.external),upstreamPort:Number(($n.ports||{})[Xt.internal])})})}),En};a.getBlockletServices=jn;const Tn=fn=>[ut.BlockletStatus.downloading,ut.BlockletStatus.waiting,ut.BlockletStatus.starting,ut.BlockletStatus.installing,ut.BlockletStatus.stopping,ut.BlockletStatus.upgrading,"downloading","waiting","starting","installing","extracting","stopping","upgrading","restarting","deleting"].includes(fn);a.isInProgress=Tn;const Mn=fn=>[ut.BlockletStatus.added,ut.BlockletStatus.waiting,ut.BlockletStatus.downloading,ut.BlockletStatus.installing,"added","waiting","downloading","installing"].includes(fn);a.isBeforeInstalled=Mn;const lr=fn=>[ut.BlockletStatus.running,"running"].includes(fn);a.isRunning=lr;const xn=fn=>[ut.BlockletStatus.running,ut.BlockletStatus.waiting,ut.BlockletStatus.downloading,"running","waiting","downloading"].includes(fn);a.isAccessible=xn;const Cn=(fn,{type:En,did:$n}={type:"",did:""})=>{var zn,nn,Ft;return fn?!(0,ft.hasStartEngine)(fn.meta)&&((Ft=(nn=(zn=fn.meta)==null?void 0:zn.resource)==null?void 0:nn.bundles)==null?void 0:Ft.length)>0&&(fn.meta.resource.bundles||[]).some(Xt=>Xt.type===En&&Xt.did===$n):!1};a.hasResourceType=Cn,a.default={isFreeBlocklet:yt,isFreeComponent:ot,forEachBlocklet:At,forEachBlockletSync:Pt,forEachChild:Wt,forEachChildSync:Vt,forEachComponentV2:Lt,forEachComponentV2Sync:It,isDeletableBlocklet:Mt,getSharedConfigObj:ct,getAppMissingConfigs:xt,getComponentMissingConfigs:wt,isEnvShareableToClient:rt,isEnvShareable:st,wipeSensitiveData:bt,hasRunnableComponent:Ot,getAppName:zt,getAppDescription:Bt,getAppUrl:Jt,getDisplayName:zt,fixBlockletStatus:qt,findWebInterface:tn,findWebInterfacePort:cn,findServiceFromMeta:gn,getWhoCanAccess:Yt,getComponentWhoCanAccess:Nt,replaceSlotToIp:sn,getComponentId:Tt,getComponentName:St,getComponentBundleId:$t,findComponent:Ht,findComponentById:Kt,findComponentV2:Qt,findComponentByIdV2:mn,filterComponentsV2:Ct,getParentComponentName:Dt,getConnectAppUrl:Gt,getChainInfo:an,getBlockletChainInfo:vn,isExternalBlocklet:Rn,isPreferenceKey:ht,getRolesFromAuthConfig:un,getBlockletServices:jn,isInProgress:Tn,isBeforeInstalled:Mn,isRunning:lr,isAccessible:xn,isGatewayBlocklet:ft.isGatewayBlocklet,isPackBlocklet:ft.isPackBlocklet,hasStartEngine:ft.hasStartEngine,hasResourceType:Cn}})(util);const getServerUrl=(a,j=!1)=>{const _e=a.routing.adminPath;return j?encodeURIComponent(joinURL(window.location.origin,_e)):joinURL(window.location.origin,_e)},getLaunchAgreementUrl=(a,j,_e)=>{const et=getServerUrl(j),nt=joinURL(_e,`/api/blocklets/${a.did}/blocklet.json`),tt=new URL(joinURL(et,"/launch-blocklet/agreement"));return tt.searchParams.set("blocklet_meta_url",nt),tt.searchParams.set("from",window.location.href),tt.href},ensureDomainAliases=async(a,{getIP:j}={})=>{if(!a||!a.length)return[];if(!j||!a.some(et=>et.value.includes(constant$3.SLOT_FOR_IP_DNS_SITE)))return a;const _e=await j();return _e?a.map(et=>{try{return et.value=util.replaceSlotToIp(et.value,_e),et}catch{return et}}).filter(Boolean):a},getAppCapabilities=a=>{const j={didSpace:null};return util.forEachBlockletSync(a,_e=>{var et,nt;j.didSpace===constant.BLOCKLET_APP_SPACE_REQUIREMENT.REQUIRED||j.didSpace===constant.BLOCKLET_APP_SPACE_REQUIREMENT.REQUIRED_ON_SETUP||(nt=(et=_e==null?void 0:_e.meta)==null?void 0:et.capabilities)!=null&&nt.didSpace&&(j.didSpace=_e.meta.capabilities.didSpace)}),j},fixBlocklet=async(a,{fixRuntime:j=!0,oldBlocklet:_e,getIP:et}={})=>{if(a.site||(a.site={domainAliases:[],rules:[]}),a.site.rules.forEach(nt=>{nt.from.pathPrefix=normalizePathPrefix$1(nt.from.pathPrefix||"/")}),a.site.rules=sortBy$1(a.site.rules,nt=>nt.from.pathPrefix),j===!0)a.site.domainAliases=await ensureDomainAliases(a.site.domainAliases,{getIP:et}),a.appRuntimeInfo&&(a.appRuntimeInfo.startAt=new Date-a.appRuntimeInfo.uptime),util.forEachBlockletSync(a,nt=>{nt.runtimeInfo&&(nt.runtimeInfo.startAt=new Date-nt.runtimeInfo.uptime)});else if(j==="merge-old"&&_e){a.site.domainAliases=_e.site.domainAliases,a.appRuntimeInfo=_e.appRuntimeInfo;const nt={};util.forEachBlockletSync(_e,(tt,{id:it})=>{nt[it]=tt}),util.forEachBlockletSync(a,(tt,{id:it})=>{const ut=nt[it];ut&&(tt.runtimeInfo=ut.runtimeInfo,tt.diskInfo=ut.diskInfo,tt.engine=ut.engine)})}else a.site.domainAliases=[];a.capabilities=getAppCapabilities(a)},DEFAULT_WALLET_TYPE="arcblock",getWalletType=(a,j=!1)=>{let _e;return j?(_e=(a.configs||[]).find(et=>et.key==="BLOCKLET_APP_CHAIN_TYPE"),_e&&_e.value||(_e=(a.environments||[]).find(et=>["CHAIN_TYPE","BLOCKLET_APP_CHAIN_TYPE"].includes(et.key)),_e&&_e.value)?_e.value:DEFAULT_WALLET_TYPE):(_e=(a.environments||[]).find(et=>["CHAIN_TYPE","BLOCKLET_APP_CHAIN_TYPE"].includes(et.name)),_e&&_e.default?_e.default:DEFAULT_WALLET_TYPE)},isServerless=a=>!isEmpty$2(a==null?void 0:a.controller);let cache=null;const fetch$1=async()=>{const a=window.env.apiPrefix||"/",j=joinURL(a,"/api/dns-resolve?accessible=1");try{return(await axios$4.get(j)).data.address}catch{return null}},getIp=()=>(cache||(cache=fetch$1()),cache),BlockletsContext=reactExports.createContext({}),{Provider:Provider$2,Consumer:Consumer$2}=BlockletsContext,mergeBlocklets=(a,j,_e)=>_e?a.map(et=>{const nt={...et},tt=j.find(it=>it.meta.did===et.meta.did);return tt&&_e.forEach(it=>{nt[it]=tt[it]}),nt}):j;function BlockletsProvider({children:a}){const j=useNodeContext(),_e=createClient(),[et,nt]=reactExports.useState(null),[tt,it]=reactExports.useState(!1),[ut,ft]=reactExports.useState([]),[pt,dt]=reactExports.useState([]),[mt,Et]=reactExports.useState(!1),Tt=(It,Wt)=>{util.isExternalBlocklet(It)?dt(Wt):ft(Wt)},St=4,$t=async({silent:It=!0,retries:Wt=St,updates:Vt,useCache:Ht=!0}={})=>{It||it(!0);try{nt(null);const{blocklets:Kt}=await _e.getBlocklets({input:{useCache:Ht}});for(const Ct of Kt)await fixBlocklet(Ct,{getIP:getIp});const Qt=Kt.filter(Ct=>!util.isExternalBlocklet(Ct)),mn=Kt.filter(util.isExternalBlocklet);ft(Ct=>mergeBlocklets(Ct,Qt,Vt)),dt(Ct=>mergeBlocklets(Ct,mn,Vt)),it(!1),Et(!0)}catch(Kt){Wt>0?setTimeout(()=>$t({silent:It,retries:Wt-1,useCache:Ht}),1e3):(it(!1),nt(Kt))}},Dt=async It=>{try{const{blocklet:Wt}=await j.api.getBlocklet({input:{did:It.meta.did,attachRuntimeInfo:!0}});await fixBlocklet(Wt,{getIP:getIp}),Tt(Wt,Vt=>Vt.some(Ht=>Ht.meta.did===Wt.meta.did)?Vt.map(Ht=>Ht.meta.did===Wt.meta.did?Wt:Ht):[...Vt,Wt])}catch(Wt){nt(Wt)}},At=It=>{j.refresh(),Dt(It)};reactExports.useEffect(()=>{$t({silent:!1})},[]);const Pt=It=>{const Wt={};util.forEachBlockletSync(It,(Vt,{id:Ht})=>{Wt[Ht]=constant.fromBlockletStatus(Vt.status)}),Tt(It,Vt=>Vt.map(Ht=>(Ht.meta.did===It.meta.did&&util.forEachBlockletSync(Ht,(Kt,{id:Qt})=>{Wt[Qt]&&(Kt.status=Wt[Qt])}),Ht)))};useSubscription(constant.BlockletEvents.added,It=>{It.status=constant.fromBlockletStatus(It.status),Tt(It,Wt=>[...Wt,It])}),useSubscription(constant.BlockletEvents.removed,It=>{j.refresh(),Tt(It,Wt=>Wt.filter(Vt=>Vt.meta.did!==It.meta.did))}),useSubscription(constant.BlockletEvents.statusChange,Pt),useSubscription(constant.BlockletEvents.installed,At),useSubscription(constant.BlockletEvents.upgraded,At),useSubscription(constant.BlockletEvents.updated,Dt),useSubscription(constant.BlockletEvents.startFailed,Dt);const Lt={loading:tt,error:et,data:ut,externalData:pt,refresh:$t,initialized:mt,api:_e};return jsxRuntimeExports.jsx(Provider$2,{value:{blocklets:Lt},children:a})}function useBlockletsContext(){const{blocklets:a}=reactExports.useContext(BlockletsContext);return a}const authorize=({user:a,launchType:j,nftId:_e})=>{var et;if(!a)return!1;if(j==="serverless"){if(!_e)throw new Error("nftId is required");return((et=a==null?void 0:a.controller)==null?void 0:et.nftId)===_e}return(a.permissions||[]).includes("mutate_blocklets")},isServerlessBlockletInstalled=a=>{var j,_e;return a.isGetBlocklet&&((_e=(j=a.runtimeBlocklet)==null?void 0:j.controller)==null?void 0:_e.consumedAt)},getRestoredAccessUrl=async a=>{const j=getBlockletUrls({blocklet:a});let _e="";return _e=j.find(et=>{try{const{hostname:nt}=new URL(et);return urlEvaluation.isSlpDomain(nt)}catch(nt){return console.error(nt),!1}}),_e||(_e=await getAccessibleUrl(j)),_e},LaunchBlockletContext=reactExports.createContext({}),{Provider:Provider$1,Consumer:Consumer$1}=LaunchBlockletContext;function LaunchBlockletProvider({children:a}){const{session:j}=useSessionContext$1(),{t:_e}=useLocaleContext(),{api:et,info:nt}=useNodeContext(),[tt]=useSearchParams(),it=createClient(),ut=tt.get("launchType"),ft=tt.get("fromLauncher"),pt=tt.get("blocklet_meta_url")||"",dt=tt.get("nftId")||"",mt=tt.get("launcherSessionId")||"",Et=tt.get("launcherUrl")||"",Tt=new URL(pt).origin,[St,$t]=reactExports.useState({meta:null,appDid:tt.get("appDid")||null,sessionId:tt.get("sessionId")||null,isFree:!0,isExternal:!1,isInstalling:!1,isInstalled:!1,isRunning:!1,launcherSession:null,registryUrl:""}),Dt=(mn,Ct)=>$t(rt=>({...rt,appDid:mn,sessionId:Ct})),At=authorize({user:j.user,launchType:ut,nftId:dt}),[Pt,Lt]=reactExports.useState(null),[It,Wt]=reactExports.useState(!0),Vt=reactExports.useMemo(()=>nt?getServerUrl(nt):"",[nt]),Ht=async mn=>{if(!mn)throw new Error("appDid should not be empty");const{blocklet:Ct}=await et.getBlocklet({input:{did:mn,attachConfig:!1}});if(!Ct)return null;const rt=constant.BlockletStatus[Ct.status],st=!!dt,ct=rt<constant.BlockletStatus.installed,ht=rt===constant.BlockletStatus.installed,vt=rt===constant.BlockletStatus.running;return $t(xt=>({...xt,isInstalled:ht,isRunning:vt,isExternal:st,isInstalling:ct})),{isInstalled:ht,isRunning:vt,isExternal:st,isInstalling:ct}},Kt=async()=>{Wt(!0);try{if(!pt)throw new Error(_e("common.invalidParam"));const[{meta:mn,isFree:Ct,registryUrl:rt},{launcherSession:st,error:ct}]=await Promise.all([et.getBlockletMetaFromUrl({input:{url:pt,checkPrice:!0}}),mt?et.getLauncherSession({input:{launcherSessionId:mt,launcherUrl:Et}}):Promise.resolve({})]);if(mt&&!st)throw new Error(`Launch session invalid: ${ct}`);if(!mn)throw new Error(_e("LaunchBlockletBlocklet.error.loadMetaFailed"));let ht={};At&&St.appDid&&(ht=await Ht(St.appDid)),$t(vt=>({...vt,...ht,meta:mn,isFree:Ct,registryUrl:rt,launcherSession:st}))}catch(mn){console.error(mn),Lt(mn.message)}finally{Wt(!1)}};reactExports.useEffect(()=>{var mn,Ct,rt;((mn=j==null?void 0:j.user)==null?void 0:mn.role)===constant$3.SERVER_ROLES.EXTERNAL_BLOCKLET_CONTROLLER&&((rt=(Ct=j==null?void 0:j.user)==null?void 0:Ct.controller)==null?void 0:rt.nftId)!==dt&&j.logout(),Kt()},[]),reactExports.useEffect(()=>{It||!St.meta||(At?St.appDid&&Ht(St.appDid).catch(mn=>{toast.error(mn.message)}):($t(mn=>({...mn,isInstalled:!1,isRunning:!1,isExternal:!1})),Lt(null)))},[At]);const Qt={meta:St.meta,isFree:St.isFree,appDid:St.appDid,sessionId:St.sessionId,isInstalling:St.isInstalling,isInstalled:St.isInstalled,isExternal:St.isExternal,isRunning:St.isRunning,serverUrl:Vt,storeUrl:St.registryUrl||Tt,blockletMetaUrl:pt,fromLauncher:ft,loading:It,error:Pt,api:it,getBlocklet:Ht,setAppDid:Dt,launcherUrl:Et,launcherSession:St.launcherSession,launcherSessionId:mt};return jsxRuntimeExports.jsx(Provider$1,{value:Qt,children:a})}function useLaunchBlockletContext(){return reactExports.useContext(LaunchBlockletContext)}function useQuery(){return new URLSearchParams(useLocation().search)}const BlockletAppContext=reactExports.createContext(),{Provider,Consumer}=BlockletAppContext;function BlockletAppProvider({children:a}){const _e=useQuery().get("blocklet_meta_url"),et=_default$2(async()=>{const{data:tt}=await axios$1.get(_e);return tt});if(et.loading)return jsxRuntimeExports.jsx(Center,{children:jsxRuntimeExports.jsx(CircularProgress,{})});const nt={meta:et.value,error:et.error};return jsxRuntimeExports.jsx(Provider,{value:nt,children:a})}BlockletAppProvider.propTypes={children:PropTypes.any.isRequired};function useBlockletAppContext(){return reactExports.useContext(BlockletAppContext)}const Dashboard=reactExports.lazy(()=>__vitePreload(()=>import("./index-DITPbpVB.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url)),BlockletList=reactExports.lazy(()=>__vitePreload(()=>import("./index-6g5X1kQS.js"),__vite__mapDeps([5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,2,30,31,32,33,34]),import.meta.url)),BlockletRestore=reactExports.lazy(()=>__vitePreload(()=>import("./index--bLRFav8.js"),__vite__mapDeps([35,36,37,38,39,40,41,6,42,43,44,45,15,12,14,26,19,18]),import.meta.url)),BlockletStore=reactExports.lazy(()=>__vitePreload(()=>import("./index-BVMgCTFa.js"),__vite__mapDeps([46,6,47,48,49,18,17,50,12,51,52,32,15,14,42,53,43,54,3,55,56,19,23,24,57,58,59]),import.meta.url)),Settings=reactExports.lazy(()=>__vitePreload(()=>import("./index-CLn0Mq8q.js"),__vite__mapDeps([60,61,13,58,62,63,50,64,15,12,14,7,8,9,10,11,16,17,18,19,65,54,3,55,2,66,6,67,68,32,21,20,69,34,70,71,72,4,73]),import.meta.url)),LogPage=reactExports.lazy(()=>__vitePreload(()=>import("./index-D_enoZPw.js"),__vite__mapDeps([74,75,23,24,12,76]),import.meta.url)),TeamPage=reactExports.lazy(()=>__vitePreload(()=>import("./index-C-rb1x2V.js"),__vite__mapDeps([77,61,13,78,79,80,18,6,12,14,81,16,82,83,32,84,85,86,17,15,7,8,9,10,11,19,87,34,88,89,50,25,26,49,21,90,56,3,2,91,92,93,55,94,33,23,24,95,96,97,48,51,98,1,54,71]),import.meta.url)),BlockletDetail=reactExports.lazy(()=>__vitePreload(()=>import("./detail-BRhupi6R.js"),__vite__mapDeps([99,61,13,20,21,22,6,19,23,24,31,56,90,59]),import.meta.url)),EULAPage=reactExports.lazy(()=>__vitePreload(()=>import("./index-Ud3GHmKK.js"),[],import.meta.url)),Notifications=reactExports.lazy(()=>__vitePreload(()=>import("./index-BsrqDkz-.js"),__vite__mapDeps([100,1,81,16]),import.meta.url)),IssuePassport=reactExports.lazy(()=>__vitePreload(()=>import("./index-B0pJul6M.js"),__vite__mapDeps([101,102,89,103,91,69,104]),import.meta.url)),LostPassport=reactExports.lazy(()=>__vitePreload(()=>import("./index-CiSkmE2u.js"),__vite__mapDeps([105,69,85,53,104,30]),import.meta.url)),ExchangePassport=reactExports.lazy(()=>__vitePreload(()=>import("./index-BLWpQDG1.js"),__vite__mapDeps([106,104]),import.meta.url)),BlockletLauncher=reactExports.lazy(()=>__vitePreload(()=>import("./index-DZeE4hxl.js"),__vite__mapDeps([107,36,37,38,39,40,41,108,79,80,45,26,6,28,25,29,66]),import.meta.url)),NotFoundPage=reactExports.lazy(()=>__vitePreload(()=>import("./index-ChSFSE0T.js"),__vite__mapDeps([109,89]),import.meta.url)),Invite=reactExports.lazy(()=>__vitePreload(()=>import("./index-D_JFrv2N.js"),__vite__mapDeps([110,102,89,103,91,69,104]),import.meta.url)),Console=reactExports.lazy(()=>__vitePreload(()=>import("./index-5PA93kSc.js").then(a=>a.a2),__vite__mapDeps([111,112]),import.meta.url)),AnalyticsPage=reactExports.lazy(()=>__vitePreload(()=>import("./index-C58ue_9I.js"),__vite__mapDeps([113,61,13,114,115,116,70,12,117,8,15,14,51,7,9,10,11,16,17,18,19,31,118,119,4,6,98,24]),import.meta.url));function useSharedContext(){const a=useNodeContext(),{session:j}=useSessionContext$1(),{wallet:_e}=useBrowser(),et=j.user&&j.user.did;return reactExports.useEffect(()=>{const nt=getWsClient();return et?nt.connect():nt.isConnected()&&nt.disconnect(),()=>{nt.isConnected()&&nt.disconnect()}},[et]),reactExports.useEffect(()=>{if(_e)return()=>{};const nt=()=>{document.visibilityState==="visible"&&j.refresh()};return document.addEventListener("visibilitychange",nt),()=>{document.removeEventListener("visibilitychange",nt)}},[]),{node:a,session:j}}function ProtectedApp(){var it;const{t:a}=useLocaleContext(),{node:j,session:_e}=useSharedContext(),et=useLocation();reactExports.useEffect(()=>{window.tracker&&typeof window.tracker.pageView=="function"&&window.tracker.pageView(`${et.pathname}${et.search}`)},[et]),reactExports.useEffect(()=>{var ut;((ut=_e==null?void 0:_e.user)==null?void 0:ut.role)===constant$3.SERVER_ROLES.EXTERNAL_BLOCKLET_CONTROLLER&&_e.logout()},[(it=_e==null?void 0:_e.user)==null?void 0:it.role]);const nt=jsxRuntimeExports.jsx(CircularProgress,{});if(j.loading||_e.loading)return jsxRuntimeExports.jsx(Center,{children:nt});if(!j.info.initialized)return getAuthMethod.getServerAuthMethod(j.info)==="nft"?jsxRuntimeExports.jsx(NodeVerifyOwner,{action:"verify-owner"}):jsxRuntimeExports.jsx(Center,{children:jsxRuntimeExports.jsx(NodeConnectOwner,{})});if(j.info.upgradeSessionId)return jsxRuntimeExports.jsx(Center,{children:jsxRuntimeExports.jsx(MaintainProgress,{})});if(!_e.user)return jsxRuntimeExports.jsx(NodeLogin,{loadingEle:nt});const tt=jsxRuntimeExports.jsx(Center,{children:jsxRuntimeExports.jsx(CircularProgress,{})});return jsxRuntimeExports.jsx(NotificationProvider,{children:jsxRuntimeExports.jsxs(BlockletsProvider,{children:[jsxRuntimeExports.jsx(Health,{}),jsxRuntimeExports.jsx(CheckNodeStatus,{}),jsxRuntimeExports.jsx(GlobalSubscriber,{}),jsxRuntimeExports.jsx(reactExports.Suspense,{fallback:tt,children:jsxRuntimeExports.jsxs(Routes,{children:[jsxRuntimeExports.jsx(Route,{path:"/dashboard",element:jsxRuntimeExports.jsx(DashboardRoute,{fullWidth:!0,title:"Dashboard",children:jsxRuntimeExports.jsx(Dashboard,{})})}),jsxRuntimeExports.jsx(Route,{path:"/blocklets",element:jsxRuntimeExports.jsx(DashboardRoute,{fullWidth:!0,title:a("common.blocklets"),children:jsxRuntimeExports.jsx(BlockletList,{})})}),jsxRuntimeExports.jsx(Route,{path:"/blocklets/:did/:tab",element:jsxRuntimeExports.jsx(DashboardRoute,{fullWidth:!0,title:"Blocklets",children:jsxRuntimeExports.jsx(BlockletDetail,{})})}),jsxRuntimeExports.jsx(Route,{path:"/settings/:tab",element:jsxRuntimeExports.jsx(DashboardRoute,{fullWidth:!0,title:a("common.setting"),children:jsxRuntimeExports.jsx(Settings,{})})}),jsxRuntimeExports.jsx(Route,{path:"/eula",element:jsxRuntimeExports.jsx(DashboardRoute,{fullWidth:!0,title:a("setup.steps.eula"),children:jsxRuntimeExports.jsx(EULAPage,{})})}),jsxRuntimeExports.jsx(Route,{path:"/store",element:jsxRuntimeExports.jsx(DashboardRoute,{fullWidth:!0,title:a("common.store"),children:jsxRuntimeExports.jsx(BlockletStore,{})})}),jsxRuntimeExports.jsx(Route,{path:"/console",element:jsxRuntimeExports.jsx(DashboardRoute,{title:`GraphQL ${a("common.console")}`,scrollable:!1,fullWidth:!0,children:jsxRuntimeExports.jsx(Console,{})})}),jsxRuntimeExports.jsx(Route,{path:"/notifications",element:jsxRuntimeExports.jsx(DashboardRoute,{children:jsxRuntimeExports.jsx(Notifications,{})})}),jsxRuntimeExports.jsx(Route,{path:"/team/:tab",element:jsxRuntimeExports.jsx(DashboardRoute,{fullWidth:!0,title:a("common.team"),children:jsxRuntimeExports.jsx(TeamPage,{})})}),jsxRuntimeExports.jsx(Route,{path:"/logs/:name",element:jsxRuntimeExports.jsx(DashboardRoute,{scrollable:!1,fullWidth:!0,title:a("common.logs"),children:jsxRuntimeExports.jsx(LogPage,{})})}),jsxRuntimeExports.jsx(Route,{path:"/analytics/:tab",element:jsxRuntimeExports.jsx(DashboardRoute,{fullWidth:!0,title:a("common.analytics"),children:jsxRuntimeExports.jsx(AnalyticsPage,{})})}),jsxRuntimeExports.jsx(Route,{path:"/",element:jsxRuntimeExports.jsx(Navigate,{to:"/dashboard",replace:!0})}),jsxRuntimeExports.jsx(Route,{path:"/team",element:jsxRuntimeExports.jsx(Navigate,{to:"/team/members",replace:!0})}),jsxRuntimeExports.jsx(Route,{path:"/analytics",element:jsxRuntimeExports.jsx(Navigate,{to:"/analytics/traffic",replace:!0})}),jsxRuntimeExports.jsx(Route,{path:"/logs",element:jsxRuntimeExports.jsx(Navigate,{to:"/logs/abtnode",replace:!0})}),jsxRuntimeExports.jsx(Route,{path:"/router",element:jsxRuntimeExports.jsx(Navigate,{to:"/router/rules",replace:!0})}),jsxRuntimeExports.jsx(Route,{path:"/settings",element:jsxRuntimeExports.jsx(Navigate,{to:"/settings/basic",replace:!0})}),jsxRuntimeExports.jsx(Route,{path:"/marketplace",element:jsxRuntimeExports.jsx(Navigate,{to:"/store",replace:!0})}),jsxRuntimeExports.jsx(Route,{path:"/marketplace/:did",element:jsxRuntimeExports.jsx(Navigate,{to:"/store/:did",replace:!0})}),jsxRuntimeExports.jsx(Route,{path:"*",element:jsxRuntimeExports.jsx(NotFoundPage,{})})]})})]})})}function UnprotectedWrapper({children:a}){const{node:j,session:_e}=useSharedContext();return j.loading||!_e.initialized&&_e.loading?jsxRuntimeExports.jsx(Center,{children:jsxRuntimeExports.jsx(CircularProgress,{})}):j.info.upgradeSessionId?jsxRuntimeExports.jsx(Center,{children:jsxRuntimeExports.jsx(MaintainProgress,{})}):a}function App(){const{changeLocale:a}=useLocaleContext(),j=useQuery();reactExports.useEffect(()=>{const et=j.get("locale");et&&["zh","en"].includes(et)&&a(et)},[]);const _e=jsxRuntimeExports.jsx(Center,{children:jsxRuntimeExports.jsx(CircularProgress,{})});return jsxRuntimeExports.jsx(reactExports.Suspense,{fallback:_e,children:jsxRuntimeExports.jsxs(Routes,{children:[jsxRuntimeExports.jsx(Route,{path:`${constant$3.WELLKNOWN_SERVICE_PATH_PREFIX}/issue-passport`,element:jsxRuntimeExports.jsx(UnprotectedWrapper,{children:jsxRuntimeExports.jsx(IssuePassport,{})})}),jsxRuntimeExports.jsx(Route,{path:`${constant$3.WELLKNOWN_SERVICE_PATH_PREFIX}/lost-passport`,element:jsxRuntimeExports.jsx(UnprotectedWrapper,{children:jsxRuntimeExports.jsx(LostPassport,{})})}),jsxRuntimeExports.jsx(Route,{path:`${constant$3.WELLKNOWN_SERVICE_PATH_PREFIX}/exchange-passport`,element:jsxRuntimeExports.jsx(UnprotectedWrapper,{children:jsxRuntimeExports.jsx(ExchangePassport,{})})}),jsxRuntimeExports.jsx(Route,{path:"/accept-server",element:jsxRuntimeExports.jsx(UnprotectedWrapper,{children:jsxRuntimeExports.jsx(NodeVerifyOwner,{action:"accept-server"})})}),jsxRuntimeExports.jsx(Route,{path:"/launch-blocklet/*",element:jsxRuntimeExports.jsx(UnprotectedWrapper,{children:jsxRuntimeExports.jsx(LaunchBlockletProvider,{children:jsxRuntimeExports.jsx(BlockletLauncher,{})})})}),jsxRuntimeExports.jsx(Route,{path:"/blocklets/restore/*",element:jsxRuntimeExports.jsx(UnprotectedWrapper,{children:jsxRuntimeExports.jsx(BlockletAppProvider,{children:jsxRuntimeExports.jsx(BlockletRestore,{})})})}),jsxRuntimeExports.jsx(Route,{path:`${constant$3.WELLKNOWN_SERVICE_PATH_PREFIX}/invite`,element:jsxRuntimeExports.jsx(UnprotectedWrapper,{children:jsxRuntimeExports.jsx(Invite,{})})}),jsxRuntimeExports.jsx(Route,{path:"/*",element:jsxRuntimeExports.jsx(ProtectedApp,{})})]})})}function AppWrapper(){const a=window.env&&window.env.apiPrefix?window.env.apiPrefix:"/";return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(CssBaseline,{}),jsxRuntimeExports.jsx(BrowserRouter,{history,basename:a,children:jsxRuntimeExports.jsx(Root$5,{children:jsxRuntimeExports.jsx(App,{})})})]})}const root=createRoot(document.getElementById("root"));root.render(jsxRuntimeExports.jsx(AppWrapper,{}));const prefix=window.env&&window.env.apiPrefix?window.env.apiPrefix:"/";register(`${prefix}/service-worker.js`.replace(/\/+/g,"/"),{registrationOptions:{scope:prefix},registered(){console.info("Service worker has been registered.")},ready(){console.info("Service worker is active.")},cached(){console.info("Content has been cached for offline use.")},updatefound(){console.info("New content is downloading.")},updated(){console.info("New content is available; please refresh.")},offline(){console.info("No internet connection found. App is running in offline mode.")},error(a){console.error("Error during service worker registration:",a)}});export{default_1$n as $,useNavigate as A,ButtonComponent as B,CircularProgress as C,Dialog as D,toast as E,useSearchParams as F,Grid as G,constant$3 as H,ImageIcon as I,useMediaQuery as J,Alert as K,LinearProgress as L,formatError$1 as M,util as N,Link$2 as O,PropTypes as P,Box as Q,isEmpty$2 as R,RelativeTime$1 as S,TagComponent as T,MenuItem$1 as U,Permission as V,WrappedDidAddress as W,Center as X,toString_1 as Y,propTypesExports as Z,_createCompounder as _,useSubscription as a,Menu$1 as a$,lodashExports as a0,api$1 as a1,IconButton as a2,Confirm as a3,makeStyles as a4,ListItemSecondaryAction as a5,List as a6,ListItem as a7,ListItemText as a8,getServerUrl as a9,ErrorFallback as aA,formatRegistryLogoPath as aB,engine as aC,ListItemIcon as aD,ensureDomainAliases as aE,normalizePathPrefix$1 as aF,sortBy$1 as aG,getIp as aH,stringSortHandlerAsc as aI,getAccessUrl as aJ,requireCreateSvgIcon as aK,interopRequireDefaultExports as aL,history as aM,semver$1 as aN,useReactive as aO,useAsyncEffect as aP,sleep as aQ,checkInputByType as aR,Stack$5 as aS,isChrome as aT,_default$2 as aU,axios$1 as aV,shouldCheckDomainStatus as aW,formatMountPoint as aX,_default$5 as aY,FormControlLabel as aZ,Checkbox as a_,useBlockletAppContext as aa,getAuthMethod as ab,ConfirmDialog as ac,setSessionToken as ad,getRestoredAccessUrl as ae,Debug as af,isServerlessBlockletInstalled as ag,getWsClient as ah,useTheme$2 as ai,useQuery as aj,getPathPrefix as ak,HeaderAddon as al,SessionContext as am,Global as an,Routes as ao,Route as ap,Navigate as aq,css$1 as ar,AvatarWithErrorBoundary as as,formatToDatetime as at,getLaunchAgreementUrl as au,axios$4 as av,useSessionContext$1 as aw,Tooltip as ax,getBlockletMetaUrl as ay,ErrorBoundary as az,constant as b,useForkRef as b$,checkIsWildcardDomain as b0,Popover as b1,Card as b2,CardContent as b3,formatToDate as b4,sortDomains as b5,Collapse as b6,isUrl$1 as b7,__awaiter as b8,__generator as b9,_baseRest as bA,_arrayFilter as bB,last_1 as bC,isArrayLikeObject_1 as bD,default_1$c as bE,isDownloading as bF,withPermission as bG,getBlockletUrl as bH,getBlockletUrlParams as bI,createSvgIcon$1 as bJ,styled$1 as bK,ButtonBase as bL,_extends$2 as bM,emphasize_1 as bN,_objectWithoutPropertiesLoose$1 as bO,generateUtilityClasses as bP,generateUtilityClass as bQ,useDefaultProps as bR,useSlotProps as bS,clsx$1 as bT,composeClasses as bU,rootShouldForwardProp as bV,SwitchBase as bW,capitalize$3 as bX,alpha_1 as bY,createChainedFunction$1 as bZ,useControlled as b_,__spread as ba,React$2 as bb,dayjs$1 as bc,Divider as bd,isCertificateMatch as be,NodeContext as bf,useParams as bg,__assign as bh,__spreadArrays as bi,DidAddressWrapper as bj,createPassportSvg as bk,useNodeContext$1 as bl,getWalletType as bm,__vitePreload as bn,isInstalling as bo,Badge as bp,NavLink$1 as bq,createAppPassportSvg as br,_SetCache as bs,_arrayMap as bt,_baseUnary as bu,_arrayIncludes as bv,_arrayIncludesWith as bw,_cacheHas as bx,_baseFlatten as by,_baseUniq as bz,createClient as c,useEventCallback$1 as c$,useId as c0,merge$1 as c1,toSlotDomain as c2,omit$1 as c3,fixBlocklet as c4,memoize$5 as c5,defaultCheckAccessible as c6,getBlockletUrls as c7,urlEvaluation as c8,ButtonGroupContext as c9,useMount as cA,API_DID_PREFIX as cB,AUTH_SERVICE_PREFIX as cC,formatDateTime as cD,getExplorerLink as cE,patchJsxToLocale as cF,flat$1 as cG,en$2 as cH,LocaleProvider as cI,getAugmentedNamespace as cJ,Theme as cK,ReactDOM as cL,global$2 as cM,punycodeExports as cN,commonjsGlobal as cO,copy$1 as cP,dist$4 as cQ,Util as cR,require$$3 as cS,getSessionToken as cT,SvgLogo as cU,hoistStatics as cV,getLogoHash as cW,useEnhancedEffect$1 as cX,debounce$5 as cY,ownerWindow as cZ,useRtl as c_,ButtonGroupButtonContext as ca,BlockletAdminRoles as cb,ListItemAvatar as cc,Avatar$1 as cd,NotificationTag as ce,useNotificationContext as cf,useRequest as cg,useMemoizedFn as ch,isNumber$2 as ci,__read as cj,useLatest as ck,defaultDayjs as cl,useBrowser as cm,isFromWallet as cn,Container$3 as co,isFunction$8 as cp,usePassportId as cq,FullPage as cr,useLaunchBlockletContext as cs,useSecurity as ct,authorize as cu,isNewStoreUrl as cv,getAccessibleUrl as cw,getBlockletLogoUrl as cx,Img as cy,useLocation as cz,useBlockletsContext as d,checkboxClasses as d$,ownerDocument as d0,colors$1 as d1,useFormControl as d2,formControlState as d3,util$6 as d4,upperFirst$2 as d5,camelCase$2 as d6,ClickToCopy as d7,formatMuiErrorMessage$1 as d8,useTheme$3 as d9,easing as dA,emphasize$1 as dB,getContrastRatio$1 as dC,getLuminance$1 as dD,hexToRgb$1 as dE,hslToRgb$1 as dF,keyframes as dG,lighten$1 as dH,createMixins as dI,recomposeColor$1 as dJ,responsiveFontSizes as dK,rgbToHex$1 as dL,getUnit as dM,toUnitless as dN,Paper as dO,getPaperUtilityClass as dP,paperClasses as dQ,getIconButtonUtilityClass as dR,iconButtonClasses as dS,getTypographyUtilityClass as dT,typographyClasses as dU,chipClasses as dV,Chip as dW,getChipUtilityClass as dX,buttonClasses as dY,Button$1 as dZ,getButtonUtilityClass as d_,deepmerge$1 as da,GlobalStyles$2 as db,ThemeProvider$2 as dc,toPropertyKey$3 as dd,createSpacing as de,createBreakpoints as df,createTheme$1 as dg,private_safeDarken_1 as dh,private_safeLighten_1 as di,private_safeEmphasize_1 as dj,private_safeAlpha_1 as dk,private_safeColorChannel_1 as dl,defaultSxConfig as dm,styleFunctionSx$1 as dn,getOverlayAlpha as dp,hslToRgb_1 as dq,THEME_ID as dr,createTypography as ds,StyledEngineProvider as dt,ThemeProvider$1 as du,alpha$1 as dv,createMuiTheme as dw,darken$1 as dx,decomposeColor$1 as dy,duration as dz,_default$1 as e,ThemeProvider$4 as e$,getCheckboxUtilityClass as e0,formControlLabelClasses as e1,getFormControlLabelUtilityClasses as e2,getGridUtilityClass as e3,gridClasses as e4,Grow as e5,getListItemTextUtilityClass as e6,listItemTextClasses as e7,PopoverPaper as e8,PopoverRoot as e9,isObject$p as eA,cloneDeep$1 as eB,padStart_1 as eC,Buffer$3 as eD,lib$2 as eE,upperFirst_1 as eF,pick_1 as eG,lib$1 as eH,urlExports as eI,cloneDeep_1 as eJ,get_1 as eK,DID as eL,FormControlContext as eM,GlobalStyles as eN,isMuiElement as eO,slotShouldForwardProp as eP,ClickAwayListener as eQ,MenuList as eR,Popper as eS,_baseIsEqual as eT,SvgIcon as eU,process$1$1 as eV,urlPathFriendly$1 as eW,useThemeProps as eX,defaultTheme$2 as eY,commonjsRequire as eZ,create$4 as e_,getOffsetLeft as ea,getOffsetTop as eb,getPopoverUtilityClass as ec,popoverClasses as ed,getMenuItemUtilityClass as ee,menuItemClasses as ef,getTooltipUtilityClass as eg,tooltipClasses as eh,lighten_1 as ei,darken_1 as ej,Toolbar as ek,getToolbarUtilityClass as el,toolbarClasses as em,isHostComponent as en,emotionSerialize_esm as eo,emotionUtils_browser_esm as ep,emotionCache_browser_esm as eq,emotionReact_browser_esm as er,reactDomExports as es,Close as et,_baseIteratee as eu,isArrayLike_1 as ev,keys_1 as ew,_baseFindIndex as ex,toInteger_1 as ey,noop$7 as ez,LocaleContext as f,ThemeProvider as f$,Hidden as f0,Check$1 as f1,withQuery as f2,createTheme$3 as f3,styled$2 as f4,useTheme$4 as f5,extendSxProp as f6,getTargetElement as f7,useEventListener as f8,useUpdateEffect as f9,translate as fA,util$5 as fB,shams$1 as fC,hasPropertyDescriptors_1 as fD,defineDataProperty as fE,safeBufferExports as fF,requireBrowser$9 as fG,requireElliptic as fH,requireCryptoBrowserify as fI,ripemd160 as fJ,getInviteLink$1 as fK,SessionContext$1 as fL,getIssuePassportLink as fM,Icon as fN,getTextColor_1 as fO,isProtectedRole as fP,lib$3 as fQ,createPassportSvg$2 as fR,semver as fS,browserExports as fT,require$$0$1 as fU,isAbsoluteUrl as fV,dist$1 as fW,browser$4 as fX,requireObjectWithoutPropertiesLoose as fY,loadIcon as fZ,createTheme as f_,__spreadArray as fa,_baseOrderBy as fb,isArray_1 as fc,default_1$p as fd,useCreation as fe,parseQuery as ff,useDebounceFn as fg,createRoot as fh,useSize as fi,colors$2 as fj,callBound$2 as fk,callBindExports as fl,normalizePathPrefix_1 as fm,clamp$1 as fn,useIsFocusVisible as fo,extractEventHandlers as fp,resolveProps as fq,debounce_1 as fr,noop_1 as fs,_default$3 as ft,formatTime as fu,RelativeTime as fv,useUpdate as fw,tmp as fx,getVisitorId$2 as fy,useConfirm as fz,getDefaultExportFromCjs$1 as g,functionPlugin as g$,Fade as g0,ListItemButton as g1,AUTH_SERVICE_PREFIX$1 as g2,getTranslation as g3,SessionPermission as g4,NAVIGATION_URL as g5,LocaleSelector as g6,SessionUser as g7,default_1$l as g8,ResponsiveHeader as g9,objectAssign$1 as gA,_inheritsLoose$3 as gB,forceReflow as gC,Transition$1 as gD,_baseIndexOf as gE,_baseToString as gF,_baseTrim as gG,_castSlice as gH,_charsEndIndex as gI,_stringToArray as gJ,validateDomain as gK,axios_1 as gL,CopyButton as gM,isServerless as gN,getSystemDomains as gO,data$m as gP,isRunning as gQ,getTransferAppLink as gR,pick$1 as gS,data$g as gT,data$f as gU,data$h as gV,_copyArray as gW,usePreviousProps as gX,setRef as gY,ClearIcon as gZ,hoistNonReactStatics_cjs as g_,withErrorBoundary as ga,NavMenu as gb,DashboardWrapper as gc,BlockletSDK as gd,useUnmount as ge,identity_1 as gf,_baseForOwn as gg,_baseMap as gh,isString_1 as gi,isPlainObject_1 as gj,default_1$h as gk,browser as gl,uniq_1 as gm,pLimit_1 as gn,require$$6 as go,_isIndex as gp,_typeof$2 as gq,Dialog$1 as gr,dialogClasses as gs,DialogContent as gt,FocusTrap as gu,DialogActions as gv,TransitionGroup as gw,localizedFormatPlugin as gx,isExtracting as gy,APP_PREFIX as gz,useTheme as h,jssGlobal as h0,jssNested as h1,camelCase as h2,defaultUnit as h3,jssVendorPrefixer as h4,jssPropsSort as h5,createJss as h6,getDynamicStyles as h7,isNil_1 as h8,omit_1 as h9,require$$4$3 as hA,useTimeout as hB,createPopper as hC,getScrollbarSize as hD,reactIsExports as hE,isValidClusterSize as hF,extractStatusUrlFromNextWorkflow as hG,pWaitFor$1 as hH,hasRequiredSteps as hI,getStoreList as hJ,flatten$4 as hK,trimEnd$1 as hL,useCheckUpdateByUrl as hM,DialogTitle as hN,Icon$1 as hO,_baseEach as hP,_baseAssignValue as hQ,throttle$4 as hR,pTimeout$2 as hS,TimeoutError_1 as hT,debounce$3 as hU,uniq$1 as hV,Backdrop as hW,withoutTrailingSlash as ha,isString$2 as hb,isAbsoluteUrl$1 as hc,nanoid as hd,omitBy$1 as he,isNil$1 as hf,isEqual$1 as hg,useEffectWithTarget$1 as hh,__values as hi,isString$3 as hj,isFunction$5 as hk,_unsupportedIterableToArray as hl,_setPrototypeOf as hm,_assertThisInitialized$1 as hn,_createClass as ho,CacheProvider as hp,createCache as hq,StyleSheet$1 as hr,ThemeContext$1 as hs,React$3 as ht,require$$1$4 as hu,isPlainObject$5 as hv,require$$1$5 as hw,require$$2$1 as hx,require$$5 as hy,require$$6$2 as hz,Link$1 as i,jsxRuntimeExports as j,get$6 as k,filesize as l,Typography as m,newStyled as n,formatLocale as o,prettyMs as p,joinURL as q,reactExports as r,styled as s,useLocaleContext as t,useNodeContext as u,useSessionContext as v,_default as w,DialogContentText as x,DidConnect as y,getWebWalletUrl as z};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{aK as S,aL as _,j as e,bl as D,r as p,f as O,m as u,aZ as U,a_ as E,V as F,cb as V,B as $,C as k,bd as K,a6 as Q,a7 as R,O as Z,cc as w,cd as A,ce as L,a8 as I,a5 as P,ax as T,a2 as M,Q as G,at as H,n as J,P as i,o as W,cf as X}from"./index-
|
|
1
|
+
import{aK as S,aL as _,j as e,bl as D,r as p,f as O,m as u,aZ as U,a_ as E,V as F,cb as V,B as $,C as k,bd as K,a6 as Q,a7 as R,O as Z,cc as w,cd as A,ce as L,a8 as I,a5 as P,ax as T,a2 as M,Q as G,at as H,n as J,P as i,o as W,cf as X}from"./index-BdODRvyL.js";import{f as Y}from"./index-BojVbZw0.js";import{P as ee}from"./Pagination-889zSuEV.js";import"./LastPage-BPNA0QD7.js";var x={},te=_;Object.defineProperty(x,"__esModule",{value:!0});var g=x.default=void 0,ie=te(S()),ae=e;g=x.default=(0,ie.default)((0,ae.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7M2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2m4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3z"}),"VisibilityOff");function h({api:a,paging:o,loading:c,notifications:s,updateNotifications:r,teamDid:j}){const{inService:d}=D(),[m,q]=p.useState(!0),[y,b]=p.useState(!1),{t:n,locale:v}=p.useContext(O),z=async()=>{b(!0);const t=s.filter(l=>l.read===!1).map(l=>l.id).join(",");d?await a.readBlockletNotifications({input:{id:t,teamDid:j}}):await a.readNotifications({input:{id:t}}),r(),b(!1)},N=async t=>{d?await a.readBlockletNotifications({input:{id:t,teamDid:j}}):await a.readNotifications({input:{id:t}}),r()},f=m?s:s.filter(t=>t.read===!1),B=s.filter(t=>t.read===!1).length>0,C=t=>e.jsxs("div",{className:"title",children:[t.title," ",e.jsx("span",{className:"time-ago",title:H(t.createdAt,v),children:Y(new Date(t.createdAt),W(v))})]});return e.jsxs(se,{children:[e.jsxs(u,{component:"h2",variant:"h4",className:"page-header",color:"textPrimary",children:[n("notification.title"),e.jsxs(u,{component:"span",className:"notification-actions",children:[e.jsx(U,{control:e.jsx(E,{checked:m,onChange:()=>q(!m),name:"showRead",color:"primary"}),label:n("notification.showRead")}),e.jsx(F,{permission:d?"":"mutate_notification",role:d?V:[],children:B&&e.jsxs($,{disabled:y,onClick:z,className:"",children:[y&&e.jsx(k,{size:16,style:{marginRight:"1em"}}),n("notification.markAllAsRead")]})})]})]}),e.jsx(K,{}),e.jsxs(Q,{className:"notification-list",children:[c&&e.jsx(k,{size:[32,20],style:{opacity:"0.8",zIndex:1e4,position:"fixed",top:30,left:"50%",marginLeft:-16}}),f.length===0&&e.jsx(u,{component:"p",variant:"body1",className:"notification-tip",children:n("notification.empty")}),f.length>0&&f.map(t=>t.action?e.jsxs(R,{component:Z,to:t.action,alignItems:"flex-start",disabled:t.read,children:[e.jsx(w,{className:"list-item-avatar",children:e.jsxs(e.Fragment,{children:[e.jsx(A,{children:t.entityType.substr(0,1).toUpperCase()}),e.jsx(L,{className:"notification-tag",status:t.severity})]})}),e.jsx(I,{className:"list-item-text",classes:{secondary:"list-item-secondary-text"},primary:C(t),secondary:t.description}),t.read===!1&&e.jsx(P,{children:e.jsx(T,{title:n("notification.markAsRead"),children:e.jsx(M,{edge:"end","aria-label":"delete",onClick:()=>N(t.id),size:"large",children:e.jsx(g,{})})})})]},t.id):e.jsxs(R,{alignItems:"flex-start",disabled:t.read,children:[e.jsx(w,{className:"list-item-avatar",children:e.jsxs(e.Fragment,{children:[e.jsx(A,{children:t.entityType.substr(0,1).toUpperCase()}),e.jsx(L,{className:"notification-tag",status:t.severity})]})}),e.jsx(I,{className:"list-item-text",classes:{secondary:"list-item-secondary-text"},primary:C(t),secondary:t.description}),t.read===!1&&e.jsx(P,{children:e.jsx(T,{title:n("notification.markAsRead"),children:e.jsx(M,{edge:"end","aria-label":"delete",onClick:()=>N(t.id),size:"large",children:e.jsx(g,{})})})})]},t.id))]}),!!f.length&&o.pageCount>1&&e.jsx(G,{mt:2,display:"flex",justifyContent:"flex-end",children:e.jsx(ee,{disabled:c,count:o.pageCount,page:o.page,onChange:(t,l)=>{r({page:l})}})})]})}const se=J.div`
|
|
2
2
|
min-height: 60vh;
|
|
3
3
|
|
|
4
4
|
.page-header {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as u,bh as _,bi as z,aK as J,aL as X,j as e,t as A,c as P,H as b,m as L,U as q,Q as k,B as K,C as w,ac as E,P as j,f as O,D as Y,aZ as ee,a_ as te,n as S,at as I,o as se,u as G,K as ae,M as ne,V as oe,bj as re,A as ce,bg as ie,d as le,bk as me}from"./index-
|
|
1
|
+
import{r as u,bh as _,bi as z,aK as J,aL as X,j as e,t as A,c as P,H as b,m as L,U as q,Q as k,B as K,C as w,ac as E,P as j,f as O,D as Y,aZ as ee,a_ as te,n as S,at as I,o as se,u as G,K as ae,M as ne,V as oe,bj as re,A as ce,bg as ie,d as le,bk as me}from"./index-BdODRvyL.js";import{T as de}from"./index-BJrQBQOR.js";import pe from"./audit-logs--xCClvIG.js";import{P as ue,M as fe}from"./index-D19VVree.js";import ye from"./index-9y4YR_6P.js";import{T as ge}from"./team-CpKT_TRB.js";import{E as xe}from"./index-Cd5kGc_9.js";import{d as he}from"./Add-D_k4pI9W.js";import{T as N}from"./TextField-B8Ndn_Ly.js";import{F as H,S as V}from"./Select-CYNjgjo3.js";import{I as Q}from"./InputLabel-CbBV3Frl.js";import{C as W}from"./click-to-copy-BVC4LJBm.js";import{f as ve}from"./index-BojVbZw0.js";import{d as je}from"./Delete-DzIkIBeP.js";import{C as Ce}from"./delete-confirm-DB1Hsz09.js";import{d as ke}from"./Edit-CF2dV-p0.js";import"./index-TrxAhXnV.js";import"./useLocalStorage-Djk9mE88.js";import"./Pagination-889zSuEV.js";import"./LastPage-BPNA0QD7.js";import"./index-f7uSWUvq.js";import"./Loop-DKDVusA2.js";import"./ViewList-SsmYyAxZ.js";import"./list-header-B-qlxkz3.js";import"./Search-Dol4CnmY.js";import"./index-XhvmS84N.js";import"./useThemeProps-DZY4Hl_X.js";import"./index-X5ZsLA2j.js";import"./redux-DYkNRFlr.js";import"./ViewColumn-DkiM5eqL.js";import"./MoreVert-EDIahDDk.js";import"./index-CFm2Y_4c.js";import"./ExpandMore-BjFpCvCs.js";import"./resource-dialog-BhhfM8h1.js";import"./index-C9LZUW4N.js";import"./index-BJ57e_hS.js";import"./index-B5kkYZq8.js";import"./isEqual-CNnvQgen.js";import"./index-ZG7jWpak.js";import"./url-evaluation-CeM0t6WP.js";import"./blocklet-fx7ejRT1.js";import"./index-DQOcXiyw.js";import"./sdk-muHS20Ah.js";import"./actions-C-Plplr7.js";import"./MoreHoriz-DpkDHId8.js";import"./shorten-label-Dc8UKk1Q.js";import"./index-CpvpLQ3r.js";import"./ButtonGroup-CES_ASkn.js";import"./getValidReactChildren-DP5iwnLz.js";import"./EditIcon-CS66rX17.js";import"./LockIcon-Dsr8612h.js";import"./Google-CEg0_-Ba.js";import"./index-Dgsigr8r.js";import"./InputAdornment-ycCoKHr0.js";import"./ToggleButtonGroup-CgfxUxDK.js";function be(){var o=u.useRef(!1),s=u.useCallback(function(){return o.current},[]);return u.useEffect(function(){return o.current=!0,function(){o.current=!1}},[]),s}function Ke(o,s,p){s===void 0&&(s=[]),p===void 0&&(p={loading:!1});var r=u.useRef(0),c=be(),t=u.useState(p),n=t[0],l=t[1],m=u.useCallback(function(){for(var a=[],f=0;f<arguments.length;f++)a[f]=arguments[f];var y=++r.current;return n.loading||l(function(g){return _(_({},g),{loading:!0})}),o.apply(void 0,a).then(function(g){return c()&&y===r.current&&l({value:g,loading:!1}),g},function(g){return c()&&y===r.current&&l({error:g,loading:!1}),g})},s);return[n,m]}function Se(o,s){s===void 0&&(s=[]);var p=Ke(o,s,{loading:!0}),r=p[0],c=p[1];return u.useEffect(function(){c()},[c]),r}var _e=function(o,s){s===void 0&&(s=[]);var p=u.useState(0),r=p[0],c=p[1],t=Se(o,z(s,[r])),n=t.loading,l=u.useCallback(function(){n||c(function(m){return m+1})},z(s,[n]));return _(_({},t),{retry:l})},R={},Ae=X;Object.defineProperty(R,"__esModule",{value:!0});var Z=R.default=void 0,we=Ae(J()),Ie=e;Z=R.default=(0,we.default)((0,Ie.jsx)("path",{d:"M12.65 10C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H17v4h4v-4h2v-4zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2"}),"VpnKey");function T(o){const{remark:s,onCreate:p}=o,{t:r}=A(),[c,t]=u.useState(!1),[n,l]=u.useState(null),m=P(),a=b.RBAC_CONFIG.roles.filter(x=>x.passport&&x.name!==b.ROLES.OWNER),f=()=>{t(!1),l(null)},y=async x=>{const{remark:h,passport:d}=x;t(!0);const i=await m.createAccessKey({input:{remark:h.trim(),passport:d}}),{data:C}=i;p(C),l(null),t(!1)},g={title:`${r("common.create")} ${r("common.accessKey")}`,description:(x,h,d)=>e.jsxs(L,{component:"div",children:[e.jsx(N,{label:r("setting.accessKey.tip"),autoComplete:"off",variant:"outlined",name:"remark",inputProps:{"data-cy":"remark-input"},fullWidth:!0,autoFocus:!0,style:{marginBottom:32},margin:"dense",value:x.remark,onChange:i=>{h({...x,remark:i.target.value,__disableConfirm:!x.passport||!i.target.value.trim()}),i.target.value.trim()?d(""):d(r("setting.accessKey.remarkInvalid"))}}),e.jsxs(H,{style:{width:"100%"},variant:"outlined",children:[e.jsx(Q,{children:r("common.passport")}),e.jsx(V,{"data-cy":"create-access-key-select-passport",value:x.passport,onChange:i=>{const C=i.target.value;d(null),h({...x,passport:C,__disableConfirm:!x.remark||!C})},fullWidth:!0,label:r("common.passport"),disabled:c,children:a.map(i=>e.jsx(q,{value:i.name,"data-cy":`create-access-key-passport-option-${i.name}`,children:e.jsxs(k,{children:[e.jsx("span",{children:i.title||i.name}),e.jsx(k,{maxWidth:440,fontSize:12,color:"#999",whiteSpace:"normal",textAlign:"justify",children:i.description})]})},i.name))})]})]}),confirm:r("common.confirm"),cancel:r("common.cancel"),color:"primary",params:{remark:s,__disableConfirm:!s.trim()},onConfirm:y,onCancel:f};return e.jsxs(e.Fragment,{children:[e.jsxs(K,{edge:"end",variant:"contained",color:"primary","data-cy":"add-access-key-btn",onClick:()=>l(g),className:"rule-action",children:[c?e.jsx(w,{size:16}):e.jsx(he,{style:{fontSize:16}}),r("common.create")]}),n&&e.jsx(E,{title:n.title,description:n.description,confirm:n.confirm,color:n.color,cancel:n.cancel,params:n.params,onConfirm:n.onConfirm,onCancel:n.onCancel})]})}T.propTypes={remark:j.string,onCreate:j.func};T.defaultProps={onCreate:()=>{},remark:""};function $(o){const{onConfirm:s,accessKeyId:p,accessKeySecret:r}=o,{t:c}=u.useContext(O),[t,n]=u.useState(!1),[l,m]=u.useState(!0),a=()=>{m(!l)},f=y=>{n(y.target.checked)};return e.jsxs(Y,{title:c("common.createSuccess"),fullWidth:!0,open:!0,disableEscapeKeyDown:!0,onClose:s,showCloseButton:!1,actions:e.jsx("div",{children:e.jsx(K,{disabled:!t,onClick:s,color:"primary",autoFocus:!0,variant:"contained","data-cy":"submit-confirm-dialog",children:c("common.confirm")})}),"aria-labelledby":"simple-dialog-title",children:[e.jsx("div",{children:e.jsx(Ne,{children:c("setting.accessKey.saveSecretTip")})}),e.jsx("div",{style:{marginTop:"20px"}}),e.jsxs(U,{children:[e.jsx(M,{children:"Access Key"}),e.jsx(W,{children:p})]}),e.jsxs(U,{children:[e.jsx(M,{children:"Access Secret"}),l?e.jsx(K,{"data-cy":"show-secret-btn",color:"primary",onClick:a,children:c("setting.accessKey.showSecret")}):e.jsx(W,{children:r})]}),e.jsx("div",{children:e.jsx(ee,{value:"end",disabled:l,control:e.jsx(te,{checked:t,onChange:f}),label:c("setting.accessKey.iKnow"),labelPlacement:"end"})})]})}$.propTypes={accessKeyId:j.string.isRequired,accessKeySecret:j.string.isRequired,onConfirm:j.func};$.defaultProps={onConfirm:()=>{}};const M=S.div`
|
|
2
2
|
display: flex;
|
|
3
3
|
justify-content: space-between;
|
|
4
4
|
align-items: center;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{u as z,j as n,r as d,L as J,P as g,f as H,l as b,Q as m,m as S,d as Y,X as Z,C as ee,t as te,N as y,a as f,H as R,b as x,cU as re,G as v,E as T,p as ne,o as oe,A as se,bg as ie,n as ae}from"./index-C9QWROlO.js";import{T as me}from"./index-B-dgg_7V.js";import le from"./traffic-BBsVBreQ.js";import{D as ce}from"./index-C2-bicAv.js";import{B as ue}from"./app-avatar-CzTx2uPE.js";import{B as de}from"./bundle-avatar-C6lYc46c.js";import{C as pe,M as E}from"./memory-BP-6gvQx.js";import{I as fe}from"./chart-B1HGYnJR.js";import{w as ge}from"./withStyles-eMUb1FPy.js";import{_ as he}from"./useLocalStorage-kQm6yPnj.js";import{T as ye,a as ve}from"./ToggleButtonGroup-C1syeauh.js";import"./Delete-Dc7SNaDg.js";import"./iframe-B0_yxwdl.js";import"./ChevronLeft-C0tWZhe0.js";import"./ChevronRight-Cy58kVA1.js";import"./Select-D1lY3LQG.js";import"./useThemeProps-DzCadJBj.js";import"./TextField-kQx3sAGR.js";import"./InputLabel-B1j7mM5X.js";import"./InputAdornment-C8mYs2cn.js";import"./index-OJDHb5ZY.js";import"./redux-b00FNul4.js";import"./ViewColumn-CBqnaawo.js";import"./LastPage-DvyF__jR.js";import"./Search-C72vhPrR.js";import"./index-8yVQ7VYg.js";import"./MoreVert-D7U3C1RJ.js";import"./getValidReactChildren-C3Ot9SvD.js";function je(){const{api:e,info:r}=z();return n.jsx(le,{client:e,did:r.did})}var M={};Object.defineProperty(M,"__esModule",{value:!0});var V=M.default=void 0;xe(d);var C=n;function xe(e){return e&&e.__esModule?e:{default:e}}function L(e,r){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);r&&(a=a.filter(function(u){return Object.getOwnPropertyDescriptor(e,u).enumerable})),i.push.apply(i,a)}return i}function _(e){for(var r=1;r<arguments.length;r++){var i=arguments[r]!=null?arguments[r]:{};r%2?L(Object(i),!0).forEach(function(a){be(e,a,i[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):L(Object(i)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(i,a))})}return e}function be(e,r,i){return(r=Ie(r))in e?Object.defineProperty(e,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[r]=i,e}function Ie(e){var r=Ne(e,"string");return typeof r=="symbol"?r:r+""}function Ne(e,r){if(typeof e!="object"||!e)return e;var i=e[Symbol.toPrimitive];if(i!==void 0){var a=i.call(e,r||"default");if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(e)}var k=function(r){return(0,C.jsxs)("svg",_(_({},r),{},{children:[(0,C.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.083 3.2c0-.619.501-1.12 1.12-1.12h25.6c.619 0 1.12.501 1.12 1.12v10.24a1.12 1.12 0 0 1-1.12 1.12h-25.6a1.12 1.12 0 0 1-1.12-1.12V3.2zm2.24 1.12v8h23.36v-8H4.323zm-2.24 14.24c0-.619.501-1.12 1.12-1.12h25.6c.619 0 1.12.501 1.12 1.12V28.8a1.12 1.12 0 0 1-1.12 1.12h-25.6a1.12 1.12 0 0 1-1.12-1.12V18.56zm2.24 1.12v8h23.36v-8H4.323z",fill:"currentColor"}),(0,C.jsx)("path",{d:"M8.963 7.04h-1.28a.64.64 0 0 0-.64.64v1.28a.64.64 0 0 0 .64.64h1.28a.64.64 0 0 0 .64-.64V7.68a.64.64 0 0 0-.64-.64zm0 15.36h-1.28a.64.64 0 0 0-.64.64v1.28a.64.64 0 0 0 .64.64h1.28a.64.64 0 0 0 .64-.64v-1.28a.64.64 0 0 0-.64-.64zm5.12-15.36h-1.28a.64.64 0 0 0-.64.64v1.28a.64.64 0 0 0 .64.64h1.28a.64.64 0 0 0 .64-.64V7.68a.64.64 0 0 0-.64-.64zm0 15.36h-1.28a.64.64 0 0 0-.64.64v1.28a.64.64 0 0 0 .64.64h1.28a.64.64 0 0 0 .64-.64v-1.28a.64.64 0 0 0-.64-.64z",fill:"currentColor"})]}))};k.defaultProps={width:"32",height:"32",viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg"};k.displayName="server";V=M.default=k;const Pe=ge(e=>({root:{height:10},colorPrimary:{backgroundColor:e.palette.grey[e.palette.mode==="light"?200:700]},bar:{backgroundColor:e.palette.secondary.main}}))(J);function A(e){const{value:r}=e;return n.jsxs(m,{display:"flex",alignItems:"center",mt:2,children:[n.jsx(m,{width:"100%",style:{overflow:"hidden"},mr:1,children:n.jsx(Pe,{variant:"determinate",...e})}),n.jsx(m,{minWidth:35,children:n.jsx(S,{variant:"body2",color:"textSecondary",children:`${Math.round(r)}%`})})]})}A.propTypes={value:g.number.isRequired};function O({disk:e}){const{t:r}=d.useContext(H),i=[{id:1,className:"used",title:r("system.used"),metric:b(e.used)},{id:2,className:"free",title:r("system.free"),metric:b(e.free)},{id:3,className:"total",title:r("system.total"),metric:b(e.total)}];return n.jsx(fe,{title:`${r("common.disk")} (${e.device})`,value:b(e.used),graph:n.jsx(m,{mt:3,children:n.jsx(A,{value:e.used/e.total*100})}),description:i.map((a,u)=>n.jsxs(m,{sx:{marginLeft:u===0?0:2},children:[a.title,": ",a.metric]},a.title))})}O.propTypes={disk:g.shape({used:g.number,free:g.number,total:g.number,device:g.string})};O.defaultProps={disk:{used:0,free:0,total:1,device:""}};const D={uptime:0,pid:-1,cpuUsage:0,memoryUsage:0},U="Blocklet Server";function $({initialBlocklets:e}){const{t:r,locale:i}=te(),{api:a}=z(),[u,I]=he("runtime-view-interval",6),j=d.useMemo(()=>{const t=[];return t.push({type:"server",groupId:"server",groupName:U,id:"server:daemon",name:"Server (Daemon)",runtimeInfo:D}),t.push({type:"server",groupId:"server",groupName:U,id:"server:service",name:"Server (Service)",runtimeInfo:D}),e.forEach(o=>{y.forEachBlockletSync(o,(s,{id:l,ancestors:c})=>{s.runtimeInfo&&t.push({type:"blocklet",groupId:o.meta.did,groupName:y.getDisplayName(o),id:l,name:y.getDisplayName(s,!0),blocklet:o,component:s,runtimeInfo:s.runtimeInfo,ancestors:c})})}),t},[]),[p,N]=d.useState(j),[h,F]=d.useState({os:{platform:""},mem:{used:0,free:0,total:1},cpu:{cpus:[],currentLoad:1},disks:[],daemon:{},service:{}}),[P,G]=d.useState({cpu:[],mem:[],daemonMem:[],serviceMem:[]});f(R.EVENTS.NODE_RUNTIME_INFO,t=>{t.mem.total=t.mem.total||0,t.mem.used=t.mem.total-(t.mem.available||0),F(t),N(o=>o.map(s=>s.id==="server:daemon"?{...s,runtimeInfo:{...s.runtimeInfo,...t.daemon}}:s.id==="server:service"?{...s,runtimeInfo:{...s.runtimeInfo,...t.service}}:s))}),f(R.EVENTS.BLOCKLETS_RUNTIME_INFO,t=>{if(!t||!t.length){console.error("incorrect blocklets runtime info format",t);return}N(o=>o.map(s=>{const l=t.find(c=>c.componentId===s.id);return l?{...s,runtimeInfo:{...s.runtimeInfo,...l.runtimeInfo}}:s}))});const w=t=>{N(o=>o.filter(s=>s.groupId!==t.meta.did))},B=async t=>{try{const{blocklet:o}=await a.getBlocklet({input:{did:t.meta.did,attachRuntimeInfo:!0}});o.status!=="running"&&w(o),N(s=>{const l=s.filter(c=>c.groupId!==o.meta.did);return y.forEachBlockletSync(o,(c,{id:Q,ancestors:X})=>{c.runtimeInfo&&l.push({type:"blocklet",groupId:o.meta.did,groupName:y.getDisplayName(o),id:Q,name:y.getDisplayName(c,!0),blocklet:o,component:c,runtimeInfo:c.runtimeInfo,ancestors:X})}),l})}catch(o){T.error(o.message)}};f(x.BlockletEvents.removed,w),f(x.BlockletEvents.startFailed,w),f(x.BlockletEvents.statusChange,t=>{if(t.status!=="running"){w(t);return}B(t)}),f(x.BlockletEvents.updated,B),f(x.BlockletEvents.started,B);const W=()=>{a.getNodeRuntimeHistory({input:{hours:u}}).then(t=>{const o=t.history||[];G({cpu:o.map(s=>({date:s.date,value:s.cpu})),mem:o.map(s=>({date:s.date,value:s.mem})),daemonMem:o.map(s=>({date:s.date,value:s.daemonMem})),serviceMem:o.map(s=>({date:s.date,value:s.serviceMem}))})}).catch(t=>{T.error(t.message)})};d.useEffect(()=>{W()},[u]);const q=t=>ne(Number(t||0),{locale:oe(i)}),K=[{label:r("common.group"),name:"groupName",options:{customBodyRenderLite(t){const{type:o,blocklet:s,groupName:l}=p[t];return o==="server"?n.jsxs(m,{display:"flex",alignItems:"center",children:[n.jsx(re,{width:"14",height:"14"}),n.jsx(m,{ml:1,children:l})]}):n.jsxs(m,{display:"flex",alignItems:"center",children:[n.jsx(ue,{size:14,blocklet:s}),n.jsx(m,{ml:1,children:l})]})}}},{label:r("common.name"),name:"name",options:{customBodyRenderLite(t){const{type:o,name:s,component:l,ancestors:c}=p[t];return o==="server"?n.jsxs(m,{display:"flex",alignItems:"center",children:[n.jsx(V,{width:"14",height:"14"}),n.jsx(m,{ml:1,children:s})]}):n.jsxs(m,{display:"flex",alignItems:"center",children:[n.jsx(de,{size:14,blocklet:l,ancestors:c}),n.jsx(m,{ml:1,children:s})]})}}},{label:r("common.uptime"),name:"runtimeInfo.uptime",options:{customBodyRenderLite(t){const{runtimeInfo:o}=p[t];return q(o.uptime)}}},{label:r("blocklet.runtimeInfo.memoryUsage"),name:"runtimeInfo.memoryUsage",options:{customBodyRenderLite(t){const{runtimeInfo:o}=p[t];return b((o==null?void 0:o.memoryUsage)||0)},sortDirection:"asc"}},{label:r("blocklet.runtimeInfo.cpuUsage"),name:"runtimeInfo.cpuUsage",options:{customBodyRenderLite(t){const{runtimeInfo:o}=p[t];return`${(o.cpuUsage||0).toFixed(1)}%`}}},{label:r("blocklet.runtimeInfo.processId"),name:"runtimeInfo.pid"},{label:r("blocklet.runtimeInfo.port"),name:"runtimeInfo.port"}];return n.jsxs("div",{children:[n.jsxs(m,{display:"flex",justifyContent:"space-between",flexDirection:"row",mb:2,children:[n.jsx(S,{component:"h3",variant:"h5",color:"textPrimary",style:{fontSize:18,fontWeight:"bold"},children:r("analytics.trend")}),n.jsx(ye,{size:"small",exclusive:!0,value:u,onChange:(t,o)=>I(o),children:[1,3,6,12,24].map(t=>n.jsxs(ve,{value:t,children:[t,"H"]},t))})]}),n.jsxs(v,{mb:4,container:!0,spacing:4,children:[n.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:n.jsx(pe,{...h.cpu,history:P.cpu})},"cpu"),n.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:n.jsx(E,{...h.mem,history:P.mem})},"memory"),n.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:n.jsx(E,{title:`${r("common.memory")} (Daemon)`,used:h.daemon.memoryUsage||0,history:P.daemonMem})},"memory-daemon"),n.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:n.jsx(E,{title:`${r("common.memory")} (Service)`,instanceCount:h.service.instanceCount||0,used:h.service.memoryUsage||0,history:P.serviceMem})},"memory-service"),h.disks.map(t=>n.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:n.jsx(O,{disk:t})},"disk"))]}),n.jsx(ce,{className:"runtime-insight-list",title:r("analytics.detail"),locale:i,data:p,columns:K,options:{download:!1,filter:!1,print:!1,pagination:!1,rowsPerPage:100}})]})}$.propTypes={initialBlocklets:g.array.isRequired};function we(){const{data:e,externalData:r,initialized:i}=Y();if(!i)return n.jsx(Z,{relative:"parent",children:n.jsx(ee,{})});const a=[...e,...r];return n.jsx($,{initialBlocklets:a})}function tt(){const e=se(),{t:r}=d.useContext(H),{tab:i="traffic"}=ie(),a=p=>{e(`/analytics/${p}`)},u=[{label:r("common.traffic"),value:"traffic"},{label:r("common.runtime"),value:"runtime"}],I={traffic:je,runtime:we},j=I[i]||I.traffic;return n.jsxs(Be,{children:[n.jsx(S,{component:"h2",variant:"h4",className:"page-header",color:"textPrimary",children:r("common.analytics")}),n.jsx(me,{tabs:u,current:i,onChange:a}),n.jsx("div",{className:"page-content",children:d.isValidElement(j)?j:n.jsx(j,{})})]})}const Be=ae.main`
|
|
1
|
+
import{u as z,j as n,r as d,L as J,P as g,f as H,l as b,Q as m,m as S,d as Y,X as Z,C as ee,t as te,N as y,a as f,H as R,b as x,cU as re,G as v,E as T,p as ne,o as oe,A as se,bg as ie,n as ae}from"./index-BdODRvyL.js";import{T as me}from"./index-BJrQBQOR.js";import le from"./traffic-D_VS-ogp.js";import{D as ce}from"./index-XhvmS84N.js";import{B as ue}from"./app-avatar-d8qNeOSe.js";import{B as de}from"./bundle-avatar-Csnfb0Gl.js";import{C as pe,M as E}from"./memory-nuYLHuFl.js";import{I as fe}from"./chart-YMtcv4Pw.js";import{w as ge}from"./withStyles-DeG1LPw1.js";import{_ as he}from"./useLocalStorage-Djk9mE88.js";import{T as ye,a as ve}from"./ToggleButtonGroup-CgfxUxDK.js";import"./Delete-DzIkIBeP.js";import"./iframe-DP4MxIys.js";import"./ChevronLeft-BVPkwsiy.js";import"./ChevronRight-ChF0KBJG.js";import"./Select-CYNjgjo3.js";import"./useThemeProps-DZY4Hl_X.js";import"./TextField-B8Ndn_Ly.js";import"./InputLabel-CbBV3Frl.js";import"./InputAdornment-ycCoKHr0.js";import"./index-X5ZsLA2j.js";import"./redux-DYkNRFlr.js";import"./ViewColumn-DkiM5eqL.js";import"./LastPage-BPNA0QD7.js";import"./Search-Dol4CnmY.js";import"./index-Cd5kGc_9.js";import"./MoreVert-EDIahDDk.js";import"./getValidReactChildren-DP5iwnLz.js";function je(){const{api:e,info:r}=z();return n.jsx(le,{client:e,did:r.did})}var M={};Object.defineProperty(M,"__esModule",{value:!0});var V=M.default=void 0;xe(d);var C=n;function xe(e){return e&&e.__esModule?e:{default:e}}function L(e,r){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);r&&(a=a.filter(function(u){return Object.getOwnPropertyDescriptor(e,u).enumerable})),i.push.apply(i,a)}return i}function _(e){for(var r=1;r<arguments.length;r++){var i=arguments[r]!=null?arguments[r]:{};r%2?L(Object(i),!0).forEach(function(a){be(e,a,i[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):L(Object(i)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(i,a))})}return e}function be(e,r,i){return(r=Ie(r))in e?Object.defineProperty(e,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[r]=i,e}function Ie(e){var r=Ne(e,"string");return typeof r=="symbol"?r:r+""}function Ne(e,r){if(typeof e!="object"||!e)return e;var i=e[Symbol.toPrimitive];if(i!==void 0){var a=i.call(e,r||"default");if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(e)}var k=function(r){return(0,C.jsxs)("svg",_(_({},r),{},{children:[(0,C.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.083 3.2c0-.619.501-1.12 1.12-1.12h25.6c.619 0 1.12.501 1.12 1.12v10.24a1.12 1.12 0 0 1-1.12 1.12h-25.6a1.12 1.12 0 0 1-1.12-1.12V3.2zm2.24 1.12v8h23.36v-8H4.323zm-2.24 14.24c0-.619.501-1.12 1.12-1.12h25.6c.619 0 1.12.501 1.12 1.12V28.8a1.12 1.12 0 0 1-1.12 1.12h-25.6a1.12 1.12 0 0 1-1.12-1.12V18.56zm2.24 1.12v8h23.36v-8H4.323z",fill:"currentColor"}),(0,C.jsx)("path",{d:"M8.963 7.04h-1.28a.64.64 0 0 0-.64.64v1.28a.64.64 0 0 0 .64.64h1.28a.64.64 0 0 0 .64-.64V7.68a.64.64 0 0 0-.64-.64zm0 15.36h-1.28a.64.64 0 0 0-.64.64v1.28a.64.64 0 0 0 .64.64h1.28a.64.64 0 0 0 .64-.64v-1.28a.64.64 0 0 0-.64-.64zm5.12-15.36h-1.28a.64.64 0 0 0-.64.64v1.28a.64.64 0 0 0 .64.64h1.28a.64.64 0 0 0 .64-.64V7.68a.64.64 0 0 0-.64-.64zm0 15.36h-1.28a.64.64 0 0 0-.64.64v1.28a.64.64 0 0 0 .64.64h1.28a.64.64 0 0 0 .64-.64v-1.28a.64.64 0 0 0-.64-.64z",fill:"currentColor"})]}))};k.defaultProps={width:"32",height:"32",viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg"};k.displayName="server";V=M.default=k;const Pe=ge(e=>({root:{height:10},colorPrimary:{backgroundColor:e.palette.grey[e.palette.mode==="light"?200:700]},bar:{backgroundColor:e.palette.secondary.main}}))(J);function A(e){const{value:r}=e;return n.jsxs(m,{display:"flex",alignItems:"center",mt:2,children:[n.jsx(m,{width:"100%",style:{overflow:"hidden"},mr:1,children:n.jsx(Pe,{variant:"determinate",...e})}),n.jsx(m,{minWidth:35,children:n.jsx(S,{variant:"body2",color:"textSecondary",children:`${Math.round(r)}%`})})]})}A.propTypes={value:g.number.isRequired};function O({disk:e}){const{t:r}=d.useContext(H),i=[{id:1,className:"used",title:r("system.used"),metric:b(e.used)},{id:2,className:"free",title:r("system.free"),metric:b(e.free)},{id:3,className:"total",title:r("system.total"),metric:b(e.total)}];return n.jsx(fe,{title:`${r("common.disk")} (${e.device})`,value:b(e.used),graph:n.jsx(m,{mt:3,children:n.jsx(A,{value:e.used/e.total*100})}),description:i.map((a,u)=>n.jsxs(m,{sx:{marginLeft:u===0?0:2},children:[a.title,": ",a.metric]},a.title))})}O.propTypes={disk:g.shape({used:g.number,free:g.number,total:g.number,device:g.string})};O.defaultProps={disk:{used:0,free:0,total:1,device:""}};const D={uptime:0,pid:-1,cpuUsage:0,memoryUsage:0},U="Blocklet Server";function $({initialBlocklets:e}){const{t:r,locale:i}=te(),{api:a}=z(),[u,I]=he("runtime-view-interval",6),j=d.useMemo(()=>{const t=[];return t.push({type:"server",groupId:"server",groupName:U,id:"server:daemon",name:"Server (Daemon)",runtimeInfo:D}),t.push({type:"server",groupId:"server",groupName:U,id:"server:service",name:"Server (Service)",runtimeInfo:D}),e.forEach(o=>{y.forEachBlockletSync(o,(s,{id:l,ancestors:c})=>{s.runtimeInfo&&t.push({type:"blocklet",groupId:o.meta.did,groupName:y.getDisplayName(o),id:l,name:y.getDisplayName(s,!0),blocklet:o,component:s,runtimeInfo:s.runtimeInfo,ancestors:c})})}),t},[]),[p,N]=d.useState(j),[h,F]=d.useState({os:{platform:""},mem:{used:0,free:0,total:1},cpu:{cpus:[],currentLoad:1},disks:[],daemon:{},service:{}}),[P,G]=d.useState({cpu:[],mem:[],daemonMem:[],serviceMem:[]});f(R.EVENTS.NODE_RUNTIME_INFO,t=>{t.mem.total=t.mem.total||0,t.mem.used=t.mem.total-(t.mem.available||0),F(t),N(o=>o.map(s=>s.id==="server:daemon"?{...s,runtimeInfo:{...s.runtimeInfo,...t.daemon}}:s.id==="server:service"?{...s,runtimeInfo:{...s.runtimeInfo,...t.service}}:s))}),f(R.EVENTS.BLOCKLETS_RUNTIME_INFO,t=>{if(!t||!t.length){console.error("incorrect blocklets runtime info format",t);return}N(o=>o.map(s=>{const l=t.find(c=>c.componentId===s.id);return l?{...s,runtimeInfo:{...s.runtimeInfo,...l.runtimeInfo}}:s}))});const w=t=>{N(o=>o.filter(s=>s.groupId!==t.meta.did))},B=async t=>{try{const{blocklet:o}=await a.getBlocklet({input:{did:t.meta.did,attachRuntimeInfo:!0}});o.status!=="running"&&w(o),N(s=>{const l=s.filter(c=>c.groupId!==o.meta.did);return y.forEachBlockletSync(o,(c,{id:Q,ancestors:X})=>{c.runtimeInfo&&l.push({type:"blocklet",groupId:o.meta.did,groupName:y.getDisplayName(o),id:Q,name:y.getDisplayName(c,!0),blocklet:o,component:c,runtimeInfo:c.runtimeInfo,ancestors:X})}),l})}catch(o){T.error(o.message)}};f(x.BlockletEvents.removed,w),f(x.BlockletEvents.startFailed,w),f(x.BlockletEvents.statusChange,t=>{if(t.status!=="running"){w(t);return}B(t)}),f(x.BlockletEvents.updated,B),f(x.BlockletEvents.started,B);const W=()=>{a.getNodeRuntimeHistory({input:{hours:u}}).then(t=>{const o=t.history||[];G({cpu:o.map(s=>({date:s.date,value:s.cpu})),mem:o.map(s=>({date:s.date,value:s.mem})),daemonMem:o.map(s=>({date:s.date,value:s.daemonMem})),serviceMem:o.map(s=>({date:s.date,value:s.serviceMem}))})}).catch(t=>{T.error(t.message)})};d.useEffect(()=>{W()},[u]);const q=t=>ne(Number(t||0),{locale:oe(i)}),K=[{label:r("common.group"),name:"groupName",options:{customBodyRenderLite(t){const{type:o,blocklet:s,groupName:l}=p[t];return o==="server"?n.jsxs(m,{display:"flex",alignItems:"center",children:[n.jsx(re,{width:"14",height:"14"}),n.jsx(m,{ml:1,children:l})]}):n.jsxs(m,{display:"flex",alignItems:"center",children:[n.jsx(ue,{size:14,blocklet:s}),n.jsx(m,{ml:1,children:l})]})}}},{label:r("common.name"),name:"name",options:{customBodyRenderLite(t){const{type:o,name:s,component:l,ancestors:c}=p[t];return o==="server"?n.jsxs(m,{display:"flex",alignItems:"center",children:[n.jsx(V,{width:"14",height:"14"}),n.jsx(m,{ml:1,children:s})]}):n.jsxs(m,{display:"flex",alignItems:"center",children:[n.jsx(de,{size:14,blocklet:l,ancestors:c}),n.jsx(m,{ml:1,children:s})]})}}},{label:r("common.uptime"),name:"runtimeInfo.uptime",options:{customBodyRenderLite(t){const{runtimeInfo:o}=p[t];return q(o.uptime)}}},{label:r("blocklet.runtimeInfo.memoryUsage"),name:"runtimeInfo.memoryUsage",options:{customBodyRenderLite(t){const{runtimeInfo:o}=p[t];return b((o==null?void 0:o.memoryUsage)||0)},sortDirection:"asc"}},{label:r("blocklet.runtimeInfo.cpuUsage"),name:"runtimeInfo.cpuUsage",options:{customBodyRenderLite(t){const{runtimeInfo:o}=p[t];return`${(o.cpuUsage||0).toFixed(1)}%`}}},{label:r("blocklet.runtimeInfo.processId"),name:"runtimeInfo.pid"},{label:r("blocklet.runtimeInfo.port"),name:"runtimeInfo.port"}];return n.jsxs("div",{children:[n.jsxs(m,{display:"flex",justifyContent:"space-between",flexDirection:"row",mb:2,children:[n.jsx(S,{component:"h3",variant:"h5",color:"textPrimary",style:{fontSize:18,fontWeight:"bold"},children:r("analytics.trend")}),n.jsx(ye,{size:"small",exclusive:!0,value:u,onChange:(t,o)=>I(o),children:[1,3,6,12,24].map(t=>n.jsxs(ve,{value:t,children:[t,"H"]},t))})]}),n.jsxs(v,{mb:4,container:!0,spacing:4,children:[n.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:n.jsx(pe,{...h.cpu,history:P.cpu})},"cpu"),n.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:n.jsx(E,{...h.mem,history:P.mem})},"memory"),n.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:n.jsx(E,{title:`${r("common.memory")} (Daemon)`,used:h.daemon.memoryUsage||0,history:P.daemonMem})},"memory-daemon"),n.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:n.jsx(E,{title:`${r("common.memory")} (Service)`,instanceCount:h.service.instanceCount||0,used:h.service.memoryUsage||0,history:P.serviceMem})},"memory-service"),h.disks.map(t=>n.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:n.jsx(O,{disk:t})},"disk"))]}),n.jsx(ce,{className:"runtime-insight-list",title:r("analytics.detail"),locale:i,data:p,columns:K,options:{download:!1,filter:!1,print:!1,pagination:!1,rowsPerPage:100}})]})}$.propTypes={initialBlocklets:g.array.isRequired};function we(){const{data:e,externalData:r,initialized:i}=Y();if(!i)return n.jsx(Z,{relative:"parent",children:n.jsx(ee,{})});const a=[...e,...r];return n.jsx($,{initialBlocklets:a})}function tt(){const e=se(),{t:r}=d.useContext(H),{tab:i="traffic"}=ie(),a=p=>{e(`/analytics/${p}`)},u=[{label:r("common.traffic"),value:"traffic"},{label:r("common.runtime"),value:"runtime"}],I={traffic:je,runtime:we},j=I[i]||I.traffic;return n.jsxs(Be,{children:[n.jsx(S,{component:"h2",variant:"h4",className:"page-header",color:"textPrimary",children:r("common.analytics")}),n.jsx(me,{tabs:u,current:i,onChange:a}),n.jsx("div",{className:"page-content",children:d.isValidElement(j)?j:n.jsx(j,{})})]})}const Be=ae.main`
|
|
2
2
|
.page-header {
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: space-between;
|