@abtnode/blocklet-services 1.16.37 → 1.16.38-beta-20250110-003414-d3c1bfbd

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/api/index.js +24 -1
  2. package/api/libs/open-graph/index.js +9 -15
  3. package/api/libs/open-graph/template.js +15 -10
  4. package/api/middlewares/proxy-to-daemon.js +2 -23
  5. package/api/routes/blocklet.js +37 -1
  6. package/api/services/static.js +11 -1
  7. package/dist/assets/{Add-WwBlcqNF.js → Add-2VCvBnGd.js} +1 -1
  8. package/dist/assets/{ArrowDropDown-B6VSNrNX.js → ArrowDropDown-BdHlAt9a.js} +1 -1
  9. package/dist/assets/{CheckCircle-n23HoB1l.js → CheckCircle-BElcljFC.js} +1 -1
  10. package/dist/assets/{ChevronLeft-DV-sPxhr.js → ChevronLeft-BfF37o7u.js} +1 -1
  11. package/dist/assets/{ChevronRight-UF0hSKpL.js → ChevronRight-B8pf890W.js} +1 -1
  12. package/dist/assets/{DeleteOutline-1Utxk_IX.js → DeleteOutline-VzoIEqow.js} +1 -1
  13. package/dist/assets/{Done-BbnQSLvu.js → Done-BCESxXX2.js} +1 -1
  14. package/dist/assets/{Download-DRJvwpLt.js → Download-BJmwtO6i.js} +1 -1
  15. package/dist/assets/{EditIcon-DDucSncy.js → EditIcon-BF2eKBD0.js} +1 -1
  16. package/dist/assets/{Error-CL8m4Xu6.js → Error-CpAOVH8t.js} +1 -1
  17. package/dist/assets/{Google-CSKRQW0F.js → Google-rxW6OGq8.js} +1 -1
  18. package/dist/assets/{InfoOutlined-7hC78o3_.js → InfoOutlined-BFP30UJa.js} +1 -1
  19. package/dist/assets/{Launch-D9iyATKb.js → Launch-BOCFiYoz.js} +1 -1
  20. package/dist/assets/{LaunchOutlined-D37WOXmf.js → LaunchOutlined-B-PaS5ms.js} +1 -1
  21. package/dist/assets/{LockIcon-BIlUQ2kd.js → LockIcon-DQtUl5vk.js} +1 -1
  22. package/dist/assets/{Loop-Clmz6DRv.js → Loop-n5c7A0qE.js} +1 -1
  23. package/dist/assets/{MoreHoriz-CtnQ7uqf.js → MoreHoriz-DnFq43xg.js} +1 -1
  24. package/dist/assets/{PlayArrow-IJdeSlbo.js → PlayArrow-oA7gV2MA.js} +1 -1
  25. package/dist/assets/{QuestionMarkCircle-2fDrHopp.js → QuestionMarkCircle-gL_QM35Z.js} +1 -1
  26. package/dist/assets/{ServerLogo-DsurTeGQ.js → ServerLogo-UNPlRpuM.js} +1 -1
  27. package/dist/assets/{ViewList-B-HVv7GT.js → ViewList-IMqkd2Sv.js} +1 -1
  28. package/dist/assets/{_createAggregator-BgG70oKG.js → _createAggregator-B4i0o6gy.js} +1 -1
  29. package/dist/assets/{access-control-BP0rhxZ_.js → access-control-DcliPEX2.js} +1 -1
  30. package/dist/assets/{actions-DsY16tuf.js → actions-BEpPU26q.js} +1 -1
  31. package/dist/assets/add-component-core-DSlHbXth.js +716 -0
  32. package/dist/assets/{add-resource-DZFTdNIy.js → add-resource-B9SUcn9b.js} +1 -1
  33. package/dist/assets/{addon-DUnQ9eC0.js → addon-C8Ytd8YY.js} +1 -1
  34. package/dist/assets/{analytics-Cym7YiQM.js → analytics-BVmtToBr.js} +1 -1
  35. package/dist/assets/api-C0C4sDJA.js +1 -0
  36. package/dist/assets/ar-DuHAbPhE.js +3 -0
  37. package/dist/assets/{ar-BAnh0kq-.js → ar-hiIrGdss.js} +1 -1
  38. package/dist/assets/{audit-logs-DtJdynVz.js → audit-logs-DOpEhbRi.js} +1 -1
  39. package/dist/assets/{base32-DZ5GWnEl.js → base32-COJTblwx.js} +1 -1
  40. package/dist/assets/{branding-DEKXfpdd.js → branding-BIbnR-Yt.js} +2 -2
  41. package/dist/assets/{bundle-avatar-CtN88KlG.js → bundle-avatar-DqROxHMq.js} +1 -1
  42. package/dist/assets/button-Bo5ZAcJk.js +1 -0
  43. package/dist/assets/{click-to-copy-D-rDpTU1.js → click-to-copy-DNu8CktB.js} +1 -1
  44. package/dist/assets/{complete-DfhluUOU.js → complete-B_C_fwut.js} +1 -1
  45. package/dist/assets/{component-DET9TWBv.js → component-eAmweIYL.js} +1 -1
  46. package/dist/assets/{config-Dx3rVqe3.js → config-CWoxBu0J.js} +1 -1
  47. package/dist/assets/{config-Bh1NLHps.js → config-d41PVAVu.js} +1 -1
  48. package/dist/assets/{config-navigation-Cn0fwBBG.js → config-navigation-jKhcoDId.js} +3 -3
  49. package/dist/assets/{config-space-CT9a0s7Q.js → config-space-Dofzrh5m.js} +1 -1
  50. package/dist/assets/{confirm-DhCXP8vW.js → confirm-C0rryr4e.js} +1 -1
  51. package/dist/assets/{connect-GHQ2pLWc.js → connect-CfWNBUY4.js} +1 -1
  52. package/dist/assets/{connect-CA2-olTo.js → connect-Wiz0Gw9I.js} +1 -1
  53. package/dist/assets/{connect-to-kYFiSkqc.js → connect-to-Dsq1ST9l.js} +1 -1
  54. package/dist/assets/{content-layout-C8ThavEP.js → content-layout-CK_AzZZ-.js} +1 -1
  55. package/dist/assets/{dashboard-B3UhGh-u.js → dashboard-Ca8O6iHB.js} +3 -3
  56. package/dist/assets/de-CJi7wiel.js +3 -0
  57. package/dist/assets/{de-CYAy3iib.js → de-D_LJn5nm.js} +1 -1
  58. package/dist/assets/{did-address-B-umhomj.js → did-address-49U3oRW2.js} +1 -1
  59. package/dist/assets/{domain-DzFcoe7i.js → domain-DJyjDPmO.js} +1 -1
  60. package/dist/assets/{domain-list-C9eJrdcx.js → domain-list-BEjAE8hh.js} +1 -1
  61. package/dist/assets/{email-BEr-8TYu.js → email-C3ggDSGp.js} +1 -1
  62. package/dist/assets/{es-Bn01DRSJ.js → es-B0ocJhTd.js} +1 -1
  63. package/dist/assets/es-ClwhOFrW.js +3 -0
  64. package/dist/assets/{exchange-passport-DGUT_ZCy.js → exchange-passport-4QuzoW2F.js} +1 -1
  65. package/dist/assets/{form-text-input-E0Z0s35O.js → form-text-input-CT57jMfW.js} +1 -1
  66. package/dist/assets/fr-CAkkNKvy.js +3 -0
  67. package/dist/assets/{fr-D3J0B-tk.js → fr-eolYJCOV.js} +1 -1
  68. package/dist/assets/{fuel-alylOU0b.js → fuel-CJ-CsgDu.js} +1 -1
  69. package/dist/assets/{fullpage-DZPI7F_L.js → fullpage-CFp4hSHz.js} +1 -1
  70. package/dist/assets/{get-safe-url-ByH0hntp.js → get-safe-url-CVhAz4Qr.js} +1 -1
  71. package/dist/assets/{get-safe-url-yHkHYeNB.js → get-safe-url-RTzyOi09.js} +1 -1
  72. package/dist/assets/hi-CGrG89HI.js +1 -0
  73. package/dist/assets/{hi-DdEYPkL3.js → hi-DSwvTH0x.js} +1 -1
  74. package/dist/assets/{home-DG81Vlwd.js → home-D1QP6Ilh.js} +1 -1
  75. package/dist/assets/{id-C6kfQsmT.js → id-5G9oPRk4.js} +1 -1
  76. package/dist/assets/id-D6PyIa8m.js +3 -0
  77. package/dist/assets/{iframe-BB-pL0gd.js → iframe-BUonayoL.js} +1 -1
  78. package/dist/assets/{index-Cp3ZCh7o.js → index-BGO2DsWz.js} +1 -1
  79. package/dist/assets/{index-BRPzwIuP.js → index-BP6sEHV5.js} +1 -1
  80. package/dist/assets/index-BPF3oif7.js +228 -0
  81. package/dist/assets/{index-BaA1-UNL.js → index-BQCwe2Vs.js} +1 -1
  82. package/dist/assets/{index-CxWy6IEg.js → index-BQxL3qXG.js} +1 -1
  83. package/dist/assets/{index-B8B9jSby.js → index-BZnWmdZ0.js} +1 -1
  84. package/dist/assets/{index-7gknQYQQ.js → index-Bi1xb9O8.js} +1 -1
  85. package/dist/assets/{index-e4kRKwa5.js → index-Bxg1LKG8.js} +1 -1
  86. package/dist/assets/index-CQT4qLcx.js +1 -0
  87. package/dist/assets/{index-jViTGvBx.js → index-CqPx8QUY.js} +1 -1
  88. package/dist/assets/{index-CU_Y2Ics.js → index-CrvlY8Z5.js} +1 -1
  89. package/dist/assets/{index-CEyrfuix.js → index-D7mJIWyJ.js} +1 -1
  90. package/dist/assets/{index-DjDooCTg.js → index-DMelUylN.js} +4 -4
  91. package/dist/assets/{index-CcsFwEG1.js → index-DQSF6ElG.js} +1 -1
  92. package/dist/assets/{index-DNd_40WG.js → index-IdPbsC-k.js} +1 -1
  93. package/dist/assets/{index-SrY9WLdy.js → index-ROkOEO9F.js} +1 -1
  94. package/dist/assets/index-l4yaELph.js +144 -0
  95. package/dist/assets/{index-Dk8-Ibsd.js → index-mnKcDZP2.js} +1 -1
  96. package/dist/assets/{index-tDqjC_e2.js → index-wG4Kh8A_.js} +6 -6
  97. package/dist/assets/{invitation-BNOVM03D.js → invitation-Dn2JFqk3.js} +1 -1
  98. package/dist/assets/{invite-CDXZxcmB.js → invite-k-THgUaE.js} +1 -1
  99. package/dist/assets/{issue-passport-1v1d15DW.js → issue-passport-Cp0z7zOC.js} +1 -1
  100. package/dist/assets/item-DqTNLhw3.js +2 -0
  101. package/dist/assets/{ja-DN837plG.js → ja-B2h7onKc.js} +1 -1
  102. package/dist/assets/ja-C82Szos_.js +3 -0
  103. package/dist/assets/{ko-LU148n3o.js → ko-B8lz4XE7.js} +1 -1
  104. package/dist/assets/ko-zaXquvPm.js +3 -0
  105. package/dist/assets/{launch-result-message-BEuCq9h1.js → launch-result-message-zXOcVqEr.js} +1 -1
  106. package/dist/assets/{layout-PlCf3Rtw.js → layout-BRN0uPvp.js} +1 -1
  107. package/dist/assets/{list-header-DdT6PG1D.js → list-header-Bn1GhGok.js} +1 -1
  108. package/dist/assets/localization-L03Lvx4v.js +1 -0
  109. package/dist/assets/{log-B5iPDWZ_.js → log-D1ShKaDY.js} +1 -1
  110. package/dist/assets/{login-DvM79Mfd.js → login-D9awP98G.js} +1 -1
  111. package/dist/assets/{login-oauth-callback-CO19RzCL.js → login-oauth-callback-DHA7e6Ar.js} +1 -1
  112. package/dist/assets/{logo-uploader-CNnYMPxh.js → logo-uploader-BA8U554_.js} +3 -3
  113. package/dist/assets/{lost-passport-DsG6aS5u.js → lost-passport-kJqVsdV1.js} +1 -1
  114. package/dist/assets/{open-window-Km_9DMrz.js → open-window-B-5Hms7z.js} +1 -1
  115. package/dist/assets/{overview-Dc_26DuW.js → overview-4bff7RWe.js} +1 -1
  116. package/dist/assets/{page-header-B3m4UCOV.js → page-header-6EUz18Qu.js} +1 -1
  117. package/dist/assets/{permission-C7OYX2OJ.js → permission-SgzW7fBj.js} +1 -1
  118. package/dist/assets/{preferences-Ci4dS6YC.js → preferences-RkqN3i2t.js} +1 -1
  119. package/dist/assets/pt-CMq2TmiV.js +1 -0
  120. package/dist/assets/{pt-CSZkEO8C.js → pt-JWdcQImo.js} +1 -1
  121. package/dist/assets/publish-resource-BhQQlAPL.js +1 -0
  122. package/dist/assets/{react-beautiful-dnd.esm-D6d5Zfr8.js → react-beautiful-dnd.esm-C8vTtkBe.js} +1 -1
  123. package/dist/assets/{relative-time-BHAJs1ji.js → relative-time-BXb5Mt72.js} +1 -1
  124. package/dist/assets/ru-BwmmHWZS.js +1 -0
  125. package/dist/assets/{ru-CPz1NiGU.js → ru-CWgdu04g.js} +1 -1
  126. package/dist/assets/sdk-Dqc91xl4.js +1 -0
  127. package/dist/assets/{session-UImnJahL.js → session-ocxAyn6f.js} +1 -1
  128. package/dist/assets/{setup-LHpIYQbe.js → setup-DTQXAoXZ.js} +3 -3
  129. package/dist/assets/{shorten-label-CKNjZbhF.js → shorten-label-BnvWOC_s.js} +1 -1
  130. package/dist/assets/{simple-select-BMYrmYam.js → simple-select-BwufbE2b.js} +1 -1
  131. package/dist/assets/{slicedToArray-BPEJIbVV.js → slicedToArray-DNAGECrJ.js} +1 -1
  132. package/dist/assets/{start-DxAs4dHz.js → start-DNpygdxp.js} +1 -1
  133. package/dist/assets/{step-actions-FdD-71wr.js → step-actions-ClTz1KhK.js} +1 -1
  134. package/dist/assets/{studio-g2uaz9WG.js → studio-DPoV-6q9.js} +1 -1
  135. package/dist/assets/{switch-control-BMO1MVhi.js → switch-control-D-IROOaC.js} +1 -1
  136. package/dist/assets/{th-DN9Th20c.js → th-BnfuNX_7.js} +1 -1
  137. package/dist/assets/{th-CKxPcxWD.js → th-C-hKn9xa.js} +1 -1
  138. package/dist/assets/{toUpper-DUImrX4s.js → toUpper-BQrWudMF.js} +1 -1
  139. package/dist/assets/{transfer-Bq5kjW_S.js → transfer-A_yTwCWw.js} +1 -1
  140. package/dist/assets/{unsubscribe-DUmfJRPR.js → unsubscribe-uaBnibKD.js} +1 -1
  141. package/dist/assets/{use-mobile-DOkke39c.js → use-mobile-DAR0hmJd.js} +1 -1
  142. package/dist/assets/{useAsync-BfmmMB4I.js → useAsync-cdOzMWPw.js} +1 -1
  143. package/dist/assets/{useAsyncRetry-m5oMMmVh.js → useAsyncRetry-KXMle3o0.js} +1 -1
  144. package/dist/assets/{useLocalStorage-ganqTrK6.js → useLocalStorage-CSyjxtUy.js} +1 -1
  145. package/dist/assets/{user-center-CYnDNkIf.js → user-center-B3stHKHJ.js} +1 -1
  146. package/dist/assets/{util-CmcVraD_.js → util-ao8gSgii.js} +1 -1
  147. package/dist/assets/{vendor-arcblock-Dn16DH88.js → vendor-arcblock-CiLB_TiI.js} +8 -8
  148. package/dist/assets/{vendor-hooks-DzETutIU.js → vendor-hooks-CLzfFpO7.js} +1 -1
  149. package/dist/assets/{vendor-mui-core-COxJgW9_.js → vendor-mui-core-BlX2BJoA.js} +31 -31
  150. package/dist/assets/{vendor-mui-x-Be0GxtOJ.js → vendor-mui-x-Bq1FyQ7S.js} +1 -1
  151. package/dist/assets/{vendor-utils-CV7RLr7b.js → vendor-utils-DCpRgzMR.js} +4 -4
  152. package/dist/assets/{vi-DsheN6LQ.js → vi-C_iM9J2X.js} +1 -1
  153. package/dist/assets/{vi-ChReTICx.js → vi-D7HQHu1T.js} +1 -1
  154. package/dist/assets/wrap-locale-DNve09jN.js +1 -0
  155. package/dist/assets/{zh-BJMvTFip.js → zh-DNY792IC.js} +1 -1
  156. package/dist/assets/zh-tw-9sY6BN2s.js +3 -0
  157. package/dist/assets/{zh-tw-DkLkQUwb.js → zh-tw-jFbTVB_K.js} +1 -1
  158. package/dist/index.html +6 -6
  159. package/dist/manifest.webmanifest +1 -0
  160. package/dist/registerSW.js +1 -0
  161. package/dist/service-worker.js +1 -1
  162. package/dist/share/shared-service-worker.js +55 -26
  163. package/package.json +32 -31
  164. package/dist/assets/add-component-core-C8hvHJq0.js +0 -716
  165. package/dist/assets/api-C7qcY4XU.js +0 -1
  166. package/dist/assets/ar-DJ10cGfc.js +0 -3
  167. package/dist/assets/button-CPeDg26t.js +0 -1
  168. package/dist/assets/de-5ORoKwiw.js +0 -3
  169. package/dist/assets/es-CWClvbjs.js +0 -3
  170. package/dist/assets/fr-CE8mlhdK.js +0 -3
  171. package/dist/assets/hi-DVuJdQme.js +0 -1
  172. package/dist/assets/id-L6JUyxUh.js +0 -3
  173. package/dist/assets/index-B-0OFwWF.js +0 -144
  174. package/dist/assets/index-CYh2QqLk.js +0 -1
  175. package/dist/assets/index-DHmJ4NAw.js +0 -221
  176. package/dist/assets/item-DoetJFaA.js +0 -1
  177. package/dist/assets/ja-C5orBePq.js +0 -3
  178. package/dist/assets/ko-BeIurXFC.js +0 -3
  179. package/dist/assets/localization-Cm0dNj2B.js +0 -1
  180. package/dist/assets/pt-BED0VqHV.js +0 -1
  181. package/dist/assets/publish-resource-BumbS1yx.js +0 -1
  182. package/dist/assets/ru-B5wj2v7e.js +0 -1
  183. package/dist/assets/sdk-0UwYHc-i.js +0 -1
  184. package/dist/assets/wrap-locale-DTO386nY.js +0 -1
  185. package/dist/assets/zh-tw-B_su4eMW.js +0 -3
