@abtnode/blocklet-services 1.16.53-beta-20251013-075536-64fcb94b → 1.16.53
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/middlewares/verify-did.js +27 -0
- package/api/routes/csp-proxy.js +4 -0
- package/api/routes/ocap.js +18 -3
- package/api/routes/openapi.js +3 -2
- package/api/routes/opencomponent.js +3 -2
- package/api/routes/openembed.js +3 -2
- package/api/routes/user.js +11 -9
- package/api/services/auth/session.js +6 -0
- package/dist/assets/{AdapterDayjs-Bp0ir26R.js → AdapterDayjs-DyE9ImrK.js} +1 -1
- package/dist/assets/{Google-E3u2a9g7.js → Google-ZJmTt04Y.js} +1 -1
- package/dist/assets/{access-control-CUUGBegg.js → access-control-tkXiKu_B.js} +1 -1
- package/dist/assets/{actions-B4VXcSRp.js → actions-C4-lIUPY.js} +1 -1
- package/dist/assets/{add-component-core-D8CsaWtE.js → add-component-core-DZewqmQf.js} +17 -17
- package/dist/assets/{add-resource-DRYWyzFg.js → add-resource-CFOC6fO8.js} +1 -1
- package/dist/assets/{addon-DhicELT4.js → addon-CAEOt-oM.js} +1 -1
- package/dist/assets/{advanced-D4kyySFu.js → advanced-BsPW8tKj.js} +2 -2
- package/dist/assets/aigne-C6-afA57.js +10 -0
- package/dist/assets/api-txzyyizM.js +1 -0
- package/dist/assets/{appearance-DiUMtWiZ.js → appearance-BZqg7Kkn.js} +1 -1
- package/dist/assets/{ar-7nBHeQPa.js → ar-DW15ct8A.js} +1 -1
- package/dist/assets/{ar-CHd3xUx5.js → ar-Ge3t6oI2.js} +2 -2
- package/dist/assets/{arrow-down.svg-DgXRF8DP.js → arrow-down.svg-zOZF6XLO.js} +1 -1
- package/dist/assets/audit-logs-aCVF7lhB.js +35 -0
- package/dist/assets/{authorize-Dr-5dOao.js → authorize-QCoPxe3U.js} +1 -1
- package/dist/assets/{base-chart-UFWO9a3P.js → base-chart-C_jLgGFD.js} +1 -1
- package/dist/assets/{base32-BK7MXAD4.js → base32-Cg02gOuu.js} +1 -1
- package/dist/assets/bind-account-C8pbYbtP.js +1 -0
- package/dist/assets/{branding-BqZaDEQy.js → branding-BxYz3fG3.js} +5 -5
- package/dist/assets/{branding-Bwa2_l30.js → branding-CKEfz45I.js} +1 -1
- package/dist/assets/branding-r2VAPR6q.js +1 -0
- package/dist/assets/{bundle-avatar-D5n6XSFF.js → bundle-avatar-CRBdm-Kg.js} +1 -1
- package/dist/assets/button-CaqBEwnu.js +1 -0
- package/dist/assets/click-to-copy-CK42VmRr.js +1 -0
- package/dist/assets/{cloneDeep-LRq4Ya2k.js → cloneDeep-gpb_g13N.js} +1 -1
- package/dist/assets/{collapse-DJGzUM1Q.js → collapse-D7GlSZQp.js} +1 -1
- package/dist/assets/{complete-CJN6MZr9.js → complete-B1ERhNgz.js} +3 -3
- package/dist/assets/{component-BkgYdhLW.js → component-D1imN4b5.js} +2 -2
- package/dist/assets/{config-BKWRBZkN.js → config-CRH_AVvL.js} +2 -2
- package/dist/assets/{config-NzhCDrRK.js → config-D9yLBkGc.js} +1 -1
- package/dist/assets/{config-C6P5yz_l.js → config-dGkFpD36.js} +4 -4
- package/dist/assets/config-navigation-CkwpaFE2.js +40 -0
- package/dist/assets/config-space-DEqVeU5w.js +1 -0
- package/dist/assets/confirm-DAMhAYR3.js +7 -0
- package/dist/assets/{connect-Cp5779ib.js → connect-BHzZ3O8m.js} +1 -1
- package/dist/assets/{connect-DCldlgle.js → connect-VhC_tOjl.js} +1 -1
- package/dist/assets/connect-to-CnrptX8a.js +1 -0
- package/dist/assets/{content-layout-B9tc9LCL.js → content-layout-W7JDm8iO.js} +1 -1
- package/dist/assets/{create-passport-svg-n0J1kwzH.js → create-passport-svg-BsR3hKFq.js} +1 -1
- package/dist/assets/createClass-B4I2IV47.js +1 -0
- package/dist/assets/{dashboard-COW8XxoK.js → dashboard-C6gjCAD6.js} +7 -7
- package/dist/assets/{de-CD44Obtw.js → de-CbARTvf4.js} +2 -2
- package/dist/assets/{de-Dn7PhTZq.js → de-DomrlJGv.js} +1 -1
- package/dist/assets/{delete-confirm-DDcjKsY2.js → delete-confirm-Ca3miSFM.js} +1 -1
- package/dist/assets/{did-address-DnFNwELW.js → did-address-BQL5Zxlr.js} +1 -1
- package/dist/assets/{domain-DR_J7IrS.js → domain-DZJxjNTq.js} +1 -1
- package/dist/assets/{domain-action-card-CuN-BTun.js → domain-action-card-CPmR-n-P.js} +2 -2
- package/dist/assets/domains-DH3UyJ8c.js +1 -0
- package/dist/assets/{email-Da8K28dJ.js → email-dNTq-UZN.js} +2 -2
- package/dist/assets/{empty-spinner-LXNYl6_1.js → empty-spinner-sNq-0DF5.js} +1 -1
- package/dist/assets/engine-lkWYvtZC.js +1 -0
- package/dist/assets/{es-B_X5HHiA.js → es-BWRncAvl.js} +1 -1
- package/dist/assets/{es-DNFAt0y7.js → es-CaCbzATO.js} +2 -2
- package/dist/assets/exchange-passport-C-tUCCyK.js +1 -0
- package/dist/assets/{form-BO9zQEEu.js → form-BIXDp48N.js} +3 -3
- package/dist/assets/{form-text-input-CwOsIY5R.js → form-text-input-AIMlcRaM.js} +1 -1
- package/dist/assets/{form-wrapper-Dt1iJZge.js → form-wrapper-DINLdpTN.js} +1 -1
- package/dist/assets/{fr-C9xE9tD4.js → fr-B3yjKUFH.js} +2 -2
- package/dist/assets/{fr-BIAMVkwl.js → fr-DkEISw5U.js} +1 -1
- package/dist/assets/{fuel-QHX754Te.js → fuel-_yedTm2I.js} +1 -1
- package/dist/assets/{gen-access-key-1fCgd-vd.js → gen-access-key-DXoAyhBv.js} +1 -1
- package/dist/assets/{gen-simple-access-key-DrYDMNDo.js → gen-simple-access-key-BPpzmXdv.js} +1 -1
- package/dist/assets/get-safe-url-94yHUMyk.js +1 -0
- package/dist/assets/{hi-4-0lpKbp.js → hi-CNLsAFCp.js} +1 -1
- package/dist/assets/{hi-D_0DFJcS.js → hi-q4mhHiIl.js} +1 -1
- package/dist/assets/{home-CR7v9FTO.js → home-CgfBIBYo.js} +1 -1
- package/dist/assets/{id-Dw1-p0GY.js → id-CiNosIvh.js} +1 -1
- package/dist/assets/{id-BgJjfH2L.js → id-DTf7aVH8.js} +2 -2
- package/dist/assets/{iframe-CKOcsJB-.js → iframe-D73zp9VN.js} +1 -1
- package/dist/assets/{index-ChdZfn2Z.js → index-3gh3KcSo.js} +9 -9
- package/dist/assets/{index-BSTi6sO4.js → index-9GU1U3uC.js} +2 -2
- package/dist/assets/index-B07KPoAU.js +7 -0
- package/dist/assets/index-BO_K5qp8.js +4 -0
- package/dist/assets/index-BV58Bk4h.js +6 -0
- package/dist/assets/index-BcGECSaf.js +1 -0
- package/dist/assets/{index-6KFpxb0K.js → index-BdlpB2eR.js} +7 -7
- package/dist/assets/{index-DYxM5dQ0.js → index-Bsziwsc_.js} +6 -6
- package/dist/assets/index-CSjGSZvb.js +55 -0
- package/dist/assets/{index-9WUHnAoz.js → index-CT7MCvWf.js} +2 -2
- package/dist/assets/index-CWoGXO4Z.js +30 -0
- package/dist/assets/{index-Y8LQew4k.js → index-Cd_Gml9C.js} +1 -1
- package/dist/assets/index-CeTnfded.js +1 -0
- package/dist/assets/index-CmM1Fb8I.js +1041 -0
- package/dist/assets/{index-BAigP45p.js → index-CoEkDRkg.js} +3 -3
- package/dist/assets/{index-DuO31sai.js → index-CtjgKQvS.js} +12 -12
- package/dist/assets/{index-DyNpNTLA.js → index-D2x0prGU.js} +5 -5
- package/dist/assets/{index-BFBoLr1Z.js → index-DACE9NO5.js} +1 -1
- package/dist/assets/{index-BH9BMLP2.js → index-DGuACYX4.js} +2 -2
- package/dist/assets/{index-Oj4fYD5K.js → index-DJwvNiRa.js} +13 -13
- package/dist/assets/{index-Bx-RW9vi.js → index-DX3L95vz.js} +1 -1
- package/dist/assets/{index-pDY1qDDT.js → index-DhLGB_2p.js} +1 -1
- package/dist/assets/{index-CGC3omja.js → index-Dl5NP6ym.js} +8 -8
- package/dist/assets/{index-DlrQ2HQP.js → index-DlRa8Zeh.js} +1 -1
- package/dist/assets/index-Dvkly5_Y.js +1 -0
- package/dist/assets/{index--2eh3YdI.js → index-DwuQFnlr.js} +1 -1
- package/dist/assets/{index-Ba9-ArMT.js → index-IGBGBXd_.js} +1 -1
- package/dist/assets/{index-Difo-vx2.js → index-J-Fwoozx.js} +1 -1
- package/dist/assets/{index-3ePiAFIp.js → index-KpZGUssm.js} +1 -1
- package/dist/assets/{index-C5sng-9P.js → index-M4Y_gFoP.js} +2 -2
- package/dist/assets/{index-BO080WnZ.js → index-VySXxf4w.js} +1 -1
- package/dist/assets/index-erYyAW7o.js +1 -0
- package/dist/assets/index-gu-JSZcO.js +113 -0
- package/dist/assets/{index-BZUEA_VO.js → index-xrCVFXc_.js} +5 -5
- package/dist/assets/{invitation-BKbYsXkF.js → invitation-LkRqaKIR.js} +5 -5
- package/dist/assets/invitations-D0twFHTb.js +3 -0
- package/dist/assets/invite-Bq02Wgwb.js +1 -0
- package/dist/assets/{isURL-B2kErAOg.js → isURL-DAY9MZJJ.js} +2 -2
- package/dist/assets/issue-passport-NpVrtTSF.js +1 -0
- package/dist/assets/{item-BFG9doj4.js → item-A9AxqmJb.js} +1 -1
- package/dist/assets/{ja-SFs9TI5a.js → ja-Csh_XwzF.js} +2 -2
- package/dist/assets/{ja-C6gbn0J8.js → ja-D5EfJGvg.js} +1 -1
- package/dist/assets/{ko-av2FKXII.js → ko-DIYdQvvz.js} +1 -1
- package/dist/assets/{ko-CHdBh-EI.js → ko-xiNTwgO9.js} +2 -2
- package/dist/assets/landing-page-BBhzhyhU.js +1 -0
- package/dist/assets/{launch-result-message-DW948RfZ.js → launch-result-message-Dt-T7zmz.js} +1 -1
- package/dist/assets/{layout-BByAfem8.js → layout-CT8j1IGl.js} +1 -1
- package/dist/assets/list-CpdSyVlo.js +103 -0
- package/dist/assets/{list-4bMHptVO.js → list-DcrvvV8X.js} +1 -1
- package/dist/assets/{list-header-DMpz8A8v.js → list-header-CjohGZ9B.js} +1 -1
- package/dist/assets/localization-BnjH2TLn.js +1 -0
- package/dist/assets/{log-BgOBDKaO.js → log-CcKk7QZL.js} +1 -1
- package/dist/assets/logger-DkBs7Soy.js +1 -0
- package/dist/assets/login-IMzJsMuG.js +1 -0
- package/dist/assets/{login-oauth-callback-D81WLOfu.js → login-oauth-callback-Df5gSERT.js} +1 -1
- package/dist/assets/{logo-uploader-BSLuQUWG.js → logo-uploader-DI_6oB30.js} +1 -1
- package/dist/assets/{lost-passport-CN1lCjAR.js → lost-passport-i0WRSJQt.js} +3 -3
- package/dist/assets/{observability-pdEZhjSl.js → observability-B458LeIE.js} +1 -1
- package/dist/assets/{omit-BQZKecPT.js → omit-DdfLLBNW.js} +1 -1
- package/dist/assets/{open-window-DFdTfBab.js → open-window-CrdkIvcc.js} +1 -1
- package/dist/assets/{over-due-invoice-payment-BHBjNHAK.js → over-due-invoice-payment-Dairtuas.js} +1 -1
- package/dist/assets/{overview-BNptGAD0.js → overview-D4hz1f04.js} +2 -2
- package/dist/assets/{page-header-DvSb4Cmz.js → page-header-gosgJ3fX.js} +1 -1
- package/dist/assets/passport-B2fL-0uN.js +1 -0
- package/dist/assets/{passport-item-cu1WVC_B.js → passport-item-L7acCYqJ.js} +1 -1
- package/dist/assets/{permission-ya4qYiIS.js → permission-B7_8SVB9.js} +1 -1
- package/dist/assets/{playground-C0bWoIDS.js → playground-_1Dj8J_h.js} +1 -1
- package/dist/assets/preferences-BNy97I1g.js +1 -0
- package/dist/assets/profile-embed-hHsyn2Ki.js +1 -0
- package/dist/assets/pt-BvcG4R7B.js +5 -0
- package/dist/assets/{pt-C5SxM_jO.js → pt-aIOBgpHE.js} +1 -1
- package/dist/assets/publish-resource-urgBZEXm.js +1 -0
- package/dist/assets/{react-beautiful-dnd.esm-BeX82uI5.js → react-beautiful-dnd.esm-CIwtis6a.js} +1 -1
- package/dist/assets/{react-stripe.esm-C51Uah32.js → react-stripe.esm-omsK4b05.js} +1 -1
- package/dist/assets/{required-BT8zXV8U.js → required-BPzIdi1N.js} +1 -1
- package/dist/assets/{ru-BWd-_jpY.js → ru-Bt8-v101.js} +1 -1
- package/dist/assets/ru-DzUPRLmr.js +5 -0
- package/dist/assets/runtime-wNrz-OwM.js +1 -0
- package/dist/assets/{sanitize-C5jEFDvG.js → sanitize-CEXE1rEu.js} +1 -1
- package/dist/assets/sdk-mf5ixH6N.js +1 -0
- package/dist/assets/{section-ZPKr6_ii.js → section-DOw43pby.js} +1 -1
- package/dist/assets/{security-BlvbBEUe.js → security-D5AcOcu2.js} +3 -3
- package/dist/assets/session-BtQQCb_u.js +1 -0
- package/dist/assets/{setup-BZH_pYLe.js → setup-PRcxWbhy.js} +1 -1
- package/dist/assets/{shorten-label-DVy6K5I7.js → shorten-label-C-X_7vr2.js} +1 -1
- package/dist/assets/{simple-select-BeAlThKq.js → simple-select-Bg4XC1E_.js} +1 -1
- package/dist/assets/{spaces-BwBxBfty.js → spaces-jHZOfRT3.js} +1 -1
- package/dist/assets/{start-DZ1T1oW8.js → start-DyT2xbZe.js} +1 -1
- package/dist/assets/{starting-progress-HuVVYFsR.js → starting-progress-Jn-4yF7_.js} +1 -1
- package/dist/assets/status-b40PyJnc.js +1 -0
- package/dist/assets/{step-actions-D4zI4sWZ.js → step-actions-BZmm0ei-.js} +1 -1
- package/dist/assets/{studio-UxYOr-dB.js → studio-Dqjq8IDN.js} +1 -1
- package/dist/assets/{switch-control-DEpBEl7-.js → switch-control-CRxlGq2g.js} +1 -1
- package/dist/assets/{table-tips-rCE1XKlc.js → table-tips-BMq3WO_p.js} +1 -1
- package/dist/assets/team-DK_N0J3a.js +146 -0
- package/dist/assets/th-BmW1qKpZ.js +5 -0
- package/dist/assets/{th-CRUlNqtq.js → th-QYkziTlm.js} +1 -1
- package/dist/assets/traffic-BVT9gNf1.js +1 -0
- package/dist/assets/{transfer-DBlISG7m.js → transfer-BGhQJnlc.js} +2 -2
- package/dist/assets/unsubscribe-DsNv3U7c.js +1 -0
- package/dist/assets/{use-app-logo-BjReZUm7.js → use-app-logo-BKyiSzxV.js} +1 -1
- package/dist/assets/{use-mobile-BQQpAf3i.js → use-mobile-DLnLSQQq.js} +1 -1
- package/dist/assets/{use-mobile-D6YQgajG.js → use-mobile-Db5FIl07.js} +1 -1
- package/dist/assets/{use-server-logo-ClR4qaF0.js → use-server-logo-CFlVReBS.js} +1 -1
- package/dist/assets/{use-window-close-CAdGHigF.js → use-window-close-CrHmRyVV.js} +1 -1
- package/dist/assets/{useAsync-DVtDVEv6.js → useAsync-1_z8P8M4.js} +1 -1
- package/dist/assets/{useAsync-fWwm3Jbj.js → useAsync-BKYfrNw7.js} +1 -1
- package/dist/assets/{useAsyncRetry-EEjDgDMR.js → useAsyncRetry-Dyo5t1bq.js} +1 -1
- package/dist/assets/{useLocalStorage-BtAV-lV2.js → useLocalStorage-Be_1V0gr.js} +1 -1
- package/dist/assets/user-center-BcjjuRmk.js +126 -0
- package/dist/assets/{user-follower-McTCB9YD.js → user-follower-DgAPhBY5.js} +1 -1
- package/dist/assets/{user-sessions-DYtBKHTy.js → user-sessions-Bv46aXrx.js} +1 -1
- package/dist/assets/{util-V3sRgqXp.js → util-BLs2BnSw.js} +1 -1
- package/dist/assets/{util-DDkRAi85.js → util-CxUMQb4N.js} +1 -1
- package/dist/assets/{vendor-arcblock-DeeG8u0h.js → vendor-arcblock-DGOH9a3F.js} +115 -114
- package/dist/assets/{vendor-hooks-BlA8TRnZ.js → vendor-hooks-DmThWyyG.js} +1 -1
- package/dist/assets/{vendor-mui-core-DRxbhqaK.js → vendor-mui-core-BFPsXaTR.js} +1 -1
- package/dist/assets/{vendor-mui-x-Qp6zkx78.js → vendor-mui-x-C6iZOJbV.js} +1 -1
- package/dist/assets/vendor-utils-OrZFrHBP.js +213 -0
- package/dist/assets/vendor-ux-CE4sOH7O.js +1569 -0
- package/dist/assets/{vi-5AzowaJ4.js → vi-BIkODa3n.js} +1 -1
- package/dist/assets/vi-BPU54RQW.js +5 -0
- package/dist/assets/{wait-connect-C4xkzmAl.js → wait-connect-D97I-PbQ.js} +1 -1
- package/dist/assets/{wizard-5C6_E9yj.js → wizard-Bs0eTfDi.js} +2 -2
- package/dist/assets/{wizard-components-Cu-kCEHh.js → wizard-components-BwF9dBN2.js} +2 -2
- package/dist/assets/wrap-locale-D6EgWtG_.js +1 -0
- package/dist/assets/{zh-Ckmy3lEn.js → zh-Dp_c1E39.js} +1 -1
- package/dist/assets/{zh-CZLHYA5h.js → zh-WrFfMVyM.js} +1 -1
- package/dist/assets/{zh-tw-DAvBOrfW.js → zh-tw-CYPf8U5U.js} +1 -1
- package/dist/assets/{zh-tw-B-qWW0q8.js → zh-tw-DjWFpq-W.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/service-worker.js +1 -1
- package/package.json +37 -37
- package/dist/assets/aigne--ydEFgxM.js +0 -10
- package/dist/assets/api-rC33aBSs.js +0 -1
- package/dist/assets/audit-logs-zMqI7X3o.js +0 -35
- package/dist/assets/bind-account-DA7_VhlG.js +0 -1
- package/dist/assets/branding-CDF8I7CS.js +0 -1
- package/dist/assets/button-BmGMF4AE.js +0 -1
- package/dist/assets/click-to-copy-CO6UIqva.js +0 -1
- package/dist/assets/config-navigation-CpkTSVgC.js +0 -40
- package/dist/assets/config-space-D742OP6B.js +0 -1
- package/dist/assets/confirm-D1n-RK65.js +0 -7
- package/dist/assets/connect-to-CzzpDiUC.js +0 -1
- package/dist/assets/createClass-D_F4rKN8.js +0 -1
- package/dist/assets/domains-BwpVswVc.js +0 -1
- package/dist/assets/engine-CynZsYEr.js +0 -1
- package/dist/assets/exchange-passport-Bic3wuCk.js +0 -1
- package/dist/assets/get-safe-url-BrBIp6RF.js +0 -1
- package/dist/assets/index-B6gW9Yjq.js +0 -1
- package/dist/assets/index-BAm_yZT8.js +0 -6
- package/dist/assets/index-BOst2c_c.js +0 -29
- package/dist/assets/index-De6RU5uv.js +0 -55
- package/dist/assets/index-Dt8akALo.js +0 -1039
- package/dist/assets/index-F6BB6AaL.js +0 -4
- package/dist/assets/index-OuTt2geA.js +0 -1
- package/dist/assets/index-Y3X8f7Z4.js +0 -113
- package/dist/assets/index-dAVnNC1I.js +0 -7
- package/dist/assets/index-rX_gKff6.js +0 -1
- package/dist/assets/invitations-B-nYRbwb.js +0 -3
- package/dist/assets/invite-wTyupZG1.js +0 -1
- package/dist/assets/issue-passport-BrDZjXex.js +0 -1
- package/dist/assets/landing-page-CQU5LiHu.js +0 -1
- package/dist/assets/list-aRu0R0L1.js +0 -103
- package/dist/assets/localization-J2gA-h7I.js +0 -1
- package/dist/assets/logger-DVbuTPin.js +0 -1
- package/dist/assets/login-DFrvIKm0.js +0 -1
- package/dist/assets/passport-Di66zEMV.js +0 -1
- package/dist/assets/preferences-BPkyQMDe.js +0 -1
- package/dist/assets/profile-embed-DEkmxYPv.js +0 -1
- package/dist/assets/pt-BJowi6tZ.js +0 -5
- package/dist/assets/publish-resource-q3_KT0uW.js +0 -1
- package/dist/assets/ru-DTjDV3Pw.js +0 -5
- package/dist/assets/runtime-zSSdjk9Q.js +0 -1
- package/dist/assets/sdk-DlI_Utmi.js +0 -1
- package/dist/assets/session-Y3RU3I2O.js +0 -1
- package/dist/assets/status-BR0A9vPy.js +0 -1
- package/dist/assets/team-s6q3vfNx.js +0 -146
- package/dist/assets/th-A3GLGlJ1.js +0 -5
- package/dist/assets/traffic-CwvEJLQW.js +0 -1
- package/dist/assets/unsubscribe-BW7dIXXb.js +0 -1
- package/dist/assets/user-center-D18_bCCh.js +0 -126
- package/dist/assets/vendor-utils-CUDP56Ff.js +0 -213
- package/dist/assets/vendor-ux-B9VfuZTg.js +0 -1569
- package/dist/assets/vi-DGXwnYQW.js +0 -5
- package/dist/assets/wrap-locale-DcfUdcYR.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const e={auth:{noPermission:{title:"Keine Erlaubnis",description:"Du bist nicht der Administrator des Blocklets"}},login:{reLogin:"Verbinden",description:"Du musst deine DIDs Wallet verbinden, um auf {name} zuzugreifen",already:"Du bist verbunden als",connectWallet:"Verbinde das DID Wallet",closeWindow:"Fenster schließen",accessLimit:{title:"Seitenzugriff eingeschränkt",description:"Diese Seite erfordert die folgenden Pässe zum Zugriff, verbinden Sie sich bitte mit dem Portemonnaie, um den entsprechenden Pass zu ändern oder zu beantragen.",alreadyHavePassport:"Habe bereits den Reisepass",connectWithPassport:"Verbinde mit diesem Reisepass",buyPassport:"Kaufen Sie einen Reisepass"},switchDid:{title:"Konto wechseln",scan:"Verwenden Sie die folgenden Methoden, um das Konto zu wechseln",confirm:"Bestätige den Wechsel in deiner DID-Wallet",success:"Erfolgreich umgeschaltet"},switchSpecifiedDid:{title:"Konto wechseln",scan:"Du musst die DID zu {did} wechseln, um die folgenden Aktionen abzuschließen.",confirm:"Bestätigen Sie den Wechsel in Ihrer DID-Brieftasche",success:"Erfolgreich gewechselt"},connect:{title:"Verbinden",scan:"Verwenden Sie bitte die folgenden Methoden, um die Verbindung herzustellen",confirm:"Bestätigen Sie in Ihrem Konto",success:"Sie sind erfolgreich verbunden"},needManualClose:"Anmeldung erfolgreich. Wenn sich dieses Fenster nicht automatisch schließt, bitte schließen.",connectWithPassport:"Verbinde dich mit diesem Reisepass",invalidRedirectUrl:"Ungültige Weiterleitungs-URL",issueKyc:{pageDescription:"Schließen Sie die Verifizierung ab, um Ihr Konto zu sichern und ein wiederverwendbares NFT zu erhalten, das von anderen Websites vertraut werden kann (einmal überprüfen und überall präsentieren).",verifyButton:"Überprüfen",sendCodeButton:"Holen Sie sich einen Bestätigungscode",codeSentMessage:"Wir haben gerade einen Bestätigungscode an {email} gesendet. Der Code ist 30 Minuten lang gültig. Bitte überprüfen Sie Ihr Postfach oder Spam-Ordner.",codeSentSuccess:"Bestätigungscode erfolgreich gesendet",claim:"Bestätigungs-E-Mail-Zertifikat abrufen",scan:"Verbinden Sie Ihre DID-Brieftasche, um das Zertifikat zu erhalten",confirm:"Bestätigen Sie in Ihrem Konto",success:"Herzlichen Glückwunsch! Sie haben Ihre E-Mail erfolgreich verifiziert und das Zertifikat in Ihrem DID Wallet beansprucht.",backToHome:"Zurück zum Start",emailPlaceholder:"Ihre E-Mail-Adresse",verifyTitle:"Bestätigen Sie Ihre E-Mail-Adresse",issueTitle:"Anspruch E-Mail-Verifizierung NFT",verifyAction:"Überprüfen",issueAction:"Beanspruchung",issueTarget:"Du bist {action} für die folgende DID, klicke auf den Avatar, um eine weitere DID hinzuzufügen"},updateKyc:{button:"Zertifikat präsentieren",title:"Präsentieren Sie das verifizierte E-Mail-Zertifikat",scan:"Verbinden Sie Ihre DID-Brieftasche, um das Zertifikat vorzulegen",confirm:"Bestätigen Sie in Ihrem Konto",success:"Herzlichen Glückwunsch! Ihr NFT wurde überprüft und akzeptiert."},invalidOpenerUrl:"Ungültige Opener-URL"},studio:{home:"Studio",preferences:"Präferenzaufbau",localization:"Lokalisierung",branding:"Markenbilder",ratio:"Verhältnis",size:"Größe",count:"Zählen",tip:"Tipp",change:"Klicken Sie auf das Logo, um es zu ändern.",order:"Bestellung",orderTip:"Ziehen zum Ändern",orderTipLong:"Ziehen Sie, um zu ändern. Wenn Sie Screenshots auf der Festplatte löschen, aktualisieren Sie bitte die Seite.",type:"Typ",videoTipLong:"Klicke auf das Cover, um den Videolink zu bearbeiten.",video:"Video",videoTooltip:"Ziehen Sie, um die Reihenfolge zu ändern.",videoType:"Unterstützte Webseiten",videoDialogTitle:"Video hinzufügen",videoDialogEditTitle:"Video bearbeiten/löschen",videoInputLabel:"Geben Sie einen YouTube- oder Vimeo-Videolink ein",videoDialogNoSrc:"Bitte geben Sie einen gültigen Videolink ein",duplicateVideo:"Dieses Video wurde hinzugefügt",confirm:"Bestätigen",cancel:"Abbrechen",preview:"Vorschau",delete:"Löschen",title:"Bilder für {title} bereitstellen",description:"Mehr Informationen finden Sie unter",documentation:"Dokumentation"},blocklet:{startApplication:"Starte Anwendung",startDescription:"Bereit, {name} zu starten",start:"Start",starting:"Starten...",open:"Öffnen",suspended:"Anwendung ausgesetzt",manageSubscription:"Abonnement verwalten",suspendedCausedByExpired:"Diese Anwendung wurde aufgrund der Kündigung Ihres Abonnements am {canceledAt} beendet. Sie können Ihr Abonnement vor {deadline} wieder aktivieren.",suspendedCausedByPastDue:"Diese Anwendung wurde wegen Zahlungsrückständen des Abonnements ausgesetzt. Schließen Sie die Erneuerung vor dem {deadline} ab, um den Dienst wieder aufzunehmen. Nach dem Stichtag ist keine Erneuerung oder Wiederaufnahme mehr möglich.",willBeSuspendedSoon:"Diese Anwendung wird den Dienst am {deadline} einstellen, da das Abonnement kurz vor der Kündigung steht. Wenn Sie sie weiterhin nutzen möchten, stellen Sie Ihr Abonnement rechtzeitig wieder her.",suspendedCausedByTerminated:"Die Anwendung wurde aufgrund der am {canceledAt} gekündigten Subscription beendet und die Daten werden bis zum {deadline} vorgehalten. Bevor die Daten gelöscht werden, können Sie die Daten in DID Spaces sichern.",terminated:"Anwendung beendet",gotoVisitError:"Kann URL des Blocklets nicht aufrufen, bitte später erneut versuchen.",payNow:"Jetzt bezahlen",startLoadingText:"Dienst wird gestartet und kann einige Minuten dauern, bitte warten...",startingProgress:{starting:"Starte {name}...",success:"{name} erfolgreich gestartet",failed:"{name} konnte nicht gestartet werden"}},setup:{steps:{connect:"Verbinden",didSpace:"DID Spaces",config:"Konfiguration",domain:"Domain",access:"Zugriff",fuel:"Kraftstoff",complete:"Komplett",introduction:"Einführung",selectNodeDesc:"Wähle Blocklet Server aus",launchAppDesc:"Blocklet auf Server installieren",setupAppDesc:"Setup Blocklet",launched:"Vervollständigen",aigne:"AIGNE Hub",branding:"Branding",accessTitle:"Zugriffskontrolle"},connect:{title:"Mit Blocklet verbinden",scan:"Nutzen Sie die folgenden Methoden, um das Benutzerprofil und die Owner-Rechte des Blocklet bereitzustellen, dann können Sie das Blocklet konfigurieren und starten.",confirm:"Bestätigen Sie in Ihrem Konto",success:"Sie sind erfolgreich verbunden"},domain:{addTitle:"Bestehende Domain binden (Optional)",title:"Domain auswählen",subTitle:"Wähle oder kaufe eine personalisierte Domain für dein Blocklet",label:"Bitte geben Sie einen gültigen Domainnamen an",tipStart:"Bitte stellen Sie sicher",tipEnd:"Hat Punkt zum aktuellen Server",addingCert:"Zertifikat wird erstellt...",recordType:"Datentyp",recordValue:"Aufzeichnungswert",genCertSuccess:"Das {domain}-Zertifikat wurde erfolgreich ausgestellt",genCertFailed:"Fehler beim Ausstellen des Zertifikats für {domain}: {message}",genCertFailedForNFTDomain:"NFT-Domain erfolgreich hinzugefügt, aber das HTTPS-Zertifikat konnte nicht generiert werden. Bitte versuche es später erneut.",buyDIDDomainTitle:"Kaufe eine DID-Domain (Optional)",buyDIDDomainTips:"Nach dem Kauf einer DID Domain wird die Domain automatisch an den Blocklet gebunden.",buyOrConnect:"Sie können eine bestehende Domain kaufen oder konfigurieren",skipDescription:"Sie können vorübergehend die Standarddomains verwenden. Diese Domains sind nicht für die Produktion geeignet und sollten nicht mit Kunden geteilt werden."},didSpace:{title:"Konfigurieren Sie DID Spaces",subTitle:"Verbinden Sie sich mit DID Spaces, um Ihre Blocklet-Daten sicher zu speichern",tips:"Tipps",description:"Konfigurieren Sie die DID Spaces Instanzadresse und speichern Sie die Anwendungsdaten in DID Spaces nach einer erfolgreichen Verbindung",label:"Bitte wählen Sie den DID Spaces-Dienst",connected:"Sie haben erfolgreich eine Verbindung mit DID Spaces hergestellt",connect:"Verbinden Sie jetzt",reconnect:"Verbinden",addressCannotEmpty:"Die Adresse darf nicht leer sein",addressNotValid:"{url} ist keine gültige Adresse.",authorize:{title:"Verbinde {appName} mit DID Spaces",scan:"Verwenden Sie die folgenden Methoden, um der App {appName} die Verbindung zu DID Spaces zu ermöglichen",success:"Erfolgreich verbunden"}},config:{title:"Konfiguration",subTitle:"Andere Konfigurationselemente (Sie müssen auch die folgenden Elemente festlegen)"},complete:{title:"Ihre App ist bereit",failedTitle:"Fehler beim Starten der App",backToServer:"Zurück zum Blocklet Server",notRunning:"App konnte beim ersten Versuch nicht starten, bitte erneut versuchen",readyToStart:"Ihre App ist bald fertig",opening:"Wird geöffnet..."},fuel:{title:"Kraftstoff zum Starten erforderlich",tipStart:"Schlitz",tipEnd:"Für diese Anwendung ist eine Guthaben erforderlich, damit die Anwendung ordnungsgemäß funktionieren kann. Die Gelder werden in der Anwendungsbrieftasche gespeichert und können für Transaktionsgebühren verwendet werden. Sie können Ihr Guthaben jederzeit abheben, wenn Sie die App nicht mehr verwenden.",addressTitle:"Anwendungskonto",addressTip:"Befüllen Sie die Anwendung mit einer DID Wallet",need:"Brauchen",current:"Aktuell",fuelApp:"Anwendung mit Treibstoff versorgen",subTitle:"Bieten Sie Treibstoff für die Anwendung, um sicherzustellen, dass die Anwendung normal läuft."},title:"Aufbau",next:"Nächster",previous:"Vorherige",continue:"Weiter",skip:"Überspringen",startNow:"Starte jetzt",confirm:"Bestätigen",cancel:"Abbrechen",aigne:{config:"Konfiguration",observability:"Beobachtbarkeit",playground:"Spielplatz",title:"Konfig AIGNE Hub",subTitle:"Verbinde AIGNE Hub, um KI-Funktionen für dein Blocklet zu aktivieren."},connectAccount:{title:"Konto verbinden",subTitle:"Verbinde mehrere Anmeldemethoden für einfachen und sicheren Zugriff auf dein Blocklet",wallet:"DID Wallet",walletDesc:"Sicherer, geräteübergreifend, sehr empfehlenswert",passkey:"Passwortschlüssel",passkeyDesc:"Fingerabdruck oder Gesichtserkennung, sichere Anmeldung mit einem Tippen",email:"E-Mail-Konto",emailDesc:"Systemstandardmethode, es wird empfohlen, andere Konten für eine bessere Sicherheit zu verbinden",recommended:"Empfohlen",connect:"Verbinden",connected:"Verbunden",statusSuccess:"Perfekt! Du hast {count} Anmeldemethoden eingerichtet und kannst die bequemste Art wählen, auf den Blocklet zuzugreifen.",statusSuggestion:"Wir empfehlen, mehrere Anmeldemethoden für Komfort und Sicherheit zu verbinden - so können Sie jederzeit einfach auf Ihr Blocklet zugreifen.",securityTip:"Wichtig: Sie haben derzeit nur die E-Mail-Anmeldung. Bei Verlust können Sie die App nicht verwalten. Es wird dringend empfohlen, eine Wallet oder Biometrie als Backup zu verbinden.",skipBinding:"Jetzt überspringen"},wizardTitle:"Einrichtungsassistent",wizardSubTitle:"Herzlichen Glückwunsch! Blocklet ist bereit, lass uns schnell benutzerdefinierte Inhalte einrichten",wizardTooltip:"Klicke hier, um den Assistenten erneut zu öffnen",stepOf:"Schritt {current} von {total}",finished:"Abschließen",branding:{title:"Branding & Logo",subTitle:"Gib deinem Blocklet einen Namen, eine Beschreibung und ein Logo, damit er hervorsticht"},wizardLoading:"Starte Einrichtungsassistenten, bitte warten...",accessControl:{title:"Zugriffskontrolle",subTitle:"Zugriffskontrolle festlegen, um zu verwalten, wer Ihren Blocklet verwenden kann"},later:"Später einrichten"},user:{walletNotification:"DID Wallet Benachrichtigung",emailNotification:"E-Mail-Benachrichtigung",smsNotification:"SMS-Benachrichtigung",addWebhook:"Neuen Webhook hinzufügen"},pageTitle:{login:"Anmelden",dashboard:"Blocklet-Dashboard",userCenter:"Benutzerzentrum",invite:"Einladen",issuePassport:"Reisepass ausstellen",lostPassport:"Verloren Reisepass"},errorPage:{404:{title:"Ups! Seite nicht gefunden",description:"Es scheint, dass die gesuchte Seite nicht existiert.",backHome:'Wenn Sie ein Besucher sind, können Sie <a href="{url}">zurück zur Startseite gehen</a>',goToDashboard:"Wenn Sie der Site-Besitzer sind, können Sie sich im <a href={url}>Dashboard anmelden</a>."}},common:{branding:"Branding",theming:"Design",navigation:"Navigation",sitemap:"Sitemap",advanced:"Erweitert",performance:"Leistung",docs:"Dokumente",comingSoon:"Bald verfügbar",accessKeys:"Zugriffsschlüssel",required:"Erforderlich"},connectCli:{title:"Verbinden, um Zugangsschlüssel zu generieren",scan:"Scannen Sie folgenden QR-Code, um den Zugangsschlüssel zu generieren",success:"Erfolgreich autorisiert",successDesc:"Zugriffsschlüssel erfolgreich erstellt. Sie können diese Seite sicher schließen.",invalidSession:"Ungültige Sitzung",invalidSessionDesc:"Sitzung existiert nicht oder ist abgelaufen. Verwenden Sie den Befehl 'blocklet deploy --endpoint {endpoint}', um den Zugriffsschlüssel neu zu generieren.",connectionError:"Zugriffsschlüssel konnte nicht generiert werden",home:"Zurück zur Startseite",tips:{title:"Zugriffsschlüssel generieren",item1:"Unterstützt lokale Bereitstellung von Blocklets in der aktuellen Anwendung",item2:"Wird in der Liste der Zugriffsschlüssel der Anwendung angezeigt",item3:"Sie können den Zugriffsschlüssel jederzeit in der Liste widerrufen"},upload:"Sie können jetzt lokale Blocklets mit dem generierten Zugriffsschlüssel hochladen.",closeDelay:"Diese Seite wird in {seconds} Sekunden geschlossen."},notFoundOauthClient:"OAuth-App nicht gefunden, bitte überprüfen Sie Ihre OAuth-Konfiguration und versuchen Sie es erneut.",userCenter:{addWebhook:"Externe Benachrichtigung hinzufügen",cancel:"Abbrechen",common:{cancel:"Abbrechen",confirm:"Bestätigen",invalid:"Ungültig",nft:"NFTs",noNFT:"Kein NFT",required:"Erforderlich"},commonSetting:{locale:"Bevorzugte Sprache",title:"Allgemeine Einstellungen"},confirm:"Bestätigen",createdAt:"Erste aktive Zeit",currentPassport:"Pass",currentSession:"Aktuelle Sitzung",dangerZone:{deleteAccount:"Konto löschen",title:"Gefahrenzone",deleteAccountDescription:"Konto löschen verhindert die Anmeldung, Ihre Daten werden vollständig von der Plattform gelöscht und können nicht wiederhergestellt werden.",delete:"Löschen"},destroyMyself:{error:"Konto löschen fehlgeschlagen"},deviceType:"Gerätetyp",emailNotification:"E-Mail-Benachrichtigung",expired:"Abgelaufen",lastLoginIp:"Letzte Anmelde-IP",logout:"Abmelden",logoutThisSession:"Abmelden von dieser Sitzung",logoutThisSessionConfirm:"Sind Sie sicher, diese Sitzung zu verlassen?",noPassport:"Noch kein Pass",notificationManagement:"Benachrichtigungen",offline:"Offline",online:"Aktiv",passport:"Pässe",platform:"Plattform",privacyManagement:"Privatsphäre",pushNotification:"Push-Benachrichtigung (powered by PushKit)",remove:"Entfernen",saveSuccess:"Speichern erfolgreich",sessionManagement:"Sitzungsverwaltung",storage:{spaces:{tips:"Tipps",label:"Geben Sie DID Spaces Gateway ein",connectedWithName:"Sie haben erfolgreich eine Verbindung zu {name} hergestellt",gateway:{delete:{failed:"Gateway löschen fehlgeschlagen"}},provideNFT:{title:"Bitte zeige das DID Spaces NFT für {appName}",scan:"Verwenden Sie Ihre DID Wallet, um der App {appName} zu erlauben, DID Space NFT anzuzeigen",success:"Erfolgreich verbunden"},connect:{useWallet:"Mit DID Wallet verbinden",useWalletReconnect:"Erneut mit DID Wallet verbinden",providerForStorage:"Bitte verbinden Sie Ihre DID Spaces"},connected:{title:"Verbunden DID Spaces",tag:"Verbunden",switch:"DID Spaces wechseln"}}},thirdPartyLogin:{connect:"Verbinden",disconnect:"Trennen",mainProviderCantRemove:"Hauptkonto darf nicht entfernt werden",title:"Verbundene Accounts",confirmUnbind:"Sind Sie sicher, {name} zu entbinden?",confirmUnbindDescription:"Sie können sich nach dem Entbündeln nicht mehr mit {name} bei diesem Konto anmelden. Wenn Sie nach dem Entbündeln weiterhin mit {name} angemeldet sind, wird automatisch ein neues Konto erstellt!",disconnectPasskey:"Sind Sie sicher, {name} zu entfernen?",disconnectPasskeyDescription:"Sie können sich nach dem Entfernen mit diesem Passkey nicht mehr anmelden. Wenn Sie nach dem Entfernen noch eingeloggt sind, wird automatisch ein neues Konto erstellt!",walletAccountCantRemove:"Wallet-Konto darf nicht entfernt werden",mainAccount:"Hauptkonto",walletAccount:"Wallet Konto",dontSupportRemoveinArcSphere:"Entfernen des Passkeys in ArcSphere wird nicht unterstützt, bitte im Desktop-Browser entfernen"},unknown:"Unbekannt",updatedAt:"Letzte Aktivitätszeit",user:"Benutzer",walletNotification:"DID Wallet Benachrichtigung",walletOS:"Wallet OS",webhook:{slack:"Slack",url:"Benutzerdefinierte URL"},webhookTested:"Testnachricht gesendet",toPublic:'Öffentliche "{name}" Seite',logoutAll:"Alle {type} Sitzungen abmelden",logoutAllTips:"Aktuelle Sitzung wird nicht abgemeldet",logoutAllSession:"Alle {type} Sitzungen abmelden",logoutAllSessionConfirm:"Sind Sie sicher, dass Sie alle {type} Sitzungen abmelden möchten?",actions:"Aktionen"},aigne:{notAuthorized:"Nicht autorisiert",connectTo:"Mit {appName} verbinden",accessTips:{tips1:"{appName} kann auf {accessAppName} zugreifen und in Ihrem Namen handeln",tips2:"Fahren Sie nur fort, wenn Sie {appName} vertrauen",tips3:'Sie können den Zugriff jederzeit in den <a href="{url}" target="_blank">{accessAppName} Einstellungen</a> widerrufen',switchPassport:"Passport {required_roles} wird verwendet, um die Autorisierung abzuschließen"},cli:"AIGNE CLI"}};export{e as default};
|
|
1
|
+
const e={auth:{noPermission:{title:"Keine Erlaubnis",description:"Du bist nicht der Administrator des Blocklets"}},login:{reLogin:"Verbinden",description:"Du musst deine DIDs Wallet verbinden, um auf {name} zuzugreifen",already:"Du bist verbunden als",connectWallet:"Verbinde das DID Wallet",closeWindow:"Fenster schließen",accessLimit:{title:"Seitenzugriff eingeschränkt",description:"Diese Seite erfordert die folgenden Pässe zum Zugriff, verbinden Sie sich bitte mit dem Portemonnaie, um den entsprechenden Pass zu ändern oder zu beantragen.",alreadyHavePassport:"Habe bereits den Reisepass",connectWithPassport:"Verbinde mit diesem Reisepass",buyPassport:"Kaufen Sie einen Reisepass"},switchDid:{title:"Konto wechseln",scan:"Verwenden Sie die folgenden Methoden, um das Konto zu wechseln",confirm:"Bestätige den Wechsel in deiner DID-Wallet",success:"Erfolgreich umgeschaltet"},switchSpecifiedDid:{title:"Konto wechseln",scan:"Du musst die DID zu {did} wechseln, um die folgenden Aktionen abzuschließen.",confirm:"Bestätigen Sie den Wechsel in Ihrer DID-Brieftasche",success:"Erfolgreich gewechselt"},connect:{title:"Verbinden",scan:"Verwenden Sie bitte die folgenden Methoden, um die Verbindung herzustellen",confirm:"Bestätigen Sie in Ihrem Konto",success:"Sie sind erfolgreich verbunden"},needManualClose:"Anmeldung erfolgreich. Wenn sich dieses Fenster nicht automatisch schließt, bitte schließen.",connectWithPassport:"Verbinde dich mit diesem Reisepass",invalidRedirectUrl:"Ungültige Weiterleitungs-URL",issueKyc:{pageDescription:"Schließen Sie die Verifizierung ab, um Ihr Konto zu sichern und ein wiederverwendbares NFT zu erhalten, das von anderen Websites vertraut werden kann (einmal überprüfen und überall präsentieren).",verifyButton:"Überprüfen",sendCodeButton:"Holen Sie sich einen Bestätigungscode",codeSentMessage:"Wir haben gerade einen Bestätigungscode an {email} gesendet. Der Code ist 30 Minuten lang gültig. Bitte überprüfen Sie Ihr Postfach oder Spam-Ordner.",codeSentSuccess:"Bestätigungscode erfolgreich gesendet",claim:"Bestätigungs-E-Mail-Zertifikat abrufen",scan:"Verbinden Sie Ihre DID-Brieftasche, um das Zertifikat zu erhalten",confirm:"Bestätigen Sie in Ihrem Konto",success:"Herzlichen Glückwunsch! Sie haben Ihre E-Mail erfolgreich verifiziert und das Zertifikat in Ihrem DID Wallet beansprucht.",backToHome:"Zurück zum Start",emailPlaceholder:"Ihre E-Mail-Adresse",verifyTitle:"Bestätigen Sie Ihre E-Mail-Adresse",issueTitle:"Anspruch E-Mail-Verifizierung NFT",verifyAction:"Überprüfen",issueAction:"Beanspruchung",issueTarget:"Du bist {action} für die folgende DID, klicke auf den Avatar, um eine weitere DID hinzuzufügen"},updateKyc:{button:"Zertifikat präsentieren",title:"Präsentieren Sie das verifizierte E-Mail-Zertifikat",scan:"Verbinden Sie Ihre DID-Brieftasche, um das Zertifikat vorzulegen",confirm:"Bestätigen Sie in Ihrem Konto",success:"Herzlichen Glückwunsch! Ihr NFT wurde überprüft und akzeptiert."},invalidOpenerUrl:"Ungültige Opener-URL"},studio:{home:"Studio",preferences:"Präferenzaufbau",localization:"Lokalisierung",branding:"Markenbilder",ratio:"Verhältnis",size:"Größe",count:"Zählen",tip:"Tipp",change:"Klicken Sie auf das Logo, um es zu ändern.",order:"Bestellung",orderTip:"Ziehen zum Ändern",orderTipLong:"Ziehen Sie, um zu ändern. Wenn Sie Screenshots auf der Festplatte löschen, aktualisieren Sie bitte die Seite.",type:"Typ",videoTipLong:"Klicke auf das Cover, um den Videolink zu bearbeiten.",video:"Video",videoTooltip:"Ziehen Sie, um die Reihenfolge zu ändern.",videoType:"Unterstützte Webseiten",videoDialogTitle:"Video hinzufügen",videoDialogEditTitle:"Video bearbeiten/löschen",videoInputLabel:"Geben Sie einen YouTube- oder Vimeo-Videolink ein",videoDialogNoSrc:"Bitte geben Sie einen gültigen Videolink ein",duplicateVideo:"Dieses Video wurde hinzugefügt",confirm:"Bestätigen",cancel:"Abbrechen",preview:"Vorschau",delete:"Löschen",title:"Bilder für {title} bereitstellen",description:"Mehr Informationen finden Sie unter",documentation:"Dokumentation"},blocklet:{startApplication:"Starte Anwendung",startDescription:"Bereit, {name} zu starten",start:"Start",starting:"Starten...",open:"Öffnen",suspended:"Anwendung ausgesetzt",manageSubscription:"Abonnement verwalten",suspendedCausedByExpired:"Diese Anwendung wurde aufgrund der Kündigung Ihres Abonnements am {canceledAt} beendet. Sie können Ihr Abonnement vor {deadline} wieder aktivieren.",suspendedCausedByPastDue:"Diese Anwendung wurde wegen Zahlungsrückständen des Abonnements ausgesetzt. Schließen Sie die Erneuerung vor dem {deadline} ab, um den Dienst wieder aufzunehmen. Nach dem Stichtag ist keine Erneuerung oder Wiederaufnahme mehr möglich.",willBeSuspendedSoon:"Diese Anwendung wird den Dienst am {deadline} einstellen, da das Abonnement kurz vor der Kündigung steht. Wenn Sie sie weiterhin nutzen möchten, stellen Sie Ihr Abonnement rechtzeitig wieder her.",suspendedCausedByTerminated:"Die Anwendung wurde aufgrund der am {canceledAt} gekündigten Subscription beendet und die Daten werden bis zum {deadline} vorgehalten. Bevor die Daten gelöscht werden, können Sie die Daten in DID Spaces sichern.",terminated:"Anwendung beendet",gotoVisitError:"Kann URL des Blocklets nicht aufrufen, bitte später erneut versuchen.",payNow:"Jetzt bezahlen",startLoadingText:"Dienst wird gestartet und kann einige Minuten dauern, bitte warten...",startingProgress:{starting:"Starte {name}...",success:"{name} erfolgreich gestartet",failed:"{name} konnte nicht gestartet werden"}},setup:{steps:{connect:"Verbinden",didSpace:"DID Spaces",config:"Konfiguration",domain:"Domain",access:"Zugriff",fuel:"Kraftstoff",complete:"Komplett",introduction:"Einführung",selectNodeDesc:"Wähle Blocklet Server aus",launchAppDesc:"Blocklet auf Server installieren",setupAppDesc:"Setup Blocklet",launched:"Vervollständigen",aigne:"AIGNE Hub",branding:"Branding",accessTitle:"Zugriffskontrolle"},connect:{title:"Mit Blocklet verbinden",scan:"Nutzen Sie die folgenden Methoden, um das Benutzerprofil und die Owner-Rechte des Blocklet bereitzustellen, dann können Sie das Blocklet konfigurieren und starten.",confirm:"Bestätigen Sie in Ihrem Konto",success:"Sie sind erfolgreich verbunden"},domain:{addTitle:"Bestehende Domain binden (Optional)",title:"Domain auswählen",subTitle:"Wähle oder kaufe eine personalisierte Domain für dein Blocklet",label:"Bitte geben Sie einen gültigen Domainnamen an",tipStart:"Bitte stellen Sie sicher",tipEnd:"Hat Punkt zum aktuellen Server",addingCert:"Zertifikat wird erstellt...",recordType:"Datentyp",recordValue:"Aufzeichnungswert",genCertSuccess:"Das {domain}-Zertifikat wurde erfolgreich ausgestellt",genCertFailed:"Fehler beim Ausstellen des Zertifikats für {domain}: {message}",genCertFailedForNFTDomain:"NFT-Domain erfolgreich hinzugefügt, aber das HTTPS-Zertifikat konnte nicht generiert werden. Bitte versuche es später erneut.",buyDIDDomainTitle:"Kaufe eine DID-Domain (Optional)",buyDIDDomainTips:"Nach dem Kauf einer DID Domain wird die Domain automatisch an den Blocklet gebunden.",buyOrConnect:"Sie können eine bestehende Domain kaufen oder konfigurieren",skipDescription:"Sie können vorübergehend die Standarddomains verwenden. Diese Domains sind nicht für die Produktion geeignet und sollten nicht mit Kunden geteilt werden."},didSpace:{title:"Konfigurieren Sie DID Spaces",subTitle:"Verbinden Sie sich mit DID Spaces, um Ihre Blocklet-Daten sicher zu speichern",tips:"Tipps",description:"Konfigurieren Sie die DID Spaces Instanzadresse und speichern Sie die Anwendungsdaten in DID Spaces nach einer erfolgreichen Verbindung",label:"Bitte wählen Sie den DID Spaces-Dienst",connected:"Sie haben erfolgreich eine Verbindung mit DID Spaces hergestellt",connect:"Verbinden Sie jetzt",reconnect:"Verbinden",addressCannotEmpty:"Die Adresse darf nicht leer sein",addressNotValid:"{url} ist keine gültige Adresse.",authorize:{title:"Verbinde {appName} mit DID Spaces",scan:"Verwenden Sie die folgenden Methoden, um der App {appName} die Verbindung zu DID Spaces zu ermöglichen",success:"Erfolgreich verbunden"}},config:{title:"Konfiguration",subTitle:"Andere Konfigurationselemente (Sie müssen auch die folgenden Elemente festlegen)"},complete:{title:"Ihre App ist bereit",failedTitle:"Fehler beim Starten der App",backToServer:"Zurück zum Blocklet Server",notRunning:"App konnte beim ersten Versuch nicht starten, bitte erneut versuchen",readyToStart:"Ihre App ist bald fertig",opening:"Wird geöffnet..."},fuel:{title:"Kraftstoff zum Starten erforderlich",tipStart:"Schlitz",tipEnd:"Für diese Anwendung ist eine Guthaben erforderlich, damit die Anwendung ordnungsgemäß funktionieren kann. Die Gelder werden in der Anwendungsbrieftasche gespeichert und können für Transaktionsgebühren verwendet werden. Sie können Ihr Guthaben jederzeit abheben, wenn Sie die App nicht mehr verwenden.",addressTitle:"Anwendungskonto",addressTip:"Befüllen Sie die Anwendung mit einer DID Wallet",need:"Brauchen",current:"Aktuell",fuelApp:"Anwendung mit Treibstoff versorgen",subTitle:"Bieten Sie Treibstoff für die Anwendung, um sicherzustellen, dass die Anwendung normal läuft."},title:"Aufbau",next:"Nächster",previous:"Vorherige",continue:"Weiter",skip:"Überspringen",startNow:"Starte jetzt",confirm:"Bestätigen",cancel:"Abbrechen",aigne:{config:"Konfiguration",observability:"Beobachtbarkeit",playground:"Spielplatz",title:"Konfig AIGNE Hub",subTitle:"Verbinde AIGNE Hub, um KI-Funktionen für dein Blocklet zu aktivieren."},connectAccount:{title:"Konto verbinden",subTitle:"Verbinde mehrere Anmeldemethoden für einfachen und sicheren Zugriff auf dein Blocklet",wallet:"DID Wallet",walletDesc:"Sicherer, geräteübergreifend, sehr empfehlenswert",passkey:"Passwortschlüssel",passkeyDesc:"Fingerabdruck oder Gesichtserkennung, sichere Anmeldung mit einem Tippen",email:"E-Mail-Konto",emailDesc:"Systemstandardmethode, es wird empfohlen, andere Konten für eine bessere Sicherheit zu verbinden",recommended:"Empfohlen",connect:"Verbinden",connected:"Verbunden",statusSuccess:"Perfekt! Du hast {count} Anmeldemethoden eingerichtet und kannst die bequemste Art wählen, auf den Blocklet zuzugreifen.",statusSuggestion:"Wir empfehlen, mehrere Anmeldemethoden für Komfort und Sicherheit zu verbinden - so können Sie jederzeit einfach auf Ihr Blocklet zugreifen.",securityTip:"Wichtig: Sie haben derzeit nur die E-Mail-Anmeldung. Bei Verlust können Sie die App nicht verwalten. Es wird dringend empfohlen, eine Wallet oder Biometrie als Backup zu verbinden.",skipBinding:"Jetzt überspringen"},wizardTitle:"Einrichtungsassistent",wizardSubTitle:"Herzlichen Glückwunsch! Blocklet ist bereit, lass uns schnell benutzerdefinierte Inhalte einrichten",wizardTooltip:"Klicke hier, um den Assistenten erneut zu öffnen",stepOf:"Schritt {current} von {total}",finished:"Abschließen",branding:{title:"Branding & Logo",subTitle:"Gib deinem Blocklet einen Namen, eine Beschreibung und ein Logo, damit er hervorsticht"},wizardLoading:"Starte Einrichtungsassistenten, bitte warten...",accessControl:{title:"Zugriffskontrolle",subTitle:"Zugriffskontrolle festlegen, um zu verwalten, wer Ihren Blocklet verwenden kann"},later:"Später einrichten"},user:{walletNotification:"DID Wallet Benachrichtigung",emailNotification:"E-Mail-Benachrichtigung",smsNotification:"SMS-Benachrichtigung",addWebhook:"Neuen Webhook hinzufügen"},pageTitle:{login:"Anmelden",dashboard:"Blocklet-Dashboard",userCenter:"Benutzerzentrum",invite:"Einladen",issuePassport:"Reisepass ausstellen",lostPassport:"Verloren Reisepass"},errorPage:{404:{title:"Ups! Seite nicht gefunden",description:"Es scheint, dass die gesuchte Seite nicht existiert.",backHome:'Wenn Sie ein Besucher sind, können Sie <a href="{url}">zurück zur Startseite gehen</a>',goToDashboard:"Wenn Sie der Site-Besitzer sind, können Sie sich im <a href={url}>Dashboard anmelden</a>."}},common:{branding:"Branding",theming:"Design",navigation:"Navigation",sitemap:"Sitemap",advanced:"Erweitert",performance:"Leistung",docs:"Dokumente",comingSoon:"Bald verfügbar",accessKeys:"Zugriffsschlüssel",required:"Erforderlich"},connectCli:{title:"Verbinden, um Zugangsschlüssel zu generieren",scan:"Scannen Sie folgenden QR-Code, um den Zugangsschlüssel zu generieren",success:"Erfolgreich autorisiert",successDesc:"Zugriffsschlüssel erfolgreich erstellt. Sie können diese Seite sicher schließen.",invalidSession:"Ungültige Sitzung",invalidSessionDesc:"Sitzung existiert nicht oder ist abgelaufen. Verwenden Sie den Befehl 'blocklet deploy --endpoint {endpoint}', um den Zugriffsschlüssel neu zu generieren.",connectionError:"Zugriffsschlüssel konnte nicht generiert werden",home:"Zurück zur Startseite",tips:{title:"Zugriffsschlüssel generieren",item1:"Unterstützt lokale Bereitstellung von Blocklets in der aktuellen Anwendung",item2:"Wird in der Liste der Zugriffsschlüssel der Anwendung angezeigt",item3:"Sie können den Zugriffsschlüssel jederzeit in der Liste widerrufen"},upload:"Sie können jetzt lokale Blocklets mit dem generierten Zugriffsschlüssel hochladen.",closeDelay:"Diese Seite wird in {seconds} Sekunden geschlossen."},notFoundOauthClient:"OAuth-App nicht gefunden, bitte überprüfen Sie Ihre OAuth-Konfiguration und versuchen Sie es erneut.",userCenter:{addWebhook:"Externe Benachrichtigung hinzufügen",cancel:"Abbrechen",common:{cancel:"Abbrechen",confirm:"Bestätigen",invalid:"Ungültig",nft:"NFTs",noNFT:"Kein NFT",required:"Erforderlich"},commonSetting:{locale:"Bevorzugte Sprache",title:"Allgemeine Einstellungen"},confirm:"Bestätigen",createdAt:"Erste aktive Zeit",currentPassport:"Pass",currentSession:"Aktuelle Sitzung",dangerZone:{deleteAccount:"Konto löschen",title:"Gefahrenzone",deleteAccountDescription:"Konto löschen verhindert die Anmeldung, Ihre Daten werden vollständig von der Plattform gelöscht und können nicht wiederhergestellt werden.",delete:"Löschen"},destroyMyself:{error:"Konto löschen fehlgeschlagen"},deviceType:"Gerätetyp",emailNotification:"E-Mail-Benachrichtigung",expired:"Abgelaufen",lastLoginIp:"Letzte Anmelde-IP",logout:"Abmelden",logoutThisSession:"Abmelden von dieser Sitzung",logoutThisSessionConfirm:"Sind Sie sicher, diese Sitzung zu verlassen?",noPassport:"Noch kein Pass",notificationManagement:"Benachrichtigungen",offline:"Offline",online:"Aktiv",passport:"Pässe",platform:"Plattform",privacyManagement:"Privatsphäre",pushNotification:"Push-Benachrichtigung (powered by PushKit)",remove:"Entfernen",saveSuccess:"Speichern erfolgreich",sessionManagement:"Sitzungsverwaltung",storage:{spaces:{tips:"Tipps",label:"Geben Sie DID Spaces Gateway ein",connectedWithName:"Sie haben erfolgreich eine Verbindung zu {name} hergestellt",gateway:{delete:{failed:"Gateway löschen fehlgeschlagen"}},provideNFT:{title:"Bitte zeige das DID Spaces NFT für {appName}",scan:"Verwenden Sie Ihre DID Wallet, um der App {appName} zu erlauben, DID Space NFT anzuzeigen",success:"Erfolgreich verbunden"},connect:{useWallet:"Mit DID Wallet verbinden",useWalletReconnect:"Erneut mit DID Wallet verbinden",providerForStorage:"Bitte verbinden Sie Ihre DID Spaces"},connected:{title:"Verbunden DID Spaces",tag:"Verbunden",switch:"DID Spaces wechseln"}}},thirdPartyLogin:{connect:"Verbinden",disconnect:"Trennen",mainProviderCantRemove:"Hauptkonto darf nicht entfernt werden",title:"Verbundene Accounts",confirmUnbind:"Sind Sie sicher, {name} zu entbinden?",confirmUnbindDescription:"Sie können sich nach dem Entbündeln nicht mehr mit {name} bei diesem Konto anmelden. Wenn Sie nach dem Entbündeln weiterhin mit {name} angemeldet sind, wird automatisch ein neues Konto erstellt!",disconnectPasskey:"Sind Sie sicher, {name} zu entfernen?",disconnectPasskeyDescription:"Sie können sich nach dem Entfernen mit diesem Passkey nicht mehr anmelden. Wenn Sie nach dem Entfernen noch eingeloggt sind, wird automatisch ein neues Konto erstellt!",walletAccountCantRemove:"Wallet-Konto darf nicht entfernt werden",mainAccount:"Hauptkonto",walletAccount:"Wallet Konto",dontSupportRemoveinArcSphere:"Entfernen des Passkeys in ArcSphere wird nicht unterstützt, bitte im Desktop-Browser entfernen",confirmBindWallet:"Verbinde deine DID-Geldbörse?",confirmBindWalletDescription:"Nach der Verbindung können Sie sich mit Ihrer DID Wallet anmelden. Diese Verbindung ist dauerhaft und kann nicht geändert werden, also stellen Sie sicher, dass Sie das richtige Konto verbinden."},unknown:"Unbekannt",updatedAt:"Letzte Aktivitätszeit",user:"Benutzer",walletNotification:"DID Wallet Benachrichtigung",walletOS:"Wallet OS",webhook:{slack:"Slack",url:"Benutzerdefinierte URL"},webhookTested:"Testnachricht gesendet",toPublic:'Öffentliche "{name}" Seite',logoutAll:"Alle {type} Sitzungen abmelden",logoutAllTips:"Aktuelle Sitzung wird nicht abgemeldet",logoutAllSession:"Alle {type} Sitzungen abmelden",logoutAllSessionConfirm:"Sind Sie sicher, dass Sie alle {type} Sitzungen abmelden möchten?",actions:"Aktionen"},aigne:{notAuthorized:"Nicht autorisiert",connectTo:"Mit {appName} verbinden",accessTips:{tips1:"{appName} kann auf {accessAppName} zugreifen und in Ihrem Namen handeln",tips2:"Fahren Sie nur fort, wenn Sie {appName} vertrauen",tips3:'Sie können den Zugriff jederzeit in den <a href="{url}" target="_blank">{accessAppName} Einstellungen</a> widerrufen',switchPassport:"Passport {required_roles} wird verwendet, um die Autorisierung abzuschließen",switchPassportRequired:"Für die Autorisierung ist ein {required_roles}-Reisepass erforderlich. Bitte Berechtigungen ändern."},cli:"AIGNE CLI"}};export{e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e,ak as o,aX as h,T as j,z as g,W as i}from"./vendor-mui-core-
|
|
1
|
+
import{j as e,ak as o,aX as h,T as j,z as g,W as i}from"./vendor-mui-core-BFPsXaTR.js";import{V as _}from"./vendor-ux-CE4sOH7O.js";import{C as b}from"./click-to-copy-CK42VmRr.js";import{C as k}from"./confirm-DAMhAYR3.js";function R({title:c,description:l,confirmPlaceholder:m,cancel:d="",confirm:u="Confirm",params:p={},onCancel:f=()=>{},onConfirm:C,keyName:t}){const{t:a}=_(),n={title:()=>e.jsx(o,{children:c}),description:(s,y)=>{const x=r=>{y({...r,__disableConfirm:r.__disableConfirm})};return e.jsxs(o,{children:[e.jsx(h,{severity:"warning",style:{width:"100%"},children:a("common.notice")}),e.jsx(o,{sx:{my:3,b:{wordBreak:"break-word"}},dangerouslySetInnerHTML:{__html:l}}),e.jsxs(o,{style:{marginBottom:24},children:[a("common.click"),":",e.jsx(b,{"data-cy":"click-copy",children:t})]}),e.jsx(j,{component:"div",children:e.jsx(g,{label:m,autoComplete:"off","data-cy":"delete-confirm-input",variant:"outlined",fullWidth:!0,autoFocus:!0,value:s.inputVal,onChange:r=>{x({...s,inputVal:r.target.value,__disableConfirm:t!==r.target.value})}})})]})},confirm:u,cancel:d,onConfirm:C,onCancel:f,params:{inputVal:"",__disableConfirm:!0,...p}};return e.jsx(k,{title:n.title,description:n.description,confirm:n.confirm,cancel:n.cancel,params:n.params,onConfirm:n.onConfirm,onCancel:n.onCancel})}R.propTypes={title:i.any.isRequired,keyName:i.any.isRequired,description:i.any.isRequired,confirmPlaceholder:i.any.isRequired,cancel:i.string,confirm:i.string,params:i.object,onCancel:i.func,onConfirm:i.func.isRequired};export{R as D};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as o,a$ as p,W as r}from"./vendor-mui-core-
|
|
1
|
+
import{j as o,a$ as p,W as r}from"./vendor-mui-core-BFPsXaTR.js";import{L as f}from"./vendor-react-Dvs43sk9.js";import{v as l}from"./vendor-ux-CE4sOH7O.js";function m({did:s,href:t="",external:i=!1,avatarProps:n={},to:a="",...d}){const e=o.jsx(l,{did:s,...d,avatarProps:n,to:a});return t?i?o.jsx(p,{target:"_blank",href:t,underline:"hover",children:e}):o.jsx(f,{to:t,children:e}):e}m.propTypes={did:r.string.isRequired,to:r.string,href:r.string,avatarProps:r.object,external:r.bool};export{m as W};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as o,ak as i,at as
|
|
1
|
+
import{j as o,ak as i,at as g,W as u}from"./vendor-mui-core-BFPsXaTR.js";import{l as v,e as C,ac as b,d as B}from"./index-CmM1Fb8I.js";import{D as E,a as I,b as w}from"./domain-action-card-CPmR-n-P.js";import{s as T}from"./vendor-ux-CE4sOH7O.js";import{a as W}from"./page-header-gosgJ3fX.js";import{r,u as A}from"./vendor-react-Dvs43sk9.js";import{u as L}from"./useSetState-DFuQZPPV.js";import{S as x}from"./button-CaqBEwnu.js";import{S as $}from"./layout-CT8j1IGl.js";import{S as z}from"./step-actions-BZmm0ei-.js";import"./vendor-arcblock-DGOH9a3F.js";import"./vendor-utils-OrZFrHBP.js";import"./vendor-hooks-DmThWyyG.js";import"./permission-B7_8SVB9.js";import"./session-BtQQCb_u.js";import"./useAsyncRetry-Dyo5t1bq.js";import"./useAsync-1_z8P8M4.js";import"./confirm-DAMhAYR3.js";import"./index-DBs9Ljax.js";import"./actions-C4-lIUPY.js";import"./delete-confirm-Ca3miSFM.js";import"./click-to-copy-CK42VmRr.js";import"./useAsync-BKYfrNw7.js";import"./index-IGBGBXd_.js";import"./util-BLs2BnSw.js";import"./engine-lkWYvtZC.js";import"./lottie-web-4koyQiv_.js";import"./content-layout-W7JDm8iO.js";import"./use-mobile-Db5FIl07.js";function h({onNext:a=()=>{},onPrevious:f=()=>{}}){const{t:s}=r.useContext(T),[D,d]=r.useState(!1),{blocklet:e}=v(),[p,S]=r.useState(""),j=((e?.site||{}).domainAliases||[]).map(t=>C.replaceSlotToIp(t.value,p)),[n,m]=L({domain:"",invalidDNSDomain:null,type:"",addDomainState:{text:""}}),c=e.environments?.find(t=>t.key==="BLOCKLET_APP_PK")?.value,y=j.find(t=>b.isDidDomain(t)),[l,P]=A();return r.useEffect(()=>{B.get(`/dns-resolve?hostname=${window.location.hostname}`).then(({data:t})=>{S(t.address||"")}).catch(t=>{console.error(t.message)})},[]),o.jsxs(H,{children:[o.jsx(i,{className:"header",children:o.jsx(W,{title:s("setup.domain.title"),subTitle:s("setup.domain.subTitle"),onClickBack:f})}),o.jsxs(i,{className:"form form-container",sx:{display:"flex",flexDirection:"column",gap:3,overflowY:"auto"},children:[o.jsxs(i,{children:[o.jsx(i,{sx:{color:"text.primary",fontWeight:"fontWeightBold",fontSize:"1.125rem"},children:o.jsx(i,{sx:{display:"inline"},children:`${s("setup.domain.buyOrConnect")} (${s("common.optional")})`})}),o.jsx(i,{sx:{mt:1},children:o.jsx(I,{blocklet:e,bugDidDomainProps:{appPk:c,appId:e.appPid,siteId:e.site.id,teamDid:e.meta.did,inBlockletSetup:!0},connectDomainProps:{autoFocus:!1,appPk:c,appId:e.appPid,siteId:e.site.id,teamDid:e.meta.did,cnameDomain:y,currentIp:p,inBlockletSetup:!0,shouldCheckDomain:!0,onInputDomain:t=>{m({domain:t.domain,type:t.type}),d(t.error)},onStateChange:t=>m({addDomainState:t}),onSuccess:t=>{const k={domain:t.domain,type:t.type,nftDid:t.nftDid,chainHost:t.chainHost};l.set("redirect",t.domain),P(l,{replace:!0}),m(k),a()},onError:d}})})]}),o.jsx(i,{children:o.jsx(w,{inSetup:!0,showAllDomains:!0,systemTips:o.jsx(i,{sx:{color:"text.primary",fontWeight:"fontWeightBold",fontSize:"1.125rem",mb:1},children:o.jsx(i,{sx:{display:"inline"},children:s("setup.domain.skipDescription")})})})})]}),o.jsx(z,{mt:8,disabled:!!n.addDomainState.text,blocklet:e,onStartNow:()=>a("complete"),children:n.domain?o.jsx(x,{variant:"contained",loading:!!n.addDomainState.text,disabled:D||!!n.addDomainState.text||!n.domain,onClick:()=>a(),children:n.addDomainState.text||s("setup.continue")}):o.jsx(x,{variant:"contained",disabled:!!n.addDomainState.text,onClick:()=>a(),children:s("setup.continue")})})]})}function ht(a){return o.jsx(E,{children:o.jsx(h,{...a})})}h.propTypes={onNext:u.func,onPrevious:u.func};const H=g($)`
|
|
2
2
|
height: 100%;
|
|
3
3
|
overflow-y: hidden;
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{at as bn,Q as vn,T as A,b as Cn,H as E,n as te,k as wn,S as ze}from"./vendor-ux-B9VfuZTg.js";import{j as e,cR as Ne,cS as Sn,ak as h,a6 as z,b0 as Rn,T as R,aX as ye,D as H,J as ie,am as L,aN as $e,W as t,bb as _e,M as Oe,aO as An,aP as kn,cT as Tn,b7 as In,b9 as Pn,cU as qn,cV as En,b1 as W,P as We,ci as Ln,bh as Fn,at as Mn,a$ as Bn,cW as Un,cX as zn,cY as Nn,cZ as $n,c_ as Te,c$ as _,d0 as _n,z as On,n as Wn,bf as Hn,d1 as Vn,cb as Gn}from"./vendor-mui-core-DRxbhqaK.js";import{C as ee,J as Xn,a as Qn,e as Zn,H as je,a4 as Jn,a5 as Kn,n as Q}from"./vendor-utils-CUDP56Ff.js";import{r as j,e as He,g as Yn}from"./vendor-react-Dvs43sk9.js";import{u as se}from"./useSetState-DFuQZPPV.js";import{l as et,k as nt,b as Z,m as tt,w as it}from"./vendor-hooks-BlA8TRnZ.js";import{bg as Ve,ai as Ge,bh as st,bi as Xe,X as F,a9 as oe,V as Ie,$ as ot,aL as Pe,bj as rt,B as at,ab as lt,bk as Qe,aa as fe,bl as Ze,bm as ct,bn as dt,bo as mt,aV as ut,e as xe,bp as pt,bq as ft}from"./index-Dt8akALo.js";import{w as Je}from"./permission-ya4qYiIS.js";import{u as xt,D as qe}from"./useAsyncRetry-EEjDgDMR.js";import{C as re}from"./confirm-D1n-RK65.js";import{A as ht}from"./actions-B4VXcSRp.js";import{D as gt}from"./delete-confirm-DDcjKsY2.js";import{o as Ee}from"./vendor-arcblock-DeeG8u0h.js";import{u as Dt}from"./useAsync-fWwm3Jbj.js";import{f as N}from"./index-DBs9Ljax.js";import{v as yt}from"./index-Ba9-ArMT.js";import{g as jt,p as Le}from"./util-V3sRgqXp.js";import{C as bt}from"./click-to-copy-CO6UIqva.js";const vt=Ve({});vt.interceptors.request.use(n=>{const i=window.blocklet?window.blocklet.prefix:"/";return n.baseURL=i||"",n.url=ee("/api",String(n.url)),n.timeout=2e5,n.params=n.params||{},new URLSearchParams(n.url.split("?")[1]).has("locale")||(n.params.locale=bn()),n},n=>Promise.reject(n));const Ke=(...n)=>Ve(...n),Ct=(n,i)=>i?n?[n,...Array.isArray(i)?i:[i]]:i:n,wt=(n,{width:i=600,height:o=700,name:a="did-domain:popup"}={})=>{const s=window.screenX+(window.innerWidth-i)/2,r=window.screenY+(window.innerHeight-o)/2,u=[`left=${s}`,`top=${r}`,`width=${i}`,`height=${o}`,"resizable=no","scrollbars=yes","status=yes","popup=yes"],l=window.open("",a,u.join(","));if(l===null)throw new Error("Failed to open popup");return l.location.href=Xn(n,{opener:window.location.origin}),l},St="z2qaGosS3rZ7m5ttP3Nd4V4qczR9TryTcRV4p",Ye=async n=>{if(!n||!n?.trim())return null;const i=Ke(),o=new URL(n);o.pathname="__blocklet__.js",o.searchParams.set("type","json");const{data:a}=await i.get(o.toString()),s=a?.componentMountPoints?.find(m=>m.did===St),r=new URL(n);r.pathname=s?.mountPoint;const u=r.toString(),l=ee(u,"/api");return{base:u,api:l}},Rt=Ge({embed:{iconTip:"Click to view subscription details"},buy:{button:{title:"Buy DID Domain"},status:{inProgress:"Please wait while we are processing your request, the domain will be automatically resolved to the current app after the purchase...",success:"Purchase completed!"},error:{failedToCreateSession:"Failed to create session"}}}),At=Ge({embed:{iconTip:"点击查看订阅详情"},buy:{button:{title:"购买 DID 域名"},status:{inProgress:"请稍等,我们正在处理您的请求,购买域名后会自动解析到当前的应用...",success:"购买完成!"},error:{failedToCreateSession:"创建会话失败"}}}),kt={zh:At,en:Rt},Tt=async({didDomainURL:n,delegatee:i,delegateePk:o})=>{const a=await Ye(n);if(!a)return null;const s=Ke({baseURL:a.api}),{data:r}=await s.post("/payment/session",{delegatee:i,delegateePk:o});return{sessionId:r.sessionId,baseURL:a.base}};function It({delegatee:n,delegateePk:i,didDomainURL:o,locale:a,title:s="",onSuccess:r=()=>{},...u}){const{t:l}=A(),[m,p]=et({currentState:1}),f=j.useRef(null),c=nt(async()=>{const d=await Tt({didDomainURL:o,delegatee:n,delegateePk:i});return d},{debounceWait:500,debounceLeading:!0,debounceTrailing:!1,debounceMaxWait:3e3,refreshDeps:[],onError(d){console.error(d)}}),g=Z(d=>{d.data.type==="didDomain.success"&&(r?.({nftDid:d.data?.nftDid,domain:d.data?.domain,chainHost:d.data?.chainHost}),f.current?.close(),f.current=null,p({currentState:4}),setTimeout(()=>{p({currentState:8})},2e3))});tt(()=>{try{window.removeEventListener("message",g),f.current?.close(),f.current=null}catch(d){console.warn("Failed to close popup",d)}});const y=Z(()=>{p({currentState:1})}),x=Z(()=>{if(p({currentState:2}),!c.data){console.error("Failed to create session");return}b({sessionId:c.data.sessionId,baseURL:c.data.baseURL})}),b=Z(({sessionId:d,baseURL:w})=>{window.addEventListener("message",g);const C=new URL(w);C.searchParams.set("sessionId",d),C.searchParams.set("locale",a),C.searchParams.set("embed","1"),f.current=wt(C.toString());const q=setInterval(()=>{f.current?.closed&&(clearInterval(q),y())},1e3);return()=>clearInterval(q)});return e.jsxs(e.Fragment,{children:[e.jsx(Ne,{loading:c.loading,onClick:x,variant:"contained",startIcon:e.jsx(Sn,{}),...u,children:s||l("buy.button.title")}),e.jsxs(Cn,{fullWidth:!0,maxWidth:"xs",open:m.currentState>1&&m.currentState<8,onClose:y,children:[!c.error&&e.jsxs(h,{sx:{display:"flex",alignItems:"center",flexDirection:"column",gap:2},children:[m.currentState===2&&e.jsx(z,{size:50}),m.currentState===4&&e.jsx(Rn,{sx:{color:"primary.main",fontSize:"5rem"}}),m.currentState===2&&e.jsx(R,{children:l("buy.status.inProgress")}),m.currentState===4&&e.jsx(R,{children:l("buy.status.success")})]}),c.error&&e.jsx(ye,{severity:"error",children:l("buy.error.failedToCreateSession")})]})]})}function Pt(n){return e.jsx(vn,{locale:n.locale,translations:kt,children:e.jsx(It,{...n})})}function qt({nftDid:n,didDomainURL:i,locale:o,sx:a={}}){const{t:s}=A(),[r,u]=se({safeIframeRef:null,popoverAnchorEl:null}),l=j.useRef(null),m=H(),p=ie(m.breakpoints.down("md")),f=x=>{u({popoverAnchorEl:x.currentTarget})},c=()=>{u({popoverAnchorEl:null})},g=it(async()=>{const x=await Ye(i);return x?x.base:null});if(!g.value)return null;if(g.loading)return e.jsx(z,{});const y=ee(g.value,`/embed/domain?nft-did=${n}&locale=${o}`);return e.jsxs(e.Fragment,{children:[e.jsx(L,{title:s("embed.iconTip"),children:e.jsx(h,{component:"img",src:ee(i,"/.well-known/service/blocklet/logo"),alt:"logo",onClick:f,sx:[{width:16,height:16},Ct({cursor:"pointer"},a)]})}),e.jsx($e,{id:"popover-info",open:!!r.popoverAnchorEl,anchorEl:r.popoverAnchorEl,onClose:c,anchorOrigin:{vertical:"bottom",horizontal:"right"},children:e.jsx("iframe",{ref:l,title:s("common.subscription"),width:p?"320px":"400px",height:"350px",style:{border:0,display:"block"},src:y})})]})}const Et=n=>["waiting","creating","renewaling"].includes(n);function en({siteId:n,domain:i,onAdd:o=()=>{},children:a=null,did:s,issuing:r=!1,setIssuing:u=()=>{}}){const{t:l}=A(),[m,p]=j.useState(!1),{inService:f}=F(),[c,g]=j.useState(null),{api:y,ws:{useSubscription:x}}=F(),{mode:b,actions:{refreshDomainStatus:d}}=oe(),w=xt(async()=>{const{cert:T}=await y.findCertificateByDomain({input:{domain:i,did:s}});return T}),C=(T,S)=>{T.domain===i&&(u(!1),p(!1),f&&b!=="setup"&&(S==="success"?E.success(l("setup.domain.genCertSuccess",{domain:T.domain})):S==="error"&&E.error(l("setup.domain.genCertFailed",{domain:T.domain,message:T.message}))))};if(j.useEffect(()=>{w.loading||u(Et(w.value?.status))},[w.loading,w.value?.status,u]),x(Ie.BlockletEvents.certError,T=>C(T,"error")),x(Ie.BlockletEvents.certIssued,T=>{w.retry(),d(T.domain),C(T,"success")}),w.loading||w.value?.status==="normal")return"";const q=()=>{p(!1),g(null)},B=async()=>{p(!0);try{await y.issueLetsEncryptCert({input:{siteId:n,domain:i,did:s,inBlockletSetup:b==="setup"}}),o(),u(!0)}catch(T){console.error(T),u(!1)}finally{p(!1),g(null)}},M={title:l("router.cert.genLetsEncryptCert.title"),description:e.jsxs("div",{children:[e.jsx(ye,{severity:"success",children:l("router.cert.genLetsEncryptCert.dnsTip")}),l("router.cert.genLetsEncryptCert.description")]}),confirm:l("common.confirm"),onConfirm:B,onCancel:q},U=T=>{T.stopPropagation(),g(M)};return e.jsxs(e.Fragment,{children:[r?e.jsx(L,{title:l("router.cert.issuing"),children:e.jsx(z,{size:13,style:{fontSize:"13px"}})}):a({loading:m,open:U}),c&&e.jsx(re,{color:"primary",title:c.title,description:c.description,confirm:c.confirm,params:c.params,onConfirm:c.onConfirm,onCancel:c.onCancel})]})}en.propTypes={domain:t.string.isRequired,did:t.string.isRequired,siteId:t.string.isRequired,onAdd:t.func,children:t.any,issuing:t.bool,setIssuing:t.func};function nn({domain:n,domainStatus:i,did:o,onAdd:a=()=>{},children:s=null,issuing:r=!1,setIssuing:u=()=>{},...l}){return st(n)||!Xe(n)||Qn(i)||i?.isHttps?"":e.jsx(en,{...l,domain:n,did:o,onAdd:a,issuing:r,setIssuing:u,children:s})}nn.propTypes={domain:t.string.isRequired,domainStatus:t.shape({isHttps:t.bool}).isRequired,did:t.string.isRequired,onAdd:t.func,children:t.any,issuing:t.bool,setIssuing:t.func};function tn({id:n,domain:i,children:o=null,teamDid:a="",onDelete:s=null}){const{t:r}=A(),[u,l]=j.useState(!1),[m,p]=j.useState(null),{api:f}=F(),c=()=>{l(!1),p(null)},g=async()=>{l(!0);try{await f.deleteDomainAlias({input:{id:n,domainAlias:i,teamDid:a}}),s?.(),await ot(2e3)}catch(b){E.error(b.message)}finally{p(null),l(!1)}},y={keyName:i,title:r("router.domainAlias.delete.title"),description:r("router.domainAlias.delete.description",{domain:i}),confirmPlaceholder:r("router.domainAlias.delete.confirmPlaceholder",{domain:i}),confirm:r("common.delete"),onConfirm:g,onCancel:c},x=b=>{b.stopPropagation(),p(y)};return e.jsxs(e.Fragment,{children:[typeof o=="function"?o({loading:u,open:x}):e.jsxs(te,{edge:"end",onClick:x,size:"small",className:"rule-action",color:"error","data-cy":"action-delete-domain-alias",children:[u?e.jsx(z,{size:16}):e.jsx(_e,{style:{fontSize:16}}),r("common.delete")]}),m&&e.jsx(gt,{keyName:m.keyName,title:m.title,description:m.description,confirmPlaceholder:m.confirmPlaceholder,confirm:m.confirm,params:m.params,onConfirm:m.onConfirm,onCancel:m.onCancel})]})}tn.propTypes={id:t.string.isRequired,domain:t.string.isRequired,children:t.any,teamDid:t.string,onDelete:t.func};function sn({site:n,domain:i,blocklet:o,onDelete:a=()=>{}}){const{t:s}=A(),r=i.value===window.location.hostname;return e.jsx(ht,{"data-cy":"domain-actions",size:"large",actions:[({close:u})=>e.jsx(tn,{id:n.id,domain:i.value,teamDid:o?.meta?.did,onDelete:a,children:({open:l})=>e.jsx(L,{title:r?s("blocklet.router.currentDomainTip"):"",children:e.jsx("span",{children:e.jsxs(Oe,{disabled:i.isProtected||r,dense:!0,onClick:m=>{u(),l(m)},"data-cy":"action-toggle-block",children:[e.jsx(An,{style:{minWidth:24,marginRight:8},children:e.jsx(_e,{})}),e.jsx(kn,{primary:s("common.delete")})]},"remove")})})})]})}sn.propTypes={site:t.object.isRequired,domain:t.object.isRequired,blocklet:t.object.isRequired,onDelete:t.func};const ae=t.shape({href:t.string,accessibility:t.shape({loading:t.bool,accessible:t.bool}),domainStatus:t.shape({isHttps:t.bool,matchedCert:t.object}),dns:t.shape({resolved:t.bool,ip:t.string})});function on({certificate:n={}}){const[i,o]=j.useState(null),a=F(),{t:s,locale:r}=A(),u=p=>{o(p.currentTarget)},l=()=>{o(null)},m=!!i;return e.jsxs(e.Fragment,{children:[e.jsx(Tn,{"aria-owns":m?"mouse-over-popover":void 0,onMouseEnter:u,onMouseLeave:l,style:{color:"#44cdc6",fontSize:"1em",cursor:"pointer"}}),e.jsx($e,{id:"mouse-over-popover",style:{pointerEvents:"none"},open:m,anchorEl:i,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},onClose:l,disableRestoreFocus:!0,children:e.jsx(In,{children:e.jsxs(Pn,{style:{display:"flex"},children:[e.jsx("div",{children:e.jsx("img",{src:`${a.imgPrefix}/https-certificate-icon.png`,alt:"certificate icon",style:{maxHeight:"100%",maxWidth:"100%"}})}),e.jsxs(R,{component:"div",style:{marginLeft:"16px"},children:[e.jsx(R,{component:"div",style:{fontWeight:"bold"},children:n.domain}),e.jsx(R,{component:"div",children:`${s("common.issuer")}: ${Zn(n,"issuer.commonName","")}`}),e.jsx(R,{component:"div",children:`${s("router.cert.issuedOn")}: ${Pe(n.validFrom,r)}`}),e.jsx(R,{component:"div",children:`${s("router.cert.expiryOn")}: ${Pe(n.validTo,r)}`})]})]})})})]})}on.propTypes={certificate:t.object};function ne({domain:n,filters:i=["domain","http"]}){const{t:o}=A(),{value:a,domainStatus:s}=n;if(!Xe(a))return null;let r=null,u=null;const{isHttps:l,matchedCert:m}=s,{dns:{ip:p,isDnsResolved:f,isCnameMatch:c}={}}=s,g=f&&c;rt(a)||(g||p==="127.0.0.1"?r=e.jsx(L,{title:o("router.domain.verify.ok"),children:e.jsx(qe,{color:"success"})}):r=e.jsx(L,{title:o("router.domain.verify.notResolved"),children:e.jsx(qe,{color:"error"})})),g?l?u=e.jsx(on,{certificate:m}):u=e.jsx(L,{title:o("router.domain.https.bad"),children:e.jsx(qn,{style:{color:"#D0021B",fontSize:"1em",cursor:"pointer"}})}):u=e.jsx(L,{title:o("router.domain.verify.notResolved"),children:e.jsx(En,{style:{color:"#D0021B",fontSize:"1em",cursor:"pointer"}})});const y=i.map(x=>x==="domain"?r:x==="http"?u:null);return j.createElement(j.Fragment,null,...y)}ne.propTypes={domain:ae.isRequired,filters:t.array};const Lt=Je(be,"mutate_blocklets"),Ft=Je(be,"",at);function pi(n){const{inService:i}=F(),{blocklet:o,loadingRuntimeInfo:a}=oe();let s=Lt;return i&&(s=Ft),e.jsx(s,{...n,blocklet:o,inService:i,loadingRuntimeInfo:a})}const Fe="nft-domain";function be({hasPermission:n=!1,blocklet:i,loadingRuntimeInfo:o=!1,inService:a=!1,showAllDomains:s=!1,updateBlockletDomainAliases:r=()=>{},systemTips:u=null}){const{t:l}=A(),m=ie(d=>d.breakpoints.down("md")),p=j.useMemo(()=>{let d=n;return lt(i)&&(d=d&&a),d},[n,a,i]),{site:f}=i,c=j.useMemo(()=>Qe(i.site?.domainAliases),[i.site?.domainAliases]),g=j.useMemo(()=>c.filter(d=>!fe.isCustomDomain(d.value)),[c]),y=j.useMemo(()=>c.filter(d=>fe.isCustomDomain(d.value)),[c]),x=j.useMemo(()=>y.filter(d=>d.type!==Fe),[y]),b=j.useMemo(()=>y.filter(d=>d.type===Fe),[y]);return e.jsxs(e.Fragment,{children:[e.jsxs(W,{sx:{gap:3},children:[!!b.length&&e.jsx(Y,{title:l("common.didDomains"),description:l("common.didDomainsDescription"),domains:b,hasMutatePermission:p,blocklet:i,site:f,mobile:m,showAllDomains:s,updateBlockletDomainAliases:r}),!!x.length&&e.jsx(Y,{title:l("common.manualDomains"),description:l("common.manualDomainsDescription"),domains:x,hasMutatePermission:p,blocklet:i,site:f,mobile:m,showAllDomains:s,updateBlockletDomainAliases:r}),!!g.length&&e.jsxs(h,{children:[u,e.jsx(Y,{title:l("common.systemDomains"),description:l("common.systemDomainsDescription"),domains:g,hasMutatePermission:p,blocklet:i,site:f,mobile:m,updateBlockletDomainAliases:r})]})]}),!c.length&&(o?e.jsx(z,{size:16}):e.jsx(wn,{children:l("common.empty")}))]})}be.propTypes={hasPermission:t.bool,blocklet:t.object.isRequired,loadingRuntimeInfo:t.bool,inService:t.bool.isRequired,showAllDomains:t.bool,updateBlockletDomainAliases:t.func,systemTips:t.node};function J({children:n=null}){return e.jsx(h,{component:"span",sx:{verticalAlign:"bottom"},children:n})}J.propTypes={children:t.node};function he({domain:n,children:i,suffix:o=null,...a}){const{t:s,locale:r}=A(),u=H(),{href:l,accessibility:m,value:p}=n,f=j.useCallback(()=>e.jsx(ze,{content:je(p),locale:r,style:{marginLeft:"4px",color:u.palette.text.secondary,fontSize:"0.8em"}}),[p,r,u]);return!m||m.loading?e.jsxs(me,{component:"span",...a,children:[e.jsx(L,{title:void 0,placement:"top-end",children:e.jsx(h,{component:"span",children:i})}),f(),e.jsx(J,{children:o}),e.jsx(L,{title:s("blocklet.router.checkUrlAccessible"),placement:"top-end",children:e.jsx(h,{component:"span",className:"status",children:e.jsx(z,{size:13,style:{fontSize:"13px"}})})})]}):m.accessible?e.jsxs(me,{component:"span",...a,children:[e.jsx(h,{component:"a",href:l,target:"_blank",rel:"noopener noreferrer",sx:{color:n.loading?"text.disabled":void 0},children:e.jsx(L,{title:void 0,placement:"top-end",children:e.jsx(h,{component:"span",children:i})})}),f(),e.jsx(J,{children:o})]}):e.jsxs(me,{component:"span",...a,children:[e.jsx(L,{title:s("blocklet.router.urlInaccessible"),placement:"top-end",children:e.jsx(h,{component:"span",children:i})}),!n.loading&&f(),e.jsx(J,{children:o})]})}he.propTypes={domain:ae.isRequired,children:t.any.isRequired,suffix:t.node};const me=Mn(h)`
|
|
1
|
+
import{ay as bn,T as vn,V as A,q as Cn,H as E,p as te,z as wn,Z as ze}from"./vendor-ux-CE4sOH7O.js";import{j as e,cR as Ne,cS as Sn,ak as h,a6 as z,b0 as Rn,T as R,aX as ye,D as H,J as ie,am as L,aN as $e,W as t,bb as _e,M as We,aO as An,aP as kn,cT as Tn,b7 as In,b9 as Pn,cU as qn,cV as En,b1 as O,P as Oe,ci as Ln,bh as Fn,at as Mn,a$ as Bn,cW as Un,cX as zn,cY as Nn,cZ as $n,c_ as Te,c$ as _,d0 as _n,z as Wn,n as On,bf as Hn,d1 as Vn,cb as Gn}from"./vendor-mui-core-BFPsXaTR.js";import{C as ee,J as Zn,a as Xn,e as Jn,H as je,a4 as Kn,a5 as Qn,n as X}from"./vendor-utils-OrZFrHBP.js";import{r as j,e as He,g as Yn}from"./vendor-react-Dvs43sk9.js";import{u as se}from"./useSetState-DFuQZPPV.js";import{l as et,k as nt,b as J,m as tt,w as it}from"./vendor-hooks-DmThWyyG.js";import{bj as Ve,U as Ge,bk as st,bl as Ze,Z as F,ab as oe,X as Ie,a1 as ot,aM as Pe,bm as rt,B as at,ad as lt,bn as Xe,ac as fe,bo as Je,bp as ct,bq as dt,br as mt,aW as ut,e as xe,bs as pt,bt as ft}from"./index-CmM1Fb8I.js";import{w as Ke}from"./permission-B7_8SVB9.js";import{u as xt,D as qe}from"./useAsyncRetry-Dyo5t1bq.js";import{C as re}from"./confirm-DAMhAYR3.js";import{A as ht}from"./actions-C4-lIUPY.js";import{D as gt}from"./delete-confirm-Ca3miSFM.js";import{o as Ee}from"./vendor-arcblock-DGOH9a3F.js";import{u as Dt}from"./useAsync-BKYfrNw7.js";import{f as N}from"./index-DBs9Ljax.js";import{v as yt}from"./index-IGBGBXd_.js";import{g as jt,p as Le}from"./util-BLs2BnSw.js";import{C as bt}from"./click-to-copy-CK42VmRr.js";const vt=Ve({});vt.interceptors.request.use(n=>{const i=window.blocklet?window.blocklet.prefix:"/";return n.baseURL=i||"",n.url=ee("/api",String(n.url)),n.timeout=2e5,n.params=n.params||{},new URLSearchParams(n.url.split("?")[1]).has("locale")||(n.params.locale=bn()),n},n=>Promise.reject(n));const Qe=(...n)=>Ve(...n),Ct=(n,i)=>i?n?[n,...Array.isArray(i)?i:[i]]:i:n,wt=(n,{width:i=600,height:o=700,name:a="did-domain:popup"}={})=>{const s=window.screenX+(window.innerWidth-i)/2,r=window.screenY+(window.innerHeight-o)/2,u=[`left=${s}`,`top=${r}`,`width=${i}`,`height=${o}`,"resizable=no","scrollbars=yes","status=yes","popup=yes"],l=window.open("",a,u.join(","));if(l===null)throw new Error("Failed to open popup");return l.location.href=Zn(n,{opener:window.location.origin}),l},St="z2qaGosS3rZ7m5ttP3Nd4V4qczR9TryTcRV4p",Ye=async n=>{if(!n||!n?.trim())return null;const i=Qe(),o=new URL(n);o.pathname="__blocklet__.js",o.searchParams.set("type","json");const{data:a}=await i.get(o.toString()),s=a?.componentMountPoints?.find(m=>m.did===St),r=new URL(n);r.pathname=s?.mountPoint;const u=r.toString(),l=ee(u,"/api");return{base:u,api:l}},Rt=Ge({embed:{iconTip:"Click to view subscription details"},buy:{button:{title:"Buy DID Domain"},status:{inProgress:"Please wait while we are processing your request, the domain will be automatically resolved to the current app after the purchase...",success:"Purchase completed!"},error:{failedToCreateSession:"Failed to create session"}}}),At=Ge({embed:{iconTip:"点击查看订阅详情"},buy:{button:{title:"购买 DID 域名"},status:{inProgress:"请稍等,我们正在处理您的请求,购买域名后会自动解析到当前的应用...",success:"购买完成!"},error:{failedToCreateSession:"创建会话失败"}}}),kt={zh:At,en:Rt},Tt=async({didDomainURL:n,delegatee:i,delegateePk:o})=>{const a=await Ye(n);if(!a)return null;const s=Qe({baseURL:a.api}),{data:r}=await s.post("/payment/session",{delegatee:i,delegateePk:o});return{sessionId:r.sessionId,baseURL:a.base}};function It({delegatee:n,delegateePk:i,didDomainURL:o,locale:a,title:s="",onSuccess:r=()=>{},...u}){const{t:l}=A(),[m,p]=et({currentState:1}),f=j.useRef(null),c=nt(async()=>{const d=await Tt({didDomainURL:o,delegatee:n,delegateePk:i});return d},{debounceWait:500,debounceLeading:!0,debounceTrailing:!1,debounceMaxWait:3e3,refreshDeps:[],onError(d){console.error(d)}}),g=J(d=>{d.data.type==="didDomain.success"&&(r?.({nftDid:d.data?.nftDid,domain:d.data?.domain,chainHost:d.data?.chainHost}),f.current?.close(),f.current=null,p({currentState:4}),setTimeout(()=>{p({currentState:8})},2e3))});tt(()=>{try{window.removeEventListener("message",g),f.current?.close(),f.current=null}catch(d){console.warn("Failed to close popup",d)}});const y=J(()=>{p({currentState:1})}),x=J(()=>{if(p({currentState:2}),!c.data){console.error("Failed to create session");return}b({sessionId:c.data.sessionId,baseURL:c.data.baseURL})}),b=J(({sessionId:d,baseURL:w})=>{window.addEventListener("message",g);const C=new URL(w);C.searchParams.set("sessionId",d),C.searchParams.set("locale",a),C.searchParams.set("embed","1"),f.current=wt(C.toString());const q=setInterval(()=>{f.current?.closed&&(clearInterval(q),y())},1e3);return()=>clearInterval(q)});return e.jsxs(e.Fragment,{children:[e.jsx(Ne,{loading:c.loading,onClick:x,variant:"contained",startIcon:e.jsx(Sn,{}),...u,children:s||l("buy.button.title")}),e.jsxs(Cn,{fullWidth:!0,maxWidth:"xs",open:m.currentState>1&&m.currentState<8,onClose:y,children:[!c.error&&e.jsxs(h,{sx:{display:"flex",alignItems:"center",flexDirection:"column",gap:2},children:[m.currentState===2&&e.jsx(z,{size:50}),m.currentState===4&&e.jsx(Rn,{sx:{color:"primary.main",fontSize:"5rem"}}),m.currentState===2&&e.jsx(R,{children:l("buy.status.inProgress")}),m.currentState===4&&e.jsx(R,{children:l("buy.status.success")})]}),c.error&&e.jsx(ye,{severity:"error",children:l("buy.error.failedToCreateSession")})]})]})}function Pt(n){return e.jsx(vn,{locale:n.locale,translations:kt,children:e.jsx(It,{...n})})}function qt({nftDid:n,didDomainURL:i,locale:o,sx:a={}}){const{t:s}=A(),[r,u]=se({safeIframeRef:null,popoverAnchorEl:null}),l=j.useRef(null),m=H(),p=ie(m.breakpoints.down("md")),f=x=>{u({popoverAnchorEl:x.currentTarget})},c=()=>{u({popoverAnchorEl:null})},g=it(async()=>{const x=await Ye(i);return x?x.base:null});if(!g.value)return null;if(g.loading)return e.jsx(z,{});const y=ee(g.value,`/embed/domain?nft-did=${n}&locale=${o}`);return e.jsxs(e.Fragment,{children:[e.jsx(L,{title:s("embed.iconTip"),children:e.jsx(h,{component:"img",src:ee(i,"/.well-known/service/blocklet/logo"),alt:"logo",onClick:f,sx:[{width:16,height:16},Ct({cursor:"pointer"},a)]})}),e.jsx($e,{id:"popover-info",open:!!r.popoverAnchorEl,anchorEl:r.popoverAnchorEl,onClose:c,anchorOrigin:{vertical:"bottom",horizontal:"right"},children:e.jsx("iframe",{ref:l,title:s("common.subscription"),width:p?"320px":"400px",height:"350px",style:{border:0,display:"block"},src:y})})]})}const Et=n=>["waiting","creating","renewaling"].includes(n);function en({siteId:n,domain:i,onAdd:o=()=>{},children:a=null,did:s,issuing:r=!1,setIssuing:u=()=>{}}){const{t:l}=A(),[m,p]=j.useState(!1),{inService:f}=F(),[c,g]=j.useState(null),{api:y,ws:{useSubscription:x}}=F(),{mode:b,actions:{refreshDomainStatus:d}}=oe(),w=xt(async()=>{const{cert:T}=await y.findCertificateByDomain({input:{domain:i,did:s}});return T}),C=(T,S)=>{T.domain===i&&(u(!1),p(!1),f&&b!=="setup"&&(S==="success"?E.success(l("setup.domain.genCertSuccess",{domain:T.domain})):S==="error"&&E.error(l("setup.domain.genCertFailed",{domain:T.domain,message:T.message}))))};if(j.useEffect(()=>{w.loading||u(Et(w.value?.status))},[w.loading,w.value?.status,u]),x(Ie.BlockletEvents.certError,T=>C(T,"error")),x(Ie.BlockletEvents.certIssued,T=>{w.retry(),d(T.domain),C(T,"success")}),w.loading||w.value?.status==="normal")return"";const q=()=>{p(!1),g(null)},B=async()=>{p(!0);try{await y.issueLetsEncryptCert({input:{siteId:n,domain:i,did:s,inBlockletSetup:b==="setup"}}),o(),u(!0)}catch(T){console.error(T),u(!1)}finally{p(!1),g(null)}},M={title:l("router.cert.genLetsEncryptCert.title"),description:e.jsxs("div",{children:[e.jsx(ye,{severity:"success",children:l("router.cert.genLetsEncryptCert.dnsTip")}),l("router.cert.genLetsEncryptCert.description")]}),confirm:l("common.confirm"),onConfirm:B,onCancel:q},U=T=>{T.stopPropagation(),g(M)};return e.jsxs(e.Fragment,{children:[r?e.jsx(L,{title:l("router.cert.issuing"),children:e.jsx(z,{size:13,style:{fontSize:"13px"}})}):a({loading:m,open:U}),c&&e.jsx(re,{color:"primary",title:c.title,description:c.description,confirm:c.confirm,params:c.params,onConfirm:c.onConfirm,onCancel:c.onCancel})]})}en.propTypes={domain:t.string.isRequired,did:t.string.isRequired,siteId:t.string.isRequired,onAdd:t.func,children:t.any,issuing:t.bool,setIssuing:t.func};function nn({domain:n,domainStatus:i,did:o,onAdd:a=()=>{},children:s=null,issuing:r=!1,setIssuing:u=()=>{},...l}){return st(n)||!Ze(n)||Xn(i)||i?.isHttps?"":e.jsx(en,{...l,domain:n,did:o,onAdd:a,issuing:r,setIssuing:u,children:s})}nn.propTypes={domain:t.string.isRequired,domainStatus:t.shape({isHttps:t.bool}).isRequired,did:t.string.isRequired,onAdd:t.func,children:t.any,issuing:t.bool,setIssuing:t.func};function tn({id:n,domain:i,children:o=null,teamDid:a="",onDelete:s=null}){const{t:r}=A(),[u,l]=j.useState(!1),[m,p]=j.useState(null),{api:f}=F(),c=()=>{l(!1),p(null)},g=async()=>{l(!0);try{await f.deleteDomainAlias({input:{id:n,domainAlias:i,teamDid:a}}),s?.(),await ot(2e3)}catch(b){E.error(b.message)}finally{p(null),l(!1)}},y={keyName:i,title:r("router.domainAlias.delete.title"),description:r("router.domainAlias.delete.description",{domain:i}),confirmPlaceholder:r("router.domainAlias.delete.confirmPlaceholder",{domain:i}),confirm:r("common.delete"),onConfirm:g,onCancel:c},x=b=>{b.stopPropagation(),p(y)};return e.jsxs(e.Fragment,{children:[typeof o=="function"?o({loading:u,open:x}):e.jsxs(te,{edge:"end",onClick:x,size:"small",className:"rule-action",color:"error","data-cy":"action-delete-domain-alias",children:[u?e.jsx(z,{size:16}):e.jsx(_e,{style:{fontSize:16}}),r("common.delete")]}),m&&e.jsx(gt,{keyName:m.keyName,title:m.title,description:m.description,confirmPlaceholder:m.confirmPlaceholder,confirm:m.confirm,params:m.params,onConfirm:m.onConfirm,onCancel:m.onCancel})]})}tn.propTypes={id:t.string.isRequired,domain:t.string.isRequired,children:t.any,teamDid:t.string,onDelete:t.func};function sn({site:n,domain:i,blocklet:o,onDelete:a=()=>{}}){const{t:s}=A(),r=i.value===window.location.hostname;return e.jsx(ht,{"data-cy":"domain-actions",size:"large",actions:[({close:u})=>e.jsx(tn,{id:n.id,domain:i.value,teamDid:o?.meta?.did,onDelete:a,children:({open:l})=>e.jsx(L,{title:r?s("blocklet.router.currentDomainTip"):"",children:e.jsx("span",{children:e.jsxs(We,{disabled:i.isProtected||r,dense:!0,onClick:m=>{u(),l(m)},"data-cy":"action-toggle-block",children:[e.jsx(An,{style:{minWidth:24,marginRight:8},children:e.jsx(_e,{})}),e.jsx(kn,{primary:s("common.delete")})]},"remove")})})})]})}sn.propTypes={site:t.object.isRequired,domain:t.object.isRequired,blocklet:t.object.isRequired,onDelete:t.func};const ae=t.shape({href:t.string,accessibility:t.shape({loading:t.bool,accessible:t.bool}),domainStatus:t.shape({isHttps:t.bool,matchedCert:t.object}),dns:t.shape({resolved:t.bool,ip:t.string})});function on({certificate:n={}}){const[i,o]=j.useState(null),a=F(),{t:s,locale:r}=A(),u=p=>{o(p.currentTarget)},l=()=>{o(null)},m=!!i;return e.jsxs(e.Fragment,{children:[e.jsx(Tn,{"aria-owns":m?"mouse-over-popover":void 0,onMouseEnter:u,onMouseLeave:l,style:{color:"#44cdc6",fontSize:"1em",cursor:"pointer"}}),e.jsx($e,{id:"mouse-over-popover",style:{pointerEvents:"none"},open:m,anchorEl:i,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},onClose:l,disableRestoreFocus:!0,children:e.jsx(In,{children:e.jsxs(Pn,{style:{display:"flex"},children:[e.jsx("div",{children:e.jsx("img",{src:`${a.imgPrefix}/https-certificate-icon.png`,alt:"certificate icon",style:{maxHeight:"100%",maxWidth:"100%"}})}),e.jsxs(R,{component:"div",style:{marginLeft:"16px"},children:[e.jsx(R,{component:"div",style:{fontWeight:"bold"},children:n.domain}),e.jsx(R,{component:"div",children:`${s("common.issuer")}: ${Jn(n,"issuer.commonName","")}`}),e.jsx(R,{component:"div",children:`${s("router.cert.issuedOn")}: ${Pe(n.validFrom,r)}`}),e.jsx(R,{component:"div",children:`${s("router.cert.expiryOn")}: ${Pe(n.validTo,r)}`})]})]})})})]})}on.propTypes={certificate:t.object};function ne({domain:n,filters:i=["domain","http"]}){const{t:o}=A(),{value:a,domainStatus:s}=n;if(!Ze(a))return null;let r=null,u=null;const{isHttps:l,matchedCert:m}=s,{dns:{ip:p,isDnsResolved:f,isCnameMatch:c}={}}=s,g=f&&c;rt(a)||(g||p==="127.0.0.1"?r=e.jsx(L,{title:o("router.domain.verify.ok"),children:e.jsx(qe,{color:"success"})}):r=e.jsx(L,{title:o("router.domain.verify.notResolved"),children:e.jsx(qe,{color:"error"})})),g?l?u=e.jsx(on,{certificate:m}):u=e.jsx(L,{title:o("router.domain.https.bad"),children:e.jsx(qn,{style:{color:"#D0021B",fontSize:"1em",cursor:"pointer"}})}):u=e.jsx(L,{title:o("router.domain.verify.notResolved"),children:e.jsx(En,{style:{color:"#D0021B",fontSize:"1em",cursor:"pointer"}})});const y=i.map(x=>x==="domain"?r:x==="http"?u:null);return j.createElement(j.Fragment,null,...y)}ne.propTypes={domain:ae.isRequired,filters:t.array};const Lt=Ke(be,"mutate_blocklets"),Ft=Ke(be,"",at);function pi(n){const{inService:i}=F(),{blocklet:o,loadingRuntimeInfo:a}=oe();let s=Lt;return i&&(s=Ft),e.jsx(s,{...n,blocklet:o,inService:i,loadingRuntimeInfo:a})}const Fe="nft-domain";function be({hasPermission:n=!1,blocklet:i,loadingRuntimeInfo:o=!1,inService:a=!1,showAllDomains:s=!1,updateBlockletDomainAliases:r=()=>{},systemTips:u=null}){const{t:l}=A(),m=ie(d=>d.breakpoints.down("md")),p=j.useMemo(()=>{let d=n;return lt(i)&&(d=d&&a),d},[n,a,i]),{site:f}=i,c=j.useMemo(()=>Xe(i.site?.domainAliases),[i.site?.domainAliases]),g=j.useMemo(()=>c.filter(d=>!fe.isCustomDomain(d.value)),[c]),y=j.useMemo(()=>c.filter(d=>fe.isCustomDomain(d.value)),[c]),x=j.useMemo(()=>y.filter(d=>d.type!==Fe),[y]),b=j.useMemo(()=>y.filter(d=>d.type===Fe),[y]);return e.jsxs(e.Fragment,{children:[e.jsxs(O,{sx:{gap:3},children:[!!b.length&&e.jsx(Y,{title:l("common.didDomains"),description:l("common.didDomainsDescription"),domains:b,hasMutatePermission:p,blocklet:i,site:f,mobile:m,showAllDomains:s,updateBlockletDomainAliases:r}),!!x.length&&e.jsx(Y,{title:l("common.manualDomains"),description:l("common.manualDomainsDescription"),domains:x,hasMutatePermission:p,blocklet:i,site:f,mobile:m,showAllDomains:s,updateBlockletDomainAliases:r}),!!g.length&&e.jsxs(h,{children:[u,e.jsx(Y,{title:l("common.systemDomains"),description:l("common.systemDomainsDescription"),domains:g,hasMutatePermission:p,blocklet:i,site:f,mobile:m,updateBlockletDomainAliases:r})]})]}),!c.length&&(o?e.jsx(z,{size:16}):e.jsx(wn,{children:l("common.empty")}))]})}be.propTypes={hasPermission:t.bool,blocklet:t.object.isRequired,loadingRuntimeInfo:t.bool,inService:t.bool.isRequired,showAllDomains:t.bool,updateBlockletDomainAliases:t.func,systemTips:t.node};function K({children:n=null}){return e.jsx(h,{component:"span",sx:{verticalAlign:"bottom"},children:n})}K.propTypes={children:t.node};function he({domain:n,children:i,suffix:o=null,...a}){const{t:s,locale:r}=A(),u=H(),{href:l,accessibility:m,value:p}=n,f=j.useCallback(()=>e.jsx(ze,{content:je(p),locale:r,style:{marginLeft:"4px",color:u.palette.text.secondary,fontSize:"0.8em"}}),[p,r,u]);return!m||m.loading?e.jsxs(me,{component:"span",...a,children:[e.jsx(L,{title:void 0,placement:"top-end",children:e.jsx(h,{component:"span",children:i})}),f(),e.jsx(K,{children:o}),e.jsx(L,{title:s("blocklet.router.checkUrlAccessible"),placement:"top-end",children:e.jsx(h,{component:"span",className:"status",children:e.jsx(z,{size:13,style:{fontSize:"13px"}})})})]}):m.accessible?e.jsxs(me,{component:"span",...a,children:[e.jsx(h,{component:"a",href:l,target:"_blank",rel:"noopener noreferrer",sx:{color:n.loading?"text.disabled":void 0},children:e.jsx(L,{title:void 0,placement:"top-end",children:e.jsx(h,{component:"span",children:i})})}),f(),e.jsx(K,{children:o})]}):e.jsxs(me,{component:"span",...a,children:[e.jsx(L,{title:s("blocklet.router.urlInaccessible"),placement:"top-end",children:e.jsx(h,{component:"span",children:i})}),!n.loading&&f(),e.jsx(K,{children:o})]})}he.propTypes={domain:ae.isRequired,children:t.any.isRequired,suffix:t.node};const me=Mn(h)`
|
|
2
2
|
display: inline-block;
|
|
3
3
|
vertical-align: middle;
|
|
4
4
|
|
|
@@ -25,4 +25,4 @@ import{at as bn,Q as vn,T as A,b as Cn,H as E,n as te,k as wn,S as ze}from"./ven
|
|
|
25
25
|
margin-left: 8px;
|
|
26
26
|
font-size: 13px;
|
|
27
27
|
}
|
|
28
|
-
`;function ge({hasMutatePermission:n,site:i,domain:o,blocklet:a,onDelete:s}){return n&&!o.isProtected?e.jsx(sn,{site:i,domain:o,blocklet:a,onDelete:s}):null}ge.propTypes={hasMutatePermission:t.bool.isRequired,site:t.object.isRequired,domain:ae.isRequired,blocklet:t.object.isRequired,onDelete:t.func.isRequired};function K({siteId:n,domain:i,blocklet:o,hasMutatePermission:a}){const{info:s}=F(),{t:r,locale:u}=A(),[l,m]=j.useState(!1);return e.jsxs(h,{sx:{display:"flex",justifyContent:"flex-start",alignItems:"center",gap:.5,button:{lineHeight:1}},children:[i.type==="nft-domain"&&e.jsx(qt,{locale:u,nftDid:i.nftDid,didDomainURL:s.nftDomainUrl}),e.jsx(h,{sx:{display:"flex",mt:"-1px"},children:e.jsx(ne,{domain:i,filters:["http"]},`${i.value}-http`)}),a&&i.canGenerateCertificate&&e.jsx(nn,{siteId:n,domain:i.value,domainStatus:i.domainStatus,did:o.meta.did,issuing:l,setIssuing:m,children:({open:p})=>e.jsx(te,{sx:{padding:0},size:"small",onClick:f=>p(f),children:r("router.cert.genLetsEncryptCert.title")})})]})}K.propTypes={siteId:t.string.isRequired,domain:ae.isRequired,blocklet:t.object.isRequired,hasMutatePermission:t.bool.isRequired};function Y({title:n,description:i,domains:o=[],hasMutatePermission:a,blocklet:s,site:r,mobile:u,showAllDomains:l=!1,updateBlockletDomainAliases:m=()=>{}}){const[p,f]=j.useState(!1),c=j.useMemo(()=>l||p?o:o.slice(0,1),[o,p,l]),g=o.length>1,y=x=>a&&!x.isProtected;return e.jsx(We,{elevation:0,sx:{p:3,pb:l?3:1.5,display:"flex",alignItems:"flex-start",gap:3,borderRadius:2,border:"1px solid",borderColor:"divider",transition:"box-shadow 0.2s ease-in-out"},children:e.jsxs(W,{sx:{width:1},children:[e.jsxs(h,{sx:{mb:1.5},children:[e.jsx(R,{variant:"h6",children:n}),e.jsx(R,{sx:{fontSize:12,color:"text.secondary",mt:.5},children:i})]}),c.map((x,b)=>e.jsxs(W,{children:[b!==0&&e.jsx(h,{sx:{my:.75,width:1,height:"1px"}}),!u&&e.jsxs(h,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[e.jsxs(h,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsx(h,{sx:{height:28,display:"flex",alignItems:"center"},children:e.jsx(ne,{domain:x,filters:["domain"]},`${x.value}-domain`)}),e.jsxs(h,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-start",gap:.5,svg:{width:"1em",height:"1em"},img:{width:"0.9em",height:"0.9em"}},children:[e.jsx(he,{domain:x,target:"_blank",children:x.value}),e.jsx(h,{sx:{mt:"2px"},children:e.jsx(K,{siteId:s.site?.id,domain:x,blocklet:s,hasMutatePermission:a})})]})]}),e.jsx(h,{sx:{button:{padding:0}},children:e.jsx(ge,{hasMutatePermission:a,site:r,domain:x,blocklet:s,onDelete:()=>m(x,"delete")})})]}),u&&e.jsxs(h,{sx:{display:"flex",flexDirection:"column"},children:[e.jsxs(h,{sx:{display:"flex",justifyContent:"flex-start",gap:1},children:[e.jsx(h,{sx:{height:28,display:"flex",alignItems:"center"},children:e.jsx(ne,{domain:x,filters:["domain"]},`${x.value}-domain`)}),e.jsx(he,{domain:x,target:"_blank",suffix:y(x)?null:e.jsx(h,{sx:{display:"inline-flex",alignItems:"center",justifyContent:"space-between",svg:{width:"1em",height:"1rem"},img:{width:"0.9rem",height:"0.9rem"}},children:e.jsx(K,{siteId:s.site?.id,domain:x,blocklet:s,hasMutatePermission:a})}),children:x.value})]}),y(x)&&e.jsxs(h,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",ml:"18px"},children:[e.jsx(h,{sx:{display:"flex",alignItems:"center"},children:e.jsx(K,{siteId:s.site?.id,domain:x,blocklet:s,hasMutatePermission:a})}),e.jsx(h,{sx:{button:{padding:0}},children:e.jsx(ge,{hasMutatePermission:a,site:r,domain:x,blocklet:s,onDelete:()=>m(x,"delete")})})]})]})]},x.value)),g&&!l&&e.jsx(te,{onClick:()=>f(!p),sx:{p:0,mt:.5,alignSelf:"center"},children:p?e.jsx(Ln,{}):e.jsx(Fn,{})})]})})}Y.propTypes={title:t.string.isRequired,description:t.string.isRequired,domains:t.array.isRequired,hasMutatePermission:t.bool.isRequired,blocklet:t.object.isRequired,site:t.object.isRequired,mobile:t.bool.isRequired,showAllDomains:t.bool,updateBlockletDomainAliases:t.func};const rn=j.createContext({}),{Provider:Mt,Consumer:fi}=rn;function Bt({children:n}){const[i,o]=se({domain:"",error:null}),{locale:a}=A(),s={error:i.error,domain:i.domain,setError:r=>{o({error:r})},setDomain:r=>{const u=je(r),l=Ze(u,a);o({domain:u,error:l})}};return e.jsx(Mt,{value:{value:s},children:n})}function Ut(){const{value:n}=j.useContext(rn);return n}var ue,Me;function zt(){if(Me)return ue;Me=1;const{joinURL:n}=ct(),i=dt(),o="z2qaGosS3rZ7m5ttP3Nd4V4qczR9TryTcRV4p";return ue={DID_DOMAIN_SERVICE_DID:o,getDidDomainServiceURL:async s=>{if(!s||!s?.trim())return null;const r=new URL(s);r.pathname="__blocklet__.js",r.searchParams.set("type","json");const{data:u}=await i.get(r.toString()),l=u?.componentMountPoints?.find(c=>c.did===o),m=new URL(s);m.pathname=l?.mountPoint;const p=m.toString(),f=n(p,"/api");return{base:p,api:f,domain:n(f,"/domains")}}},ue}var Nt=zt();const $t=He(Jn),_t=He(Kn);var pe,Be;function Ot(){if(Be)return pe;Be=1;const n=$t,i=_t;function o(s){return!s||typeof s!="string"?!1:s.split(".").length===2}return pe={isTopLevelDomain:o,formatTopLevelDidDomain:s=>{const r=n(i(s));return r&&(o(r)?`www.${r}`:r)}},pe}var Ue=Ot(),Wt=mt();const Ht=Yn(Wt);function an({domain:n="",resolvedTarget:i,...o}){const{t:a,locale:s}=A();return e.jsxs(h,{sx:{backgroundColor:"rgb(236, 251, 253)",borderColor:"rgb(236, 251, 253)",borderRadius:"8px",padding:"12px"},...o,children:[e.jsxs(h,{sx:{display:"flex",flexWrap:"wrap"},children:[a("router.domain.setup.tipStart"),n&&e.jsx(h,{sx:{mx:.5,color:"primary.main",fontWeight:"fontWeightBold"},children:n}),a("router.domain.setup.tipEnd"),":"]}),e.jsxs(W,{sx:{gap:.5,"&>div":{mb:0},marginTop:"12px"},children:[e.jsx(De,{label:a("router.domain.setup.recordType"),value:"CNAME",locale:s}),e.jsx(De,{label:a("router.domain.setup.recordValue"),value:i,locale:s})]})]})}an.propTypes={domain:t.string,resolvedTarget:t.string.isRequired};function De({locale:n,label:i,value:o}){const a=ie(r=>r.breakpoints.down("md")),s=H();return e.jsx(yt,{name:i,nameWidth:120,children:e.jsxs(h,{sx:{display:"flex",alignItems:"center",lineHeight:1},children:[e.jsx(R,{component:"span",sx:[{color:"primary.main",overflow:"auto"},a?{maxWidth:"95%",wordWrap:"break-word"}:{wordWrap:"break-word"}],children:o}),e.jsx(ze,{content:o,locale:n,style:{marginLeft:"4px",color:s.palette.text.secondary}})]})})}De.propTypes={locale:t.string.isRequired,label:t.string.isRequired,value:t.string.isRequired};function ln({children:n=null,href:i="",sx:o=null,showIcon:a=!1,...s}){const r=H();return e.jsxs(Bn,{href:i,target:"_blank",...s,sx:{display:"inline-flex",alignItems:"center",color:"text.primary",":hover":{color:r.palette.primary.main},...o},children:[n,a&&e.jsx(Un,{fontSize:"small",sx:{ml:"4px",fontSize:"1rem"}})]})}ln.propTypes={children:t.node,sx:t.object,href:t.string,showIcon:t.bool};function cn({records:n}){return e.jsx(zn,{component:h,sx:{".MuiTableCell-root":{color:"text.primary"}},children:e.jsxs(Nn,{children:[e.jsx($n,{children:e.jsxs(Te,{children:[e.jsx(_,{children:"Type"}),e.jsx(_,{children:"Name"}),e.jsx(_,{children:"Data"})]})}),e.jsx(_n,{children:n.map(i=>e.jsxs(Te,{children:[e.jsx(_,{children:i.type}),e.jsx(_,{children:i.name}),e.jsx(_,{sx:{wordBreak:"break-word"},children:e.jsx(bt,{children:i.data})})]},i.name))})]})})}cn.propTypes={records:t.array.isRequired};function dn({url:n,domain:i=""}){const{t:o}=A();return e.jsxs(h,{sx:{display:"flex",flexDirection:"column",gap:2},children:[e.jsxs(h,{sx:{display:"flex",flexDirection:"column",gap:1},children:[e.jsx(R,{component:"h3",variant:"h6",children:o("setting.dns.step1Title")}),e.jsxs(R,{component:"section",children:[o("setting.dns.step1Desc1"),e.jsx(ln,{href:"https://lookup.icann.org/",target:"_blank",children:"ICANN"})]})]}),e.jsxs(h,{sx:{display:"flex",flexDirection:"column",gap:1},children:[e.jsx(R,{component:"h3",variant:"h6",children:o("setting.dns.step2Title",{url:n})}),e.jsx(R,{component:"section",children:o("setting.dns.step2Desc")})]}),e.jsxs(h,{sx:{display:"flex",flexDirection:"column",gap:1},children:[e.jsx(R,{component:"h3",variant:"h6",children:o("setting.dns.step3Title")}),e.jsx(R,{component:"section",children:o("setting.dns.step3Desc")}),e.jsx(cn,{records:[{type:"CNAME",name:jt(n),data:i}]})]})]})}dn.propTypes={url:t.string.isRequired,domain:t.string};const mn=j.createContext();function Vt({children:n}){const{t:i}=A(),{api:o}=F(),{blocklet:a}=oe(),[s,r]=j.useState(null),u=j.useCallback(async(p,f)=>{try{const c=await o.getBlocklet({input:{domain:p,did:a?.meta?.did}});return c?.blocklet?new Promise(g=>{r({title:i("setting.domain.conflictTitle",{domain:p}),description:i("setting.domain.conflictDescription",{domain:p,title:c.blocklet.meta?.title,from:c.blocklet.meta?.title,to:a.meta?.title}),confirm:i("common.confirm"),cancel:i("common.cancel"),onConfirm:async()=>{r(null),await f?.(),g(!0)},onCancel:()=>{r(null),g(!1)}})}):!1}catch(c){return console.error(c),E.error(N(c)),!1}},[o,i,a]),l=j.useCallback(()=>s?e.jsx(re,{title:s.title,description:s.description,confirm:s.confirm,cancel:s.cancel,onConfirm:s.onConfirm,onCancel:s.onCancel}):null,[s]),m=j.useMemo(()=>({checkConflict:u}),[u]);return e.jsxs(mn.Provider,{value:m,children:[n,l()]})}function un(){return j.useContext(mn)}function pn({siteId:n,teamDid:i,cnameDomain:o,defaultCustomDomain:a="",onInputDomain:s=Q,appId:r="",appPk:u="",onSuccess:l=Q,onError:m=Q,disabled:p=!1,autoFocus:f=!0,inBlockletSetup:c=!1,shouldCheckDomain:g=!1,onStateChange:y=Q,currentIp:x="",...b}){const{t:d,locale:w}=A(),{api:C,info:q}=F(),{blocklet:B}=oe(),M=Ut(),U=H(),T=ut({key:"sm"}),[S,P]=se({submittingDomain:!1,domain:a,error:null,type:q?.nftDomainUrl?"nftDomain":"inputDomain",showDnsTip:!1}),le=xe.getDisplayName(B),{checkConflict:ve}=un(),{connectApi:gn}=pt(),V=Dt(()=>Nt.getDidDomainServiceURL(q?.nftDomainUrl));if(q?.nftDomainUrl&&V.loading)return e.jsx(h,{...b,onError:m,currentIp:x,children:e.jsx(Ee,{relative:"parent",children:e.jsx(z,{})})});if(V.error)return e.jsx(h,{...b,onError:m,currentIp:x,children:e.jsx(Ee,{relative:"parent",children:V.error.message})});const Ce=V.value,ce=()=>{P({invalidDNSDomain:null})},we=async(D,v,k=!1)=>{await C.addDomainAlias({input:{id:n,domainAlias:D,teamDid:i,inBlockletSetup:!0,force:k}}),P({submittingDomain:!1}),l({domain:D,type:"inputDomain",canGenerateCertificate:!v})},de=async(D,v)=>{y(d("setting.domain.addingDomain"));try{await we(D,v,!1)}catch(k){if(console.error(k),ce(),N(k).includes("already exists")){await ve(D,()=>we(D,v,!0));return}E.error(N(k))}},Se=async({domain:D,type:v,nftDid:k,chainHost:O})=>{try{if(!g){if(v==="inputDomain"){await de(D);return}l({domain:D,type:v,nftDid:k,chainHost:O});return}y({text:d("setting.domain.checkingResolvable")});let I=30;const $=3e3,jn=I*1e3/$,ke=setInterval(()=>{if(I<=0){clearInterval(ke);return}y({text:`${d("setting.domain.checkingResolvable")} (${I--}s)`})},1e3),G=await Ht(()=>C.getDomainDNS({input:{teamDid:i,domain:D}}),{retries:jn,minTimeout:$,maxTimeout:$,onFailedAttempt:console.error});if(clearInterval(ke),!G?.isDnsResolved||!G?.isCnameMatch){let X="";if(G.isDnsResolved?G.isCnameMatch||(X=d("setting.domain.resolvedAddressError",{domain:D,curDomain:o})):X=d("setting.domain.cannotResolve",{domain:D}),v==="nftDomain"){E.error(X),l({domain:D,type:"nftDomain"});return}y({text:""}),P({invalidDNSDomain:{domain:D,error:X},domain:D,type:v,submittingDomain:!1});return}if(v==="nftDomain"){l({domain:D,type:"nftDomain"});return}await de(D)}catch(I){E.error(I.message),y({text:""}),P({submittingDomain:!1})}},Re=async({domain:D,nftDid:v,chainHost:k,force:O})=>{let I=Le(D);I=Ue.formatTopLevelDidDomain(I),P({submittingDomain:!0}),await C.addDomainAlias({input:{id:n,type:"nft-domain",domainAlias:I,nftDid:v,chainHost:k,teamDid:i,inBlockletSetup:c,force:O}});const $="nftDomain";P({type:$}),await Se({domain:I,type:$,nftDid:v,chainHost:k})},Dn=async({domain:D,nftDid:v,chainHost:k,isDomainOwner:O})=>{if(!O){const I=d("router.domainAlias.addDomainNFT.authorizeFailed");E.error(I),P({submittingDomain:!1,error:I});return}try{await Re({domain:D,nftDid:v,chainHost:k,force:!1})}catch(I){if(console.error(I),ce(),N(I).includes("already exists")){await ve(D,()=>Re({domain:D,nftDid:v,chainHost:k,force:!0}));return}E.error(N(I))}finally{P({submittingDomain:!1})}},yn=async()=>{try{P({submittingDomain:!0});const D=Le(S.domain);if(q.nftDomainUrl&&Ce&&(await C.isDidDomain({input:{domain:D}})).value===!0){gn.openPopup({prefix:"/connect-to-did-domain",custom:!0,locale:w,extraParams:{provider:"wallet",delegatee:r,delegateePk:u,domain:Ue.formatTopLevelDidDomain(S.domain),appName:le,appUrl:xe.getAppUrl(B)},message:{title:d("router.domainAlias.addDomainNFT.connect.title",{appName:le}),scan:d("router.domainAlias.addDomainNFT.connect.scan",{domain:S.domain,appName:le}),confirm:d("router.domainAlias.addDomainNFT.connect.confirm"),success:d("router.domainAlias.addDomainNFT.connect.success")},onSuccess:Dn,onError:k=>{E.error(k.message),P({submittingDomain:!1})},onClose:()=>P({submittingDomain:!1}),checkTimeout:60*5e3},{baseUrl:Ce.base,locale:w});return}await Se({domain:D,type:S.type})}catch(D){P({submittingDomain:!1}),M.setError(D.message)}},Ae=M.error||S.error;return e.jsx(h,{...b,onError:m,currentIp:x,children:e.jsxs(h,{sx:{display:"flex",flexDirection:"column",justifyContent:"flex-start",gap:"1em"},children:[e.jsxs(h,{component:"form",onSubmit:D=>{D.preventDefault(),yn()},sx:{display:"flex",flexDirection:"column",gap:"8px"},children:[e.jsx(R,{sx:{color:U.palette.text.primary},children:d("router.domainAlias.add.tips")}),e.jsx(On,{sx:{display:"block",marginTop:"8px"},label:d("router.domainAlias.add.domainDescription"),helperText:S.type==="inputDomain"&&Ae||d("router.domainAlias.add.helperText"),fullWidth:!0,disabled:p,value:S.domain,size:"small",variant:"outlined",error:!!Ae&&S.type==="inputDomain",onChange:D=>{const v=je(D.target?.value);M.setDomain(v);const k=Ze(v,w);P({domain:v,error:k,type:"inputDomain"}),s({domain:v,error:k,type:"inputDomain"})},autoFocus:f,onBlur:()=>{M.domain||(P({error:null}),M.setError(null))},slotProps:{htmlInput:{"data-cy":"domain-name-input"}}}),e.jsx(h,{sx:{width:"100%",display:"flex",justifyContent:"flex-end"},children:e.jsx(Ne,{"data-cy":"confirm-add-domain",fullWidth:T,variant:"contained",loading:S.submittingDomain,type:"submit",children:d("common.add")})}),e.jsx(h,{sx:{backgroundColor:()=>Wn(U.palette.primary.light,.1),borderRadius:"8px",padding:"12px"},children:d("router.domainAlias.addDomainNFT.topLevelDidDomainHint")}),e.jsxs(h,{sx:{cursor:"pointer",fontSize:"14px",display:"flex",alignItems:"center",gap:"4px",lineHeight:1,color:U.palette.primary.main},onClick:()=>P({showDnsTip:!S.showDnsTip}),children:[e.jsx(Hn,{fontSize:"1em"}),d("router.domainAlias.showTipHint")]}),S.showDnsTip&&e.jsx(an,{domain:S.domain,resolvedTarget:o,style:{marginTop:"4px"}})]}),S.invalidDNSDomain&&e.jsx(re,{maxWidth:"md",title:d("common.reminder"),description:e.jsxs(W,{sx:{gap:2},children:[e.jsx(ye,{severity:"warning",children:d("setting.domain.invalidDNSReminder",{error:S.invalidDNSDomain.error})}),e.jsx(dn,{url:S.domain,domain:o})]}),color:"primary",confirm:d("setting.domain.continueAdd"),onConfirm:()=>de(S.invalidDNSDomain.domain,S.type),onCancel:ce})]})})}pn.propTypes={siteId:t.string.isRequired,currentIp:t.string,teamDid:t.string.isRequired,cnameDomain:t.string.isRequired,defaultCustomDomain:t.string,onInputDomain:t.func,onSuccess:t.func,appId:t.string,appPk:t.string,disabled:t.bool,autoFocus:t.bool,inBlockletSetup:t.bool,shouldCheckDomain:t.bool,onStateChange:t.func,onError:t.func};function fn({id:n,children:i=null,title:o="",teamDid:a="",systemDomains:s,appId:r=null,appPk:u,onAddDomainAlias:l=()=>{},...m}){const{t:p}=A(),[f,c]=se({loading:!1,confirmSetting:null}),g=s.find(d=>fe.isDidDomain(d)),y=()=>{c({loading:!1,confirmSetting:null})},x={title:o||p("router.domainAlias.add.title"),description:function(w,C,q){return e.jsx(pn,{siteId:n,teamDid:a,cnameDomain:g,onSuccess:B=>{l(B),c({confirmSetting:null})},onInputDomain:({domain:B,type:M,error:U})=>{C({...w,domain:B,type:M,__disableConfirm:!!U}),q(U)},appId:r,appPk:u,...m})},confirm:p("common.confirm"),cancel:p("common.cancel"),params:{domain:"",__disableConfirm:!0},onCancel:y},b=d=>{d.stopPropagation(),c({confirmSetting:x})};return e.jsxs(e.Fragment,{children:[typeof i=="function"?i({loading:f.loading,open:b}):e.jsxs(Oe,{onClick:b,className:"rule-action","data-cy":"action-add-domain-alias",children:[f.loading?e.jsx(z,{size:16}):e.jsx(Vn,{style:{fontSize:18,marginRight:5}}),p("router.domainAlias.add.title")]}),f.confirmSetting&&e.jsx(re,{title:f.confirmSetting.title,description:f.confirmSetting.description,confirm:f.confirmSetting.confirm,cancel:f.confirmSetting.cancel,params:f.confirmSetting.params,onCancel:f.confirmSetting.onCancel,showConfirm:!1,showCancel:!0,displayError:!1,color:"primary",loading:f.loading,maxWidth:"sm"})]})}fn.propTypes={id:t.string.isRequired,children:t.any,title:t.string,teamDid:t.string,systemDomains:t.arrayOf(t.string).isRequired,appId:t.string,appPk:t.string.isRequired,onAddDomainAlias:t.func};function Gt(n){return e.jsx(Bt,{children:e.jsx(fn,{...n})})}function xn({appId:n,appPk:i,siteId:o,inBlockletSetup:a,teamDid:s,sx:r={},onAddDomainAlias:u=()=>{},...l}){const{api:m,info:p}=F(),{locale:f,t:c}=A(),{checkConflict:g}=un(),y=async({domain:b,nftDid:d,chainHost:w,force:C})=>{const q={id:o,type:"nft-domain",domainAlias:b,nftDid:d,chainHost:w,teamDid:s,inBlockletSetup:a,force:C};return await m.addDomainAlias({input:q}),q},x=async({domain:b,nftDid:d,chainHost:w})=>{try{const C=await y({domain:b,nftDid:d,chainHost:w,force:!1});u(C)}catch(C){if(N(C).includes("already exists")){await g(b,()=>y({domain:b,nftDid:d,chainHost:w,force:!0}));return}E.error(N(C))}};return e.jsx(Pt,{delegatee:n,delegateePk:i,didDomainURL:p.nftDomainUrl,onSuccess:x,locale:f,variant:"outlined",sx:r,title:c("router.domainAlias.addDomainNFT.buy"),...l})}xn.propTypes={appId:t.string.isRequired,appPk:t.string.isRequired,siteId:t.string.isRequired,inBlockletSetup:t.bool.isRequired,teamDid:t.string.isRequired,sx:t.object,onAddDomainAlias:t.func};function Xt({blocklet:n,bugDidDomainProps:i={},connectDomainProps:o={},updateBlockletDomainAliases:a=()=>{}}){const{t:s}=A(),{info:r}=F(),u=ie(c=>c.breakpoints.down("md")),{site:l}=n,m=j.useMemo(()=>Qe(n.site?.domainAliases),[n.site?.domainAliases]),p=n.environments?.find(c=>c.key==="BLOCKLET_APP_PK")?.value,f=ft(m);return e.jsx(Vt,{children:e.jsx(hn,{action:e.jsxs(h,{sx:{display:"flex",alignItems:u?"stretch":"center",flexDirection:u?"column":"row",gap:1},children:[r.nftDomainUrl&&e.jsx(xn,{variant:"contained",appId:n.appPid,appPk:p,siteId:l.id,inBlockletSetup:!1,teamDid:n.meta.did,onAddDomainAlias:c=>{const g={value:c.domainAlias,isProtected:!1,type:c.type,nftDid:c.nftDid,chainHost:c.chainHost,accessibility:{loading:!0}};a(g)},...i}),e.jsx(Gt,{id:l.id,title:s("common.connectExistingDomain"),teamDid:n.meta?.did,appId:n.appPid,appPk:p,systemDomains:f?.map(c=>c.value),onAddDomainAlias:c=>{const g={value:c.domain,isProtected:!1,type:c.type==="nftDomain"?"nft-domain":"",nftDid:c.nftDid,chainHost:c.chainHost,accessibility:{loading:!0},canGenerateCertificate:c.canGenerateCertificate===void 0?!0:c.canGenerateCertificate};a(g)},...o,children:({open:c})=>e.jsxs(te,{variant:"outlined",sx:{borderColor:"#ddd",color:"text.primary","&:hover":{bgcolor:g=>g.palette.primary.main,color:g=>g.palette.primary.contrastText}},"data-cy":"add-domain-alias",onClick:c,disabled:xe.isInProgress(n.status),children:[e.jsx(Gn,{style:{fontSize:"1.3em",marginRight:4}}),s("common.connectExistingDomain")]})})]})})})}Xt.propTypes={blocklet:t.object.isRequired,bugDidDomainProps:t.object,connectDomainProps:t.object,updateBlockletDomainAliases:t.func};function hn({action:n}){const{t:i}=A();return e.jsxs(We,{elevation:0,sx:{p:3,borderRadius:2,border:"1px solid",borderColor:"divider"},children:[e.jsx(h,{sx:{display:"flex",alignItems:"center",gap:2},children:e.jsxs(h,{sx:{flex:1,width:0,mb:1.5},children:[e.jsx(R,{variant:"h6",children:i("common.bugOrConnectDomain")}),e.jsx(R,{sx:{fontSize:12,color:"text.secondary",mt:.5},children:i("common.bugOrConnectDomainTip")})]})}),n]})}hn.propTypes={action:t.element.isRequired};export{Bt as D,Xt as a,pi as b};
|
|
28
|
+
`;function ge({hasMutatePermission:n,site:i,domain:o,blocklet:a,onDelete:s}){return n&&!o.isProtected?e.jsx(sn,{site:i,domain:o,blocklet:a,onDelete:s}):null}ge.propTypes={hasMutatePermission:t.bool.isRequired,site:t.object.isRequired,domain:ae.isRequired,blocklet:t.object.isRequired,onDelete:t.func.isRequired};function Q({siteId:n,domain:i,blocklet:o,hasMutatePermission:a}){const{info:s}=F(),{t:r,locale:u}=A(),[l,m]=j.useState(!1);return e.jsxs(h,{sx:{display:"flex",justifyContent:"flex-start",alignItems:"center",gap:.5,button:{lineHeight:1}},children:[i.type==="nft-domain"&&e.jsx(qt,{locale:u,nftDid:i.nftDid,didDomainURL:s.nftDomainUrl}),e.jsx(h,{sx:{display:"flex",mt:"-1px"},children:e.jsx(ne,{domain:i,filters:["http"]},`${i.value}-http`)}),a&&i.canGenerateCertificate&&e.jsx(nn,{siteId:n,domain:i.value,domainStatus:i.domainStatus,did:o.meta.did,issuing:l,setIssuing:m,children:({open:p})=>e.jsx(te,{sx:{padding:0},size:"small",onClick:f=>p(f),children:r("router.cert.genLetsEncryptCert.title")})})]})}Q.propTypes={siteId:t.string.isRequired,domain:ae.isRequired,blocklet:t.object.isRequired,hasMutatePermission:t.bool.isRequired};function Y({title:n,description:i,domains:o=[],hasMutatePermission:a,blocklet:s,site:r,mobile:u,showAllDomains:l=!1,updateBlockletDomainAliases:m=()=>{}}){const[p,f]=j.useState(!1),c=j.useMemo(()=>l||p?o:o.slice(0,1),[o,p,l]),g=o.length>1,y=x=>a&&!x.isProtected;return e.jsx(Oe,{elevation:0,sx:{p:3,pb:l?3:1.5,display:"flex",alignItems:"flex-start",gap:3,borderRadius:2,border:"1px solid",borderColor:"divider",transition:"box-shadow 0.2s ease-in-out"},children:e.jsxs(O,{sx:{width:1},children:[e.jsxs(h,{sx:{mb:1.5},children:[e.jsx(R,{variant:"h6",children:n}),e.jsx(R,{sx:{fontSize:12,color:"text.secondary",mt:.5},children:i})]}),c.map((x,b)=>e.jsxs(O,{children:[b!==0&&e.jsx(h,{sx:{my:.75,width:1,height:"1px"}}),!u&&e.jsxs(h,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[e.jsxs(h,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsx(h,{sx:{height:28,display:"flex",alignItems:"center"},children:e.jsx(ne,{domain:x,filters:["domain"]},`${x.value}-domain`)}),e.jsxs(h,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-start",gap:.5,svg:{width:"1em",height:"1em"},img:{width:"0.9em",height:"0.9em"}},children:[e.jsx(he,{domain:x,target:"_blank",children:x.value}),e.jsx(h,{sx:{mt:"2px"},children:e.jsx(Q,{siteId:s.site?.id,domain:x,blocklet:s,hasMutatePermission:a})})]})]}),e.jsx(h,{sx:{button:{padding:0}},children:e.jsx(ge,{hasMutatePermission:a,site:r,domain:x,blocklet:s,onDelete:()=>m(x,"delete")})})]}),u&&e.jsxs(h,{sx:{display:"flex",flexDirection:"column"},children:[e.jsxs(h,{sx:{display:"flex",justifyContent:"flex-start",gap:1},children:[e.jsx(h,{sx:{height:28,display:"flex",alignItems:"center"},children:e.jsx(ne,{domain:x,filters:["domain"]},`${x.value}-domain`)}),e.jsx(he,{domain:x,target:"_blank",suffix:y(x)?null:e.jsx(h,{sx:{display:"inline-flex",alignItems:"center",justifyContent:"space-between",svg:{width:"1em",height:"1rem"},img:{width:"0.9rem",height:"0.9rem"}},children:e.jsx(Q,{siteId:s.site?.id,domain:x,blocklet:s,hasMutatePermission:a})}),children:x.value})]}),y(x)&&e.jsxs(h,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",ml:"18px"},children:[e.jsx(h,{sx:{display:"flex",alignItems:"center"},children:e.jsx(Q,{siteId:s.site?.id,domain:x,blocklet:s,hasMutatePermission:a})}),e.jsx(h,{sx:{button:{padding:0}},children:e.jsx(ge,{hasMutatePermission:a,site:r,domain:x,blocklet:s,onDelete:()=>m(x,"delete")})})]})]})]},x.value)),g&&!l&&e.jsx(te,{onClick:()=>f(!p),sx:{p:0,mt:.5,alignSelf:"center"},children:p?e.jsx(Ln,{}):e.jsx(Fn,{})})]})})}Y.propTypes={title:t.string.isRequired,description:t.string.isRequired,domains:t.array.isRequired,hasMutatePermission:t.bool.isRequired,blocklet:t.object.isRequired,site:t.object.isRequired,mobile:t.bool.isRequired,showAllDomains:t.bool,updateBlockletDomainAliases:t.func};const rn=j.createContext({}),{Provider:Mt,Consumer:fi}=rn;function Bt({children:n}){const[i,o]=se({domain:"",error:null}),{locale:a}=A(),s={error:i.error,domain:i.domain,setError:r=>{o({error:r})},setDomain:r=>{const u=je(r),l=Je(u,a);o({domain:u,error:l})}};return e.jsx(Mt,{value:{value:s},children:n})}function Ut(){const{value:n}=j.useContext(rn);return n}var ue,Me;function zt(){if(Me)return ue;Me=1;const{joinURL:n}=ct(),i=dt(),o="z2qaGosS3rZ7m5ttP3Nd4V4qczR9TryTcRV4p";return ue={DID_DOMAIN_SERVICE_DID:o,getDidDomainServiceURL:async s=>{if(!s||!s?.trim())return null;const r=new URL(s);r.pathname="__blocklet__.js",r.searchParams.set("type","json");const{data:u}=await i.get(r.toString()),l=u?.componentMountPoints?.find(c=>c.did===o),m=new URL(s);m.pathname=l?.mountPoint;const p=m.toString(),f=n(p,"/api");return{base:p,api:f,domain:n(f,"/domains")}}},ue}var Nt=zt();const $t=He(Kn),_t=He(Qn);var pe,Be;function Wt(){if(Be)return pe;Be=1;const n=$t,i=_t;function o(s){return!s||typeof s!="string"?!1:s.split(".").length===2}return pe={isTopLevelDomain:o,formatTopLevelDidDomain:s=>{const r=n(i(s));return r&&(o(r)?`www.${r}`:r)}},pe}var Ue=Wt(),Ot=mt();const Ht=Yn(Ot);function an({domain:n="",resolvedTarget:i,...o}){const{t:a,locale:s}=A();return e.jsxs(h,{sx:{backgroundColor:"rgb(236, 251, 253)",borderColor:"rgb(236, 251, 253)",borderRadius:"8px",padding:"12px"},...o,children:[e.jsxs(h,{sx:{display:"flex",flexWrap:"wrap"},children:[a("router.domain.setup.tipStart"),n&&e.jsx(h,{sx:{mx:.5,color:"primary.main",fontWeight:"fontWeightBold"},children:n}),a("router.domain.setup.tipEnd"),":"]}),e.jsxs(O,{sx:{gap:.5,"&>div":{mb:0},marginTop:"12px"},children:[e.jsx(De,{label:a("router.domain.setup.recordType"),value:"CNAME",locale:s}),e.jsx(De,{label:a("router.domain.setup.recordValue"),value:i,locale:s})]})]})}an.propTypes={domain:t.string,resolvedTarget:t.string.isRequired};function De({locale:n,label:i,value:o}){const a=ie(r=>r.breakpoints.down("md")),s=H();return e.jsx(yt,{name:i,nameWidth:120,children:e.jsxs(h,{sx:{display:"flex",alignItems:"center",lineHeight:1},children:[e.jsx(R,{component:"span",sx:[{color:"primary.main",overflow:"auto"},a?{maxWidth:"95%",wordWrap:"break-word"}:{wordWrap:"break-word"}],children:o}),e.jsx(ze,{content:o,locale:n,style:{marginLeft:"4px",color:s.palette.text.secondary}})]})})}De.propTypes={locale:t.string.isRequired,label:t.string.isRequired,value:t.string.isRequired};function ln({children:n=null,href:i="",sx:o=null,showIcon:a=!1,...s}){const r=H();return e.jsxs(Bn,{href:i,target:"_blank",...s,sx:{display:"inline-flex",alignItems:"center",color:"text.primary",":hover":{color:r.palette.primary.main},...o},children:[n,a&&e.jsx(Un,{fontSize:"small",sx:{ml:"4px",fontSize:"1rem"}})]})}ln.propTypes={children:t.node,sx:t.object,href:t.string,showIcon:t.bool};function cn({records:n}){return e.jsx(zn,{component:h,sx:{".MuiTableCell-root":{color:"text.primary"}},children:e.jsxs(Nn,{children:[e.jsx($n,{children:e.jsxs(Te,{children:[e.jsx(_,{children:"Type"}),e.jsx(_,{children:"Name"}),e.jsx(_,{children:"Data"})]})}),e.jsx(_n,{children:n.map(i=>e.jsxs(Te,{children:[e.jsx(_,{children:i.type}),e.jsx(_,{children:i.name}),e.jsx(_,{sx:{wordBreak:"break-word"},children:e.jsx(bt,{children:i.data})})]},i.name))})]})})}cn.propTypes={records:t.array.isRequired};function dn({url:n,domain:i=""}){const{t:o}=A();return e.jsxs(h,{sx:{display:"flex",flexDirection:"column",gap:2},children:[e.jsxs(h,{sx:{display:"flex",flexDirection:"column",gap:1},children:[e.jsx(R,{component:"h3",variant:"h6",children:o("setting.dns.step1Title")}),e.jsxs(R,{component:"section",children:[o("setting.dns.step1Desc1"),e.jsx(ln,{href:"https://lookup.icann.org/",target:"_blank",children:"ICANN"})]})]}),e.jsxs(h,{sx:{display:"flex",flexDirection:"column",gap:1},children:[e.jsx(R,{component:"h3",variant:"h6",children:o("setting.dns.step2Title",{url:n})}),e.jsx(R,{component:"section",children:o("setting.dns.step2Desc")})]}),e.jsxs(h,{sx:{display:"flex",flexDirection:"column",gap:1},children:[e.jsx(R,{component:"h3",variant:"h6",children:o("setting.dns.step3Title")}),e.jsx(R,{component:"section",children:o("setting.dns.step3Desc")}),e.jsx(cn,{records:[{type:"CNAME",name:jt(n),data:i}]})]})]})}dn.propTypes={url:t.string.isRequired,domain:t.string};const mn=j.createContext();function Vt({children:n}){const{t:i}=A(),{api:o}=F(),{blocklet:a}=oe(),[s,r]=j.useState(null),u=j.useCallback(async(p,f)=>{try{const c=await o.getBlocklet({input:{domain:p,did:a?.meta?.did}});return c?.blocklet?new Promise(g=>{r({title:i("setting.domain.conflictTitle",{domain:p}),description:i("setting.domain.conflictDescription",{domain:p,title:c.blocklet.meta?.title,from:c.blocklet.meta?.title,to:a.meta?.title}),confirm:i("common.confirm"),cancel:i("common.cancel"),onConfirm:async()=>{r(null),await f?.(),g(!0)},onCancel:()=>{r(null),g(!1)}})}):!1}catch(c){return console.error(c),E.error(N(c)),!1}},[o,i,a]),l=j.useCallback(()=>s?e.jsx(re,{title:s.title,description:s.description,confirm:s.confirm,cancel:s.cancel,onConfirm:s.onConfirm,onCancel:s.onCancel}):null,[s]),m=j.useMemo(()=>({checkConflict:u}),[u]);return e.jsxs(mn.Provider,{value:m,children:[n,l()]})}function un(){return j.useContext(mn)}function pn({siteId:n,teamDid:i,cnameDomain:o,defaultCustomDomain:a="",onInputDomain:s=X,appId:r="",appPk:u="",onSuccess:l=X,onError:m=X,disabled:p=!1,autoFocus:f=!0,inBlockletSetup:c=!1,shouldCheckDomain:g=!1,onStateChange:y=X,currentIp:x="",...b}){const{t:d,locale:w}=A(),{api:C,info:q}=F(),{blocklet:B}=oe(),M=Ut(),U=H(),T=ut({key:"sm"}),[S,P]=se({submittingDomain:!1,domain:a,error:null,type:q?.nftDomainUrl?"nftDomain":"inputDomain",showDnsTip:!1}),le=xe.getDisplayName(B),{checkConflict:ve}=un(),{connectApi:gn}=pt(),V=Dt(()=>Nt.getDidDomainServiceURL(q?.nftDomainUrl));if(q?.nftDomainUrl&&V.loading)return e.jsx(h,{...b,onError:m,currentIp:x,children:e.jsx(Ee,{relative:"parent",children:e.jsx(z,{})})});if(V.error)return e.jsx(h,{...b,onError:m,currentIp:x,children:e.jsx(Ee,{relative:"parent",children:V.error.message})});const Ce=V.value,ce=()=>{P({invalidDNSDomain:null})},we=async(D,v,k=!1)=>{await C.addDomainAlias({input:{id:n,domainAlias:D,teamDid:i,inBlockletSetup:!0,force:k}}),P({submittingDomain:!1}),l({domain:D,type:"inputDomain",canGenerateCertificate:!v})},de=async(D,v)=>{y(d("setting.domain.addingDomain"));try{await we(D,v,!1)}catch(k){if(console.error(k),ce(),N(k).includes("already exists")){await ve(D,()=>we(D,v,!0));return}E.error(N(k))}},Se=async({domain:D,type:v,nftDid:k,chainHost:W})=>{try{if(!g){if(v==="inputDomain"){await de(D);return}l({domain:D,type:v,nftDid:k,chainHost:W});return}y({text:d("setting.domain.checkingResolvable")});let I=30;const $=3e3,jn=I*1e3/$,ke=setInterval(()=>{if(I<=0){clearInterval(ke);return}y({text:`${d("setting.domain.checkingResolvable")} (${I--}s)`})},1e3),G=await Ht(()=>C.getDomainDNS({input:{teamDid:i,domain:D}}),{retries:jn,minTimeout:$,maxTimeout:$,onFailedAttempt:console.error});if(clearInterval(ke),!G?.isDnsResolved||!G?.isCnameMatch){let Z="";if(G.isDnsResolved?G.isCnameMatch||(Z=d("setting.domain.resolvedAddressError",{domain:D,curDomain:o})):Z=d("setting.domain.cannotResolve",{domain:D}),v==="nftDomain"){E.error(Z),l({domain:D,type:"nftDomain"});return}y({text:""}),P({invalidDNSDomain:{domain:D,error:Z},domain:D,type:v,submittingDomain:!1});return}if(v==="nftDomain"){l({domain:D,type:"nftDomain"});return}await de(D)}catch(I){E.error(I.message),y({text:""}),P({submittingDomain:!1})}},Re=async({domain:D,nftDid:v,chainHost:k,force:W})=>{let I=Le(D);I=Ue.formatTopLevelDidDomain(I),P({submittingDomain:!0}),await C.addDomainAlias({input:{id:n,type:"nft-domain",domainAlias:I,nftDid:v,chainHost:k,teamDid:i,inBlockletSetup:c,force:W}});const $="nftDomain";P({type:$}),await Se({domain:I,type:$,nftDid:v,chainHost:k})},Dn=async({domain:D,nftDid:v,chainHost:k,isDomainOwner:W})=>{if(!W){const I=d("router.domainAlias.addDomainNFT.authorizeFailed");E.error(I),P({submittingDomain:!1,error:I});return}try{await Re({domain:D,nftDid:v,chainHost:k,force:!1})}catch(I){if(console.error(I),ce(),N(I).includes("already exists")){await ve(D,()=>Re({domain:D,nftDid:v,chainHost:k,force:!0}));return}E.error(N(I))}finally{P({submittingDomain:!1})}},yn=async()=>{try{P({submittingDomain:!0});const D=Le(S.domain);if(q.nftDomainUrl&&Ce&&(await C.isDidDomain({input:{domain:D}})).value===!0){gn.openPopup({prefix:"/connect-to-did-domain",custom:!0,locale:w,extraParams:{provider:"wallet",delegatee:r,delegateePk:u,domain:Ue.formatTopLevelDidDomain(S.domain),appName:le,appUrl:xe.getAppUrl(B)},message:{title:d("router.domainAlias.addDomainNFT.connect.title",{appName:le}),scan:d("router.domainAlias.addDomainNFT.connect.scan",{domain:S.domain,appName:le}),confirm:d("router.domainAlias.addDomainNFT.connect.confirm"),success:d("router.domainAlias.addDomainNFT.connect.success")},onSuccess:Dn,onError:k=>{E.error(k.message),P({submittingDomain:!1})},onClose:()=>P({submittingDomain:!1}),checkTimeout:60*5e3},{baseUrl:Ce.base,locale:w});return}await Se({domain:D,type:S.type})}catch(D){P({submittingDomain:!1}),M.setError(D.message)}},Ae=M.error||S.error;return e.jsx(h,{...b,onError:m,currentIp:x,children:e.jsxs(h,{sx:{display:"flex",flexDirection:"column",justifyContent:"flex-start",gap:"1em"},children:[e.jsxs(h,{component:"form",onSubmit:D=>{D.preventDefault(),yn()},sx:{display:"flex",flexDirection:"column",gap:"8px"},children:[e.jsx(R,{sx:{color:U.palette.text.primary},children:d("router.domainAlias.add.tips")}),e.jsx(Wn,{sx:{display:"block",marginTop:"8px"},label:d("router.domainAlias.add.domainDescription"),helperText:S.type==="inputDomain"&&Ae||d("router.domainAlias.add.helperText"),fullWidth:!0,disabled:p,value:S.domain,size:"small",variant:"outlined",error:!!Ae&&S.type==="inputDomain",onChange:D=>{const v=je(D.target?.value);M.setDomain(v);const k=Je(v,w);P({domain:v,error:k,type:"inputDomain"}),s({domain:v,error:k,type:"inputDomain"})},autoFocus:f,onBlur:()=>{M.domain||(P({error:null}),M.setError(null))},slotProps:{htmlInput:{"data-cy":"domain-name-input"}}}),e.jsx(h,{sx:{width:"100%",display:"flex",justifyContent:"flex-end"},children:e.jsx(Ne,{"data-cy":"confirm-add-domain",fullWidth:T,variant:"contained",loading:S.submittingDomain,type:"submit",children:d("common.add")})}),e.jsx(h,{sx:{backgroundColor:()=>On(U.palette.primary.light,.1),borderRadius:"8px",padding:"12px"},children:d("router.domainAlias.addDomainNFT.topLevelDidDomainHint")}),e.jsxs(h,{sx:{cursor:"pointer",fontSize:"14px",display:"flex",alignItems:"center",gap:"4px",lineHeight:1,color:U.palette.primary.main},onClick:()=>P({showDnsTip:!S.showDnsTip}),children:[e.jsx(Hn,{fontSize:"1em"}),d("router.domainAlias.showTipHint")]}),S.showDnsTip&&e.jsx(an,{domain:S.domain,resolvedTarget:o,style:{marginTop:"4px"}})]}),S.invalidDNSDomain&&e.jsx(re,{maxWidth:"md",title:d("common.reminder"),description:e.jsxs(O,{sx:{gap:2},children:[e.jsx(ye,{severity:"warning",children:d("setting.domain.invalidDNSReminder",{error:S.invalidDNSDomain.error})}),e.jsx(dn,{url:S.domain,domain:o})]}),color:"primary",confirm:d("setting.domain.continueAdd"),onConfirm:()=>de(S.invalidDNSDomain.domain,S.type),onCancel:ce})]})})}pn.propTypes={siteId:t.string.isRequired,currentIp:t.string,teamDid:t.string.isRequired,cnameDomain:t.string.isRequired,defaultCustomDomain:t.string,onInputDomain:t.func,onSuccess:t.func,appId:t.string,appPk:t.string,disabled:t.bool,autoFocus:t.bool,inBlockletSetup:t.bool,shouldCheckDomain:t.bool,onStateChange:t.func,onError:t.func};function fn({id:n,children:i=null,title:o="",teamDid:a="",systemDomains:s,appId:r=null,appPk:u,onAddDomainAlias:l=()=>{},...m}){const{t:p}=A(),[f,c]=se({loading:!1,confirmSetting:null}),g=s.find(d=>fe.isDidDomain(d)),y=()=>{c({loading:!1,confirmSetting:null})},x={title:o||p("router.domainAlias.add.title"),description:function(w,C,q){return e.jsx(pn,{siteId:n,teamDid:a,cnameDomain:g,onSuccess:B=>{l(B),c({confirmSetting:null})},onInputDomain:({domain:B,type:M,error:U})=>{C({...w,domain:B,type:M,__disableConfirm:!!U}),q(U)},appId:r,appPk:u,...m})},confirm:p("common.confirm"),cancel:p("common.cancel"),params:{domain:"",__disableConfirm:!0},onCancel:y},b=d=>{d.stopPropagation(),c({confirmSetting:x})};return e.jsxs(e.Fragment,{children:[typeof i=="function"?i({loading:f.loading,open:b}):e.jsxs(We,{onClick:b,className:"rule-action","data-cy":"action-add-domain-alias",children:[f.loading?e.jsx(z,{size:16}):e.jsx(Vn,{style:{fontSize:18,marginRight:5}}),p("router.domainAlias.add.title")]}),f.confirmSetting&&e.jsx(re,{title:f.confirmSetting.title,description:f.confirmSetting.description,confirm:f.confirmSetting.confirm,cancel:f.confirmSetting.cancel,params:f.confirmSetting.params,onCancel:f.confirmSetting.onCancel,showConfirm:!1,showCancel:!0,displayError:!1,color:"primary",loading:f.loading,maxWidth:"sm"})]})}fn.propTypes={id:t.string.isRequired,children:t.any,title:t.string,teamDid:t.string,systemDomains:t.arrayOf(t.string).isRequired,appId:t.string,appPk:t.string.isRequired,onAddDomainAlias:t.func};function Gt(n){return e.jsx(Bt,{children:e.jsx(fn,{...n})})}function xn({appId:n,appPk:i,siteId:o,inBlockletSetup:a,teamDid:s,sx:r={},onAddDomainAlias:u=()=>{},...l}){const{api:m,info:p}=F(),{locale:f,t:c}=A(),{checkConflict:g}=un(),y=async({domain:b,nftDid:d,chainHost:w,force:C})=>{const q={id:o,type:"nft-domain",domainAlias:b,nftDid:d,chainHost:w,teamDid:s,inBlockletSetup:a,force:C};return await m.addDomainAlias({input:q}),q},x=async({domain:b,nftDid:d,chainHost:w})=>{try{const C=await y({domain:b,nftDid:d,chainHost:w,force:!1});u(C)}catch(C){if(N(C).includes("already exists")){await g(b,()=>y({domain:b,nftDid:d,chainHost:w,force:!0}));return}E.error(N(C))}};return e.jsx(Pt,{delegatee:n,delegateePk:i,didDomainURL:p.nftDomainUrl,onSuccess:x,locale:f,variant:"outlined",sx:r,title:c("router.domainAlias.addDomainNFT.buy"),...l})}xn.propTypes={appId:t.string.isRequired,appPk:t.string.isRequired,siteId:t.string.isRequired,inBlockletSetup:t.bool.isRequired,teamDid:t.string.isRequired,sx:t.object,onAddDomainAlias:t.func};function Zt({blocklet:n,bugDidDomainProps:i={},connectDomainProps:o={},updateBlockletDomainAliases:a=()=>{}}){const{t:s}=A(),{info:r}=F(),u=ie(c=>c.breakpoints.down("md")),{site:l}=n,m=j.useMemo(()=>Xe(n.site?.domainAliases),[n.site?.domainAliases]),p=n.environments?.find(c=>c.key==="BLOCKLET_APP_PK")?.value,f=ft(m);return e.jsx(Vt,{children:e.jsx(hn,{action:e.jsxs(h,{sx:{display:"flex",alignItems:u?"stretch":"center",flexDirection:u?"column":"row",gap:1},children:[r.nftDomainUrl&&e.jsx(xn,{variant:"contained",appId:n.appPid,appPk:p,siteId:l.id,inBlockletSetup:!1,teamDid:n.meta.did,onAddDomainAlias:c=>{const g={value:c.domainAlias,isProtected:!1,type:c.type,nftDid:c.nftDid,chainHost:c.chainHost,accessibility:{loading:!0}};a(g)},...i}),e.jsx(Gt,{id:l.id,title:s("common.connectExistingDomain"),teamDid:n.meta?.did,appId:n.appPid,appPk:p,systemDomains:f?.map(c=>c.value),onAddDomainAlias:c=>{const g={value:c.domain,isProtected:!1,type:c.type==="nftDomain"?"nft-domain":"",nftDid:c.nftDid,chainHost:c.chainHost,accessibility:{loading:!0},canGenerateCertificate:c.canGenerateCertificate===void 0?!0:c.canGenerateCertificate};a(g)},...o,children:({open:c})=>e.jsxs(te,{variant:"outlined",sx:{borderColor:"#ddd",color:"text.primary","&:hover":{bgcolor:g=>g.palette.primary.main,color:g=>g.palette.primary.contrastText}},"data-cy":"add-domain-alias",onClick:c,disabled:xe.isInProgress(n.status),children:[e.jsx(Gn,{style:{fontSize:"1.3em",marginRight:4}}),s("common.connectExistingDomain")]})})]})})})}Zt.propTypes={blocklet:t.object.isRequired,bugDidDomainProps:t.object,connectDomainProps:t.object,updateBlockletDomainAliases:t.func};function hn({action:n}){const{t:i}=A();return e.jsxs(Oe,{elevation:0,sx:{p:3,borderRadius:2,border:"1px solid",borderColor:"divider"},children:[e.jsx(h,{sx:{display:"flex",alignItems:"center",gap:2},children:e.jsxs(h,{sx:{flex:1,width:0,mb:1.5},children:[e.jsx(R,{variant:"h6",children:i("common.bugOrConnectDomain")}),e.jsx(R,{sx:{fontSize:12,color:"text.secondary",mt:.5},children:i("common.bugOrConnectDomainTip")})]})}),n]})}hn.propTypes={action:t.element.isRequired};export{Bt as D,Zt as a,pi as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as m}from"./vendor-react-Dvs43sk9.js";import{V as n}from"./vendor-ux-CE4sOH7O.js";import{ab as p,Z as l,ad as c,e as u}from"./index-CmM1Fb8I.js";import{a as x,b as d}from"./domain-action-card-CPmR-n-P.js";import{j as t,ak as k,b1 as f,aX as h}from"./vendor-mui-core-BFPsXaTR.js";import"./vendor-utils-OrZFrHBP.js";import"./vendor-hooks-DmThWyyG.js";import"./lottie-web-4koyQiv_.js";import"./vendor-arcblock-DGOH9a3F.js";import"./useSetState-DFuQZPPV.js";import"./permission-B7_8SVB9.js";import"./session-BtQQCb_u.js";import"./useAsyncRetry-Dyo5t1bq.js";import"./useAsync-1_z8P8M4.js";import"./confirm-DAMhAYR3.js";import"./index-DBs9Ljax.js";import"./actions-C4-lIUPY.js";import"./delete-confirm-Ca3miSFM.js";import"./click-to-copy-CK42VmRr.js";import"./useAsync-BKYfrNw7.js";import"./index-IGBGBXd_.js";import"./util-BLs2BnSw.js";import"./engine-lkWYvtZC.js";function z(){const{blocklet:o,actions:{updateBlockletDomainAliases:i}}=p(),{inService:r}=l(),{t:e}=n(),a=m.useMemo(()=>{let s=!0;return c(o)&&(s=s&&r),s},[r,o]);return t.jsxs(k,{component:f,sx:{gap:3,maxWidth:820},children:[t.jsxs(t.Fragment,{children:[u.isAccessible(o.status)===!1&&t.jsx(h,{severity:"warning",children:e("blocklet.router.noRunning")}),a&&t.jsx(x,{blocklet:o,updateBlockletDomainAliases:i,connectDomainProps:{shouldCheckDomain:!0}})]}),t.jsx(d,{showAllDomains:!0,updateBlockletDomainAliases:i})]})}export{z as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{V as M,u as q,_ as w,H as C,v as Q,w as J}from"./vendor-ux-CE4sOH7O.js";import{j as t,b1 as f,b0 as X,b2 as Z,T as b,Q as T,a$ as ee,ak as B,z as $,a6 as te,at as se}from"./vendor-mui-core-BFPsXaTR.js";import{r as n,u as ie}from"./vendor-react-Dvs43sk9.js";import{H as g}from"./vendor-utils-OrZFrHBP.js";import{a as ne,I as h,d as O,c as j,H as oe,J as re}from"./index-CmM1Fb8I.js";import{l as ae}from"./vendor-arcblock-DGOH9a3F.js";import{K as ce}from"./landing-page-BBhzhyhU.js";import{f as _}from"./index-DBs9Ljax.js";import{g as D}from"./get-safe-url-94yHUMyk.js";import"./vendor-hooks-DmThWyyG.js";import"./lottie-web-4koyQiv_.js";const le=se.form`
|
|
2
2
|
display: flex;
|
|
3
3
|
flex-direction: column;
|
|
4
4
|
align-items: center;
|
|
@@ -14,4 +14,4 @@ import{T as M,e as q,_ as w,H as C,f as Q,h as J}from"./vendor-ux-B9VfuZTg.js";i
|
|
|
14
14
|
div.Mui-focused input {
|
|
15
15
|
caret-color: ${p=>p.theme.palette.primary.main};
|
|
16
16
|
}
|
|
17
|
-
`,ue=p=>{try{if(!p)return null;const o=ae.fromBase64(p).toString();return re(o)?o:null}catch{return null}};function je(){const p=n.useRef(null),{session:o,connectApi:K}=ne(),{t:s,locale:l}=M(),[y,P]=n.useState(o.user?.email||""),[r,
|
|
17
|
+
`,ue=p=>{try{if(!p)return null;const o=ae.fromBase64(p).toString();return re(o)?o:null}catch{return null}};function je(){const p=n.useRef(null),{session:o,connectApi:K}=ne(),{t:s,locale:l}=M(),[y,P]=n.useState(o.user?.email||""),[r,V]=n.useState(""),[x,v]=n.useState(!1),[H,z]=n.useState(!1),[c,W]=n.useState(!1),[F,I]=n.useState(!1),[E,N]=n.useState(!1),{wallet:u}=q(),[a]=ie(),A=a.get("inviter")||localStorage.getItem("inviter"),d=a.get("updateKyc")==="1";n.useEffect(()=>{const i=a.get("subject"),e=ue(i);e&&P(e)},[]),n.useEffect(()=>{o.user?.emailVerified&&d&&(I(!0),setTimeout(()=>{if(u&&h()){w(()=>import("./index-CgdhTqWX.js").then(i=>i.i),[],import.meta.url).then(i=>{i.call("arcClosePage")});return}window.location.href=D(a.get("redirect")||"/")},1e3))},[o.user,d,u,a]);const G=n.useCallback(async i=>{i.preventDefault(),v(!0);try{await O.post(`/kyc/email/send?locale=${l}`,{email:y}),W(!0),C.success(s("login.issueKyc.codeSentSuccess"))}catch(e){C.error(_(e)),document.getElementById("email-input")?.focus()}finally{v(!1)}},[y,l,s]),S=n.useCallback(async i=>{i&&i.preventDefault(),v(!0);try{await O.post(`/kyc/email/verify?locale=${l}`,{code:r}),I(!0),K.open({locale:l,action:"issue-kyc",extraParams:{code:r,updateKyc:a.get("updateKyc")||"0",inviter:A||""},className:"connect",popup:!0,saveConnect:!1,forceConnected:!0,hideCloseButton:!0,messages:{title:s("login.issueKyc.claim"),scan:s("login.issueKyc.scan"),confirm:s("login.issueKyc.confirm"),success:s("login.issueKyc.success")},useSocket:!0,onSuccess:()=>{N(!0),K.close(),d?(o.refresh({showProgress:!1,forceRefreshToken:!0}),setTimeout(()=>{if(u&&h()){w(()=>import("./index-CgdhTqWX.js").then(e=>e.i),[],import.meta.url).then(e=>{e.call("arcClosePage")});return}window.location.href=D(a.get("redirect")||"/")},1e3)):u&&h()&&w(()=>import("./index-CgdhTqWX.js").then(e=>e.i),[],import.meta.url).then(e=>{e.call("arcClosePage")})},onError:e=>{C.error(_(e))}})}catch(e){I(!1),C.error(_(e)),document.getElementById(`code-input-${g(r).length-1}`)?.focus()}finally{v(!1)}},[r,l,a,d,u,A]);n.useEffect(()=>{c&&g(r).length===j.VERIFY_CODE_LENGTH&&S()},[r,S,c]);const Y=n.useCallback(()=>{z(!0),K.open({locale:l,action:"update-kyc",className:"connect",popup:!0,saveConnect:!1,forceConnected:!0,hideCloseButton:!0,messages:{title:s("login.updateKyc.title"),scan:s("login.updateKyc.scan"),confirm:s("login.updateKyc.confirm"),success:s("login.updateKyc.success")},useSocket:!0,onSuccess:()=>{o.refresh({showProgress:!1,forceRefreshToken:!0}),setTimeout(()=>{if(u&&h()){w(()=>import("./index-CgdhTqWX.js").then(i=>i.i),[],import.meta.url).then(i=>{i.call("arcClosePage")});return}window.location.href=D(a.get("redirect")||"/")},2e3)},onError:i=>{C.error(_(i))}})},[l,a,u]),k=n.useCallback(i=>{if(!c)return;i.preventDefault();const e=g(i.clipboardData.getData("text/plain").slice(0,j.VERIFY_CODE_LENGTH));if(!/^\d+$/.test(e))return;V(e.padEnd(j.VERIFY_CODE_LENGTH," "));const m=document.getElementById(`code-input-${e.length}`);m&&m.focus()},[c]);n.useEffect(()=>(document.addEventListener("paste",k),()=>{document.removeEventListener("paste",k)}),[k]);const L=h()?s("login.issueKyc.issueTitle"):s("login.issueKyc.verifyTitle"),U=h()?s("login.issueKyc.issueAction"):s("login.issueKyc.verifyAction");return t.jsxs(ce,{did:window.blocklet?.appPid,children:[t.jsx(oe,{children:t.jsxs("title",{children:[L," | ",window.blocklet?.appName]})}),t.jsxs(f,{direction:"column",sx:{justifyContent:"center",alignItems:"center",width:"560px",px:2,boxSizing:"border-box",maxWidth:"100%",height:"100%"},children:[t.jsxs(f,{spacing:1,sx:{justifyContent:"center",alignItems:"center",mb:3},children:[E?t.jsx(X,{sx:{fontSize:72},color:"success"}):t.jsx(Z,{sx:{fontSize:72},color:"primary"}),t.jsx(b,{variant:"h5",sx:{textAlign:"center"},children:L}),!E&&t.jsx(b,{variant:"body2",sx:{color:"text.secondary",textAlign:"center"},children:s("login.issueKyc.pageDescription")}),E&&t.jsx(b,{variant:"body1",sx:{textAlign:"center"},children:s("login.issueKyc.success")}),E&&t.jsx(T,{variant:"contained",color:"primary",component:ee,href:"/",size:"large",children:s("login.issueKyc.backToHome")}),!E&&o.user&&t.jsxs(f,{direction:"column",sx:{justifyContent:"center",alignItems:"center"},children:[t.jsx(b,{variant:"body2",sx:{color:"info.main",textAlign:"center",mt:1},children:s("login.issueKyc.issueTarget",{action:U})}),t.jsxs(f,{direction:"row",spacing:1,sx:{justifyContent:"center",alignItems:"center",width:"100%",maxWidth:360},children:[t.jsx(Q,{did:o.user.did,responsive:!0,copyable:!0,showQrcode:!1}),t.jsx(J,{locale:l,session:o,showRole:!0,showManageBlocklet:!1})]})]})]}),t.jsx(B,{ref:p,sx:{width:"100%"},children:!F&&!H&&t.jsxs(le,{onSubmit:c?S:G,children:[!c&&t.jsx($,{type:"email",id:"email-input",placeholder:s("login.issueKyc.emailPlaceholder"),sx:{width:"100%",maxWidth:360},value:y,onChange:i=>P(i.target.value),disabled:x,required:!0}),c&&t.jsxs(f,{direction:"column",spacing:2,sx:{justifyContent:"center",alignItems:"center"},children:[t.jsx(b,{variant:"body2",sx:{textAlign:"center"},children:s("login.issueKyc.codeSentMessage",{email:y})}),t.jsx(B,{sx:{width:"100%",maxWidth:360,display:"flex",justifyContent:"space-between"},children:[...Array(j.VERIFY_CODE_LENGTH)].map((i,e)=>t.jsx($,{value:g(r[e])||"",type:"number",sx:{width:"14%"},onChange:m=>{const R=r.split("");R[e]=m.target.value,V(R.join("")),m.target.value&&e<5&&document.getElementById(`code-input-${e+1}`)?.focus()},onKeyDown:m=>{m.key==="Backspace"&&!g(r[e])&&e>0&&document.getElementById(`code-input-${e-1}`)?.focus()},disabled:x,required:!0,id:`code-input-${e}`,autoComplete:"off",slotProps:{htmlInput:{maxLength:1,style:{textAlign:"center",fontSize:"1.5rem"},autoComplete:"off"}}},`code-input-${e}`))})]}),t.jsxs(f,{direction:"row",spacing:2,sx:{justifyContent:d?"space-between":"center",alignItems:"center",width:"100%",maxWidth:360},children:[d&&t.jsx(T,{variant:"text",disabled:x,onClick:Y,size:"large",children:s("login.updateKyc.button")}),t.jsx(T,{type:"submit",size:"large",variant:"contained",disabled:x||!y||c&&g(r).length!==j.VERIFY_CODE_LENGTH,sx:{width:d?"auto":"100%"},children:x?t.jsx(te,{size:24}):s(c?"login.issueKyc.verifyButton":"login.issueKyc.sendCodeButton")})]})]})})]})]})}export{je as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./vendor-react-Dvs43sk9.js";import{j as r,ak as i,a6 as x,W as o}from"./vendor-mui-core-
|
|
1
|
+
import"./vendor-react-Dvs43sk9.js";import{j as r,ak as i,a6 as x,W as o}from"./vendor-mui-core-BFPsXaTR.js";function p({size:a=24,...s}){return r.jsx(i,{...s,sx:[{display:"flex",mt:4},...Array.isArray(s.sx)?s.sx:[s.sx]],children:r.jsx(x,{size:a})})}p.propTypes={size:o.number};export{p as E};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a4 as e}from"./index-CmM1Fb8I.js";var a=e();export{a as e};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e={auth:{noPermission:{title:"No tienes permiso",description:"No eres el administrador del blocklet"}},login:{reLogin:"Reconectar",description:"Debes conectar tu billetera DID para acceder a {name}",already:"Estás conectado como {name}",connectWallet:"Conectar DID Wallet",closeWindow:"Cerrar ventana",accessLimit:{title:"Acceso a la página restringido",description:"Esta página requiere los siguientes pasaportes para acceder, por favor conecta con la billetera para cambiar o solicitar el pase correspondiente.",alreadyHavePassport:"Ya tengo el pasaporte",connectWithPassport:"Conéctate con este pasaporte",buyPassport:"Comprar pasaporte"},switchDid:{title:"Cambiar cuenta",scan:"Utilice los siguientes métodos para agregar una cuenta",confirm:"Confirme el cambio en su billetera de DID",success:"Cambiado con éxito"},switchSpecifiedDid:{title:"Cambiar cuenta",scan:"Necesitas cambiar el DID a {did} para completar las siguientes acciones",confirm:"Confirma el cambio en tu billetera DID",success:"Cambió satisfactoriamente"},connect:{title:"Conectar",scan:"Use los siguientes métodos para completar la conexión",confirm:"Confirmar en su cuenta",success:"Estás conectado exitosamente"},needManualClose:"Inicio de sesión correcto, si esta ventana no se cierra automáticamente, ciérrela.",connectWithPassport:"Conectar con este pasaporte",invalidRedirectUrl:"Dirección URL de redireccionamiento no válida",issueKyc:{pageDescription:"Completa la verificación para asegurar tu cuenta y obtener un NFT reutilizable, el cual puede ser confiable por otros sitios (verificar una vez y presentar en todas partes).",verifyButton:"Verificar",sendCodeButton:"Obtener Código de Verificación",codeSentMessage:"Acabamos de enviar un código de verificación a {email}, el código será válido por 30 minutos, por favor revisa tu bandeja de entrada o carpeta de spam.",codeSentSuccess:"Código de verificación enviado exitosamente",claim:"Reclamar Certificado de Email Verificado",scan:"Conecta tu Billetera DID para recibir el certificado",confirm:"Confirma en tu cuenta",success:"¡Felicidades! Has verificado exitosamente tu correo electrónico y reclamado el certificado en tu DID Wallet.",backToHome:"Volver a Inicio",emailPlaceholder:"Tu dirección de correo electrónico",verifyTitle:"Verifica tu dirección de correo electrónico",issueTitle:"Verificación de correo electrónico de reclamo NFT",verifyAction:"Verificando",issueAction:"Reclamando",issueTarget:"Estás {action} para el siguiente DID, haz clic en el avatar para añadir otro DID"},updateKyc:{button:"Certificado de Presente",title:"Certificado de Correo Electrónico Verificado Presente",scan:"Conecta tu Billetera DID para presentar el certificado",confirm:"Confirmar en su cuenta",success:"¡Felicidades! Su NFT ha sido verificado y aceptado."},invalidOpenerUrl:"URL de apertura no válida"},studio:{home:"Estudio",preferences:"Constructor de preferencias",localization:"Localización",branding:"Imágenes de marca",ratio:"Proporción",size:"Tamaño",count:"Contar",tip:"Consejo",change:"Haga clic en el logotipo para cambiar.",order:"Orden",orderTip:"Arrastre para cambiar",orderTipLong:"Arrastra para cambiar, si borras alguna captura de pantalla en el disco, por favor actualiza la página.",type:"Tipo",videoTipLong:"Haz clic en la portada para editar el enlace del video.",video:"Vídeo",videoTooltip:"Arrastra para cambiar el orden.",videoType:"Sitios web compatibles",videoDialogTitle:"Añadir Video",videoDialogEditTitle:"Editar/Eliminar video",videoInputLabel:"Ingresa el enlace del video de YouTube o Vimeo",videoDialogNoSrc:"Por favor, ingrese un enlace de video válido",duplicateVideo:"Se ha añadido este vídeo",confirm:"Confirmar",cancel:"Cancelar",preview:"Previsualización",delete:"Eliminar",title:"Proporcionar imágenes para {title}",description:"Para más información, consulte el",documentation:"Documentación"},blocklet:{startApplication:"Iniciar Aplicación",startDescription:"Listo para empezar, {name}",start:"Comenzar",starting:"Comenzando...",open:"Abrir",suspended:"La aplicación ha sido suspendida",manageSubscription:"Administrar suscripción",suspendedCausedByExpired:"Esta aplicación ha sido terminada debido a la cancelación de la suscripción el {canceledAt}. Puedes reanudar tu suscripción antes de {deadline}.",suspendedCausedByPastDue:"Esta aplicación ha sido suspendida debido a atrasos en el pago de la suscripción. Complete la renovación antes del {deadline} para reanudar el servicio. Después del plazo, no podrá renovar ni reanudar.",willBeSuspendedSoon:"Esta aplicación dejará de funcionar el {deadline} porque la suscripción está por cancelarse. Si desea seguir utilizándola, recupere su suscripción oportunamente.",suspendedCausedByTerminated:"La aplicación se cerró debido a la cancelación de la suscripción, que se canceló el {canceledAt}, y los datos se conservarán hasta {deadline}; antes de que se eliminen los datos, puede hacer una copia de seguridad de los datos en los espacios DID.",terminated:"Aplicación terminada",gotoVisitError:"No se puede acceder a la url de blocklet, por favor intenta de nuevo más tarde",payNow:"Pagar ahora",startLoadingText:"El servicio se está iniciando y puede tardar unos minutos, por favor espere...",startingProgress:{starting:"Comenzando {name}...",success:"{name} se inició correctamente",failed:"{name} no se pudo iniciar"}},setup:{steps:{connect:"Conectar",didSpace:"Espacios DID",config:"Configuración",domain:"Dominio",access:"Acceso",fuel:"Combustible",complete:"Completo",introduction:"Introducción",selectNodeDesc:"Seleccione el Servidor Blocklet",launchAppDesc:"Instalar Blocklet en el servidor",setupAppDesc:"Configurar Blocklet",launched:"Completa",aigne:"AIGNE Hub",branding:"Marca",accessTitle:"Control de acceso"},connect:{title:"Conectar a Blocklet",scan:"Use los siguientes métodos para proporcionar el perfil de usuario y los privilegios de Owner del Blocklet, luego puede configurar e iniciar el Blocklet.",confirm:"Confirmar en su cuenta",success:"Te has conectado correctamente"},domain:{addTitle:"Vincular un dominio existente (Opcional)",title:"Elegir Dominio",subTitle:"Elige o compra un dominio personalizado para tu Blocklet",label:"Por favor proporciona un nombre de dominio válido",tipStart:"Por favor, asegúrese",tipEnd:"tiene punto hacia el servidor actual",addingCert:"Generando certificado...",recordType:"Tipo de registro",recordValue:"Valor de registro",genCertSuccess:"El certificado de {domain} se emite correctamente",genCertFailed:"No se pudo emitir el certificado para {domain}: {message}",genCertFailedForNFTDomain:"Dominio NFT agregado con éxito, pero no se pudo generar el certificado HTTPS. Por favor, inténtelo nuevamente más tarde.",buyDIDDomainTitle:"Compra un DID Domain (Opcional)",buyDIDDomainTips:"Después de comprar un Dominio DID, el dominio se vinculará automáticamente al blocklet.",buyOrConnect:"Puedes comprar o configurar un dominio existente",skipDescription:"Puedes usar temporalmente los dominios predeterminados. Estos dominios no son adecuados para producción y no deben compartirse con clientes."},didSpace:{title:"Configurar espacios DID",subTitle:"Conéctate a DID Spaces para almacenar de forma segura los datos de tu Blocklet",tips:"Consejos",description:"Configura la dirección de la instancia de DID Spaces y almacena los datos de la aplicación en DID Spaces después de establecer una conexión exitosa",label:"Seleccione el servicio DID Spaces",connected:"Has conectado exitosamente a DID Spaces",connect:"Conectar ahora",reconnect:"Reconectar",addressCannotEmpty:"La dirección no puede estar vacía",addressNotValid:"{url} no es una dirección válida",authorize:{title:"Conecta {appName} a los Espacios DID",scan:"Utilice los siguientes métodos para permitir que la app {appName} se conecte a DID Spaces",success:"Conectado exitosamente"}},config:{title:"Configuración",subTitle:"Otros elementos de configuración (también deberá establecer los siguientes elementos)"},complete:{title:"Todo listo",failedTitle:"Error al iniciar el blocklet",backToServer:"Volver al servidor blocklet",notRunning:"La aplicación no pudo iniciar a la primera, por favor inténtalo de nuevo",readyToStart:"Tu app estará lista pronto",opening:"Abriendo..."},fuel:{title:"Combustible necesario para arrancar",tipStart:"Espacio",tipEnd:"se requiere para que esta aplicación funcione correctamente, los fondos se guardan en la billetera de la aplicación y pueden ser utilizados para el pago de comisiones de transacción. Puedes retirar tu saldo en cualquier momento cuando ya no tengas la aplicación en ejecución.",addressTitle:"Cuenta de la aplicación",addressTip:"Alimenta la aplicación con la billetera DID",need:"Necesito",current:"Actual",fuelApp:"Alimentar la aplicación",subTitle:"Proporcionar combustible para la aplicación para asegurar que la aplicación se ejecute normalmente"},title:"Configuración",next:"Siguiente",previous:"Anterior",continue:"Continuar",skip:"Omitir",startNow:"Comenzar ahora",confirm:"Confirmar",cancel:"Cancelar",aigne:{config:"Configuración",observability:"Observabilidad",playground:"Patio de recreo",title:"Configurar AIGNE Hub",subTitle:"Conecta el AIGNE Hub para habilitar las capacidades de IA para tu Blocklet"},connectAccount:{title:"Conectar cuenta",subTitle:"Conecta múltiples métodos de inicio de sesión para un acceso fácil y seguro a tu Blocklet",wallet:"Cartera DID",walletDesc:"Más seguro, funciona en todos los dispositivos, muy recomendado",passkey:"Clave de acceso",passkeyDesc:"Huella digital o reconocimiento facial, inicio de sesión seguro con un toque",email:"Cuenta de correo electrónico",emailDesc:"Método predeterminado del sistema, se recomienda conectar otras cuentas para mayor seguridad",recommended:"Recomendado",connect:"Conectar",connected:"Conectado",statusSuccess:"¡Perfecto! Has configurado {count} métodos de inicio de sesión y puedes elegir la forma más conveniente de acceder al blocklet.",statusSuggestion:"Recomendamos conectar múltiples métodos de inicio de sesión por conveniencia y seguridad; siempre podrá acceder fácilmente a su blocklet.",securityTip:"Importante: Actualmente solo tiene inicio de sesión por correo electrónico. Si lo pierde, no podrá administrar la aplicación. Se recomienda encarecidamente conectar la billetera o la biometría como copia de seguridad.",skipBinding:"Omitir por ahora"},wizardTitle:"Asistente de configuración",wizardSubTitle:"¡Felicidades! Blocklet está listo, configuremos rápidamente contenido personalizado",wizardTooltip:"Haz clic aquí para volver a abrir el asistente",stepOf:"Paso {current} de {total}",finished:"Finalizar",branding:{title:"Marca y logotipo",subTitle:"Dale a tu Blocklet un nombre, descripción y logo para que destaque"},wizardLoading:"Iniciando el asistente de configuración, por favor espere...",accessControl:{title:"Control de acceso",subTitle:"Establecer el control de acceso para gestionar quién puede usar tu Blocklet"},later:"Configurar Más Tarde"},user:{walletNotification:"Notificación de DID Wallet",emailNotification:"Notificación por correo electrónico",smsNotification:"Notificación de SMS",addWebhook:"Agregar nuevo webhook"},pageTitle:{login:"Iniciar sesión",dashboard:"Panel de control de Blocklet",userCenter:"Centro de Usuario",invite:"Invitar",issuePassport:"Problema de pasaporte",lostPassport:"Pasaporte perdido"},errorPage:{404:{title:"¡Vaya! Página no encontrada",description:"Parece que la página que buscas no existe.",backHome:'Si eres un visitante, puedes <a href="{url}">volver a la página principal</a>',goToDashboard:"Si eres el propietario del sitio, puedes <a href={url}>iniciar sesión en el tablero</a>."}},common:{branding:"Marca",theming:"Tematización",navigation:"Navegación",sitemap:"Mapa del sitio",advanced:"Avanzado",performance:"Rendimiento",docs:"Docs",comingSoon:"Próximamente",accessKeys:"Claves de acceso",required:"Requerido"},connectCli:{title:"Conectar para generar clave de acceso",scan:"Escanea el siguiente código QR para conectar y generar la clave de acceso",success:"Autorizado con éxito",successDesc:"Clave de acceso generada con éxito. Puedes cerrar esta página con seguridad.",invalidSession:"Sesión inválida",invalidSessionDesc:"La sesión no existe o ha expirado, por favor use el comando 'blocklet deploy --endpoint {endpoint}' para regenerar la clave de acceso",connectionError:"Error al generar la clave de acceso",home:"Volver a inicio",tips:{title:"Generar clave de acceso",item1:"Admite la implementación local de Blocklets en la aplicación actual",item2:"Se mostrará en la lista de claves de acceso de la aplicación",item3:"Puedes revocar la clave de acceso en la lista en cualquier momento"},upload:"Ahora puedes subir blocklets locales usando la clave de acceso generada.",closeDelay:"Esta página se cerrará en {seconds} segundos."},notFoundOauthClient:"Aplicación OAuth no encontrada, por favor revisa tu configuración de OAuth e intenta de nuevo.",userCenter:{addWebhook:"Agregar notificación externa",cancel:"Cancelar",common:{cancel:"Cancelar",confirm:"Confirmar",invalid:"Inválido",nft:"NFTs",noNFT:"No NFT",required:"Requerido"},commonSetting:{locale:"Idioma preferido",title:"Configuración común"},confirm:"Confirmar",createdAt:"Primera Hora Activa",currentPassport:"Pasaporte actualmente en uso",currentSession:"Sesión Actual",dangerZone:{deleteAccount:"Eliminar Cuenta",title:"Zona de Peligro",deleteAccountDescription:"Eliminar la cuenta impedirá iniciar sesión con esta cuenta, sus datos se eliminarán completamente de la plataforma y no se podrán recuperar.",delete:"Eliminar"},destroyMyself:{error:"Eliminar cuenta falló"},deviceType:"Tipo de dispositivo",emailNotification:"Notificación por correo",expired:"Expirado",lastLoginIp:"Última IP de inicio de sesión",logout:"Cerrar sesión",logoutThisSession:"Cerrar sesión en esta sesión",logoutThisSessionConfirm:"¿Está seguro de cerrar sesión en esta sesión?",noPassport:"Sin pasaporte aún",notificationManagement:"Notificaciones",offline:"Sin conexión",online:"Activo",passport:"Pasaportes",platform:"Plataforma",privacyManagement:"Privacidad",pushNotification:"Notificación push (con tecnología PushKit)",remove:"Eliminar",saveSuccess:"Guardado Exitoso",sessionManagement:"Gestión de sesión",storage:{spaces:{tips:"Consejos",label:"Entrar en DID Spaces Gateway",connectedWithName:"Te has conectado con éxito a {name}",gateway:{delete:{failed:"Eliminar gateway falló"}},provideNFT:{title:"Por favor muestra el DID Spaces NFT para {appName}",scan:"Usa tu DID Wallet para permitir que la app {appName} muestre DID Space NFT",success:"Conectado correctamente"},connect:{useWallet:"Conectar con DID Wallet",useWalletReconnect:"Reconectar con DID Wallet",providerForStorage:"Por favor conecta tu DID Spaces"},connected:{title:"Spaces DID Conectados",tag:"Conectado",switch:"Cambiar DID Spaces"}}},thirdPartyLogin:{connect:"Conectar",disconnect:"Desconectar",mainProviderCantRemove:"Cuenta principal no permitida para eliminar",title:"Cuentas Conectadas",confirmUnbind:"¿Está seguro de desvincular a {name}?",confirmUnbindDescription:"No podrá iniciar sesión en esta cuenta usando {name} después de desagrupar. Si aún está conectado con {name} después de desagrupar, ¡se creará una nueva cuenta automáticamente!",disconnectPasskey:"¿Está seguro de eliminar {name}?",disconnectPasskeyDescription:"No podrá iniciar sesión con esta passkey tras eliminarla. Si aún está conectado con esta passkey después de eliminarla, se creará una cuenta nueva automáticamente.",walletAccountCantRemove:"Cuenta de Wallet no permitida para eliminar",mainAccount:"Cuenta Principal",walletAccount:"Cuenta de Billetera",dontSupportRemoveinArcSphere:"No se admite eliminar passkey en ArcSphere, por favor elimínelo en el navegador de escritorio"},unknown:"Desconocido",updatedAt:"Última vez activo",user:"Usuario",walletNotification:"Notificación de DID Wallet",walletOS:"Sistema Operativo Wallet",webhook:{slack:"Slack",url:"URL personalizada"},webhookTested:"Mensaje de prueba enviado",toPublic:'Página pública "{name}"',logoutAll:"Cerrar sesión en todas las sesiones de {type}",logoutAllTips:"No cerrar sesión actual",logoutAllSession:"Cerrar sesión en todas las sesiones de {type}",logoutAllSessionConfirm:"¿Estás seguro de cerrar sesión en todas las {type} sesiones?",actions:"Acciones"},aigne:{notAuthorized:"No Autorizado",connectTo:"Conectar a {appName}",accessTips:{tips1:"{appName} podrá acceder a {accessAppName} y actuar como tú",tips2:"Solo continúe si confía en {appName}",tips3:'Puedes revocar el acceso en cualquier momento en <a href="{url}" target="_blank">Configuración de {accessAppName}</a>',switchPassport:"Passport {required_roles} se usará para completar la autorización"},cli:"AIGNE CLI"}};export{e as default};
|
|
1
|
+
const e={auth:{noPermission:{title:"No tienes permiso",description:"No eres el administrador del blocklet"}},login:{reLogin:"Reconectar",description:"Debes conectar tu billetera DID para acceder a {name}",already:"Estás conectado como {name}",connectWallet:"Conectar DID Wallet",closeWindow:"Cerrar ventana",accessLimit:{title:"Acceso a la página restringido",description:"Esta página requiere los siguientes pasaportes para acceder, por favor conecta con la billetera para cambiar o solicitar el pase correspondiente.",alreadyHavePassport:"Ya tengo el pasaporte",connectWithPassport:"Conéctate con este pasaporte",buyPassport:"Comprar pasaporte"},switchDid:{title:"Cambiar cuenta",scan:"Utilice los siguientes métodos para agregar una cuenta",confirm:"Confirme el cambio en su billetera de DID",success:"Cambiado con éxito"},switchSpecifiedDid:{title:"Cambiar cuenta",scan:"Necesitas cambiar el DID a {did} para completar las siguientes acciones",confirm:"Confirma el cambio en tu billetera DID",success:"Cambió satisfactoriamente"},connect:{title:"Conectar",scan:"Use los siguientes métodos para completar la conexión",confirm:"Confirmar en su cuenta",success:"Estás conectado exitosamente"},needManualClose:"Inicio de sesión correcto, si esta ventana no se cierra automáticamente, ciérrela.",connectWithPassport:"Conectar con este pasaporte",invalidRedirectUrl:"Dirección URL de redireccionamiento no válida",issueKyc:{pageDescription:"Completa la verificación para asegurar tu cuenta y obtener un NFT reutilizable, el cual puede ser confiable por otros sitios (verificar una vez y presentar en todas partes).",verifyButton:"Verificar",sendCodeButton:"Obtener Código de Verificación",codeSentMessage:"Acabamos de enviar un código de verificación a {email}, el código será válido por 30 minutos, por favor revisa tu bandeja de entrada o carpeta de spam.",codeSentSuccess:"Código de verificación enviado exitosamente",claim:"Reclamar Certificado de Email Verificado",scan:"Conecta tu Billetera DID para recibir el certificado",confirm:"Confirma en tu cuenta",success:"¡Felicidades! Has verificado exitosamente tu correo electrónico y reclamado el certificado en tu DID Wallet.",backToHome:"Volver a Inicio",emailPlaceholder:"Tu dirección de correo electrónico",verifyTitle:"Verifica tu dirección de correo electrónico",issueTitle:"Verificación de correo electrónico de reclamo NFT",verifyAction:"Verificando",issueAction:"Reclamando",issueTarget:"Estás {action} para el siguiente DID, haz clic en el avatar para añadir otro DID"},updateKyc:{button:"Certificado de Presente",title:"Certificado de Correo Electrónico Verificado Presente",scan:"Conecta tu Billetera DID para presentar el certificado",confirm:"Confirmar en su cuenta",success:"¡Felicidades! Su NFT ha sido verificado y aceptado."},invalidOpenerUrl:"URL de apertura no válida"},studio:{home:"Estudio",preferences:"Constructor de preferencias",localization:"Localización",branding:"Imágenes de marca",ratio:"Proporción",size:"Tamaño",count:"Contar",tip:"Consejo",change:"Haga clic en el logotipo para cambiar.",order:"Orden",orderTip:"Arrastre para cambiar",orderTipLong:"Arrastra para cambiar, si borras alguna captura de pantalla en el disco, por favor actualiza la página.",type:"Tipo",videoTipLong:"Haz clic en la portada para editar el enlace del video.",video:"Vídeo",videoTooltip:"Arrastra para cambiar el orden.",videoType:"Sitios web compatibles",videoDialogTitle:"Añadir Video",videoDialogEditTitle:"Editar/Eliminar video",videoInputLabel:"Ingresa el enlace del video de YouTube o Vimeo",videoDialogNoSrc:"Por favor, ingrese un enlace de video válido",duplicateVideo:"Se ha añadido este vídeo",confirm:"Confirmar",cancel:"Cancelar",preview:"Previsualización",delete:"Eliminar",title:"Proporcionar imágenes para {title}",description:"Para más información, consulte el",documentation:"Documentación"},blocklet:{startApplication:"Iniciar Aplicación",startDescription:"Listo para empezar, {name}",start:"Comenzar",starting:"Comenzando...",open:"Abrir",suspended:"La aplicación ha sido suspendida",manageSubscription:"Administrar suscripción",suspendedCausedByExpired:"Esta aplicación ha sido terminada debido a la cancelación de la suscripción el {canceledAt}. Puedes reanudar tu suscripción antes de {deadline}.",suspendedCausedByPastDue:"Esta aplicación ha sido suspendida debido a atrasos en el pago de la suscripción. Complete la renovación antes del {deadline} para reanudar el servicio. Después del plazo, no podrá renovar ni reanudar.",willBeSuspendedSoon:"Esta aplicación dejará de funcionar el {deadline} porque la suscripción está por cancelarse. Si desea seguir utilizándola, recupere su suscripción oportunamente.",suspendedCausedByTerminated:"La aplicación se cerró debido a la cancelación de la suscripción, que se canceló el {canceledAt}, y los datos se conservarán hasta {deadline}; antes de que se eliminen los datos, puede hacer una copia de seguridad de los datos en los espacios DID.",terminated:"Aplicación terminada",gotoVisitError:"No se puede acceder a la url de blocklet, por favor intenta de nuevo más tarde",payNow:"Pagar ahora",startLoadingText:"El servicio se está iniciando y puede tardar unos minutos, por favor espere...",startingProgress:{starting:"Comenzando {name}...",success:"{name} se inició correctamente",failed:"{name} no se pudo iniciar"}},setup:{steps:{connect:"Conectar",didSpace:"Espacios DID",config:"Configuración",domain:"Dominio",access:"Acceso",fuel:"Combustible",complete:"Completo",introduction:"Introducción",selectNodeDesc:"Seleccione el Servidor Blocklet",launchAppDesc:"Instalar Blocklet en el servidor",setupAppDesc:"Configurar Blocklet",launched:"Completa",aigne:"AIGNE Hub",branding:"Marca",accessTitle:"Control de acceso"},connect:{title:"Conectar a Blocklet",scan:"Use los siguientes métodos para proporcionar el perfil de usuario y los privilegios de Owner del Blocklet, luego puede configurar e iniciar el Blocklet.",confirm:"Confirmar en su cuenta",success:"Te has conectado correctamente"},domain:{addTitle:"Vincular un dominio existente (Opcional)",title:"Elegir Dominio",subTitle:"Elige o compra un dominio personalizado para tu Blocklet",label:"Por favor proporciona un nombre de dominio válido",tipStart:"Por favor, asegúrese",tipEnd:"tiene punto hacia el servidor actual",addingCert:"Generando certificado...",recordType:"Tipo de registro",recordValue:"Valor de registro",genCertSuccess:"El certificado de {domain} se emite correctamente",genCertFailed:"No se pudo emitir el certificado para {domain}: {message}",genCertFailedForNFTDomain:"Dominio NFT agregado con éxito, pero no se pudo generar el certificado HTTPS. Por favor, inténtelo nuevamente más tarde.",buyDIDDomainTitle:"Compra un DID Domain (Opcional)",buyDIDDomainTips:"Después de comprar un Dominio DID, el dominio se vinculará automáticamente al blocklet.",buyOrConnect:"Puedes comprar o configurar un dominio existente",skipDescription:"Puedes usar temporalmente los dominios predeterminados. Estos dominios no son adecuados para producción y no deben compartirse con clientes."},didSpace:{title:"Configurar espacios DID",subTitle:"Conéctate a DID Spaces para almacenar de forma segura los datos de tu Blocklet",tips:"Consejos",description:"Configura la dirección de la instancia de DID Spaces y almacena los datos de la aplicación en DID Spaces después de establecer una conexión exitosa",label:"Seleccione el servicio DID Spaces",connected:"Has conectado exitosamente a DID Spaces",connect:"Conectar ahora",reconnect:"Reconectar",addressCannotEmpty:"La dirección no puede estar vacía",addressNotValid:"{url} no es una dirección válida",authorize:{title:"Conecta {appName} a los Espacios DID",scan:"Utilice los siguientes métodos para permitir que la app {appName} se conecte a DID Spaces",success:"Conectado exitosamente"}},config:{title:"Configuración",subTitle:"Otros elementos de configuración (también deberá establecer los siguientes elementos)"},complete:{title:"Todo listo",failedTitle:"Error al iniciar el blocklet",backToServer:"Volver al servidor blocklet",notRunning:"La aplicación no pudo iniciar a la primera, por favor inténtalo de nuevo",readyToStart:"Tu app estará lista pronto",opening:"Abriendo..."},fuel:{title:"Combustible necesario para arrancar",tipStart:"Espacio",tipEnd:"se requiere para que esta aplicación funcione correctamente, los fondos se guardan en la billetera de la aplicación y pueden ser utilizados para el pago de comisiones de transacción. Puedes retirar tu saldo en cualquier momento cuando ya no tengas la aplicación en ejecución.",addressTitle:"Cuenta de la aplicación",addressTip:"Alimenta la aplicación con la billetera DID",need:"Necesito",current:"Actual",fuelApp:"Alimentar la aplicación",subTitle:"Proporcionar combustible para la aplicación para asegurar que la aplicación se ejecute normalmente"},title:"Configuración",next:"Siguiente",previous:"Anterior",continue:"Continuar",skip:"Omitir",startNow:"Comenzar ahora",confirm:"Confirmar",cancel:"Cancelar",aigne:{config:"Configuración",observability:"Observabilidad",playground:"Patio de recreo",title:"Configurar AIGNE Hub",subTitle:"Conecta el AIGNE Hub para habilitar las capacidades de IA para tu Blocklet"},connectAccount:{title:"Conectar cuenta",subTitle:"Conecta múltiples métodos de inicio de sesión para un acceso fácil y seguro a tu Blocklet",wallet:"Cartera DID",walletDesc:"Más seguro, funciona en todos los dispositivos, muy recomendado",passkey:"Clave de acceso",passkeyDesc:"Huella digital o reconocimiento facial, inicio de sesión seguro con un toque",email:"Cuenta de correo electrónico",emailDesc:"Método predeterminado del sistema, se recomienda conectar otras cuentas para mayor seguridad",recommended:"Recomendado",connect:"Conectar",connected:"Conectado",statusSuccess:"¡Perfecto! Has configurado {count} métodos de inicio de sesión y puedes elegir la forma más conveniente de acceder al blocklet.",statusSuggestion:"Recomendamos conectar múltiples métodos de inicio de sesión por conveniencia y seguridad; siempre podrá acceder fácilmente a su blocklet.",securityTip:"Importante: Actualmente solo tiene inicio de sesión por correo electrónico. Si lo pierde, no podrá administrar la aplicación. Se recomienda encarecidamente conectar la billetera o la biometría como copia de seguridad.",skipBinding:"Omitir por ahora"},wizardTitle:"Asistente de configuración",wizardSubTitle:"¡Felicidades! Blocklet está listo, configuremos rápidamente contenido personalizado",wizardTooltip:"Haz clic aquí para volver a abrir el asistente",stepOf:"Paso {current} de {total}",finished:"Finalizar",branding:{title:"Marca y logotipo",subTitle:"Dale a tu Blocklet un nombre, descripción y logo para que destaque"},wizardLoading:"Iniciando el asistente de configuración, por favor espere...",accessControl:{title:"Control de acceso",subTitle:"Establecer el control de acceso para gestionar quién puede usar tu Blocklet"},later:"Configurar Más Tarde"},user:{walletNotification:"Notificación de DID Wallet",emailNotification:"Notificación por correo electrónico",smsNotification:"Notificación de SMS",addWebhook:"Agregar nuevo webhook"},pageTitle:{login:"Iniciar sesión",dashboard:"Panel de control de Blocklet",userCenter:"Centro de Usuario",invite:"Invitar",issuePassport:"Problema de pasaporte",lostPassport:"Pasaporte perdido"},errorPage:{404:{title:"¡Vaya! Página no encontrada",description:"Parece que la página que buscas no existe.",backHome:'Si eres un visitante, puedes <a href="{url}">volver a la página principal</a>',goToDashboard:"Si eres el propietario del sitio, puedes <a href={url}>iniciar sesión en el tablero</a>."}},common:{branding:"Marca",theming:"Tematización",navigation:"Navegación",sitemap:"Mapa del sitio",advanced:"Avanzado",performance:"Rendimiento",docs:"Docs",comingSoon:"Próximamente",accessKeys:"Claves de acceso",required:"Requerido"},connectCli:{title:"Conectar para generar clave de acceso",scan:"Escanea el siguiente código QR para conectar y generar la clave de acceso",success:"Autorizado con éxito",successDesc:"Clave de acceso generada con éxito. Puedes cerrar esta página con seguridad.",invalidSession:"Sesión inválida",invalidSessionDesc:"La sesión no existe o ha expirado, por favor use el comando 'blocklet deploy --endpoint {endpoint}' para regenerar la clave de acceso",connectionError:"Error al generar la clave de acceso",home:"Volver a inicio",tips:{title:"Generar clave de acceso",item1:"Admite la implementación local de Blocklets en la aplicación actual",item2:"Se mostrará en la lista de claves de acceso de la aplicación",item3:"Puedes revocar la clave de acceso en la lista en cualquier momento"},upload:"Ahora puedes subir blocklets locales usando la clave de acceso generada.",closeDelay:"Esta página se cerrará en {seconds} segundos."},notFoundOauthClient:"Aplicación OAuth no encontrada, por favor revisa tu configuración de OAuth e intenta de nuevo.",userCenter:{addWebhook:"Agregar notificación externa",cancel:"Cancelar",common:{cancel:"Cancelar",confirm:"Confirmar",invalid:"Inválido",nft:"NFTs",noNFT:"No NFT",required:"Requerido"},commonSetting:{locale:"Idioma preferido",title:"Configuración común"},confirm:"Confirmar",createdAt:"Primera Hora Activa",currentPassport:"Pasaporte actualmente en uso",currentSession:"Sesión Actual",dangerZone:{deleteAccount:"Eliminar Cuenta",title:"Zona de Peligro",deleteAccountDescription:"Eliminar la cuenta impedirá iniciar sesión con esta cuenta, sus datos se eliminarán completamente de la plataforma y no se podrán recuperar.",delete:"Eliminar"},destroyMyself:{error:"Eliminar cuenta falló"},deviceType:"Tipo de dispositivo",emailNotification:"Notificación por correo",expired:"Expirado",lastLoginIp:"Última IP de inicio de sesión",logout:"Cerrar sesión",logoutThisSession:"Cerrar sesión en esta sesión",logoutThisSessionConfirm:"¿Está seguro de cerrar sesión en esta sesión?",noPassport:"Sin pasaporte aún",notificationManagement:"Notificaciones",offline:"Sin conexión",online:"Activo",passport:"Pasaportes",platform:"Plataforma",privacyManagement:"Privacidad",pushNotification:"Notificación push (con tecnología PushKit)",remove:"Eliminar",saveSuccess:"Guardado Exitoso",sessionManagement:"Gestión de sesión",storage:{spaces:{tips:"Consejos",label:"Entrar en DID Spaces Gateway",connectedWithName:"Te has conectado con éxito a {name}",gateway:{delete:{failed:"Eliminar gateway falló"}},provideNFT:{title:"Por favor muestra el DID Spaces NFT para {appName}",scan:"Usa tu DID Wallet para permitir que la app {appName} muestre DID Space NFT",success:"Conectado correctamente"},connect:{useWallet:"Conectar con DID Wallet",useWalletReconnect:"Reconectar con DID Wallet",providerForStorage:"Por favor conecta tu DID Spaces"},connected:{title:"Spaces DID Conectados",tag:"Conectado",switch:"Cambiar DID Spaces"}}},thirdPartyLogin:{connect:"Conectar",disconnect:"Desconectar",mainProviderCantRemove:"Cuenta principal no permitida para eliminar",title:"Cuentas Conectadas",confirmUnbind:"¿Está seguro de desvincular a {name}?",confirmUnbindDescription:"No podrá iniciar sesión en esta cuenta usando {name} después de desagrupar. Si aún está conectado con {name} después de desagrupar, ¡se creará una nueva cuenta automáticamente!",disconnectPasskey:"¿Está seguro de eliminar {name}?",disconnectPasskeyDescription:"No podrá iniciar sesión con esta passkey tras eliminarla. Si aún está conectado con esta passkey después de eliminarla, se creará una cuenta nueva automáticamente.",walletAccountCantRemove:"Cuenta de Wallet no permitida para eliminar",mainAccount:"Cuenta Principal",walletAccount:"Cuenta de Billetera",dontSupportRemoveinArcSphere:"No se admite eliminar passkey en ArcSphere, por favor elimínelo en el navegador de escritorio",confirmBindWallet:"¿Conectar tu billetera DID?",confirmBindWalletDescription:"Una vez conectado, podrás iniciar sesión con tu DID Wallet. Esta conexión es permanente y no se puede cambiar, así que asegúrate de conectar la cuenta correcta."},unknown:"Desconocido",updatedAt:"Última vez activo",user:"Usuario",walletNotification:"Notificación de DID Wallet",walletOS:"Sistema Operativo Wallet",webhook:{slack:"Slack",url:"URL personalizada"},webhookTested:"Mensaje de prueba enviado",toPublic:'Página pública "{name}"',logoutAll:"Cerrar sesión en todas las sesiones de {type}",logoutAllTips:"No cerrar sesión actual",logoutAllSession:"Cerrar sesión en todas las sesiones de {type}",logoutAllSessionConfirm:"¿Estás seguro de cerrar sesión en todas las {type} sesiones?",actions:"Acciones"},aigne:{notAuthorized:"No Autorizado",connectTo:"Conectar a {appName}",accessTips:{tips1:"{appName} podrá acceder a {accessAppName} y actuar como tú",tips2:"Solo continúe si confía en {appName}",tips3:'Puedes revocar el acceso en cualquier momento en <a href="{url}" target="_blank">Configuración de {accessAppName}</a>',switchPassport:"Passport {required_roles} se usará para completar la autorización",switchPassportRequired:"Se requiere un pasaporte de {required_roles} para completar la autorización. Por favor, cambie el permiso."},cli:"AIGNE CLI"}};export{e as default};
|