@abtnode/blocklet-services 1.17.7-beta-20251225-073259-cb6ecf68 → 1.17.7-beta-20251229-085620-84f09930
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/index.js +16 -4
- package/api/libs/auth/adapters/apple.js +1 -1
- package/api/libs/auth/adapters/auth0.js +1 -1
- package/api/libs/auth/adapters/github.js +1 -1
- package/api/libs/auth/adapters/google.js +1 -1
- package/api/middlewares/serve-static-engine.js +179 -0
- package/api/routes/env.js +3 -4
- package/api/routes/oauth/client.js +7 -5
- package/api/services/notification/queue.js +2 -2
- package/api/socket/channel/component.js +19 -13
- package/api/socket/util.js +6 -1
- package/dist/assets/{AdapterDayjs-BUbxoXbD.js → AdapterDayjs-DYIVeXBV.js} +1 -1
- package/dist/assets/{Google-Cwpw9PRe.js → Google-D9N2NN29.js} +1 -1
- package/dist/assets/{access-control-DwlD3_cw.js → access-control-UTVMJtLa.js} +1 -1
- package/dist/assets/{add-component-core-BITgGwN0.js → add-component-core-Cu9Tohbt.js} +31 -31
- package/dist/assets/add-resource-CqOi5S87.js +1 -0
- package/dist/assets/{addon-C2qdiHVb.js → addon-DSFDYYiP.js} +1 -1
- package/dist/assets/{advanced-BosetBVE.js → advanced-CkJs81iC.js} +1 -1
- package/dist/assets/{aigne-DbMeOdg9.js → aigne-Dt8mwR8G.js} +1 -1
- package/dist/assets/api-FQQlzPOP.js +1 -0
- package/dist/assets/{appearance-DhUAX-xn.js → appearance-Bs9dCa2z.js} +1 -1
- package/dist/assets/ar-B4BSOV5G.js +7 -0
- package/dist/assets/{audit-logs-BHPPGieH.js → audit-logs-Bk0Y0aey.js} +3 -3
- package/dist/assets/{authorize-Dfo70g1t.js → authorize-C6B5tUkA.js} +1 -1
- package/dist/assets/{base-chart-Cs8rd9f2.js → base-chart-ChBZtUEG.js} +1 -1
- package/dist/assets/{base32-CXgP3JJ5.js → base32-BccrNIeO.js} +1 -1
- package/dist/assets/{bind-account-Drs3IDFN.js → bind-account-CLV9q3E3.js} +1 -1
- package/dist/assets/branding-BGRUKKNR.js +1 -0
- package/dist/assets/{branding-ByK6n-fM.js → branding-Cwk5a8ly.js} +1 -1
- package/dist/assets/{branding-BhvacExo.js → branding-JmTDNoIq.js} +1 -1
- package/dist/assets/{bundle-avatar-DVOaAXid.js → bundle-avatar-CLRiyhwo.js} +1 -1
- package/dist/assets/{button-D6RwAFss.js → button-Bfs8GG-V.js} +1 -1
- package/dist/assets/{click-to-copy-B2HIKJMV.js → click-to-copy-fgcvdv-u.js} +1 -1
- package/dist/assets/cloneDeep-C2rlAYcK.js +1 -0
- package/dist/assets/{complete-Djtuko3J.js → complete-Bb_Zgfxn.js} +2 -2
- package/dist/assets/{component-UsgyDUkb.js → component-BEiiKeGh.js} +2 -2
- package/dist/assets/{config-DuS3gx_m.js → config-CAUPVWd8.js} +2 -2
- package/dist/assets/{config-CUYR0yDP.js → config-Crd4mTZS.js} +2 -2
- package/dist/assets/{config-Co1ZhGgP.js → config-DEeSuJty.js} +1 -1
- package/dist/assets/{config-navigation-DjF2jJY9.js → config-navigation-DcFoMJlj.js} +7 -7
- package/dist/assets/{config-space-zEV0JkDF.js → config-space-DVE2CBUC.js} +1 -1
- package/dist/assets/{confirm-DTx9f3Ke.js → confirm-BSaTCzrs.js} +1 -1
- package/dist/assets/{connect-nknm0LHt.js → connect-B0W5gXFT.js} +1 -1
- package/dist/assets/connect-ChbbAHB_.js +5 -0
- package/dist/assets/{connect-to-eBtGI4_9.js → connect-to-D7rrqt6m.js} +1 -1
- package/dist/assets/{create-passport-svg-BQhmIwWD.js → create-passport-svg-BJX-WFnl.js} +1 -1
- package/dist/assets/{createClass-dudiLlP7.js → createClass-CH1sG4Vj.js} +1 -1
- package/dist/assets/dashboard-DDFp-UB6.js +103 -0
- package/dist/assets/de-EFAP4yzZ.js +7 -0
- package/dist/assets/{delete-confirm-HiRqbh9-.js → delete-confirm-BzmT7bQV.js} +1 -1
- package/dist/assets/{did-address-DqhneWXa.js → did-address-cHTriZHu.js} +1 -1
- package/dist/assets/{domain-Xaa2OTQZ.js → domain-CLaCd92M.js} +1 -1
- package/dist/assets/{domain-action-card-BzceZepB.js → domain-action-card-ClVrHE96.js} +2 -2
- package/dist/assets/domains-C5X5bi_z.js +1 -0
- package/dist/assets/edit-rounded-CnMn6J-D.js +1 -0
- package/dist/assets/{email-CaObtYNf.js → email-DddZUTON.js} +2 -2
- package/dist/assets/engine-CvmlyswD.js +1 -0
- package/dist/assets/es-BqFCfGn2.js +9 -0
- package/dist/assets/{exchange-passport-BA6t_lld.js → exchange-passport-CKEOdyU9.js} +1 -1
- package/dist/assets/{form-DNo4HCRt.js → form-poId1OU3.js} +1 -1
- package/dist/assets/{form-text-input-BjQKx89L.js → form-text-input-DwerOWgK.js} +1 -1
- package/dist/assets/fr-CksqMtzK.js +7 -0
- package/dist/assets/{fuel-Cr5W3cGy.js → fuel-Bly8lXId.js} +1 -1
- package/dist/assets/{gen-access-key-Bw62ox39.js → gen-access-key-5kekGzt_.js} +1 -1
- package/dist/assets/{gen-simple-access-key-QTWh5kxW.js → gen-simple-access-key-l4SGe3J5.js} +1 -1
- package/dist/assets/get-safe-url-D7ti-zln.js +1 -0
- package/dist/assets/hi-Bztwk-sg.js +5 -0
- package/dist/assets/{hi-DNSN9klG.js → hi-Cra5bbq9.js} +1 -1
- package/dist/assets/{home-iaPbLBtv.js → home-yA5fXQmP.js} +1 -1
- package/dist/assets/id-C5p-l7lp.js +7 -0
- package/dist/assets/{iframe-C8myLb4U.js → iframe-XKq6kg_r.js} +1 -1
- package/dist/assets/{index-CaQnmN3Y.js → index--Zp6K5Sp.js} +1 -1
- package/dist/assets/{index-C4nyPKIr.js → index-5haA_ZtH.js} +1 -1
- package/dist/assets/{index-9h1okNKA.js → index-9N4EluXF.js} +6 -6
- package/dist/assets/{index-D3g5TOJl.js → index-B0wPyjk9.js} +2 -2
- package/dist/assets/{index-SCaAOhtj.js → index-B1-cYl7K.js} +2 -2
- package/dist/assets/{index-DHvO7Oyu.js → index-BBwTMTLp.js} +1 -1
- package/dist/assets/{index-SACCniHf.js → index-BOWGgkTH.js} +4 -4
- package/dist/assets/{index-B7jV3her.js → index-BT901ij8.js} +1 -1
- package/dist/assets/index-BjqoIwBE.js +281 -0
- package/dist/assets/index-BotTPbWD.js +1 -0
- package/dist/assets/{index-C2HNVEZ0.js → index-Bt8QUMaz.js} +1 -1
- package/dist/assets/index-CGOBEhzW.js +1039 -0
- package/dist/assets/{index-BzU09Azd.js → index-CKhKxswY.js} +2 -2
- package/dist/assets/{index-CtJhxyJT.js → index-CQqn5TFD.js} +18 -18
- package/dist/assets/{index-DeG3Ee92.js → index-CSwcQdlI.js} +1 -1
- package/dist/assets/index-Ce9omzTp.js +1 -0
- package/dist/assets/{index-CzvNhDIJ.js → index-ChQX9ze3.js} +2 -2
- package/dist/assets/{index-BP_Fl0Mu.js → index-CiKhg0ut.js} +1 -1
- package/dist/assets/{index-BleAAm7x.js → index-Cu8TdzKM.js} +1 -1
- package/dist/assets/{index-YLno1Cst.js → index-CuC130U2.js} +3 -3
- package/dist/assets/{index-1azOxnKy.js → index-CvVZvUh7.js} +1 -1
- package/dist/assets/{index-CnWFrsC2.js → index-CzlJLWz5.js} +4 -4
- package/dist/assets/{index-B5vc0eG5.js → index-D1SIrheh.js} +1 -1
- package/dist/assets/{index-Dk6ZABgc.js → index-D95ZNJ3d.js} +1 -1
- package/dist/assets/{index-Dnd0o2ng.js → index-DA8b2Fwx.js} +3 -3
- package/dist/assets/{index-B8sa2W5r.js → index-DGd0GDc4.js} +6 -6
- package/dist/assets/{index-CHuKoofS.js → index-HU-v7OeI.js} +1 -1
- package/dist/assets/{index-Bxd7kK_i.js → index-_haoumSc.js} +1 -1
- package/dist/assets/{index-DURonUPJ.js → index-pm6H84lU.js} +1 -1
- package/dist/assets/index-tgy1TTjM.js +81 -0
- package/dist/assets/{index-seQ_ufVM.js → index-v9hCHxKp.js} +1 -1
- package/dist/assets/{invitation-DwMnPB2W.js → invitation-OInDimvS.js} +2 -2
- package/dist/assets/{invitations-mhxsPoWR.js → invitations-BFTtG6X1.js} +1 -1
- package/dist/assets/{invite-DpZe41tL.js → invite-sUgPlE4Z.js} +1 -1
- package/dist/assets/{isURL-CASPeQFe.js → isURL-CJrtALFi.js} +1 -1
- package/dist/assets/{issue-passport-ClIYXZHr.js → issue-passport-D779MB0S.js} +1 -1
- package/dist/assets/{item-B3LlwO_A.js → item-D0S77pRh.js} +1 -1
- package/dist/assets/ja-2cGMwCig.js +9 -0
- package/dist/assets/ko-DDVloIXx.js +9 -0
- package/dist/assets/{landing-page-Cv6belCa.js → landing-page-BoqVRFrg.js} +1 -1
- package/dist/assets/{layout-DkW-u1GX.js → layout-BumaOQ7l.js} +1 -1
- package/dist/assets/{list-CBP3Lj7-.js → list-Bcp4RDC0.js} +1 -1
- package/dist/assets/{list-Dqz9X41o.js → list-C0ACtiK5.js} +1 -1
- package/dist/assets/localization-DAkSbh2g.js +1 -0
- package/dist/assets/{log-Ch1_gOOt.js → log-CpIPOvLt.js} +1 -1
- package/dist/assets/logger-DUjWrC8_.js +1 -0
- package/dist/assets/{login-_zzURN5A.js → login-cMKzStm-.js} +1 -1
- package/dist/assets/{login-oauth-callback-BiIj9E0o.js → login-oauth-callback-I8wjhibA.js} +1 -1
- package/dist/assets/{logo-uploader-BmnoHisE.js → logo-uploader-CeXSNxdi.js} +1 -1
- package/dist/assets/{lost-passport-DYnJRD_t.js → lost-passport-VCPPPILz.js} +2 -2
- package/dist/assets/{cloneDeep-BbaR0xRl.js → omit-spWLSLbo.js} +1 -1
- package/dist/assets/{open-window-Btzsgc7g.js → open-window-DY3mWojp.js} +1 -1
- package/dist/assets/{over-due-invoice-payment-BFDFMUwK.js → over-due-invoice-payment-C9HTfbWA.js} +1 -1
- package/dist/assets/overview-Bv3cq2I0.js +116 -0
- package/dist/assets/passport-DMm48qRk.js +1 -0
- package/dist/assets/{passport-item-Dx140DTL.js → passport-item-DD8VG51j.js} +1 -1
- package/dist/assets/{permission-HtrJm1h2.js → permission-B3ddwA-4.js} +1 -1
- package/dist/assets/{preferences-Dri2a4fE.js → preferences-CmMbfbTw.js} +1 -1
- package/dist/assets/profile-embed-DAY5ZrDb.js +1 -0
- package/dist/assets/{pt-BPAfyek8.js → pt-BB0AKqMq.js} +1 -1
- package/dist/assets/pt-FIIPCfqU.js +5 -0
- package/dist/assets/{publish-resource-CruXcF2L.js → publish-resource-DJRigGuM.js} +1 -1
- package/dist/assets/{react-beautiful-dnd.esm-89LKdt03.js → react-beautiful-dnd.esm-Bn87vJFI.js} +1 -1
- package/dist/assets/ru-BjRgz8OF.js +5 -0
- package/dist/assets/{ru-CVlekA3F.js → ru-CnPeybtU.js} +1 -1
- package/dist/assets/{runtime-Ck_rDqm2.js → runtime-gljMK2qS.js} +1 -1
- package/dist/assets/{sanitize-DyRfEGVu.js → sanitize-yVk8VEIO.js} +1 -1
- package/dist/assets/sdk-Be-u0PfZ.js +1 -0
- package/dist/assets/security-b4k0fa20.js +22 -0
- package/dist/assets/{session-Cm8j8XeZ.js → session-vM0SwFQZ.js} +1 -1
- package/dist/assets/{setup-COruOAew.js → setup-BPnqbGIk.js} +1 -1
- package/dist/assets/simple-select-6nihrL7w.js +1 -0
- package/dist/assets/{spaces-BuZf3GoQ.js → spaces-ypzuCaPe.js} +1 -1
- package/dist/assets/{start-D_yHRXzR.js → start-CgUu2djm.js} +1 -1
- package/dist/assets/{starting-progress-DahUM5Xo.js → starting-progress-B15yvlvv.js} +1 -1
- package/dist/assets/{status-DVjLoqLm.js → status-Cy7fzuR3.js} +1 -1
- package/dist/assets/{step-actions-DkehnzsP.js → step-actions-D3sZvhKo.js} +1 -1
- package/dist/assets/{studio-D4hiQNwZ.js → studio-D9ZxOiyo.js} +1 -1
- package/dist/assets/{switch-CO2el_yA.js → switch-CjDalLJU.js} +1 -1
- package/dist/assets/{switch-control-Bw0oiZZh.js → switch-control-CioN_5qg.js} +1 -1
- package/dist/assets/{table-tips-C-6Sm2ed.js → table-tips-DEqFBQFt.js} +1 -1
- package/dist/assets/{team-DNuHMrzV.js → team-DHhtcW5C.js} +1 -1
- package/dist/assets/th-DKiwQ6t6.js +5 -0
- package/dist/assets/{traffic-B0WH67Yr.js → traffic-DDO0-htp.js} +1 -1
- package/dist/assets/{transfer-BpjPR3S_.js → transfer-CEk3StHa.js} +1 -1
- package/dist/assets/{unsubscribe-CzgQXfYP.js → unsubscribe-DZF4NKei.js} +1 -1
- package/dist/assets/{use-app-logo-CZWb8lrs.js → use-app-logo-DSdF3M62.js} +1 -1
- package/dist/assets/{use-window-close-DDL8fcOm.js → use-window-close-va-vKf7G.js} +1 -1
- package/dist/assets/{useAsync-VEqKX7rF.js → useAsync-DVl73fmG.js} +1 -1
- package/dist/assets/{useAsync-xXSiXzwr.js → useAsync-Dotoxibi.js} +1 -1
- package/dist/assets/{useAsyncRetry--1T7wYe2.js → useAsyncRetry-r8dEPb-x.js} +1 -1
- package/dist/assets/{useLocalStorage-BV1BIwfo.js → useLocalStorage-A7dcJ6ce.js} +1 -1
- package/dist/assets/{user-center-DndqALOV.js → user-center-C2hlh2we.js} +1 -1
- package/dist/assets/{user-follower-Bzb2ZR_9.js → user-follower-BmcrANUM.js} +1 -1
- package/dist/assets/{util-DIVJQVg1.js → util-C_d0oDd4.js} +1 -1
- package/dist/assets/{util-CVjlaHo_.js → util-D9UZY2ZN.js} +1 -1
- package/dist/assets/{vendor-arcblock-CPCSE54a.js → vendor-arcblock-Dr30TSIK.js} +1 -1
- package/dist/assets/{vendor-hooks-cYMUGE4V.js → vendor-hooks-qxhUUbW5.js} +1 -1
- package/dist/assets/vendor-utils-CxWN1dT3.js +213 -0
- package/dist/assets/{vendor-ux-DfSgTRg5.js → vendor-ux-7TwTLXf8.js} +19 -19
- package/dist/assets/vi-C4aNShnq.js +5 -0
- package/dist/assets/{wait-connect-Be1Dmt0P.js → wait-connect-B2sGoXaJ.js} +1 -1
- package/dist/assets/{wizard-components-D3PqSMGt.js → wizard-components-BRsabxoD.js} +2 -2
- package/dist/assets/{wizard-BhUdbQos.js → wizard-qaZ9pS3q.js} +1 -1
- package/dist/assets/wrap-locale-DGVkhpYh.js +1 -0
- package/dist/assets/zh-Cb0McG4r.js +10 -0
- package/dist/assets/{zh-B_cpka88.js → zh-D1XHANJI.js} +1 -1
- package/dist/assets/zh-tw-PfYv9beR.js +9 -0
- package/dist/index.html +1 -1
- package/package.json +49 -49
- package/dist/assets/add-resource-ENVSA34x.js +0 -1
- package/dist/assets/api-C_w0YD2j.js +0 -1
- package/dist/assets/ar-BBr9bsOg.js +0 -7
- package/dist/assets/branding-B-5oLD-k.js +0 -1
- package/dist/assets/connect-BX2QwOaU.js +0 -5
- package/dist/assets/dashboard-DbjH3qe4.js +0 -103
- package/dist/assets/de-CDBOH3k5.js +0 -7
- package/dist/assets/domains-D_GcYdME.js +0 -1
- package/dist/assets/engine-BzngvK61.js +0 -1
- package/dist/assets/es-BJ8CsIZi.js +0 -9
- package/dist/assets/fr-DSXQFpNy.js +0 -7
- package/dist/assets/get-safe-url-CqAaHb9L.js +0 -1
- package/dist/assets/hi-DLsQ4VdX.js +0 -5
- package/dist/assets/id-AzAQyOHL.js +0 -7
- package/dist/assets/index-BHa1_Bjz.js +0 -1039
- package/dist/assets/index-BNeXCm1B.js +0 -1
- package/dist/assets/index-Df4GSKx6.js +0 -1
- package/dist/assets/index-DoVbUHDU.js +0 -55
- package/dist/assets/index-pAjb_WaG.js +0 -281
- package/dist/assets/ja-C3ccbBe-.js +0 -9
- package/dist/assets/keyboard-arrow-down-rounded-8U0_i9QO.js +0 -1
- package/dist/assets/ko-9Vbo8tR2.js +0 -9
- package/dist/assets/localization-gLf4FT3Q.js +0 -1
- package/dist/assets/logger-CWnnO-wn.js +0 -1
- package/dist/assets/omit-BgmLPtMY.js +0 -1
- package/dist/assets/overview-Bf86Sw9l.js +0 -116
- package/dist/assets/passport-D6ZhqZ1F.js +0 -1
- package/dist/assets/profile-embed-BpG6-Rqz.js +0 -1
- package/dist/assets/pt-iqygmSLa.js +0 -5
- package/dist/assets/ru-BkfMvpq6.js +0 -5
- package/dist/assets/sdk-C3wBexZ2.js +0 -1
- package/dist/assets/security-Duf_ZEVi.js +0 -22
- package/dist/assets/simple-select-DbXWLzPn.js +0 -1
- package/dist/assets/th-D-pgFsDa.js +0 -5
- package/dist/assets/vendor-utils-drLlzTVq.js +0 -213
- package/dist/assets/vi-BuffIn3I.js +0 -5
- package/dist/assets/wrap-locale-DtcRIeKF.js +0 -1
- package/dist/assets/zh-CSl2KD_S.js +0 -10
- package/dist/assets/zh-tw-BiloxWNq.js +0 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
const e={auth:{noPermission:{title:"Нет разрешения",description:"Вы не являетесь администратором блоклета"}},login:{reLogin:"Переподключение",description:"Вы должны подключить свой кошелек DID, чтобы получить доступ к {name}",already:"Вы подключены как",connectWallet:"Подключите кошелек DID",closeWindow:"Закрыть окно",accessLimit:{title:"Доступ к странице ограничен",description:"Для доступа к этой странице требуются следующие паспорта, пожалуйста, подключитесь к кошельку, чтобы изменить или подать заявку на соответствующий проходной документ.",alreadyHavePassport:"У меня уже есть паспорт",connectWithPassport:"Подключиться с помощью этого паспорта",buyPassport:"Купить паспорт"},switchDid:{title:"Сменить аккаунт",scan:"Используйте следующие способы для смены учетной записи",confirm:"Подтвердите переключение в вашем кошельке DID",success:"Успешно переключено"},switchSpecifiedDid:{title:"Сменить аккаунт",scan:"Вам нужно переключиться на DID {did}, чтобы выполнить следующие действия.",confirm:"Подтвердите переключение в вашем кошельке DID",success:"Успешно переключено"},connect:{title:"Подключиться",scan:"Пожалуйста, используйте следующие методы для завершения подключения",confirm:"Подтвердите в своем аккаунте",success:"Вы успешно подключены"},needManualClose:"Вход выполнен успешно. Если это окно не закрывается автоматически, пожалуйста, закройте его.",connectWithPassport:"Подключитесь к этому паспорту",invalidRedirectUrl:"Неверный URL-адрес перенаправления",issueKyc:{pageDescription:"Завершите проверку, чтобы защитить свою учетную запись и получить многоразовый NFT, который стоит доверять другим сайтам (проверьте один раз и представьте везде).",verifyButton:"Проверить",sendCodeButton:"Получить код подтверждения",codeSentMessage:"Мы только что отправили код подтверждения на {email}, код будет действителен в течение 30 минут, пожалуйста, проверьте вашу папку входящих или спам.",codeSentSuccess:"Код подтверждения успешно отправлен",claim:"Сертификат подтверждения электронной почты",scan:"Подключите свой кошелек DID, чтобы получить сертификат",confirm:"Подтвердите в своем аккаунте",success:"Поздравляем! Вы успешно подтвердили свой адрес электронной почты и запросили сертификат в своем кошельке DID.",backToHome:"Вернуться на главную",emailPlaceholder:"Ваш адрес электронной почты",verifyTitle:"Подтвердите свой адрес электронной почты",issueTitle:"Претензия Проверка по электронной почте NFT",verifyAction:"Проверка",issueAction:"претензия",issueTarget:"Вы {action} для следующего DID, нажмите на аватар, чтобы добавить еще один DID"},updateKyc:{button:"Представить сертификат",title:"Представьте подтвержденный электронный сертификат",scan:"Подключите свой кошелек DID, чтобы предъявить сертификат",confirm:"Подтвердите в вашем аккаунте",success:"Поздравляю! Ваш NFT проверен и принят."},invalidOpenerUrl:"Неверный URL-адрес открытия"},studio:{home:"Студия",preferences:"Создатель предпочтений",localization:"Локализация",branding:"Брендовые изображения",ratio:"Соотношение",size:"Размер",count:"Считать",tip:"Совет",change:"Нажмите на логотип, чтобы изменить.",order:"Заказ",orderTip:"Перетащите, чтобы изменить",orderTipLong:"Перетащите для изменения. Если вы удалите какие-либо скриншоты на диске, пожалуйста, обновите страницу.",type:"Тип",videoTipLong:"Нажмите на обложку, чтобы изменить ссылку на видео.",video:"Видео",videoTooltip:"Перетащите, чтобы изменить порядок.",videoType:"Поддерживаемые веб-сайты",videoDialogTitle:"Добавить видео",videoDialogEditTitle:"Редактировать/Удалить видео",videoInputLabel:"Введите ссылку на видео YouTube или Vimeo",videoDialogNoSrc:"Пожалуйста, введите действительную ссылку на видео",duplicateVideo:"Это видео добавлено",confirm:"Подтвердить",cancel:"Отмена",preview:"Предварительный просмотр",delete:"Удалить",title:"Предоставить изображения для {title}",description:"Для получения дополнительной информации, пожалуйста, обратитесь к",documentation:"Документация"},blocklet:{startApplication:"Запустить приложение",startDescription:"Готов начать {name}",start:"Начать",starting:"Начинаю...",open:"Открыть",suspended:"Приложение приостановлено",manageSubscription:"Управление подпиской",suspendedCausedByExpired:"Это приложение было закрыто из-за отмены подписки {canceledAt}. Вы можете возобновить подписку до {deadline}.",suspendedCausedByPastDue:"Это приложение приостановлено из-за просроченной оплаты подписки, выполните продление до {deadline} для возобновления, после истечения срока оплата и возобновление станут невозможны.",willBeSuspendedSoon:"Это приложение прекратит работу {deadline} из-за предстоящей отмены подписки, восстановите подписку своевременно, если хотите продолжить использование.",suspendedCausedByTerminated:"Приложение было завершено из-за отмены подписки, которая была отменена в {canceledAt}, и данные будут храниться до {deadline}; перед тем, как данные будут удалены, вы можете сделать резервную копию данных в DID Spaces.",terminated:"Приложение завершено",gotoVisitError:"Не удается получить доступ к URL blocklet, пожалуйста, попробуйте снова позже.",payNow:"Платить сейчас",startLoadingText:"Запуск сервиса может занять несколько минут, пожалуйста, подождите...",startingProgress:{starting:"Запуск {name}...",success:"{name} успешно запущен",failed:"{name} не удалось запустить"}},setup:{steps:{connect:"Подключиться",didSpace:"Пространство DID",config:"Конфигурация",domain:"Домен",access:"Доступ",fuel:"Топливо",complete:"Полный",introduction:"Введение",selectNodeDesc:"Выберите сервер Blocklet",launchAppDesc:"Установите блоклет на сервер",setupAppDesc:"Настройка блоклета",launched:"Завершить",aigne:"AIGNE Hub",branding:"Брендинг",accessTitle:"Контроль доступа"},connect:{title:"Подключиться к Blocklet",scan:"Используйте следующие методы, чтобы предоставить профиль пользователя и права владельца Blocklet, затем вы можете настроить и запустить Blocklet.",confirm:"Подтвердите в вашем аккаунте",success:"Вы успешно подключены"},domain:{addTitle:"Привязать существующий домен (необязательно)",title:"Выберите домен",subTitle:"Выберите или купите персональный домен для вашего Blocklet",label:"Пожалуйста, укажите действительное имя домена",tipStart:"Пожалуйста, убедитесь",tipEnd:"Имеет указатель на текущий сервер",addingCert:"Генерация сертификата...",recordType:"Тип записи",recordValue:"Значение записи",genCertSuccess:"{domain} сертификат успешно выдан",genCertFailed:"Не удалось выдать сертификат для {domain}: {message}",genCertFailedForNFTDomain:"Домен NFT успешно добавлен, но не удалось сгенерировать HTTPS-сертификат. Пожалуйста, попробуйте позже.",buyDIDDomainTitle:"Купить DID домен (Необязательно)",buyDIDDomainTips:"После покупки DID Domain, домен будет автоматически привязан к Blocklet.",buyOrConnect:"Вы можете приобрести или настроить существующий домен",skipDescription:"Вы можете временно использовать домены по умолчанию. Эти домены не подходят для использования в продакшене и не должны предоставляться клиентам."},didSpace:{title:"Настройте пространства DID",subTitle:"Подключитесь к DID Spaces для безопасного хранения ваших данных Blocklet",tips:"Советы",description:"Настройте адрес экземпляра пространства DID и сохраните данные приложения в пространстве DID после успешного подключения",label:"Пожалуйста, выберите сервис DID Spaces",connected:"Вы успешно подключились к пространствам DID",connect:"Подключиться сейчас",reconnect:"Переподключить",addressCannotEmpty:"Адрес не может быть пустым",addressNotValid:"{url} не является корректным адресом.",authorize:{title:"Подключите {appName} к пространству Децентрализованных идентификаторов (DID)",scan:"Используйте следующие методы, чтобы разрешить приложению {appName} подключиться к DID Spaces",success:"Успешно подключено"}},config:{title:"Конфигурация",subTitle:"Другие элементы конфигурации (вам также потребуется настроить следующие элементы)"},complete:{title:"Ваше приложение готово",failedTitle:"Не удалось запустить приложение",backToServer:"Вернуться на сервер Blocklet",notRunning:"Приложению не удалось запуститься с первой попытки, попробуйте снова",readyToStart:"Ваше приложение скоро будет готово",opening:"Открытие..."},fuel:{title:"Требуется топливо для запуска",tipStart:"слот",tipEnd:"Для правильной работы этого приложения требуется баланс, средства хранятся в кошельке приложения и могут использоваться в качестве комиссии за транзакции. Вы можете вывести свой баланс в любое время, когда приложение больше не запущено.",addressTitle:"Учетная запись приложения",addressTip:"Заполните приложение кошельком DID",need:"Нужда",current:"Текущий",fuelApp:"Заполнить приложение топливом",subTitle:"Обеспечьте приложение топливом для обеспечения нормальной работы."},title:"Настройка",next:"Следующий",previous:"Предыдущий",continue:"Продолжить",skip:"Пропустить",startNow:"Начать сейчас",confirm:"Подтвердить",cancel:"Отменить",aigne:{config:"Конфигурация",observability:"Наблюдаемость",playground:"Площадка",title:"Конфиг AIGNE Hub",subTitle:"Подключите AIGNE Hub, чтобы включить функции ИИ для вашего Blocklet."},connectAccount:{title:"Подключить аккаунт",subTitle:"Подключите несколько способов входа для легкого и безопасного доступа к вашему Blocklet",wallet:"DID Wallet",walletDesc:"Более безопасно, работает на разных устройствах, настоятельно рекомендуется",passkey:"Ключ доступа",passkeyDesc:"Отпечаток пальца или распознавание лица, безопасный вход в систему одним касанием",email:"Учетная запись электронной почты",emailDesc:"Системный метод по умолчанию, рекомендуется подключить другие учетные записи для повышения безопасности",recommended:"Рекомендуемое",connect:"Подключить",connected:"Подключено",statusSuccess:"Отлично! Вы настроили {count} способов входа и можете выбрать наиболее удобный способ доступа к Blocklet.",statusSuggestion:"Мы рекомендуем подключить несколько способов входа для удобства и безопасности — вы всегда сможете легко получить доступ к своему blocklet.",securityTip:"Важно: В настоящее время у вас есть только вход по электронной почте. В случае потери вы не сможете управлять приложением. Настоятельно рекомендуется подключить кошелек или биометрию в качестве резервной копии.",skipBinding:"Пропустить сейчас"},wizardTitle:"Мастер настройки",wizardSubTitle:"Поздравляем! Blocklet готов, давайте быстро настроим пользовательский контент",wizardTooltip:"Нажмите здесь, чтобы снова открыть мастер",stepOf:"Шаг {current} из {total}",finished:"Завершить",branding:{title:"Брендинг и логотип",subTitle:"Дайте своему Blocklet имя, описание и логотип, чтобы он выделялся"},wizardLoading:"Запуск мастера установки, пожалуйста, подождите...",accessControl:{title:"Контроль доступа",subTitle:"Установите контроль доступа, чтобы управлять тем, кто может использовать ваш Blocklet"},later:"Настроить позже"},user:{walletNotification:"Уведомление кошелька DID",emailNotification:"Уведомление по электронной почте",smsNotification:"SMS уведомление",addWebhook:"Добавить новый вебхук"},pageTitle:{login:"Вход",dashboard:"Панель инструментов Blocklet",userCenter:"Пользовательский центр",invite:"Пригласить",issuePassport:"Выдать паспорт",lostPassport:"Потерянный паспорт"},errorPage:{404:{title:"Упс! Страница не найдена",description:"Кажется, страница, которую вы ищете, не существует.",backHome:'Если вы посетитель, вы можете <a href="{url}">вернуться на главную страницу</a>',goToDashboard:"Если вы владелец сайта, вы можете <a href={url}>войти в панель управления</a>."}},common:{branding:"Брендинг",theming:"Тема",navigation:"Навигация",sitemap:"Карта сайта",advanced:"Расширенный",performance:"Производительность",docs:"Документы",comingSoon:"Скоро",accessKeys:"API Ключи",required:"Обязательно"},connectCli:{title:"Подключиться для генерации ключа доступа",scan:"Отсканируйте следующий QR-код, чтобы сгенерировать ключ доступа",success:"Успешно авторизовано",successDesc:"Ключ доступа успешно создан. Вы можете безопасно закрыть эту страницу.",invalidSession:"Неверный сеанс",invalidSessionDesc:"Сессия не существует или истекла. Используйте команду 'blocklet deploy --endpoint {endpoint}', чтобы сгенерировать ключ доступа заново.",connectionError:"Не удалось сгенерировать ключ доступа",home:"Назад на главную",tips:{title:"Сгенерировать ключ доступа",item1:"Поддерживает локальное развертывание Blocklets в текущем приложении",item2:"Будет отображаться в списке ключей доступа приложения",item3:"Вы можете отозвать ключ доступа в списке в любое время"},upload:"Теперь вы можете загружать локальные Blocklets с использованием сгенерированного ключа доступа.",closeDelay:"Эта страница будет закрыта через {seconds} секунд."},notFoundOauthClient:"Приложение OAuth не найдено, пожалуйста, проверьте конфигурацию OAuth и попробуйте ещё раз.",userCenter:{addWebhook:"Добавить внешнее уведомление",cancel:"Отмена",common:{cancel:"Отмена",confirm:"Подтвердить",invalid:"Недействительный",nft:"NFTs",noNFT:"Нет NFT",required:"Требуется"},commonSetting:{locale:"Предпочитаемый язык",title:"Общие настройки"},confirm:"Подтвердить",createdAt:"Первое активное время",currentPassport:"Паспорт",currentSession:"Текущая сессия",dangerZone:{deleteAccount:"Удалить аккаунт",title:"Опасная зона",deleteAccountDescription:"Удаление аккаунта сделает невозможным вход с этим аккаунтом, ваши данные будут полностью удалены с платформы и не подлежат восстановлению.",delete:"Удалить"},destroyMyself:{error:"Удаление аккаунта не удалось"},deviceType:"Тип устройства",emailNotification:"Уведомление по электронной почте",expired:"Истекший",lastLoginIp:"Последний IP входа",logout:"Выйти",logoutThisSession:"Выйти из этой сессии",logoutThisSessionConfirm:"Вы уверены, что хотите выйти из этой сессии?",noPassport:"Паспорт еще нет",notificationManagement:"Уведомления",offline:"Не в сети",online:"Активный",passport:"Паспорта",platform:"Платформа",privacyManagement:"Конфиденциальность",pushNotification:"Push-уведомление (powered by PushKit)",remove:"Удалить",saveSuccess:"Сохранение успешно",sessionManagement:"Управление сессиями",storage:{spaces:{tips:"Советы",label:"Введите DID Spaces Gateway",connectedWithName:"Вы успешно подключены к {name}",gateway:{delete:{failed:"Не удалось удалить gateway"}},provideNFT:{title:"Пожалуйста, покажите DID Spaces NFT для {appName}",scan:"Используйте свой DID Wallet, чтобы разрешить приложению {appName} показывать DID Space NFT",success:"Успешно подключено"},connect:{useWallet:"Подключиться к DID Wallet",useWalletReconnect:"Повторно подключиться к DID Wallet",providerForStorage:"Пожалуйста, подключите ваши DID Spaces"},connected:{title:"Подключенные DID Spaces",tag:"Подключено",switch:"Сменить DID Spaces"}}},thirdPartyLogin:{connect:"Подключить",disconnect:"Отключить",mainProviderCantRemove:"Основной аккаунт нельзя удалить",title:"Подключённые аккаунты",confirmUnbind:"Вы уверены, что хотите отвязать {name}?",confirmUnbindDescription:"Вы не сможете войти в этот аккаунт с помощью {name} после разъединения. Если вы все еще вошли с {name} после разъединения, новый аккаунт будет создан автоматически!",disconnectPasskey:"Вы уверены, что хотите удалить {name}?",disconnectPasskeyDescription:"Вы не сможете войти с этим passkey после удаления. Если вы останетесь в системе с этим passkey после удаления, новый аккаунт будет создан автоматически!",walletAccountCantRemove:"Аккаунт Wallet нельзя удалить",mainAccount:"Основной аккаунт",walletAccount:"Аккаунт Wallet",dontSupportRemoveinArcSphere:"Удаление passkey в ArcSphere не поддерживается, пожалуйста, удалите в настольном браузере",confirmBindWallet:"Подключите ваш DID-кошелек?",confirmBindWalletDescription:"После подключения вы сможете войти, используя ваш DID-кошелек. Это соединение постоянно и не может быть изменено, поэтому убедитесь, что вы подключаете правильную учетную запись."},unknown:"Неизвестно",updatedAt:"Время последней активности",user:"Пользователь",walletNotification:"Уведомление DID Wallet",walletOS:"Wallet OS",webhook:{slack:"Slack",url:"Пользовательский URL"},webhookTested:"Тестовое сообщение отправлено",toPublic:'Публичная страница "{name}"',logoutAll:"Выйти из всех сессий {type}",logoutAllTips:"Текущая сессия не будет завершена",logoutAllSession:"Выйти из всех сессий {type}",logoutAllSessionConfirm:"Вы уверены, что хотите выйти из всех сеансов {type}?",actions:"Действия"},aigne:{notAuthorized:"Не авторизован",connectTo:"Подключиться к {appName}",accessTips:{tips1:"{appName} сможет получить доступ к {accessAppName} и действовать от вашего имени",tips2:"Продолжайте только если вы доверяете {appName}",tips3:'Вы можете отозвать доступ в любое время в <a href="{url}" target="_blank">Настройках {accessAppName}</a>',switchPassport:"Passport {required_roles} будет использоваться для завершения авторизации",switchPassportRequired:"Требуется паспорт {required_roles} для завершения авторизации, пожалуйста, измените разрешение."},cli:"AIGNE CLI"},invalidAppUrl:{desc:"Настроенный URL-адрес приложения отсутствует в списке доменов. Проверьте конфигурацию.",viewConfig:"Просмотр конфигурации",viewDomains:"Просмотреть список доменов"}};export{e as default};
|
|
1
|
+
const e={auth:{noPermission:{title:"Нет разрешения",description:"Вы не являетесь администратором блоклета"}},login:{reLogin:"Переподключение",description:"Вы должны подключить свой кошелек DID, чтобы получить доступ к {name}",already:"Вы подключены как",connectWallet:"Подключите кошелек DID",closeWindow:"Закрыть окно",accessLimit:{title:"Доступ к странице ограничен",description:"Для доступа к этой странице требуются следующие паспорта, пожалуйста, подключитесь к кошельку, чтобы изменить или подать заявку на соответствующий проходной документ.",alreadyHavePassport:"У меня уже есть паспорт",connectWithPassport:"Подключиться с помощью этого паспорта",buyPassport:"Купить паспорт"},switchDid:{title:"Сменить аккаунт",scan:"Используйте следующие способы для смены учетной записи",confirm:"Подтвердите переключение в вашем кошельке DID",success:"Успешно переключено"},switchSpecifiedDid:{title:"Сменить аккаунт",scan:"Вам нужно переключиться на DID {did}, чтобы выполнить следующие действия.",confirm:"Подтвердите переключение в вашем кошельке DID",success:"Успешно переключено"},connect:{title:"Подключиться",scan:"Пожалуйста, используйте следующие методы для завершения подключения",confirm:"Подтвердите в своем аккаунте",success:"Вы успешно подключены"},needManualClose:"Вход выполнен успешно. Если это окно не закрывается автоматически, пожалуйста, закройте его.",connectWithPassport:"Подключитесь к этому паспорту",invalidRedirectUrl:"Неверный URL-адрес перенаправления",issueKyc:{pageDescription:"Завершите проверку, чтобы защитить свою учетную запись и получить многоразовый NFT, который стоит доверять другим сайтам (проверьте один раз и представьте везде).",verifyButton:"Проверить",sendCodeButton:"Получить код подтверждения",codeSentMessage:"Мы только что отправили код подтверждения на {email}, код будет действителен в течение 30 минут, пожалуйста, проверьте вашу папку входящих или спам.",codeSentSuccess:"Код подтверждения успешно отправлен",claim:"Сертификат подтверждения электронной почты",scan:"Подключите свой кошелек DID, чтобы получить сертификат",confirm:"Подтвердите в своем аккаунте",success:"Поздравляем! Вы успешно подтвердили свой адрес электронной почты и запросили сертификат в своем кошельке DID.",backToHome:"Вернуться на главную",emailPlaceholder:"Ваш адрес электронной почты",verifyTitle:"Подтвердите свой адрес электронной почты",issueTitle:"Претензия Проверка по электронной почте NFT",verifyAction:"Проверка",issueAction:"претензия",issueTarget:"Вы {action} для следующего DID, нажмите на аватар, чтобы добавить еще один DID"},updateKyc:{button:"Представить сертификат",title:"Представьте подтвержденный электронный сертификат",scan:"Подключите свой кошелек DID, чтобы предъявить сертификат",confirm:"Подтвердите в вашем аккаунте",success:"Поздравляю! Ваш NFT проверен и принят."},invalidOpenerUrl:"Неверный URL-адрес открытия"},studio:{home:"Студия",preferences:"Создатель предпочтений",localization:"Локализация",branding:"Брендовые изображения",ratio:"Соотношение",size:"Размер",count:"Считать",tip:"Совет",change:"Нажмите на логотип, чтобы изменить.",order:"Заказ",orderTip:"Перетащите, чтобы изменить",orderTipLong:"Перетащите для изменения. Если вы удалите какие-либо скриншоты на диске, пожалуйста, обновите страницу.",type:"Тип",videoTipLong:"Нажмите на обложку, чтобы изменить ссылку на видео.",video:"Видео",videoTooltip:"Перетащите, чтобы изменить порядок.",videoType:"Поддерживаемые веб-сайты",videoDialogTitle:"Добавить видео",videoDialogEditTitle:"Редактировать/Удалить видео",videoInputLabel:"Введите ссылку на видео YouTube или Vimeo",videoDialogNoSrc:"Пожалуйста, введите действительную ссылку на видео",duplicateVideo:"Это видео добавлено",confirm:"Подтвердить",cancel:"Отмена",preview:"Предварительный просмотр",delete:"Удалить",title:"Предоставить изображения для {title}",description:"Для получения дополнительной информации, пожалуйста, обратитесь к",documentation:"Документация"},blocklet:{startApplication:"Запустить приложение",startDescription:"Готов начать {name}",start:"Начать",starting:"Начинаю...",open:"Открыть",suspended:"Приложение приостановлено",manageSubscription:"Управление подпиской",suspendedCausedByExpired:"Это приложение было закрыто из-за отмены подписки {canceledAt}. Вы можете возобновить подписку до {deadline}.",suspendedCausedByPastDue:"Это приложение приостановлено из-за просроченной оплаты подписки, выполните продление до {deadline} для возобновления, после истечения срока оплата и возобновление станут невозможны.",willBeSuspendedSoon:"Это приложение прекратит работу {deadline} из-за предстоящей отмены подписки, восстановите подписку своевременно, если хотите продолжить использование.",suspendedCausedByTerminated:"Приложение было завершено из-за отмены подписки, которая была отменена в {canceledAt}, и данные будут храниться до {deadline}; перед тем, как данные будут удалены, вы можете сделать резервную копию данных в DID Spaces.",terminated:"Приложение завершено",gotoVisitError:"Не удается получить доступ к URL blocklet, пожалуйста, попробуйте снова позже.",payNow:"Платить сейчас",startLoadingText:"Запуск сервиса может занять несколько минут, пожалуйста, подождите...",startingProgress:{starting:"Запуск {name}...",success:"{name} успешно запущен",failed:"{name} не удалось запустить"}},setup:{steps:{connect:"Подключиться",didSpace:"Пространство DID",config:"Конфигурация",domain:"Домен",access:"Доступ",fuel:"Топливо",complete:"Полный",introduction:"Введение",selectNodeDesc:"Выберите сервер Blocklet",launchAppDesc:"Установите блоклет на сервер",setupAppDesc:"Настройка блоклета",launched:"Завершить",aigne:"AIGNE Hub",branding:"Брендинг",accessTitle:"Контроль доступа"},connect:{title:"Подключиться к Blocklet",scan:"Используйте следующие методы, чтобы предоставить профиль пользователя и права владельца Blocklet, затем вы можете настроить и запустить Blocklet.",confirm:"Подтвердите в вашем аккаунте",success:"Вы успешно подключены"},domain:{addTitle:"Привязать существующий домен (необязательно)",title:"Выберите домен",subTitle:"Выберите или купите персональный домен для вашего Blocklet",label:"Пожалуйста, укажите действительное имя домена",tipStart:"Пожалуйста, убедитесь",tipEnd:"Имеет указатель на текущий сервер",addingCert:"Генерация сертификата...",recordType:"Тип записи",recordValue:"Значение записи",genCertSuccess:"{domain} сертификат успешно выдан",genCertFailed:"Не удалось выдать сертификат для {domain}: {message}",genCertFailedForNFTDomain:"Домен NFT успешно добавлен, но не удалось сгенерировать HTTPS-сертификат. Пожалуйста, попробуйте позже.",buyDIDDomainTitle:"Купить DID домен (Необязательно)",buyDIDDomainTips:"После покупки DID Domain, домен будет автоматически привязан к Blocklet.",buyOrConnect:"Вы можете приобрести или настроить существующий домен",skipDescription:"Вы можете временно использовать домены по умолчанию. Эти домены не подходят для использования в продакшене и не должны предоставляться клиентам."},didSpace:{title:"Настройте пространства DID",subTitle:"Подключитесь к DID Spaces для безопасного хранения ваших данных Blocklet",tips:"Советы",description:"Настройте адрес экземпляра пространства DID и сохраните данные приложения в пространстве DID после успешного подключения",label:"Пожалуйста, выберите сервис DID Spaces",connected:"Вы успешно подключились к пространствам DID",connect:"Подключиться сейчас",reconnect:"Переподключить",addressCannotEmpty:"Адрес не может быть пустым",addressNotValid:"{url} не является корректным адресом.",authorize:{title:"Подключите {appName} к пространству Децентрализованных идентификаторов (DID)",scan:"Используйте следующие методы, чтобы разрешить приложению {appName} подключиться к DID Spaces",success:"Успешно подключено"}},config:{title:"Конфигурация",subTitle:"Другие элементы конфигурации (вам также потребуется настроить следующие элементы)"},complete:{title:"Ваше приложение готово",failedTitle:"Не удалось запустить приложение",backToServer:"Вернуться на сервер Blocklet",notRunning:"Приложению не удалось запуститься с первой попытки, попробуйте снова",readyToStart:"Ваше приложение скоро будет готово",opening:"Открытие..."},fuel:{title:"Требуется топливо для запуска",tipStart:"слот",tipEnd:"Для правильной работы этого приложения требуется баланс, средства хранятся в кошельке приложения и могут использоваться в качестве комиссии за транзакции. Вы можете вывести свой баланс в любое время, когда приложение больше не запущено.",addressTitle:"Учетная запись приложения",addressTip:"Заполните приложение кошельком DID",need:"Нужда",current:"Текущий",fuelApp:"Заполнить приложение топливом",subTitle:"Обеспечьте приложение топливом для обеспечения нормальной работы."},title:"Настройка",next:"Следующий",previous:"Предыдущий",continue:"Продолжить",skip:"Пропустить",startNow:"Начать сейчас",confirm:"Подтвердить",cancel:"Отменить",aigne:{config:"Конфигурация",observability:"Наблюдаемость",playground:"Площадка",title:"Конфиг AIGNE Hub",subTitle:"Подключите AIGNE Hub, чтобы включить функции ИИ для вашего Blocklet."},connectAccount:{title:"Подключить аккаунт",subTitle:"Подключите несколько способов входа для легкого и безопасного доступа к вашему Blocklet",wallet:"DID Wallet",walletDesc:"Более безопасно, работает на разных устройствах, настоятельно рекомендуется",passkey:"Ключ доступа",passkeyDesc:"Отпечаток пальца или распознавание лица, безопасный вход в систему одним касанием",email:"Учетная запись электронной почты",emailDesc:"Системный метод по умолчанию, рекомендуется подключить другие учетные записи для повышения безопасности",recommended:"Рекомендуемое",connect:"Подключить",connected:"Подключено",statusSuccess:"Отлично! Вы настроили {count} способов входа и можете выбрать наиболее удобный способ доступа к Blocklet.",statusSuggestion:"Мы рекомендуем подключить несколько способов входа для удобства и безопасности — вы всегда сможете легко получить доступ к своему blocklet.",securityTip:"Важно: В настоящее время у вас есть только вход по электронной почте. В случае потери вы не сможете управлять приложением. Настоятельно рекомендуется подключить кошелек или биометрию в качестве резервной копии.",skipBinding:"Пропустить сейчас"},wizardTitle:"Мастер настройки",wizardSubTitle:"Поздравляем! Blocklet готов, давайте быстро настроим пользовательский контент",wizardTooltip:"Нажмите здесь, чтобы снова открыть мастер",stepOf:"Шаг {current} из {total}",finished:"Завершить",branding:{title:"Брендинг и логотип",subTitle:"Дайте своему Blocklet имя, описание и логотип, чтобы он выделялся"},wizardLoading:"Запуск мастера установки, пожалуйста, подождите...",accessControl:{title:"Контроль доступа",subTitle:"Установите контроль доступа, чтобы управлять тем, кто может использовать ваш Blocklet"},later:"Настроить позже"},user:{walletNotification:"Уведомление кошелька DID",emailNotification:"Уведомление по электронной почте",smsNotification:"SMS уведомление",addWebhook:"Добавить новый вебхук"},pageTitle:{login:"Вход",dashboard:"Панель инструментов Blocklet",userCenter:"Пользовательский центр",invite:"Пригласить",issuePassport:"Выдать паспорт",lostPassport:"Потерянный паспорт"},errorPage:{404:{title:"Упс! Страница не найдена",description:"Кажется, страница, которую вы ищете, не существует.",backHome:'Если вы посетитель, вы можете <a href="{url}">вернуться на главную страницу</a>',goToDashboard:"Если вы владелец сайта, вы можете <a href={url}>войти в панель управления</a>."}},common:{branding:"Брендинг",theming:"Тема",navigation:"Навигация",sitemap:"Карта сайта",advanced:"Расширенный",performance:"Производительность",docs:"Документы",comingSoon:"Скоро",accessKeys:"API-ключи",required:"Обязательно"},connectCli:{title:"Подключиться для генерации ключа доступа",scan:"Отсканируйте следующий QR-код, чтобы сгенерировать ключ доступа",success:"Успешно авторизовано",successDesc:"Ключ доступа успешно создан. Вы можете безопасно закрыть эту страницу.",invalidSession:"Неверный сеанс",invalidSessionDesc:"Сессия не существует или истекла. Используйте команду 'blocklet deploy --endpoint {endpoint}', чтобы сгенерировать ключ доступа заново.",connectionError:"Не удалось сгенерировать ключ доступа",home:"Назад на главную",tips:{title:"Сгенерировать ключ доступа",item1:"Поддерживает локальное развертывание Blocklets в текущем приложении",item2:"Будет отображаться в списке ключей доступа приложения",item3:"Вы можете отозвать ключ доступа в списке в любое время"},upload:"Теперь вы можете загружать локальные Blocklets с использованием сгенерированного ключа доступа.",closeDelay:"Эта страница будет закрыта через {seconds} секунд."},notFoundOauthClient:"Приложение OAuth не найдено, пожалуйста, проверьте конфигурацию OAuth и попробуйте ещё раз.",userCenter:{addWebhook:"Добавить внешнее уведомление",cancel:"Отмена",common:{cancel:"Отмена",confirm:"Подтвердить",invalid:"Недействительный",nft:"NFTs",noNFT:"Нет NFT",required:"Требуется"},commonSetting:{locale:"Предпочитаемый язык",title:"Общие настройки"},confirm:"Подтвердить",createdAt:"Первое активное время",currentPassport:"Паспорт",currentSession:"Текущая сессия",dangerZone:{deleteAccount:"Удалить аккаунт",title:"Опасная зона",deleteAccountDescription:"Удаление аккаунта сделает невозможным вход с этим аккаунтом, ваши данные будут полностью удалены с платформы и не подлежат восстановлению.",delete:"Удалить"},destroyMyself:{error:"Удаление аккаунта не удалось"},deviceType:"Тип устройства",emailNotification:"Уведомление по электронной почте",expired:"Истекший",lastLoginIp:"Последний IP входа",logout:"Выйти",logoutThisSession:"Выйти из этой сессии",logoutThisSessionConfirm:"Вы уверены, что хотите выйти из этой сессии?",noPassport:"Паспорт еще нет",notificationManagement:"Уведомления",offline:"Не в сети",online:"Активный",passport:"Паспорта",platform:"Платформа",privacyManagement:"Конфиденциальность",pushNotification:"Push-уведомление (powered by PushKit)",remove:"Удалить",saveSuccess:"Сохранение успешно",sessionManagement:"Управление сессиями",storage:{spaces:{tips:"Советы",label:"Введите DID Spaces Gateway",connectedWithName:"Вы успешно подключены к {name}",gateway:{delete:{failed:"Не удалось удалить gateway"}},provideNFT:{title:"Пожалуйста, покажите DID Spaces NFT для {appName}",scan:"Используйте свой DID Wallet, чтобы разрешить приложению {appName} показывать DID Space NFT",success:"Успешно подключено"},connect:{useWallet:"Подключиться к DID Wallet",useWalletReconnect:"Повторно подключиться к DID Wallet",providerForStorage:"Пожалуйста, подключите ваши DID Spaces"},connected:{title:"Подключенные DID Spaces",tag:"Подключено",switch:"Сменить DID Spaces"}}},thirdPartyLogin:{connect:"Подключить",disconnect:"Отключить",mainProviderCantRemove:"Основной аккаунт нельзя удалить",title:"Подключённые аккаунты",confirmUnbind:"Вы уверены, что хотите отвязать {name}?",confirmUnbindDescription:"Вы не сможете войти в этот аккаунт с помощью {name} после разъединения. Если вы все еще вошли с {name} после разъединения, новый аккаунт будет создан автоматически!",disconnectPasskey:"Вы уверены, что хотите удалить {name}?",disconnectPasskeyDescription:"Вы не сможете войти с этим passkey после удаления. Если вы останетесь в системе с этим passkey после удаления, новый аккаунт будет создан автоматически!",walletAccountCantRemove:"Аккаунт Wallet нельзя удалить",mainAccount:"Основной аккаунт",walletAccount:"Аккаунт Wallet",dontSupportRemoveinArcSphere:"Удаление passkey в ArcSphere не поддерживается, пожалуйста, удалите в настольном браузере",confirmBindWallet:"Подключите ваш DID-кошелек?",confirmBindWalletDescription:"После подключения вы сможете войти, используя ваш DID-кошелек. Это соединение постоянно и не может быть изменено, поэтому убедитесь, что вы подключаете правильную учетную запись."},unknown:"Неизвестно",updatedAt:"Время последней активности",user:"Пользователь",walletNotification:"Уведомление DID Wallet",walletOS:"Wallet OS",webhook:{slack:"Slack",url:"Пользовательский URL"},webhookTested:"Тестовое сообщение отправлено",toPublic:'Публичная страница "{name}"',logoutAll:"Выйти из всех сессий {type}",logoutAllTips:"Текущая сессия не будет завершена",logoutAllSession:"Выйти из всех сессий {type}",logoutAllSessionConfirm:"Вы уверены, что хотите выйти из всех сеансов {type}?",actions:"Действия"},aigne:{notAuthorized:"Не авторизован",connectTo:"Подключиться к {appName}",accessTips:{tips1:"{appName} сможет получить доступ к {accessAppName} и действовать от вашего имени",tips2:"Продолжайте только если вы доверяете {appName}",tips3:'Вы можете отозвать доступ в любое время в <a href="{url}" target="_blank">Настройках {accessAppName}</a>',switchPassport:"Passport {required_roles} будет использоваться для завершения авторизации",switchPassportRequired:"Требуется паспорт {required_roles} для завершения авторизации, пожалуйста, измените разрешение."},cli:"AIGNE CLI"},invalidAppUrl:{desc:"Настроенный URL-адрес приложения отсутствует в списке доменов. Проверьте конфигурацию.",viewConfig:"Просмотр конфигурации",viewDomains:"Просмотреть список доменов"}};export{e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as v}from"./vendor-react-CTtPmzVP.js";import{D,n as B,j as t,W as r,ak as h,T as b,b4 as k,at as T,am as $,cs as q,ct as G}from"./vendor-mui-core-DnR6WYuU.js";import{B as V,p as Y}from"./dashboard-
|
|
1
|
+
import{r as v}from"./vendor-react-CTtPmzVP.js";import{D,n as B,j as t,W as r,ak as h,T as b,b4 as k,at as T,am as $,cs as q,ct as G}from"./vendor-mui-core-DnR6WYuU.js";import{B as V,p as Y}from"./dashboard-DDFp-UB6.js";import{V as L,at as Z,z as _,aO as J}from"./vendor-ux-7TwTLXf8.js";import{cm as w,al as C,Z as K,Y as z,q as f,bv as Q}from"./index-CGOBEhzW.js";import{H as X}from"./vendor-utils-CxWN1dT3.js";import{x as N}from"./index-DRYJ0xIl.js";import{B as P}from"./base-chart-ChBZtUEG.js";import{B as ee}from"./bundle-avatar-CLRiyhwo.js";import"./vendor-arcblock-Dr30TSIK.js";import"./vendor-hooks-qxhUUbW5.js";import"./session-vM0SwFQZ.js";import"./index-DBs9Ljax.js";import"./team-DHhtcW5C.js";import"./isURL-CJrtALFi.js";import"./use-app-logo-DSdF3M62.js";import"./useAsyncRetry-r8dEPb-x.js";import"./useAsync-Dotoxibi.js";import"./useSetState-L-f8mSga.js";import"./index-Bt8QUMaz.js";import"./zh-D1XHANJI.js";import"./over-due-invoice-payment-C9HTfbWA.js";import"./useLocalStorage-A7dcJ6ce.js";import"./confirm-BSaTCzrs.js";import"./get-safe-url-D7ti-zln.js";import"./passport-DMm48qRk.js";import"./create-passport-svg-BJX-WFnl.js";import"./spaces-ypzuCaPe.js";import"./api-FQQlzPOP.js";import"./lottie-web-4koyQiv_.js";import"./index-D1SIrheh.js";function S({title:i="",cpus:y=[],currentLoad:s=0,history:p=[],empty:l=null,onHover:u=()=>{},hoverIndex:a=null}){const{t:d,locale:x}=L(),e=D(),n=`${i||d("common.cpu")} (${Math.floor(s||0)}%)`,o=100,m=80,c=H=>`${H}%`,M=[{max:m,color:B(e.palette.primary.main,e.palette.mode==="dark"?.15:.08)},{min:m,max:100,color:B(e.palette.warning.main,e.palette.mode==="dark"?.18:.12)},{min:100,color:B(e.palette.error.main,e.palette.mode==="dark"?.25:.18)}],j={silent:!0,symbol:["none","none"],data:[{yAxis:100,lineStyle:{color:e.palette.error.main,type:"dashed",width:1.5},label:{formatter:`${c(100)}`,position:"insideEndTop",color:e.palette.text.secondary,padding:[2,4],borderRadius:2}},{yAxis:m,lineStyle:{color:e.palette.warning.light,type:"dashed",width:1.5},label:{formatter:`${c(m)}`,position:"insideEndTop",color:e.palette.text.secondary,padding:[2,4],borderRadius:2}}]},I=t.jsx("span",{children:`${d("system.cores")}: ${y?.length||0}`}),R=H=>w(Number(H),"HH:mm",x);return t.jsx(P,{title:n,total:o,history:p,valueFn:c,xAxisFormat:R,visualMapPieces:M,markLineData:j,extraInfo:I,empty:l,onHover:u,hoverIndex:a})}S.propTypes={title:r.string,cpus:r.array,currentLoad:r.number,history:r.array,empty:r.node,onHover:r.func,hoverIndex:r.number};function U({instanceCount:i=null,title:y="",total:s=null,used:p=null,history:l=[],empty:u=null,onHover:a=()=>{},hoverIndex:d=null}){const{t:x,locale:e}=L(),n=D(),o=!!s,m=s-p,c=o?`(${C(p)}, ${Math.floor(p/s*100)}%)`:"",M=`${y||x("common.memory")} ${c}`,j=Math.ceil(s*.8),I=g=>N(g,{short:!0,iec:!0}),R=[];i&&R.push({title:x("system.instances"),metric:i}),o&&R.push({title:x("system.free"),metric:I(m)});const H=[{max:j,color:B(n.palette.primary.main,n.palette.mode==="dark"?.15:.08)},{min:j,max:s,color:B(n.palette.warning.main,n.palette.mode==="dark"?.18:.12)},{min:s,color:B(n.palette.error.main,n.palette.mode==="dark"?.25:.18)}],F={silent:!0,symbol:["none","none"],data:[{yAxis:s,lineStyle:{color:n.palette.error.main,type:"dashed",width:1.5},label:{formatter:`${I(s)}`,position:"insideEndTop",color:n.palette.text.secondary,padding:[2,4],borderRadius:2}},{yAxis:j,lineStyle:{color:n.palette.warning.light,type:"dashed",width:1.5},label:{formatter:`${I(j)}`,position:"insideEndTop",color:n.palette.text.secondary,padding:[2,4],borderRadius:2}}]},A=t.jsx(t.Fragment,{children:R.map((g,O)=>t.jsxs(h,{sx:{marginLeft:O===0?0:1,display:"inline-flex"},children:[g.title,": ",g.metric]},g.title))}),W=g=>w(Number(g),"HH:mm",e);return t.jsx(P,{title:M,total:s,history:l,valueFn:I,xAxisFormat:W,visualMapPieces:H,markLineData:F,extraInfo:A,empty:u,onHover:a,hoverIndex:d})}U.propTypes={title:r.string,instanceCount:r.number,total:r.number,used:r.number,history:r.array,empty:r.node,onHover:r.func,hoverIndex:r.number};function E({blocklet:i,cpuHistory:y=[],memoryHistory:s=[],...p}){const{t:l}=L(),{info:u}=K(),{runtimeHistory:a}=z(),[d,x]=v.useState(null),e=v.useCallback(o=>i.status!=="running"?t.jsx(b,{children:l("blocklet.runtimeInfo.noRunning")}):o.length?null:t.jsx(Z,{children:l("common.empty")}),[i.status,l]),n=v.useCallback(o=>{x(o)},[]);return a.length===0?t.jsx(b,{children:l("blocklet.runtimeInfo.noRunning")}):t.jsxs(te,{component:"div",...p,memoryHistory:s,cpuHistory:y,children:[t.jsxs(k,{className:"page-metrics",container:!0,spacing:5,children:[t.jsx(k,{sx:{pt:"16px !important"},size:12,children:t.jsx(b,{sx:{fontSize:"16px",fontWeight:"bold"},children:"CPU"})}),a?.map(o=>t.jsx(k,{sx:{pt:"16px !important"},size:{lg:4,md:6,sm:6,xs:12},children:t.jsx(S,{title:`${o.name} CPU`,empty:e(o.cpu),currentLoad:o.appRuntimeInfo?.cpuUsage||0,cpus:o.appRuntimeInfo?.cpus||[],history:o.cpu,onHover:n,hoverIndex:d,style:{height:150}})},`${o.key}-cpu`))]}),t.jsxs(k,{className:"page-metrics",container:!0,spacing:5,sx:{mt:1},children:[t.jsx(k,{sx:{pt:"16px !important"},size:12,children:t.jsx(b,{sx:{fontSize:"16px",fontWeight:"bold"},children:"Memory"})}),a?.map(o=>t.jsx(k,{sx:{pt:"16px !important"},size:{lg:4,md:6,sm:6,xs:12},children:t.jsx(U,{title:`${o.name} Memory`,empty:e(o.memory),total:u.runtimeConfig?.blockletMaxMemoryLimit?N.parseSize(`${u.runtimeConfig.blockletMaxMemoryLimit*(o.key===i?.meta?.did?a.length-1:1)}MiB`):0,used:o.appRuntimeInfo?.memoryUsage||0,history:o.memory,onHover:n,hoverIndex:d,style:{height:150}})},`${o.key}-memory`))]})]})}E.propTypes={blocklet:r.object.isRequired,cpuHistory:r.arrayOf(r.shape({date:r.number,value:r.number})),memoryHistory:r.arrayOf(r.shape({date:r.number,value:r.number}))};const te=T(b)``;function ze(){const{t:i,locale:y}=L(),[s,p]=v.useState(6),{blocklet:l,actions:{refreshBlocklet:u}}=z(),a=v.useMemo(()=>{const e=[];return f.forEachBlockletSync(l,(n,{ancestors:o,id:m,level:c})=>{n?.meta?.did&&n.meta.did!==l.meta.did&&e.push({type:"blocklet",groupId:l.meta.did,groupName:f.getDisplayName(l),id:m,name:f.getDisplayName(n,!0),blocklet:l,component:n,level:c-1>=0?c-1:0,runtimeInfo:n.runtimeInfo,ancestors:o})}),e},[l]);v.useEffect(()=>{u({hours:s});const e=setInterval(()=>{u({hours:s})},1e3*10);return()=>{clearInterval(e)}},[s]);const d=e=>Y(Number(e||0),{locale:Q(y)}),x=[{label:i("common.name"),name:"name",options:{customBodyRenderLite(e){const{name:n,component:o,level:m,ancestors:c}=a[e];return t.jsxs(h,{sx:{display:"flex",alignItems:"center",pl:m*2},children:[t.jsx(ee,{size:20,blocklet:o,ancestors:c}),t.jsx(h,{sx:{ml:1},children:n}),t.jsx(V,{variant:"pin",style:{marginLeft:8},status:f.isBlockletRunning(o)?"running":o.status,source:o.source,progress:o.progress})]})}}},{label:i("common.uptime"),name:"runtimeInfo.uptime",options:{customBodyRenderLite(e){const{runtimeInfo:n,component:o}=a[e];return f.isBlockletRunning(o)?d(n?.uptime):t.jsx($,{title:i("common.noData"),children:"--"})}}},{label:i("blocklet.runtimeInfo.memoryUsage"),name:"runtimeInfo.memoryUsage",options:{customBodyRenderLite(e){const{runtimeInfo:n,component:o}=a[e];return f.isBlockletRunning(o)?C(n?.memoryUsage||0):t.jsx($,{title:i("common.noData"),children:"--"})}}},{label:i("blocklet.runtimeInfo.cpuUsage"),name:"runtimeInfo.cpuUsage",options:{customBodyRenderLite(e){const{runtimeInfo:n,component:o}=a[e];return f.isBlockletRunning(o)?`${(n?.cpuUsage||0).toFixed(1)}%`:t.jsx($,{title:i("common.noData"),children:"--"})}}},{label:i("analytics.runtime"),name:"runtimeInfo.runtime",options:{customBodyRenderLite(e){const{runtimeInfo:n}=a[e];return n?.uptime?t.jsxs(h,{sx:{display:"flex",alignItems:"center"},children:[t.jsx(_,{icon:n?.runningDocker?"catppuccin:docker-ignore":"logos:nodejs-icon"}),t.jsx(h,{sx:{ml:1},children:n?.runningDocker?"Docker":"Nodejs"})]}):null}}},{label:i("blocklet.runtimeInfo.processId"),name:"runtimeInfo.pid",options:{customBodyRenderLite(e){const{runtimeInfo:n,component:o}=a[e];return f.isBlockletRunning(o)?n?.pid:t.jsx($,{title:i("common.noData"),children:"--"})}}},{label:i("blocklet.runtimeInfo.port"),name:"runtimeInfo.port",options:{customBodyRenderLite(e){const{runtimeInfo:n,component:o}=a[e];return f.isBlockletRunning(o)?n?.port:t.jsx($,{title:i("common.noData"),children:"--"})}}}];return t.jsxs(ne,{component:"div",children:[t.jsxs(h,{sx:{display:"flex",justifyContent:"space-between",flexDirection:"row",mb:2},children:[t.jsx(b,{component:"h3",variant:"h5",color:"textPrimary",style:{fontSize:18,fontWeight:"bold"},sx:{mb:2},children:i("analytics.trend")}),t.jsx(q,{size:"small",exclusive:!0,value:s,onChange:(e,n)=>{X(n)&&p(n)},children:[1,3,6,12,24].map(e=>t.jsxs(G,{value:e,children:[e,"H"]},e))})]}),t.jsx(h,{children:t.jsx(E,{blocklet:l})}),t.jsx(h,{sx:{mt:3},children:t.jsx(J,{title:i("analytics.detail"),className:"monitor-table",locale:y,data:a,columns:x,options:{search:!1,download:!1,filter:!1,print:!1,viewColumns:!1,pagination:!1,rowsPerPage:100}})})]})}const ne=T(b)``;export{ze as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as Ae}from"./omit-
|
|
1
|
+
import{r as Ae}from"./omit-spWLSLbo.js";import{r as xe}from"./index-_tncRnTu.js";var G={exports:{}},z={},N={exports:{}},S={},B={exports:{}},F={},ie;function he(){if(ie)return F;ie=1;function n(){var e={};return e["align-content"]=!1,e["align-items"]=!1,e["align-self"]=!1,e["alignment-adjust"]=!1,e["alignment-baseline"]=!1,e.all=!1,e["anchor-point"]=!1,e.animation=!1,e["animation-delay"]=!1,e["animation-direction"]=!1,e["animation-duration"]=!1,e["animation-fill-mode"]=!1,e["animation-iteration-count"]=!1,e["animation-name"]=!1,e["animation-play-state"]=!1,e["animation-timing-function"]=!1,e.azimuth=!1,e["backface-visibility"]=!1,e.background=!0,e["background-attachment"]=!0,e["background-clip"]=!0,e["background-color"]=!0,e["background-image"]=!0,e["background-origin"]=!0,e["background-position"]=!0,e["background-repeat"]=!0,e["background-size"]=!0,e["baseline-shift"]=!1,e.binding=!1,e.bleed=!1,e["bookmark-label"]=!1,e["bookmark-level"]=!1,e["bookmark-state"]=!1,e.border=!0,e["border-bottom"]=!0,e["border-bottom-color"]=!0,e["border-bottom-left-radius"]=!0,e["border-bottom-right-radius"]=!0,e["border-bottom-style"]=!0,e["border-bottom-width"]=!0,e["border-collapse"]=!0,e["border-color"]=!0,e["border-image"]=!0,e["border-image-outset"]=!0,e["border-image-repeat"]=!0,e["border-image-slice"]=!0,e["border-image-source"]=!0,e["border-image-width"]=!0,e["border-left"]=!0,e["border-left-color"]=!0,e["border-left-style"]=!0,e["border-left-width"]=!0,e["border-radius"]=!0,e["border-right"]=!0,e["border-right-color"]=!0,e["border-right-style"]=!0,e["border-right-width"]=!0,e["border-spacing"]=!0,e["border-style"]=!0,e["border-top"]=!0,e["border-top-color"]=!0,e["border-top-left-radius"]=!0,e["border-top-right-radius"]=!0,e["border-top-style"]=!0,e["border-top-width"]=!0,e["border-width"]=!0,e.bottom=!1,e["box-decoration-break"]=!0,e["box-shadow"]=!0,e["box-sizing"]=!0,e["box-snap"]=!0,e["box-suppress"]=!0,e["break-after"]=!0,e["break-before"]=!0,e["break-inside"]=!0,e["caption-side"]=!1,e.chains=!1,e.clear=!0,e.clip=!1,e["clip-path"]=!1,e["clip-rule"]=!1,e.color=!0,e["color-interpolation-filters"]=!0,e["column-count"]=!1,e["column-fill"]=!1,e["column-gap"]=!1,e["column-rule"]=!1,e["column-rule-color"]=!1,e["column-rule-style"]=!1,e["column-rule-width"]=!1,e["column-span"]=!1,e["column-width"]=!1,e.columns=!1,e.contain=!1,e.content=!1,e["counter-increment"]=!1,e["counter-reset"]=!1,e["counter-set"]=!1,e.crop=!1,e.cue=!1,e["cue-after"]=!1,e["cue-before"]=!1,e.cursor=!1,e.direction=!1,e.display=!0,e["display-inside"]=!0,e["display-list"]=!0,e["display-outside"]=!0,e["dominant-baseline"]=!1,e.elevation=!1,e["empty-cells"]=!1,e.filter=!1,e.flex=!1,e["flex-basis"]=!1,e["flex-direction"]=!1,e["flex-flow"]=!1,e["flex-grow"]=!1,e["flex-shrink"]=!1,e["flex-wrap"]=!1,e.float=!1,e["float-offset"]=!1,e["flood-color"]=!1,e["flood-opacity"]=!1,e["flow-from"]=!1,e["flow-into"]=!1,e.font=!0,e["font-family"]=!0,e["font-feature-settings"]=!0,e["font-kerning"]=!0,e["font-language-override"]=!0,e["font-size"]=!0,e["font-size-adjust"]=!0,e["font-stretch"]=!0,e["font-style"]=!0,e["font-synthesis"]=!0,e["font-variant"]=!0,e["font-variant-alternates"]=!0,e["font-variant-caps"]=!0,e["font-variant-east-asian"]=!0,e["font-variant-ligatures"]=!0,e["font-variant-numeric"]=!0,e["font-variant-position"]=!0,e["font-weight"]=!0,e.grid=!1,e["grid-area"]=!1,e["grid-auto-columns"]=!1,e["grid-auto-flow"]=!1,e["grid-auto-rows"]=!1,e["grid-column"]=!1,e["grid-column-end"]=!1,e["grid-column-start"]=!1,e["grid-row"]=!1,e["grid-row-end"]=!1,e["grid-row-start"]=!1,e["grid-template"]=!1,e["grid-template-areas"]=!1,e["grid-template-columns"]=!1,e["grid-template-rows"]=!1,e["hanging-punctuation"]=!1,e.height=!0,e.hyphens=!1,e.icon=!1,e["image-orientation"]=!1,e["image-resolution"]=!1,e["ime-mode"]=!1,e["initial-letters"]=!1,e["inline-box-align"]=!1,e["justify-content"]=!1,e["justify-items"]=!1,e["justify-self"]=!1,e.left=!1,e["letter-spacing"]=!0,e["lighting-color"]=!0,e["line-box-contain"]=!1,e["line-break"]=!1,e["line-grid"]=!1,e["line-height"]=!1,e["line-snap"]=!1,e["line-stacking"]=!1,e["line-stacking-ruby"]=!1,e["line-stacking-shift"]=!1,e["line-stacking-strategy"]=!1,e["list-style"]=!0,e["list-style-image"]=!0,e["list-style-position"]=!0,e["list-style-type"]=!0,e.margin=!0,e["margin-bottom"]=!0,e["margin-left"]=!0,e["margin-right"]=!0,e["margin-top"]=!0,e["marker-offset"]=!1,e["marker-side"]=!1,e.marks=!1,e.mask=!1,e["mask-box"]=!1,e["mask-box-outset"]=!1,e["mask-box-repeat"]=!1,e["mask-box-slice"]=!1,e["mask-box-source"]=!1,e["mask-box-width"]=!1,e["mask-clip"]=!1,e["mask-image"]=!1,e["mask-origin"]=!1,e["mask-position"]=!1,e["mask-repeat"]=!1,e["mask-size"]=!1,e["mask-source-type"]=!1,e["mask-type"]=!1,e["max-height"]=!0,e["max-lines"]=!1,e["max-width"]=!0,e["min-height"]=!0,e["min-width"]=!0,e["move-to"]=!1,e["nav-down"]=!1,e["nav-index"]=!1,e["nav-left"]=!1,e["nav-right"]=!1,e["nav-up"]=!1,e["object-fit"]=!1,e["object-position"]=!1,e.opacity=!1,e.order=!1,e.orphans=!1,e.outline=!1,e["outline-color"]=!1,e["outline-offset"]=!1,e["outline-style"]=!1,e["outline-width"]=!1,e.overflow=!1,e["overflow-wrap"]=!1,e["overflow-x"]=!1,e["overflow-y"]=!1,e.padding=!0,e["padding-bottom"]=!0,e["padding-left"]=!0,e["padding-right"]=!0,e["padding-top"]=!0,e.page=!1,e["page-break-after"]=!1,e["page-break-before"]=!1,e["page-break-inside"]=!1,e["page-policy"]=!1,e.pause=!1,e["pause-after"]=!1,e["pause-before"]=!1,e.perspective=!1,e["perspective-origin"]=!1,e.pitch=!1,e["pitch-range"]=!1,e["play-during"]=!1,e.position=!1,e["presentation-level"]=!1,e.quotes=!1,e["region-fragment"]=!1,e.resize=!1,e.rest=!1,e["rest-after"]=!1,e["rest-before"]=!1,e.richness=!1,e.right=!1,e.rotation=!1,e["rotation-point"]=!1,e["ruby-align"]=!1,e["ruby-merge"]=!1,e["ruby-position"]=!1,e["shape-image-threshold"]=!1,e["shape-outside"]=!1,e["shape-margin"]=!1,e.size=!1,e.speak=!1,e["speak-as"]=!1,e["speak-header"]=!1,e["speak-numeral"]=!1,e["speak-punctuation"]=!1,e["speech-rate"]=!1,e.stress=!1,e["string-set"]=!1,e["tab-size"]=!1,e["table-layout"]=!1,e["text-align"]=!0,e["text-align-last"]=!0,e["text-combine-upright"]=!0,e["text-decoration"]=!0,e["text-decoration-color"]=!0,e["text-decoration-line"]=!0,e["text-decoration-skip"]=!0,e["text-decoration-style"]=!0,e["text-emphasis"]=!0,e["text-emphasis-color"]=!0,e["text-emphasis-position"]=!0,e["text-emphasis-style"]=!0,e["text-height"]=!0,e["text-indent"]=!0,e["text-justify"]=!0,e["text-orientation"]=!0,e["text-overflow"]=!0,e["text-shadow"]=!0,e["text-space-collapse"]=!0,e["text-transform"]=!0,e["text-underline-position"]=!0,e["text-wrap"]=!0,e.top=!1,e.transform=!1,e["transform-origin"]=!1,e["transform-style"]=!1,e.transition=!1,e["transition-delay"]=!1,e["transition-duration"]=!1,e["transition-property"]=!1,e["transition-timing-function"]=!1,e["unicode-bidi"]=!1,e["vertical-align"]=!1,e.visibility=!1,e["voice-balance"]=!1,e["voice-duration"]=!1,e["voice-family"]=!1,e["voice-pitch"]=!1,e["voice-range"]=!1,e["voice-rate"]=!1,e["voice-stress"]=!1,e["voice-volume"]=!1,e.volume=!1,e["white-space"]=!1,e.widows=!1,e.width=!0,e["will-change"]=!1,e["word-break"]=!0,e["word-spacing"]=!0,e["word-wrap"]=!0,e["wrap-flow"]=!1,e["wrap-through"]=!1,e["writing-mode"]=!1,e["z-index"]=!1,e}function f(e,h,v){}function s(e,h,v){}var l=/javascript\s*\:/img;function y(e,h){return l.test(h)?"":h}return F.whiteList=n(),F.getDefaultWhiteList=n,F.onAttr=f,F.onIgnoreAttr=s,F.safeAttrValue=y,F}var Q,ae;function be(){return ae||(ae=1,Q={indexOf:function(n,f){var s,l;if(Array.prototype.indexOf)return n.indexOf(f);for(s=0,l=n.length;s<l;s++)if(n[s]===f)return s;return-1},forEach:function(n,f,s){var l,y;if(Array.prototype.forEach)return n.forEach(f,s);for(l=0,y=n.length;l<y;l++)f.call(s,n[l],l,n)},trim:function(n){return String.prototype.trim?n.trim():n.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(n){return String.prototype.trimRight?n.trimRight():n.replace(/(\s*$)/g,"")}}),Q}var K,ne;function Te(){if(ne)return K;ne=1;var n=be();function f(s,l){s=n.trimRight(s),s[s.length-1]!==";"&&(s+=";");var y=s.length,e=!1,h=0,v=0,_="";function E(){if(!e){var d=n.trim(s.slice(h,v)),a=d.indexOf(":");if(a!==-1){var A=n.trim(d.slice(0,a)),k=n.trim(d.slice(a+1));if(A){var m=l(h,_.length,A,k,d);m&&(_+=m+"; ")}}}h=v+1}for(;v<y;v++){var T=s[v];if(T==="/"&&s[v+1]==="*"){var r=s.indexOf("*/",v+2);if(r===-1)break;v=r+1,h=v+1,e=!1}else T==="("?e=!0:T===")"?e=!1:T===";"?e||E():T===`
|
|
2
2
|
`&&E()}return n.trim(_)}return K=f,K}var Z,se;function Se(){if(se)return Z;se=1;var n=he(),f=Te();be();function s(e){return e==null}function l(e){var h={};for(var v in e)h[v]=e[v];return h}function y(e){e=l(e||{}),e.whiteList=e.whiteList||n.whiteList,e.onAttr=e.onAttr||n.onAttr,e.onIgnoreAttr=e.onIgnoreAttr||n.onIgnoreAttr,e.safeAttrValue=e.safeAttrValue||n.safeAttrValue,this.options=e}return y.prototype.process=function(e){if(e=e||"",e=e.toString(),!e)return"";var h=this,v=h.options,_=v.whiteList,E=v.onAttr,T=v.onIgnoreAttr,r=v.safeAttrValue,d=f(e,function(a,A,k,m,C){var t=_[k],i=!1;if(t===!0?i=t:typeof t=="function"?i=t(m):t instanceof RegExp&&(i=t.test(m)),i!==!0&&(i=!1),m=r(k,m),!!m){var c={position:A,sourcePosition:a,source:C,isWhite:i};if(i){var o=E(k,m,c);return s(o)?k+":"+m:o}else{var o=T(k,m,c);if(!s(o))return o}}});return d},Z=y,Z}var oe;function re(){return oe||(oe=1,function(n,f){var s=he(),l=Se();function y(h,v){var _=new l(v);return _.process(h)}f=n.exports=y,f.FilterCSS=l;for(var e in s)f[e]=s[e];typeof window<"u"&&(window.filterCSS=n.exports)}(B,B.exports)),B.exports}var J,fe;function te(){return fe||(fe=1,J={indexOf:function(n,f){var s,l;if(Array.prototype.indexOf)return n.indexOf(f);for(s=0,l=n.length;s<l;s++)if(n[s]===f)return s;return-1},forEach:function(n,f,s){var l,y;if(Array.prototype.forEach)return n.forEach(f,s);for(l=0,y=n.length;l<y;l++)f.call(s,n[l],l,n)},trim:function(n){return String.prototype.trim?n.trim():n.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(n){var f=/\s|\n|\t/,s=f.exec(n);return s?s.index:-1}}),J}var le;function me(){if(le)return S;le=1;var n=re().FilterCSS,f=re().getDefaultWhiteList,s=te();function l(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],figcaption:[],figure:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height","loading"],ins:["datetime"],kbd:[],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],summary:[],sup:[],strong:[],strike:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","crossorigin","loop","muted","playsinline","poster","preload","src","height","width"]}}var y=new n;function e(g,x,p){}function h(g,x,p){}function v(g,x,p){}function _(g,x,p){}function E(g){return g.replace(r,"<").replace(d,">")}function T(g,x,p,w){if(p=D(p),x==="href"||x==="src"){if(p=s.trim(p),p==="#")return"#";if(!(p.substr(0,7)==="http://"||p.substr(0,8)==="https://"||p.substr(0,7)==="mailto:"||p.substr(0,4)==="tel:"||p.substr(0,11)==="data:image/"||p.substr(0,6)==="ftp://"||p.substr(0,2)==="./"||p.substr(0,3)==="../"||p[0]==="#"||p[0]==="/"))return""}else if(x==="background"){if(t.lastIndex=0,t.test(p))return""}else if(x==="style"){if(i.lastIndex=0,i.test(p)||(c.lastIndex=0,c.test(p)&&(t.lastIndex=0,t.test(p))))return"";w!==!1&&(w=w||y,p=w.process(p))}return p=R(p),p}var r=/</g,d=/>/g,a=/"/g,A=/"/g,k=/&#([a-zA-Z0-9]*);?/gim,m=/:?/gim,C=/&newline;?/gim,t=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a):/gi,i=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,c=/u\s*r\s*l\s*\(.*/gi;function o(g){return g.replace(a,""")}function u(g){return g.replace(A,'"')}function b(g){return g.replace(k,function(p,w){return w[0]==="x"||w[0]==="X"?String.fromCharCode(parseInt(w.substr(1),16)):String.fromCharCode(parseInt(w,10))})}function L(g){return g.replace(m,":").replace(C," ")}function $(g){for(var x="",p=0,w=g.length;p<w;p++)x+=g.charCodeAt(p)<32?" ":g.charAt(p);return s.trim(x)}function D(g){return g=u(g),g=b(g),g=L(g),g=$(g),g}function R(g){return g=o(g),g=E(g),g}function P(){return""}function M(g,x){typeof x!="function"&&(x=function(){});var p=!Array.isArray(g);function w(I){return p?!0:s.indexOf(g,I)!==-1}var O=[],q=!1;return{onIgnoreTag:function(I,X,W){if(w(I))if(W.isClosing){var j="[/removed]",we=W.position+j.length;return O.push([q!==!1?q:W.position,we]),q=!1,j}else return q||(q=W.position),"[removed]";else return x(I,X,W)},remove:function(I){var X="",W=0;return s.forEach(O,function(j){X+=I.slice(W,j[0]),W=j[1]}),X+=I.slice(W),X}}}function U(g){for(var x="",p=0;p<g.length;){var w=g.indexOf("<!--",p);if(w===-1){x+=g.slice(p);break}x+=g.slice(p,w);var O=g.indexOf("-->",w);if(O===-1)break;p=O+3}return x}function V(g){var x=g.split("");return x=x.filter(function(p){var w=p.charCodeAt(0);return w===127?!1:w<=31?w===10||w===13:!0}),x.join("")}return S.whiteList=l(),S.getDefaultWhiteList=l,S.onTag=e,S.onIgnoreTag=h,S.onTagAttr=v,S.onIgnoreTagAttr=_,S.safeAttrValue=T,S.escapeHtml=E,S.escapeQuote=o,S.unescapeQuote=u,S.escapeHtmlEntities=b,S.escapeDangerHtml5Entities=L,S.clearNonPrintableCharacter=$,S.friendlyAttrValue=D,S.escapeAttrValue=R,S.onIgnoreTagStripAll=P,S.StripTagBody=M,S.stripCommentTag=U,S.stripBlankChar=V,S.attributeWrapSign='"',S.cssFilter=y,S.getDefaultCSSWhiteList=f,S}var H={},ue;function ye(){if(ue)return H;ue=1;var n=te();function f(r){var d=n.spaceIndex(r),a;return d===-1?a=r.slice(1,-1):a=r.slice(1,d+1),a=n.trim(a).toLowerCase(),a.slice(0,1)==="/"&&(a=a.slice(1)),a.slice(-1)==="/"&&(a=a.slice(0,-1)),a}function s(r){return r.slice(0,2)==="</"}function l(r,d,a){var A="",k=0,m=!1,C=!1,t=0,i=r.length,c="",o="";e:for(t=0;t<i;t++){var u=r.charAt(t);if(m===!1){if(u==="<"){m=t;continue}}else if(C===!1){if(u==="<"){A+=a(r.slice(k,t)),m=t,k=t;continue}if(u===">"||t===i-1){A+=a(r.slice(k,m)),o=r.slice(m,t+1),c=f(o),A+=d(m,A.length,c,o,s(o)),k=t+1,m=!1;continue}if(u==='"'||u==="'")for(var b=1,L=r.charAt(t-b);L.trim()===""||L==="=";){if(L==="="){C=u;continue e}L=r.charAt(t-++b)}}else if(u===C){C=!1;continue}}return k<i&&(A+=a(r.substr(k))),A}var y=/[^a-zA-Z0-9\\_:.-]/gim;function e(r,d){var a=0,A=0,k=[],m=!1,C=r.length;function t(b,L){if(b=n.trim(b),b=b.replace(y,"").toLowerCase(),!(b.length<1)){var $=d(b,L||"");$&&k.push($)}}for(var i=0;i<C;i++){var c=r.charAt(i),o,u;if(m===!1&&c==="="){m=r.slice(a,i),a=i+1,A=r.charAt(a)==='"'||r.charAt(a)==="'"?a:v(r,i+1);continue}if(m!==!1&&i===A){if(u=r.indexOf(c,i+1),u===-1)break;o=n.trim(r.slice(A+1,u)),t(m,o),m=!1,i=u,a=i+1;continue}if(/\s|\n|\t/.test(c))if(r=r.replace(/\s|\n|\t/g," "),m===!1)if(u=h(r,i),u===-1){o=n.trim(r.slice(a,i)),t(o),m=!1,a=i+1;continue}else{i=u-1;continue}else if(u=_(r,i-1),u===-1){o=n.trim(r.slice(a,i)),o=T(o),t(m,o),m=!1,a=i+1;continue}else continue}return a<r.length&&(m===!1?t(r.slice(a)):t(m,T(n.trim(r.slice(a))))),n.trim(k.join(" "))}function h(r,d){for(;d<r.length;d++){var a=r[d];if(a!==" ")return a==="="?d:-1}}function v(r,d){for(;d<r.length;d++){var a=r[d];if(a!==" ")return a==="'"||a==='"'?d:-1}}function _(r,d){for(;d>0;d--){var a=r[d];if(a!==" ")return a==="="?d:-1}}function E(r){return r[0]==='"'&&r[r.length-1]==='"'||r[0]==="'"&&r[r.length-1]==="'"}function T(r){return E(r)?r.substr(1,r.length-2):r}return H.parseTag=l,H.parseAttr=e,H}var Y,ce;function ke(){if(ce)return Y;ce=1;var n=re().FilterCSS,f=me(),s=ye(),l=s.parseTag,y=s.parseAttr,e=te();function h(r){return r==null}function v(r){var d=e.spaceIndex(r);if(d===-1)return{html:"",closing:r[r.length-2]==="/"};r=e.trim(r.slice(d+1,-1));var a=r[r.length-1]==="/";return a&&(r=e.trim(r.slice(0,-1))),{html:r,closing:a}}function _(r){var d={};for(var a in r)d[a]=r[a];return d}function E(r){var d={};for(var a in r)Array.isArray(r[a])?d[a.toLowerCase()]=r[a].map(function(A){return A.toLowerCase()}):d[a.toLowerCase()]=r[a];return d}function T(r){r=_(r||{}),r.stripIgnoreTag&&(r.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),r.onIgnoreTag=f.onIgnoreTagStripAll),r.whiteList||r.allowList?r.whiteList=E(r.whiteList||r.allowList):r.whiteList=f.whiteList,this.attributeWrapSign=r.singleQuotedAttributeValue===!0?"'":f.attributeWrapSign,r.onTag=r.onTag||f.onTag,r.onTagAttr=r.onTagAttr||f.onTagAttr,r.onIgnoreTag=r.onIgnoreTag||f.onIgnoreTag,r.onIgnoreTagAttr=r.onIgnoreTagAttr||f.onIgnoreTagAttr,r.safeAttrValue=r.safeAttrValue||f.safeAttrValue,r.escapeHtml=r.escapeHtml||f.escapeHtml,this.options=r,r.css===!1?this.cssFilter=!1:(r.css=r.css||{},this.cssFilter=new n(r.css))}return T.prototype.process=function(r){if(r=r||"",r=r.toString(),!r)return"";var d=this,a=d.options,A=a.whiteList,k=a.onTag,m=a.onIgnoreTag,C=a.onTagAttr,t=a.onIgnoreTagAttr,i=a.safeAttrValue,c=a.escapeHtml,o=d.attributeWrapSign,u=d.cssFilter;a.stripBlankChar&&(r=f.stripBlankChar(r)),a.allowCommentTag||(r=f.stripCommentTag(r));var b=!1;a.stripIgnoreTagBody&&(b=f.StripTagBody(a.stripIgnoreTagBody,m),m=b.onIgnoreTag);var L=l(r,function($,D,R,P,M){var U={sourcePosition:$,position:D,isClosing:M,isWhite:Object.prototype.hasOwnProperty.call(A,R)},V=k(R,P,U);if(!h(V))return V;if(U.isWhite){if(U.isClosing)return"</"+R+">";var g=v(P),x=A[R],p=y(g.html,function(w,O){var q=e.indexOf(x,w)!==-1,I=C(R,w,O,q);return h(I)?q?(O=i(R,w,O,u),O?w+"="+o+O+o:w):(I=t(R,w,O,q),h(I)?void 0:I):I});return P="<"+R,p&&(P+=" "+p),g.closing&&(P+=" /"),P+=">",P}else return V=m(R,P,U),h(V)?c(P):V},c);return b&&(L=b.remove(L)),L},Y=T,Y}var ge;function Le(){return ge||(ge=1,function(n,f){var s=me(),l=ye(),y=ke();function e(v,_){var E=new y(_);return E.process(v)}f=n.exports=e,f.filterXSS=e,f.FilterXSS=y,function(){for(var v in s)f[v]=s[v];for(var _ in l)f[_]=l[_]}(),typeof window<"u"&&(window.filterXSS=n.exports);function h(){return typeof self<"u"&&typeof DedicatedWorkerGlobalScope<"u"&&self instanceof DedicatedWorkerGlobalScope}h()&&(self.filterXSS=n.exports)}(N,N.exports)),N.exports}var pe;function _e(){if(pe)return z;pe=1,Object.defineProperty(z,"__esModule",{value:!0}),z.svgWhiteList=z.sanitizeSvg=z.isSvgFile=z.initSanitize=void 0;var n=h(Le()),f=n,s=y(Ae),l=y(xe());function y(t){return t&&t.__esModule?t:{default:t}}function e(t){if(typeof WeakMap!="function")return null;var i=new WeakMap,c=new WeakMap;return(e=function(o){return o?c:i})(t)}function h(t,i){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var c=e(i);if(c&&c.has(t))return c.get(t);var o={__proto__:null},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var b in t)if(b!=="default"&&{}.hasOwnProperty.call(t,b)){var L=u?Object.getOwnPropertyDescriptor(t,b):null;L&&(L.get||L.set)?Object.defineProperty(o,b,L):o[b]=t[b]}return o.default=t,c&&c.set(t,o),o}const v=["script","img","iframe","body","form","style","link","meta","bgsound","svg","embed","object","video","audio","source","track","marquee","blink","noscript","param","textarea","input","select","button"],_=v.reduce((t,i)=>(t[i]=!0,t),{});let E={escapeHtml:t=>t,whiteList:(0,s.default)(f.getDefaultWhiteList(),v),onIgnoreTag:function(t,i,c){if(_[t])return""},onTagAttr:(t,i)=>{if(t==="!BACKUP")return i},stripIgnoreTagBody:["script"]};function T(t,i){for(;t!==(0,n.filterXSS)(t,i);)t=(0,n.filterXSS)(t,i);return t}const r=(t={})=>{const i={...E,...t},c=o=>typeof o=="string"?T(o,i):Array.isArray(o)?o.map(u=>typeof u=="string"?T(u,i):Array.isArray(u)||typeof u=="object"?c(u):u):(typeof o=="object"&&o!==null&&Object.keys(o).forEach(u=>{if(i?.allowedKeys?.includes(u))return;const b=o[u];typeof b=="string"?o[u]=T(b,i):(Array.isArray(b)||typeof b=="object")&&(o[u]=c(b))}),o);return c};z.initSanitize=r;function d(t){const i={};Object.keys(A).forEach(o=>{const u=o.toLowerCase();u!==o&&(i[u]=o)});let c=t;return Object.entries(i).forEach(([o,u])=>{c=c.replace(new RegExp(`<${o}([^>]*)>`,"gi"),(b,L)=>`<${u}${L}>`),c=c.replace(new RegExp(`</${o}>`,"gi"),`</${u}>`)}),c}function a(t,i,c,o){if(o){const u=Object.keys(A).find(b=>b.toLowerCase()===t.toLowerCase());if(u){const b=A[u].find(L=>L.toLowerCase()===i.toLowerCase());if(b)return c=f.safeAttrValue(t,i,c),c?b+'="'+c+'"':b}}}const A=z.svgWhiteList={svg:["width","height","viewBox","xmlns","version","preserveAspectRatio","xml:space"],circle:["cx","cy","r","fill","stroke","stroke-width","fill-opacity","stroke-opacity"],ellipse:["cx","cy","rx","ry","fill","stroke","stroke-width"],line:["x1","y1","x2","y2","stroke","stroke-width"],path:["d","fill","stroke","stroke-width","fill-rule","stroke-linecap","stroke-linejoin"],polygon:["points","fill","stroke","stroke-width"],polyline:["points","fill","stroke","stroke-width"],rect:["x","y","width","height","rx","ry","fill","stroke","stroke-width"],g:["transform","fill","stroke"],text:["x","y","font-size","font-family","text-anchor","fill"],defs:[],clipPath:["id"],mask:["id"],use:["x","y","width","height"],linearGradient:["id","x1","y1","x2","y2","gradientUnits"],radialGradient:["id","cx","cy","r","fx","fy","gradientUnits"],stop:["offset","stop-color","stop-opacity"],pattern:["id","width","height","patternUnits","patternTransform"]},k={whiteList:A,stripIgnoreTagBody:["script","style"],onIgnoreTag:function(t,i,c){return""},onIgnoreTagAttr:function(t,i,c,o){if(i.startsWith("on")||i==="href"||i==="xlink:href")return"";if(i==="style"){const u=c.replace(/expression\(.*\)|javascript:|data:|@import|behavior|binding|moz-binding/gi,"");return u!==c?"":`${i}="${u}"`}if(t==="use"&&(i==="href"||i==="xlink:href"))return c.startsWith("#")&&!/[<>"']/.test(c)?`${i}="${c}"`:"";if(i==="id"||i==="class")return`${i}="${c}"`}},m=(t,i,c)=>{if(!C(t))throw new Error("Invalid SVG content");const u={...k,...c||{}};i?.preserveCase&&(u.onTagAttr=a);const b=T(t,u);return i?.preserveCase?d(b):b};z.sanitizeSvg=m;const C=(t,i)=>!(typeof t!="string"||!/<svg[^>]*?(?:>|\/>)|<\?xml[^>]*>\s*<svg[^>]*?(?:>|\/?>)/i.test(t)||i?.name&&l.default.extname(i.name).toLowerCase()!==".svg"||i?.type&&!i.type.toLowerCase().includes("image/svg"));return z.isSvgFile=C,z}var de;function Ee(){return de||(de=1,function(n,f){Object.defineProperty(f,"__esModule",{value:!0});var s={xss:!0};f.xss=y;var l=_e();Object.keys(l).forEach(function(e){e==="default"||e==="__esModule"||Object.prototype.hasOwnProperty.call(s,e)||e in f&&f[e]===l[e]||Object.defineProperty(f,e,{enumerable:!0,get:function(){return l[e]}})});function y(e={}){const h=(0,l.initSanitize)(e);return(v,_,E)=>{["body","params","headers","query"].forEach(T=>{v[T]&&(v[T]=h(v[T]))}),E()}}n.exports={xss:y,initSanitize:l.initSanitize,isSvgFile:l.isSvgFile,sanitizeSvg:l.sanitizeSvg}}(G,G.exports)),G.exports}var ee,ve;function Ce(){if(ve)return ee;ve=1;const{initSanitize:n}=Ee();return ee={sanitizeTag:l=>!l||typeof l!="string"?l:n({whiteList:{},stripIgnoreTag:!1,stripIgnoreTagBody:[],onIgnoreTag:(e,h)=>h.replace(/</g,"<").replace(/>/g,">"),onIgnoreTagAttr:(e,h,v)=>`${h}="${v}"`,onTag:(e,h)=>h.replace(/</g,"<").replace(/>/g,">"),escapeHtml:e=>e.replace(/</g,"<").replace(/>/g,">")})(l),escapeTag:l=>!l||typeof l!="string"?l:n({whiteList:{},stripIgnoreTag:!1,onIgnoreTag:(e,h)=>h.replace(/</g,"<").replace(/>/g,">"),onIgnoreTagAttr:(e,h,v)=>`${h}="${v}"`,stripIgnoreTagBody:[],escapeHtml:e=>e.replace(/</g,"<").replace(/>/g,">")})(l)},ee}var Oe=Ce();export{Oe as s};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as o}from"./index-CGOBEhzW.js";const e=o();export{e as b};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import{V as $,z as B,aT as ee,H as z,aK as ae,w as de,aO as ue,aW as _e}from"./vendor-ux-7TwTLXf8.js";import{g as oe,q as K,b as w,a as me,h as ge}from"./vendor-hooks-qxhUUbW5.js";import{r as k}from"./vendor-react-CTtPmzVP.js";import{j as e,ak as P,am as I,I as N,bn as Y,W as g,D as te,z as D,A as We,Q as Z,T as Fe,e1 as Ne,e2 as Le,M as Ve,y as L,b$ as J,bX as V,a5 as G,F as Me,U as Ue,c5 as $e,a7 as Xe,co as Ze,bW as ve,bY as Ce,b6 as Ge,at as Ke}from"./vendor-mui-core-DnR6WYuU.js";import{Y as se,Z as re,c as T,aD as fe,cs as Pe}from"./index-CGOBEhzW.js";import{n as U,V as Q,I as X,aA as Ye,C as Je,G as je,aB as ye,c as M,o as be}from"./vendor-utils-CxWN1dT3.js";import{d as pe,a as he}from"./edit-rounded-CnMn6J-D.js";import{u as xe,C as F}from"./index.esm-Co8ZxFyk.js";import{S as le}from"./simple-select-6nihrL7w.js";import{b as Se}from"./team-DHhtcW5C.js";import{l as Qe}from"./arrow-down.svg-C4FUKwt4.js";import{A as we}from"./config-DEeSuJty.js";import{u as eo}from"./use-mobile-BINJTzMb.js";import"./lottie-web-4koyQiv_.js";import"./vendor-arcblock-Dr30TSIK.js";import"./session-vM0SwFQZ.js";import"./isURL-CJrtALFi.js";import"./use-app-logo-DSdF3M62.js";const oo={width:24,height:24,body:'<path fill="currentColor" d="M11 14.2V6q0-.425.288-.713T12 5q.425 0 .713.288T13 6v8.2l2.9-2.9q.275-.275.7-.275t.7.275q.275.275.275.7t-.275.7l-4.6 4.6q-.3.3-.7.3t-.7-.3l-4.6-4.6q-.275-.275-.275-.7t.275-.7q.275-.275.7-.275t.7.275l2.9 2.9Z"/>'},to={width:24,height:24,body:'<path fill="currentColor" d="m11 8.8l-2.9 2.9q-.275.275-.7.275t-.7-.275q-.275-.275-.275-.7t.275-.7l4.6-4.6q.3-.3.7-.3t.7.3l4.6 4.6q.275.275.275.7t-.275.7q-.275.275-.7.275t-.7-.275L13 8.8V17q0 .425-.288.713T12 18q-.425 0-.713-.288T11 17V8.8Z"/>'};function He({enabled:o,showUp:t=!0,showDown:c=!0,showSwitch:n=!0,showDelete:s=!0,showEdit:i=!0,disableEdit:d=!1,disableSwitch:u=!1,onClickUp:l=()=>{},onClickDown:r=()=>{},onClickSwitch:f=()=>{},onClickDelete:h=()=>{},onClickEdit:H=()=>{}}){const{t:x}=$();return e.jsxs(P,{sx:{display:"flex",alignItems:"center",gap:0},onClick:O=>O.stopPropagation(),children:[i?e.jsx(I,{title:x("common.edit"),children:e.jsx(N,{size:"small",onClick:H,color:"success",disabled:d,children:e.jsx(B,{icon:pe,fontSize:18})})}):null,s?e.jsx(I,{title:x("common.delete"),children:e.jsx(N,{size:"small",onClick:h,color:"error",children:e.jsx(B,{icon:he,fontSize:18})})}):null,n?e.jsx(I,{title:x(o?"common.enabled":"common.disabled"),children:e.jsx(Y,{size:"small",checked:o,onClick:f,disabled:u})}):null,t?e.jsx(I,{title:x("common.moveUp"),children:e.jsx(N,{size:"small",onClick:l,disabled:d,children:e.jsx(B,{icon:to,fontSize:20})})}):null,c?e.jsx(I,{title:x("common.moveDown"),children:e.jsx(N,{size:"small",onClick:r,disabled:d,children:e.jsx(B,{icon:oo,fontSize:20})})}):null]})}He.propTypes={enabled:g.bool.isRequired,showUp:g.bool,showDown:g.bool,showSwitch:g.bool,showDelete:g.bool,showEdit:g.bool,disableEdit:g.bool,disableSwitch:g.bool,onClickUp:g.func,onClickDown:g.func,onClickSwitch:g.func,onClickDelete:g.func,onClickEdit:g.func};function Re({ref:o=null}){const{t}=k.useContext(ee),{blocklet:c}=se(),{api:n}=re(),s=c?.meta?.did,d=te()?.transitions?.duration?.leavingScreen||300,u=oe({mode:"add",show:!1,isDefaultRule:!1,callback:U,get dialogTitle(){return this.mode==="edit"?t("securityRule.edit"):this.mode==="view"?t("securityRule.view"):t("securityRule.add")}}),l=K(async()=>{const{accessPolicies:y}=await n.getBlockletAccessPolicies({input:{did:s}});return Q(y,C=>C.isProtected?1:0)},{manual:!0}),r=K(async()=>{const{responseHeaderPolicies:y}=await n.getBlockletResponseHeaderPolicies({input:{did:s}});return Q(y,C=>C.isProtected?1:0)},{manual:!0}),{handleSubmit:f,control:h,watch:H,setValue:x,getValues:O,reset:q,formState:{errors:A}}=xe({mode:"onChange",defaultValues:{componentDid:"",pathPattern:"",responseHeaderPolicyId:"",accessPolicyId:"",remark:""}}),_=w(()=>{q(),u.mode="add"}),S=w(()=>{u.show=!1,setTimeout(()=>{_()},d)}),j=w((y,C=null)=>{u.show=!0,C&&(u.isDefaultRule=C.id===T.SECURITY_RULE_DEFAULT_ID,u.mode="edit",x("componentDid",C.componentDid),x("pathPattern",C.pathPattern),x("responseHeaderPolicyId",C.responseHeaderPolicyId),x("accessPolicyId",C.accessPolicyId),x("remark",C.remark||"")),y?u.callback=y:u.mode="view",l.run(),r.run()});k.useImperativeHandle(o,()=>({open:j,close:S}),[j,S]);const m=w(()=>{const[y,C]=O(["accessPolicyId","responseHeaderPolicyId"]);return!y&&!C?t("securityRule.form.accessPolicyOrResponseHeaderPolicyRequired"):!0}),a=w(y=>{const C=m();if(C===!0){const ne=u.isDefaultRule?X(y,"componentDid"):y;u.callback(ne,S)}else z.error(C)}),b=H("componentDid"),E=w(y=>{const C=y?.trim();if(!C)return t("common.requiredErrorText",{name:t("securityRule.form.pathPattern")});if(b){if(C.startsWith("/"))return t("securityRule.form.pathPatternErrorText")}else if(!C.startsWith("/")&&C!=="*")return t("securityRule.form.pathPatternErrorText");return!0}),p=w(y=>y?.trim()?!0:t("common.requiredErrorText",{name:t("securityRule.form.accessPolicy")})),v=w(y=>y?.trim()?!0:t("common.requiredErrorText",{name:t("securityRule.form.responseHeaderPolicy")})),R=me(()=>{const C=(c?.children||[]).find(ne=>ne.meta.did===b);return C?.mountPoint?Ye(C.mountPoint):null},[c,b]);return e.jsx(ae,{open:u.show,title:u.dialogTitle,onClose:S,PaperProps:{style:{minHeight:"unset"}},actions:e.jsx(de,{color:"primary",autoFocus:!0,variant:"contained",onClick:f(a),children:t("common.confirm")}),children:e.jsxs("form",{noValidate:!0,autoComplete:"off",children:[u.isDefaultRule?null:e.jsx(F,{name:"componentDid",control:h,render:({field:y})=>e.jsx(le,{fullWidth:!0,margin:"dense",size:"small",label:t("securityRule.form.component"),placeholder:t("securityRule.form.componentPlaceholder"),options:c.children.map(C=>({title:C.meta.title,value:C.meta.did,description:C.mountPoint})),error:!!A?.componentDid?.message,helperText:A?.componentDid?.message||"Choose belong to component",...X(y,"ref"),readOnly:u.mode==="view"})}),e.jsx(F,{name:"pathPattern",control:h,rules:{validate:E},render:({field:y})=>e.jsx(D,{fullWidth:!0,required:!0,margin:"dense",size:"small",placeholder:t("securityRule.form.pathPatternPlaceholder"),label:t("securityRule.form.pathPattern"),error:!!A?.pathPattern?.message,helperText:A?.pathPattern?.message||"/abc/bcd or /abc or /abc/*",...y,disabled:u.isDefaultRule||u.mode==="view",slotProps:{input:{startAdornment:R?e.jsx(We,{position:"start",children:R}):null}}})}),e.jsx(F,{name:"accessPolicyId",control:h,rules:{validate:u.isDefaultRule?p:U},render:({field:y})=>e.jsx(le,{fullWidth:!0,required:u.isDefaultRule,margin:"dense",size:"small",label:t("securityRule.form.accessPolicy"),placeholder:t("securityRule.form.accessPolicyPlaceholder"),options:(l.data||[]).map(C=>({value:C.id,title:C.name,description:C.description})),error:!!A?.accessPolicyId?.message,helperText:A?.accessPolicyId?.message||t("securityRule.form.accessPolicyHelperText"),...X(y,"ref"),disabled:u.mode==="view"})}),e.jsx(F,{name:"responseHeaderPolicyId",control:h,rules:{validate:u.isDefaultRule?v:U},render:({field:y})=>e.jsx(le,{fullWidth:!0,required:u.isDefaultRule,margin:"dense",size:"small",label:t("securityRule.form.responseHeaderPolicy"),placeholder:t("securityRule.form.responseHeaderPolicyPlaceholder"),options:(r.data||[]).map(C=>({title:C.name,value:C.id,description:C.description})),error:!!A?.responseHeaderPolicyId?.message,helperText:A?.responseHeaderPolicyId?.message||t("securityRule.form.responseHeaderPolicyHelperText"),...X(y,"ref"),disabled:u.mode==="view"})}),e.jsx(F,{name:"remark",control:h,render:({field:y})=>e.jsx(D,{fullWidth:!0,multiline:!0,minRows:3,maxRows:7,size:"small",margin:"dense",placeholder:t("securityRule.form.remarkPlaceholder"),label:t("securityRule.form.remark"),helperText:A?.message,...y,disabled:u.mode==="view"})})]})})}Re.propTypes={ref:g.any};const W=async(o,t="Failed to saved")=>{try{await o()}catch(c){z.error(c?.message||t)}};function so(){const{t:o,locale:t}=$(),{blocklet:c}=se(),{api:n}=re(),s=c?.meta?.did,i=te(),d=k.useRef(null),u=k.useRef(null),{confirmApi:l,confirmHolder:r}=fe(),f=K(async()=>{const{securityRules:p}=await n.getBlockletSecurityRules({input:{did:s,includeDisabled:!0}});return p}),h=p=>p.id===T.SECURITY_RULE_DEFAULT_ID,H=w(p=>(c?.children||[]).find(R=>R.meta.did===p)?.mountPoint),x=(f.data||[]).map(p=>{if(p.componentDid){const v=H(p.componentDid);p._disabled=v===void 0}return p}),O=x.filter(p=>!h(p)),q=(p,v)=>{W(async()=>{const R=p.target.checked;await n.updateBlockletSecurityRule({input:{did:s,data:{id:v.id,enabled:R}}}),z.success(o("common.succeeded")),f.run()})},A=(p,v,R)=>{W(async()=>{const y=R-1,C=x[y];await Promise.all([n.updateBlockletSecurityRule({input:{did:s,data:{id:v.id,priority:C.priority}}}),n.updateBlockletSecurityRule({input:{did:s,data:{id:C.id,priority:v.priority}}})]),z.success(o("common.succeeded")),f.run()})},_=(p,v,R)=>{W(async()=>{const y=R+1,C=x[y];await Promise.all([n.updateBlockletSecurityRule({input:{did:s,data:{id:v.id,priority:C.priority}}}),n.updateBlockletSecurityRule({input:{did:s,data:{id:C.id,priority:v.priority}}})]),z.success(o("common.succeeded")),f.run()})},S=()=>{d.current.open((p,v)=>{W(async()=>{await n.addBlockletSecurityRule({input:{did:s,data:p}}),z.success(o("common.succeeded")),f.run(),v()})})},j=(p,v)=>{d.current.open((R,y)=>{W(async()=>{await n.updateBlockletSecurityRule({input:{did:s,data:{...R,id:v.id}}}),z.success(o("common.succeeded")),f.run(),y()})},v)},m=(p,v)=>{l.open({title:o("securityRule.delete.title"),content:o("securityRule.delete.description"),confirmButtonText:o("common.confirm"),confirmButtonProps:{color:"error"},cancelButtonText:o("common.cancel"),onConfirm(R){W(async()=>{await n.deleteBlockletSecurityRule({input:{did:s,id:v.id}}),z.success(o("common.succeeded")),f.run(),R()})}})},a={sort:!1,download:!1,filter:!1,print:!1,search:!1,viewColumns:!1,expandableRowsOnClick:!0,searchDebounceTime:600,onRowClick(p,{dataIndex:v},R){if(u.current?.contains(R.target)){const y=x[v];d.current.open(void 0,y)}},setRowProps:(p,v)=>x[v]._disabled?{title:o("securityRule.useless"),style:{backgroundColor:i.palette.action.disabledBackground,cursor:"default"}}:{}},b=[e.jsx(Z,{size:"small",variant:"outlined",onClick:()=>{f.run()},sx:{mr:1},children:o("common.refresh")},"refresh"),e.jsx(Z,{size:"small",variant:"contained",onClick:S,children:o("common.add")})],E=[{label:o("securityRule.form.pathPattern"),name:"pathPattern",options:{customBodyRenderLite(p){const v=x[p];return e.jsx(P,{sx:{whiteSpace:"nowrap"},children:v.id===T.SECURITY_RULE_DEFAULT_ID?"Default":Je(H(v.componentDid),v.pathPattern)})}}},{label:o("responseHeaderPolicy.title"),name:"responseHeaderPolicy",options:{customBodyRenderLite(p){return x[p].responseHeaderPolicy?.name}}},{label:o("accessPolicy.title"),name:"accessPolicyId",options:{customBodyRenderLite(p){return x[p].accessPolicy?.name}}},{label:o("securityRule.form.remark"),name:"remark"},{label:o("common.actions"),name:"",width:100,align:"center",verticalKeyAlign:"center",options:{customBodyRenderLite(p){const v=x[p],R=h(v);return e.jsx(He,{disableEdit:v._disabled,disableSwitch:v._disabled,enabled:v.enabled,showSwitch:!R,showDelete:!R,showUp:p>0&&!R,showDown:p<O.length-1&&!R,onClickSwitch:y=>{q(y,v)},onClickUp:y=>{A(y,v,p)},onClickDown:y=>{_(y,v,p)},onClickEdit:y=>{j(y,v)},onClickDelete:y=>{m(y,v)}})}}}].filter(Boolean);return e.jsxs(P,{sx:{display:"flex",flexDirection:"column",gap:2},ref:u,children:[e.jsx(ue,{verticalKeyWidth:100,locale:t,title:e.jsxs(P,{sx:{display:"flex",alignItems:"center",gap:1},children:[o("securityRule.title")," ",e.jsx(Fe,{variant:"body2",children:o("securityRule.sortByDescription")})]}),data:x,columns:E,customButtons:b,options:a,loading:f.loading}),e.jsx(Re,{ref:d}),r]})}const Te={width:24,height:24,body:'<path fill="currentColor" d="M5 21q-.825 0-1.413-.588T3 19V5q0-.825.588-1.413T5 3h14q.825 0 1.413.588T21 5v14q0 .825-.588 1.413T19 21H5Zm0-2h14V7H5v12Zm7-2q-2.05 0-3.663-1.113T6 13q.725-1.775 2.337-2.888T12 9q2.05 0 3.663 1.113T18 13q-.725 1.775-2.337 2.888T12 17Zm0-2.5q-.625 0-1.063-.438T10.5 13q0-.625.438-1.063T12 11.5q.625 0 1.063.438T13.5 13q0 .625-.438 1.063T12 14.5Zm0 1q1.05 0 1.775-.725T14.5 13q0-1.05-.725-1.775T12 10.5q-1.05 0-1.775.725T9.5 13q0 1.05.725 1.775T12 15.5Z"/>'};function ke({value:o,onChange:t,...c}){const n="roles",s="roles_reverse",{t:i,locale:d}=$(),u=[...we,{value:n,icon:Ne,title:{zh:"指定通行证可访问",en:"Accessible to selected passports"},description:{zh:"只有指定的通行证可以访问",en:"Only specified passports can access"}},{value:s,icon:Le,title:{zh:"指定通行证不可以访问",en:"Accessible to not selected passports"},description:{zh:"只有指定的通行证不可以访问",en:"Only specified passports can't access"}}];return e.jsx(D,{...c,label:i("blocklet.config.access.description"),select:!0,fullWidth:!0,value:o,onChange:t,sx:{"& .MuiInputBase-input":{width:"calc(100% - 46px)","& > .MuiBox-root:first-of-type":{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}},slotProps:{select:{renderValue:l=>{const r=u.find(f=>f.value===l);return r?e.jsxs(P,{children:[e.jsx(P,{component:r.icon,sx:{mr:1,fontSize:18,verticalAlign:"text-bottom",color:"text.secondary"}}),r.title[d]||r.title.en]}):null},IconComponent:l=>e.jsx(Qe,{...l,width:20,height:20})}},children:u.map(l=>e.jsxs(Ve,{value:l.value,sx:{display:"block","& .tip":{fontSize:"12px",color:`${({theme:r})=>r.palette.text.secondary}`}},children:[e.jsxs(P,{sx:{display:"flex",alignItems:"center"},children:[e.jsx(P,{component:l.icon,sx:{mr:1,fontSize:18,verticalAlign:"text-bottom",color:"text.secondary"}}),e.jsx(P,{children:l.title[d]||l.title.en})]}),e.jsx(P,{className:"tip",children:l.description[d]||l.description.en})]}))})}ke.propTypes={value:g.string,onChange:g.func};const Ae=o=>{const t={name:o.name,description:o.description},{roles:c=null,reverse:n}=o;return c===null?n===!1&&(t.whoCanAccess=T.WHO_CAN_ACCESS.ALL,t.roles=null):c.length===0&&n===!0?(t.whoCanAccess=T.WHO_CAN_ACCESS.INVITED,t.roles=[]):ye(c,[T.WHO_CAN_ACCESS.OWNER])&&n===!1?(t.whoCanAccess=T.WHO_CAN_ACCESS.OWNER,t.roles=[T.WHO_CAN_ACCESS.OWNER]):ye(c,[T.WHO_CAN_ACCESS.OWNER,T.WHO_CAN_ACCESS.ADMIN])&&n===!1?(t.whoCanAccess=T.WHO_CAN_ACCESS.ADMIN,t.roles=[T.WHO_CAN_ACCESS.OWNER,T.WHO_CAN_ACCESS.ADMIN]):(t.whoCanAccess=n?"roles_reverse":"roles",t.roles=c),t},ro=o=>{const t={name:o.name,description:o.description},{roles:c=null,whoCanAccess:n}=o;return n==="roles"?(t.roles=c,t.reverse=!1):n==="roles_reverse"?(t.roles=c,t.reverse=!0):n===T.WHO_CAN_ACCESS.ALL?(t.roles=null,t.reverse=!1):n===T.WHO_CAN_ACCESS.INVITED?(t.roles=[],t.reverse=!0):n===T.WHO_CAN_ACCESS.OWNER?(t.roles=[T.WHO_CAN_ACCESS.OWNER],t.reverse=!1):n===T.WHO_CAN_ACCESS.ADMIN&&(t.roles=[T.WHO_CAN_ACCESS.OWNER,T.WHO_CAN_ACCESS.ADMIN],t.reverse=!1),t},no=o=>o instanceof Object?{origin:o.origin?{override:o.origin?.override??!0,value:o.origin?.value?.join(`
|
|
2
|
+
`),smart:o.origin?.smart??!0}:void 0,methods:o.methods,allowedHeaders:o.allowedHeaders?{override:o.allowedHeaders?.override??!0,value:o.allowedHeaders?.value?.join(`
|
|
3
|
+
`)}:void 0,exposedHeaders:o.exposedHeaders?{override:o.exposedHeaders?.override??!0,value:o.exposedHeaders?.value?.join(`
|
|
4
|
+
`)}:void 0,maxAge:o.maxAge,optionsSuccessStatus:o.optionsSuccessStatus,preflightContinue:o.preflightContinue,credentials:o.credentials}:void 0,lo=o=>o instanceof Object?{origin:{override:o.origin?.override,value:o.origin?.value?.split(`
|
|
5
|
+
`).filter(c=>c),smart:o.origin?.smart},methods:o.methods,allowedHeaders:{override:o.allowedHeaders?.override,value:o.allowedHeaders?.value?.split(`
|
|
6
|
+
`).filter(c=>c)},exposedHeaders:{override:o.exposedHeaders?.override,value:o.exposedHeaders?.value?.split(`
|
|
7
|
+
`).filter(c=>c)},maxAge:o.maxAge,optionsSuccessStatus:o.optionsSuccessStatus,preflightContinue:o.preflightContinue,credentials:o.credentials}:void 0,io=o=>o instanceof Object?{contentSecurityPolicy:o.contentSecurityPolicy,referrerPolicy:o.referrerPolicy,xFrameOptions:o.xFrameOptions,xPoweredBy:o.xPoweredBy,xXssProtection:o.xXssProtection}:void 0,co=o=>o instanceof Object?{contentSecurityPolicy:o.contentSecurityPolicy,referrerPolicy:o.referrerPolicy,xFrameOptions:o.xFrameOptions,xPoweredBy:o.xPoweredBy,xXssProtection:o.xXssProtection}:void 0,ao=o=>{const t=je(o);if(o.securityHeader)try{t.securityHeader=JSON.parse(o.securityHeader)}catch{t.securityHeader=null}if(o.cors)try{t.cors=JSON.parse(o.cors)}catch{t.cors=null}return t};function Ie({ref:o=null}){const{t}=k.useContext(ee),{roles:c}=Se(),s=te()?.transitions?.duration?.leavingScreen||300,i=oe({mode:"add",show:!1,callback:U,get dialogTitle(){return this.mode==="edit"?t("accessPolicy.edit"):this.mode==="view"?t("accessPolicy.view"):t("accessPolicy.add")}}),{handleSubmit:d,control:u,watch:l,setValue:r,reset:f,formState:{errors:h}}=xe({mode:"onChange",defaultValues:{name:"",description:"",roles:null,whoCanAccess:"all"}}),H=w(()=>{f(),i.mode="add"}),x=w(()=>{i.show=!1,setTimeout(()=>{H()},s)}),O=w((a=U,b=null)=>{if(i.callback=a,i.show=!0,b){b.id?i.mode="edit":i.mode="view";const E=Ae(b);r("name",E.name),r("description",E.description),r("roles",E.roles),r("whoCanAccess",E.whoCanAccess)}});k.useImperativeHandle(o,()=>({open:O,close:x}),[O,x]);const q=w(a=>{i.callback(ro(a),x)}),A=w(a=>a?.trim()?!0:t("common.requiredErrorText",{name:t("accessPolicy.form.name")})),_=l("whoCanAccess"),S=i.mode==="view",j=w(a=>["roles","roles_reverse"].includes(_)&&(!a||a?.length===0)?t("common.requiredErrorText",{name:t("accessPolicy.form.roles")}):!0),m=w(a=>a?.trim()?!0:t("common.requiredErrorText",{name:t("accessPolicy.form.accessType")}));return e.jsx(ae,{open:i.show,title:i.dialogTitle,onClose:x,PaperProps:{style:{minHeight:"unset"}},actions:e.jsx(de,{color:"primary",autoFocus:!0,variant:"contained",onClick:d(q),children:t("common.confirm")}),children:e.jsxs("form",{noValidate:!0,autoComplete:"off",children:[e.jsx(F,{name:"name",control:u,rules:{validate:A},render:({field:a})=>e.jsx(D,{fullWidth:!0,required:!0,margin:"dense",size:"small",disabled:S,placeholder:t("accessPolicy.form.namePlaceholder"),label:t("accessPolicy.form.name"),error:!!h?.name?.message,helperText:h?.name?.message||" ",...a})}),e.jsx(F,{name:"whoCanAccess",control:u,rules:{validate:m},render:({field:a})=>e.jsx(ke,{required:!0,size:"small",margin:"dense",disabled:S,error:!!h?.whoCanAccess?.message,helperText:h?.whoCanAccess?.message||" ",...a})}),["roles","roles_reverse"].includes(_)?e.jsx(F,{name:"roles",rules:{validate:j},control:u,render:({field:a})=>e.jsxs(L,{variant:"standard",error:!!h?.roles?.message,children:[e.jsx(J,{sx:{display:"flex",flexDirection:"row",mt:-3},children:c.map(b=>e.jsx(V,{control:e.jsx(G,{disabled:S,size:"small",checked:a.value?.includes(b.name),sx:{p:.75},onChange:(E,p)=>{const v=a.value||[];p?a.onChange([...v,b.name]):a.onChange(v.filter(R=>R!==b.name))}}),label:b.title},b.name))}),e.jsx(Me,{sx:{transform:"translateY(-8px)"},children:h?.roles?.message||" "})]})}):null,e.jsx(F,{name:"description",control:u,render:({field:a})=>e.jsx(D,{fullWidth:!0,multiline:!0,disabled:S,minRows:3,maxRows:7,margin:"dense",size:"small",placeholder:t("accessPolicy.form.descriptionPlaceholder"),label:t("accessPolicy.form.description"),helperText:h?.message,...a})})]})})}Ie.propTypes={ref:g.any};function uo(){const{t:o,locale:t}=$(),{blocklet:c}=se(),{api:n}=re(),{roles:s}=Se(),i=c?.meta?.did,d=k.useRef(null),u=k.useRef(null),{confirmApi:l,confirmHolder:r}=fe(),f=()=>{},h=K(async()=>{const{accessPolicies:m}=await n.getBlockletAccessPolicies({input:{did:i}});return Q(m,a=>a.isProtected?1:0)}),H=h.data||[],x=w(()=>{u.current.open((m,a)=>{W(async()=>{await n.addBlockletAccessPolicy({input:{did:i,data:m}}),z.success(o("common.succeeded")),h.run(),a()})})}),O=w(m=>{u.current.open((a,b)=>{W(async()=>{await n.updateBlockletAccessPolicy({input:{did:i,data:{...a,id:m.id}}}),z.success(o("common.succeeded")),h.run(),b()})},m)}),q=w(m=>{u.current.open((a,b)=>{b()},X(m,["id"]))}),A=w(m=>{l.open({title:o("accessPolicy.delete.title"),content:o("accessPolicy.delete.description"),confirmButtonText:o("common.confirm"),confirmButtonProps:{color:"error"},cancelButtonText:o("common.cancel"),onConfirm(a){W(async()=>{await n.deleteBlockletAccessPolicy({input:{did:i,id:m.id}}),z.success(o("common.succeeded")),h.run(),a()})}})}),_={sort:!1,download:!1,filter:!1,print:!1,search:!1,viewColumns:!1,expandableRowsOnClick:!0,searchDebounceTime:600,onRowClick(m,{dataIndex:a},b){if(d.current?.contains(b.target)){const E=H[a];q(E)}}},S=[e.jsx(Z,{size:"small",variant:"outlined",onClick:()=>{h.run()},sx:{mr:1},children:o("common.refresh")},"refresh"),e.jsx(Z,{size:"small",variant:"contained",onClick:x,children:o("common.add")})],j=[{label:o("accessPolicy.form.name"),name:"name",options:{customBodyRenderLite(m){const a=H[m],b=a.isProtected?e.jsx(I,{title:"Built-in policy, can't edit",children:e.jsx(P,{component:B,icon:Pe,sx:{fontSize:16}})}):null;return e.jsxs(P,{sx:{display:"flex",alignItems:"center",gap:.5},children:[b," ",a.name]})}}},{label:o("accessPolicy.form.roles"),name:"roles",options:{customBodyRenderLite(m){const a=H[m],b=Ae(a);if([T.WHO_CAN_ACCESS.ALL,T.WHO_CAN_ACCESS.INVITED].includes(b.whoCanAccess)){const p=we.find(v=>v.value===b.whoCanAccess);return p.title?.[t]||p.title?.en}const E=s.filter(p=>a.reverse?!b.roles?.includes(p.name):b.roles?.includes(p.name));return e.jsx(P,{sx:{display:"flex",gap:1,flexWrap:"wrap"},children:E.map(p=>e.jsx(I,{title:p.description,children:e.jsx(Ue,{size:"small",label:p.title},p.name)}))})}}},{label:o("accessPolicy.form.description"),name:"description"},{label:o("common.actions"),name:"",width:100,align:"center",verticalKeyAlign:"center",options:{customBodyRenderLite(m){const a=H[m];return e.jsxs(P,{sx:{display:"flex",alignItems:"center",gap:0},onClick:b=>b.stopPropagation(),children:[a.isProtected?e.jsx(I,{title:o("common.view"),children:e.jsx(N,{size:"small",onClick:()=>{q(a,m)},children:e.jsx(B,{icon:Te,fontSize:18})})}):null,a.isProtected?null:e.jsx(I,{title:o("common.edit"),children:e.jsx(N,{size:"small",onClick:()=>{O(a,m)},color:"success",children:e.jsx(B,{icon:pe,fontSize:18})})}),a.isProtected?null:e.jsx(I,{title:o("common.delete"),children:e.jsx(N,{size:"small",onClick:()=>{A(a,m)},color:"error",children:e.jsx(B,{icon:he,fontSize:18})})})]})}}}].filter(Boolean);return e.jsxs(P,{sx:{display:"flex",flexDirection:"column",gap:2},ref:d,children:[e.jsx(ue,{verticalKeyWidth:100,locale:t,title:o("accessPolicy.title"),data:H,columns:j,customButtons:S,options:_,loading:h.loading,onChange:f}),e.jsx(Ie,{ref:u}),r]})}const mo={width:24,height:24,body:'<path fill="currentColor" d="m12 15.375l-6-6l1.4-1.4l4.6 4.6l4.6-4.6l1.4 1.4l-6 6Z"/>'};function ie({title:o,actions:t,children:c=null,defaultValue:n=!0,value:s,onChange:i,showExpand:d=!0}){const u=!M(s),l=oe({open:n}),r=me(()=>u?s:l.open,[s,u,l.open]),f=w(()=>{u?i(!r):l.open=!l.open});return e.jsxs($e,{variant:"outlined",children:[e.jsxs(P,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",cursor:"pointer",px:2,py:1,backgroundColor:"grey.50"},onClick:f,children:[e.jsx(P,{sx:{fontWeight:"bold"},children:o}),e.jsxs(P,{sx:{display:"flex",alignItems:"center"},children:[t,d?e.jsx(P,{component:B,icon:mo,sx:{transform:r?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s ease",fontSize:"2rem"}}):null]})]}),e.jsx(Xe,{in:r,children:e.jsx(Ze,{children:c})})]})}ie.propTypes={title:g.string.isRequired,defaultValue:g.bool,value:g.bool,actions:g.node,children:g.node,onChange:g.func,showExpand:g.bool};const ce={width:24,height:24,body:'<path fill="currentColor" d="M11.95 18q.525 0 .888-.363t.362-.887q0-.525-.362-.888t-.888-.362q-.525 0-.887.363t-.363.887q0 .525.363.888t.887.362Zm.05 4q-2.075 0-3.9-.788t-3.175-2.137q-1.35-1.35-2.137-3.175T2 12q0-2.075.788-3.9t2.137-3.175q1.35-1.35 3.175-2.137T12 2q2.075 0 3.9.788t3.175 2.137q1.35 1.35 2.138 3.175T22 12q0 2.075-.788 3.9t-2.137 3.175q-1.35 1.35-3.175 2.138T12 22Zm0-2q3.35 0 5.675-2.325T20 12q0-3.35-2.325-5.675T12 4Q8.65 4 6.325 6.325T4 12q0 3.35 2.325 5.675T12 20Zm0-8Zm.1-4.3q.625 0 1.088.4t.462 1q0 .55-.337.975t-.763.8q-.575.5-1.012 1.1t-.438 1.35q0 .35.263.588t.612.237q.375 0 .638-.25t.337-.625q.1-.525.45-.938t.75-.787q.575-.55.988-1.2t.412-1.45q0-1.275-1.038-2.087T12.1 6q-.95 0-1.812.4T8.975 7.625q-.175.3-.113.638t.338.512q.35.2.725.125t.625-.425q.275-.375.688-.575t.862-.2Z"/>'};function Oe({config:o={},onChange:t=()=>{},disabled:c=!1}){const n=["GET","HEAD","POST","PUT","DELETE","OPTIONS","PATCH"],s={origin:{override:!1,value:"*",smart:!0},methods:{override:!1,value:[...n]},allowedHeaders:{override:!1,value:"*"},exposedHeaders:{override:!1,value:"*"},maxAge:{override:!1,value:void 0},optionsSuccessStatus:{override:!1,value:204},preflightContinue:{override:!1,value:!1},credentials:{override:!1,value:!1},...be(o,M)},{t:i}=$(),d=(r,{override:f,value:h,smart:H})=>{const x={...s?.[r]};!M(H)&&r==="origin"&&(x.smart=H),M(f)||(x.override=f),M(h)||(x.value=h),t({...s,[r]:x})},u=[{title:i("responseHeaderPolicy.form.cors.origin"),override:s.origin.override,smart:s.origin.smart,name:"origin",required:!0,value:s.origin.value,content:e.jsx(L,{fullWidth:!0,sx:{mt:.75,"& .MuiFormHelperText-root":{mx:0}},children:e.jsx(D,{multiline:!0,minRows:4,maxRows:10,disabled:c,variant:"outlined",size:"small",placeholder:i("responseHeaderPolicy.form.cors.originPlaceholder"),helperText:i("responseHeaderPolicy.form.cors.originHelperText"),value:s.origin.value,onChange:r=>{d("origin",{value:r.target.value})}})})},{title:i("responseHeaderPolicy.form.cors.methods"),name:"methods",override:s.methods.override,required:!0,value:s.methods.value,content:e.jsx(J,{sx:{flexDirection:"row"},children:n.map(r=>e.jsx(V,{control:e.jsx(G,{size:"small",disabled:c,checked:s.methods.value.includes(r),onChange:(f,h)=>{d("methods",{value:h?[...s.methods.value,r]:s.methods.value.filter(H=>H!==r)})}}),label:r},r))})},{title:i("responseHeaderPolicy.form.cors.allowedHeaders"),override:s.allowedHeaders.override,name:"allowedHeaders",value:s.allowedHeaders.value,content:e.jsx(L,{fullWidth:!0,sx:{mt:.75,"& .MuiFormHelperText-root":{mx:0}},children:e.jsx(D,{multiline:!0,minRows:3,maxRows:7,disabled:c,variant:"outlined",size:"small",placeholder:i("responseHeaderPolicy.form.cors.allowedHeadersPlaceholder"),helperText:i("responseHeaderPolicy.form.cors.allowedHeadersHelperText"),value:s.allowedHeaders.value,onChange:r=>{d("allowedHeaders",{value:r.target.value})}})})},{title:i("responseHeaderPolicy.form.cors.exposedHeaders"),override:s.exposedHeaders.override,name:"exposedHeaders",value:s.exposedHeaders.value,content:e.jsx(L,{fullWidth:!0,sx:{mt:.75,"& .MuiFormHelperText-root":{mx:0}},children:e.jsx(D,{multiline:!0,minRows:3,maxRows:7,disabled:c,variant:"outlined",size:"small",placeholder:i("responseHeaderPolicy.form.cors.exposedHeadersPlaceholder"),helperText:i("responseHeaderPolicy.form.cors.exposedHeadersHelperText"),value:s.exposedHeaders.value,onChange:r=>{d("exposedHeaders",{value:r.target.value})}})})},{title:i("responseHeaderPolicy.form.cors.maxAge"),override:s.maxAge.override,name:"maxAge",value:s.maxAge.value,content:e.jsx(L,{fullWidth:!0,sx:{mt:.75,"& .MuiFormHelperText-root":{mx:0}},children:e.jsx(D,{type:"number",variant:"outlined",size:"small",disabled:c,value:s.maxAge.value,onChange:r=>{d("maxAge",{value:r.target.value})},helperText:i("responseHeaderPolicy.form.cors.maxAgeHelperText")})})},{title:i("responseHeaderPolicy.form.cors.optionsSuccessStatus"),override:s.optionsSuccessStatus.override,name:"optionsSuccessStatus",value:s.optionsSuccessStatus.value,content:e.jsx(L,{fullWidth:!0,sx:{mt:.75,"& .MuiFormHelperText-root":{mx:0}},children:e.jsx(D,{type:"number",variant:"outlined",size:"small",disabled:c,value:s.optionsSuccessStatus.value,onChange:r=>{d("optionsSuccessStatus",{value:r.target.value})}})})},{title:i("responseHeaderPolicy.form.cors.preflightContinue"),override:s.preflightContinue.override,name:"preflightContinue",value:s.preflightContinue.value,control:e.jsx(Y,{size:"small",disabled:c,checked:s.preflightContinue.value,onChange:(r,f)=>{d("preflightContinue",{value:f})}})},{title:i("responseHeaderPolicy.form.cors.credentials"),override:s.credentials.override,name:"credentials",value:s.credentials.value,control:e.jsx(Y,{size:"small",disabled:c,checked:s.credentials.value,onChange:(r,f)=>{d("credentials",{value:f})}})}];ge(()=>{t(s)});const l={".PrivateSwitchBase-input+svg":{fontSize:"1rem"},".MuiCheckbox-sizeSmall":{p:.75},".MuiFormControlLabel-label":{fontSize:"0.8rem"}};return e.jsx(J,{children:u.map((r,f)=>e.jsxs(k.Fragment,{children:[e.jsxs(P,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e.jsx(V,{sx:{mt:f===0?0:1},control:r.control||e.jsx(P,{sx:{pl:1.35}}),label:r.title,required:r.required},`${r.name}_form`),e.jsxs(P,{children:[r.name==="origin"?e.jsx(V,{control:e.jsx(G,{size:"small",checked:r.smart,color:"primary",disabled:c,onChange:()=>{d(r.name,{smart:!r.smart})}}),label:e.jsxs(e.Fragment,{children:[i("responseHeaderPolicy.form.cors.smartMode"),e.jsx(I,{title:i("responseHeaderPolicy.form.cors.smartModeHelperText"),children:e.jsx(P,{component:B,icon:ce,sx:{cursor:"pointer",color:"grey",ml:.5,fontSize:"1.1em"}})})]}),sx:l},`${r.name}_smart`):null,e.jsx(V,{control:e.jsx(G,{size:"small",checked:r.override,color:"warning",disabled:c,onChange:()=>{d(r.name,{override:!r.override})}}),label:e.jsxs(e.Fragment,{children:[i("responseHeaderPolicy.form.originOverride"),e.jsx(I,{title:i("responseHeaderPolicy.form.originOverrideHelperText"),children:e.jsx(P,{component:B,icon:ce,sx:{cursor:"pointer",color:"grey",ml:.5,fontSize:"1.1em"}})})]}),sx:{...l,mr:0}},`${r.name}_override`)]})]}),r.content?e.jsx(P,{sx:{ml:3.5},children:r.content},`${r.name}_content`):null]},r.name))})}Oe.propTypes={config:g.object,onChange:g.func,disabled:g.bool};function Be({value:o,onChange:t=()=>{},disabled:c=!1}){const n="sameorigin",s=[{label:"DENY",value:"deny"},{label:"SAMEORIGIN (default)",value:"sameorigin"}],i=d=>{t({action:d.target.value})};return k.useEffect(()=>{o===!0&&t({action:n})},[o]),e.jsx(P,{children:e.jsx(L,{children:e.jsx(ve,{row:!0,children:s.map(d=>e.jsx(V,{value:d.value,control:e.jsx(Ce,{size:"small",disabled:c,checked:d.value===o?.action,onChange:i,sx:{p:.75}}),label:d.label},d.value))})})})}Be.propTypes={value:g.oneOfType([g.string,g.bool]).isRequired,onChange:g.func,disabled:g.bool};function qe({value:o,onChange:t=()=>{},disabled:c=!1}){const n="strict-origin-when-cross-origin",s=[{label:"no-referrer",value:"no-referrer"},{label:"no-referrer-when-downgrade",value:"no-referrer-when-downgrade"},{label:"origin",value:"origin"},{label:"origin-when-cross-origin",value:"origin-when-cross-origin"},{label:"same-origin",value:"same-origin"},{label:"strict-origin",value:"strict-origin"},{label:"strict-origin-when-cross-origin (default)",value:"strict-origin-when-cross-origin"},{label:"unsafe-url",value:"unsafe-url"}],i=d=>{t({policy:d.target.value})};return k.useEffect(()=>{o===!0&&t({policy:n})},[o]),e.jsx(P,{children:e.jsx(L,{children:e.jsx(ve,{children:s.map(d=>e.jsx(V,{value:d.value,control:e.jsx(Ce,{size:"small",disabled:c,checked:d.value===o?.policy,onChange:i,sx:{p:.75}}),label:d.label},d.value))})})})}qe.propTypes={value:g.oneOfType([g.string,g.bool]).isRequired,onChange:g.func,disabled:g.func};function ze({value:o,onChange:t=()=>{},disabled:c=!1}){const n={"default-src":["'self'"],"base-uri":["'self'"],"font-src":["'self'","https:","data:"],"form-action":["'self'"],"frame-ancestors":["'self'"],"img-src":["'self'","data:"],"object-src":["'none'"],"script-src":["'self'"],"script-src-attr":["'none'"],"style-src":["'self'","https:","'unsafe-inline'"],"upgrade-insecure-requests":[]};function s(r){return Object.keys(r).map(f=>[f,r[f].filter(Boolean).join(" ")].filter(Boolean).join(" ")).filter(Boolean).join(`
|
|
8
|
+
`)}const i=s(o?.directives||n),[d,u]=k.useState(i),l=r=>{u(r.target.value);const f=r.target.value.split(`
|
|
9
|
+
`).reduce((h,H)=>{const[x,...O]=H.split(" ");return h[x]=O.filter(q=>q!==""),h},{});t({useDefaults:!1,directives:f})};return k.useEffect(()=>{o===!0&&(t({useDefaults:!1,directives:n}),u(s(n)))},[o]),e.jsx(P,{sx:{mt:1},children:e.jsx(L,{fullWidth:!0,children:e.jsx(D,{fullWidth:!0,multiline:!0,disabled:c,rows:12,size:"small",value:d,onChange:l})})})}ze.propTypes={value:g.oneOfType([g.object,g.bool]).isRequired,onChange:g.func,disabled:g.bool};function Ee({config:o={},onChange:t=()=>{},disabled:c=!1}){const n={contentSecurityPolicy:{override:!1,value:!1},referrerPolicy:{override:!1,value:!1},xFrameOptions:{override:!1,value:!1},xPoweredBy:{override:!1,value:!0},xXssProtection:{override:!1,value:!1},...be(o,M)},{t:s}=$(),i=(l,{override:r,value:f})=>{const h={...n?.[l]};M(r)||(h.override=r),M(f)||(h.value=f),t({...n,[l]:h})},d=[{title:"Content-Security-Policy",name:"contentSecurityPolicy",override:n.contentSecurityPolicy.override,value:!!n.contentSecurityPolicy.value,content:e.jsx(ze,{disabled:c,value:n.contentSecurityPolicy.value,onChange:l=>{i("contentSecurityPolicy",{value:l})}}),onChange(l){i("contentSecurityPolicy",{value:l})}},{title:"Referrer-Policy",name:"referrerPolicy",override:n.referrerPolicy.override,value:!!n.referrerPolicy.value,content:e.jsx(qe,{disabled:c,value:n.referrerPolicy.value,onChange:l=>{i("referrerPolicy",{value:l})}}),onChange(l){i("referrerPolicy",{value:l})}},{title:"X-Frame-Options",name:"xFrameOptions",override:n.xFrameOptions.override,value:!!n.xFrameOptions.value,content:e.jsx(Be,{disabled:c,value:n.xFrameOptions.value,onChange:l=>{i("xFrameOptions",{value:l})}}),onChange(l){i("xFrameOptions",{value:l})}},{title:"Disable X-Powered-By",name:"xPoweredBy",override:n.xPoweredBy.override,value:n.xPoweredBy.value,content:null,onChange(l){i("xPoweredBy",{value:l})}},{title:"X-XSS-Protection",name:"xXssProtection",override:n.xXssProtection.override,value:n.xXssProtection.value,content:null,onChange(l){i("xXssProtection",{value:l})}}];ge(()=>{t(n)});const u={".PrivateSwitchBase-input+svg":{fontSize:"1rem"},".MuiCheckbox-sizeSmall":{p:.75},".MuiFormControlLabel-label":{fontSize:"0.8rem"}};return e.jsx(J,{children:d.map((l,r)=>e.jsxs(k.Fragment,{children:[e.jsxs(P,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e.jsx(V,{sx:{mt:r===0?0:1},control:e.jsx(Y,{size:"small",disabled:c,checked:l.value,onChange:()=>{l.onChange(!l.value)}},`${l.name}_switch`),label:l.title},`${l.name}_form`),l.value?e.jsx(V,{control:e.jsx(G,{size:"small",checked:l.override,color:"warning",disabled:c,onChange:()=>{i(l.name,{override:!l.override})}}),label:e.jsxs(e.Fragment,{children:[s("responseHeaderPolicy.form.originOverride"),e.jsx(I,{title:s("responseHeaderPolicy.form.originOverrideHelperText"),children:e.jsx(P,{component:B,icon:ce,sx:{cursor:"pointer",color:"grey",ml:.5,fontSize:"1.1em"}})})]}),sx:{...u,mr:0}}):null]}),l.value&&l.content?e.jsx(P,{sx:{ml:3.7},children:l.content},`${l.name}_content`):null]},l.name))})}Ee.propTypes={config:g.object,onChange:g.func,disabled:g.bool};function De({ref:o=null}){const{t}=k.useContext(ee),n=te()?.transitions?.duration?.leavingScreen||300,s=oe({mode:"add",show:!1,callback:U,get dialogTitle(){return this.mode==="edit"?t("responseHeaderPolicy.edit"):this.mode==="view"?t("responseHeaderPolicy.view"):t("responseHeaderPolicy.add")},cors:null,securityHeader:null,enableCORS:!1}),{handleSubmit:i,control:d,setValue:u,reset:l,formState:{errors:r}}=xe({mode:"onChange",defaultValues:{name:"",description:""}}),f=w(()=>{l(),s.mode="add",s.enableCORS=!1,s.cors=null,s.securityHeader=null}),h=w(()=>{s.show=!1,setTimeout(()=>{f()},n)}),H=w((S=U,j=null)=>{s.callback=S,s.show=!0,j&&(j.id?s.mode="edit":s.mode="view",u("name",j.name),u("description",j.description),s.cors=no(j.cors),s.securityHeader=io(j.securityHeader),s.enableCORS=!!j.cors)});k.useImperativeHandle(o,()=>({open:H,close:h}),[H,h]);const x=s.mode==="view",O=w(S=>{const j=lo(s.cors),m=co(s.securityHeader),a=je({...S,cors:s.enableCORS?JSON.stringify(j):null,securityHeader:JSON.stringify(m)});s.callback(a,h)}),q=w(S=>S?.trim()?!0:t("common.requiredErrorText",{name:t("accessPolicy.form.name")})),A=S=>{s.securityHeader=S},_=S=>{s.cors=S};return e.jsx(ae,{open:s.show,title:s.dialogTitle,onClose:h,PaperProps:{style:{minHeight:"unset",width:900,maxWidth:"100%"}},actions:e.jsx(de,{color:"primary",autoFocus:!0,variant:"contained",onClick:i(O),children:t("common.confirm")}),children:e.jsxs("form",{noValidate:!0,autoComplete:"off",children:[e.jsx(F,{name:"name",control:d,rules:{validate:q},render:({field:S})=>e.jsx(D,{fullWidth:!0,required:!0,size:"small",margin:"dense",disabled:x,placeholder:t("accessPolicy.form.namePlaceholder"),label:t("accessPolicy.form.name"),error:!!r?.name?.message,helperText:r?.name?.message||" ",...S})}),e.jsx(F,{name:"description",control:d,render:({field:S})=>e.jsx(D,{fullWidth:!0,multiline:!0,size:"small",margin:"dense",disabled:x,minRows:3,maxRows:7,placeholder:"Description",label:"Description",helperText:r?.description?.message||" ",...S})}),e.jsx(ie,{title:"Cross-origin resource sharing (CORS)",value:s.enableCORS,onChange:S=>{x||(s.enableCORS=S)},showExpand:!1,actions:e.jsx(Y,{size:"small",disabled:x,checked:s.enableCORS}),children:e.jsx(Oe,{config:s.cors,onChange:_,disabled:x})}),e.jsx("br",{}),e.jsx(ie,{title:"Security Headers",children:e.jsx(Ee,{config:s.securityHeader,onChange:A,disabled:x})})]})})}De.propTypes={ref:g.any};function fo(){const{t:o,locale:t}=$(),{blocklet:c}=se(),{api:n}=re(),s=c?.meta?.did,i=k.useRef(null),d=k.useRef(null),{confirmApi:u,confirmHolder:l}=fe(),r=()=>{},f=K(async()=>{const{responseHeaderPolicies:j}=await n.getBlockletResponseHeaderPolicies({input:{did:s}});return Q(j.map(m=>ao(m)),m=>m.isProtected?1:0)}),h=f.data||[],H=w(()=>{i.current.open((j,m)=>{W(async()=>{await n.addBlockletResponseHeaderPolicy({input:{did:s,data:j}}),z.success(o("common.succeeded")),f.run(),m()})})}),x=w(j=>{i.current.open((m,a)=>{a()},X(j,["id"]))}),O=w(j=>{i.current.open((m,a)=>{W(async()=>{await n.updateBlockletResponseHeaderPolicy({input:{did:s,data:{...m,id:j.id}}}),z.success(o("common.succeeded")),f.run(),a()})},j)}),q=w(j=>{u.open({title:o("responseHeaderPolicy.delete.title"),content:o("responseHeaderPolicy.delete.description"),confirmButtonText:o("common.confirm"),confirmButtonProps:{color:"error"},cancelButtonText:o("common.cancel"),onConfirm(m){W(async()=>{await n.deleteBlockletResponseHeaderPolicy({input:{did:s,id:j.id}}),z.success(o("common.succeeded")),f.run(),m()})}})}),A={sort:!1,download:!1,filter:!1,print:!1,search:!1,viewColumns:!1,expandableRowsOnClick:!0,searchDebounceTime:600,onRowClick(j,{dataIndex:m},a){if(d.current?.contains(a.target)){const b=h[m];x(b)}}},_=[e.jsx(Z,{size:"small",variant:"outlined",onClick:()=>{f.run()},sx:{mr:1},children:o("common.refresh")},"refresh"),e.jsx(Z,{size:"small",variant:"contained",onClick:H,children:o("common.add")},"add")],S=[{label:o("common.name"),name:"name",options:{customBodyRenderLite(j){const m=h[j],a=m.isProtected?e.jsx(I,{title:"Built-in policy, can't edit",children:e.jsx(P,{component:B,icon:Pe,sx:{fontSize:16}})}):null;return e.jsxs(P,{sx:{display:"flex",alignItems:"center",gap:.5},children:[a," ",m.name]})}}},{label:o("common.description"),name:"description"},{label:o("common.actions"),name:"",width:100,align:"center",verticalKeyAlign:"center",options:{customBodyRenderLite(j){const m=h[j];return e.jsxs(P,{sx:{display:"flex",alignItems:"center",gap:0},onClick:a=>a.stopPropagation(),children:[m.isProtected?e.jsx(I,{title:o("common.view"),children:e.jsx(N,{size:"small",onClick:()=>{x(m,j)},children:e.jsx(B,{icon:Te,fontSize:18})})}):null,m.isProtected?null:e.jsx(I,{title:o("common.edit"),children:e.jsx(N,{size:"small",onClick:()=>{O(m,j)},color:"success",children:e.jsx(B,{icon:pe,fontSize:18})})}),m.isProtected?null:e.jsx(I,{title:o("common.delete"),children:e.jsx(N,{size:"small",onClick:()=>{q(m,j)},color:"error",children:e.jsx(B,{icon:he,fontSize:18})})})]})}}}].filter(Boolean);return e.jsxs(P,{sx:{display:"flex",flexDirection:"column",gap:2},ref:d,children:[e.jsx(ue,{verticalKeyWidth:100,locale:t,title:o("responseHeaderPolicy.title"),data:h,columns:S,customButtons:_,options:A,loading:f.loading,onChange:r}),e.jsx(De,{ref:i}),l]})}function Bo(){const{t:o}=k.useContext(ee),t=eo({key:"lg"}),c=[{label:e.jsx(P,{sx:{textAlign:"center",width:"100%"},children:o("securityRule.title")}),value:"security"},{label:e.jsx(P,{sx:{textAlign:"center",width:"100%"},children:o("accessPolicy.title")}),value:"accessPolicy"},{label:e.jsx(P,{sx:{textAlign:"center",width:"100%"},children:o("responseHeaderPolicy.title")}),value:"responseHeaderPolicy"}],[n,s]=k.useState(c[0].value),i=me(()=>({security:e.jsx(so,{}),accessPolicy:e.jsx(uo,{}),responseHeaderPolicy:e.jsx(fo,{})}),[o]);return e.jsx(po,{children:e.jsxs(Ge,{direction:{md:"column",lg:"row"},sx:{gap:2},children:[e.jsx(P,{sx:{minWidth:"240px",flexShrink:0},children:e.jsx(_e,{tabs:c,current:n,orientation:t?"horizontal":"vertical",onChange:s,sx:{borderRight:t?0:1,height:"100%",borderColor:"divider"}})}),e.jsx(P,{sx:{flexGrow:1,minWidth:0},children:e.jsx(P,{children:i[n]})})]})})}const po=Ke.div`
|
|
10
|
+
.MuiTab-root {
|
|
11
|
+
text-align: left;
|
|
12
|
+
align-items: flex-start;
|
|
13
|
+
font-weight: normal;
|
|
14
|
+
|
|
15
|
+
div {
|
|
16
|
+
text-align: left;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
.Mui-selected {
|
|
20
|
+
font-weight: bold;
|
|
21
|
+
}
|
|
22
|
+
`;export{Bo as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as o}from"./vendor-react-CTtPmzVP.js";import{a3 as t}from"./index-
|
|
1
|
+
import{r as o}from"./vendor-react-CTtPmzVP.js";import{a3 as t}from"./index-CGOBEhzW.js";function s(){return o.useContext(t)}export{s as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{D as h,j as t,bq as u,aT as f,at as g,ak as j}from"./vendor-mui-core-DnR6WYuU.js";import{c as y,N as S,q as b,
|
|
1
|
+
import{D as h,j as t,bq as u,aT as f,at as g,ak as j}from"./vendor-mui-core-DnR6WYuU.js";import{c as y,N as S,q as b,l as E}from"./index-CGOBEhzW.js";import{C as N}from"./config-space-DVE2CBUC.js";import{H as P}from"./addon-DSFDYYiP.js";import{P as W,L as v}from"./vendor-arcblock-Dr30TSIK.js";import{u as L,W as k}from"./wizard-components-BRsabxoD.js";import"./vendor-react-CTtPmzVP.js";import"./vendor-ux-7TwTLXf8.js";import"./vendor-utils-CxWN1dT3.js";import"./vendor-hooks-qxhUUbW5.js";import"./lottie-web-4koyQiv_.js";import"./spaces-ypzuCaPe.js";import"./api-FQQlzPOP.js";import"./question-mark-circle.svg-CByEVDhb.js";import"./get-safe-url-D7ti-zln.js";import"./use-server-logo-Cv1kAPgB.js";import"./server-logo-notext.svg-xZ-i1SpD.js";import"./use-mobile-BINJTzMb.js";function Y(){const s=h(),a=`${y.WELLKNOWN_SERVICE_PATH_PREFIX}/setup`,{meta:e,blocklet:o,launcherSession:r,steps:i,stepIndex:l,totalSteps:p,logoUrl:n,logo:m,t:d,onNext:c,onPrevious:x}=L(a);return t.jsx(W,{steps:p,children:t.jsx(S,{children:t.jsxs(N,{children:[t.jsx(u,{styles:w}),t.jsx(C,{children:t.jsx(v,{locale:"zh",loading:!1,blockletMeta:{...e,title:b.getDisplayName({...o,meta:e})},navLogo:m,pcWidth:"80%",style:{height:"100%"},logoUrl:n,useOfSkeleton:!1,extraNav:null,headerEndAddons:t.jsx(P,{SessionContext:E,sessionManagerProps:{disableLogout:!0}}),theme:s,launchingText:d("setup.title"),children:t.jsx(k,{blocklet:o,stepIndex:l,steps:i,onNext:c,onPrevious:x,launcherSession:r})})})]})})})}const w=f`
|
|
2
2
|
html,
|
|
3
3
|
body,
|
|
4
4
|
#app,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e,y as S,x as I,bZ as O,M as c,ak as p,T as n,U as T,ca as W,F as z,W as s}from"./vendor-mui-core-DnR6WYuU.js";import{l as M}from"./arrow-down.svg-C4FUKwt4.js";import{K as B}from"./vendor-ux-7TwTLXf8.js";function C({fullWidth:m=!1,multiple:a=!1,required:o=!1,label:x="",placeholder:j="",options:t=[],helperText:b="",error:v=!1,margin:u="",size:f,slotProps:y={},...h}){const g=t.find(l=>l.value===h.value)?.title;return e.jsxs(S,{margin:u,fullWidth:m,error:v,children:[e.jsx(I,{size:f,children:`${x}${o?"*":""}`}),e.jsxs(O,{multiple:a,sx:{"& .MuiInputBase-input":{width:"calc(100% - 46px)","& > .MuiBox-root:first-of-type":{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}},input:e.jsx(W,{defaultValue:g,sx:{flex:1},required:o,label:x,inputProps:{margin:u},size:f}),renderValue:l=>{if(a)return e.jsx(p,{sx:{display:"flex",flexWrap:"wrap",gap:.5},children:l.map(i=>{const d=t.find(w=>w.value===i);return d&&d.title&&e.jsx(T,{size:"small",label:d.title},i)})});const r=t.find(i=>i.value===l);return r&&r.title&&e.jsxs(p,{children:[e.jsx(n,{component:"span",children:r.title}),e.jsx(n,{component:"span",variant:"body2",sx:{marginLeft:1,color:"text.secondary"},children:r.description})]})},IconComponent:l=>e.jsx(M,{...l,width:20,height:20}),...h,children:[e.jsx(c,{disabled:!0,children:e.jsx("em",{children:j})}),!o&&!a&&e.jsx(c,{value:"",children:"None"}),t.map(l=>l&&l.value&&e.jsx(c,{value:l.value,disabled:l.disabled||!1,children:e.jsxs(p,{sx:B({display:"flex",flexDirection:"column"},y?.optionItem?.sx),children:[e.jsx(n,{component:"span",children:l.title}),l.description&&e.jsx(n,{component:"span",variant:"body2",sx:{maxWidth:510,fontSize:12,whiteSpace:"normal",color:"text.secondary"},children:l.description})]})},l.value))]}),e.jsx(z,{children:b})]})}C.propTypes={error:s.bool,required:s.bool,multiple:s.bool,fullWidth:s.bool,label:s.string,placeholder:s.string,options:s.array,helperText:s.string,margin:s.string,size:s.string,textDirection:s.oneOf(["row","column"]),slotProps:s.object};export{C as S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{J as u,h as i}from"./index-
|
|
1
|
+
import{J as u,h as i}from"./index-CGOBEhzW.js";import{Q as l,C as s,J as f,F as m}from"./vendor-utils-CxWN1dT3.js";import{a as o}from"./api-FQQlzPOP.js";function P(t){const e=t.replace(/\/api\/space\/.+/,""),a=t.replace(/\/$/,"").split("/"),r=a.at(-4),n=a.at(-2);return s(e,"space",r,"apps",n,`explorer?key=/apps/${n}/.did-objects/${n}/`)}function U(t){const e=t.replace(/\/api\/space\/.+/,""),r=t.replace(/\/$/,"").split("/").at(-4);return s(e,"space",r)}function h(t){return t.replace(/\/$/,"").split("/").at(-4)}async function L(t){try{if(!i(t))return!1;const{headers:e}=await o.head(t,{timeout:5e3});return e["x-listable"]==="true"&&e["x-readable"]==="true"&&e["x-writeable"]==="true"}catch(e){return console.error(e),!1}}function _(t){return t?.find(e=>e.key===u.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_BACKUP_ENDPOINT)?.value||""}function y(t){return t?.replace(/\/api\/space\/.+/,"")}function E(t){const e=new URL(t);return s(e.origin,e.pathname)}async function A(t){try{if(!i(t))return!1;const e=E(t),a=s(e,"space/api/did/one-click-authorization/token"),{status:r,data:n}=await o.get(a,{timeout:5e3});return r===200&&m(n)}catch(e){return console.error(e),!1}}async function w(t,{timeout:e}={timeout:3e3}){try{if(!i(t))return"";const{headers:a}=await o.head(t,{timeout:e}),r=a["x-space-name"];return r?decodeURIComponent(r):""}catch(a){return console.error(a),""}}const k=t=>t?.configs?.find(e=>e.key===u.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_SPACE_ENDPOINT)?.value||null;async function x(t){const e={};return e.did=h(t),e.name=await w(t),e.url=y(t),e.endpoint=t,e}async function B(t,e={timeout:3e4,withSearchParams:!0}){if(!l(t))throw new Error(`url(${t}) must be a string`);const a=t.startsWith("http")?t:`https://${t}`,r=new URL(a),{data:n}=await o.get(s(r.origin,"/__blocklet__.js?type=json"),{timeout:e.timeout}),c=n.componentMountPoints.findLast(d=>d.did==="z8iZnaYxnkMD5AKRjTKiCb8pQr1ut8UantAcf")?.mountPoint;if(!c)throw new Error(`MountPoint(${c}) not found`);const p=s(r.origin,c);return e.withSearchParams&&r.searchParams.get("spaceDid")?f(p,{spaceDid:r.searchParams.get("spaceDid")}):p}export{k as a,x as b,w as c,B as d,h as e,U as f,_ as g,P as h,A as i,L as j};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{D as V,J as q,j as t,a6 as G,bq as X,ak as c,bB as Q,at as T,aT as J,P as Y,bC as Z,bb as ee,W as w}from"./vendor-mui-core-DnR6WYuU.js";import{r as x,L as H}from"./vendor-react-CTtPmzVP.js";import{x as te,a as E}from"./vendor-hooks-
|
|
1
|
+
import{D as V,J as q,j as t,a6 as G,bq as X,ak as c,bB as Q,at as T,aT as J,P as Y,bC as Z,bb as ee,W as w}from"./vendor-mui-core-DnR6WYuU.js";import{r as x,L as H}from"./vendor-react-CTtPmzVP.js";import{x as te,a as E}from"./vendor-hooks-qxhUUbW5.js";import{C as N}from"./vendor-utils-CxWN1dT3.js";import{V as K,H as U,K as ne,w as C,$ as oe,M as re}from"./vendor-ux-7TwTLXf8.js";import{W as se}from"./did-address-cHTriZHu.js";import{o as ie,s as ae}from"./vendor-arcblock-Dr30TSIK.js";import{o as B,q as g,r as z,v as le,w as ce,x as D,l as de,c as L,u as pe,y as me,A as ue,B as he,P as ge,C as P,D as xe,E as A}from"./index-CGOBEhzW.js";import{H as fe}from"./addon-DSFDYYiP.js";import{u as be}from"./use-server-logo-Cv1kAPgB.js";import{g as W}from"./get-safe-url-D7ti-zln.js";import{O as ke}from"./over-due-invoice-payment-C9HTfbWA.js";import{p as ye,S as je,P as we}from"./starting-progress-B15yvlvv.js";import"./lottie-web-4koyQiv_.js";import"./question-mark-circle.svg-CByEVDhb.js";import"./server-logo-notext.svg-xZ-i1SpD.js";import"./use-mobile-BINJTzMb.js";function F({appInfo:e,...r}){const[n,s]=x.useState(!1),l=q(f=>f.breakpoints.down("md"))?32:48;return n?t.jsx(oe,{did:e.publisher,size:l}):t.jsx(re,{src:e.icon,alt:e.title,width:l,height:l,...r,onError:()=>s(!0)})}F.propTypes={appInfo:w.object.isRequired};const M=(e,r)=>g.findComponentByIdV2(e,r)||e;function Ke(){const{t:e,locale:r}=K(),[n,s]=te({blocklet:null,component:null,launcherSession:null,loading:!1,starting:!1,manageSubscriptionURL:"",restart:!1}),a=localStorage.getItem("blocklet-server-url"),l=be({onClick:()=>{a&&window.open(W(a,{allowDomains:null}))}}),f=new URL(window.location.href),v=f.searchParams.get("componentId"),_=V(),j=q(o=>o.breakpoints.down("md")),b=()=>{const o=f.searchParams.get("redirect")||"/";window.location.href=W(decodeURIComponent(o))},k=()=>{const o=setInterval(()=>{B.get("/blocklet/detail?nocache=1").then(({data:i})=>{s(R=>({...R,blocklet:i}));const d=M(i,v);if(g.isBlockletRunning(d)){b();return}d.status!=="starting"&&!n.restart&&(s({blocklet:i,starting:!1}),i!==d&&s({component:d}),clearInterval(o))}).catch(i=>{s({loading:!1,restart:!1}),U.error(i.message)})},3e3)},$=()=>{s({restart:!0,starting:!0,loading:!0}),setTimeout(()=>{k()},10)};x.useEffect(()=>{s({loading:!0}),B.get("/blocklet/detail?nocache=1").then(({data:o})=>{const i=M(o,v);if(s({blocklet:o,loading:!1}),g.isBlockletRunning(i)){b();return}s({blocklet:o}),o!==i&&s({component:i}),i.status==="starting"&&(s({starting:!0}),k())}).catch(o=>{s({loading:!1}),U.error(o.message)})},[]);const u=x.useCallback(()=>{s({loading:!0,starting:!0});const o=n.blocklet;if(!o)return;const i={did:o?.meta.did};o.children.length>0&&(i.componentDids=o.children.map(d=>d.meta.did)),z.startBlocklet({input:i}).then(({blocklet:d})=>{s(R=>({...R,blocklet:d})),k()}).catch(d=>{U.error(d.message),s({loading:!1,starting:!1})})},[n.component,n.blocklet]);x.useEffect(()=>{n.blocklet?.controller&&(le({launcherUrl:n.blocklet.controller.launcherUrl,launcherSessionId:n.blocklet.controller.launcherSessionId,locale:r}).then(o=>{s({manageSubscriptionURL:o})}).catch(o=>{console.error("get manage subscription url error",o)}),z.getLauncherSession({input:{launcherSessionId:n.blocklet.controller.launcherSessionId,launcherUrl:n.blocklet.controller.launcherUrl}}).then(o=>{s({launcherSession:o.launcherSession})}).catch(o=>{console.error("get launcher session error",o)}))},[n.blocklet?.controller]);const p=E(()=>n.blocklet?.children?.length,[n.blocklet]),m=E(()=>n.blocklet?.children?.filter(o=>g.isBlockletRunning(o))?.length||0,[n.blocklet]),y=E(()=>p?m?Math.round(Math.max(m/p,.15)*100):5:0,[m,p]);if(!n.blocklet)return t.jsx(ie,{children:t.jsx(G,{})});const h={icon:`${L.WELLKNOWN_SERVICE_PATH_PREFIX}/blocklet/logo`,title:g.getDisplayName(n.blocklet),publisher:n.blocklet.appDid},I=ne(ye,n.starting?{width:`${y}%`,"&::after":{width:`${y}%`},"&::before":{width:`${y}%`,animation:"shimmer 1s infinite cubic-bezier(0.4, 0.0, 0.2, 1)","@keyframes shimmer":{"0%":{width:0},"100%":{width:`${y}%`}}}}:{}),S=ce(n.blocklet)||D(n.launcherSession);return t.jsxs(Se,{children:[t.jsx(X,{styles:ve}),t.jsxs("header",{className:"root-header",children:[j?null:t.jsx("div",{className:"left",children:l}),t.jsx(ae,{sx:{background:j?_.palette.background.default:"transparent",display:"flex",alignItems:"center",justifyContent:"flex-end"},children:t.jsx(fe,{SessionContext:de})})]}),t.jsxs(Pe,{elevation:0,children:[t.jsxs(Ce,{children:[t.jsx(F,{appInfo:h}),t.jsxs("div",{className:"app-info_content",children:[t.jsx(c,{className:"app-info_name",children:h.title}),t.jsx(se,{size:14,className:"app-info_did",did:h.publisher})]})]}),(n.restart||!S)&&t.jsxs(t.Fragment,{children:[t.jsxs(c,{className:"title-box",children:[t.jsx(c,{className:"icon",children:t.jsx(Q,{})}),t.jsx(c,{className:"title",children:e("blocklet.startApplication")})]}),t.jsx(c,{className:"sub-title",children:n.starting?t.jsx(je,{blocklets:n.blocklet?.children??[]}):e("blocklet.startDescription",{name:n.component?g.getDisplayName(n.component,!0):g.getDisplayName(n.blocklet)})}),t.jsx(c,{sx:{mt:8,display:"flex",flexDirection:"column",alignItems:"center",gap:1},children:t.jsx(we,{blocklets:n.blocklet?.children??[],status:n.starting?"starting":"",children:t.jsx(C,{sx:I,disabled:n.loading||n.starting,variant:"contained",color:"primary",size:"large",loading:n.starting,onClick:()=>u(),children:t.jsx("span",{style:{position:"relative",zIndex:2},children:n.starting?`(${m}/${p}) ${e("blocklet.starting")}`:e("blocklet.start")})})})})]}),S&&!n.restart&&t.jsx(O,{blocklet:n.blocklet,launcherSession:n.launcherSession,manageSubscriptionURL:n.manageSubscriptionURL,handleRestart:$}),t.jsx(c,{sx:{mt:5},children:t.jsx(H,{className:"footer-link",to:`${L.WELLKNOWN_SERVICE_PATH_PREFIX}/admin/overview`,children:e("blocklet.dashboard")})})]})]})}function O({blocklet:e,launcherSession:r,manageSubscriptionURL:n,handleRestart:s}){const{t:a,locale:l}=K(),{connectApi:f,session:v}=pe(),{refreshSubscription:_}=me(),[j,b]=x.useState(!1),[k,$]=x.useState("");if(x.useEffect(()=>{if(e?.controller?.launcherUrl&&D(r)){const y=N(e.controller.launcherUrl,"__blocklet__.js?type=json");fetch(y).then(h=>h.json()).then(h=>{const I=h.componentMountPoints?.find(o=>o.did==="z2qaCNvKMv5GjouKdcDWexv6WqtHbpNPQDnAk")?.mountPoint,S=N(e.controller.launcherUrl,I);$(S)})}},[e?.controller?.launcherUrl,r]),!e||!r)return"";const u=D(r),p=!u&&ue(e,r),m=!u&&he(e,r);return!p&&!m&&!u?"":t.jsxs(t.Fragment,{children:[j&&k&&r&&t.jsx(ge,{session:v,connect:f,baseUrl:k,authToken:r.subscription.authToken,children:t.jsx(ke,{dialogProps:{open:j,onClose:()=>b(!1)},subscriptionId:r.subscription.id,successToast:!0,onPaid:()=>{B.post("/blocklet/start?fromSetup=1"),_(),s(),b(!1)}})}),t.jsxs(c,{className:"title-box",children:[t.jsx(Z,{className:"icon-error"}),t.jsxs(c,{className:"title error",children:[p&&a("blocklet.suspended"),m&&a("blocklet.terminated"),u&&a("blocklet.suspended")]})]}),t.jsxs(c,{className:"sub-title",children:[p&&a("blocklet.suspendedCausedByExpired",{deadline:P(r?.reservedUntil,l),canceledAt:P((r?.subscription?.canceled_at||0)*1e3,l)}),m&&a("blocklet.suspendedCausedByTerminated",{canceledAt:P(r?.terminatedAt,l),deadline:xe(r?.terminatedAt,l)}),u&&a("blocklet.suspendedCausedByPastDue",{deadline:P(r?.reservedUntil,l)})]}),t.jsxs(c,{sx:{mt:8},children:[u&&!A(r)&&t.jsx(C,{style:{minWidth:200},variant:"contained",color:"primary",size:"large",onClick:()=>b(!0),children:a("blocklet.payNow")}),(p||A(r))&&t.jsx(C,{component:ee,style:{minWidth:200},variant:"contained",color:"primary",size:"large",target:"_blank",href:n||"#",children:a("blocklet.manageSubscription")}),m&&t.jsx(C,{component:H,to:N(L.WELLKNOWN_SERVICE_PATH_PREFIX,"/admin/did-spaces"),style:{minWidth:200},variant:"contained",color:"primary",size:"large",children:a("common.backup")})]})]})}O.propTypes={blocklet:w.object.isRequired,launcherSession:w.object.isRequired,manageSubscriptionURL:w.string.isRequired,handleRestart:w.func.isRequired};const ve=J`
|
|
2
2
|
html,
|
|
3
3
|
body,
|
|
4
4
|
#app,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as o,b6 as f,at as w,ao as R,T as S,W as d}from"./vendor-mui-core-DnR6WYuU.js";import{r as a}from"./vendor-react-CTtPmzVP.js";import{a as m,h as j}from"./vendor-hooks-
|
|
1
|
+
import{j as o,b6 as f,at as w,ao as R,T as S,W as d}from"./vendor-mui-core-DnR6WYuU.js";import{r as a}from"./vendor-react-CTtPmzVP.js";import{a as m,h as j}from"./vendor-hooks-qxhUUbW5.js";import{V as h}from"./vendor-ux-7TwTLXf8.js";import{q as C}from"./index-CGOBEhzW.js";const I=1e3;function x({blocklet:t}){const{meta:u}=t,{t:i}=h(),[l,s]=a.useState("starting"),[p,e]=a.useState(t.status),r=m(()=>{const c=u.title||u.name;return{starting:i("blocklet.startingProgress.starting",{name:c}),running:i("blocklet.startingProgress.success",{name:c}),stopped:i("blocklet.startingProgress.failed",{name:c}),error:i("blocklet.startingProgress.failed",{name:c})}},[i,u]);a.useEffect(()=>{p!==t.status&&(s(t.status),e(""))},[t.status,p]),j(()=>{e(t.status),C.isBlockletRunning(t)&&s(t.status)});const n=m(()=>l==="running"?R[600]:["stopped","error"].includes(l)?"error":"primary",[l]);return o.jsx(S,{display:"flex",alignItems:"center",fontSize:14,lineHeight:1,gap:1,color:n,children:r[l]})}x.propTypes={blocklet:d.object.isRequired};function P({blocklets:t=[],children:u,debounce:i=!0,status:l=""}){const[s,p]=a.useState(null),[e,r]=a.useState(0),n=a.useRef(null),c=a.useRef(!1);a.useEffect(()=>{if(s&&n.current){const g=n.current.style.display;n.current.style.display="flex",r(n.current.offsetHeight),n.current.style.display=g}},[s,t]);const b=a.useMemo(()=>l==="starting"?o.jsx(f,{ref:n,display:"flex",flexDirection:"column",gap:.5,maxHeight:200,sx:{overflowY:"auto",p:2,display:s?"flex":"none",position:"fixed",top:s?s.getBoundingClientRect().top-10-e:0,left:s?s.getBoundingClientRect().left+s.offsetWidth/2:0,transform:"translateX(-50%)",backgroundColor:"white",boxShadow:"0px 2px 4px rgba(0,0,0,0.1)",borderRadius:"4px",zIndex:1300},children:t.map(g=>o.jsx(x,{blocklet:g},g.meta.did))}):null,[t,s,e,l]),y=g=>{(c.current||!i)&&(p(g.currentTarget),c.current=!1)},v=()=>{p(null),l==="starting"&&(c.current=!0)};return o.jsxs(o.Fragment,{children:[o.jsx("span",{onMouseEnter:y,onMouseLeave:v,style:{cursor:"pointer"},children:u}),b]})}P.propTypes={blocklets:d.array.isRequired,children:d.node.isRequired,debounce:d.bool,status:d.string};function E({blocklets:t=[]}){const{t:u}=h(),[i,l]=a.useState(0),s=m(()=>t.length===0?[]:t.map(e=>{const r=e.meta.title||e.meta.name;return e.status==="running"?null:`${u("blocklet.startingProgress.starting",{name:r})}`}).filter(Boolean),[t,u]);if(a.useEffect(()=>{if(!s.length)return;let e=0;const r=setInterval(()=>{e++,e>=s.length&&(e=0),l(e)},I);return()=>{clearInterval(r)}},[s]),t.length===0)return null;const p=e=>{let r="message-before";return i===e?r="show-message":i<e&&(r="message-after"),r};return o.jsx(z,{direction:"column",alignItems:"center",justifyContent:"center",gap:1,children:o.jsx("div",{className:"waiter-message",children:s.map((e,r)=>{const n=p(r);return o.jsxs("div",{children:[o.jsx("span",{className:`message-block ${n}`,children:e}),o.jsx("span",{className:`placeholder-message ${n}`,children:e})]},r)})})})}E.propTypes={blocklets:d.array.isRequired};const z=w(f)`
|
|
2
2
|
.waiter-message {
|
|
3
3
|
position: relative;
|
|
4
4
|
width: 100%;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as b}from"./vendor-react-CTtPmzVP.js";import{j as p,a6 as x,am as w,dw as P,bI as j,W as $}from"./vendor-mui-core-DnR6WYuU.js";import{x as k}from"./vendor-hooks-
|
|
1
|
+
import{r as b}from"./vendor-react-CTtPmzVP.js";import{j as p,a6 as x,am as w,dw as P,bI as j,W as $}from"./vendor-mui-core-DnR6WYuU.js";import{x as k}from"./vendor-hooks-qxhUUbW5.js";import{B as d}from"./vendor-utils-CxWN1dT3.js";import{r as q}from"./omit-spWLSLbo.js";import{ce as V,cf as R}from"./index-CGOBEhzW.js";import{o as E,V as I}from"./vendor-ux-7TwTLXf8.js";var a={},h;function D(){if(h)return a;h=1;var u=a&&a.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0}),a.signResponse=l,a.verifyResponse=S,a.verifyVault=_;const m=u(q),v=u(V()),n=R(),s=E();async function l(e,c){const o=(0,v.default)(e),y=await c.sign(o);return{...e,$signature:y}}function S(e,c){return e.$signature?c.verify((0,v.default)((0,m.default)(e,"$signature")),e.$signature):Promise.resolve(!1)}async function _(e,c,o=!1){if(!Array.isArray(e)||e.length===0){if(o)throw new Error("vaults list is empty");return""}for(let t=1;t<e.length;t++)if(e[t].at<=e[t-1].at){if(o)throw new Error("vaults are not in ascending order");return""}if(new Set(e.map(t=>t.did)).size!==e.length){if(o)throw new Error("vaults list has duplicate vaults");return""}for(let t=0;t<e.length;t++){const r=e[t];if(!(0,s.isFromPublicKey)(r.did,r.pk)){if(o)throw new Error(`vault did and pk mismatch: ${r.did}(${r.pk})`);return""}let f=d.from(`vault:${c}`);for(let i=0;i<=t;i++)f=d.concat([f,d.from(`:${e[i].did}`)]);if(!r.approverSig){if(o)throw new Error(`vault approve signature missing for ${r.did}`);return""}try{let i;if(t>0){const g=e[t-1];i=(0,n.fromPublicKey)(g.pk,(0,s.toTypeInfo)(g.did))}else{if(!r.approverPk||!r.approverDid||!(0,s.isFromPublicKey)(r.approverDid,r.approverPk)){if(o)throw new Error(`approver config missing for ${r.did}`);return""}i=(0,n.fromPublicKey)(r.approverPk,(0,s.toTypeInfo)(r.approverDid))}if(await i.verify(f,r.approverSig)===!1){if(o)throw new Error(`signature verify failed for ${r.did}`);return""}}catch(i){if(console.error(i),o)throw new Error(`vault approve verify failed: ${i.message}`);return""}if(!r.sig){if(o)throw new Error(`vault commit signature missing for ${r.did}`);return""}try{const i=(0,n.fromPublicKey)(r.pk,(0,s.toTypeInfo)(r.did));if(r.approverSig&&(f=d.concat([f,d.from(`:${r.approverSig}`)])),await i.verify(f,r.sig)===!1){if(o)throw new Error(`commit signature verify failed for ${r.did}`);return""}}catch(i){if(console.error(i),o)throw new Error(`vault commit verify failed: ${i.message}`);return""}}return e[e.length-1].did}return a}var K=D();function T({vaults:u,appPid:m}){const{t:v}=I(),[n,s]=k({verified:!1,verifying:!0,error:""});return b.useEffect(()=>{K.verifyVault(u,m,!0).then(l=>{s({verified:!!l,verifying:!1})}).catch(l=>{s({verified:!1,verifying:!1,error:l.message})})},[u,m,s]),n.verifying?p.jsx(x,{}):n.verified?p.jsx(w,{title:v("blocklet.config.vault.verified"),children:p.jsx(P,{fontSize:"small",color:"success"})}):p.jsx(w,{title:n.error,children:p.jsx(j,{color:"error"})})}T.propTypes={vaults:$.array.isRequired,appPid:$.string.isRequired};export{T as V};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as e,ak as a,at as r,W as o}from"./vendor-mui-core-DnR6WYuU.js";import{u as p}from"./use-mobile-D5clNlrm.js";import{c2 as m}from"./index-
|
|
1
|
+
import{j as e,ak as a,at as r,W as o}from"./vendor-mui-core-DnR6WYuU.js";import{u as p}from"./use-mobile-D5clNlrm.js";import{c2 as m}from"./index-CGOBEhzW.js";function d({blocklet:t=null,children:n=null}){const i=p();return!t||m(t.meta)?e.jsx(s,{isMobile:i,children:n}):e.jsx(s,{isMobile:i,children:e.jsx(a,{variant:"contained",sx:{display:"flex",color:"primary",alignItems:"center",marginLeft:"32px"},children:n})})}d.propTypes={blocklet:o.object,children:o.any};const s=r(a)`
|
|
2
2
|
padding-top: 24px;
|
|
3
3
|
margin-top: auto;
|
|
4
4
|
width: 100%;
|