@@ -1 +1 @@
1
- const e={auth:{noPermission:{title:"無許可權",description:"您不是該 Blocklet 鏈應用的管理員"}},login:{reLogin:"重新連接",description:"您必須連接您的DID錢包才能訪問{name}",already:"您已連線為{name}",connectWallet:"連接DID錢包",closeWindow:"關閉視窗",accessLimit:{title:"頁面訪問受限",description:"訪問此頁面需要以下通行證,請連接到錢包以更改或申請相應的通行證。",alreadyHavePassport:"已經有通行證了",connectWithPassport:"使用此通行證連線",buyPassport:"購買通行證"},switchDid:{title:"切換DID錢包",scan:"掃描以下 QR 碼以切換帳號",confirm:"確認在您的DID錢包中切換",success:"成功切換"},switchSpecifiedDid:{title:"切換DID錢包",scan:"您需要將DID切換到{did}以完成以下操作",confirm:"確認在您的DID錢包中切換",success:"成功切換"},connect:{title:"連接DID錢包",scan:"連接您的DID錢包以提供通行證",confirm:"在您的 DID 錢包上確認",success:"你已成功連線"},needManualClose:"登入成功,如果此視窗未自動關閉,請將其關閉。",connectWithPassport:"使用此通行證連線",invalidRedirectUrl:"無效的重新導向網址",issueKyc:{pageDescription:"完成驗證以確保您的帳戶安全,並獲得可信賴的可重複使用的NFT,可在其他站點使用(一次驗證,隨處展示)。",verifyButton:"驗證",sendCodeButton:"取得驗證碼",codeSentMessage:"我們剛剛向 {email} 發送了一個驗證碼,該驗證碼將在30分鐘內有效,請檢查您的收件箱或垃圾郵件文件夾。",codeSentSuccess:"驗證碼發送成功",claim:"認領已驗證的電子郵件證書",scan:"連接您的 DID 錢包以接收證書",confirm:"在您的DID錢包上確認",success:"恭喜!您已成功驗證了您的電子郵件並在您的DID錢包中認領證書。",backToHome:"返回首頁",emailPlaceholder:"您的電子郵件地址",verifyTitle:"驗證您的電子郵件地址",issueTitle:"認領電子郵件驗證NFT",verifyAction:"驗證",issueAction:"認領",issueTarget:"您正在{action}以下DID,請點擊頭像添加另一個DID"},updateKyc:{button:"現證書",title:"目前驗證的電子郵件證書",scan:"連接您的DID錢包以展示證書",confirm:"在您的DID錢包上確認",success:"恭喜!您的NFT已被驗證並接受。"},invalidOpenerUrl:"無效的開啟 URL"},studio:{home:"Studio",preferences:"偏好設定建構器",localization:"本地化",branding:"品牌",ratio:"比例",size:"大小",count:"數量",tip:"提示",change:"點擊標誌更改。",order:"順序",orderTip:"拖曳以更改",orderTipLong:"拖曳以更改,如果您在磁碟中刪除任何螢幕截圖,請重新整理頁面。",type:"類型",videoTipLong:"點擊封面編輯影片連結。",video:"影片",videoTooltip:"拖曳以更改順序。",videoType:"支援的網站",videoDialogTitle:"新增 Video",videoDialogEditTitle:"編輯/刪除 影片",videoInputLabel:"輸入 YouTube 或 Vimeo 影片連結",videoDialogNoSrc:"請輸入有效的影片連結",duplicateVideo:"已新增此影片",confirm:"確認",cancel:"取消",preview:"預覽",delete:"刪除",title:"提供圖片給 {title}",description:"更多資訊,請參考",documentation:"文件"},blocklet:{startApplication:"啟動應用程式",startDescription:"準備好開始, {name}",start:"開始",starting:"開始...",open:"打開",suspended:"應用程式已暫停",manageSubscription:"管理訂閱",suspendedCausedByExpired:"由於付款過期,此申請已暫停。請在 {deadline} 之前續訂以恢復。如果在指定的時間範圍內未續訂,將導致無法續訂或恢復。",suspendedCausedByTerminated:"由於訂閱已取消,應用程式已終止,該訂閱於 {canceledAt} 取消,資料將保留至 {deadline};在資料刪除之前,您可以將資料備份到 DID 空間。",terminated:"應用程式已終止",gotoVisitError:"無法訪問 blocklet url,請稍後再試"},setup:{steps:{connect:"連線",didSpace:"DID 空間",config:"配置",domain:"領域",access:"存取控制",fuel:"燃料",complete:"完成",introduction:"介紹",selectNodeDesc:"選擇Blocklet伺服器",launchAppDesc:"將 Blocklet 安裝到伺服器",setupAppDesc:"設置 Blocklet",launched:"完成"},connect:{title:"連線到應用程式",scan:"連接您的DID錢包以提供用户設定檔和blocklet的擁有者權限,然後您可以配置和啟動應用程式。",confirm:"在您的DID錢包上進行確認",success:"你已成功連線"},domain:{addTitle:"綁定現有網域 (選項)",title:"域名設定",subTitle:"為應用設定自定義域名",label:"請提供一個有效的域名",tipStart:"請務必確保",tipEnd:"指向當前伺服器",cannotResolve:"{domain} 無法解析,請檢查您的DNS配置",checkingResolvable:"檢查網域狀態中...",addingCert:"正在產生證書...",addingDomain:"正在新增網域...",recordType:"記錄類型",recordValue:"記錄值",skipStart:"你可以",skip:"跳過自訂域名設定",skipEnd:"並使用預設域訪問應用程序",genCertSuccess:"{domain}證書發行成功",genCertFailed:"無法為{domain}簽發憑證:{message}",genCertFailedForNFTDomain:"成功添加NFT域名,但無法生成HTTPS憑證,請稍後再試。",resolvedAddressError:"{domain} 不指向與 {curDomain} 相同的 IP 地址",invalidDNSReminder:"然而,您可以繼續新增網域,但自動產生憑證不可用。",continueAdd:"繼續添加",buyDIDDomainTitle:"購買一個 DID Domain (選擇性)",buyDIDDomainTips:"購買 DID 網域名稱後,網域名稱將自動綁定到應用程式。"},didSpace:{title:"配置DID空間",subTitle:"完成以下連接過程,將應用程式資料儲存於DID Spaces中",tips:"小秘訣",description:"在成功連接後,配置DID Spaces實例地址並將應用程式資料存儲在DID Spaces中",label:"請選擇DID Spaces服務",connected:"您已成功連接到DID空間",connect:"立即連接",reconnect:"重新連接",addressCannotEmpty:"地址不能為空",addressNotValid:"{url} 不是一個有效的地址",authorize:{title:"將 {appName} 連接到 DID Spaces",scan:"使用您的DID錢包掃描下方的QR碼,允許應用程式{appName}連接到DID空間",success:"成功連接"}},config:{title:"配置",subTitle:"其他配置項(您還需要設置以下項)"},complete:{title:"一切就緒",failedTitle:"啟動 Blocklet失敗",backToServer:"返回到 Blocklet 鏈伺服器",notRunning:"Blocklet在第一次嘗試中無法啟動,請重試"},fuel:{title:"啟動所需燃料",tipStart:"插槽",tipEnd:"本應用程式正確運作所需,資金存放在應用程式的錢包中,可以用於交易費用。當您不再執行應用程式時,可以隨時提取您的餘額。",addressTitle:"應用帳戶",addressTip:"用DID錢包給應用程式加油",need:"需要",current:"目前",fuelApp:"加油應用程式"},title:"設置",next:"下一個",previous:"以前",continue:"繼續",skip:"跳過",startNow:"現在開始",confirm:"確認",cancel:"取消"},user:{walletNotification:"DID錢包通知",emailNotification:"電子郵件通知",smsNotification:"簡訊通知",addWebhook:"新增 Webhook"},pageTitle:{login:"登入",dashboard:"Blocklet 儀表板",userCenter:"用户中心",invite:"邀請",issuePassport:"領發通行證",lostPassport:"遺失通行證"}};export{e as default};
1
+ const e={auth:{noPermission:{title:"無許可權",description:"您不是該 Blocklet 鏈應用的管理員"}},login:{reLogin:"重新連接",description:"您必須連接您的DID錢包才能訪問{name}",already:"您已連線為{name}",connectWallet:"連接DID錢包",closeWindow:"關閉視窗",accessLimit:{title:"頁面訪問受限",description:"訪問此頁面需要以下通行證,請連接到錢包以更改或申請相應的通行證。",alreadyHavePassport:"已經有通行證了",connectWithPassport:"使用此通行證連線",buyPassport:"購買通行證"},switchDid:{title:"切換DID錢包",scan:"掃描以下 QR 碼以切換帳號",confirm:"確認在您的DID錢包中切換",success:"成功切換"},switchSpecifiedDid:{title:"切換DID錢包",scan:"您需要將DID切換到{did}以完成以下操作",confirm:"確認在您的DID錢包中切換",success:"成功切換"},connect:{title:"連接DID錢包",scan:"連接您的DID錢包以提供通行證",confirm:"在您的 DID 錢包上確認",success:"你已成功連線"},needManualClose:"登入成功,如果此視窗未自動關閉,請將其關閉。",connectWithPassport:"使用此通行證連線",invalidRedirectUrl:"無效的重新導向網址",issueKyc:{pageDescription:"完成驗證以確保您的帳戶安全,並獲得可信賴的可重複使用的NFT,可在其他站點使用(一次驗證,隨處展示)。",verifyButton:"驗證",sendCodeButton:"取得驗證碼",codeSentMessage:"我們剛剛向 {email} 發送了一個驗證碼,該驗證碼將在30分鐘內有效,請檢查您的收件箱或垃圾郵件文件夾。",codeSentSuccess:"驗證碼發送成功",claim:"認領已驗證的電子郵件證書",scan:"連接您的 DID 錢包以接收證書",confirm:"在您的DID錢包上確認",success:"恭喜!您已成功驗證了您的電子郵件並在您的DID錢包中認領證書。",backToHome:"返回首頁",emailPlaceholder:"您的電子郵件地址",verifyTitle:"驗證您的電子郵件地址",issueTitle:"認領電子郵件驗證NFT",verifyAction:"驗證",issueAction:"認領",issueTarget:"您正在{action}以下DID,請點擊頭像添加另一個DID"},updateKyc:{button:"現證書",title:"目前驗證的電子郵件證書",scan:"連接您的DID錢包以展示證書",confirm:"在您的DID錢包上確認",success:"恭喜!您的NFT已被驗證並接受。"},invalidOpenerUrl:"無效的開啟 URL"},studio:{home:"Studio",preferences:"偏好設定建構器",localization:"本地化",branding:"品牌",ratio:"比例",size:"大小",count:"數量",tip:"提示",change:"點擊標誌更改。",order:"順序",orderTip:"拖曳以更改",orderTipLong:"拖曳以更改,如果您在磁碟中刪除任何螢幕截圖,請重新整理頁面。",type:"類型",videoTipLong:"點擊封面編輯影片連結。",video:"影片",videoTooltip:"拖曳以更改順序。",videoType:"支援的網站",videoDialogTitle:"新增 Video",videoDialogEditTitle:"編輯/刪除 影片",videoInputLabel:"輸入 YouTube 或 Vimeo 影片連結",videoDialogNoSrc:"請輸入有效的影片連結",duplicateVideo:"已新增此影片",confirm:"確認",cancel:"取消",preview:"預覽",delete:"刪除",title:"提供圖片給 {title}",description:"更多資訊,請參考",documentation:"文件"},blocklet:{startApplication:"啟動應用程式",startDescription:"準備好開始, {name}",start:"開始",starting:"開始...",open:"打開",suspended:"應用程式已暫停",manageSubscription:"管理訂閱",suspendedCausedByExpired:"由於付款過期,此申請已暫停。請在 {deadline} 之前續訂以恢復。如果在指定的時間範圍內未續訂,將導致無法續訂或恢復。",suspendedCausedByTerminated:"由於訂閱已取消,應用程式已終止,該訂閱於 {canceledAt} 取消,資料將保留至 {deadline};在資料刪除之前,您可以將資料備份到 DID 空間。",terminated:"應用程式已終止",gotoVisitError:"無法訪問 blocklet url,請稍後再試"},setup:{steps:{connect:"連線",didSpace:"DID 空間",config:"配置",domain:"領域",access:"存取控制",fuel:"燃料",complete:"完成",introduction:"介紹",selectNodeDesc:"選擇Blocklet伺服器",launchAppDesc:"將 Blocklet 安裝到伺服器",setupAppDesc:"設置 Blocklet",launched:"完成"},connect:{title:"連線到應用程式",scan:"連接您的DID錢包以提供用户設定檔和blocklet的擁有者權限,然後您可以配置和啟動應用程式。",confirm:"在您的DID錢包上進行確認",success:"你已成功連線"},domain:{addTitle:"綁定現有網域 (選項)",title:"域名設定",subTitle:"為應用設定自定義域名",label:"請提供一個有效的域名",tipStart:"請務必確保",tipEnd:"指向當前伺服器",cannotResolve:"{domain} 無法解析,請檢查您的DNS配置",checkingResolvable:"檢查網域狀態中...",addingCert:"正在產生證書...",addingDomain:"正在新增網域...",recordType:"記錄類型",recordValue:"記錄值",skipStart:"你可以",skip:"跳過自訂域名設定",skipEnd:"並使用預設域訪問應用程序",genCertSuccess:"{domain}證書發行成功",genCertFailed:"無法為{domain}簽發憑證:{message}",genCertFailedForNFTDomain:"成功添加NFT域名,但無法生成HTTPS憑證,請稍後再試。",resolvedAddressError:"{domain} 不指向與 {curDomain} 相同的 IP 地址",invalidDNSReminder:"然而,您可以繼續新增網域,但自動產生憑證不可用。",continueAdd:"繼續添加",buyDIDDomainTitle:"購買一個 DID Domain (選擇性)",buyDIDDomainTips:"購買 DID 網域名稱後,網域名稱將自動綁定到應用程式。"},didSpace:{title:"配置DID空間",subTitle:"完成以下連接過程,將應用程式資料儲存於DID Spaces中",tips:"小秘訣",description:"在成功連接後,配置DID Spaces實例地址並將應用程式資料存儲在DID Spaces中",label:"請選擇DID Spaces服務",connected:"您已成功連接到DID空間",connect:"立即連接",reconnect:"重新連接",addressCannotEmpty:"地址不能為空",addressNotValid:"{url} 不是一個有效的地址",authorize:{title:"將 {appName} 連接到 DID Spaces",scan:"使用您的DID錢包掃描下方的QR碼,允許應用程式{appName}連接到DID空間",success:"成功連接"}},config:{title:"配置",subTitle:"其他配置項(您還需要設置以下項)"},complete:{title:"一切就緒",failedTitle:"啟動 Blocklet失敗",backToServer:"返回到 Blocklet 鏈伺服器",notRunning:"Blocklet在第一次嘗試中無法啟動,請重試"},fuel:{title:"啟動所需燃料",tipStart:"插槽",tipEnd:"本應用程式正確運作所需,資金存放在應用程式的錢包中,可以用於交易費用。當您不再執行應用程式時,可以隨時提取您的餘額。",addressTitle:"應用帳戶",addressTip:"用DID錢包給應用程式加油",need:"需要",current:"目前",fuelApp:"加油應用程式"},title:"設置",next:"下一個",previous:"以前",continue:"繼續",skip:"跳過",startNow:"現在開始",confirm:"確認",cancel:"取消"},user:{walletNotification:"DID錢包通知",emailNotification:"電子郵件通知",smsNotification:"簡訊通知",addWebhook:"新增 Webhook"},pageTitle:{login:"登入",dashboard:"Blocklet 儀表板",userCenter:"用户中心",invite:"邀請",issuePassport:"領發通行證",lostPassport:"遺失通行證"},errorPage:{404:{title:"哎呀!頁面未找到",description:"看起來您要找的頁面不存在。",backHome:'如果您是訪客,您可以 <a href="{url}">返回主頁</a>',goToDashboard:"如果你是網站所有者,可以<a href={url}>登入到儀表板</a>。"}}};export{e as default};
package/dist/index.html CHANGED
@@ -15,14 +15,14 @@
15
15
  background-color: transparent;
