@abtnode/blocklet-services 1.17.5 → 1.17.6-beta-20251216-081847-bf91c4db
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/libs/connect/session.js +6 -9
- package/api/routes/federated.js +2 -2
- package/dist/assets/AdapterDayjs-Bfr4sW4C.js +3 -0
- package/dist/assets/{Community-C7CFokDQ.js → Community-CELsDteM.js} +1 -1
- package/dist/assets/{Google-qCiUM9VP.js → Google-DA3WTnLE.js} +1 -1
- package/dist/assets/{Holiday-DyVifdc-.js → Holiday-DOCjSYjH.js} +1 -1
- package/dist/assets/{Meeting-DbtUCCZq.js → Meeting-BAXt_LiK.js} +1 -1
- package/dist/assets/{OffSick-BtITykO3.js → OffSick-BGEr8Nkc.js} +1 -1
- package/dist/assets/{WorkingRemotely-mKvokr6L.js → WorkingRemotely-BcneAIXG.js} +1 -1
- package/dist/assets/access-control-BZvc7AZG.js +14 -0
- package/dist/assets/actions-Dfiiwkit.js +1 -0
- package/dist/assets/{add-component-core-CFL73x1V.js → add-component-core-CNH5E2RR.js} +1 -1
- package/dist/assets/add-resource-BWEvlWkH.js +1 -0
- package/dist/assets/addon-uM70Qwac.js +14 -0
- package/dist/assets/{advanced-Djs25PXG.js → advanced-Caeqx4XB.js} +1 -1
- package/dist/assets/aigne-B9drp8Pq.js +10 -0
- package/dist/assets/api-C75sLx9p.js +1 -0
- package/dist/assets/appearance-DM7p-6Wl.js +1 -0
- package/dist/assets/arrow-down.svg-C4FUKwt4.js +1 -0
- package/dist/assets/{audit-logs-CXjhDj8M.js → audit-logs-L-gO50KL.js} +2 -2
- package/dist/assets/authorize-D2d4GCpP.js +1 -0
- package/dist/assets/{base-chart-BXspUQ5X.js → base-chart-DSDnGziZ.js} +1 -1
- package/dist/assets/{base32-E_M8YiDy.js → base32-B-7CnEFd.js} +1 -1
- package/dist/assets/bind-account-DuzArGdZ.js +1 -0
- package/dist/assets/{branding-B6_O9dwM.js → branding-Dx40btDl.js} +1 -1
- package/dist/assets/{branding-BN5xzu2K.js → branding-aCdIMhb0.js} +5 -5
- package/dist/assets/branding-bYH66Nug.js +1 -0
- package/dist/assets/bundle-avatar-B1jZNqcH.js +1 -0
- package/dist/assets/button-BnSiFtNt.js +1 -0
- package/dist/assets/click-to-copy-CwdgHxjB.js +1 -0
- package/dist/assets/cloneDeep-B_fYlLpl.js +1 -0
- package/dist/assets/{collapse-DRXViE1U.js → collapse-B7gUzFaX.js} +1 -1
- package/dist/assets/{complete-DERkCyic.js → complete-Rr-_Zaon.js} +3 -3
- package/dist/assets/{component-BFEXoFyD.js → component-DZretbSC.js} +2 -2
- package/dist/assets/{config-DBQhYXkx.js → config-Bjbv_xI5.js} +1 -1
- package/dist/assets/config-BkqISfFO.js +53 -0
- package/dist/assets/{config-mfnTXE1f.js → config-Dw0qq-09.js} +2 -2
- package/dist/assets/{config-navigation-CL9YkEzl.js → config-navigation-Dj8qf6cK.js} +8 -8
- package/dist/assets/config-space-Dw6ITGIj.js +1 -0
- package/dist/assets/confirm-Bpit6U3-.js +7 -0
- package/dist/assets/{connect-DXN8mBKc.js → connect-B1ZA3nS8.js} +1 -1
- package/dist/assets/connect-Bl7-1lbc.js +1 -0
- package/dist/assets/connect-to-BsxW3JJi.js +1 -0
- package/dist/assets/{content-layout-B5NObRcH.js → content-layout-DmSBGGVm.js} +1 -1
- package/dist/assets/{create-passport-svg-BwqsyTOz.js → create-passport-svg-DGPNsGUE.js} +1 -1
- package/dist/assets/createClass-B5uCYz0o.js +1 -0
- package/dist/assets/{dashboard-DHhNID_3.js → dashboard-DBwE7l6f.js} +7 -7
- package/dist/assets/{delete-confirm-DSQSBte5.js → delete-confirm-L0HXJtqt.js} +1 -1
- package/dist/assets/did-address-uvYuZ4wv.js +1 -0
- package/dist/assets/domain-BoEowNlU.js +9 -0
- package/dist/assets/domain-action-card-BB0jQwcH.js +28 -0
- package/dist/assets/domains-kgzxNW_C.js +1 -0
- package/dist/assets/{edit.svg-Dz9cVo7r.js → edit.svg-RRSklUg-.js} +1 -1
- package/dist/assets/{email-DDHqRiNE.js → email-BAr61Jer.js} +2 -2
- package/dist/assets/{empty-spinner-0EAHJWBW.js → empty-spinner-BYDonf35.js} +1 -1
- package/dist/assets/engine-DWk3y4cO.js +1 -0
- package/dist/assets/exchange-passport-BuJUAVgN.js +1 -0
- package/dist/assets/{form-C-ZRaynb.js → form-kdwSU-mv.js} +3 -3
- package/dist/assets/form-text-input-B_h8beXh.js +11 -0
- package/dist/assets/{form-wrapper-dz0PgYyA.js → form-wrapper-PT5ZzMQy.js} +1 -1
- package/dist/assets/fuel-C9kfBZ4R.js +32 -0
- package/dist/assets/gen-access-key-Bh-o1OFU.js +1 -0
- package/dist/assets/gen-simple-access-key-DHmIlRFl.js +1 -0
- package/dist/assets/get-safe-url-gaxZoVzJ.js +1 -0
- package/dist/assets/{home-D8RPk4rl.js → home-Cb5I193s.js} +1 -1
- package/dist/assets/{iframe-DbxlfoSv.js → iframe-C233G1py.js} +1 -1
- package/dist/assets/{index-Dnont80V.js → index-B0Q9wWG1.js} +2 -2
- package/dist/assets/{index-BfyoUnq5.js → index-B7DVpLRM.js} +34 -34
- package/dist/assets/index-BScxMPlP.js +1 -0
- package/dist/assets/{index-CiQvt8QY.js → index-BT70k77_.js} +2 -2
- package/dist/assets/index-BaaFi7Vh.js +1 -0
- package/dist/assets/{index-CmT6o_W4.js → index-Bf3Peb0q.js} +5 -5
- package/dist/assets/{index-BIFlvVef.js → index-C-vVEZcs.js} +6 -6
- package/dist/assets/{index-BajjN1HU.js → index-CGP3CGlC.js} +6 -6
- package/dist/assets/{index-Ccjxs0wr.js → index-CI3rRJqa.js} +12 -12
- package/dist/assets/{index-CAtE4xM9.js → index-CK3KHeKw.js} +8 -8
- package/dist/assets/{index-CIvZ7HIX.js → index-CRAuhYSg.js} +1 -1
- package/dist/assets/{index-CJBVOMty.js → index-CUlOq3Sr.js} +4 -4
- package/dist/assets/{index-DK4Rvfj9.js → index-CZBIYuko.js} +1 -1
- package/dist/assets/{index-BjLM8Gon.js → index-CaTDaKrX.js} +1 -1
- package/dist/assets/index-CqD-x8pw.js +7 -0
- package/dist/assets/{index-Bs5xamxm.js → index-CtORPeiq.js} +2 -2
- package/dist/assets/index-D-a8pZtp.js +1 -0
- package/dist/assets/{index-BOiRUuPB.js → index-D24LKXzO.js} +1 -1
- package/dist/assets/{index-C0q1NhNR.js → index-D29her4n.js} +1 -1
- package/dist/assets/index-DACtt7qd.js +102 -0
- package/dist/assets/{index-BRGQOPmE.js → index-D_u0j8BO.js} +1 -1
- package/dist/assets/{index-B6QOO2yw.js → index-DjpxFmgG.js} +7 -7
- package/dist/assets/index-DuDIkjct.js +55 -0
- package/dist/assets/{index-BXtrOI0G.js → index-DwJ_NASi.js} +1 -1
- package/dist/assets/{index-Dijoh4El.js → index-DwyzCfdd.js} +103 -103
- package/dist/assets/index-KIswy2vM.js +120 -0
- package/dist/assets/index-LaMi0T4w.js +1 -0
- package/dist/assets/index-MQEkIEm-.js +1 -0
- package/dist/assets/{index-DHn4LCaq.js → index-OMkyTUNX.js} +4 -4
- package/dist/assets/index-WT6M-zj8.js +6 -0
- package/dist/assets/{index-BsA1v5Kx.js → index-_tncRnTu.js} +1 -1
- package/dist/assets/index-lK6Pf_qM.js +11 -0
- package/dist/assets/{index-CMec_woq.js → index-m1ZQT0sU.js} +1 -1
- package/dist/assets/{index-bb4s-8hu.js → index-oS8X43Pb.js} +6 -6
- package/dist/assets/index-xE7OidBo.js +1 -0
- package/dist/assets/{index.esm-DTmS4tth.js → index.esm-Co8ZxFyk.js} +1 -1
- package/dist/assets/{invitation-Cjg3Rgxl.js → invitation-C2S2tPzG.js} +7 -7
- package/dist/assets/invitations-Dil5QWBY.js +3 -0
- package/dist/assets/invite-GVnju9RQ.js +1 -0
- package/dist/assets/{isURL-wZZwzwyC.js → isURL-ZFgr0DWl.js} +2 -2
- package/dist/assets/issue-passport-BmU6NmKw.js +1 -0
- package/dist/assets/{item-Bpf_gGYt.js → item-DfQKizv4.js} +1 -1
- package/dist/assets/landing-page-C3zTr0-n.js +1 -0
- package/dist/assets/{launch-result-message-BTBdTioQ.js → launch-result-message-MNpx7ysR.js} +1 -1
- package/dist/assets/{layout-CZo9vMzc.js → layout-tkk_Lr2y.js} +1 -1
- package/dist/assets/list-BvgV1Jbh.js +2 -0
- package/dist/assets/list-YOpLH3o0.js +103 -0
- package/dist/assets/{list-header-BQo9L_6R.js → list-header-Cl3jykCe.js} +1 -1
- package/dist/assets/localization-DcnSNZHz.js +1 -0
- package/dist/assets/{lock.svg-BPCZ0CT3.js → lock.svg-BgybwZNe.js} +1 -1
- package/dist/assets/{log-KsUeQx46.js → log-C0zcaEbO.js} +1 -1
- package/dist/assets/logger-BbBkOuwH.js +1 -0
- package/dist/assets/login-BR26IXZx.js +1 -0
- package/dist/assets/login-oauth-callback-DCJMx5J1.js +1 -0
- package/dist/assets/logo-uploader-TLOlwvRt.js +30 -0
- package/dist/assets/{lost-passport-DWR3ith-.js → lost-passport-DE5KGhjz.js} +3 -3
- package/dist/assets/{lottie-react.esm-CD0xFBYg.js → lottie-react.esm-E4oo1jhL.js} +1 -1
- package/dist/assets/omit-D_PYZZLm.js +1 -0
- package/dist/assets/{open-window-Ct_MP3Sx.js → open-window-CPNpPXku.js} +1 -1
- package/dist/assets/over-due-invoice-payment-1EZsSUm4.js +1 -0
- package/dist/assets/{overview-5u7B_D_6.js → overview-CMduEuAK.js} +2 -2
- package/dist/assets/{page-header-Cgwo2np-.js → page-header-CHAwrgX-.js} +1 -1
- package/dist/assets/passport-Dg1YWagy.js +1 -0
- package/dist/assets/passport-item-QbgyHapR.js +1 -0
- package/dist/assets/{permission-BYxNrlaa.js → permission-C0bmOzVj.js} +1 -1
- package/dist/assets/preferences-0l0Zmaom.js +1 -0
- package/dist/assets/profile-embed-BQzLZZkK.js +1 -0
- package/dist/assets/publish-resource-ggObFvMi.js +1 -0
- package/dist/assets/{question-mark-circle.svg-DK9nTUDZ.js → question-mark-circle.svg-CByEVDhb.js} +1 -1
- package/dist/assets/{raf-schd.esm-JNUhxcps.js → raf-schd.esm-XXBRsnmf.js} +1 -1
- package/dist/assets/{react-beautiful-dnd.esm-Cvsu51oI.js → react-beautiful-dnd.esm-zYw9dagY.js} +1 -1
- package/dist/assets/{react-stripe.esm-Dqbe1A8R.js → react-stripe.esm-CVZErl8X.js} +1 -1
- package/dist/assets/{required-B0Gua-D1.js → required-BQln5OcV.js} +1 -1
- package/dist/assets/{revoke.svg-CuiCGfVW.js → revoke.svg-CNl4LAbv.js} +1 -1
- package/dist/assets/runtime-BNKE0VfZ.js +1 -0
- package/dist/assets/{sanitize-D6Abg5_T.js → sanitize-CtCDGQB6.js} +1 -1
- package/dist/assets/sdk-YVE2MSze.js +1 -0
- package/dist/assets/{section-BkMzBpvM.js → section-jXB9AxBb.js} +1 -1
- package/dist/assets/{security-DCG1tmZe.js → security-CWEVWbF4.js} +3 -3
- package/dist/assets/{server-logo-notext.svg-DHxZ1bRk.js → server-logo-notext.svg-xZ-i1SpD.js} +1 -1
- package/dist/assets/session-Des-0R_y.js +1 -0
- package/dist/assets/setup-Cps_vpFS.js +24 -0
- package/dist/assets/{shorten-label-DhOty_4j.js → shorten-label-C4py9TLA.js} +1 -1
- package/dist/assets/{simple-select-D0q2J-Br.js → simple-select-DbXWLzPn.js} +1 -1
- package/dist/assets/{spaces-DM95DgFM.js → spaces-2YPkTkBR.js} +1 -1
- package/dist/assets/start-CuCNmoqX.js +187 -0
- package/dist/assets/{starting-progress-aMYWzin8.js → starting-progress-xuCef6_T.js} +2 -2
- package/dist/assets/status-DleDsf-t.js +1 -0
- package/dist/assets/{step-actions-nHHLzUFh.js → step-actions-AHe2MQxo.js} +1 -1
- package/dist/assets/studio-HfI11Uc3.js +6 -0
- package/dist/assets/{switch-control-BAyRLHvJ.js → switch-control-CzYig10w.js} +1 -1
- package/dist/assets/switch-rIcJ7tho.js +1 -0
- package/dist/assets/{table-tips-BA9A3QDk.js → table-tips-Ba9Kf02z.js} +1 -1
- package/dist/assets/team-BWkxYdcc.js +146 -0
- package/dist/assets/traffic-jB6onGHq.js +1 -0
- package/dist/assets/transfer-DspVAdFc.js +16 -0
- package/dist/assets/unsubscribe-CKdMi1Kx.js +1 -0
- package/dist/assets/use-app-logo-BAGvxEU-.js +1 -0
- package/dist/assets/{use-mobile-Dwc30NoL.js → use-mobile-BINJTzMb.js} +1 -1
- package/dist/assets/{use-mobile-Vtj5nBdp.js → use-mobile-D5clNlrm.js} +1 -1
- package/dist/assets/{use-server-logo-BfNy3Xkj.js → use-server-logo-Cv1kAPgB.js} +1 -1
- package/dist/assets/use-window-close-D7QBHj75.js +1 -0
- package/dist/assets/useAsync-CgTefzpB.js +1 -0
- package/dist/assets/{useAsync-DNDhrs-2.js → useAsync-CxjyODHb.js} +1 -1
- package/dist/assets/{useAsyncRetry-CSW1hopB.js → useAsyncRetry-BnuUJFwY.js} +1 -1
- package/dist/assets/useLocalStorage-Bj52e1ZW.js +1 -0
- package/dist/assets/{useSetState-cWrp7qoX.js → useSetState-L-f8mSga.js} +1 -1
- package/dist/assets/user-center-CL_lKzgJ.js +125 -0
- package/dist/assets/user-follower-CfiG4RXf.js +32 -0
- package/dist/assets/{util-DSnAozzs.js → util-C9cWBCZz.js} +1 -1
- package/dist/assets/{util-BxX0TJKJ.js → util-DXf_zMuU.js} +1 -1
- package/dist/assets/{vendor-arcblock-D4Rvz_D3.js → vendor-arcblock-DkdOhPyM.js} +1 -1
- package/dist/assets/{vendor-hooks-U4TTuKG0.js → vendor-hooks-BZ19vVZ7.js} +2 -2
- package/dist/assets/{vendor-mui-core-B5XNUjey.js → vendor-mui-core-DnR6WYuU.js} +2 -2
- package/dist/assets/{vendor-mui-x-DtPl0qBm.js → vendor-mui-x-CQc01l4r.js} +1 -1
- package/dist/assets/{vendor-react-CUXIiAnY.js → vendor-react-CTtPmzVP.js} +1 -1
- package/dist/assets/{vendor-utils-CFxoplqC.js → vendor-utils-D5UG1a5Y.js} +2 -2
- package/dist/assets/{vendor-ux-BX9dSNUy.js → vendor-ux-DMZIE6wA.js} +2 -2
- package/dist/assets/{wait-connect-CCXiMHZY.js → wait-connect-D2wPrbE3.js} +1 -1
- package/dist/assets/{wizard-TEBzHS-w.js → wizard-EYZCXWG5.js} +2 -2
- package/dist/assets/wizard-components-PMRUmw6U.js +52 -0
- package/dist/assets/wrap-locale-B4E8Yvgz.js +1 -0
- package/dist/assets/{zh-Dr9buZnV.js → zh-CSl2KD_S.js} +1 -1
- package/dist/assets/zh-CXK3bXGt.js +1 -0
- package/dist/assets/{zh-tw-CeXBj2i0.js → zh-tw-BiloxWNq.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/service-worker.js +25 -2
- package/package.json +50 -50
- package/dist/assets/AdapterDayjs-p1MGZm94.js +0 -3
- package/dist/assets/access-control-C6MQq9M9.js +0 -14
- package/dist/assets/actions-CiAs-6JM.js +0 -1
- package/dist/assets/add-resource-DVpeKvW6.js +0 -1
- package/dist/assets/addon-B5NG3IsS.js +0 -14
- package/dist/assets/aigne-WBAWm6yx.js +0 -10
- package/dist/assets/api-Cjc501Es.js +0 -1
- package/dist/assets/appearance-CVS4AfPI.js +0 -1
- package/dist/assets/arrow-down.svg-Dhs0HydJ.js +0 -1
- package/dist/assets/authorize-uzVAAuOd.js +0 -1
- package/dist/assets/bind-account-N3cioth0.js +0 -1
- package/dist/assets/branding-BFn6p_xP.js +0 -1
- package/dist/assets/bundle-avatar-CfVy3gda.js +0 -1
- package/dist/assets/button-4KPacREM.js +0 -1
- package/dist/assets/click-to-copy-DXHOGoUP.js +0 -1
- package/dist/assets/cloneDeep-DjDct56M.js +0 -1
- package/dist/assets/config-CwbUhIlW.js +0 -57
- package/dist/assets/config-space-3dNLmLWy.js +0 -1
- package/dist/assets/confirm-BIsS5xyi.js +0 -7
- package/dist/assets/connect-DMt_37_e.js +0 -1
- package/dist/assets/connect-to-D3C0j8V8.js +0 -1
- package/dist/assets/createClass-CkCf2FLT.js +0 -1
- package/dist/assets/did-address-Qmm0nyiR.js +0 -1
- package/dist/assets/domain-DcU9P4mp.js +0 -9
- package/dist/assets/domain-action-card-D9HXIIpd.js +0 -28
- package/dist/assets/domains-DVkGbWo7.js +0 -1
- package/dist/assets/engine-Cx3nUUOw.js +0 -1
- package/dist/assets/exchange-passport-Bxh8blMK.js +0 -1
- package/dist/assets/form-text-input-CbjI2VZQ.js +0 -11
- package/dist/assets/fuel-BdIacIqD.js +0 -32
- package/dist/assets/gen-access-key-DdjBRI5O.js +0 -1
- package/dist/assets/gen-simple-access-key-CBGi0io0.js +0 -1
- package/dist/assets/get-safe-url-pZvXlaJu.js +0 -1
- package/dist/assets/index-5B_H2zYd.js +0 -1
- package/dist/assets/index-6M8OhYM1.js +0 -1
- package/dist/assets/index-BRky7Qm3.js +0 -7
- package/dist/assets/index-CUIcSX4q.js +0 -102
- package/dist/assets/index-CtuxXUm_.js +0 -1
- package/dist/assets/index-DCPJbOWh.js +0 -55
- package/dist/assets/index-DD9ceQKr.js +0 -1
- package/dist/assets/index-Dn_bIjgF.js +0 -6
- package/dist/assets/index-G1If4Shq.js +0 -120
- package/dist/assets/index-RxqUBm3A.js +0 -11
- package/dist/assets/index-SH0LXIEm.js +0 -1
- package/dist/assets/index-mgpYakv8.js +0 -1
- package/dist/assets/invitations-xEsO2f9m.js +0 -3
- package/dist/assets/invite-ChOQtk0E.js +0 -1
- package/dist/assets/issue-passport-CUGjhBZr.js +0 -1
- package/dist/assets/landing-page-zT1Tduxx.js +0 -1
- package/dist/assets/list-Cj5o6_aJ.js +0 -103
- package/dist/assets/list-dBF9Lx52.js +0 -2
- package/dist/assets/localization-BhQNA1fu.js +0 -1
- package/dist/assets/logger-CWdgyrlX.js +0 -1
- package/dist/assets/login-BRtDYFyr.js +0 -1
- package/dist/assets/login-oauth-callback-BVOT5KIP.js +0 -1
- package/dist/assets/logo-uploader-CMuaTg_2.js +0 -30
- package/dist/assets/omit-DZEUV_m7.js +0 -1
- package/dist/assets/over-due-invoice-payment-EIjXZOAF.js +0 -1
- package/dist/assets/passport-BcfDxGFq.js +0 -1
- package/dist/assets/passport-item-BnRaEMVZ.js +0 -1
- package/dist/assets/preferences-BgyNzrci.js +0 -1
- package/dist/assets/profile-embed-C3hI8xed.js +0 -1
- package/dist/assets/publish-resource-CreTipUc.js +0 -1
- package/dist/assets/runtime-BwoZhRe2.js +0 -1
- package/dist/assets/sdk-Do4pV1s0.js +0 -1
- package/dist/assets/session-DUT2afHJ.js +0 -1
- package/dist/assets/setup-ephJCw43.js +0 -24
- package/dist/assets/start-sucUqu8u.js +0 -187
- package/dist/assets/status-BFw6nCWi.js +0 -1
- package/dist/assets/studio-BKkw9WY-.js +0 -6
- package/dist/assets/switch-C5K07M96.js +0 -1
- package/dist/assets/team-HgvOpVEJ.js +0 -146
- package/dist/assets/traffic-BvA-dAE6.js +0 -1
- package/dist/assets/transfer-CiITg5ql.js +0 -16
- package/dist/assets/unsubscribe-2BjO5Axx.js +0 -1
- package/dist/assets/use-app-logo-D9eQSUYq.js +0 -1
- package/dist/assets/use-window-close-DLSxYDw-.js +0 -1
- package/dist/assets/useAsync-Dy8z2Lh_.js +0 -1
- package/dist/assets/useLocalStorage-oIIa9C3F.js +0 -1
- package/dist/assets/user-center-BODNsVgb.js +0 -126
- package/dist/assets/user-follower-ODH9p68y.js +0 -32
- package/dist/assets/wizard-components-MqkmgXy5.js +0 -52
- package/dist/assets/wrap-locale-Dk2yVg3Y.js +0 -1
- package/dist/assets/zh-C6-KWz-k.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as g}from"./index-
|
|
1
|
+
import{c as g}from"./index-DwyzCfdd.js";import{Q as E}from"./vendor-ux-DMZIE6wA.js";import{b as y}from"./vendor-hooks-BZ19vVZ7.js";import{r as m}from"./vendor-react-CTtPmzVP.js";import{g as h}from"./get-safe-url-gaxZoVzJ.js";import{e as T}from"./vendor-utils-D5UG1a5Y.js";function $({messageType:n,onOpen:o,onClose:r}){const t=m.useRef(null),e=m.useRef(null),w=async s=>{setTimeout(()=>{try{r?.()}catch{}},10*1e3),t.current&&(clearInterval(e.current),t.current.close());const a=Math.random().toString(36).slice(2);t.current=window.open(`${g.WELLKNOWN_SERVICE_PATH_PREFIX}/open-window?key=${a}`,"_blank"),o?.(t.current),e.current=setInterval(()=>{(!t.current||t.current.closed)&&(t.current=null,clearInterval(e.current),setTimeout(()=>{r?.()},1100))},200),await Promise.resolve(s(t.current,c=>{if(!t.current){localStorage.setItem(`open-window-url-${a}`,JSON.stringify({url:c,time:Date.now()}));return}t.current.location.href=h(c,{allowDomains:null})}))},i=y(s=>{const{type:a,error:c}=s.data;t.current&&a===n&&c&&(E.error(c),r?.())});return m.useEffect(()=>(window.addEventListener("message",i),()=>{window.removeEventListener("message",i)}),[i]),w}const u={};function b(n){u[n]&&(clearTimeout(u[n]),delete u[n])}async function l(n,{interval:o=1e3,maxDuration:r=120*1e3,intervalFirst:t=4e3,timerKey:e=""}){u[e]&&clearTimeout(u[e]),await new Promise(s=>setTimeout(s,t));const w=Date.now(),i=async(s,a)=>{try{const c=await n();s(c)}catch(c){Date.now()-w>r?a(c):e?u[e]=setTimeout(()=>i(s,a),o):setTimeout(()=>i(s,a),o)}};return new Promise(i)}function j(){return Math.random().toString(36).slice(2)+Math.random().toString(36).slice(2)+`${Date.now()}`.slice(-6)}function v(n,{did:o,projectId:r,messageId:t}){return l(async()=>{const e=await n.getProject({input:{did:o,projectId:r,messageId:t}});if(!e?.project?.blockletDid)throw new Error("Connected store not found");return e.project.blockletDid},{timerKey:"connect-studio"})}function O(n,{did:o,projectId:r,storeId:t}){return l(async()=>{const e=await n.getProject({input:{did:o,projectId:r,messageId:""}});if(!e?.project?.connectedStores?.length)throw new Error("Connected store not found");if(!e.project.connectedStores.find(i=>i.storeId===t))throw new Error("Connected store not found")},{timerKey:`connect-store-${t}`})}function M(n,{did:o,projectId:r,endpointId:t}){return l(async()=>{const e=await n.getProject({input:{did:o,projectId:r,messageId:""}});if(!e?.project?.connectedEndpoints?.length)throw new Error("Connected endpoint not found");if(!e.project.connectedEndpoints.find(i=>i.endpointId===t))throw new Error("Connected endpoint not found")},{timerKey:`connect-store-${t}`})}function R(n,{did:o,refresh:r,t,providerName:e,values:w,timerKey:i}){return l(async()=>{const{blocklet:s}=await n.getBlocklet({input:{did:o}}),a=T(s,"settings.aigne",{}),{url:c,key:f,provider:p}=a||{},{key:d}=w;if(p==="aigneHub"){if(!c||!f)throw new Error(t("setting.aigne.connectTimeOut",{provider:e}));if(d&&d===f)throw new Error(t("setting.aigne.connectTimeOut",{provider:e}));await r(),clearTimeout(u[`connect-aigne-${o}`])}else{if(!d||d!==f)throw new Error(t("setting.aigne.connectTimeOut",{provider:e}));await r(),clearTimeout(u[`connect-aigne-${o}`])}},{timerKey:i,maxDuration:3*60*1e3})}export{j as a,v as b,b as c,O as d,M as e,$ as u,R as w};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{j as e,
|
|
1
|
+
import{j as e,bq as h,ak as r,Q as l,aT as f}from"./vendor-mui-core-DnR6WYuU.js";import{c as u,N as w,F as j,G as y,I as g}from"./index-DwyzCfdd.js";import{C as v}from"./config-space-Dw6ITGIj.js";import{P as b}from"./vendor-arcblock-DkdOhPyM.js";import{V as k,aa as C}from"./vendor-ux-DMZIE6wA.js";import{r as S}from"./vendor-react-CTtPmzVP.js";import{u as W,a as P,S as E,b as I,c as z,W as D}from"./wizard-components-PMRUmw6U.js";import"./vendor-utils-D5UG1a5Y.js";import"./vendor-hooks-BZ19vVZ7.js";import"./lottie-web-4koyQiv_.js";import"./spaces-2YPkTkBR.js";import"./api-C75sLx9p.js";import"./get-safe-url-gaxZoVzJ.js";import"./use-server-logo-Cv1kAPgB.js";import"./server-logo-notext.svg-xZ-i1SpD.js";import"./use-mobile-BINJTzMb.js";const N=f`
|
|
2
2
|
html,
|
|
3
3
|
body,
|
|
4
4
|
#app,
|
|
5
5
|
#app > .wrapper {
|
|
6
6
|
height: 100%;
|
|
7
7
|
}
|
|
8
|
-
`;function
|
|
8
|
+
`;function X(){const t=window.self!==window.top,d=`${u.WELLKNOWN_SERVICE_PATH_PREFIX}/onboard`,{t:s}=k(),{blocklet:n,launcherSession:p,steps:o,stepIndex:i,totalSteps:c,onNext:a,onPrevious:x,onStepClick:m}=W(d,!0,()=>{t?window.parent.postMessage({type:"wizard.finished"},window.location.origin):window.location.href=window.blocklet?.prefix||"/"});return S.useEffect(()=>{t&&window.parent.postMessage({type:"wizard.loaded"},window.location.origin)},[t]),e.jsx(w,{children:e.jsx(j,{roles:y,children:e.jsx(b,{steps:c,children:e.jsxs(v,{children:[e.jsx(h,{styles:N}),e.jsxs(P,{children:[t?null:e.jsx(g,{width:"100%",brandAddon:n?.meta?.title?e.jsx(C,{variant:"h4",children:n.meta?.title}):null,description:n?.meta?.description,maxWidth:!1,bordered:!0,showDomainWarningDialog:!1}),e.jsx(E,{maxWidth:"md",mt:t?0:{xs:0,md:10},sx:t?{display:"flex",flexDirection:"column",height:"100vh",p:0}:{p:{xs:1,md:3}},children:e.jsxs(I,{sx:t?{flex:1}:{},children:[o.length>0&&i!==-1&&!window.location.pathname.includes("complete")&&e.jsx(z,{steps:o,currentIndex:i>=0?i:0,onStepClick:m}),e.jsxs(r,{sx:{display:"flex",flex:1,py:3,width:"100%",flexDirection:"column","& .header":{display:"none"},"&& .form-container":{overflowY:"visible"},"&& .container-inner":{position:"relative"},".form-container + div":{display:"none"},overflowY:"hidden"},children:[e.jsx(r,{sx:{flex:1,overflowY:"auto",width:"100%",height:"100%",px:3,"& > div":{overflowY:"visible"},...["access","bind-account"].includes(o[i]?.key)?{display:"flex",alignItems:"center",justifyContent:"center","& > div":{height:"unset"}}:{}},children:e.jsx(D,{blocklet:n,stepIndex:i,steps:o,onNext:a,onPrevious:x,launcherSession:p})}),e.jsxs(r,{sx:{display:"flex",flexDirection:{xs:"column-reverse",md:"row"},justifyContent:"flex-end",gap:2,width:"100%",px:3,pt:2,"& button":{minWidth:"100px",height:"40px"}},children:[e.jsxs(r,{sx:{display:"flex",gap:2},children:[e.jsx(l,{variant:"text",color:"primary",sx:{width:{xs:"35%",md:"auto"}},onClick:()=>{t?window.parent.postMessage({type:"wizard.close"},window.location.origin):window.location.href=window.blocklet?.prefix||"/"},children:s("setup.later")}),i>0&&e.jsx(l,{variant:"outlined",color:"primary",sx:{width:{xs:"65%",md:"auto"}},onClick:()=>a(o[i-1]?.key),children:s("setup.previous")})]}),e.jsx(l,{variant:"contained",color:"primary",onClick:()=>a(o[i+1]?.key),disabled:o[i]?.getButtonDisabled?.(),children:i===o.length-1?s("setup.finished"):s("setup.next")})]})]})]})})]})]})})})})}export{X as default};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.__toCdnUrl("assets/vendor-ux-DYcPPYq2.css"),window.__toCdnUrl("assets/index-DrVXX4fX.css")])))=>i.map(i=>d[i]);
|
|
2
|
+
import{j as e,at as E,ak as c,an as G,T as w,a6 as O,n as J,W as r}from"./vendor-mui-core-DnR6WYuU.js";import{j as Y,u as Z,r as o,k as ee,l as g,N as te}from"./vendor-react-CTtPmzVP.js";import{C as i}from"./vendor-utils-D5UG1a5Y.js";import{c as b,y as se,u as ne,J as j,K as T,L as ie,M as re,O as A}from"./index-DwyzCfdd.js";import{V as P,af as oe,_ as x}from"./vendor-ux-DMZIE6wA.js";import{g as $}from"./get-safe-url-gaxZoVzJ.js";import{u as ae}from"./use-server-logo-Cv1kAPgB.js";function Ce(t=`${b.WELLKNOWN_SERVICE_PATH_PREFIX}/setup`,d=!1,h=null){const{t:s}=P(),[f,y]=Y(),p=Z(),{meta:n,blocklet:m,actions:a,launcherSession:z}=se(),N=localStorage.getItem("blocklet-server-url"),{session:S}=ne(),B=m?.environments?.find(u=>u.key===j.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_SPACE_ENDPOINT)?.value,D=ae({onClick:()=>{window.open($(N,{allowDomains:null}))}}),v=T("fromLauncher"),W=T("launcherUrl"),U=T("launchType"),R=T("visitorId");R&&(oe(R),f.delete("visitorId"),y(f)),o.useEffect(()=>{ie(),S.user&&(a?.refreshMeta(),a?.refreshBlocklet({showError:!1}))},[S.user]),o.useEffect(()=>{a.refreshFuel({showError:!1})},[m?.meta?.did]);const q=u=>{const l=u?.capabilities?.didSpace;return l?l===j.BLOCKLET_APP_SPACE_REQUIREMENT.REQUIRED||l===j.BLOCKLET_APP_SPACE_REQUIREMENT.REQUIRED_ON_SETUP?{key:"did-space",stepTitle:s("setup.steps.didSpace"),name:e.jsxs(e.Fragment,{children:[s("setup.steps.didSpace")," ",e.jsx("span",{className:"required",children:"*"})]}),path:i(t,"did-space"),description:s("setup.didSpace.subTitle"),getButtonDisabled:()=>!B}:l===j.BLOCKLET_APP_SPACE_REQUIREMENT.OPTIONAL?{key:"did-space",stepTitle:s("setup.steps.didSpace"),name:e.jsx(e.Fragment,{children:s("setup.steps.didSpace")}),path:i(t,"did-space"),description:s("setup.didSpace.subTitle"),getButtonDisabled:()=>!1}:(console.warn(`capabilities.didSpace cannot take the value ${l}`),null):null},V=()=>{const{requirements:u}=n;return{key:"aigne",stepTitle:s("setup.steps.aigne"),name:e.jsxs(e.Fragment,{children:[s("setup.aigne.title")," ",u?.aigne&&e.jsx("span",{className:"required",children:"*"})]}),path:i(t,"aigne"),description:s("setup.aigne.subTitle")}},_=[{key:"bind-account",stepTitle:s("setup.steps.connect"),name:s("setup.connectAccount.title"),path:i(t,"bind-account"),description:s("setup.connectAccount.subTitle")},{key:"access",stepTitle:s("setup.steps.access"),name:s("setup.accessControl.title"),path:i(t,"access"),description:s("setup.accessControl.subTitle")},V(),{key:"domain",stepTitle:s("setup.steps.domain"),name:s("setup.domain.title"),path:i(t,"domain"),description:s("setup.domain.subTitle")},q(m),d?{key:"branding",stepTitle:s("setup.steps.branding"),name:s("setup.branding.title"),path:i(t,"branding"),description:s("setup.branding.subTitle")}:{key:"config",stepTitle:s("setup.steps.config"),name:e.jsxs(e.Fragment,{children:[s("setup.steps.config")," ",re(n)&&e.jsx("span",{className:"required",children:"*"})]}),path:i(t,"config"),description:s("setup.config.subTitle")},n?.requirements?.fuels?.length?{key:"fuel",stepTitle:s("setup.steps.fuel"),name:e.jsxs(e.Fragment,{children:[s("setup.steps.fuel")," ",e.jsx("span",{className:"required",children:"*"})]}),path:i(t,"fuel"),description:s("setup.fuel.subTitle")}:null].filter(Boolean),k=_.findIndex(u=>`${A.replace(/\/$/,"")}${t}/${u.key}`===window.location.pathname),F=i(A,b.WELLKNOWN_SERVICE_PATH_PREFIX,`/blocklet/logo?v=${m?.updatedAt}`),K=async u=>{const{search:l}=new URL(window.location.href),Q=_[k];if(l.includes("from=empty")&&Q.key==="config"){window.open($(`${i(b.WELLKNOWN_BLOCKLET_ADMIN_PATH,"/overview/components")}${l}`));return}if(!u)_[k+1]?p(`${i(t,_[k+1].key)}${l}`):h?h():p(`${i(t,"complete")}${l}`);else{const L=_.findIndex(X=>X.key===u);L>-1?p(`${i(t,_[L].key)}${l}`):h?h():p(`${i(t,"complete")}${l}`)}await a.refreshBlocklet()},M=u=>{const{search:l}=new URL(window.location.href);p(`${i(t,u)}${l}`)},H=()=>{p(-1)},I=[{key:"install",name:s("launchBlocklet.steps.installApp"),path:i(t,"install")},{key:"setup",name:s("setup.steps.launchApp"),children:_}];let C=[{key:"agreement",name:s("launchBlocklet.introduction"),path:i(t,"agreement")},...I];return v&&(C=[{key:"purchase-space",name:s("launchBlocklet.steps.purchaseSpace")},{key:"prepare-space",name:s("launchBlocklet.steps.prepareSpace")},...I]),{meta:n,blocklet:m,actions:a,launcherSession:z,session:S,steps:_,stepIndex:k,totalSteps:C,fromLauncher:v,launcherUrl:W,launchType:U,logoUrl:F,logo:D,t:s,onNext:K,onPrevious:H,onStepClick:M}}const le=o.lazy(()=>x(()=>import("./connect-B1ZA3nS8.js"),__vite__mapDeps([0,1]),import.meta.url)),ce=o.lazy(()=>x(()=>import("./bind-account-DuzArGdZ.js"),__vite__mapDeps([0,1]),import.meta.url)),pe=o.lazy(()=>x(()=>import("./config-Dw0qq-09.js"),__vite__mapDeps([0,1]),import.meta.url)),de=o.lazy(()=>x(()=>import("./index-DwJ_NASi.js"),__vite__mapDeps([0,1]),import.meta.url)),ue=o.lazy(()=>x(()=>import("./branding-bYH66Nug.js"),__vite__mapDeps([0,1]),import.meta.url)),me=o.lazy(()=>x(()=>import("./domain-BoEowNlU.js"),__vite__mapDeps([0,1]),import.meta.url)),fe=o.lazy(()=>x(()=>import("./access-control-BZvc7AZG.js"),__vite__mapDeps([0,1]),import.meta.url)),ge=o.lazy(()=>x(()=>import("./fuel-C9kfBZ4R.js"),__vite__mapDeps([0,1]),import.meta.url)),xe=o.lazy(()=>x(()=>import("./aigne-B9drp8Pq.js"),__vite__mapDeps([0,1]),import.meta.url)),he=o.lazy(()=>x(()=>import("./complete-Rr-_Zaon.js"),__vite__mapDeps([0,1]),import.meta.url)),ye=E(c)`
|
|
3
|
+
background: ${({theme:t})=>J(t.palette.primary.main,.05)};
|
|
4
|
+
`,Le=E(c)`
|
|
5
|
+
width: 100vw;
|
|
6
|
+
min-height: 100vh;
|
|
7
|
+
background: ${({theme:t})=>t.palette.mode==="dark"?t.palette.background.default:`linear-gradient(135deg, ${t.palette.grey[50]} 0%, ${t.palette.grey[100]} 100%)`};
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
align-items: center;
|
|
11
|
+
padding-top: 0;
|
|
12
|
+
`,Ae=E(c)`
|
|
13
|
+
width: 100%;
|
|
14
|
+
`,$e=E(c)`
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
justify-content: center;
|
|
18
|
+
align-items: center;
|
|
19
|
+
background: ${({theme:t})=>t.palette.background.paper};
|
|
20
|
+
border-radius: 12px;
|
|
21
|
+
border: 1px solid ${({theme:t})=>t.palette.divider};
|
|
22
|
+
min-height: 500px;
|
|
23
|
+
overflow: hidden;
|
|
24
|
+
position: relative;
|
|
25
|
+
`;E(c)`
|
|
26
|
+
display: flex;
|
|
27
|
+
justify-content: space-between;
|
|
28
|
+
align-items: center;
|
|
29
|
+
padding: 20px 32px;
|
|
30
|
+
border-bottom: 1px solid
|
|
31
|
+
${({theme:t})=>t.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":t.palette.divider};
|
|
32
|
+
background: ${({theme:t})=>t.palette.mode==="dark"?"rgba(255, 255, 255, 0.02)":`linear-gradient(135deg, ${t.palette.grey[50]} 0%, rgba(255, 255, 255, 0.8) 100%)`};
|
|
33
|
+
|
|
34
|
+
.nav-left {
|
|
35
|
+
display: flex;
|
|
36
|
+
align-items: center;
|
|
37
|
+
gap: 16px;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.nav-right {
|
|
41
|
+
display: flex;
|
|
42
|
+
align-items: center;
|
|
43
|
+
gap: 8px;
|
|
44
|
+
color: ${({theme:t})=>t.palette.text.secondary};
|
|
45
|
+
font-size: 0.875rem;
|
|
46
|
+
font-weight: 500;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
${({theme:t})=>t.breakpoints.down("md")} {
|
|
50
|
+
padding: 16px 20px;
|
|
51
|
+
}
|
|
52
|
+
`;r.oneOfType([r.string,r.element]),r.string,r.number.isRequired,r.func,r.bool;function _e({steps:t,currentIndex:d,onStepClick:h=()=>{}}){const s=t[d],f=o.useRef(parseInt(localStorage.getItem("wizard-max-step"),10)||d);return o.useEffect(()=>{f.current=Math.max(f.current,d),localStorage.setItem("wizard-max-step",f.current)},[d]),e.jsxs(ye,{width:"100%",p:{xs:2,md:3},pb:2,children:[e.jsx(c,{sx:{display:"flex",gap:1,position:"relative",width:"100%",pt:1},children:t.map((y,p)=>{const n=p===d,m=p<=f.current,a=p<=f.current;return e.jsxs(c,{sx:{flex:1,display:"flex",flexDirection:"column",gap:1},children:[e.jsxs(c,{display:"flex",alignItems:"center",justifyContent:{xs:"center",md:"flex-start"},gap:1,children:[e.jsx(c,{sx:{width:24,height:24,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",bgcolor:"grey.300",color:"text.secondary",...n||m?{bgcolor:"primary.main",color:"primary.contrastText"}:{},fontWeight:600,fontSize:"14px",transition:"all 0.2s ease-in-out",cursor:a?"pointer":"default",zIndex:2,"&:hover":a?{transform:"scale(1.05)"}:{}},onClick:()=>a&&h?.(y.key),children:m&&!n?e.jsx(G,{style:{fontSize:"16px",fontWeight:800}}):p+1}),e.jsx(w,{variant:"body2",sx:{display:{xs:"none",md:"block"},fontWeight:n?700:400,color:"text.secondary",...n||m?{color:"primary.main"}:{},textTransform:"uppercase",letterSpacing:"0.5px",transition:"color 0.2s ease-in-out",cursor:a?"pointer":"default",lineHeight:1.2},onClick:()=>a&&h?.(y.key),children:y.stepTitle||y.name})]}),e.jsx(c,{sx:{mt:.5,height:2,width:"100%",bgcolor:a?"primary.main":"grey.200",borderRadius:2,transition:"width 0.5s ease-in-out"}})]},y.key)})}),e.jsxs(c,{mt:{xs:2,md:4},overflow:"hidden",sx:{width:"100%"},children:[e.jsx(w,{variant:"h3",sx:{mb:.5},children:s?.name}),e.jsx(w,{variant:"body1",sx:{color:"text.secondary",lineHeight:1.4},children:s?.description})]})]})}_e.propTypes={steps:r.array.isRequired,currentIndex:r.number.isRequired,onStepClick:r.func};function Ee(){return e.jsx(c,{sx:{width:"100%",height:400,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",gap:3},children:e.jsx(c,{sx:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(O,{size:48,thickness:4,sx:{color:"primary.main",filter:"drop-shadow(0 2px 8px rgba(25, 118, 210, 0.3))"}})})})}function ke(t){const d=window.self!==window.top;return o.useEffect(()=>{d&&window.parent.postMessage({type:"wizard.resize",data:{height:document.body.scrollHeight}},window.location.origin)},[t,d]),null}function je({blocklet:t=null,stepIndex:d,steps:h,onNext:s,onPrevious:f,launcherSession:y=null}){const{t:p}=P();function n(m,a){return e.jsxs(le,{skipBindAccount:!0,children:[e.jsx(ke,{}),t?e.jsx(m,{blocklet:t,...a,onNext:s,onPrevious:f,buttonText:d===h.length-1?p("setup.finished"):""}):e.jsx(c,{sx:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center"},children:e.jsx(O,{})})]})}return e.jsx(o.Suspense,{fallback:e.jsx(Ee,{}),children:e.jsxs(ee,{children:[e.jsx(g,{path:"bind-account",element:n(ce)}),e.jsx(g,{path:"access",element:n(fe)}),e.jsx(g,{path:"domain",element:n(me)}),e.jsx(g,{path:"did-space",element:n(de)}),e.jsx(g,{path:"config",element:n(pe)}),e.jsx(g,{path:"fuel",element:n(ge)}),e.jsx(g,{path:"aigne",element:n(xe)}),e.jsx(g,{path:"branding",element:n(ue)}),e.jsx(g,{path:"complete",element:n(he,{launcherSession:y})}),e.jsx(g,{path:"*",element:e.jsx(te,{to:`access${window.location.search}`,replace:!0})})]})})}je.propTypes={blocklet:r.object,stepIndex:r.number.isRequired,steps:r.array.isRequired,onNext:r.func.isRequired,onPrevious:r.func.isRequired,launcherSession:r.object};export{Ae as S,je as W,Le as a,$e as b,_e as c,Ce as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{T as n}from"./vendor-ux-DMZIE6wA.js";import{t as a}from"./index-MQEkIEm-.js";import{j as r}from"./vendor-mui-core-DnR6WYuU.js";function m(t){return function(o){return r.jsx(n,{translations:a,children:r.jsx(t,{...o})})}}export{m as w};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e={setup:{connect:{title:"设置 Blocklet Server",scan:"使用以下方法成为此节点的所有者",confirm:"请在 DID Wallet 上确认",success:"你已经成功成为节点的所有者"},keyPair:{title:"生成钥匙对",scan:"用你的 DID Wallet 为这个 Blocklet 生成钥匙对",confirm:"请在 DID Wallet 上确认",success:"你的钥匙对已经被安全存储"},verify:{title:"需要节点所有权证书",scan:"用你的 DID Wallet 提供所有权证书",confirm:"请在 DID Wallet 上确认",success:"你已经成功成为节点的所有者"},accept:{title:"接收节点需要所有权证书",scan:"用你的 DID Wallet 提供所有权证书",confirm:"请在 DID Wallet 上确认",success:"你已经成功成为节点的所有者"},title:"设置节点",steps:{eula:"最终用户许可协议",eulaFooter:"我已阅读并同意最终用户许可协议的条款",connect:"链接所有者的 DID Wallet ",verify:"验证所有权",basicSettings:"基础设置",launchApp:"启动应用",complete:"完成"},congratulation:"恭喜, 您的节点安全可用!",redirectButton:"查看节点仪表盘"},login:{login:"登录",termsOfUse:"服务条款",agreeTermsOfUse:"我已阅读并同意",loginTo:"连接 DID Wallet ",description:"只有节点的所有者和成员可以访问仪表盘",switchDid:{title:"切换账户",scan:"请使用以下方法添加账户",confirm:"在 DID Wallet 中确认切换",success:"切换成功"},switchSpecifiedDid:{title:"切换账号",scan:"你需要切换账号至 {did} 才能完成后续的操作",confirm:"在 DID Wallet 中确认切换",success:"切换成功"},connect:{title:"登录",scan:"只有节点所有者和成员才能访问控制面板",confirm:"在您的账户中确认",success:"登录成功"},verify:{title:"验证访问",scan:"连接你的 DID Wallet 以展示所有者或管理员通行证",confirm:"在你的 账户 中确认",success:"您的访问已验证",abort:"访问验证已终止",description:"您需要提供 {roles} 通行证才能执行此操作,在 1 小时的非活动状态后才会再次要求验证。",descriptionForDestroy:"您需要提供 {roles} 通行证以继续此操作以确保安全。"}},acceptServer:{title:"使用 Owner NFT 接收节点",tooltip:"如果你收到了 Owner NFT,你可以通过这个链接申请你的节点所有者通行证"},didConnect:{genKeyPair:{title:"创建应用 DID",scan:"使用以下方法生成一个应用 DID",success:"生成应用 DID 成功",successDesc:"生成应用 DID 已经成功完成,请继续您的操作 (后续发布需要使用生成该 DID 的钱包来进行操作)。"},common:{invalidSession:"会话无效",invalidSessionDesc:"会话不存在或已经过期",connectionError:"连接错误"}},exchangePassport:{title:"用 NFT 来获得通行证",success:"你已经成功获得通行证,并自动登录",tooltip1:"如果你拥有来自以下集合的 NFT,",tooltip2:"点击这里获得通行证",dialog:{title:"使用 NFT 获取通行证",scan:"连接 DID Wallet 出示 NFT 以获得通行证",confirm:"在钱包中选择 NFT",success:"通行证换取成功"},login:"登录"},payablePassport:{title:"Purchase passport with payment",tooltip:"If you do not have a passport, you can purchase a passport with this link."},sidebar:{dashboard:"仪表盘",blocklets:"Blocklets",console:"试验台",settings:"设置"},system:{total:"总计",used:"已使用",free:"空闲",cores:"核数",instances:"实例数"},common:{invalid:"无效",about:"关于",access:"访问",accessKey:"访问秘钥",action:"操作",actions:"操作",add:"添加",address:"地址",afterTime:"{time}后",allow:"允许",alreadyExist:"已经存在",approve:"同意",approved:"Approved",appUrl:"APP 链接",auditLogs:"审计记录",author:"作者",avatar:"头像",back:"返回",basic:"基础",basicInfo:"基础信息",profile:"信息",bind:"绑定",blocklet:"Blocklet",blocklets:"Blocklets",blockletsStorage:"Blocklets 存储",cacheStorage:"缓存存储",cancel:"取消",category:"日志分类",certificate:"证书",click:"点击复制",close:"关闭",selectAll:"全选",unselectAll:"取消全选",collapseAll:"收起全部",community:"社区 URL",complete:"完成",componentBasicInfo:"Blocklet 基础信息",components:"Blocklet 管理器",config:"配置",configuration:"配置",appearance:"外观",configNavigation:"导航",configSuccess:"设置成功",confirm:"确认",connect:"连接",console:"控制台",continue:"继续",continueWith:"确认继续",copiedTip:"已复制",copyAndClose:"复制并关闭",copyTip:"点击复制",coreStorage:"核心存储",cpu:"CPU",create:"创建",createSuccess:"创建成功",created:"创建于",createdAt:"创建时间",createdBy:"创建人",dAddress:"去中心化地址(DID)",dataStorage:"本地数据存储",delConfirm:"删除",delConfirmDescription:"确认删除 {data}?",delete:"删除",dependents:"被依赖",description:"描述",detail:"详情",did:"DID",disk:"磁盘",diskInfo:"磁盘信息",docker:"Docker?",documentation:"文档手册",domain:"域名",downgradeTo:"降级到",download:"下载",downloading:"下载中",edit:"编辑",email:"邮箱",phone:"电话",empty:"暂无",emptyData:"未找到结果",enable:"启用",engine:"引擎",env:"环境",environment:"环境变量",expandAll:"展开全部",expired:"已过期",expires:"过期时间",export:"导出",externalIp:"公网 IP",failed:"失败",filter:"筛选",fingerprint:"指纹",finish:"完成",forbid:"禁止",free:"免费",general:"通用",gitpod:"Gitpod?",goEULA:'点击查看"最终用户许可协议"',group:"分组",image:"镜像内?",install:"安装",installed:"已安装",installedAt:"安装时间",installSuccess:"安装成功",installing:"安装中",internalIp:"内网 IP",introduction:"介绍",invite:"邀请",inviting:"邀请中",ip:"IP",isPublic:"公开",issue:"颁发",issuer:"颁发者",item:"项",joined:"已加入",key:"键",releases:"发布",lastPublishedAt:"发布时间",launcher:"启动器信息",leavePageTip:"是否确定离开当前页面?",link:"链接",loading:"加载中",log:"查看日志",logStorage:"日志存储",login:"登录",logo:"图标",logout:"退出",logs:"日志",manageTeam:"管理团队",marketplace:"市场",member:"成员",members:"成员",orgs:"组织",memory:"内存",meta:"元数据",analytics:"访问统计",runtime:"运行监控",traffic:"流量分析",less:"更少",more:"更多",mountPoint:"挂载点",name:"名称",next:"下一步",no:"否",noData:"暂无数据",notice:"请确认下面的信息",noticeTitle:"提示",notification:"通知",open:"打开",management:"管理",os:"操作系统",overview:"概览",owner:"所有者",page404:"404 页面",passport:"通行证",permission:"权限",port:"端口",pre:"上一步",preferences:"偏好",preview:"预览",protected:"受保护",protocol:"协议",purchase:"购买",readMore:"更多",redirect:"重定向",redirectCode:"重定向状态码",redirectPermanently:"永久重定向",redirectTemporary:"临时重定向",redirectUrl:"重定向 URL",rewriteUrl:"重写到 URL",rewrite:"重写",release:"发布",reject:"拒绝",reload:"优雅重启",remark:"备注",remove:"删除",removeSuccess:"删除成功",renew:"续期",reportIssue:"问题反馈",required:"必需的",requiredErrorText:"{name}是必填的",resource:"资源",restart:"重启",restore:"还原",retry:"重试",revoke:"撤销",role:"角色",running:"运行中",runtimeInfo:"运行信息",save:"保存",saveChanges:"保存",saveSuccess:"保存成功",scheduleFailed:"加入任务队列失败",scheduleSuccess:"成功加入任务队列",scope:"范围",screenshot:"屏幕截图",search:"搜索",security:"安全",serverDid:"服务器 DID",serverVersion:"服务器版本",setting:"设置",start:"启动",status:"状态",stop:"停止",storage:"存储",backup:"备份",store:"商店",succeeded:"成功",subscription:"订阅",support:"支持网址或邮箱",switch:"切换",team:"团队",the:"此",timeAgo:"{time}前",title:"名称",type:"类型",unavailable:"不可访问",update:"更新",updateAvailable:"可升级到新版本 v{version}",updatedAt:"更新时间",updatedBy:"更新人",upgrade:"升级",upgradeTo:"升级到",upgrading:"升级中",uptime:"运行时长",url:"URL",valid:"有效",value:"值",version:"版本号",visit:"访问",waiting:"等待中",webhook:"应用集成",yes:"是",invalidParam:"无效的参数",launch:"启动",price:"价格",redirecting:"跳转中",error:"错误",reminder:"提醒",normal:"正常",gateway:"网关",verifyNFT:"验证凭证",errorMessage:"错误信息:",slugifyHint:"最终生效的挂载点是: {value}",strategy:"策略",auto:"自动",manual:"手动",progress:"进行中",fileCount:"文件数量",fileSize:"文件大小",time:"时间",startTime:"开始时间",endTime:"结束时间",timeoutError:"超时错误",tags:"标签",connectToStore:"连接 Store",uploaded:"已上传",upload:"上传",blockletStudio:"Studio",visitStore:"访问 Store",reconnect:"重新连接",change:"更改",sourceApp:"所属应用",disconnect:"断开连接",visitTarget:"访问{name}",upgradeServer:"升级服务器",display:"外观",requiredInputPlaceholder:"请输入 {name}",refresh:"刷新",moveUp:"上移",moveDown:"下移",enabled:"已启用",disabled:"已禁用",homepage:"主页",buy:"购买",view:"查看",homepageTip:"主页或演示 URL",repository:"代码仓库",expand:"展开",collapse:"收起",all:"全部",notificationRecords:"通知",unrecordedUser:"未记录的名称",unrecordedRole:"未记录角色",auditLogsSearch:"搜索操作或内容",optional:"可选",bugOrConnectDomain:"购买或配置已有域名",bugOrConnectDomainTip:"域名是你在互联网上网站的唯一地址。 你可以从DID Names或任何域名注册商购买新域名,或者配置你已拥有的现有域名。",connectExistingDomain:"配置已有域名",domains:"域名",didDomains:"DID 域名",didDomainsDescription:"以下是由 DID:Names 服务自动管理的域名。",systemDomains:"默认域名",systemDomainsDescription:"以下是由系统自动分配的默认域名。这些域名可以正常访问,但仅供测试使用,请勿分享给您的客户。",manualDomains:"我的域名",manualDomainsDescription:"以下是由您手动配置指向此处的域名,但它由自己的域名提供商进行管理。",timeInfo:"时间",operator:"操作者",inviter:"邀请者",clear:"清除",ok:"OK",minutes:"分钟",hours:"小时",hour:"小时",days:"天",day:"天",weeks:"周",months:"月份",custom:"自定义",environments:"环境",sites:"站点",active:"活跃",backupTime:"备份时间",lastUsedAt:"上次使用时间",expiredAt:"过期日期",createdVia:"通过",neverExpired:"从不",baseInfo:"基本信息",otherInfo:"更多信息",lightMode:"浅色模式",darkMode:"深色模式",globalSettings:"全局设置",document:"文档",mcpServers:"MCP 服务器",generate:"生成",copy:"复制",copied:"已复制",userSessions:"用户会话",duplicate:"重复",oauth:"OAuth 应用",poweredBy:"由 {brand} 提供支持"},blocklet:{external:"外部",notFound:"应用没有找到,可能已经被删除",installFromMarket:"从应用商店安装",installFromUrl:"通过 URL 安装",installFromCreate:"创建 Blocklet",installFromDiskBackup:"从此 Server 还原",installedAt:"安装时间",internal:"内部",startedAt:"启动时间",stoppedAt:"停止时间",urlEmptyTip:"无访问地址,",goToAddRule:"立即添加",services:"暴露的服务",upstreamPort:"上游端口",noService:"暂无服务",appId:"应用 DID",appPid:"永久性 DID",whyNeedAppPid:"如果你的应用曾经迁移过,永久性 DID 是最初安装这个 Blocklet 时产生的 DID",alsoKnownAs:"曾用 DID",skSource:"安装钱包",reloadSuccess:"应用重启成功",statusTip:"应用{status}",initialUptime:"少于1分钟",dashboard:"应用控制台",noComponent:"应用没有组件,无法启动",action:{stopDescription:"停止该 Blocklet 将会使页面不可以访问,可能会导致使用它的用户出现错误",stopComponentDescription:"停止该组件将会使页面不可以访问,可能会导致使用它的用户出现错误",confirmStop:"是的,停止",cancelDownloadDescription:"取消下载 {name} ?",removeApplicationDescription:"如果没有备份数据,删除应用将会删除所有数据,包括应用运行时产生的所有数据",removeApplicationAfterBackup:"备份后删除应用。 需要时您可以从此服务器恢复该应用",removeApplicationComplete:"直接删除应用程序和数据",removeComponentDescription:"如果没有备份数据,删除该组件将会删除所有数据,包括组件运行时产生的所有数据",removeComponentKeepData:"保留该组件的数据,只删除组件",removeComponentComplete:"删除组件和数据",confirmRemove:"是的, 删除",upgradeDescription:"升级 Blocklets 可能会导致其短暂不可用,是否要继续?",confirmUpgrade:"是的,升级吧",confirmRestart:"是的,重启吧",restartDescription:"服务会短暂暂停,并且有可能因为变更了配置无法启动",confirmComponentRemove:"是的,刪除它"},dev:{modeTip:"请将节点切换至 DEBUG 模式"},fromUrl:{title:"安装应用",label:"应用Meta URL",description:"URL 应指向应用的 Meta 文件。如果需要指向本地文件,请加上 file:// 前缀,如:file:///Users/foo/blocklet.json。",confirm:"安装",step0:"输入 URL",step1:"确认 Meta 信息",existTipPrefix:"已存在相同 DID 的应用, 版本为",existTipSuffix:",请安装更高版本。"},index:{tableTitle:"管理已安装 Blocklets",noBlocklet:"节点中还没有 Blocklet, 您可以从 Blocklet Store 中安装."},config:{changeImageTip:"提示:如果想更改图片,请点击预览图片进行更改。",name:"应用名称",description:"应用描述",logoSquare:"应用 Logo",logoRect:"网站 Logo",logoRectDesc:"使用于: 网站页眉和页脚,未配置则回退到应用 Logo",logoFavicon:"Favicon",logoFaviconDesc:"使用于:浏览器地址栏和标签页,未配置则回退到应用 Logo",clusterSize:"以 Cluster 模式启动时的实例数量",copyrightOwner:"版权所有者",copyrightYear:"版权 年份",advanced:"高级配置",deletable:{name:"删除保护",enable:"此应用当前不可被删除",disable:"此应用当前可以被删除"},walletType:{name:"钱包类型",description:"应用钱包类型,会影响派生出来的 DID"},languages:"支持的语言",selectLanguagesTip:"通过删除再添加来调整顺序",languagesSearch:"搜索国家的本地名称、英文名称或ISO代码..",passportColor:"通行证颜色",appUrl:"应用访问地址",access:{title:"谁能访问?",description:"选择你希望如何控制对你的应用程序的访问。",useDefault:"使用该应用默认配置",defaultDescription:"使用应用的默认配置",whoCanAccess:{all:{title:"面向所有人",description:"任何人都可以访问应用而不需要身份验证。"},owner:{title:"仅限所有者访问",description:"仅限拥有者访问应用。"},invited:{title:"仅限受邀访问",description:"只有受邀成员可以访问。"}},publicToStore:"在 Store 公开",publicInstanceTip:"此应用的访问地址将展示在 Store 中(同时也会展示你的 DID,用于接受捐赠)",updatedTip:"访问控制已修改"},changedTip:"配置已更新,请重启应用",missingRequired:"缺少启动应用的必填项",gotoFix:"去修复",environment:{key:"配置键",value:"配置值",keyValueRequired:"键和值不能为空",invalidKey:"键不能以 BLOCKLET_ 或 COMPONENT_ 开头",deleteForbidden:"该配置项是必填项,不能删除",tip:"包含 BWA_ 前缀的配置项不应该包含敏感信息,因为他们会被发送到前端页面"},dangerZone:"危险操作",sharedToAllComponents:"将共享给所有组件",session:{ttl:"如果用户在此网站上没有任何活动 {day} 天,将被要求重新登录",day:"{day} 天",days:"{day} 天",period:"会话有效期",profile:"用户个人资料要求",cacheTtl:"用户会话数据的缓存持续时间(以秒为单位)",fullNameEnabled:"登录时请求用户名(默认启用)",avatarEnabled:"登录时请求用户头像(默认启用)",emailEnabled:"在登录时请求用户电子邮箱",emailRequireVerified:"要求用户在登录前验证电子邮箱",emailRequireUnique:"要求用户电子邮箱在所有用户中是唯一的",phoneEnabled:"在登录时请求用户电话号码(目前不支持)",phoneRequireVerified:"在登录前要求用户验证电话号码",phoneRequireUnique:"要求用户电话号码在所有用户中是唯一的",emailTrustOauthProviders:"信任OAuth提供商进行电子邮箱验证状态",enableDomainBlackList:"启用电子邮箱域黑名单(拒绝列出的电子邮箱域)",enableDomainWhiteList:"启用电子邮箱域白名单(仅允许列出的电子邮箱域登录)",addDomain:"添加源以获取列表(纯文本格式,每行一个域名)",enableBlacklist:"启用登录令牌撤销功能",experimentalSettings:"实验性设置"},clearCache:{name:"缓存管理",purpose:"管理缓存在网关和服务中的文件",title:"确认清除缓存?",action:"清除缓存",success:"成功清除了 {count} 个缓存条目",description:"您确定要清除缓存在网关和服务中的文件吗?此操作可能会在短期内导致轻微的性能降低。"},tenantMode:{name:"多租户模式",multiple:"该应用在多租户模式下运行,每个租户的数据应该是隔离的",single:"该应用运行在单租户模式下,所有数据都是共享的"},splashPortrait:"启动画面",splashLandscape:"横屏缩略图",splashPortraitDesc:"ArcSphere 应用启动时显示。推荐使用 PNG 或 JPG 格式,纵向比例为 9:16,横向比例为 16:9(最大 5MB)",rotateSessionKey:{name:"会话密钥轮换",purpose:"会话 salt 是用于增强会话令牌安全性的随机值。点击按钮手动旋转会话 salt,以帮助降低登录令牌被盗的风险。",title:"确认会话密钥轮换吗?",action:"轮换密钥",success:"会话密钥轮换成功",description:"你确定要轮换会话密钥吗?此操作将使所有现有的登录令牌失效,并强制用户重新登录,包括你自己的登录令牌。"},ogImage:"Open Graph 背景",ogImageDesc:"使用于:社交媒体分享背景",migrate:{button:"更新应用 DID",title:"确认更新应用 DID",description:"如果您使用服务器管理的钱包启动,您可以将应用程序 DID 更改为您自己的钱包。",confirm:"您确定要更新应用 DID 吗?此操作将使所有现有会话失效,并强制用户重新登录,包括您自己的会话。"},vault:{name:"冷钱包 DID",title:"设置冷钱包",desc:"使用冷钱包为这个 Blocklet 管理的资金增加一层额外的安全保障。",tip:"输入冷钱包地址继续,你需要证明冷钱包地址的所有权才能使用。",address:"冷钱包地址",verified:"冷钱包已验证",current:"当前冷钱包",error:{invalid:"冷钱包地址必须是有效的 DID",holder:"Vault地址必须是区块链上有效的代币持有者,不支持token/asset/factory/stake地址。",duplicate:"此冷钱包地址已被使用,请使用其他地址",appDid:"不能使用应用 DID 作为冷钱包地址,请使用不同的地址"},role:"账户类型",firstSeen:"首次见到",lastSeen:"上次见到",migratedFrom:"迁移自",migratedTo:"迁移到",commit:{title:"验证冷钱包所有权",scan:"使用以下方法以验证冷钱包的所有权",confirm:"确认使用 DID Wallet",success:"冷钱包配置成功"},approve:{title:"批准冷钱包变更",byOwner:"使用 Blocklet 所有者签名以批准更改",byLast:"使用上个冷钱包签名以批准更改",confirm:"在 DID Wallet 上确认",success:"冷钱包变更已批准"}},baseInfo:"应用信息",baseInfoDesc:"这里可以设置网站的基本信息。",logoSettings:"视觉信息",logoSettingsDesc:"塑造独特的品牌形象,提升网站在各种场景下的辨识度和视觉吸引力。",languagesDesc:"使用于:访客语言选择",nameDesc:"使用于:DID Connect 头部,浏览器标签页,网站页脚,SEO 和 OpenGraph",nameValidateError:"无效:以字母/数字开头,3-129个字符,仅限a-z, 0-9, - 和 _。",descriptionDesc:"使用于:SEO 和 OpenGraph",logoSquareDesc:"用于:用户身份验证对话框页脚和 <b>DID Wallet</b> 应用列表",logoDesc:"推荐尺寸:{width} * {height} 像素",splashDesc:`ArcSphere 应用启动画面 (如果已配置,将在 <b>ArcSphere</b> 中显示)
|
|
1
|
+
const e={setup:{connect:{title:"设置 Blocklet Server",scan:"使用以下方法成为此节点的所有者",confirm:"请在 DID Wallet 上确认",success:"你已经成功成为节点的所有者"},keyPair:{title:"生成钥匙对",scan:"用你的 DID Wallet 为这个 Blocklet 生成钥匙对",confirm:"请在 DID Wallet 上确认",success:"你的钥匙对已经被安全存储"},verify:{title:"需要节点所有权证书",scan:"用你的 DID Wallet 提供所有权证书",confirm:"请在 DID Wallet 上确认",success:"你已经成功成为节点的所有者"},accept:{title:"接收节点需要所有权证书",scan:"用你的 DID Wallet 提供所有权证书",confirm:"请在 DID Wallet 上确认",success:"你已经成功成为节点的所有者"},title:"设置节点",steps:{eula:"最终用户许可协议",eulaFooter:"我已阅读并同意最终用户许可协议的条款",connect:"链接所有者的 DID Wallet ",verify:"验证所有权",basicSettings:"基础设置",launchApp:"启动应用",complete:"完成"},congratulation:"恭喜, 您的节点安全可用!",redirectButton:"查看节点仪表盘"},login:{login:"登录",termsOfUse:"服务条款",agreeTermsOfUse:"我已阅读并同意",loginTo:"连接 DID Wallet ",description:"只有节点的所有者和成员可以访问仪表盘",switchDid:{title:"切换账户",scan:"请使用以下方法添加账户",confirm:"在 DID Wallet 中确认切换",success:"切换成功"},switchSpecifiedDid:{title:"切换账号",scan:"你需要切换账号至 {did} 才能完成后续的操作",confirm:"在 DID Wallet 中确认切换",success:"切换成功"},connect:{title:"登录",scan:"只有节点所有者和成员才能访问控制面板",confirm:"在您的账户中确认",success:"登录成功"},verify:{title:"验证访问",scan:"连接你的 DID Wallet 以展示所有者或管理员通行证",confirm:"在你的 账户 中确认",success:"您的访问已验证",abort:"访问验证已终止",description:"您需要提供 {roles} 通行证才能执行此操作,在 1 小时的非活动状态后才会再次要求验证。",descriptionForDestroy:"您需要提供 {roles} 通行证以继续此操作以确保安全。"}},acceptServer:{title:"使用 Owner NFT 接收节点",tooltip:"如果你收到了 Owner NFT,你可以通过这个链接申请你的节点所有者通行证"},didConnect:{genKeyPair:{title:"创建应用 DID",scan:"使用以下方法生成一个应用 DID",success:"生成应用 DID 成功",successDesc:"生成应用 DID 已经成功完成,请继续您的操作 (后续发布需要使用生成该 DID 的钱包来进行操作)。"},common:{invalidSession:"会话无效",invalidSessionDesc:"会话不存在或已经过期",connectionError:"连接错误"}},exchangePassport:{title:"用 NFT 来获得通行证",success:"你已经成功获得通行证,并自动登录",tooltip1:"如果你拥有来自以下集合的 NFT,",tooltip2:"点击这里获得通行证",dialog:{title:"使用 NFT 获取通行证",scan:"连接 DID Wallet 出示 NFT 以获得通行证",confirm:"在钱包中选择 NFT",success:"通行证换取成功"},login:"登录"},payablePassport:{title:"Purchase passport with payment",tooltip:"If you do not have a passport, you can purchase a passport with this link."},sidebar:{dashboard:"仪表盘",blocklets:"Blocklets",console:"试验台",settings:"设置"},system:{total:"总计",used:"已使用",free:"空闲",cores:"核数",instances:"实例数"},common:{invalid:"无效",about:"关于",access:"访问",accessKey:"访问秘钥",action:"操作",actions:"操作",add:"添加",address:"地址",afterTime:"{time}后",allow:"允许",alreadyExist:"已经存在",approve:"同意",approved:"Approved",appUrl:"APP 链接",auditLogs:"审计记录",author:"作者",avatar:"头像",back:"返回",basic:"基础",basicInfo:"基础信息",profile:"信息",bind:"绑定",blocklet:"Blocklet",blocklets:"Blocklets",blockletsStorage:"Blocklets 存储",cacheStorage:"缓存存储",cancel:"取消",category:"日志分类",certificate:"证书",click:"点击复制",close:"关闭",selectAll:"全选",unselectAll:"取消全选",collapseAll:"收起全部",community:"社区 URL",complete:"完成",componentBasicInfo:"Blocklet 基础信息",components:"Blocklet 管理",config:"配置",configuration:"配置",appearance:"外观",configNavigation:"导航",configSuccess:"设置成功",confirm:"确认",connect:"连接",console:"控制台",continue:"继续",continueWith:"确认继续",copiedTip:"已复制",copyAndClose:"复制并关闭",copyTip:"点击复制",coreStorage:"核心存储",cpu:"CPU",create:"创建",createSuccess:"创建成功",created:"创建于",createdAt:"创建时间",createdBy:"创建人",dAddress:"去中心化地址(DID)",dataStorage:"本地数据存储",delConfirm:"删除",delConfirmDescription:"确认删除 {data}?",delete:"删除",dependents:"被依赖",description:"描述",detail:"详情",did:"DID",disk:"磁盘",diskInfo:"磁盘信息",docker:"Docker?",documentation:"文档手册",domain:"域名",downgradeTo:"降级到",download:"下载",downloading:"下载中",edit:"编辑",email:"邮箱",phone:"电话",empty:"暂无",emptyData:"未找到结果",enable:"启用",engine:"引擎",env:"环境",environment:"环境变量",expandAll:"展开全部",expired:"已过期",expires:"过期时间",export:"导出",externalIp:"公网 IP",failed:"失败",filter:"筛选",fingerprint:"指纹",finish:"完成",forbid:"禁止",free:"免费",general:"通用",gitpod:"Gitpod?",goEULA:'点击查看"最终用户许可协议"',group:"分组",image:"镜像内?",install:"安装",installed:"已安装",installedAt:"安装时间",installSuccess:"安装成功",installing:"安装中",internalIp:"内网 IP",introduction:"介绍",invite:"邀请",inviting:"邀请中",ip:"IP",isPublic:"公开",issue:"颁发",issuer:"颁发者",item:"项",joined:"已加入",key:"键",releases:"发布",lastPublishedAt:"发布时间",launcher:"启动器信息",leavePageTip:"是否确定离开当前页面?",link:"链接",loading:"加载中",log:"查看日志",logStorage:"日志存储",login:"登录",logo:"图标",logout:"退出",logs:"日志",manageTeam:"管理团队",marketplace:"市场",member:"成员",members:"成员",orgs:"组织",memory:"内存",meta:"元数据",analytics:"访问统计",runtime:"运行监控",traffic:"流量分析",less:"更少",more:"更多",mountPoint:"挂载点",name:"名称",next:"下一步",no:"否",noData:"暂无数据",notice:"请确认下面的信息",noticeTitle:"提示",notification:"通知",open:"打开",management:"管理",os:"操作系统",overview:"概览",owner:"所有者",page404:"404 页面",passport:"通行证",permission:"权限",port:"端口",pre:"上一步",preferences:"偏好",preview:"预览",protected:"受保护",protocol:"协议",purchase:"购买",readMore:"更多",redirect:"重定向",redirectCode:"重定向状态码",redirectPermanently:"永久重定向",redirectTemporary:"临时重定向",redirectUrl:"重定向 URL",rewriteUrl:"重写到 URL",rewrite:"重写",release:"发布",reject:"拒绝",reload:"优雅重启",remark:"备注",remove:"删除",removeSuccess:"删除成功",renew:"续期",reportIssue:"问题反馈",required:"必需的",requiredErrorText:"{name}是必填的",resource:"资源",restart:"重启",restore:"还原",retry:"重试",revoke:"撤销",role:"角色",running:"运行中",runtimeInfo:"运行信息",save:"保存",saveChanges:"保存",saveSuccess:"保存成功",scheduleFailed:"加入任务队列失败",scheduleSuccess:"成功加入任务队列",scope:"范围",screenshot:"屏幕截图",search:"搜索",security:"安全",serverDid:"服务器 DID",serverVersion:"服务器版本",setting:"设置",start:"启动",status:"状态",stop:"停止",storage:"存储",backup:"备份",store:"商店",succeeded:"成功",subscription:"订阅",support:"支持网址或邮箱",switch:"切换",team:"团队",the:"此",timeAgo:"{time}前",title:"名称",type:"类型",unavailable:"不可访问",update:"更新",updateAvailable:"可升级到新版本 v{version}",updatedAt:"更新时间",updatedBy:"更新人",upgrade:"升级",upgradeTo:"升级到",upgrading:"升级中",uptime:"运行时长",url:"URL",valid:"有效",value:"值",version:"版本号",visit:"访问",waiting:"等待中",webhook:"应用集成",yes:"是",invalidParam:"无效的参数",launch:"启动",price:"价格",redirecting:"跳转中",error:"错误",reminder:"提醒",normal:"正常",gateway:"网关",verifyNFT:"验证凭证",errorMessage:"错误信息:",slugifyHint:"最终生效的挂载点是: {value}",strategy:"策略",auto:"自动",manual:"手动",progress:"进行中",fileCount:"文件数量",fileSize:"文件大小",time:"时间",startTime:"开始时间",endTime:"结束时间",timeoutError:"超时错误",tags:"标签",connectToStore:"连接 Store",uploaded:"已上传",upload:"上传",blockletStudio:"Studio",visitStore:"访问 Store",reconnect:"重新连接",change:"更改",sourceApp:"所属应用",disconnect:"断开连接",visitTarget:"访问{name}",upgradeServer:"升级服务器",display:"外观",requiredInputPlaceholder:"请输入 {name}",refresh:"刷新",moveUp:"上移",moveDown:"下移",enabled:"已启用",disabled:"已禁用",homepage:"主页",buy:"购买",view:"查看",homepageTip:"主页或演示 URL",repository:"代码仓库",expand:"展开",collapse:"收起",all:"全部",notificationRecords:"通知",unrecordedUser:"未记录的名称",unrecordedRole:"未记录角色",auditLogsSearch:"搜索操作或内容",optional:"可选",bugOrConnectDomain:"购买或配置已有域名",bugOrConnectDomainTip:"域名是你在互联网上网站的唯一地址。 你可以从DID Names或任何域名注册商购买新域名,或者配置你已拥有的现有域名。",connectExistingDomain:"配置已有域名",domains:"域名",didDomains:"DID 域名",didDomainsDescription:"以下是由 DID:Names 服务自动管理的域名。",systemDomains:"默认域名",systemDomainsDescription:"以下是由系统自动分配的默认域名。这些域名可以正常访问,但仅供测试使用,请勿分享给您的客户。",manualDomains:"我的域名",manualDomainsDescription:"以下是由您手动配置指向此处的域名,但它由自己的域名提供商进行管理。",timeInfo:"时间",operator:"操作者",inviter:"邀请者",clear:"清除",ok:"OK",minutes:"分钟",hours:"小时",hour:"小时",days:"天",day:"天",weeks:"周",months:"月份",custom:"自定义",environments:"环境",sites:"站点",active:"活跃",backupTime:"备份时间",lastUsedAt:"上次使用时间",expiredAt:"过期日期",createdVia:"通过",neverExpired:"从不",baseInfo:"基本信息",otherInfo:"更多信息",lightMode:"浅色模式",darkMode:"深色模式",globalSettings:"全局设置",document:"文档",mcpServers:"MCP 服务器",generate:"生成",copy:"复制",copied:"已复制",userSessions:"用户会话",duplicate:"重复",oauth:"OAuth 应用",poweredBy:"由 {brand} 提供支持"},blocklet:{external:"外部",notFound:"应用没有找到,可能已经被删除",installFromMarket:"从应用商店安装",installFromUrl:"通过 URL 安装",installFromCreate:"创建 Blocklet",installFromDiskBackup:"从此 Server 还原",installedAt:"安装时间",internal:"内部",startedAt:"启动时间",stoppedAt:"停止时间",urlEmptyTip:"无访问地址,",goToAddRule:"立即添加",services:"暴露的服务",upstreamPort:"上游端口",noService:"暂无服务",appId:"应用 DID",appPid:"永久性 DID",whyNeedAppPid:"如果你的应用曾经迁移过,永久性 DID 是最初安装这个 Blocklet 时产生的 DID",alsoKnownAs:"曾用 DID",skSource:"安装钱包",reloadSuccess:"应用重启成功",statusTip:"应用{status}",initialUptime:"少于1分钟",dashboard:"应用控制台",noComponent:"应用没有组件,无法启动",action:{stopDescription:"停止该 Blocklet 将会使页面不可以访问,可能会导致使用它的用户出现错误",stopComponentDescription:"停止该组件将会使页面不可以访问,可能会导致使用它的用户出现错误",confirmStop:"是的,停止",cancelDownloadDescription:"取消下载 {name} ?",removeApplicationDescription:"如果没有备份数据,删除应用将会删除所有数据,包括应用运行时产生的所有数据",removeApplicationAfterBackup:"备份后删除应用。 需要时您可以从此服务器恢复该应用",removeApplicationComplete:"直接删除应用程序和数据",removeComponentDescription:"如果没有备份数据,删除该组件将会删除所有数据,包括组件运行时产生的所有数据",removeComponentKeepData:"保留该组件的数据,只删除组件",removeComponentComplete:"删除组件和数据",confirmRemove:"是的, 删除",upgradeDescription:"升级 Blocklets 可能会导致其短暂不可用,是否要继续?",confirmUpgrade:"是的,升级吧",confirmRestart:"是的,重启吧",restartDescription:"服务会短暂暂停,并且有可能因为变更了配置无法启动",confirmComponentRemove:"是的,刪除它"},dev:{modeTip:"请将节点切换至 DEBUG 模式"},fromUrl:{title:"安装应用",label:"应用Meta URL",description:"URL 应指向应用的 Meta 文件。如果需要指向本地文件,请加上 file:// 前缀,如:file:///Users/foo/blocklet.json。",confirm:"安装",step0:"输入 URL",step1:"确认 Meta 信息",existTipPrefix:"已存在相同 DID 的应用, 版本为",existTipSuffix:",请安装更高版本。"},index:{tableTitle:"管理已安装 Blocklets",noBlocklet:"节点中还没有 Blocklet, 您可以从 Blocklet Store 中安装."},config:{changeImageTip:"提示:如果想更改图片,请点击预览图片进行更改。",name:"应用名称",description:"应用描述",logoSquare:"应用 Logo",logoRect:"网站 Logo",logoRectDesc:"使用于: 网站页眉和页脚,未配置则回退到应用 Logo",logoFavicon:"Favicon",logoFaviconDesc:"使用于:浏览器地址栏和标签页,未配置则回退到应用 Logo",clusterSize:"以 Cluster 模式启动时的实例数量",copyrightOwner:"版权所有者",copyrightYear:"版权 年份",advanced:"高级配置",deletable:{name:"删除保护",enable:"此应用当前不可被删除",disable:"此应用当前可以被删除"},walletType:{name:"钱包类型",description:"应用钱包类型,会影响派生出来的 DID"},languages:"支持的语言",selectLanguagesTip:"通过删除再添加来调整顺序",languagesSearch:"搜索国家的本地名称、英文名称或ISO代码..",passportColor:"通行证颜色",appUrl:"应用访问地址",access:{title:"谁能访问?",description:"选择你希望如何控制对你的应用程序的访问。",useDefault:"使用该应用默认配置",defaultDescription:"使用应用的默认配置",whoCanAccess:{all:{title:"面向所有人",description:"任何人都可以访问应用而不需要身份验证。"},owner:{title:"仅限所有者访问",description:"仅限拥有者访问应用。"},invited:{title:"仅限受邀访问",description:"只有受邀成员可以访问。"}},publicToStore:"在 Store 公开",publicInstanceTip:"此应用的访问地址将展示在 Store 中(同时也会展示你的 DID,用于接受捐赠)",updatedTip:"访问控制已修改"},changedTip:"配置已更新,请重启应用",missingRequired:"缺少启动应用的必填项",gotoFix:"去修复",environment:{key:"配置键",value:"配置值",keyValueRequired:"键和值不能为空",invalidKey:"键不能以 BLOCKLET_ 或 COMPONENT_ 开头",deleteForbidden:"该配置项是必填项,不能删除",tip:"包含 BWA_ 前缀的配置项不应该包含敏感信息,因为他们会被发送到前端页面"},dangerZone:"危险操作",sharedToAllComponents:"将共享给所有组件",session:{ttl:"如果用户在此网站上没有任何活动 {day} 天,将被要求重新登录",day:"{day} 天",days:"{day} 天",period:"会话有效期",profile:"用户个人资料要求",cacheTtl:"用户会话数据的缓存持续时间(以秒为单位)",fullNameEnabled:"登录时请求用户名(默认启用)",avatarEnabled:"登录时请求用户头像(默认启用)",emailEnabled:"在登录时请求用户电子邮箱",emailRequireVerified:"要求用户在登录前验证电子邮箱",emailRequireUnique:"要求用户电子邮箱在所有用户中是唯一的",phoneEnabled:"在登录时请求用户电话号码(目前不支持)",phoneRequireVerified:"在登录前要求用户验证电话号码",phoneRequireUnique:"要求用户电话号码在所有用户中是唯一的",emailTrustOauthProviders:"信任OAuth提供商进行电子邮箱验证状态",enableDomainBlackList:"启用电子邮箱域黑名单(拒绝列出的电子邮箱域)",enableDomainWhiteList:"启用电子邮箱域白名单(仅允许列出的电子邮箱域登录)",addDomain:"添加源以获取列表(纯文本格式,每行一个域名)",enableBlacklist:"启用登录令牌撤销功能",experimentalSettings:"实验性设置"},clearCache:{name:"缓存管理",purpose:"管理缓存在网关和服务中的文件",title:"确认清除缓存?",action:"清除缓存",success:"成功清除了 {count} 个缓存条目",description:"您确定要清除缓存在网关和服务中的文件吗?此操作可能会在短期内导致轻微的性能降低。"},tenantMode:{name:"多租户模式",multiple:"该应用在多租户模式下运行,每个租户的数据应该是隔离的",single:"该应用运行在单租户模式下,所有数据都是共享的"},splashPortrait:"启动画面",splashLandscape:"横屏缩略图",splashPortraitDesc:"ArcSphere 应用启动时显示。推荐使用 PNG 或 JPG 格式,纵向比例为 9:16,横向比例为 16:9(最大 5MB)",rotateSessionKey:{name:"会话密钥轮换",purpose:"会话 salt 是用于增强会话令牌安全性的随机值。点击按钮手动旋转会话 salt,以帮助降低登录令牌被盗的风险。",title:"确认会话密钥轮换吗?",action:"轮换密钥",success:"会话密钥轮换成功",description:"你确定要轮换会话密钥吗?此操作将使所有现有的登录令牌失效,并强制用户重新登录,包括你自己的登录令牌。"},ogImage:"Open Graph 背景",ogImageDesc:"使用于:社交媒体分享背景",migrate:{button:"更新应用 DID",title:"确认更新应用 DID",description:"如果您使用服务器管理的钱包启动,您可以将应用程序 DID 更改为您自己的钱包。",confirm:"您确定要更新应用 DID 吗?此操作将使所有现有会话失效,并强制用户重新登录,包括您自己的会话。"},vault:{name:"冷钱包 DID",title:"设置冷钱包",desc:"使用冷钱包为这个 Blocklet 管理的资金增加一层额外的安全保障。",tip:"输入冷钱包地址继续,你需要证明冷钱包地址的所有权才能使用。",address:"冷钱包地址",verified:"冷钱包已验证",current:"当前冷钱包",error:{invalid:"冷钱包地址必须是有效的 DID",holder:"Vault地址必须是区块链上有效的代币持有者,不支持token/asset/factory/stake地址。",duplicate:"此冷钱包地址已被使用,请使用其他地址",appDid:"不能使用应用 DID 作为冷钱包地址,请使用不同的地址"},role:"账户类型",firstSeen:"首次见到",lastSeen:"上次见到",migratedFrom:"迁移自",migratedTo:"迁移到",commit:{title:"验证冷钱包所有权",scan:"使用以下方法以验证冷钱包的所有权",confirm:"确认使用 DID Wallet",success:"冷钱包配置成功"},approve:{title:"批准冷钱包变更",byOwner:"使用 Blocklet 所有者签名以批准更改",byLast:"使用上个冷钱包签名以批准更改",confirm:"在 DID Wallet 上确认",success:"冷钱包变更已批准"}},baseInfo:"应用信息",baseInfoDesc:"这里可以设置网站的基本信息。",logoSettings:"视觉信息",logoSettingsDesc:"塑造独特的品牌形象,提升网站在各种场景下的辨识度和视觉吸引力。",languagesDesc:"使用于:访客语言选择",nameDesc:"使用于:DID Connect 头部,浏览器标签页,网站页脚,SEO 和 OpenGraph",nameValidateError:"无效:以字母/数字开头,3-129个字符,仅限a-z, 0-9, - 和 _。",descriptionDesc:"使用于:SEO 和 OpenGraph",logoSquareDesc:"用于:用户身份验证对话框页脚和 <b>DID Wallet</b> 应用列表",logoDesc:"推荐尺寸:{width} * {height} 像素",splashDesc:`ArcSphere 应用启动画面 (如果已配置,将在 <b>ArcSphere</b> 中显示)
|
|
2
2
|
|
|
3
3
|
纵向模式:
|
|
4
4
|
比例:9:16
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as s}from"./vendor-react-CTtPmzVP.js";import{b$ as i}from"./index-DwyzCfdd.js";function c(t,a){for(var o=0;o<a.length;o++){const e=a[o];if(typeof e!="string"&&!Array.isArray(e)){for(const r in e)if(r!=="default"&&!(r in t)){const n=Object.getOwnPropertyDescriptor(e,r);n&&Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var f=i();const p=s(f),l=c({__proto__:null,default:p},[f]);export{l as z};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e={setup:{connect:{title:"需要簽名",scan:"連接您的DID錢包以成為此伺服器的擁有者",confirm:"請在您的DID錢包上檢查此操作",success:"您的帳戶已連接到此伺服器"},keyPair:{title:"需要衍生金鑰對",scan:"連接您的DID錢包以為此應用程式產生一對密鑰",confirm:"請在您的 DID 錢包上查看此操作",success:"您的金鑰對安全儲存"},verify:{title:"需要擁有權憑證",scan:"連接您的DID錢包以提供所有權憑證",confirm:"請在您的DID錢包上檢查此操作",success:"您的帳戶已連線到此伺服器"},accept:{title:"接受伺服器要求的所有權證書",scan:"連接您的DID錢包以提供所有權憑證",confirm:"請在您的DID錢包上檢查此操作",success:"您的帳戶已連接到此伺服器"},title:"設置 Blocklet Server ",steps:{eula:"最終用戶許可協議",eulaFooter:"我已閱讀並同意 EULA 條款",connect:"連接所有者DID錢包",verify:"驗證所有權",basicSettings:"基本設置",launchApp:"啟動應用程式",complete:"完成"},congratulation:"恭喜你!你的Blocklet伺服器已經安全且準備好使用。",redirectButton:"帶我去儀表板!"},login:{loginTo:"連接到",description:"只有伺服器所有者和已核准的成員才能存取儀表板",switchDid:{title:"切換DID錢包",scan:"掃描以下 QR 碼以切換帳號",confirm:"確認在您的DID錢包中切換",success:"成功切換"},switchSpecifiedDid:{title:"切換 DID 錢包",scan:"你需要切換 DID 至 {did} 以完成以下操作",confirm:"確認在您的DID錢包中切換",success:"成功切換"},connect:{title:"連接DID錢包",scan:"連接您的DID錢包以提供通行證",confirm:"在您的帳戶中確認",success:"您已成功連線"},verify:{title:"驗證訪問",scan:"連接你的 DID 錢包以展示所有者或管理員通行證",confirm:"在你的 帳戶 中確認",success:"您的訪問已驗證",abort:"存取驗證已中止",description:"您需要提供 {roles} 通行證才能執行此操作,在 1 小時的非活動狀態後才會再次要求驗證。",descriptionForDestroy:"您需要提供 {roles} 通行證以繼續此操作以確保安全。"},login:"連接",termsOfUse:"使用條款",agreeTermsOfUse:"我已閱讀並同意適用的"},acceptServer:{title:"使用所有權NFT索取伺服器",tooltip:"如果您收到了一枚伺服器所有權 NFT,您可以使用此連結來領取您的所有者通行證。"},exchangePassport:{title:"用NFT交換通行證",success:"您已成功交換您的通行證並使用通行證登錄",login:"登入",dialog:{title:"使用NFT取得通行證",scan:"連接您的DID錢包,展示您的NFT以獲得通行證",confirm:"在您的DID錢包上選擇NFT",success:"通行證成功換取"},tooltip1:"如果你擁有來自該系列的NFT,",tooltip2:"你可以透過此連結兌換你的護照。"},payablePassport:{title:"購買並付款通行證",tooltip:"如果您沒有通行證,您可以使用此連結購買通行證。"},sidebar:{dashboard:"儀表板",blocklets:"Blocklets",console:"控制台",settings:"設定"},system:{total:"總共",used:"已使用",free:"自由",cores:"核心數",instances:"實例數量"},common:{invalid:"無效",about:"關於",access:"訪問",accessKey:"存取金鑰",action:"行動",actions:"行動",add:"新增",address:"地址",afterTime:"在{time}後",allow:"允許",alreadyExist:"已存在",approve:"批准",approved:"批准",appUrl:"APP連結",auditLogs:"稽核追蹤",author:"作者",avatar:"阿凡達",back:"返回",basic:"基本",basicInfo:"基本資訊",profile:"個人檔案",bind:"綁定",blocklet:"Blocklet",blocklets:"Blocklets",blockletsStorage:"Blocklets 儲存",cacheStorage:"快取存儲",cancel:"取消",certificate:"證書",category:"日誌主題",click:"點擊複製",close:"關閉",selectAll:"全選",unselectAll:"取消全選",collapseAll:"折疊所有",community:"社群 URL",complete:"完成",componentBasicInfo:"Blocklet 基本資訊",components:"Blocklet 管理器",config:"配置",configuration:"配置",appearance:"外觀",configNavigation:"導航",configSuccess:"配置成功",confirm:"確認",connect:"連線",console:"控制台",continue:"繼續",continueWith:"繼續",copiedTip:"已複製",copyAndClose:"複製並關閉",copyTip:"點擊複製",coreStorage:"核心儲存",cpu:"CPU",create:"創建",createSuccess:"建立存取金鑰",created:"建立於",createdAt:"創建於",createdBy:"創建者是",dAddress:"分散式識別符 (DID)",dataStorage:"本地磁碟機儲存",delConfirm:"刪除",delConfirmDescription:"確認刪除 {data} 嗎?",delete:"刪除",dependents:"受扶養人",description:"描述",detail:"詳情",did:"DID",disk:"磁碟",diskInfo:"磁碟資訊",docker:"是Docker",documentation:"文件",domain:"網域",downgradeTo:"降級為",download:"下載",downloading:"下載中",edit:"編輯",email:"電子郵箱",phone:"電話",empty:"空的",emptyData:"找不到結果",enable:"啟用",engine:"引擎",env:"環境",environment:"環境",expandAll:"展開所有",expired:"已過期",expires:"到期",export:"匯出",externalIp:"外部IP",failed:"失敗",filter:"日誌篩選器",fingerprint:"指紋",finish:"完成",forbid:"禁止",free:"自由",general:"將軍",gitpod:"Gitpod是",goEULA:"點擊檢視「最終用户許可協議」",group:"團體",image:"IS 圖像",install:"安裝",installed:"安裝完成",installedAt:"安裝在",installSuccess:"安裝成功",installing:"正在安裝",internalIp:"內部IP",introduction:"介紹",invite:"邀請",inviting:"邀請",ip:"IP",isPublic:"公開的",issue:"問題",issuer:"發行者",item:"物品",joined:"加入",key:"關鍵字",releases:"發布",lastPublishedAt:"發表於",launcher:"啟動器資訊",leavePageTip:"你確定要離開頁面嗎?",link:"連結",loading:"載入中",log:"檢視日誌",logStorage:"日誌存儲",login:"登入",logo:"商標",logout:"登出",logs:"日誌",manageTeam:"管理團隊",marketplace:"市場",member:"成員",members:"成員",memory:"記憶",meta:"元資料",analytics:"分析",runtime:"執行時間",traffic:"交通",more:"更多",mountPoint:"掛載點",name:"名字",next:"下一個",no:"不",noData:"沒有記錄可顯示",notice:"如果不讀這個,將會發生意想不到的壞事!",noticeTitle:"注意事項",notification:"通知",open:"打開",management:"管理",os:"作業系統",overview:"概述",owner:"所有者",page404:"404頁面",passport:"通行證",permission:"允許",port:"港口",pre:"前",preferences:"偏好",preview:"預覽",protected:"受保護",protocol:"協議",purchase:"購買",readMore:"更多",redirect:"重新導向",redirectCode:"重定向代碼",redirectPermanently:"永久重新導向",redirectTemporary:"臨時重定向",redirectUrl:"重定向 URL",rewrite:"重寫",release:"釋放",rewriteUrl:"重寫URL",reject:"拒絕",reload:"重新載入",remark:"備註",remove:"刪除",removeSuccess:"成功刪除",renew:"更新",reportIssue:"回報問題",required:"必需",requiredErrorText:"{name} 是必需的",resource:"資源",restart:"重新啟動",restore:"還原",retry:"重試",revoke:"撤銷",role:"角色",running:"跑步",runtimeInfo:"執行時資訊",save:"保存",saveChanges:"儲存變更",saveSuccess:"儲存成功",scheduleFailed:"計劃失敗",scheduleSuccess:"成功安排",scope:"範圍",screenshot:"螢幕截圖",search:"搜索",security:"安全",serverDid:"伺服器 DID",serverVersion:"伺服器版本",setting:"設定",start:"開始",status:"狀態",stop:"停止",storage:"儲存",backup:"備份",store:"商店",succeeded:"成功",subscription:"訂閱",support:"支援網址或電子郵箱",switch:"開關",team:"團隊",the:"這個",timeAgo:"{time}前",title:"標題",type:"類型",unavailable:"暫無",update:"更新",updateAvailable:"新版本 {version} 可用",updatedAt:"更新於 {time}",updatedBy:"更新者",upgrade:"升級",upgradeTo:"升級到",upgrading:"升級",uptime:"上線時間",url:"URL",valid:"有效的",value:"價值",version:"版本",visit:"參觀",waiting:"等待中",webhook:"整合",yes:"是的",invalidParam:"無效參數",launch:"發射",price:"價格",redirecting:"重新導向",error:"錯誤",reminder:"提醒",normal:"正常",gateway:"閘道器",verifyNFT:"驗證NFT",errorMessage:"錯誤訊息:",slugifyHint:"實際掛載點將是:{value}",strategy:"策略",auto:"汽車",manual:"手冊",progress:"進行中",startTime:"開始時間",endTime:"結束時間",timeoutError:"超時錯誤",tags:"標籤",connectToStore:"連接至商店",uploaded:"已上傳",upload:"上傳",blockletStudio:"Studio",visitStore:"訪問 Store",reconnect:"重新連接",change:"更改",disconnect:"斷開連線",sourceApp:"屬於此 App",visitTarget:"拜訪{name}",upgradeServer:"升級伺服器",display:"外觀",requiredInputPlaceholder:"請輸入 {name}",refresh:"重新 整理",moveUp:"向上移動",moveDown:"下移",enabled:"已啟用",disabled:"已停用",homepage:"首頁",buy:"購買",view:"檢視",homepageTip:"首頁或示範 URL",repository:"代碼倉庫",expand:"展開",collapse:"收合",all:"全部",notificationRecords:"通知",unrecordedUser:"未記錄的名稱",unrecordedRole:"未記錄角色",auditLogsSearch:"搜尋操作或內容",optional:"可選",bugOrConnectDomain:"購買或連接已有網域",bugOrConnectDomainTip:"網域名是你在網際網路上的網站的唯一位址。 你可以從DID Names或任何域名註冊商購買新網域名,或者設定你已擁有的現有網域名。",connectExistingDomain:"連接現有網域",domains:"網域",didDomains:"DID 網域",manualDomains:"我的網域",didDomainsDescription:"以下網域由DID:Names 服務自動管理。",systemDomains:"默认域名",systemDomainsDescription:"以下網域名稱由系統分配。可以存取它們;但是,它們並非用於生產用途,不應與您的客戶共享。",manualDomainsDescription:"以下網域由您的網域提供商管理,並已手動設定為指向這裡。",fileCount:"檔案計數",fileSize:"檔案大小",time:"時間",less:"更少",timeInfo:"時間",operator:"操作者",inviter:"邀請者",clear:"清除",ok:"OK",minutes:"分鐘",hours:"小時",hour:"小時",days:"天",day:"天",weeks:"週",months:"月份",custom:"自訂",environments:"環境",sites:"網站",active:"活躍",backupTime:"備份時間",lastUsedAt:"上次使用時間",expiredAt:"到期日",createdVia:"透過",neverExpired:"從不",baseInfo:"基本資訊",otherInfo:"更多資訊",lightMode:"淺色模式",darkMode:"深色模式",globalSettings:"全域設定",document:"文件",mcpServers:"MCP 伺服器",generate:"產生",copy:"複製",copied:"已複製",orgs:"組織",userSessions:"用戶會話",duplicate:"複製",oauth:"OAuth 應用程式",poweredBy:"由 {brand} 提供支援"},blocklet:{external:"外部的",notFound:"在此伺服器上未找到 Blocklet,可能已經被刪除",installFromMarket:"安裝新的 Blocklets",installFromUrl:"從URL安裝",installFromCreate:"建立 Blocklet",installFromDiskBackup:"從此伺服器還原",installedAt:"安裝於",internal:"內部",startedAt:"開始於",stoppedAt:"停在",urlEmptyTip:"無訪問URL",goToAddRule:"前往添加",services:"暴露的服務",upstreamPort:"上游端口",noService:"無服務",appId:"App DID",appPid:"永久的DID",alsoKnownAs:"別名",skSource:"所有人錢包",reloadSuccess:"Blocklet成功重新加載",statusTip:"Blocklet 是 {status}",initialUptime:"小於1公尺",dashboard:"Blocklet 檢測儀表板",noComponent:"應用程式沒有組件,無法啟動",fromUrl:{title:"安裝 Blocklet",label:"Blocklet URL",description:"URL 應該指向 Blocklet 的元檔案。如果你需要參考一個本地檔案,請添加 file:// 前綴,例如:file:///Users/foo/blocklet.json。",confirm:"安裝",step0:"輸入URL",step1:"確認元信息",existTipPrefix:"具有相同DID的Blocklet已經存在,版本為{version}",existTipSuffix:"請安裝更高的版本。"},action:{stopDescription:"停止方塊將使其公共介面不可訪問,這可能導致終端用户失敗",stopComponentDescription:"停止該元件將使其公共介面無法存取,可能導致終端用户失敗",confirmStop:"是的,停下來",cancelDownloadDescription:"取消下載{name}?",removeApplicationDescription:"移除該應用程式將刪除由此應用程式產生的程式碼和資料,如果您沒有任何備份,這些資料將無法還原",removeApplicationAfterBackup:"備份並刪除應用程式。如果需要,您可以從此伺服器恢復應用程式",removeApplicationComplete:"刪除此應用程式的程式碼和資料",removeComponentDescription:"刪除元件將清除由此元件生成的代碼和數據,如果您沒有任何備份,則無法恢復",removeComponentKeepData:"保留此組件的資料,僅移除程式碼",removeComponentComplete:"移除此元件的程式碼和資料",confirmRemove:"是的,刪除它",confirmComponentRemove:"是的,刪除它",upgradeDescription:"升級 Blocklet 將使其暫時無法使用,你確定要繼續嗎?",confirmUpgrade:"是的,升級它",confirmRestart:"是的,重新啟動",restartDescription:"重新啟動塊將暫時暫停且可能由於配置更改無法啟動"},dev:{modeTip:"請將Blocklet伺服器切換到偵錯模式"},index:{tableTitle:"管理您的Blocklets",noBlocklet:"在這個Blocklet伺服器中找不到blocklets,請從市場安裝一個blocklet開始。"},config:{name:"應用程式名稱",description:"應用程式描述",logoSquare:"應用程式標誌",logoRect:"網站 Logo",logoRectDesc:"使用於: 網站頁眉和頁腳,未設定則回退到應用程式 Logo",logoFavicon:"Favicon",logoFaviconDesc:"使用於:瀏覽器地址列和分頁,未設定則回退到應用程式 Logo",clusterSize:"在叢集模式下運行此 blocklet 時的實例數",copyrightOwner:"版權所有人",copyrightYear:"版權 年份",deletable:{name:"刪除保護",enable:"目前無法刪除此 blocklet",disable:"這個 Blocklet 目前可以刪除"},walletType:{name:"錢包類型",description:"Blocklet實例錢包類型,將更改衍生的DID"},languages:"支援的語言",selectLanguagesTip:"通過刪除和重新添加來調整順序",languagesSearch:"透過國家本地名稱、英文名稱或ISO代碼搜尋...",passportColor:"通行證顏色",appUrl:"應用程式網址",access:{title:"誰能存取?",description:"選擇你希望如何控制對你的應用程式的存取。",useDefault:"使用預設值",defaultDescription:"使用應用程式的預設配置",whoCanAccess:{all:{title:"面向所有人",description:"任何人都可以訪問應用程式而不需要身份驗證。"},owner:{title:"僅限所有者存取",description:"僅限擁有者訪問應用程式。"},invited:{title:"僅限受邀訪問",description:"只有受邀成員可以存取。"}},publicToStore:"公眾在店內",publicInstanceTip:"此 Blocklet 鏈的存取地址將會在商店中顯示(連同您的DID用於接受捐款)",updatedTip:"存取控制已修改"},changedTip:"配置已更新,請重新啟動 Blocklet",missingRequired:"缺少啟動 Blocklet 鏈所需的配置",gotoFix:"去修理",environment:{key:"配置鍵",value:"配置值",keyValueRequired:"配置鍵和值必須指定",invalidKey:"配置鍵不能以BLOCKLET_或COMPONENT_開頭",deleteForbidden:"這個設定是必需的,不應該被刪除",tip:"以 BWA_ 為前綴的配置項不應包含敏感信息,因為它們將被發送到瀏覽器"},dangerZone:"危險區域",sharedToAllComponents:"將分享給所有組件",session:{ttl:"如果用户在此網站上沒有任何活動 {day} 天,將被要求重新登錄",day:"{day}天",days:"{day} 天",period:"會話有效期",profile:"用户個人檔案需求",cacheTtl:"用戶會話數據的快取持續時間(以秒為單位)",fullNameEnabled:"登錄時請求用户名稱(預設啟用)",avatarEnabled:"登錄時請求用户頭像(默認啟用)",emailEnabled:"在登錄時請求用户電子郵箱",emailRequireVerified:"要求用户在登入前驗證電子郵箱",emailRequireUnique:"要求用户電子郵箱在所有用户中是唯一的",phoneEnabled:"在登錄時請求用户電話號碼(目前不支援)",phoneRequireVerified:"在登錄前要求用戶驗證電話號碼",phoneRequireUnique:"要求用户電話號碼在所有用戶中是唯一的",emailTrustOauthProviders:"信任OAuth提供商進行電子郵箱驗證狀態",enableDomainBlackList:"啟用電子郵箱域黑名單(拒絕列出的電子郵箱域)",enableDomainWhiteList:"啟用電子郵箱域白名單(僅允許列出的電子郵箱域登錄)",addDomain:"添加來源以獲取清單(純文本格式,每行一個域名)",enableBlacklist:"啟用 Login Token 黑名單功能",experimentalSettings:"實驗設定"},clearCache:{name:"快取管理",purpose:"管理路由器和 Blocklet Server 中緩存的檔案",title:"確認清除快取嗎?",action:"清除快取",success:"成功清除{count}個快取項目",description:"你確定要清除路由器和 Blocklet Blocklet中的快取文件嗎?這個操作可能會導致短期內性能略微下降。"},tenantMode:{name:"多租戶模式",multiple:"該 Blocklet 以多租戶模式運行,每個租戶的數據應該是隔離的",single:"這個 Blocklet 在單租戶模式下運行,所有數據都是共享的"},splashPortrait:"啟動畫面",splashLandscape:"橫屏閃屏圖",splashPortraitDesc:"Blocklet 啟動時顯示。建議使用 PNG 或 JPG 格式,直向比例為 9:16,橫向比例為 16:9(最大 5MB)",rotateSessionKey:{name:"會話密鑰輪換",purpose:"會話 salt 是用於增強會話令牌安全性的隨機值。點擊按鈕手動旋轉會話 salt,以幫助降低登錄令牌被盜的風險。",title:"確認會話密鑰輪換嗎?",action:"輪換密鑰",success:"會話密鑰輪換成功",description:"你確定要輪換會話密鑰嗎?此操作將使所有現有的登錄令牌失效,並強制用戶重新登錄,包括你自己的登錄令牌。"},ogImage:"Open Graph 背景",ogImageDesc:"使用於:社群媒體分享背景",migrate:{button:"應用 DID 輪換",title:"確認應用 DID 輪換?",description:"您確定要輪換應用 DID 嗎?此操作將使所有現有工作階段失效,並強制使用者重新登入,包括您自己的工作階段",confirm:"您確定要更改應用 DID 嗎?此操作將使所有現有會話失效,並強制使用者重新登入,包括您自己的會話。"},vault:{name:"Vault DID",title:"配置 Vault",desc:"使用 vault 為這個 Blocklet 管理的資金增加一層額外的安全保障。",tip:"輸入 vault 地址繼續,你需要證明 vault 地址的所有權才能使用。",address:"Vault 位址",verified:"Vault 已驗證",current:"當前 Vault",error:{invalid:"Vault 地址必須是有效的 DID",holder:"Vault 地址必須是區塊鏈上的有效代幣持有者,代幣/資產/工廠/質押地址不支持",duplicate:"Vault 地址已存在",appDid:"不能使用應用 DID 作為 vault 地址,請使用不同的地址"},role:"角色類型",firstSeen:"首次見到",lastSeen:"上次查看",migratedFrom:"移轉自",migratedTo:"遷移到",commit:{title:"驗證 Vault 所有權",scan:"掃描下面的二維碼以驗證保險庫的所有權",confirm:"確認使用 DID Wallet",success:"Vault 配置成功"},approve:{title:"批准 Vault 變更",byOwner:"與Blocklet所有者簽名以批准更改",byLast:"使用最後保險庫簽名以批准更改",confirm:"使用 DID Wallet 確認",success:"Vault變更已批准"}},changeImageTip:"提示:如果想更改圖片,請點擊預覽圖片進行更改。",baseInfo:"應用資訊",baseInfoDesc:"這裡可以設定網站的基本資訊。",logoSettings:"視覺資訊",logoSettingsDesc:"塑造獨特的品牌形象,提升網站在各種情境下的辨識度和視覺吸引力。",languagesDesc:"使用於:訪客語言選擇",nameDesc:"使用於:DID Connect 頭部,瀏覽器分頁,網站頁尾,SEO 元數據和 OpenGraph 元數據",nameValidateError:"無效:以字母/數字開頭,3-129 個字元,僅限 a-z, 0-9, - 和 _。",descriptionDesc:"用於: SEO 元數據和 OpenGraph 元數據",logoSquareDesc:"用於:使用者身份驗證對話框頁腳和 <b>DID Wallet</b> 應用程式列表",logoDesc:"建議尺寸:{width} * {height} 像素",splashDesc:`ArcSphere 應用啟動畫面 (如果已設定,將會顯示在 <b>ArcSphere</b> 中)
|
|
1
|
+
const e={setup:{connect:{title:"需要簽名",scan:"連接您的DID錢包以成為此伺服器的擁有者",confirm:"請在您的DID錢包上檢查此操作",success:"您的帳戶已連接到此伺服器"},keyPair:{title:"需要衍生金鑰對",scan:"連接您的DID錢包以為此應用程式產生一對密鑰",confirm:"請在您的 DID 錢包上查看此操作",success:"您的金鑰對安全儲存"},verify:{title:"需要擁有權憑證",scan:"連接您的DID錢包以提供所有權憑證",confirm:"請在您的DID錢包上檢查此操作",success:"您的帳戶已連線到此伺服器"},accept:{title:"接受伺服器要求的所有權證書",scan:"連接您的DID錢包以提供所有權憑證",confirm:"請在您的DID錢包上檢查此操作",success:"您的帳戶已連接到此伺服器"},title:"設置 Blocklet Server ",steps:{eula:"最終用戶許可協議",eulaFooter:"我已閱讀並同意 EULA 條款",connect:"連接所有者DID錢包",verify:"驗證所有權",basicSettings:"基本設置",launchApp:"啟動應用程式",complete:"完成"},congratulation:"恭喜你!你的Blocklet伺服器已經安全且準備好使用。",redirectButton:"帶我去儀表板!"},login:{loginTo:"連接到",description:"只有伺服器所有者和已核准的成員才能存取儀表板",switchDid:{title:"切換DID錢包",scan:"掃描以下 QR 碼以切換帳號",confirm:"確認在您的DID錢包中切換",success:"成功切換"},switchSpecifiedDid:{title:"切換 DID 錢包",scan:"你需要切換 DID 至 {did} 以完成以下操作",confirm:"確認在您的DID錢包中切換",success:"成功切換"},connect:{title:"連接DID錢包",scan:"連接您的DID錢包以提供通行證",confirm:"在您的帳戶中確認",success:"您已成功連線"},verify:{title:"驗證訪問",scan:"連接你的 DID 錢包以展示所有者或管理員通行證",confirm:"在你的 帳戶 中確認",success:"您的訪問已驗證",abort:"存取驗證已中止",description:"您需要提供 {roles} 通行證才能執行此操作,在 1 小時的非活動狀態後才會再次要求驗證。",descriptionForDestroy:"您需要提供 {roles} 通行證以繼續此操作以確保安全。"},login:"連接",termsOfUse:"使用條款",agreeTermsOfUse:"我已閱讀並同意適用的"},acceptServer:{title:"使用所有權NFT索取伺服器",tooltip:"如果您收到了一枚伺服器所有權 NFT,您可以使用此連結來領取您的所有者通行證。"},exchangePassport:{title:"用NFT交換通行證",success:"您已成功交換您的通行證並使用通行證登錄",login:"登入",dialog:{title:"使用NFT取得通行證",scan:"連接您的DID錢包,展示您的NFT以獲得通行證",confirm:"在您的DID錢包上選擇NFT",success:"通行證成功換取"},tooltip1:"如果你擁有來自該系列的NFT,",tooltip2:"你可以透過此連結兌換你的護照。"},payablePassport:{title:"購買並付款通行證",tooltip:"如果您沒有通行證,您可以使用此連結購買通行證。"},sidebar:{dashboard:"儀表板",blocklets:"Blocklets",console:"控制台",settings:"設定"},system:{total:"總共",used:"已使用",free:"自由",cores:"核心數",instances:"實例數量"},common:{invalid:"無效",about:"關於",access:"訪問",accessKey:"存取金鑰",action:"行動",actions:"行動",add:"新增",address:"地址",afterTime:"在{time}後",allow:"允許",alreadyExist:"已存在",approve:"批准",approved:"批准",appUrl:"APP連結",auditLogs:"稽核追蹤",author:"作者",avatar:"阿凡達",back:"返回",basic:"基本",basicInfo:"基本資訊",profile:"個人檔案",bind:"綁定",blocklet:"Blocklet",blocklets:"Blocklets",blockletsStorage:"Blocklets 儲存",cacheStorage:"快取存儲",cancel:"取消",certificate:"證書",category:"日誌主題",click:"點擊複製",close:"關閉",selectAll:"全選",unselectAll:"取消全選",collapseAll:"折疊所有",community:"社群 URL",complete:"完成",componentBasicInfo:"Blocklet 基本資訊",components:"Blocklet 管理",config:"配置",configuration:"配置",appearance:"外觀",configNavigation:"導航",configSuccess:"配置成功",confirm:"確認",connect:"連線",console:"控制台",continue:"繼續",continueWith:"繼續",copiedTip:"已複製",copyAndClose:"複製並關閉",copyTip:"點擊複製",coreStorage:"核心儲存",cpu:"CPU",create:"創建",createSuccess:"建立存取金鑰",created:"建立於",createdAt:"創建於",createdBy:"創建者是",dAddress:"分散式識別符 (DID)",dataStorage:"本地磁碟機儲存",delConfirm:"刪除",delConfirmDescription:"確認刪除 {data} 嗎?",delete:"刪除",dependents:"受扶養人",description:"描述",detail:"詳情",did:"DID",disk:"磁碟",diskInfo:"磁碟資訊",docker:"是Docker",documentation:"文件",domain:"網域",downgradeTo:"降級為",download:"下載",downloading:"下載中",edit:"編輯",email:"電子郵箱",phone:"電話",empty:"空的",emptyData:"找不到結果",enable:"啟用",engine:"引擎",env:"環境",environment:"環境",expandAll:"展開所有",expired:"已過期",expires:"到期",export:"匯出",externalIp:"外部IP",failed:"失敗",filter:"日誌篩選器",fingerprint:"指紋",finish:"完成",forbid:"禁止",free:"自由",general:"將軍",gitpod:"Gitpod是",goEULA:"點擊檢視「最終用户許可協議」",group:"團體",image:"IS 圖像",install:"安裝",installed:"安裝完成",installedAt:"安裝在",installSuccess:"安裝成功",installing:"正在安裝",internalIp:"內部IP",introduction:"介紹",invite:"邀請",inviting:"邀請",ip:"IP",isPublic:"公開的",issue:"問題",issuer:"發行者",item:"物品",joined:"加入",key:"關鍵字",releases:"發布",lastPublishedAt:"發表於",launcher:"啟動器資訊",leavePageTip:"你確定要離開頁面嗎?",link:"連結",loading:"載入中",log:"檢視日誌",logStorage:"日誌存儲",login:"登入",logo:"商標",logout:"登出",logs:"日誌",manageTeam:"管理團隊",marketplace:"市場",member:"成員",members:"成員",memory:"記憶",meta:"元資料",analytics:"分析",runtime:"執行時間",traffic:"交通",more:"更多",mountPoint:"掛載點",name:"名字",next:"下一個",no:"不",noData:"沒有記錄可顯示",notice:"如果不讀這個,將會發生意想不到的壞事!",noticeTitle:"注意事項",notification:"通知",open:"打開",management:"管理",os:"作業系統",overview:"概述",owner:"所有者",page404:"404頁面",passport:"通行證",permission:"允許",port:"港口",pre:"前",preferences:"偏好",preview:"預覽",protected:"受保護",protocol:"協議",purchase:"購買",readMore:"更多",redirect:"重新導向",redirectCode:"重定向代碼",redirectPermanently:"永久重新導向",redirectTemporary:"臨時重定向",redirectUrl:"重定向 URL",rewrite:"重寫",release:"釋放",rewriteUrl:"重寫URL",reject:"拒絕",reload:"重新載入",remark:"備註",remove:"刪除",removeSuccess:"成功刪除",renew:"更新",reportIssue:"回報問題",required:"必需",requiredErrorText:"{name} 是必需的",resource:"資源",restart:"重新啟動",restore:"還原",retry:"重試",revoke:"撤銷",role:"角色",running:"跑步",runtimeInfo:"執行時資訊",save:"保存",saveChanges:"儲存變更",saveSuccess:"儲存成功",scheduleFailed:"計劃失敗",scheduleSuccess:"成功安排",scope:"範圍",screenshot:"螢幕截圖",search:"搜索",security:"安全",serverDid:"伺服器 DID",serverVersion:"伺服器版本",setting:"設定",start:"開始",status:"狀態",stop:"停止",storage:"儲存",backup:"備份",store:"商店",succeeded:"成功",subscription:"訂閱",support:"支援網址或電子郵箱",switch:"開關",team:"團隊",the:"這個",timeAgo:"{time}前",title:"標題",type:"類型",unavailable:"暫無",update:"更新",updateAvailable:"新版本 {version} 可用",updatedAt:"更新於 {time}",updatedBy:"更新者",upgrade:"升級",upgradeTo:"升級到",upgrading:"升級",uptime:"上線時間",url:"URL",valid:"有效的",value:"價值",version:"版本",visit:"參觀",waiting:"等待中",webhook:"整合",yes:"是的",invalidParam:"無效參數",launch:"發射",price:"價格",redirecting:"重新導向",error:"錯誤",reminder:"提醒",normal:"正常",gateway:"閘道器",verifyNFT:"驗證NFT",errorMessage:"錯誤訊息:",slugifyHint:"實際掛載點將是:{value}",strategy:"策略",auto:"汽車",manual:"手冊",progress:"進行中",startTime:"開始時間",endTime:"結束時間",timeoutError:"超時錯誤",tags:"標籤",connectToStore:"連接至商店",uploaded:"已上傳",upload:"上傳",blockletStudio:"Studio",visitStore:"訪問 Store",reconnect:"重新連接",change:"更改",disconnect:"斷開連線",sourceApp:"屬於此 App",visitTarget:"拜訪{name}",upgradeServer:"升級伺服器",display:"外觀",requiredInputPlaceholder:"請輸入 {name}",refresh:"重新 整理",moveUp:"向上移動",moveDown:"下移",enabled:"已啟用",disabled:"已停用",homepage:"首頁",buy:"購買",view:"檢視",homepageTip:"首頁或示範 URL",repository:"代碼倉庫",expand:"展開",collapse:"收合",all:"全部",notificationRecords:"通知",unrecordedUser:"未記錄的名稱",unrecordedRole:"未記錄角色",auditLogsSearch:"搜尋操作或內容",optional:"可選",bugOrConnectDomain:"購買或連接已有網域",bugOrConnectDomainTip:"網域名是你在網際網路上的網站的唯一位址。 你可以從DID Names或任何域名註冊商購買新網域名,或者設定你已擁有的現有網域名。",connectExistingDomain:"連接現有網域",domains:"網域",didDomains:"DID 網域",manualDomains:"我的網域",didDomainsDescription:"以下網域由DID:Names 服務自動管理。",systemDomains:"默认域名",systemDomainsDescription:"以下網域名稱由系統分配。可以存取它們;但是,它們並非用於生產用途,不應與您的客戶共享。",manualDomainsDescription:"以下網域由您的網域提供商管理,並已手動設定為指向這裡。",fileCount:"檔案計數",fileSize:"檔案大小",time:"時間",less:"更少",timeInfo:"時間",operator:"操作者",inviter:"邀請者",clear:"清除",ok:"OK",minutes:"分鐘",hours:"小時",hour:"小時",days:"天",day:"天",weeks:"週",months:"月份",custom:"自訂",environments:"環境",sites:"網站",active:"活躍",backupTime:"備份時間",lastUsedAt:"上次使用時間",expiredAt:"到期日",createdVia:"透過",neverExpired:"從不",baseInfo:"基本資訊",otherInfo:"更多資訊",lightMode:"淺色模式",darkMode:"深色模式",globalSettings:"全域設定",document:"文件",mcpServers:"MCP 伺服器",generate:"產生",copy:"複製",copied:"已複製",orgs:"組織",userSessions:"用戶會話",duplicate:"複製",oauth:"OAuth 應用程式",poweredBy:"由 {brand} 提供支援"},blocklet:{external:"外部的",notFound:"在此伺服器上未找到 Blocklet,可能已經被刪除",installFromMarket:"安裝新的 Blocklets",installFromUrl:"從URL安裝",installFromCreate:"建立 Blocklet",installFromDiskBackup:"從此伺服器還原",installedAt:"安裝於",internal:"內部",startedAt:"開始於",stoppedAt:"停在",urlEmptyTip:"無訪問URL",goToAddRule:"前往添加",services:"暴露的服務",upstreamPort:"上游端口",noService:"無服務",appId:"App DID",appPid:"永久的DID",alsoKnownAs:"別名",skSource:"所有人錢包",reloadSuccess:"Blocklet成功重新加載",statusTip:"Blocklet 是 {status}",initialUptime:"小於1公尺",dashboard:"Blocklet 檢測儀表板",noComponent:"應用程式沒有組件,無法啟動",fromUrl:{title:"安裝 Blocklet",label:"Blocklet URL",description:"URL 應該指向 Blocklet 的元檔案。如果你需要參考一個本地檔案,請添加 file:// 前綴,例如:file:///Users/foo/blocklet.json。",confirm:"安裝",step0:"輸入URL",step1:"確認元信息",existTipPrefix:"具有相同DID的Blocklet已經存在,版本為{version}",existTipSuffix:"請安裝更高的版本。"},action:{stopDescription:"停止方塊將使其公共介面不可訪問,這可能導致終端用户失敗",stopComponentDescription:"停止該元件將使其公共介面無法存取,可能導致終端用户失敗",confirmStop:"是的,停下來",cancelDownloadDescription:"取消下載{name}?",removeApplicationDescription:"移除該應用程式將刪除由此應用程式產生的程式碼和資料,如果您沒有任何備份,這些資料將無法還原",removeApplicationAfterBackup:"備份並刪除應用程式。如果需要,您可以從此伺服器恢復應用程式",removeApplicationComplete:"刪除此應用程式的程式碼和資料",removeComponentDescription:"刪除元件將清除由此元件生成的代碼和數據,如果您沒有任何備份,則無法恢復",removeComponentKeepData:"保留此組件的資料,僅移除程式碼",removeComponentComplete:"移除此元件的程式碼和資料",confirmRemove:"是的,刪除它",confirmComponentRemove:"是的,刪除它",upgradeDescription:"升級 Blocklet 將使其暫時無法使用,你確定要繼續嗎?",confirmUpgrade:"是的,升級它",confirmRestart:"是的,重新啟動",restartDescription:"重新啟動塊將暫時暫停且可能由於配置更改無法啟動"},dev:{modeTip:"請將Blocklet伺服器切換到偵錯模式"},index:{tableTitle:"管理您的Blocklets",noBlocklet:"在這個Blocklet伺服器中找不到blocklets,請從市場安裝一個blocklet開始。"},config:{name:"應用程式名稱",description:"應用程式描述",logoSquare:"應用程式標誌",logoRect:"網站 Logo",logoRectDesc:"使用於: 網站頁眉和頁腳,未設定則回退到應用程式 Logo",logoFavicon:"Favicon",logoFaviconDesc:"使用於:瀏覽器地址列和分頁,未設定則回退到應用程式 Logo",clusterSize:"在叢集模式下運行此 blocklet 時的實例數",copyrightOwner:"版權所有人",copyrightYear:"版權 年份",deletable:{name:"刪除保護",enable:"目前無法刪除此 blocklet",disable:"這個 Blocklet 目前可以刪除"},walletType:{name:"錢包類型",description:"Blocklet實例錢包類型,將更改衍生的DID"},languages:"支援的語言",selectLanguagesTip:"通過刪除和重新添加來調整順序",languagesSearch:"透過國家本地名稱、英文名稱或ISO代碼搜尋...",passportColor:"通行證顏色",appUrl:"應用程式網址",access:{title:"誰能存取?",description:"選擇你希望如何控制對你的應用程式的存取。",useDefault:"使用預設值",defaultDescription:"使用應用程式的預設配置",whoCanAccess:{all:{title:"面向所有人",description:"任何人都可以訪問應用程式而不需要身份驗證。"},owner:{title:"僅限所有者存取",description:"僅限擁有者訪問應用程式。"},invited:{title:"僅限受邀訪問",description:"只有受邀成員可以存取。"}},publicToStore:"公眾在店內",publicInstanceTip:"此 Blocklet 鏈的存取地址將會在商店中顯示(連同您的DID用於接受捐款)",updatedTip:"存取控制已修改"},changedTip:"配置已更新,請重新啟動 Blocklet",missingRequired:"缺少啟動 Blocklet 鏈所需的配置",gotoFix:"去修理",environment:{key:"配置鍵",value:"配置值",keyValueRequired:"配置鍵和值必須指定",invalidKey:"配置鍵不能以BLOCKLET_或COMPONENT_開頭",deleteForbidden:"這個設定是必需的,不應該被刪除",tip:"以 BWA_ 為前綴的配置項不應包含敏感信息,因為它們將被發送到瀏覽器"},dangerZone:"危險區域",sharedToAllComponents:"將分享給所有組件",session:{ttl:"如果用户在此網站上沒有任何活動 {day} 天,將被要求重新登錄",day:"{day}天",days:"{day} 天",period:"會話有效期",profile:"用户個人檔案需求",cacheTtl:"用戶會話數據的快取持續時間(以秒為單位)",fullNameEnabled:"登錄時請求用户名稱(預設啟用)",avatarEnabled:"登錄時請求用户頭像(默認啟用)",emailEnabled:"在登錄時請求用户電子郵箱",emailRequireVerified:"要求用户在登入前驗證電子郵箱",emailRequireUnique:"要求用户電子郵箱在所有用户中是唯一的",phoneEnabled:"在登錄時請求用户電話號碼(目前不支援)",phoneRequireVerified:"在登錄前要求用戶驗證電話號碼",phoneRequireUnique:"要求用户電話號碼在所有用戶中是唯一的",emailTrustOauthProviders:"信任OAuth提供商進行電子郵箱驗證狀態",enableDomainBlackList:"啟用電子郵箱域黑名單(拒絕列出的電子郵箱域)",enableDomainWhiteList:"啟用電子郵箱域白名單(僅允許列出的電子郵箱域登錄)",addDomain:"添加來源以獲取清單(純文本格式,每行一個域名)",enableBlacklist:"啟用 Login Token 黑名單功能",experimentalSettings:"實驗設定"},clearCache:{name:"快取管理",purpose:"管理路由器和 Blocklet Server 中緩存的檔案",title:"確認清除快取嗎?",action:"清除快取",success:"成功清除{count}個快取項目",description:"你確定要清除路由器和 Blocklet Blocklet中的快取文件嗎?這個操作可能會導致短期內性能略微下降。"},tenantMode:{name:"多租戶模式",multiple:"該 Blocklet 以多租戶模式運行,每個租戶的數據應該是隔離的",single:"這個 Blocklet 在單租戶模式下運行,所有數據都是共享的"},splashPortrait:"啟動畫面",splashLandscape:"橫屏閃屏圖",splashPortraitDesc:"Blocklet 啟動時顯示。建議使用 PNG 或 JPG 格式,直向比例為 9:16,橫向比例為 16:9(最大 5MB)",rotateSessionKey:{name:"會話密鑰輪換",purpose:"會話 salt 是用於增強會話令牌安全性的隨機值。點擊按鈕手動旋轉會話 salt,以幫助降低登錄令牌被盜的風險。",title:"確認會話密鑰輪換嗎?",action:"輪換密鑰",success:"會話密鑰輪換成功",description:"你確定要輪換會話密鑰嗎?此操作將使所有現有的登錄令牌失效,並強制用戶重新登錄,包括你自己的登錄令牌。"},ogImage:"Open Graph 背景",ogImageDesc:"使用於:社群媒體分享背景",migrate:{button:"應用 DID 輪換",title:"確認應用 DID 輪換?",description:"您確定要輪換應用 DID 嗎?此操作將使所有現有工作階段失效,並強制使用者重新登入,包括您自己的工作階段",confirm:"您確定要更改應用 DID 嗎?此操作將使所有現有會話失效,並強制使用者重新登入,包括您自己的會話。"},vault:{name:"Vault DID",title:"配置 Vault",desc:"使用 vault 為這個 Blocklet 管理的資金增加一層額外的安全保障。",tip:"輸入 vault 地址繼續,你需要證明 vault 地址的所有權才能使用。",address:"Vault 位址",verified:"Vault 已驗證",current:"當前 Vault",error:{invalid:"Vault 地址必須是有效的 DID",holder:"Vault 地址必須是區塊鏈上的有效代幣持有者,代幣/資產/工廠/質押地址不支持",duplicate:"Vault 地址已存在",appDid:"不能使用應用 DID 作為 vault 地址,請使用不同的地址"},role:"角色類型",firstSeen:"首次見到",lastSeen:"上次查看",migratedFrom:"移轉自",migratedTo:"遷移到",commit:{title:"驗證 Vault 所有權",scan:"掃描下面的二維碼以驗證保險庫的所有權",confirm:"確認使用 DID Wallet",success:"Vault 配置成功"},approve:{title:"批准 Vault 變更",byOwner:"與Blocklet所有者簽名以批准更改",byLast:"使用最後保險庫簽名以批准更改",confirm:"使用 DID Wallet 確認",success:"Vault變更已批准"}},changeImageTip:"提示:如果想更改圖片,請點擊預覽圖片進行更改。",baseInfo:"應用資訊",baseInfoDesc:"這裡可以設定網站的基本資訊。",logoSettings:"視覺資訊",logoSettingsDesc:"塑造獨特的品牌形象,提升網站在各種情境下的辨識度和視覺吸引力。",languagesDesc:"使用於:訪客語言選擇",nameDesc:"使用於:DID Connect 頭部,瀏覽器分頁,網站頁尾,SEO 元數據和 OpenGraph 元數據",nameValidateError:"無效:以字母/數字開頭,3-129 個字元,僅限 a-z, 0-9, - 和 _。",descriptionDesc:"用於: SEO 元數據和 OpenGraph 元數據",logoSquareDesc:"用於:使用者身份驗證對話框頁腳和 <b>DID Wallet</b> 應用程式列表",logoDesc:"建議尺寸:{width} * {height} 像素",splashDesc:`ArcSphere 應用啟動畫面 (如果已設定,將會顯示在 <b>ArcSphere</b> 中)
|
|
2
2
|
|
|
3
3
|
直向模式:
|
|
4
4
|
比例:9:16
|
package/dist/index.html
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
padding: 0;
|
|
19
19
|
}
|
|
20
20
|
</style>
|
|
21
|
-
<script type="module" crossorigin src="/.well-known/service/static/assets/index-
|
|
21
|
+
<script type="module" crossorigin src="/.well-known/service/static/assets/index-DwyzCfdd.js"></script>
|
|
22
22
|
<link rel="stylesheet" crossorigin href="/.well-known/service/static/assets/vendor-ux-DYcPPYq2.css">
|
|
23
23
|
<link rel="stylesheet" crossorigin href="/.well-known/service/static/assets/index-DrVXX4fX.css">
|
|
24
24
|
<link rel="manifest" href="/.well-known/service/static/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/.well-known/service/static/registerSW.js"></script></head>
|
package/dist/service-worker.js
CHANGED
|
@@ -1,2 +1,25 @@
|
|
|
1
|
-
try{self["workbox:core:7.3.0"]&&_()}catch{}const ne=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},ae=ne;class d extends Error{constructor(e,t){const n=ae(e,t);super(n),this.name=e,this.details=t}}const z=new Set;function re(s){z.add(s)}const p={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},D=s=>[p.prefix,s,p.suffix].filter(e=>e&&e.length>0).join("-"),ie=s=>{for(const e of Object.keys(p))s(e)},L={updateDetails:s=>{ie(e=>{typeof s[e]=="string"&&(p[e]=s[e])})},getGoogleAnalyticsName:s=>s||D(p.googleAnalytics),getPrecacheName:s=>s||D(p.precache),getPrefix:()=>p.prefix,getRuntimeName:s=>s||D(p.runtime),getSuffix:()=>p.suffix};function B(s,e){const t=new URL(s);for(const n of e)t.searchParams.delete(n);return t.href}async function ce(s,e,t,n){const a=B(e.url,t);if(e.url===a)return s.match(e,n);const r=Object.assign(Object.assign({},n),{ignoreSearch:!0}),i=await s.keys(e,r);for(const c of i){const o=B(c.url,t);if(a===o)return s.match(c,n)}}let R;function oe(){if(R===void 0){const s=new Response("");if("body"in s)try{new Response(s.body),R=!0}catch{R=!1}R=!1}return R}function K(s){s.then(()=>{})}class le{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}async function he(){for(const s of z)await s()}const ue=s=>new URL(String(s),location.href).href.replace(new RegExp(`^${location.origin}`),"");function W(s){return new Promise(e=>setTimeout(e,s))}const de=2e3;async function fe(s){if(!s)return;let e=await self.clients.matchAll({type:"window"});const t=new Set(e.map(r=>r.id));let n;const a=performance.now();for(;performance.now()-a<de&&(e=await self.clients.matchAll({type:"window"}),n=e.find(r=>s?r.id===s:!t.has(r.id)),!n);)await W(100);return n}function F(s,e){const t=e();return s.waitUntil(t),t}async function pe(s,e){let t=null;if(s.url&&(t=new URL(s.url).origin),t!==self.location.origin)throw new d("cross-origin-copy-response",{origin:t});const n=s.clone(),r={headers:new Headers(n.headers),status:n.status,statusText:n.statusText},i=oe()?n.body:await n.blob();return new Response(i,r)}function me(){self.addEventListener("activate",()=>self.clients.claim())}function ge(){self.skipWaiting()}try{self["workbox:precaching:7.3.0"]&&_()}catch{}const we="__WB_REVISION__";function ye(s){if(!s)throw new d("add-to-cache-list-unexpected-type",{entry:s});if(typeof s=="string"){const r=new URL(s,location.href);return{cacheKey:r.href,url:r.href}}const{revision:e,url:t}=s;if(!t)throw new d("add-to-cache-list-unexpected-type",{entry:s});if(!e){const r=new URL(t,location.href);return{cacheKey:r.href,url:r.href}}const n=new URL(t,location.href),a=new URL(t,location.href);return n.searchParams.set(we,e),{cacheKey:n.href,url:a.href}}class _e{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:n})=>{if(e.type==="install"&&t&&t.originalRequest&&t.originalRequest instanceof Request){const a=t.originalRequest.url;n?this.notUpdatedURLs.push(a):this.updatedURLs.push(a)}return n}}}class be{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:t,params:n})=>{const a=n?.cacheKey||this._precacheController.getCacheKeyForURL(t.url);return a?new Request(a,{headers:t.headers}):t},this._precacheController=e}}try{self["workbox:strategies:7.3.0"]&&_()}catch{}function U(s){return typeof s=="string"?new Request(s):s}class Re{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new le,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const n of this._plugins)this._pluginStateMap.set(n,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this;let n=U(e);if(n.mode==="navigate"&&t instanceof FetchEvent&&t.preloadResponse){const i=await t.preloadResponse;if(i)return i}const a=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const i of this.iterateCallbacks("requestWillFetch"))n=await i({request:n.clone(),event:t})}catch(i){if(i instanceof Error)throw new d("plugin-error-request-will-fetch",{thrownErrorMessage:i.message})}const r=n.clone();try{let i;i=await fetch(n,n.mode==="navigate"?void 0:this._strategy.fetchOptions);for(const c of this.iterateCallbacks("fetchDidSucceed"))i=await c({event:t,request:r,response:i});return i}catch(i){throw a&&await this.runCallbacks("fetchDidFail",{error:i,event:t,originalRequest:a.clone(),request:r.clone()}),i}}async fetchAndCachePut(e){const t=await this.fetch(e),n=t.clone();return this.waitUntil(this.cachePut(e,n)),t}async cacheMatch(e){const t=U(e);let n;const{cacheName:a,matchOptions:r}=this._strategy,i=await this.getCacheKey(t,"read"),c=Object.assign(Object.assign({},r),{cacheName:a});n=await caches.match(i,c);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))n=await o({cacheName:a,matchOptions:r,cachedResponse:n,request:i,event:this.event})||void 0;return n}async cachePut(e,t){const n=U(e);await W(0);const a=await this.getCacheKey(n,"write");if(!t)throw new d("cache-put-with-no-response",{url:ue(a.url)});const r=await this._ensureResponseSafeToCache(t);if(!r)return!1;const{cacheName:i,matchOptions:c}=this._strategy,o=await self.caches.open(i),u=this.hasCallback("cacheDidUpdate"),b=u?await ce(o,a.clone(),["__WB_REVISION__"],c):null;try{await o.put(a,u?r.clone():r)}catch(f){if(f instanceof Error)throw f.name==="QuotaExceededError"&&await he(),f}for(const f of this.iterateCallbacks("cacheDidUpdate"))await f({cacheName:i,oldResponse:b,newResponse:r.clone(),request:a,event:this.event});return!0}async getCacheKey(e,t){const n=`${e.url} | ${t}`;if(!this._cacheKeys[n]){let a=e;for(const r of this.iterateCallbacks("cacheKeyWillBeUsed"))a=U(await r({mode:t,request:a,event:this.event,params:this.params}));this._cacheKeys[n]=a}return this._cacheKeys[n]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const n of this.iterateCallbacks(e))await n(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if(typeof t[e]=="function"){const n=this._pluginStateMap.get(t);yield r=>{const i=Object.assign(Object.assign({},r),{state:n});return t[e](i)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){for(;this._extendLifetimePromises.length;){const e=this._extendLifetimePromises.splice(0),n=(await Promise.allSettled(e)).find(a=>a.status==="rejected");if(n)throw n.reason}}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,n=!1;for(const a of this.iterateCallbacks("cacheWillUpdate"))if(t=await a({request:this.request,response:t,event:this.event})||void 0,n=!0,!t)break;return n||t&&t.status!==200&&(t=void 0),t}}class P{constructor(e={}){this.cacheName=L.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});const t=e.event,n=typeof e.request=="string"?new Request(e.request):e.request,a="params"in e?e.params:void 0,r=new Re(this,{event:t,request:n,params:a}),i=this._getResponse(r,n,t),c=this._awaitComplete(i,r,n,t);return[i,c]}async _getResponse(e,t,n){await e.runCallbacks("handlerWillStart",{event:n,request:t});let a;try{if(a=await this._handle(t,e),!a||a.type==="error")throw new d("no-response",{url:t.url})}catch(r){if(r instanceof Error){for(const i of e.iterateCallbacks("handlerDidError"))if(a=await i({error:r,event:n,request:t}),a)break}if(!a)throw r}for(const r of e.iterateCallbacks("handlerWillRespond"))a=await r({event:n,request:t,response:a});return a}async _awaitComplete(e,t,n,a){let r,i;try{r=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:a,request:n,response:r}),await t.doneWaiting()}catch(c){c instanceof Error&&(i=c)}if(await t.runCallbacks("handlerDidComplete",{event:a,request:n,response:r,error:i}),t.destroy(),i)throw i}}class g extends P{constructor(e={}){e.cacheName=L.getPrecacheName(e.cacheName),super(e),this._fallbackToNetwork=e.fallbackToNetwork!==!1,this.plugins.push(g.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){const n=await t.cacheMatch(e);return n||(t.event&&t.event.type==="install"?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,t){let n;const a=t.params||{};if(this._fallbackToNetwork){const r=a.integrity,i=e.integrity,c=!i||i===r;n=await t.fetch(new Request(e,{integrity:e.mode!=="no-cors"?i||r:void 0})),r&&c&&e.mode!=="no-cors"&&(this._useDefaultCacheabilityPluginIfNeeded(),await t.cachePut(e,n.clone()))}else throw new d("missing-precache-entry",{cacheName:this.cacheName,url:e.url});return n}async _handleInstall(e,t){this._useDefaultCacheabilityPluginIfNeeded();const n=await t.fetch(e);if(!await t.cachePut(e,n.clone()))throw new d("bad-precaching-response",{url:e.url,status:n.status});return n}_useDefaultCacheabilityPluginIfNeeded(){let e=null,t=0;for(const[n,a]of this.plugins.entries())a!==g.copyRedirectedCacheableResponsesPlugin&&(a===g.defaultPrecacheCacheabilityPlugin&&(e=n),a.cacheWillUpdate&&t++);t===0?this.plugins.push(g.defaultPrecacheCacheabilityPlugin):t>1&&e!==null&&this.plugins.splice(e,1)}}g.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:s}){return!s||s.status>=400?null:s}};g.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:s}){return s.redirected?await pe(s):s}};class Ce{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:n=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new g({cacheName:L.getPrecacheName(e),plugins:[...t,new be({precacheController:this})],fallbackToNetwork:n}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this._installAndActiveListenersAdded=!0)}addToCacheList(e){const t=[];for(const n of e){typeof n=="string"?t.push(n):n&&n.revision===void 0&&t.push(n.url);const{cacheKey:a,url:r}=ye(n),i=typeof n!="string"&&n.revision?"reload":"default";if(this._urlsToCacheKeys.has(r)&&this._urlsToCacheKeys.get(r)!==a)throw new d("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(r),secondEntry:a});if(typeof n!="string"&&n.integrity){if(this._cacheKeysToIntegrities.has(a)&&this._cacheKeysToIntegrities.get(a)!==n.integrity)throw new d("add-to-cache-list-conflicting-integrities",{url:r});this._cacheKeysToIntegrities.set(a,n.integrity)}if(this._urlsToCacheKeys.set(r,a),this._urlsToCacheModes.set(r,i),t.length>0){const c=`Workbox is precaching URLs without revision info: ${t.join(", ")}
|
|
2
|
-
This is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(c)}}}install(e){return F(e,async()=>{const t=new _e;this.strategy.plugins.push(t);for(const[r,i]of this._urlsToCacheKeys){const c=this._cacheKeysToIntegrities.get(i),o=this._urlsToCacheModes.get(r),u=new Request(r,{integrity:c,cache:o,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:i},request:u,event:e}))}const{updatedURLs:n,notUpdatedURLs:a}=t;return{updatedURLs:n,notUpdatedURLs:a}})}activate(e){return F(e,async()=>{const t=await self.caches.open(this.strategy.cacheName),n=await t.keys(),a=new Set(this._urlsToCacheKeys.values()),r=[];for(const i of n)a.has(i.url)||(await t.delete(i),r.push(i.url));return{deletedURLs:r}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){const t=e instanceof Request?e.url:e,n=this.getCacheKeyForURL(t);if(n)return(await self.caches.open(this.strategy.cacheName)).match(n)}createHandlerBoundToURL(e){const t=this.getCacheKeyForURL(e);if(!t)throw new d("non-precached-url",{url:e});return n=>(n.request=new Request(e),n.params=Object.assign({cacheKey:t},n.params),this.strategy.handle(n))}}let A;const Q=()=>(A||(A=new Ce),A);try{self["workbox:routing:7.3.0"]&&_()}catch{}const J="GET",k=s=>s&&typeof s=="object"?s:{handle:s};class x{constructor(e,t,n=J){this.handler=k(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=k(e)}}class Ee extends x{constructor(e,t,n){const a=({url:r})=>{const i=e.exec(r.href);if(i&&!(r.origin!==location.origin&&i.index!==0))return i.slice(1)};super(a,t,n)}}class xe{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,n=this.handleRequest({request:t,event:e});n&&e.respondWith(n)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,n=Promise.all(t.urlsToCache.map(a=>{typeof a=="string"&&(a=[a]);const r=new Request(...a);return this.handleRequest({request:r,event:e})}));e.waitUntil(n),e.ports&&e.ports[0]&&n.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const n=new URL(e.url,location.href);if(!n.protocol.startsWith("http"))return;const a=n.origin===location.origin,{params:r,route:i}=this.findMatchingRoute({event:t,request:e,sameOrigin:a,url:n});let c=i&&i.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let u;try{u=c.handle({url:n,request:e,event:t,params:r})}catch(f){u=Promise.reject(f)}const b=i&&i.catchHandler;return u instanceof Promise&&(this._catchHandler||b)&&(u=u.catch(async f=>{if(b)try{return await b.handle({url:n,request:e,event:t,params:r})}catch(H){H instanceof Error&&(f=H)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw f})),u}findMatchingRoute({url:e,sameOrigin:t,request:n,event:a}){const r=this._routes.get(n.method)||[];for(const i of r){let c;const o=i.match({url:e,sameOrigin:t,request:n,event:a});if(o)return c=o,(Array.isArray(c)&&c.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o=="boolean")&&(c=void 0),{route:i,params:c}}return{}}setDefaultHandler(e,t=J){this._defaultHandlerMap.set(t,k(e))}setCatchHandler(e){this._catchHandler=k(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new d("unregister-route-but-not-found-with-method",{method:e.method});const t=this._routes.get(e.method).indexOf(e);if(t>-1)this._routes.get(e.method).splice(t,1);else throw new d("unregister-route-route-not-registered")}}let C;const Te=()=>(C||(C=new xe,C.addFetchListener(),C.addCacheListener()),C);function T(s,e,t){let n;if(typeof s=="string"){const r=new URL(s,location.href),i=({url:c})=>c.href===r.href;n=new x(i,e,t)}else if(s instanceof RegExp)n=new Ee(s,e,t);else if(typeof s=="function")n=new x(s,e,t);else if(s instanceof x)n=s;else throw new d("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return Te().registerRoute(n),n}function Ue(s,e=[]){for(const t of[...s.searchParams.keys()])e.some(n=>n.test(t))&&s.searchParams.delete(t);return s}function*ke(s,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:t="index.html",cleanURLs:n=!0,urlManipulation:a}={}){const r=new URL(s,location.href);r.hash="",yield r.href;const i=Ue(r,e);if(yield i.href,t&&i.pathname.endsWith("/")){const c=new URL(i.href);c.pathname+=t,yield c.href}if(n){const c=new URL(i.href);c.pathname+=".html",yield c.href}if(a){const c=a({url:r});for(const o of c)yield o.href}}class Le extends x{constructor(e,t){const n=({request:a})=>{const r=e.getURLsToCacheKeys();for(const i of ke(a.url,t)){const c=r.get(i);if(c){const o=e.getIntegrityForCacheKey(c);return{cacheKey:c,integrity:o}}}};super(n,e.strategy)}}function Pe(s){const e=Q(),t=new Le(e,s);T(t)}function De(s){Q().precache(s)}function Ae(s,e){De(s),Pe(e)}const Ne=(s,e)=>e.some(t=>s instanceof t);let q,V;function ve(){return q||(q=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Me(){return V||(V=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const Y=new WeakMap,I=new WeakMap,X=new WeakMap,N=new WeakMap,O=new WeakMap;function Ie(s){const e=new Promise((t,n)=>{const a=()=>{s.removeEventListener("success",r),s.removeEventListener("error",i)},r=()=>{t(m(s.result)),a()},i=()=>{n(s.error),a()};s.addEventListener("success",r),s.addEventListener("error",i)});return e.then(t=>{t instanceof IDBCursor&&Y.set(t,s)}).catch(()=>{}),O.set(e,s),e}function Se(s){if(I.has(s))return;const e=new Promise((t,n)=>{const a=()=>{s.removeEventListener("complete",r),s.removeEventListener("error",i),s.removeEventListener("abort",i)},r=()=>{t(),a()},i=()=>{n(s.error||new DOMException("AbortError","AbortError")),a()};s.addEventListener("complete",r),s.addEventListener("error",i),s.addEventListener("abort",i)});I.set(s,e)}let S={get(s,e,t){if(s instanceof IDBTransaction){if(e==="done")return I.get(s);if(e==="objectStoreNames")return s.objectStoreNames||X.get(s);if(e==="store")return t.objectStoreNames[1]?void 0:t.objectStore(t.objectStoreNames[0])}return m(s[e])},set(s,e,t){return s[e]=t,!0},has(s,e){return s instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in s}};function Ke(s){S=s(S)}function We(s){return s===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...t){const n=s.call(v(this),e,...t);return X.set(n,e.sort?e.sort():[e]),m(n)}:Me().includes(s)?function(...e){return s.apply(v(this),e),m(Y.get(this))}:function(...e){return m(s.apply(v(this),e))}}function Oe(s){return typeof s=="function"?We(s):(s instanceof IDBTransaction&&Se(s),Ne(s,ve())?new Proxy(s,S):s)}function m(s){if(s instanceof IDBRequest)return Ie(s);if(N.has(s))return N.get(s);const e=Oe(s);return e!==s&&(N.set(s,e),O.set(e,s)),e}const v=s=>O.get(s);function je(s,e,{blocked:t,upgrade:n,blocking:a,terminated:r}={}){const i=indexedDB.open(s,e),c=m(i);return n&&i.addEventListener("upgradeneeded",o=>{n(m(i.result),o.oldVersion,o.newVersion,m(i.transaction),o)}),t&&i.addEventListener("blocked",o=>t(o.oldVersion,o.newVersion,o)),c.then(o=>{r&&o.addEventListener("close",()=>r()),a&&o.addEventListener("versionchange",u=>a(u.oldVersion,u.newVersion,u))}).catch(()=>{}),c}function He(s,{blocked:e}={}){const t=indexedDB.deleteDatabase(s);return e&&t.addEventListener("blocked",n=>e(n.oldVersion,n)),m(t).then(()=>{})}const Be=["get","getKey","getAll","getAllKeys","count"],Fe=["put","add","delete","clear"],M=new Map;function $(s,e){if(!(s instanceof IDBDatabase&&!(e in s)&&typeof e=="string"))return;if(M.get(e))return M.get(e);const t=e.replace(/FromIndex$/,""),n=e!==t,a=Fe.includes(t);if(!(t in(n?IDBIndex:IDBObjectStore).prototype)||!(a||Be.includes(t)))return;const r=async function(i,...c){const o=this.transaction(i,a?"readwrite":"readonly");let u=o.store;return n&&(u=u.index(c.shift())),(await Promise.all([u[t](...c),a&&o.done]))[0]};return M.set(e,r),r}Ke(s=>({...s,get:(e,t,n)=>$(e,t)||s.get(e,t,n),has:(e,t)=>!!$(e,t)||s.has(e,t)}));try{self["workbox:expiration:7.3.0"]&&_()}catch{}const qe="workbox-expiration",E="cache-entries",G=s=>{const e=new URL(s,location.href);return e.hash="",e.href};class Ve{constructor(e){this._db=null,this._cacheName=e}_upgradeDb(e){const t=e.createObjectStore(E,{keyPath:"id"});t.createIndex("cacheName","cacheName",{unique:!1}),t.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&He(this._cacheName)}async setTimestamp(e,t){e=G(e);const n={url:e,timestamp:t,cacheName:this._cacheName,id:this._getId(e)},r=(await this.getDb()).transaction(E,"readwrite",{durability:"relaxed"});await r.store.put(n),await r.done}async getTimestamp(e){const n=await(await this.getDb()).get(E,this._getId(e));return n?.timestamp}async expireEntries(e,t){const n=await this.getDb();let a=await n.transaction(E).store.index("timestamp").openCursor(null,"prev");const r=[];let i=0;for(;a;){const o=a.value;o.cacheName===this._cacheName&&(e&&o.timestamp<e||t&&i>=t?r.push(a.value):i++),a=await a.continue()}const c=[];for(const o of r)await n.delete(E,o.id),c.push(o.url);return c}_getId(e){return this._cacheName+"|"+G(e)}async getDb(){return this._db||(this._db=await je(qe,1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class $e{constructor(e,t={}){this._isRunning=!1,this._rerunRequested=!1,this._maxEntries=t.maxEntries,this._maxAgeSeconds=t.maxAgeSeconds,this._matchOptions=t.matchOptions,this._cacheName=e,this._timestampModel=new Ve(e)}async expireEntries(){if(this._isRunning){this._rerunRequested=!0;return}this._isRunning=!0;const e=this._maxAgeSeconds?Date.now()-this._maxAgeSeconds*1e3:0,t=await this._timestampModel.expireEntries(e,this._maxEntries),n=await self.caches.open(this._cacheName);for(const a of t)await n.delete(a,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,K(this.expireEntries()))}async updateTimestamp(e){await this._timestampModel.setTimestamp(e,Date.now())}async isURLExpired(e){if(this._maxAgeSeconds){const t=await this._timestampModel.getTimestamp(e),n=Date.now()-this._maxAgeSeconds*1e3;return t!==void 0?t<n:!0}else return!1}async delete(){this._rerunRequested=!1,await this._timestampModel.expireEntries(1/0)}}class Ge{constructor(e={}){this.cachedResponseWillBeUsed=async({event:t,request:n,cacheName:a,cachedResponse:r})=>{if(!r)return null;const i=this._isResponseDateFresh(r),c=this._getCacheExpiration(a);K(c.expireEntries());const o=c.updateTimestamp(n.url);if(t)try{t.waitUntil(o)}catch{}return i?r:null},this.cacheDidUpdate=async({cacheName:t,request:n})=>{const a=this._getCacheExpiration(t);await a.updateTimestamp(n.url),await a.expireEntries()},this._config=e,this._maxAgeSeconds=e.maxAgeSeconds,this._cacheExpirations=new Map,e.purgeOnQuotaError&&re(()=>this.deleteCacheAndMetadata())}_getCacheExpiration(e){if(e===L.getRuntimeName())throw new d("expire-custom-caches-only");let t=this._cacheExpirations.get(e);return t||(t=new $e(e,this._config),this._cacheExpirations.set(e,t)),t}_isResponseDateFresh(e){if(!this._maxAgeSeconds)return!0;const t=this._getDateHeaderTimestamp(e);if(t===null)return!0;const n=Date.now();return t>=n-this._maxAgeSeconds*1e3}_getDateHeaderTimestamp(e){if(!e.headers.has("date"))return null;const t=e.headers.get("date"),a=new Date(t).getTime();return isNaN(a)?null:a}async deleteCacheAndMetadata(){for(const[e,t]of this._cacheExpirations)await self.caches.delete(e),await t.delete();this._cacheExpirations=new Map}}try{self["workbox:broadcast-update:7.3.0"]&&_()}catch{}const ze=(s,e,t)=>t.some(a=>s.headers.has(a)&&e.headers.has(a))?t.every(a=>{const r=s.headers.has(a)===e.headers.has(a),i=s.headers.get(a)===e.headers.get(a);return r&&i}):!0,Qe="CACHE_UPDATED",Je="workbox-broadcast-update",Ye=!0,Xe=["content-length","etag","last-modified"],Ze=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);function et(s){return{cacheName:s.cacheName,updatedURL:s.request.url}}class tt{constructor({generatePayload:e,headersToCheck:t,notifyAllClients:n}={}){this._headersToCheck=t||Xe,this._generatePayload=e||et,this._notifyAllClients=n??Ye}async notifyIfUpdated(e){if(e.oldResponse&&!ze(e.oldResponse,e.newResponse,this._headersToCheck)){const t={type:Qe,meta:Je,payload:this._generatePayload(e)};if(e.request.mode==="navigate"){let n;e.event instanceof FetchEvent&&(n=e.event.resultingClientId),(!await fe(n)||Ze)&&await W(3500)}if(this._notifyAllClients){const n=await self.clients.matchAll({type:"window"});for(const a of n)a.postMessage(t)}else if(e.event instanceof FetchEvent){const n=await self.clients.get(e.event.clientId);n?.postMessage(t)}}}}class st{constructor(e){this.cacheDidUpdate=async t=>{K(this._broadcastUpdate.notifyIfUpdated(t))},this._broadcastUpdate=new tt(e)}}class nt extends P{async _handle(e,t){let n=await t.cacheMatch(e),a;if(!n)try{n=await t.fetchAndCachePut(e)}catch(r){r instanceof Error&&(a=r)}if(!n)throw new d("no-response",{url:e.url,error:a});return n}}const Z={cacheWillUpdate:async({response:s})=>s.status===200||s.status===0?s:null};class at extends P{constructor(e={}){super(e),this.plugins.some(t=>"cacheWillUpdate"in t)||this.plugins.unshift(Z),this._networkTimeoutSeconds=e.networkTimeoutSeconds||0}async _handle(e,t){const n=[],a=[];let r;if(this._networkTimeoutSeconds){const{id:o,promise:u}=this._getTimeoutPromise({request:e,logs:n,handler:t});r=o,a.push(u)}const i=this._getNetworkPromise({timeoutId:r,request:e,logs:n,handler:t});a.push(i);const c=await t.waitUntil((async()=>await t.waitUntil(Promise.race(a))||await i)());if(!c)throw new d("no-response",{url:e.url});return c}_getTimeoutPromise({request:e,logs:t,handler:n}){let a;return{promise:new Promise(i=>{a=setTimeout(async()=>{i(await n.cacheMatch(e))},this._networkTimeoutSeconds*1e3)}),id:a}}async _getNetworkPromise({timeoutId:e,request:t,logs:n,handler:a}){let r,i;try{i=await a.fetchAndCachePut(t)}catch(c){c instanceof Error&&(r=c)}return e&&clearTimeout(e),(r||!i)&&(i=await a.cacheMatch(t)),i}}class ee extends P{constructor(e={}){super(e),this.plugins.some(t=>"cacheWillUpdate"in t)||this.plugins.unshift(Z)}async _handle(e,t){const n=t.fetchAndCachePut(e).catch(()=>{});t.waitUntil(n);let a=await t.cacheMatch(e),r;if(!a)try{a=await n}catch(i){i instanceof Error&&(r=i)}if(!a)throw new d("no-response",{url:e.url,error:r});return a}}const rt=/^\.?\//;function te(s="",e){return s.endsWith("/")?s:s+"/"}function it(s){return s&&s!=="/"}function l(s,...e){let t=s||"";for(const n of e.filter(a=>it(a)))if(t){const a=n.replace(rt,"");t=te(t)+a}else t=n;return t}const{scope:y}=self.registration,w=new URL(y),h="/.well-known/service",ct=`documents-swr-${y}`,ot=`meta-swr-${y}`,lt=`static-resources-${y}`,ht=`others-${y}`,ut=new Ge({maxAgeSeconds:30*24*60*60}),se=([{"revision":"629a14a7e3397a134f5a30b5dc735183","url":"registerSW.js"},{"revision":"70cb1fc50727ac935aa1c8e936946abd","url":"index.html"},{"revision":"3c1549cff96a2d2baec44397663c083e","url":"share/shared-service-worker.js"},{"revision":"8f9b8997bf5804519b8e9f8dd1bb6ef9","url":"share/shared-bridge.html"},{"revision":"e768668db4eeefde11b58542900ab2ad","url":"share/workbox-v7.3.0/workbox-window.prod.umd.js"},{"revision":"aa7368887577b9719a46b585d5dcc7a5","url":"share/workbox-v7.3.0/workbox-sw.js"},{"revision":"7eeb2d820d409221e076d31951fdcf79","url":"share/workbox-v7.3.0/workbox-streams.prod.js"},{"revision":"c78c21b4058a1134ad3e12286c57cb2f","url":"share/workbox-v7.3.0/workbox-strategies.prod.js"},{"revision":"4af96b70b2d20b041e2edd7ef1a8ef27","url":"share/workbox-v7.3.0/workbox-routing.prod.js"},{"revision":"0bcb90677f3508ebc8a3571d14194478","url":"share/workbox-v7.3.0/workbox-recipes.prod.js"},{"revision":"295decbe1eb3b073a2a8d67cfbdf5692","url":"share/workbox-v7.3.0/workbox-range-requests.prod.js"},{"revision":"770d183cf1f189a1ceb11ba8b5d808fa","url":"share/workbox-v7.3.0/workbox-precaching.prod.js"},{"revision":"0c55bb581ea7ce5ebfac1ce95cdda21f","url":"share/workbox-v7.3.0/workbox-offline-ga.prod.js"},{"revision":"866ba7d03bd871fa990976e4db312ab3","url":"share/workbox-v7.3.0/workbox-navigation-preload.prod.js"},{"revision":"c582a61c037234d8283eea0b97693b1b","url":"share/workbox-v7.3.0/workbox-expiration.prod.js"},{"revision":"b84dd900eb18e8bc842666bbb740604e","url":"share/workbox-v7.3.0/workbox-core.prod.js"},{"revision":"bdb39ceb7380dcb1483c543e8856242b","url":"share/workbox-v7.3.0/workbox-cacheable-response.prod.js"},{"revision":"d9d631014689e2b4b0e343c129671749","url":"share/workbox-v7.3.0/workbox-broadcast-update.prod.js"},{"revision":"19d4c6a99cb8ed11e68209a612e7ec44","url":"share/workbox-v7.3.0/workbox-background-sync.prod.js"},{"revision":"07a287e43ae8e959a20d6b367a581667","url":"router-template-styles/styles.css"},{"revision":null,"url":"assets/zh-tw-CeXBj2i0.js"},{"revision":null,"url":"assets/zh-tw-BhpgIqwH.js"},{"revision":null,"url":"assets/zh-Dr9buZnV.js"},{"revision":null,"url":"assets/zh-C6-KWz-k.js"},{"revision":null,"url":"assets/zh-BDke39oQ.js"},{"revision":null,"url":"assets/wrap-locale-Dk2yVg3Y.js"},{"revision":null,"url":"assets/wizard-components-MqkmgXy5.js"},{"revision":null,"url":"assets/wizard-TEBzHS-w.js"},{"revision":null,"url":"assets/wait-connect-CCXiMHZY.js"},{"revision":null,"url":"assets/vi-Y-USOQ5S.js"},{"revision":null,"url":"assets/vi-BuffIn3I.js"},{"revision":null,"url":"assets/vendor-ux-DYcPPYq2.css"},{"revision":null,"url":"assets/vendor-ux-BX9dSNUy.js"},{"revision":null,"url":"assets/vendor-utils-CFxoplqC.js"},{"revision":null,"url":"assets/vendor-react-CUXIiAnY.js"},{"revision":null,"url":"assets/vendor-mui-x-DtPl0qBm.js"},{"revision":null,"url":"assets/vendor-mui-core-B5XNUjey.js"},{"revision":null,"url":"assets/vendor-hooks-U4TTuKG0.js"},{"revision":null,"url":"assets/vendor-arcblock-D4Rvz_D3.js"},{"revision":null,"url":"assets/util-DSnAozzs.js"},{"revision":null,"url":"assets/util-BxX0TJKJ.js"},{"revision":null,"url":"assets/user-follower-ODH9p68y.js"},{"revision":null,"url":"assets/user-center-BODNsVgb.js"},{"revision":null,"url":"assets/useSetState-cWrp7qoX.js"},{"revision":null,"url":"assets/useLocalStorage-oIIa9C3F.js"},{"revision":null,"url":"assets/useAsyncRetry-CSW1hopB.js"},{"revision":null,"url":"assets/useAsync-Dy8z2Lh_.js"},{"revision":null,"url":"assets/useAsync-DNDhrs-2.js"},{"revision":null,"url":"assets/use-window-close-DLSxYDw-.js"},{"revision":null,"url":"assets/use-server-logo-BfNy3Xkj.js"},{"revision":null,"url":"assets/use-passport-id-B-b-_oYF.js"},{"revision":null,"url":"assets/use-mobile-Vtj5nBdp.js"},{"revision":null,"url":"assets/use-mobile-Dwc30NoL.js"},{"revision":null,"url":"assets/use-app-logo-D9eQSUYq.js"},{"revision":null,"url":"assets/unsubscribe-2BjO5Axx.js"},{"revision":null,"url":"assets/ua-parser-DP5omx3I.js"},{"revision":null,"url":"assets/transfer-CiITg5ql.js"},{"revision":null,"url":"assets/traffic-BvA-dAE6.js"},{"revision":null,"url":"assets/th-DLVYQmRY.js"},{"revision":null,"url":"assets/th-D-pgFsDa.js"},{"revision":null,"url":"assets/team-HgvOpVEJ.js"},{"revision":null,"url":"assets/table-tips-BA9A3QDk.js"},{"revision":null,"url":"assets/switch-control-BAyRLHvJ.js"},{"revision":null,"url":"assets/switch-C5K07M96.js"},{"revision":null,"url":"assets/studio-BKkw9WY-.js"},{"revision":null,"url":"assets/stripe.esm-BCCu7gPj.js"},{"revision":null,"url":"assets/step-actions-nHHLzUFh.js"},{"revision":null,"url":"assets/status-BFw6nCWi.js"},{"revision":null,"url":"assets/starting-progress-aMYWzin8.js"},{"revision":null,"url":"assets/start-sucUqu8u.js"},{"revision":null,"url":"assets/spaces-DM95DgFM.js"},{"revision":null,"url":"assets/simple-select-D0q2J-Br.js"},{"revision":null,"url":"assets/shorten-label-DhOty_4j.js"},{"revision":null,"url":"assets/setup-ephJCw43.js"},{"revision":null,"url":"assets/session-DUT2afHJ.js"},{"revision":null,"url":"assets/server-logo-notext.svg-DHxZ1bRk.js"},{"revision":null,"url":"assets/security-DCG1tmZe.js"},{"revision":null,"url":"assets/section-BkMzBpvM.js"},{"revision":null,"url":"assets/search-4YYphs0l.js"},{"revision":null,"url":"assets/sdk-Do4pV1s0.js"},{"revision":null,"url":"assets/sanitize-D6Abg5_T.js"},{"revision":null,"url":"assets/runtime-BwoZhRe2.js"},{"revision":null,"url":"assets/ru-CVlekA3F.js"},{"revision":null,"url":"assets/ru-BkfMvpq6.js"},{"revision":null,"url":"assets/revoke.svg-CuiCGfVW.js"},{"revision":null,"url":"assets/required-B0Gua-D1.js"},{"revision":null,"url":"assets/react-stripe.esm-Dqbe1A8R.js"},{"revision":null,"url":"assets/react-beautiful-dnd.esm-Cvsu51oI.js"},{"revision":null,"url":"assets/raf-schd.esm-JNUhxcps.js"},{"revision":null,"url":"assets/question-mark-circle.svg-DK9nTUDZ.js"},{"revision":null,"url":"assets/publish-resource-CreTipUc.js"},{"revision":null,"url":"assets/pt-iqygmSLa.js"},{"revision":null,"url":"assets/pt-BPAfyek8.js"},{"revision":null,"url":"assets/profile-embed-C3hI8xed.js"},{"revision":null,"url":"assets/preferences-BgyNzrci.js"},{"revision":null,"url":"assets/permission-BYxNrlaa.js"},{"revision":null,"url":"assets/passport-item-BnRaEMVZ.js"},{"revision":null,"url":"assets/passport-BcfDxGFq.js"},{"revision":null,"url":"assets/page-header-Cgwo2np-.js"},{"revision":null,"url":"assets/overview-5u7B_D_6.js"},{"revision":null,"url":"assets/over-due-invoice-payment-EIjXZOAF.js"},{"revision":null,"url":"assets/open-window-Ct_MP3Sx.js"},{"revision":null,"url":"assets/omit-DZEUV_m7.js"},{"revision":null,"url":"assets/lottie-welcome-oyMgXGo-.js"},{"revision":null,"url":"assets/lottie-web-4koyQiv_.js"},{"revision":null,"url":"assets/lottie-react.esm-CD0xFBYg.js"},{"revision":null,"url":"assets/lottie-loading-Npqo86wA.js"},{"revision":null,"url":"assets/lottie-error-DeJ4jU66.js"},{"revision":null,"url":"assets/lost-passport-DWR3ith-.js"},{"revision":null,"url":"assets/logo-uploader-CMuaTg_2.js"},{"revision":null,"url":"assets/login-oauth-callback-BVOT5KIP.js"},{"revision":null,"url":"assets/login-BRtDYFyr.js"},{"revision":null,"url":"assets/logger-CWdgyrlX.js"},{"revision":null,"url":"assets/log-KsUeQx46.js"},{"revision":null,"url":"assets/lock.svg-BPCZ0CT3.js"},{"revision":null,"url":"assets/localization-BhQNA1fu.js"},{"revision":null,"url":"assets/list-header-BQo9L_6R.js"},{"revision":null,"url":"assets/list-dBF9Lx52.js"},{"revision":null,"url":"assets/list-Cj5o6_aJ.js"},{"revision":null,"url":"assets/layout-CZo9vMzc.js"},{"revision":null,"url":"assets/launch-result-message-BTBdTioQ.js"},{"revision":null,"url":"assets/landing-page-zT1Tduxx.js"},{"revision":null,"url":"assets/ko-yyXX-YSM.js"},{"revision":null,"url":"assets/ko-9Vbo8tR2.js"},{"revision":null,"url":"assets/keyboard-arrow-down-rounded-8U0_i9QO.js"},{"revision":null,"url":"assets/ja-NGJjDf-2.js"},{"revision":null,"url":"assets/ja-C3ccbBe-.js"},{"revision":null,"url":"assets/item-Bpf_gGYt.js"},{"revision":null,"url":"assets/issue-passport-CUGjhBZr.js"},{"revision":null,"url":"assets/isURL-wZZwzwyC.js"},{"revision":null,"url":"assets/invite-ChOQtk0E.js"},{"revision":null,"url":"assets/invitations-xEsO2f9m.js"},{"revision":null,"url":"assets/invitation-Cjg3Rgxl.js"},{"revision":null,"url":"assets/index.esm-DTmS4tth.js"},{"revision":null,"url":"assets/index-mgpYakv8.js"},{"revision":null,"url":"assets/index-gnjjKJuC.css"},{"revision":null,"url":"assets/index-bb4s-8hu.js"},{"revision":null,"url":"assets/index-SH0LXIEm.js"},{"revision":null,"url":"assets/index-RxqUBm3A.js"},{"revision":null,"url":"assets/index-G1If4Shq.js"},{"revision":null,"url":"assets/index-DrVXX4fX.css"},{"revision":null,"url":"assets/index-Dnont80V.js"},{"revision":null,"url":"assets/index-Dn_bIjgF.js"},{"revision":null,"url":"assets/index-Dijoh4El.js"},{"revision":null,"url":"assets/index-DRYJ0xIl.js"},{"revision":null,"url":"assets/index-DK4Rvfj9.js"},{"revision":null,"url":"assets/index-DHn4LCaq.js"},{"revision":null,"url":"assets/index-DD9ceQKr.js"},{"revision":null,"url":"assets/index-DCPJbOWh.js"},{"revision":null,"url":"assets/index-DBs9Ljax.js"},{"revision":null,"url":"assets/index-CtuxXUm_.js"},{"revision":null,"url":"assets/index-CmT6o_W4.js"},{"revision":null,"url":"assets/index-CiQvt8QY.js"},{"revision":null,"url":"assets/index-Ccjxs0wr.js"},{"revision":null,"url":"assets/index-CUIcSX4q.js"},{"revision":null,"url":"assets/index-CMec_woq.js"},{"revision":null,"url":"assets/index-CJBVOMty.js"},{"revision":null,"url":"assets/index-CIvZ7HIX.js"},{"revision":null,"url":"assets/index-CAtE4xM9.js"},{"revision":null,"url":"assets/index-C0q1NhNR.js"},{"revision":null,"url":"assets/index-BsA1v5Kx.js"},{"revision":null,"url":"assets/index-Bs5xamxm.js"},{"revision":null,"url":"assets/index-BojVbZw0.js"},{"revision":null,"url":"assets/index-BjLM8Gon.js"},{"revision":null,"url":"assets/index-BfyoUnq5.js"},{"revision":null,"url":"assets/index-BajjN1HU.js"},{"revision":null,"url":"assets/index-BXtrOI0G.js"},{"revision":null,"url":"assets/index-BRky7Qm3.js"},{"revision":null,"url":"assets/index-BRGQOPmE.js"},{"revision":null,"url":"assets/index-BOiRUuPB.js"},{"revision":null,"url":"assets/index-BIFlvVef.js"},{"revision":null,"url":"assets/index-B6QOO2yw.js"},{"revision":null,"url":"assets/index-B5LvOF-F.css"},{"revision":null,"url":"assets/index-6M8OhYM1.js"},{"revision":null,"url":"assets/index-5B_H2zYd.js"},{"revision":null,"url":"assets/iframe-DbxlfoSv.js"},{"revision":null,"url":"assets/id-drFcVZg9.js"},{"revision":null,"url":"assets/id-AzAQyOHL.js"},{"revision":null,"url":"assets/home-D8RPk4rl.js"},{"revision":null,"url":"assets/hi-DNSN9klG.js"},{"revision":null,"url":"assets/hi-DLsQ4VdX.js"},{"revision":null,"url":"assets/get-safe-url-pZvXlaJu.js"},{"revision":null,"url":"assets/gen-simple-access-key-CBGi0io0.js"},{"revision":null,"url":"assets/gen-access-key-DdjBRI5O.js"},{"revision":null,"url":"assets/fuel-BdIacIqD.js"},{"revision":null,"url":"assets/fr-DSXQFpNy.js"},{"revision":null,"url":"assets/fr-B-p8406E.js"},{"revision":null,"url":"assets/form-wrapper-dz0PgYyA.js"},{"revision":null,"url":"assets/form-text-input-CbjI2VZQ.js"},{"revision":null,"url":"assets/form-C-ZRaynb.js"},{"revision":null,"url":"assets/exchange-passport-Bxh8blMK.js"},{"revision":null,"url":"assets/es-BJ8CsIZi.js"},{"revision":null,"url":"assets/es-BG3WIPEb.js"},{"revision":null,"url":"assets/engine-Cx3nUUOw.js"},{"revision":null,"url":"assets/empty-spinner-0EAHJWBW.js"},{"revision":null,"url":"assets/email-DDHqRiNE.js"},{"revision":null,"url":"assets/edit.svg-Dz9cVo7r.js"},{"revision":null,"url":"assets/domains-DVkGbWo7.js"},{"revision":null,"url":"assets/domain-action-card-D9HXIIpd.js"},{"revision":null,"url":"assets/domain-DcU9P4mp.js"},{"revision":null,"url":"assets/did-address-Qmm0nyiR.js"},{"revision":null,"url":"assets/delete-confirm-DSQSBte5.js"},{"revision":null,"url":"assets/default-animation.json-Bwjw6UFO.js"},{"revision":null,"url":"assets/de-CLQx9XAb.js"},{"revision":null,"url":"assets/de-CDBOH3k5.js"},{"revision":null,"url":"assets/dashboard-DHhNID_3.js"},{"revision":null,"url":"assets/dark-animation.json-DxDR1cr6.js"},{"revision":null,"url":"assets/createClass-CkCf2FLT.js"},{"revision":null,"url":"assets/create-passport-svg-BwqsyTOz.js"},{"revision":null,"url":"assets/content-layout-B5NObRcH.js"},{"revision":null,"url":"assets/connect-to-D3C0j8V8.js"},{"revision":null,"url":"assets/connect-DXN8mBKc.js"},{"revision":null,"url":"assets/connect-DMt_37_e.js"},{"revision":null,"url":"assets/confirm-BIsS5xyi.js"},{"revision":null,"url":"assets/config-space-3dNLmLWy.js"},{"revision":null,"url":"assets/config-navigation-CL9YkEzl.js"},{"revision":null,"url":"assets/config-mfnTXE1f.js"},{"revision":null,"url":"assets/config-DBQhYXkx.js"},{"revision":null,"url":"assets/config-CwbUhIlW.js"},{"revision":null,"url":"assets/component-BFEXoFyD.js"},{"revision":null,"url":"assets/complete-DERkCyic.js"},{"revision":null,"url":"assets/collapse-DRXViE1U.js"},{"revision":null,"url":"assets/cloneDeep-DjDct56M.js"},{"revision":null,"url":"assets/click-to-copy-DXHOGoUP.js"},{"revision":null,"url":"assets/button-4KPacREM.js"},{"revision":null,"url":"assets/bundle-avatar-CfVy3gda.js"},{"revision":null,"url":"assets/branding-BN5xzu2K.js"},{"revision":null,"url":"assets/branding-BFn6p_xP.js"},{"revision":null,"url":"assets/branding-B6_O9dwM.js"},{"revision":null,"url":"assets/bind-account-N3cioth0.js"},{"revision":null,"url":"assets/base32-E_M8YiDy.js"},{"revision":null,"url":"assets/base-chart-BXspUQ5X.js"},{"revision":null,"url":"assets/authorize-uzVAAuOd.js"},{"revision":null,"url":"assets/audit-logs-CXjhDj8M.js"},{"revision":null,"url":"assets/arrow-down.svg-Dhs0HydJ.js"},{"revision":null,"url":"assets/ar-DWlBAKPH.js"},{"revision":null,"url":"assets/ar-BBr9bsOg.js"},{"revision":null,"url":"assets/appearance-CVS4AfPI.js"},{"revision":null,"url":"assets/api-Cjc501Es.js"},{"revision":null,"url":"assets/aigne-WBAWm6yx.js"},{"revision":null,"url":"assets/advanced-Djs25PXG.js"},{"revision":null,"url":"assets/addon-B5NG3IsS.js"},{"revision":null,"url":"assets/add-resource-DVpeKvW6.js"},{"revision":null,"url":"assets/add-component-core-G0iZE90Q.css"},{"revision":null,"url":"assets/add-component-core-CFL73x1V.js"},{"revision":null,"url":"assets/actions-CiAs-6JM.js"},{"revision":null,"url":"assets/access-control-C6MQq9M9.js"},{"revision":null,"url":"assets/WorkingRemotely-mKvokr6L.js"},{"revision":null,"url":"assets/OffSick-BtITykO3.js"},{"revision":null,"url":"assets/Meeting-DbtUCCZq.js"},{"revision":null,"url":"assets/Holiday-DyVifdc-.js"},{"revision":null,"url":"assets/Google-qCiUM9VP.js"},{"revision":null,"url":"assets/Community-C7CFokDQ.js"},{"revision":null,"url":"assets/AdapterDayjs-p1MGZm94.js"},{"revision":"8d6f3db88a274aef54e88b09ee2cefd5","url":"manifest.webmanifest"}]||[]).filter(s=>s.url!=="index.html"),dt=[l(h,"/open-window"),l(h,"/lost-passport"),l(h,"/issue-passport"),l(h,"/login"),l(h,"/connect"),l(h,"/oauth/callback/*"),l(h,"/oauth/authorize"),l(h,"/exchange-passport"),l(h,"/invite"),l(h,"/transfer"),l(h,"/studio"),l(h,"/studio/home"),l(h,"/studio/preferences"),l(h,"/studio/branding"),l(h,"/studio/localization"),l(h,"/kyc/email"),l(h,"/gen-access-key"),l(h,"/gen-simple-access-key"),l(h,"/start"),l(h,"/setup/*"),l(h,"/onboard/*"),l(h,"/wizard/*"),l(h,"/user/*"),l(h,"/admin"),l(h,"/admin/*")],ft=[l("/.well-known/analytics/pv/*"),l(h,"/health"),l(h,"/health/*"),l(h,"/admin/websocket"),l(h,"/user/websocket")],j=({request:s,url:e})=>!!(s.method!=="GET"||e.pathname.includes("/api")||ft.some(t=>{if(t.endsWith("/*")){const n=t.slice(0,-1);return e.pathname.startsWith(n)}return e.pathname===t})||se.find(t=>l(y,"static",t.url)===e.href));Ae(se);const pt={cacheKeyWillBeUsed:()=>te(l(w.origin,w.pathname))},mt=new ee({cacheName:ct,plugins:[pt,new st]});T(({request:s,url:e})=>{if(j({request:s,url:e}))return!1;const t=dt.some(n=>{if(n.endsWith("/*")){const a=n.slice(0,-1);return e.pathname.startsWith(a)}return e.pathname===n});return!!(s.mode==="navigate"&&s.destination==="document"&&s.method==="GET"&&t)},mt);T(({request:s})=>!!(s.url.includes("__meta__.js")||s.url.includes("__blocklet__.js")||s.url.includes(l(h,"/api/env"))),new ee({cacheName:ot,plugins:[{cacheKeyWillBeUsed:({request:s})=>s.url.endsWith("__meta__.js")||s.url.endsWith("__blocklet__.js")?l(w.origin,w.pathname,"__blocklet__.js"):s.url.endsWith("__blocklet__.js?type=json")?l(w.origin,w.pathname,"__blocklet__.js?type=json"):s.url}]}));T(({request:s,url:e})=>j({request:s,url:e})?!1:!!["image","font","style","script"].includes(s.destination),new nt({cacheName:lt,plugins:[ut]}));T(({request:s,url:e})=>e.pathname===l(h,"/api/did/session")?!0:j({request:s,url:e})?!1:s.method==="GET",new at({cacheName:ht}));ge();me();
|
|
1
|
+
|
|
2
|
+
self.addEventListener('install', (e) => {
|
|
3
|
+
self.skipWaiting();
|
|
4
|
+
});
|
|
5
|
+
self.addEventListener('activate', (e) => {
|
|
6
|
+
self.registration.unregister()
|
|
7
|
+
.then(() => self.clients.matchAll())
|
|
8
|
+
.then((clients) => {
|
|
9
|
+
clients.forEach((client) => {
|
|
10
|
+
if (client instanceof WindowClient)
|
|
11
|
+
client.navigate(client.url);
|
|
12
|
+
});
|
|
13
|
+
return Promise.resolve();
|
|
14
|
+
})
|
|
15
|
+
.then(() => {
|
|
16
|
+
self.caches.keys().then((cacheNames) => {
|
|
17
|
+
Promise.all(
|
|
18
|
+
cacheNames.map((cacheName) => {
|
|
19
|
+
return self.caches.delete(cacheName);
|
|
20
|
+
}),
|
|
21
|
+
);
|
|
22
|
+
})
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
|