16
16
  }
17
17
  </style>
18
- <script type="module" crossorigin src="/.well-known/service/static/assets/index-tDqjC_e2.js"></script>
18
+ <script type="module" crossorigin src="/.well-known/service/static/assets/index-wG4Kh8A_.js"></script>
19
19
  <link rel="modulepreload" crossorigin href="/.well-known/service/static/assets/vendor-react-D-afvo_7.js">
20
- <link rel="modulepreload" crossorigin href="/.well-known/service/static/assets/vendor-mui-core-COxJgW9_.js">
21
- <link rel="modulepreload" crossorigin href="/.well-known/service/static/assets/vendor-utils-CV7RLr7b.js">
22
- <link rel="modulepreload" crossorigin href="/.well-known/service/static/assets/vendor-hooks-DzETutIU.js">
23
- <link rel="modulepreload" crossorigin href="/.well-known/service/static/assets/vendor-arcblock-Dn16DH88.js">
20
+ <link rel="modulepreload" crossorigin href="/.well-known/service/static/assets/vendor-mui-core-BlX2BJoA.js">
21
+ <link rel="modulepreload" crossorigin href="/.well-known/service/static/assets/vendor-utils-DCpRgzMR.js">
22
+ <link rel="modulepreload" crossorigin href="/.well-known/service/static/assets/vendor-hooks-CLzfFpO7.js">
23
+ <link rel="modulepreload" crossorigin href="/.well-known/service/static/assets/vendor-arcblock-CiLB_TiI.js">
24
24
  <link rel="stylesheet" crossorigin href="/.well-known/service/static/assets/vendor-arcblock-DhgPdlEj.css">
25
- </head>
25
+ <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>
26
26
 
27
27
  <body>
28
28
  <noscript> You need to enable JavaScript to run this app. </noscript>
@@ -0,0 +1 @@
1
+ {"name":"@abtnode/blocklet-services","short_name":"@abtnode/blocklet-services","start_url":"/.well-known/service/static/","display":"standalone","background_color":"#ffffff","lang":"en","scope":"/.well-known/service/"}
@@ -0,0 +1 @@
1
+ if('serviceWorker' in navigator) {window.addEventListener('load', () => {navigator.serviceWorker.register('/.well-known/service/static/service-worker.js', { scope: '/.well-known/service/' })})}
@@ -1,2 +1,2 @@
1
1
  try{self["workbox:core:7.0.0"]&&_()}catch{}const ae=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},ne=ae;let y=class extends Error{constructor(e,t){const r=ne(e,t);super(r),this.name=e,this.details=t}};const ie=new Set,d={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},N=s=>[d.prefix,s,d.suffix].filter(e=>e&&e.length>0).join("-"),ce=s=>{for(const e of Object.keys(d))s(e)},oe={updateDetails:s=>{ce(e=>{typeof s[e]=="string"&&(d[e]=s[e])})},getGoogleAnalyticsName:s=>s||N(d.googleAnalytics),getPrecacheName:s=>s||N(d.precache),getPrefix:()=>d.prefix,getRuntimeName:s=>s||N(d.runtime),getSuffix:()=>d.suffix};function q(s,e){const t=new URL(s);for(const r of e)t.searchParams.delete(r);return t.href}async function le(s,e,t,r){const a=q(e.url,t);if(e.url===a)return s.match(e,r);const i=Object.assign(Object.assign({},r),{ignoreSearch:!0}),n=await s.keys(e,i);for(const c of n){const o=q(c.url,t);if(a===o)return s.match(c,r)}}let he=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};async function ue(){for(const s of ie)await s()}const fe=s=>new URL(String(s),location.href).href.replace(new RegExp(`^${location.origin}`),"");function de(s){return new Promise(e=>setTimeout(e,s))}function pe(){self.addEventListener("activate",()=>self.clients.claim())}try{self["workbox:core:7.0.0"]&&_()}catch{}const ge=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},me=ge;let u=class extends Error{constructor(e,t){const r=me(e,t);super(r),this.name=e,this.details=t}};const p={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},M=s=>[p.prefix,s,p.suffix].filter(e=>e&&e.length>0).join("-"),we=s=>{for(const e of Object.keys(p))s(e)},j={updateDetails:s=>{we(e=>{typeof s[e]=="string"&&(p[e]=s[e])})},getGoogleAnalyticsName:s=>s||M(p.googleAnalytics),getPrecacheName:s=>s||M(p.precache),getPrefix:()=>p.prefix,getRuntimeName:s=>s||M(p.runtime),getSuffix:()=>p.suffix};function H(s,e){const t=e();return s.waitUntil(t),t}try{self["workbox:precaching:7.0.0"]&&_()}catch{}const ye="__WB_REVISION__";function _e(s){if(!s)throw new u("add-to-cache-list-unexpected-type",{entry:s});if(typeof s=="string"){const i=new URL(s,location.href);return{cacheKey:i.href,url:i.href}}const{revision:e,url:t}=s;if(!t)throw new u("add-to-cache-list-unexpected-type",{entry:s});if(!e){const i=new URL(t,location.href);return{cacheKey:i.href,url:i.href}}const r=new URL(t,location.href),a=new URL(t,location.href);return r.searchParams.set(ye,e),{cacheKey:r.href,url:a.href}}class Re{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:r})=>{if(e.type==="install"&&t&&t.originalRequest&&t.originalRequest instanceof Request){const a=t.originalRequest.url;r?this.notUpdatedURLs.push(a):this.updatedURLs.push(a)}return r}}}class be{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:t,params:r})=>{const a=(r==null?void 0:r.cacheKey)||this._precacheController.getCacheKeyForURL(t.url);return a?new Request(a,{headers:t.headers}):t},this._precacheController=e}}let b;function Ce(){if(b===void 0){const s=new Response("");if("body"in s)try{new Response(s.body),b=!0}catch{b=!1}b=!1}return b}async function xe(s,e){let t=null;if(s.url&&(t=new URL(s.url).origin),t!==self.location.origin)throw new u("cross-origin-copy-response",{origin:t});const r=s.clone(),i={headers:new Headers(r.headers),status:r.status,statusText:r.statusText},n=Ce()?r.body:await r.blob();return new Response(n,i)}const ke=s=>new URL(String(s),location.href).href.replace(new RegExp(`^${location.origin}`),"");function B(s,e){const t=new URL(s);for(const r of e)t.searchParams.delete(r);return t.href}async function Ee(s,e,t,r){const a=B(e.url,t);if(e.url===a)return s.match(e,r);const i=Object.assign(Object.assign({},r),{ignoreSearch:!0}),n=await s.keys(e,i);for(const c of n){const o=B(c.url,t);if(a===o)return s.match(c,r)}}class De{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}const Ue=new Set;async function Le(){for(const s of Ue)await s()}function Pe(s){return new Promise(e=>setTimeout(e,s))}try{self["workbox:strategies:7.0.0"]&&_()}catch{}function D(s){return typeof s=="string"?new Request(s):s}let ve=class{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new De,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const r of this._plugins)this._pluginStateMap.set(r,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this;let r=D(e);if(r.mode==="navigate"&&t instanceof FetchEvent&&t.preloadResponse){const n=await t.preloadResponse;if(n)return n}const a=this.hasCallback("fetchDidFail")?r.clone():null;try{for(const n of this.iterateCallbacks("requestWillFetch"))r=await n({request:r.clone(),event:t})}catch(n){if(n instanceof Error)throw new u("plugin-error-request-will-fetch",{thrownErrorMessage:n.message})}const i=r.clone();try{let n;n=await fetch(r,r.mode==="navigate"?void 0:this._strategy.fetchOptions);for(const c of this.iterateCallbacks("fetchDidSucceed"))n=await c({event:t,request:i,response:n});return n}catch(n){throw a&&await this.runCallbacks("fetchDidFail",{error:n,event:t,originalRequest:a.clone(),request:i.clone()}),n}}async fetchAndCachePut(e){const t=await this.fetch(e),r=t.clone();return this.waitUntil(this.cachePut(e,r)),t}async cacheMatch(e){const t=D(e);let r;const{cacheName:a,matchOptions:i}=this._strategy,n=await this.getCacheKey(t,"read"),c=Object.assign(Object.assign({},i),{cacheName:a});r=await caches.match(n,c);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))r=await o({cacheName:a,matchOptions:i,cachedResponse:r,request:n,event:this.event})||void 0;return r}async cachePut(e,t){const r=D(e);await Pe(0);const a=await this.getCacheKey(r,"write");if(!t)throw new u("cache-put-with-no-response",{url:ke(a.url)});const i=await this._ensureResponseSafeToCache(t);if(!i)return!1;const{cacheName:n,matchOptions:c}=this._strategy,o=await self.caches.open(n),l=this.hasCallback("cacheDidUpdate"),f=l?await Ee(o,a.clone(),["__WB_REVISION__"],c):null;try{await o.put(a,l?i.clone():i)}catch(h){if(h instanceof Error)throw h.name==="QuotaExceededError"&&await Le(),h}for(const h of this.iterateCallbacks("cacheDidUpdate"))await h({cacheName:n,oldResponse:f,newResponse:i.clone(),request:a,event:this.event});return!0}async getCacheKey(e,t){const r=`${e.url} | ${t}`;if(!this._cacheKeys[r]){let a=e;for(const i of this.iterateCallbacks("cacheKeyWillBeUsed"))a=D(await i({mode:t,request:a,event:this.event,params:this.params}));this._cacheKeys[r]=a}return this._cacheKeys[r]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const r of this.iterateCallbacks(e))await r(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if(typeof t[e]=="function"){const r=this._pluginStateMap.get(t);yield i=>{const n=Object.assign(Object.assign({},i),{state:r});return t[e](n)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,r=!1;for(const a of this.iterateCallbacks("cacheWillUpdate"))if(t=await a({request:this.request,response:t,event:this.event})||void 0,r=!0,!t)break;return r||t&&t.status!==200&&(t=void 0),t}},Ne=class{constructor(e={}){this.cacheName=j.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,r=typeof e.request=="string"?new Request(e.request):e.request,a="params"in e?e.params:void 0,i=new ve(this,{event:t,request:r,params:a}),n=this._getResponse(i,r,t),c=this._awaitComplete(n,i,r,t);return[n,c]}async _getResponse(e,t,r){await e.runCallbacks("handlerWillStart",{event:r,request:t});let a;try{if(a=await this._handle(t,e),!a||a.type==="error")throw new u("no-response",{url:t.url})}catch(i){if(i instanceof Error){for(const n of e.iterateCallbacks("handlerDidError"))if(a=await n({error:i,event:r,request:t}),a)break}if(!a)throw i}for(const i of e.iterateCallbacks("handlerWillRespond"))a=await i({event:r,request:t,response:a});return a}async _awaitComplete(e,t,r,a){let i,n;try{i=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:a,request:r,response:i}),await t.doneWaiting()}catch(c){c instanceof Error&&(n=c)}if(await t.runCallbacks("handlerDidComplete",{event:a,request:r,response:i,error:n}),t.destroy(),n)throw n}};class w extends Ne{constructor(e={}){e.cacheName=j.getPrecacheName(e.cacheName),super(e),this._fallbackToNetwork=e.fallbackToNetwork!==!1,this.plugins.push(w.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){const r=await t.cacheMatch(e);return r||(t.event&&t.event.type==="install"?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,t){let r;const a=t.params||{};if(this._fallbackToNetwork){const i=a.integrity,n=e.integrity,c=!n||n===i;r=await t.fetch(new Request(e,{integrity:e.mode!=="no-cors"?n||i:void 0})),i&&c&&e.mode!=="no-cors"&&(this._useDefaultCacheabilityPluginIfNeeded(),await t.cachePut(e,r.clone()))}else throw new u("missing-precache-entry",{cacheName:this.cacheName,url:e.url});return r}async _handleInstall(e,t){this._useDefaultCacheabilityPluginIfNeeded();const r=await t.fetch(e);if(!await t.cachePut(e,r.clone()))throw new u("bad-precaching-response",{url:e.url,status:r.status});return r}_useDefaultCacheabilityPluginIfNeeded(){let e=null,t=0;for(const[r,a]of this.plugins.entries())a!==w.copyRedirectedCacheableResponsesPlugin&&(a===w.defaultPrecacheCacheabilityPlugin&&(e=r),a.cacheWillUpdate&&t++);t===0?this.plugins.push(w.defaultPrecacheCacheabilityPlugin):t>1&&e!==null&&this.plugins.splice(e,1)}}w.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:s}){return!s||s.status>=400?null:s}};w.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:s}){return s.redirected?await xe(s):s}};class Me{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:r=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new w({cacheName:j.getPrecacheName(e),plugins:[...t,new be({precacheController:this})],fallbackToNetwork:r}),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 r of e){typeof r=="string"?t.push(r):r&&r.revision===void 0&&t.push(r.url);const{cacheKey:a,url:i}=_e(r),n=typeof r!="string"&&r.revision?"reload":"default";if(this._urlsToCacheKeys.has(i)&&this._urlsToCacheKeys.get(i)!==a)throw new u("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(i),secondEntry:a});if(typeof r!="string"&&r.integrity){if(this._cacheKeysToIntegrities.has(a)&&this._cacheKeysToIntegrities.get(a)!==r.integrity)throw new u("add-to-cache-list-conflicting-integrities",{url:i});this._cacheKeysToIntegrities.set(a,r.integrity)}if(this._urlsToCacheKeys.set(i,a),this._urlsToCacheModes.set(i,n),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 H(e,async()=>{const t=new Re;this.strategy.plugins.push(t);for(const[i,n]of this._urlsToCacheKeys){const c=this._cacheKeysToIntegrities.get(n),o=this._urlsToCacheModes.get(i),l=new Request(i,{integrity:c,cache:o,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:n},request:l,event:e}))}const{updatedURLs:r,notUpdatedURLs:a}=t;return{updatedURLs:r,notUpdatedURLs:a}})}activate(e){return H(e,async()=>{const t=await self.caches.open(this.strategy.cacheName),r=await t.keys(),a=new Set(this._urlsToCacheKeys.values()),i=[];for(const n of r)a.has(n.url)||(await t.delete(n),i.push(n.url));return{deletedURLs:i}})}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,r=this.getCacheKeyForURL(t);if(r)return(await self.caches.open(this.strategy.cacheName)).match(r)}createHandlerBoundToURL(e){const t=this.getCacheKeyForURL(e);if(!t)throw new u("non-precached-url",{url:e});return r=>(r.request=new Request(e),r.params=Object.assign({cacheKey:t},r.params),this.strategy.handle(r))}}let T;const J=()=>(T||(T=new Me),T);try{self["workbox:routing:7.0.0"]&&_()}catch{}const z="GET",P=s=>s&&typeof s=="object"?s:{handle:s};let E=class{constructor(e,t,r=z){this.handler=P(t),this.match=e,this.method=r}setCatchHandler(e){this.catchHandler=P(e)}},Te=class extends E{constructor(e,t,r){const a=({url:i})=>{const n=e.exec(i.href);if(n&&!(i.origin!==location.origin&&n.index!==0))return n.slice(1)};super(a,t,r)}},Oe=class{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,r=this.handleRequest({request:t,event:e});r&&e.respondWith(r)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,r=Promise.all(t.urlsToCache.map(a=>{typeof a=="string"&&(a=[a]);const i=new Request(...a);return this.handleRequest({request:i,event:e})}));e.waitUntil(r),e.ports&&e.ports[0]&&r.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const r=new URL(e.url,location.href);if(!r.protocol.startsWith("http"))return;const a=r.origin===location.origin,{params:i,route:n}=this.findMatchingRoute({event:t,request:e,sameOrigin:a,url:r});let c=n&&n.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let l;try{l=c.handle({url:r,request:e,event:t,params:i})}catch(h){l=Promise.reject(h)}const f=n&&n.catchHandler;return l instanceof Promise&&(this._catchHandler||f)&&(l=l.catch(async h=>{if(f)try{return await f.handle({url:r,request:e,event:t,params:i})}catch(R){R instanceof Error&&(h=R)}if(this._catchHandler)return this._catchHandler.handle({url:r,request:e,event:t});throw h})),l}findMatchingRoute({url:e,sameOrigin:t,request:r,event:a}){const i=this._routes.get(r.method)||[];for(const n of i){let c;const o=n.match({url:e,sameOrigin:t,request:r,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:n,params:c}}return{}}setDefaultHandler(e,t=z){this._defaultHandlerMap.set(t,P(e))}setCatchHandler(e){this._catchHandler=P(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 u("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 u("unregister-route-route-not-registered")}},C;const Se=()=>(C||(C=new Oe,C.addFetchListener(),C.addCacheListener()),C);function Ae(s,e,t){let r;if(typeof s=="string"){const i=new URL(s,location.href),n=({url:c})=>c.href===i.href;r=new E(n,e,t)}else if(s instanceof RegExp)r=new Te(s,e,t);else if(typeof s=="function")r=new E(s,e,t);else if(s instanceof E)r=s;else throw new u("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return Se().registerRoute(r),r}function Ke(s,e=[]){for(const t of[...s.searchParams.keys()])e.some(r=>r.test(t))&&s.searchParams.delete(t);return s}function*Ie(s,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:t="index.html",cleanURLs:r=!0,urlManipulation:a}={}){const i=new URL(s,location.href);i.hash="",yield i.href;const n=Ke(i,e);if(yield n.href,t&&n.pathname.endsWith("/")){const c=new URL(n.href);c.pathname+=t,yield c.href}if(r){const c=new URL(n.href);c.pathname+=".html",yield c.href}if(a){const c=a({url:i});for(const o of c)yield o.href}}class We extends E{constructor(e,t){const r=({request:a})=>{const i=e.getURLsToCacheKeys();for(const n of Ie(a.url,t)){const c=i.get(n);if(c){const o=e.getIntegrityForCacheKey(c);return{cacheKey:c,integrity:o}}}};super(r,e.strategy)}}function je(s){const e=J(),t=new We(e,s);Ae(t)}function $e(s){J().precache(s)}function qe(s,e){$e(s),je(e)}try{self["workbox:core:7.0.0"]&&_()}catch{}const He=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},Be=He;class Fe extends Error{constructor(e,t){const r=Be(e,t);super(r),this.name=e,this.details=t}}function X(s){s.then(()=>{})}const Ve=(s,e)=>e.some(t=>s instanceof t);let F,V;function Ge(){return F||(F=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Qe(){return V||(V=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const Y=new WeakMap,I=new WeakMap,Z=new WeakMap,O=new WeakMap,$=new WeakMap;function Je(s){const e=new Promise((t,r)=>{const a=()=>{s.removeEventListener("success",i),s.removeEventListener("error",n)},i=()=>{t(m(s.result)),a()},n=()=>{r(s.error),a()};s.addEventListener("success",i),s.addEventListener("error",n)});return e.then(t=>{t instanceof IDBCursor&&Y.set(t,s)}).catch(()=>{}),$.set(e,s),e}function ze(s){if(I.has(s))return;const e=new Promise((t,r)=>{const a=()=>{s.removeEventListener("complete",i),s.removeEventListener("error",n),s.removeEventListener("abort",n)},i=()=>{t(),a()},n=()=>{r(s.error||new DOMException("AbortError","AbortError")),a()};s.addEventListener("complete",i),s.addEventListener("error",n),s.addEventListener("abort",n)});I.set(s,e)}let W={get(s,e,t){if(s instanceof IDBTransaction){if(e==="done")return I.get(s);if(e==="objectStoreNames")return s.objectStoreNames||Z.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 Xe(s){W=s(W)}function Ye(s){return s===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...t){const r=s.call(S(this),e,...t);return Z.set(r,e.sort?e.sort():[e]),m(r)}:Qe().includes(s)?function(...e){return s.apply(S(this),e),m(Y.get(this))}:function(...e){return m(s.apply(S(this),e))}}function Ze(s){return typeof s=="function"?Ye(s):(s instanceof IDBTransaction&&ze(s),Ve(s,Ge())?new Proxy(s,W):s)}function m(s){if(s instanceof IDBRequest)return Je(s);if(O.has(s))return O.get(s);const e=Ze(s);return e!==s&&(O.set(s,e),$.set(e,s)),e}const S=s=>$.get(s);function et(s,e,{blocked:t,upgrade:r,blocking:a,terminated:i}={}){const n=indexedDB.open(s,e),c=m(n);return r&&n.addEventListener("upgradeneeded",o=>{r(m(n.result),o.oldVersion,o.newVersion,m(n.transaction),o)}),t&&n.addEventListener("blocked",o=>t(o.oldVersion,o.newVersion,o)),c.then(o=>{i&&o.addEventListener("close",()=>i()),a&&o.addEventListener("versionchange",l=>a(l.oldVersion,l.newVersion,l))}).catch(()=>{}),c}function tt(s,{blocked:e}={}){const t=indexedDB.deleteDatabase(s);return e&&t.addEventListener("blocked",r=>e(r.oldVersion,r)),m(t).then(()=>{})}const st=["get","getKey","getAll","getAllKeys","count"],rt=["put","add","delete","clear"],A=new Map;function G(s,e){if(!(s instanceof IDBDatabase&&!(e in s)&&typeof e=="string"))return;if(A.get(e))return A.get(e);const t=e.replace(/FromIndex$/,""),r=e!==t,a=rt.includes(t);if(!(t in(r?IDBIndex:IDBObjectStore).prototype)||!(a||st.includes(t)))return;const i=async function(n,...c){const o=this.transaction(n,a?"readwrite":"readonly");let l=o.store;return r&&(l=l.index(c.shift())),(await Promise.all([l[t](...c),a&&o.done]))[0]};return A.set(e,i),i}Xe(s=>({...s,get:(e,t,r)=>G(e,t)||s.get(e,t,r),has:(e,t)=>!!G(e,t)||s.has(e,t)}));try{self["workbox:expiration:7.0.0"]&&_()}catch{}const at="workbox-expiration",x="cache-entries",Q=s=>{const e=new URL(s,location.href);return e.hash="",e.href};class nt{constructor(e){this._db=null,this._cacheName=e}_upgradeDb(e){const t=e.createObjectStore(x,{keyPath:"id"});t.createIndex("cacheName","cacheName",{unique:!1}),t.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&tt(this._cacheName)}async setTimestamp(e,t){e=Q(e);const r={url:e,timestamp:t,cacheName:this._cacheName,id:this._getId(e)},i=(await this.getDb()).transaction(x,"readwrite",{durability:"relaxed"});await i.store.put(r),await i.done}async getTimestamp(e){const r=await(await this.getDb()).get(x,this._getId(e));return r==null?void 0:r.timestamp}async expireEntries(e,t){const r=await this.getDb();let a=await r.transaction(x).store.index("timestamp").openCursor(null,"prev");const i=[];let n=0;for(;a;){const o=a.value;o.cacheName===this._cacheName&&(e&&o.timestamp<e||t&&n>=t?i.push(a.value):n++),a=await a.continue()}const c=[];for(const o of i)await r.delete(x,o.id),c.push(o.url);return c}_getId(e){return this._cacheName+"|"+Q(e)}async getDb(){return this._db||(this._db=await et(at,1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class it{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 nt(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),r=await self.caches.open(this._cacheName);for(const a of t)await r.delete(a,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,X(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),r=Date.now()-this._maxAgeSeconds*1e3;return t!==void 0?t<r:!0}else return!1}async delete(){this._rerunRequested=!1,await this._timestampModel.expireEntries(1/0)}}const g={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},K=s=>[g.prefix,s,g.suffix].filter(e=>e&&e.length>0).join("-"),ct=s=>{for(const e of Object.keys(g))s(e)},ot={updateDetails:s=>{ct(e=>{typeof s[e]=="string"&&(g[e]=s[e])})},getGoogleAnalyticsName:s=>s||K(g.googleAnalytics),getPrecacheName:s=>s||K(g.precache),getPrefix:()=>g.prefix,getRuntimeName:s=>s||K(g.runtime),getSuffix:()=>g.suffix},lt=new Set;function ht(s){lt.add(s)}class ut{constructor(e={}){this.cachedResponseWillBeUsed=async({event:t,request:r,cacheName:a,cachedResponse:i})=>{if(!i)return null;const n=this._isResponseDateFresh(i),c=this._getCacheExpiration(a);X(c.expireEntries());const o=c.updateTimestamp(r.url);if(t)try{t.waitUntil(o)}catch{}return n?i:null},this.cacheDidUpdate=async({cacheName:t,request:r})=>{const a=this._getCacheExpiration(t);await a.updateTimestamp(r.url),await a.expireEntries()},this._config=e,this._maxAgeSeconds=e.maxAgeSeconds,this._cacheExpirations=new Map,e.purgeOnQuotaError&&ht(()=>this.deleteCacheAndMetadata())}_getCacheExpiration(e){if(e===ot.getRuntimeName())throw new Fe("expire-custom-caches-only");let t=this._cacheExpirations.get(e);return t||(t=new it(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 r=Date.now();return t>=r-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:routing:7.0.0"]&&_()}catch{}const ee="GET",v=s=>s&&typeof s=="object"?s:{handle:s};class L{constructor(e,t,r=ee){this.handler=v(t),this.match=e,this.method=r}setCatchHandler(e){this.catchHandler=v(e)}}class ft extends L{constructor(e,t,r){const a=({url:i})=>{const n=e.exec(i.href);if(n&&!(i.origin!==location.origin&&n.index!==0))return n.slice(1)};super(a,t,r)}}class dt{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,r=this.handleRequest({request:t,event:e});r&&e.respondWith(r)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,r=Promise.all(t.urlsToCache.map(a=>{typeof a=="string"&&(a=[a]);const i=new Request(...a);return this.handleRequest({request:i,event:e})}));e.waitUntil(r),e.ports&&e.ports[0]&&r.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const r=new URL(e.url,location.href);if(!r.protocol.startsWith("http"))return;const a=r.origin===location.origin,{params:i,route:n}=this.findMatchingRoute({event:t,request:e,sameOrigin:a,url:r});let c=n&&n.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let l;try{l=c.handle({url:r,request:e,event:t,params:i})}catch(h){l=Promise.reject(h)}const f=n&&n.catchHandler;return l instanceof Promise&&(this._catchHandler||f)&&(l=l.catch(async h=>{if(f)try{return await f.handle({url:r,request:e,event:t,params:i})}catch(R){R instanceof Error&&(h=R)}if(this._catchHandler)return this._catchHandler.handle({url:r,request:e,event:t});throw h})),l}findMatchingRoute({url:e,sameOrigin:t,request:r,event:a}){const i=this._routes.get(r.method)||[];for(const n of i){let c;const o=n.match({url:e,sameOrigin:t,request:r,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:n,params:c}}return{}}setDefaultHandler(e,t=ee){this._defaultHandlerMap.set(t,v(e))}setCatchHandler(e){this._catchHandler=v(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 y("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 y("unregister-route-route-not-registered")}}let k;const pt=()=>(k||(k=new dt,k.addFetchListener(),k.addCacheListener()),k);function te(s,e,t){let r;if(typeof s=="string"){const i=new URL(s,location.href),n=({url:c})=>c.href===i.href;r=new L(n,e,t)}else if(s instanceof RegExp)r=new ft(s,e,t);else if(typeof s=="function")r=new L(s,e,t);else if(s instanceof L)r=s;else throw new y("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return pt().registerRoute(r),r}try{self["workbox:strategies:7.0.0"]&&_()}catch{}function U(s){return typeof s=="string"?new Request(s):s}class gt{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new he,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const r of this._plugins)this._pluginStateMap.set(r,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this;let r=U(e);if(r.mode==="navigate"&&t instanceof FetchEvent&&t.preloadResponse){const n=await t.preloadResponse;if(n)return n}const a=this.hasCallback("fetchDidFail")?r.clone():null;try{for(const n of this.iterateCallbacks("requestWillFetch"))r=await n({request:r.clone(),event:t})}catch(n){if(n instanceof Error)throw new y("plugin-error-request-will-fetch",{thrownErrorMessage:n.message})}const i=r.clone();try{let n;n=await fetch(r,r.mode==="navigate"?void 0:this._strategy.fetchOptions);for(const c of this.iterateCallbacks("fetchDidSucceed"))n=await c({event:t,request:i,response:n});return n}catch(n){throw a&&await this.runCallbacks("fetchDidFail",{error:n,event:t,originalRequest:a.clone(),request:i.clone()}),n}}async fetchAndCachePut(e){const t=await this.fetch(e),r=t.clone();return this.waitUntil(this.cachePut(e,r)),t}async cacheMatch(e){const t=U(e);let r;const{cacheName:a,matchOptions:i}=this._strategy,n=await this.getCacheKey(t,"read"),c=Object.assign(Object.assign({},i),{cacheName:a});r=await caches.match(n,c);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))r=await o({cacheName:a,matchOptions:i,cachedResponse:r,request:n,event:this.event})||void 0;return r}async cachePut(e,t){const r=U(e);await de(0);const a=await this.getCacheKey(r,"write");if(!t)throw new y("cache-put-with-no-response",{url:fe(a.url)});const i=await this._ensureResponseSafeToCache(t);if(!i)return!1;const{cacheName:n,matchOptions:c}=this._strategy,o=await self.caches.open(n),l=this.hasCallback("cacheDidUpdate"),f=l?await le(o,a.clone(),["__WB_REVISION__"],c):null;try{await o.put(a,l?i.clone():i)}catch(h){if(h instanceof Error)throw h.name==="QuotaExceededError"&&await ue(),h}for(const h of this.iterateCallbacks("cacheDidUpdate"))await h({cacheName:n,oldResponse:f,newResponse:i.clone(),request:a,event:this.event});return!0}async getCacheKey(e,t){const r=`${e.url} | ${t}`;if(!this._cacheKeys[r]){let a=e;for(const i of this.iterateCallbacks("cacheKeyWillBeUsed"))a=U(await i({mode:t,request:a,event:this.event,params:this.params}));this._cacheKeys[r]=a}return this._cacheKeys[r]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const r of this.iterateCallbacks(e))await r(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if(typeof t[e]=="function"){const r=this._pluginStateMap.get(t);yield i=>{const n=Object.assign(Object.assign({},i),{state:r});return t[e](n)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,r=!1;for(const a of this.iterateCallbacks("cacheWillUpdate"))if(t=await a({request:this.request,response:t,event:this.event})||void 0,r=!0,!t)break;return r||t&&t.status!==200&&(t=void 0),t}}class se{constructor(e={}){this.cacheName=oe.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,r=typeof e.request=="string"?new Request(e.request):e.request,a="params"in e?e.params:void 0,i=new gt(this,{event:t,request:r,params:a}),n=this._getResponse(i,r,t),c=this._awaitComplete(n,i,r,t);return[n,c]}async _getResponse(e,t,r){await e.runCallbacks("handlerWillStart",{event:r,request:t});let a;try{if(a=await this._handle(t,e),!a||a.type==="error")throw new y("no-response",{url:t.url})}catch(i){if(i instanceof Error){for(const n of e.iterateCallbacks("handlerDidError"))if(a=await n({error:i,event:r,request:t}),a)break}if(!a)throw i}for(const i of e.iterateCallbacks("handlerWillRespond"))a=await i({event:r,request:t,response:a});return a}async _awaitComplete(e,t,r,a){let i,n;try{i=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:a,request:r,response:i}),await t.doneWaiting()}catch(c){c instanceof Error&&(n=c)}if(await t.runCallbacks("handlerDidComplete",{event:a,request:r,response:i,error:n}),t.destroy(),n)throw n}}class mt extends se{async _handle(e,t){let r=await t.cacheMatch(e),a;if(!r)try{r=await t.fetchAndCachePut(e)}catch(i){i instanceof Error&&(a=i)}if(!r)throw new y("no-response",{url:e.url,error:a});return r}}const wt={cacheWillUpdate:async({response:s})=>s.status===200||s.status===0?s:null};class yt extends se{constructor(e={}){super(e),this.plugins.some(t=>"cacheWillUpdate"in t)||this.plugins.unshift(wt)}async _handle(e,t){const r=t.fetchAndCachePut(e).catch(()=>{});t.waitUntil(r);let a=await t.cacheMatch(e),i;if(!a)try{a=await r}catch(n){n instanceof Error&&(i=n)}if(!a)throw new y("no-response",{url:e.url,error:i});return a}}qe(([{"revision":null,"url":"assets/_createAggregator-BgG70oKG.js"},{"revision":null,"url":"assets/access-control-BP0rhxZ_.js"},{"revision":null,"url":"assets/actions-DsY16tuf.js"},{"revision":null,"url":"assets/add-component-core-C8hvHJq0.js"},{"revision":null,"url":"assets/add-component-core-D-IRi6XF.css"},{"revision":null,"url":"assets/add-resource-DZFTdNIy.js"},{"revision":null,"url":"assets/Add-WwBlcqNF.js"},{"revision":null,"url":"assets/addon-DUnQ9eC0.js"},{"revision":null,"url":"assets/analytics-Cym7YiQM.js"},{"revision":null,"url":"assets/api-C7qcY4XU.js"},{"revision":null,"url":"assets/ar-BAnh0kq-.js"},{"revision":null,"url":"assets/ar-DJ10cGfc.js"},{"revision":null,"url":"assets/ArrowDropDown-B6VSNrNX.js"},{"revision":null,"url":"assets/audit-logs-DtJdynVz.js"},{"revision":null,"url":"assets/base32-DZ5GWnEl.js"},{"revision":null,"url":"assets/branding-DEKXfpdd.js"},{"revision":null,"url":"assets/bundle-avatar-CtN88KlG.js"},{"revision":null,"url":"assets/button-CPeDg26t.js"},{"revision":null,"url":"assets/CheckCircle-n23HoB1l.js"},{"revision":null,"url":"assets/ChevronLeft-DV-sPxhr.js"},{"revision":null,"url":"assets/ChevronRight-UF0hSKpL.js"},{"revision":null,"url":"assets/click-to-copy-D-rDpTU1.js"},{"revision":null,"url":"assets/complete-DfhluUOU.js"},{"revision":null,"url":"assets/component-DET9TWBv.js"},{"revision":null,"url":"assets/config-Bh1NLHps.js"},{"revision":null,"url":"assets/config-Dx3rVqe3.js"},{"revision":null,"url":"assets/config-navigation-Cn0fwBBG.js"},{"revision":null,"url":"assets/config-space-CT9a0s7Q.js"},{"revision":null,"url":"assets/confirm-DhCXP8vW.js"},{"revision":null,"url":"assets/connect-CA2-olTo.js"},{"revision":null,"url":"assets/connect-GHQ2pLWc.js"},{"revision":null,"url":"assets/connect-to-kYFiSkqc.js"},{"revision":null,"url":"assets/content-layout-C8ThavEP.js"},{"revision":null,"url":"assets/dashboard-B3UhGh-u.js"},{"revision":null,"url":"assets/de-5ORoKwiw.js"},{"revision":null,"url":"assets/de-CYAy3iib.js"},{"revision":null,"url":"assets/DeleteOutline-1Utxk_IX.js"},{"revision":null,"url":"assets/did-address-B-umhomj.js"},{"revision":null,"url":"assets/domain-DzFcoe7i.js"},{"revision":null,"url":"assets/domain-list-C9eJrdcx.js"},{"revision":null,"url":"assets/Done-BbnQSLvu.js"},{"revision":null,"url":"assets/Download-DRJvwpLt.js"},{"revision":null,"url":"assets/EditIcon-DDucSncy.js"},{"revision":null,"url":"assets/email-BEr-8TYu.js"},{"revision":null,"url":"assets/Error-CL8m4Xu6.js"},{"revision":null,"url":"assets/es-Bn01DRSJ.js"},{"revision":null,"url":"assets/es-CWClvbjs.js"},{"revision":null,"url":"assets/exchange-passport-DGUT_ZCy.js"},{"revision":null,"url":"assets/form-text-input-E0Z0s35O.js"},{"revision":null,"url":"assets/format-error-C0Ke3VXF.js"},{"revision":null,"url":"assets/fr-CE8mlhdK.js"},{"revision":null,"url":"assets/fr-D3J0B-tk.js"},{"revision":null,"url":"assets/fuel-alylOU0b.js"},{"revision":null,"url":"assets/fullpage-DZPI7F_L.js"},{"revision":null,"url":"assets/get-safe-url-ByH0hntp.js"},{"revision":null,"url":"assets/get-safe-url-yHkHYeNB.js"},{"revision":null,"url":"assets/Google-CSKRQW0F.js"},{"revision":null,"url":"assets/hi-DdEYPkL3.js"},{"revision":null,"url":"assets/hi-DVuJdQme.js"},{"revision":null,"url":"assets/home-DG81Vlwd.js"},{"revision":null,"url":"assets/id-C6kfQsmT.js"},{"revision":null,"url":"assets/id-L6JUyxUh.js"},{"revision":null,"url":"assets/iframe-BB-pL0gd.js"},{"revision":null,"url":"assets/index-7gknQYQQ.js"},{"revision":null,"url":"assets/index-AgKpYdvC.css"},{"revision":null,"url":"assets/index-B-0OFwWF.js"},{"revision":null,"url":"assets/index-B8B9jSby.js"},{"revision":null,"url":"assets/index-BaA1-UNL.js"},{"revision":null,"url":"assets/index-BRPzwIuP.js"},{"revision":null,"url":"assets/index-CcsFwEG1.js"},{"revision":null,"url":"assets/index-CEyrfuix.js"},{"revision":null,"url":"assets/index-Cp3ZCh7o.js"},{"revision":null,"url":"assets/index-CU_Y2Ics.js"},{"revision":null,"url":"assets/index-CxWy6IEg.js"},{"revision":null,"url":"assets/index-CYh2QqLk.js"},{"revision":null,"url":"assets/index-D4PP6P2d.css"},{"revision":null,"url":"assets/index-DcfIKM1A.js"},{"revision":null,"url":"assets/index-DHmJ4NAw.js"},{"revision":null,"url":"assets/index-DjDooCTg.js"},{"revision":null,"url":"assets/index-Dk8-Ibsd.js"},{"revision":null,"url":"assets/index-DNd_40WG.js"},{"revision":null,"url":"assets/index-DoZ2YM4T.js"},{"revision":null,"url":"assets/index-DVYdq7IA.js"},{"revision":null,"url":"assets/index-e4kRKwa5.js"},{"revision":null,"url":"assets/index-jViTGvBx.js"},{"revision":null,"url":"assets/index-SrY9WLdy.js"},{"revision":null,"url":"assets/index-tDqjC_e2.js"},{"revision":null,"url":"assets/InfoOutlined-7hC78o3_.js"},{"revision":null,"url":"assets/invitation-BNOVM03D.js"},{"revision":null,"url":"assets/invite-CDXZxcmB.js"},{"revision":null,"url":"assets/isEmail-BWNRBSAy.js"},{"revision":null,"url":"assets/issue-passport-1v1d15DW.js"},{"revision":null,"url":"assets/item-DoetJFaA.js"},{"revision":null,"url":"assets/ja-C5orBePq.js"},{"revision":null,"url":"assets/ja-DN837plG.js"},{"revision":null,"url":"assets/keyboard-arrow-down-rounded-DadBVmpO.js"},{"revision":null,"url":"assets/ko-BeIurXFC.js"},{"revision":null,"url":"assets/ko-LU148n3o.js"},{"revision":null,"url":"assets/Launch-D9iyATKb.js"},{"revision":null,"url":"assets/launch-result-message-BEuCq9h1.js"},{"revision":null,"url":"assets/LaunchOutlined-D37WOXmf.js"},{"revision":null,"url":"assets/layout-PlCf3Rtw.js"},{"revision":null,"url":"assets/list-header-DdT6PG1D.js"},{"revision":null,"url":"assets/localization-Cm0dNj2B.js"},{"revision":null,"url":"assets/LockIcon-BIlUQ2kd.js"},{"revision":null,"url":"assets/log-B5iPDWZ_.js"},{"revision":null,"url":"assets/log-D33dFtt_.css"},{"revision":null,"url":"assets/login-DvM79Mfd.js"},{"revision":null,"url":"assets/login-oauth-callback-CO19RzCL.js"},{"revision":null,"url":"assets/logo-uploader-CNnYMPxh.js"},{"revision":null,"url":"assets/Loop-Clmz6DRv.js"},{"revision":null,"url":"assets/lost-passport-DsG6aS5u.js"},{"revision":null,"url":"assets/lottie-react.esm-CHpXrEmm.js"},{"revision":null,"url":"assets/MoreHoriz-CtnQ7uqf.js"},{"revision":null,"url":"assets/open-window-Km_9DMrz.js"},{"revision":null,"url":"assets/overview-Dc_26DuW.js"},{"revision":null,"url":"assets/page-header-B3m4UCOV.js"},{"revision":null,"url":"assets/permission-C7OYX2OJ.js"},{"revision":null,"url":"assets/PlayArrow-IJdeSlbo.js"},{"revision":null,"url":"assets/preferences-Ci4dS6YC.js"},{"revision":null,"url":"assets/pt-BED0VqHV.js"},{"revision":null,"url":"assets/pt-CSZkEO8C.js"},{"revision":null,"url":"assets/publish-resource-BumbS1yx.js"},{"revision":null,"url":"assets/QuestionMarkCircle-2fDrHopp.js"},{"revision":null,"url":"assets/raf-schd.esm-Cxhj8umC.js"},{"revision":null,"url":"assets/react-beautiful-dnd.esm-D6d5Zfr8.js"},{"revision":null,"url":"assets/relative-time-BHAJs1ji.js"},{"revision":null,"url":"assets/ru-B5wj2v7e.js"},{"revision":null,"url":"assets/ru-CPz1NiGU.js"},{"revision":null,"url":"assets/sdk-0UwYHc-i.js"},{"revision":null,"url":"assets/ServerLogo-DsurTeGQ.js"},{"revision":null,"url":"assets/session-UImnJahL.js"},{"revision":null,"url":"assets/setup-LHpIYQbe.js"},{"revision":null,"url":"assets/shorten-label-CKNjZbhF.js"},{"revision":null,"url":"assets/simple-select-BMYrmYam.js"},{"revision":null,"url":"assets/slicedToArray-BPEJIbVV.js"},{"revision":null,"url":"assets/start-DxAs4dHz.js"},{"revision":null,"url":"assets/step-actions-FdD-71wr.js"},{"revision":null,"url":"assets/studio-g2uaz9WG.js"},{"revision":null,"url":"assets/switch-control-BMO1MVhi.js"},{"revision":null,"url":"assets/th-CKxPcxWD.js"},{"revision":null,"url":"assets/th-DN9Th20c.js"},{"revision":null,"url":"assets/toUpper-DUImrX4s.js"},{"revision":null,"url":"assets/transfer-Bq5kjW_S.js"},{"revision":null,"url":"assets/unsubscribe-DUmfJRPR.js"},{"revision":null,"url":"assets/use-mobile-DOkke39c.js"},{"revision":null,"url":"assets/use-passport-id-B-b-_oYF.js"},{"revision":null,"url":"assets/useAsync-BfmmMB4I.js"},{"revision":null,"url":"assets/useAsyncRetry-m5oMMmVh.js"},{"revision":null,"url":"assets/useLocalStorage-ganqTrK6.js"},{"revision":null,"url":"assets/user-center-CYnDNkIf.js"},{"revision":null,"url":"assets/useSetState-Crt4S51m.js"},{"revision":null,"url":"assets/util-CmcVraD_.js"},{"revision":null,"url":"assets/vendor-arcblock-DhgPdlEj.css"},{"revision":null,"url":"assets/vendor-arcblock-Dn16DH88.js"},{"revision":null,"url":"assets/vendor-hooks-DzETutIU.js"},{"revision":null,"url":"assets/vendor-mui-core-COxJgW9_.js"},{"revision":null,"url":"assets/vendor-mui-x-Be0GxtOJ.js"},{"revision":null,"url":"assets/vendor-react-D-afvo_7.js"},{"revision":null,"url":"assets/vendor-utils-CV7RLr7b.js"},{"revision":null,"url":"assets/vi-ChReTICx.js"},{"revision":null,"url":"assets/vi-DsheN6LQ.js"},{"revision":null,"url":"assets/ViewList-B-HVv7GT.js"},{"revision":null,"url":"assets/wrap-locale-DTO386nY.js"},{"revision":null,"url":"assets/zh-6fa1T5uL.js"},{"revision":null,"url":"assets/zh-BJMvTFip.js"},{"revision":null,"url":"assets/zh-tw-B_su4eMW.js"},{"revision":null,"url":"assets/zh-tw-DkLkQUwb.js"},{"revision":"148f505ec6fb20a98318e4474d87c83f","url":"index.html"},{"revision":"07a287e43ae8e959a20d6b367a581667","url":"router-template-styles/styles.css"},{"revision":"07aabfa34643634b7f03ed7014af901c","url":"share/shared-service-worker.js"},{"revision":"19d4c6a99cb8ed11e68209a612e7ec44","url":"share/workbox-v7.3.0/workbox-background-sync.prod.js"},{"revision":"d9d631014689e2b4b0e343c129671749","url":"share/workbox-v7.3.0/workbox-broadcast-update.prod.js"},{"revision":"bdb39ceb7380dcb1483c543e8856242b","url":"share/workbox-v7.3.0/workbox-cacheable-response.prod.js"},{"revision":"b84dd900eb18e8bc842666bbb740604e","url":"share/workbox-v7.3.0/workbox-core.prod.js"},{"revision":"c582a61c037234d8283eea0b97693b1b","url":"share/workbox-v7.3.0/workbox-expiration.prod.js"},{"revision":"866ba7d03bd871fa990976e4db312ab3","url":"share/workbox-v7.3.0/workbox-navigation-preload.prod.js"},{"revision":"0c55bb581ea7ce5ebfac1ce95cdda21f","url":"share/workbox-v7.3.0/workbox-offline-ga.prod.js"},{"revision":"770d183cf1f189a1ceb11ba8b5d808fa","url":"share/workbox-v7.3.0/workbox-precaching.prod.js"},{"revision":"295decbe1eb3b073a2a8d67cfbdf5692","url":"share/workbox-v7.3.0/workbox-range-requests.prod.js"},{"revision":"0bcb90677f3508ebc8a3571d14194478","url":"share/workbox-v7.3.0/workbox-recipes.prod.js"},{"revision":"4af96b70b2d20b041e2edd7ef1a8ef27","url":"share/workbox-v7.3.0/workbox-routing.prod.js"},{"revision":"c78c21b4058a1134ad3e12286c57cb2f","url":"share/workbox-v7.3.0/workbox-strategies.prod.js"},{"revision":"7eeb2d820d409221e076d31951fdcf79","url":"share/workbox-v7.3.0/workbox-streams.prod.js"},{"revision":"aa7368887577b9719a46b585d5dcc7a5","url":"share/workbox-v7.3.0/workbox-sw.js"},{"revision":"e768668db4eeefde11b58542900ab2ad","url":"share/workbox-v7.3.0/workbox-window.prod.umd.js"}]||[]).filter(s=>s.url!=="/"&&!s.url.includes("index.html")));pe();self.addEventListener("activate",()=>{console.log("Service Worker activated")});self.addEventListener("install",s=>{console.log("Service Worker installed"),s.waitUntil(self.skipWaiting())});const re=s=>!!(s.method!=="GET"||s.url.includes("/api")||s.url.includes("__meta__.js")||s.url.includes("__blocklet__.js"));te(({request:s})=>re(s)?!1:s.url.includes("/static/"),new mt({cacheName:`static-${self.registration.scope}`,plugins:[new ut({maxEntries:200})]}));te(({request:s})=>re(s)?!1:s.url.includes("/images/")||s.url.includes("/router/-template-styles/"),new yt({cacheName:`StaleWhileRevalidate-${self.registration.scope}`}));
2
+ This is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(c)}}}install(e){return H(e,async()=>{const t=new Re;this.strategy.plugins.push(t);for(const[i,n]of this._urlsToCacheKeys){const c=this._cacheKeysToIntegrities.get(n),o=this._urlsToCacheModes.get(i),l=new Request(i,{integrity:c,cache:o,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:n},request:l,event:e}))}const{updatedURLs:r,notUpdatedURLs:a}=t;return{updatedURLs:r,notUpdatedURLs:a}})}activate(e){return H(e,async()=>{const t=await self.caches.open(this.strategy.cacheName),r=await t.keys(),a=new Set(this._urlsToCacheKeys.values()),i=[];for(const n of r)a.has(n.url)||(await t.delete(n),i.push(n.url));return{deletedURLs:i}})}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,r=this.getCacheKeyForURL(t);if(r)return(await self.caches.open(this.strategy.cacheName)).match(r)}createHandlerBoundToURL(e){const t=this.getCacheKeyForURL(e);if(!t)throw new u("non-precached-url",{url:e});return r=>(r.request=new Request(e),r.params=Object.assign({cacheKey:t},r.params),this.strategy.handle(r))}}let T;const J=()=>(T||(T=new Me),T);try{self["workbox:routing:7.0.0"]&&_()}catch{}const z="GET",P=s=>s&&typeof s=="object"?s:{handle:s};let E=class{constructor(e,t,r=z){this.handler=P(t),this.match=e,this.method=r}setCatchHandler(e){this.catchHandler=P(e)}},Te=class extends E{constructor(e,t,r){const a=({url:i})=>{const n=e.exec(i.href);if(n&&!(i.origin!==location.origin&&n.index!==0))return n.slice(1)};super(a,t,r)}},Oe=class{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,r=this.handleRequest({request:t,event:e});r&&e.respondWith(r)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,r=Promise.all(t.urlsToCache.map(a=>{typeof a=="string"&&(a=[a]);const i=new Request(...a);return this.handleRequest({request:i,event:e})}));e.waitUntil(r),e.ports&&e.ports[0]&&r.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const r=new URL(e.url,location.href);if(!r.protocol.startsWith("http"))return;const a=r.origin===location.origin,{params:i,route:n}=this.findMatchingRoute({event:t,request:e,sameOrigin:a,url:r});let c=n&&n.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let l;try{l=c.handle({url:r,request:e,event:t,params:i})}catch(h){l=Promise.reject(h)}const f=n&&n.catchHandler;return l instanceof Promise&&(this._catchHandler||f)&&(l=l.catch(async h=>{if(f)try{return await f.handle({url:r,request:e,event:t,params:i})}catch(R){R instanceof Error&&(h=R)}if(this._catchHandler)return this._catchHandler.handle({url:r,request:e,event:t});throw h})),l}findMatchingRoute({url:e,sameOrigin:t,request:r,event:a}){const i=this._routes.get(r.method)||[];for(const n of i){let c;const o=n.match({url:e,sameOrigin:t,request:r,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:n,params:c}}return{}}setDefaultHandler(e,t=z){this._defaultHandlerMap.set(t,P(e))}setCatchHandler(e){this._catchHandler=P(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 u("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 u("unregister-route-route-not-registered")}},C;const Se=()=>(C||(C=new Oe,C.addFetchListener(),C.addCacheListener()),C);function Ae(s,e,t){let r;if(typeof s=="string"){const i=new URL(s,location.href),n=({url:c})=>c.href===i.href;r=new E(n,e,t)}else if(s instanceof RegExp)r=new Te(s,e,t);else if(typeof s=="function")r=new E(s,e,t);else if(s instanceof E)r=s;else throw new u("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return Se().registerRoute(r),r}function Ke(s,e=[]){for(const t of[...s.searchParams.keys()])e.some(r=>r.test(t))&&s.searchParams.delete(t);return s}function*Ie(s,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:t="index.html",cleanURLs:r=!0,urlManipulation:a}={}){const i=new URL(s,location.href);i.hash="",yield i.href;const n=Ke(i,e);if(yield n.href,t&&n.pathname.endsWith("/")){const c=new URL(n.href);c.pathname+=t,yield c.href}if(r){const c=new URL(n.href);c.pathname+=".html",yield c.href}if(a){const c=a({url:i});for(const o of c)yield o.href}}class We extends E{constructor(e,t){const r=({request:a})=>{const i=e.getURLsToCacheKeys();for(const n of Ie(a.url,t)){const c=i.get(n);if(c){const o=e.getIntegrityForCacheKey(c);return{cacheKey:c,integrity:o}}}};super(r,e.strategy)}}function je(s){const e=J(),t=new We(e,s);Ae(t)}function $e(s){J().precache(s)}function qe(s,e){$e(s),je(e)}try{self["workbox:core:7.0.0"]&&_()}catch{}const He=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},Be=He;class Fe extends Error{constructor(e,t){const r=Be(e,t);super(r),this.name=e,this.details=t}}function X(s){s.then(()=>{})}const Ve=(s,e)=>e.some(t=>s instanceof t);let F,V;function Ge(){return F||(F=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Qe(){return V||(V=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const Y=new WeakMap,I=new WeakMap,Z=new WeakMap,O=new WeakMap,$=new WeakMap;function Je(s){const e=new Promise((t,r)=>{const a=()=>{s.removeEventListener("success",i),s.removeEventListener("error",n)},i=()=>{t(m(s.result)),a()},n=()=>{r(s.error),a()};s.addEventListener("success",i),s.addEventListener("error",n)});return e.then(t=>{t instanceof IDBCursor&&Y.set(t,s)}).catch(()=>{}),$.set(e,s),e}function ze(s){if(I.has(s))return;const e=new Promise((t,r)=>{const a=()=>{s.removeEventListener("complete",i),s.removeEventListener("error",n),s.removeEventListener("abort",n)},i=()=>{t(),a()},n=()=>{r(s.error||new DOMException("AbortError","AbortError")),a()};s.addEventListener("complete",i),s.addEventListener("error",n),s.addEventListener("abort",n)});I.set(s,e)}let W={get(s,e,t){if(s instanceof IDBTransaction){if(e==="done")return I.get(s);if(e==="objectStoreNames")return s.objectStoreNames||Z.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 Xe(s){W=s(W)}function Ye(s){return s===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...t){const r=s.call(S(this),e,...t);return Z.set(r,e.sort?e.sort():[e]),m(r)}:Qe().includes(s)?function(...e){return s.apply(S(this),e),m(Y.get(this))}:function(...e){return m(s.apply(S(this),e))}}function Ze(s){return typeof s=="function"?Ye(s):(s instanceof IDBTransaction&&ze(s),Ve(s,Ge())?new Proxy(s,W):s)}function m(s){if(s instanceof IDBRequest)return Je(s);if(O.has(s))return O.get(s);const e=Ze(s);return e!==s&&(O.set(s,e),$.set(e,s)),e}const S=s=>$.get(s);function et(s,e,{blocked:t,upgrade:r,blocking:a,terminated:i}={}){const n=indexedDB.open(s,e),c=m(n);return r&&n.addEventListener("upgradeneeded",o=>{r(m(n.result),o.oldVersion,o.newVersion,m(n.transaction),o)}),t&&n.addEventListener("blocked",o=>t(o.oldVersion,o.newVersion,o)),c.then(o=>{i&&o.addEventListener("close",()=>i()),a&&o.addEventListener("versionchange",l=>a(l.oldVersion,l.newVersion,l))}).catch(()=>{}),c}function tt(s,{blocked:e}={}){const t=indexedDB.deleteDatabase(s);return e&&t.addEventListener("blocked",r=>e(r.oldVersion,r)),m(t).then(()=>{})}const st=["get","getKey","getAll","getAllKeys","count"],rt=["put","add","delete","clear"],A=new Map;function G(s,e){if(!(s instanceof IDBDatabase&&!(e in s)&&typeof e=="string"))return;if(A.get(e))return A.get(e);const t=e.replace(/FromIndex$/,""),r=e!==t,a=rt.includes(t);if(!(t in(r?IDBIndex:IDBObjectStore).prototype)||!(a||st.includes(t)))return;const i=async function(n,...c){const o=this.transaction(n,a?"readwrite":"readonly");let l=o.store;return r&&(l=l.index(c.shift())),(await Promise.all([l[t](...c),a&&o.done]))[0]};return A.set(e,i),i}Xe(s=>({...s,get:(e,t,r)=>G(e,t)||s.get(e,t,r),has:(e,t)=>!!G(e,t)||s.has(e,t)}));try{self["workbox:expiration:7.0.0"]&&_()}catch{}const at="workbox-expiration",x="cache-entries",Q=s=>{const e=new URL(s,location.href);return e.hash="",e.href};class nt{constructor(e){this._db=null,this._cacheName=e}_upgradeDb(e){const t=e.createObjectStore(x,{keyPath:"id"});t.createIndex("cacheName","cacheName",{unique:!1}),t.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&tt(this._cacheName)}async setTimestamp(e,t){e=Q(e);const r={url:e,timestamp:t,cacheName:this._cacheName,id:this._getId(e)},i=(await this.getDb()).transaction(x,"readwrite",{durability:"relaxed"});await i.store.put(r),await i.done}async getTimestamp(e){const r=await(await this.getDb()).get(x,this._getId(e));return r==null?void 0:r.timestamp}async expireEntries(e,t){const r=await this.getDb();let a=await r.transaction(x).store.index("timestamp").openCursor(null,"prev");const i=[];let n=0;for(;a;){const o=a.value;o.cacheName===this._cacheName&&(e&&o.timestamp<e||t&&n>=t?i.push(a.value):n++),a=await a.continue()}const c=[];for(const o of i)await r.delete(x,o.id),c.push(o.url);return c}_getId(e){return this._cacheName+"|"+Q(e)}async getDb(){return this._db||(this._db=await et(at,1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class it{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 nt(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),r=await self.caches.open(this._cacheName);for(const a of t)await r.delete(a,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,X(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),r=Date.now()-this._maxAgeSeconds*1e3;return t!==void 0?t<r:!0}else return!1}async delete(){this._rerunRequested=!1,await this._timestampModel.expireEntries(1/0)}}const g={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},K=s=>[g.prefix,s,g.suffix].filter(e=>e&&e.length>0).join("-"),ct=s=>{for(const e of Object.keys(g))s(e)},ot={updateDetails:s=>{ct(e=>{typeof s[e]=="string"&&(g[e]=s[e])})},getGoogleAnalyticsName:s=>s||K(g.googleAnalytics),getPrecacheName:s=>s||K(g.precache),getPrefix:()=>g.prefix,getRuntimeName:s=>s||K(g.runtime),getSuffix:()=>g.suffix},lt=new Set;function ht(s){lt.add(s)}class ut{constructor(e={}){this.cachedResponseWillBeUsed=async({event:t,request:r,cacheName:a,cachedResponse:i})=>{if(!i)return null;const n=this._isResponseDateFresh(i),c=this._getCacheExpiration(a);X(c.expireEntries());const o=c.updateTimestamp(r.url);if(t)try{t.waitUntil(o)}catch{}return n?i:null},this.cacheDidUpdate=async({cacheName:t,request:r})=>{const a=this._getCacheExpiration(t);await a.updateTimestamp(r.url),await a.expireEntries()},this._config=e,this._maxAgeSeconds=e.maxAgeSeconds,this._cacheExpirations=new Map,e.purgeOnQuotaError&&ht(()=>this.deleteCacheAndMetadata())}_getCacheExpiration(e){if(e===ot.getRuntimeName())throw new Fe("expire-custom-caches-only");let t=this._cacheExpirations.get(e);return t||(t=new it(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 r=Date.now();return t>=r-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:routing:7.0.0"]&&_()}catch{}const ee="GET",v=s=>s&&typeof s=="object"?s:{handle:s};class L{constructor(e,t,r=ee){this.handler=v(t),this.match=e,this.method=r}setCatchHandler(e){this.catchHandler=v(e)}}class ft extends L{constructor(e,t,r){const a=({url:i})=>{const n=e.exec(i.href);if(n&&!(i.origin!==location.origin&&n.index!==0))return n.slice(1)};super(a,t,r)}}class dt{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,r=this.handleRequest({request:t,event:e});r&&e.respondWith(r)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,r=Promise.all(t.urlsToCache.map(a=>{typeof a=="string"&&(a=[a]);const i=new Request(...a);return this.handleRequest({request:i,event:e})}));e.waitUntil(r),e.ports&&e.ports[0]&&r.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const r=new URL(e.url,location.href);if(!r.protocol.startsWith("http"))return;const a=r.origin===location.origin,{params:i,route:n}=this.findMatchingRoute({event:t,request:e,sameOrigin:a,url:r});let c=n&&n.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let l;try{l=c.handle({url:r,request:e,event:t,params:i})}catch(h){l=Promise.reject(h)}const f=n&&n.catchHandler;return l instanceof Promise&&(this._catchHandler||f)&&(l=l.catch(async h=>{if(f)try{return await f.handle({url:r,request:e,event:t,params:i})}catch(R){R instanceof Error&&(h=R)}if(this._catchHandler)return this._catchHandler.handle({url:r,request:e,event:t});throw h})),l}findMatchingRoute({url:e,sameOrigin:t,request:r,event:a}){const i=this._routes.get(r.method)||[];for(const n of i){let c;const o=n.match({url:e,sameOrigin:t,request:r,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:n,params:c}}return{}}setDefaultHandler(e,t=ee){this._defaultHandlerMap.set(t,v(e))}setCatchHandler(e){this._catchHandler=v(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 y("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 y("unregister-route-route-not-registered")}}let k;const pt=()=>(k||(k=new dt,k.addFetchListener(),k.addCacheListener()),k);function te(s,e,t){let r;if(typeof s=="string"){const i=new URL(s,location.href),n=({url:c})=>c.href===i.href;r=new L(n,e,t)}else if(s instanceof RegExp)r=new ft(s,e,t);else if(typeof s=="function")r=new L(s,e,t);else if(s instanceof L)r=s;else throw new y("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return pt().registerRoute(r),r}try{self["workbox:strategies:7.0.0"]&&_()}catch{}function U(s){return typeof s=="string"?new Request(s):s}class gt{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new he,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const r of this._plugins)this._pluginStateMap.set(r,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this;let r=U(e);if(r.mode==="navigate"&&t instanceof FetchEvent&&t.preloadResponse){const n=await t.preloadResponse;if(n)return n}const a=this.hasCallback("fetchDidFail")?r.clone():null;try{for(const n of this.iterateCallbacks("requestWillFetch"))r=await n({request:r.clone(),event:t})}catch(n){if(n instanceof Error)throw new y("plugin-error-request-will-fetch",{thrownErrorMessage:n.message})}const i=r.clone();try{let n;n=await fetch(r,r.mode==="navigate"?void 0:this._strategy.fetchOptions);for(const c of this.iterateCallbacks("fetchDidSucceed"))n=await c({event:t,request:i,response:n});return n}catch(n){throw a&&await this.runCallbacks("fetchDidFail",{error:n,event:t,originalRequest:a.clone(),request:i.clone()}),n}}async fetchAndCachePut(e){const t=await this.fetch(e),r=t.clone();return this.waitUntil(this.cachePut(e,r)),t}async cacheMatch(e){const t=U(e);let r;const{cacheName:a,matchOptions:i}=this._strategy,n=await this.getCacheKey(t,"read"),c=Object.assign(Object.assign({},i),{cacheName:a});r=await caches.match(n,c);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))r=await o({cacheName:a,matchOptions:i,cachedResponse:r,request:n,event:this.event})||void 0;return r}async cachePut(e,t){const r=U(e);await de(0);const a=await this.getCacheKey(r,"write");if(!t)throw new y("cache-put-with-no-response",{url:fe(a.url)});const i=await this._ensureResponseSafeToCache(t);if(!i)return!1;const{cacheName:n,matchOptions:c}=this._strategy,o=await self.caches.open(n),l=this.hasCallback("cacheDidUpdate"),f=l?await le(o,a.clone(),["__WB_REVISION__"],c):null;try{await o.put(a,l?i.clone():i)}catch(h){if(h instanceof Error)throw h.name==="QuotaExceededError"&&await ue(),h}for(const h of this.iterateCallbacks("cacheDidUpdate"))await h({cacheName:n,oldResponse:f,newResponse:i.clone(),request:a,event:this.event});return!0}async getCacheKey(e,t){const r=`${e.url} | ${t}`;if(!this._cacheKeys[r]){let a=e;for(const i of this.iterateCallbacks("cacheKeyWillBeUsed"))a=U(await i({mode:t,request:a,event:this.event,params:this.params}));this._cacheKeys[r]=a}return this._cacheKeys[r]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const r of this.iterateCallbacks(e))await r(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if(typeof t[e]=="function"){const r=this._pluginStateMap.get(t);yield i=>{const n=Object.assign(Object.assign({},i),{state:r});return t[e](n)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,r=!1;for(const a of this.iterateCallbacks("cacheWillUpdate"))if(t=await a({request:this.request,response:t,event:this.event})||void 0,r=!0,!t)break;return r||t&&t.status!==200&&(t=void 0),t}}class se{constructor(e={}){this.cacheName=oe.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,r=typeof e.request=="string"?new Request(e.request):e.request,a="params"in e?e.params:void 0,i=new gt(this,{event:t,request:r,params:a}),n=this._getResponse(i,r,t),c=this._awaitComplete(n,i,r,t);return[n,c]}async _getResponse(e,t,r){await e.runCallbacks("handlerWillStart",{event:r,request:t});let a;try{if(a=await this._handle(t,e),!a||a.type==="error")throw new y("no-response",{url:t.url})}catch(i){if(i instanceof Error){for(const n of e.iterateCallbacks("handlerDidError"))if(a=await n({error:i,event:r,request:t}),a)break}if(!a)throw i}for(const i of e.iterateCallbacks("handlerWillRespond"))a=await i({event:r,request:t,response:a});return a}async _awaitComplete(e,t,r,a){let i,n;try{i=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:a,request:r,response:i}),await t.doneWaiting()}catch(c){c instanceof Error&&(n=c)}if(await t.runCallbacks("handlerDidComplete",{event:a,request:r,response:i,error:n}),t.destroy(),n)throw n}}class mt extends se{async _handle(e,t){let r=await t.cacheMatch(e),a;if(!r)try{r=await t.fetchAndCachePut(e)}catch(i){i instanceof Error&&(a=i)}if(!r)throw new y("no-response",{url:e.url,error:a});return r}}const wt={cacheWillUpdate:async({response:s})=>s.status===200||s.status===0?s:null};class yt extends se{constructor(e={}){super(e),this.plugins.some(t=>"cacheWillUpdate"in t)||this.plugins.unshift(wt)}async _handle(e,t){const r=t.fetchAndCachePut(e).catch(()=>{});t.waitUntil(r);let a=await t.cacheMatch(e),i;if(!a)try{a=await r}catch(n){n instanceof Error&&(i=n)}if(!a)throw new y("no-response",{url:e.url,error:i});return a}}qe(([{"revision":null,"url":"assets/_createAggregator-B4i0o6gy.js"},{"revision":null,"url":"assets/access-control-DcliPEX2.js"},{"revision":null,"url":"assets/actions-BEpPU26q.js"},{"revision":null,"url":"assets/Add-2VCvBnGd.js"},{"revision":null,"url":"assets/add-component-core-D-IRi6XF.css"},{"revision":null,"url":"assets/add-component-core-DSlHbXth.js"},{"revision":null,"url":"assets/add-resource-B9SUcn9b.js"},{"revision":null,"url":"assets/addon-C8Ytd8YY.js"},{"revision":null,"url":"assets/analytics-BVmtToBr.js"},{"revision":null,"url":"assets/api-C0C4sDJA.js"},{"revision":null,"url":"assets/ar-DuHAbPhE.js"},{"revision":null,"url":"assets/ar-hiIrGdss.js"},{"revision":null,"url":"assets/ArrowDropDown-BdHlAt9a.js"},{"revision":null,"url":"assets/audit-logs-DOpEhbRi.js"},{"revision":null,"url":"assets/base32-COJTblwx.js"},{"revision":null,"url":"assets/branding-BIbnR-Yt.js"},{"revision":null,"url":"assets/bundle-avatar-DqROxHMq.js"},{"revision":null,"url":"assets/button-Bo5ZAcJk.js"},{"revision":null,"url":"assets/CheckCircle-BElcljFC.js"},{"revision":null,"url":"assets/ChevronLeft-BfF37o7u.js"},{"revision":null,"url":"assets/ChevronRight-B8pf890W.js"},{"revision":null,"url":"assets/click-to-copy-DNu8CktB.js"},{"revision":null,"url":"assets/complete-B_C_fwut.js"},{"revision":null,"url":"assets/component-eAmweIYL.js"},{"revision":null,"url":"assets/config-CWoxBu0J.js"},{"revision":null,"url":"assets/config-d41PVAVu.js"},{"revision":null,"url":"assets/config-navigation-jKhcoDId.js"},{"revision":null,"url":"assets/config-space-Dofzrh5m.js"},{"revision":null,"url":"assets/confirm-C0rryr4e.js"},{"revision":null,"url":"assets/connect-CfWNBUY4.js"},{"revision":null,"url":"assets/connect-to-Dsq1ST9l.js"},{"revision":null,"url":"assets/connect-Wiz0Gw9I.js"},{"revision":null,"url":"assets/content-layout-CK_AzZZ-.js"},{"revision":null,"url":"assets/dashboard-Ca8O6iHB.js"},{"revision":null,"url":"assets/de-CJi7wiel.js"},{"revision":null,"url":"assets/de-D_LJn5nm.js"},{"revision":null,"url":"assets/DeleteOutline-VzoIEqow.js"},{"revision":null,"url":"assets/did-address-49U3oRW2.js"},{"revision":null,"url":"assets/domain-DJyjDPmO.js"},{"revision":null,"url":"assets/domain-list-BEjAE8hh.js"},{"revision":null,"url":"assets/Done-BCESxXX2.js"},{"revision":null,"url":"assets/Download-BJmwtO6i.js"},{"revision":null,"url":"assets/EditIcon-BF2eKBD0.js"},{"revision":null,"url":"assets/email-C3ggDSGp.js"},{"revision":null,"url":"assets/Error-CpAOVH8t.js"},{"revision":null,"url":"assets/es-B0ocJhTd.js"},{"revision":null,"url":"assets/es-ClwhOFrW.js"},{"revision":null,"url":"assets/exchange-passport-4QuzoW2F.js"},{"revision":null,"url":"assets/form-text-input-CT57jMfW.js"},{"revision":null,"url":"assets/format-error-C0Ke3VXF.js"},{"revision":null,"url":"assets/fr-CAkkNKvy.js"},{"revision":null,"url":"assets/fr-eolYJCOV.js"},{"revision":null,"url":"assets/fuel-CJ-CsgDu.js"},{"revision":null,"url":"assets/fullpage-CFp4hSHz.js"},{"revision":null,"url":"assets/get-safe-url-CVhAz4Qr.js"},{"revision":null,"url":"assets/get-safe-url-RTzyOi09.js"},{"revision":null,"url":"assets/Google-rxW6OGq8.js"},{"revision":null,"url":"assets/hi-CGrG89HI.js"},{"revision":null,"url":"assets/hi-DSwvTH0x.js"},{"revision":null,"url":"assets/home-D1QP6Ilh.js"},{"revision":null,"url":"assets/id-5G9oPRk4.js"},{"revision":null,"url":"assets/id-D6PyIa8m.js"},{"revision":null,"url":"assets/iframe-BUonayoL.js"},{"revision":null,"url":"assets/index-AgKpYdvC.css"},{"revision":null,"url":"assets/index-BGO2DsWz.js"},{"revision":null,"url":"assets/index-Bi1xb9O8.js"},{"revision":null,"url":"assets/index-BP6sEHV5.js"},{"revision":null,"url":"assets/index-BPF3oif7.js"},{"revision":null,"url":"assets/index-BQCwe2Vs.js"},{"revision":null,"url":"assets/index-BQxL3qXG.js"},{"revision":null,"url":"assets/index-Bxg1LKG8.js"},{"revision":null,"url":"assets/index-BZnWmdZ0.js"},{"revision":null,"url":"assets/index-CqPx8QUY.js"},{"revision":null,"url":"assets/index-CQT4qLcx.js"},{"revision":null,"url":"assets/index-CrvlY8Z5.js"},{"revision":null,"url":"assets/index-D4PP6P2d.css"},{"revision":null,"url":"assets/index-D7mJIWyJ.js"},{"revision":null,"url":"assets/index-DcfIKM1A.js"},{"revision":null,"url":"assets/index-DMelUylN.js"},{"revision":null,"url":"assets/index-DoZ2YM4T.js"},{"revision":null,"url":"assets/index-DQSF6ElG.js"},{"revision":null,"url":"assets/index-DVYdq7IA.js"},{"revision":null,"url":"assets/index-IdPbsC-k.js"},{"revision":null,"url":"assets/index-l4yaELph.js"},{"revision":null,"url":"assets/index-mnKcDZP2.js"},{"revision":null,"url":"assets/index-ROkOEO9F.js"},{"revision":null,"url":"assets/index-wG4Kh8A_.js"},{"revision":null,"url":"assets/InfoOutlined-BFP30UJa.js"},{"revision":null,"url":"assets/invitation-Dn2JFqk3.js"},{"revision":null,"url":"assets/invite-k-THgUaE.js"},{"revision":null,"url":"assets/isEmail-BWNRBSAy.js"},{"revision":null,"url":"assets/issue-passport-Cp0z7zOC.js"},{"revision":null,"url":"assets/item-DqTNLhw3.js"},{"revision":null,"url":"assets/ja-B2h7onKc.js"},{"revision":null,"url":"assets/ja-C82Szos_.js"},{"revision":null,"url":"assets/keyboard-arrow-down-rounded-DadBVmpO.js"},{"revision":null,"url":"assets/ko-B8lz4XE7.js"},{"revision":null,"url":"assets/ko-zaXquvPm.js"},{"revision":null,"url":"assets/Launch-BOCFiYoz.js"},{"revision":null,"url":"assets/launch-result-message-zXOcVqEr.js"},{"revision":null,"url":"assets/LaunchOutlined-B-PaS5ms.js"},{"revision":null,"url":"assets/layout-BRN0uPvp.js"},{"revision":null,"url":"assets/list-header-Bn1GhGok.js"},{"revision":null,"url":"assets/localization-L03Lvx4v.js"},{"revision":null,"url":"assets/LockIcon-DQtUl5vk.js"},{"revision":null,"url":"assets/log-D1ShKaDY.js"},{"revision":null,"url":"assets/log-D33dFtt_.css"},{"revision":null,"url":"assets/login-D9awP98G.js"},{"revision":null,"url":"assets/login-oauth-callback-DHA7e6Ar.js"},{"revision":null,"url":"assets/logo-uploader-BA8U554_.js"},{"revision":null,"url":"assets/Loop-n5c7A0qE.js"},{"revision":null,"url":"assets/lost-passport-kJqVsdV1.js"},{"revision":null,"url":"assets/lottie-react.esm-CHpXrEmm.js"},{"revision":null,"url":"assets/MoreHoriz-DnFq43xg.js"},{"revision":null,"url":"assets/open-window-B-5Hms7z.js"},{"revision":null,"url":"assets/overview-4bff7RWe.js"},{"revision":null,"url":"assets/page-header-6EUz18Qu.js"},{"revision":null,"url":"assets/permission-SgzW7fBj.js"},{"revision":null,"url":"assets/PlayArrow-oA7gV2MA.js"},{"revision":null,"url":"assets/preferences-RkqN3i2t.js"},{"revision":null,"url":"assets/pt-CMq2TmiV.js"},{"revision":null,"url":"assets/pt-JWdcQImo.js"},{"revision":null,"url":"assets/publish-resource-BhQQlAPL.js"},{"revision":null,"url":"assets/QuestionMarkCircle-gL_QM35Z.js"},{"revision":null,"url":"assets/raf-schd.esm-Cxhj8umC.js"},{"revision":null,"url":"assets/react-beautiful-dnd.esm-C8vTtkBe.js"},{"revision":null,"url":"assets/relative-time-BXb5Mt72.js"},{"revision":null,"url":"assets/ru-BwmmHWZS.js"},{"revision":null,"url":"assets/ru-CWgdu04g.js"},{"revision":null,"url":"assets/sdk-Dqc91xl4.js"},{"revision":null,"url":"assets/ServerLogo-UNPlRpuM.js"},{"revision":null,"url":"assets/session-ocxAyn6f.js"},{"revision":null,"url":"assets/setup-DTQXAoXZ.js"},{"revision":null,"url":"assets/shorten-label-BnvWOC_s.js"},{"revision":null,"url":"assets/simple-select-BwufbE2b.js"},{"revision":null,"url":"assets/slicedToArray-DNAGECrJ.js"},{"revision":null,"url":"assets/start-DNpygdxp.js"},{"revision":null,"url":"assets/step-actions-ClTz1KhK.js"},{"revision":null,"url":"assets/studio-DPoV-6q9.js"},{"revision":null,"url":"assets/switch-control-D-IROOaC.js"},{"revision":null,"url":"assets/th-BnfuNX_7.js"},{"revision":null,"url":"assets/th-C-hKn9xa.js"},{"revision":null,"url":"assets/toUpper-BQrWudMF.js"},{"revision":null,"url":"assets/transfer-A_yTwCWw.js"},{"revision":null,"url":"assets/unsubscribe-uaBnibKD.js"},{"revision":null,"url":"assets/use-mobile-DAR0hmJd.js"},{"revision":null,"url":"assets/use-passport-id-B-b-_oYF.js"},{"revision":null,"url":"assets/useAsync-cdOzMWPw.js"},{"revision":null,"url":"assets/useAsyncRetry-KXMle3o0.js"},{"revision":null,"url":"assets/useLocalStorage-CSyjxtUy.js"},{"revision":null,"url":"assets/user-center-B3stHKHJ.js"},{"revision":null,"url":"assets/useSetState-Crt4S51m.js"},{"revision":null,"url":"assets/util-ao8gSgii.js"},{"revision":null,"url":"assets/vendor-arcblock-CiLB_TiI.js"},{"revision":null,"url":"assets/vendor-arcblock-DhgPdlEj.css"},{"revision":null,"url":"assets/vendor-hooks-CLzfFpO7.js"},{"revision":null,"url":"assets/vendor-mui-core-BlX2BJoA.js"},{"revision":null,"url":"assets/vendor-mui-x-Bq1FyQ7S.js"},{"revision":null,"url":"assets/vendor-react-D-afvo_7.js"},{"revision":null,"url":"assets/vendor-utils-DCpRgzMR.js"},{"revision":null,"url":"assets/vi-C_iM9J2X.js"},{"revision":null,"url":"assets/vi-D7HQHu1T.js"},{"revision":null,"url":"assets/ViewList-IMqkd2Sv.js"},{"revision":null,"url":"assets/wrap-locale-DNve09jN.js"},{"revision":null,"url":"assets/zh-6fa1T5uL.js"},{"revision":null,"url":"assets/zh-DNY792IC.js"},{"revision":null,"url":"assets/zh-tw-9sY6BN2s.js"},{"revision":null,"url":"assets/zh-tw-jFbTVB_K.js"},{"revision":"808170f5d62cda593f1f6ce6b46d0fdc","url":"index.html"},{"revision":"629a14a7e3397a134f5a30b5dc735183","url":"registerSW.js"},{"revision":"07a287e43ae8e959a20d6b367a581667","url":"router-template-styles/styles.css"},{"revision":"68620cfe0e63f87f00560a22617347e3","url":"share/shared-service-worker.js"},{"revision":"19d4c6a99cb8ed11e68209a612e7ec44","url":"share/workbox-v7.3.0/workbox-background-sync.prod.js"},{"revision":"d9d631014689e2b4b0e343c129671749","url":"share/workbox-v7.3.0/workbox-broadcast-update.prod.js"},{"revision":"bdb39ceb7380dcb1483c543e8856242b","url":"share/workbox-v7.3.0/workbox-cacheable-response.prod.js"},{"revision":"b84dd900eb18e8bc842666bbb740604e","url":"share/workbox-v7.3.0/workbox-core.prod.js"},{"revision":"c582a61c037234d8283eea0b97693b1b","url":"share/workbox-v7.3.0/workbox-expiration.prod.js"},{"revision":"866ba7d03bd871fa990976e4db312ab3","url":"share/workbox-v7.3.0/workbox-navigation-preload.prod.js"},{"revision":"0c55bb581ea7ce5ebfac1ce95cdda21f","url":"share/workbox-v7.3.0/workbox-offline-ga.prod.js"},{"revision":"770d183cf1f189a1ceb11ba8b5d808fa","url":"share/workbox-v7.3.0/workbox-precaching.prod.js"},{"revision":"295decbe1eb3b073a2a8d67cfbdf5692","url":"share/workbox-v7.3.0/workbox-range-requests.prod.js"},{"revision":"0bcb90677f3508ebc8a3571d14194478","url":"share/workbox-v7.3.0/workbox-recipes.prod.js"},{"revision":"4af96b70b2d20b041e2edd7ef1a8ef27","url":"share/workbox-v7.3.0/workbox-routing.prod.js"},{"revision":"c78c21b4058a1134ad3e12286c57cb2f","url":"share/workbox-v7.3.0/workbox-strategies.prod.js"},{"revision":"7eeb2d820d409221e076d31951fdcf79","url":"share/workbox-v7.3.0/workbox-streams.prod.js"},{"revision":"aa7368887577b9719a46b585d5dcc7a5","url":"share/workbox-v7.3.0/workbox-sw.js"},{"revision":"e768668db4eeefde11b58542900ab2ad","url":"share/workbox-v7.3.0/workbox-window.prod.umd.js"},{"revision":"f272d080151aa40322ce1603c6261ec1","url":"manifest.webmanifest"}]||[]).filter(s=>s.url!=="/"&&!s.url.includes("index.html")));pe();self.addEventListener("activate",()=>{console.log("Service Worker activated")});self.addEventListener("install",s=>{console.log("Service Worker installed"),s.waitUntil(self.skipWaiting())});const re=s=>!!(s.method!=="GET"||s.url.includes("/api")||s.url.includes("__meta__.js")||s.url.includes("__blocklet__.js"));te(({request:s})=>re(s)?!1:s.url.includes("/static/"),new mt({cacheName:`static-${self.registration.scope}`,plugins:[new ut({maxEntries:200})]}));te(({request:s})=>re(s)?!1:s.url.includes("/images/")||s.url.includes("/router/-template-styles/"),new yt({cacheName:`StaleWhileRevalidate-${self.registration.scope}`}));
@@ -2,35 +2,64 @@ importScripts('/.well-known/service/static/share/workbox-v7.3.0/workbox-sw.js');
2
2
  workbox.setConfig({
3
3
  modulePathPrefix: '/.well-known/service/static/share/workbox-v7.3.0/',
4
4
  });
5
- const { strategies, precaching, core, routing } = workbox;
6
5
 
7
- const routes = (self.routes || [])
8
- .map((x) => {
9
- return x;
10
- })
11
- .filter((x) => !x.url.includes('index.html'));
6
+ // 注入一系列属性和方法供应用的 sw 使用,此处不再做任何规则预设
7
+ self.blocklet = {
8
+ workbox,
9
+ whiteList: ['/.well-known/service/blocklet/logo', '/favicon.ico'],
12
10
 
13
- precaching.precacheAndRoute(routes);
11
+ /**
12
+ * 检查 url 是否为自身组件
13
+ * @param {object} options
14
+ * @param {url} options.url 资源的路径
15
+ * @returns {boolean} 是否为当前组件
16
+ */
17
+ checkBelongToMyself({ url }) {
18
+ const pathname = url.pathname;
19
+ // HACK: 由于部分资源是由 service 提供,所以需要由白名单
20
+ if (
21
+ pathname.startsWith('/.well-known/service/static/share/') ||
22
+ pathname.startsWith(`/.blocklet/proxy/${self.blocklet.did}`) ||
23
+ self.blocklet.whiteList.some((x) => x === url.pathname)
24
+ ) {
25
+ return true;
26
+ }
14
27
 
15
- routing.registerRoute(
16
- new routing.Route(
17
- ({ request, url }) => {
18
- // 需要保持 html 尽可能最新,这样才能动态注销 sw(部分情况下 window.blocklet 会内置在 html 中)
19
- if (['document'].includes(request.destination)) {
28
+ const otherMountPoints = self.blocklet.mountPoints.filter((item) => item !== self.blocklet.prefix);
29
+ if (self.blocklet.prefix === '/') {
30
+ // 如果当前组件挂载到 / 下,则要求要匹配的路由不能属于任何其他的组件
31
+ if (!otherMountPoints.some((x) => pathname.startsWith(x))) {
20
32
  return true;
21
33
  }
22
- // 需要保持 __blocklet__.js 尽可能最新,这样才能动态注销 sw
23
- if (url.pathname.endsWith('__blocklet__.js')) {
24
- return true;
25
- }
26
- return false;
27
- },
28
- new strategies.StaleWhileRevalidate({
29
- cacheName: `documents-${self.registration.scope}`,
30
- // networkTimeoutSeconds: 3,
31
- })
32
- )
33
- );
34
+ }
35
+ if (pathname.startsWith(self.blocklet.prefix)) {
36
+ return true;
37
+ }
38
+ return false;
39
+ },
40
+ getPrefix() {
41
+ const scopeUrl = new URL(self.registration.scope);
42
+ const prefix = scopeUrl?.pathname || '/';
43
+ return prefix;
44
+ },
45
+ getDid() {
46
+ const selfUrl = new URL(self.location.href);
47
+ const did = selfUrl.searchParams.get('did');
48
+ return did;
49
+ },
50
+ getMountPoints() {
51
+ const selfUrl = new URL(self.location.href);
52
+ const mountPoints = selfUrl.searchParams.get('mountPoints');
53
+ return mountPoints.split(',');
54
+ },
55
+ fixRouteUrl(route) {
56
+ return {
57
+ ...route,
58
+ url: `/.blocklet/proxy/${self.blocklet.did}/${route.url}`,
59
+ };
60
+ },
61
+ };
34
62
 
35
- self.skipWaiting();
36
- core.clientsClaim();
63
+ self.blocklet.did = self.blocklet.getDid();
64
+ self.blocklet.prefix = self.blocklet.getPrefix();
65
+ self.blocklet.mountPoints = self.blocklet.getMountPoints();
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.16.37",
6
+ "version": "1.16.38-beta-20250110-003414-d3c1bfbd",
7
7
  "description": "Provide unified services for every blocklet",
8
8
  "main": "api/index.js",
9
9
  "files": [
@@ -33,17 +33,17 @@
33
33
  "author": "wangshijun <wangshijun2010@gmail.com> (http://github.com/wangshijun)",
34
34
  "license": "Apache-2.0",
35
35
  "dependencies": {
36
- "@abtnode/analytics": "1.16.37",
37
- "@abtnode/auth": "1.16.37",
38
- "@abtnode/client": "1.16.37",
39
- "@abtnode/connect-storage": "1.16.37",
40
- "@abtnode/constant": "1.16.37",
41
- "@abtnode/core": "1.16.37",
42
- "@abtnode/cron": "1.16.37",
43
- "@abtnode/logger": "1.16.37",
44
- "@abtnode/models": "1.16.37",
45
- "@abtnode/router-templates": "1.16.37",
46
- "@abtnode/util": "1.16.37",
36
+ "@abtnode/analytics": "1.16.38-beta-20250110-003414-d3c1bfbd",
37
+ "@abtnode/auth": "1.16.38-beta-20250110-003414-d3c1bfbd",
38
+ "@abtnode/client": "1.16.38-beta-20250110-003414-d3c1bfbd",
39
+ "@abtnode/connect-storage": "1.16.38-beta-20250110-003414-d3c1bfbd",
40
+ "@abtnode/constant": "1.16.38-beta-20250110-003414-d3c1bfbd",
41
+ "@abtnode/core": "1.16.38-beta-20250110-003414-d3c1bfbd",
42
+ "@abtnode/cron": "1.16.38-beta-20250110-003414-d3c1bfbd",
43
+ "@abtnode/logger": "1.16.38-beta-20250110-003414-d3c1bfbd",
44
+ "@abtnode/models": "1.16.38-beta-20250110-003414-d3c1bfbd",
45
+ "@abtnode/router-templates": "1.16.38-beta-20250110-003414-d3c1bfbd",
46
+ "@abtnode/util": "1.16.38-beta-20250110-003414-d3c1bfbd",
47
47
  "@arcblock/did": "^1.19.2",
48
48
  "@arcblock/did-auth": "1.19.2",
49
49
  "@arcblock/did-ext": "^1.19.2",
@@ -52,16 +52,16 @@
52
52
  "@arcblock/jwt": "1.19.2",
53
53
  "@arcblock/validator": "^1.19.2",
54
54
  "@arcblock/ws": "1.19.2",
55
- "@blocklet/constant": "1.16.37",
56
- "@blocklet/did-space-js": "^1.0.1",
57
- "@blocklet/env": "1.16.37",
55
+ "@blocklet/constant": "1.16.38-beta-20250110-003414-d3c1bfbd",
56
+ "@blocklet/did-space-js": "^1.0.2",
57
+ "@blocklet/env": "1.16.38-beta-20250110-003414-d3c1bfbd",
58
58
  "@blocklet/form-builder": "^0.1.11",
59
59
  "@blocklet/form-collector": "^0.1.8",
60
- "@blocklet/images": "1.16.37",
61
- "@blocklet/js-sdk": "1.16.37",
62
- "@blocklet/meta": "1.16.37",
63
- "@blocklet/sdk": "1.16.37",
64
- "@blocklet/uploader-server": "^0.1.66",
60
+ "@blocklet/images": "1.16.38-beta-20250110-003414-d3c1bfbd",
61
+ "@blocklet/js-sdk": "1.16.38-beta-20250110-003414-d3c1bfbd",
62
+ "@blocklet/meta": "1.16.38-beta-20250110-003414-d3c1bfbd",
63
+ "@blocklet/sdk": "1.16.38-beta-20250110-003414-d3c1bfbd",
64
+ "@blocklet/uploader-server": "^0.1.67",
65
65
  "@did-connect/authenticator": "^2.2.4",
66
66
  "@did-connect/relay-adapter-express": "^2.2.4",
67
67
  "@ocap/client": "1.19.2",
@@ -79,6 +79,7 @@
79
79
  "follow-redirects": "^1.15.2",
80
80
  "fs-extra": "^11.2.0",
81
81
  "helmet": "^7.1.0",
82
+ "http-proxy-middleware": "^3.0.3",
82
83
  "is-url": "^1.2.4",
83
84
  "json-stable-stringify": "^1.0.1",
84
85
  "jsonwebtoken": "^9.0.0",
@@ -108,16 +109,16 @@
108
109
  "whatwg-url": "14.0.0"
109
110
  },
110
111
  "devDependencies": {
111
- "@abtnode/ux": "1.16.37",
112
- "@arcblock/bridge": "^2.11.22",
113
- "@arcblock/did-connect": "^2.11.22",
114
- "@arcblock/icons": "^2.11.22",
115
- "@arcblock/react-hooks": "^2.11.22",
116
- "@arcblock/ux": "^2.11.22",
117
- "@blocklet/launcher-layout": "^2.11.22",
118
- "@blocklet/tracker": "1.16.37",
119
- "@blocklet/ui-react": "^2.11.22",
120
- "@blocklet/uploader": "^0.1.62",
112
+ "@abtnode/ux": "1.16.38-beta-20250110-003414-d3c1bfbd",
113
+ "@arcblock/bridge": "^2.11.25",
114
+ "@arcblock/did-connect": "^2.11.25",
115
+ "@arcblock/icons": "^2.11.25",
116
+ "@arcblock/react-hooks": "^2.11.25",
117
+ "@arcblock/ux": "^2.11.25",
118
+ "@blocklet/launcher-layout": "^2.11.25",
119
+ "@blocklet/tracker": "1.16.38-beta-20250110-003414-d3c1bfbd",
120
+ "@blocklet/ui-react": "^2.11.25",
121
+ "@blocklet/uploader": "^0.1.63",
121
122
  "@emotion/react": "^11.11.4",
122
123
  "@emotion/styled": "^11.11.5",
123
124
  "@iconify/iconify": "^3.1.1",
@@ -192,5 +193,5 @@
192
193
  "url": "https://github.com/ArcBlock/blocklet-server/issues",
193
194
  "email": "shijun@arcblock.io"
194
195
  },
195
- "gitHead": "3e06fd31ca113b7555c3eec22c9087e256b92f44"
196
+ "gitHead": "56883ef3e5f208f18c3fe4eedfb664be8e2b4fa7"
196
197
  }