@abtnode/blocklet-services 1.16.45-beta-20250610-112229-2eb0face → 1.16.45-beta-20250614-101901-d1700f8d

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 (187) hide show
  1. package/api/cache.js +36 -21
  2. package/api/libs/connect/session.js +8 -275
  3. package/api/libs/kyc.js +1 -1
  4. package/api/middlewares/proxy-to-daemon.js +6 -2
  5. package/api/routes/blocklet.js +25 -5
  6. package/api/routes/dns-resolver.js +1 -1
  7. package/api/routes/env.js +2 -1
  8. package/api/routes/oauth/client.js +2 -1
  9. package/api/routes/user.js +1 -2
  10. package/api/services/auth/connect/bind-wallet.js +2 -44
  11. package/api/services/auth/connect/gen-access-key.js +1 -1
  12. package/api/services/auth/connect/invite.js +1 -1
  13. package/api/services/auth/connect/issue-passport.js +1 -1
  14. package/api/services/auth/connect/verify-destroy.js +9 -8
  15. package/api/services/auth/connect/verify-elevated.js +15 -11
  16. package/api/services/auth/passport.js +20 -7
  17. package/api/services/auth/session.js +3 -3
  18. package/api/services/oauth/client.js +1 -179
  19. package/api/services/oauth/server.js +2 -1
  20. package/api/socket/channel/did.js +2 -2
  21. package/api/util/federated.js +1 -12
  22. package/dist/assets/{AdapterDayjs-Dvf_tKNm.js → AdapterDayjs-Cnt9tqu2.js} +1 -1
  23. package/dist/assets/{ArrowDropDown-w902LDz5.js → ArrowDropDown-BMwBndHf.js} +1 -1
  24. package/dist/assets/{CheckCircle-DKLAiayP.js → CheckCircle-41Yqmlux.js} +1 -1
  25. package/dist/assets/{ChevronLeft-DoQQtCAX.js → ChevronLeft-CLsrCaxE.js} +1 -1
  26. package/dist/assets/{ChevronRight-Ch_6RLsY.js → ChevronRight-BVlAyY8t.js} +1 -1
  27. package/dist/assets/{DeleteOutline-CPVsjCvJ.js → DeleteOutline-5003D11l.js} +1 -1
  28. package/dist/assets/{Done-C5C8-4SV.js → Done-LE-14AsK.js} +1 -1
  29. package/dist/assets/{Download-DqajrKRK.js → Download-BGEarAho.js} +1 -1
  30. package/dist/assets/{Edit-D_qzRYqq.js → Edit-CrL54Zhc.js} +1 -1
  31. package/dist/assets/{Error-KxELF1Nr.js → Error-quFZHb54.js} +1 -1
  32. package/dist/assets/{ExpandLess-JVHHKQQZ.js → ExpandLess-DJGiqXwX.js} +1 -1
  33. package/dist/assets/{Google-BBqC-Muc.js → Google-woDe3URG.js} +1 -1
  34. package/dist/assets/{Home-DD-eYV7C.js → Home-C0Jy-iyL.js} +1 -1
  35. package/dist/assets/{InfoOutlined-CEh25_NY.js → InfoOutlined-3bCMdMdL.js} +1 -1
  36. package/dist/assets/{Launch-Cs8Cmdb_.js → Launch-DrVQ-_LF.js} +1 -1
  37. package/dist/assets/{LaunchOutlined-CH9e3hkq.js → LaunchOutlined-DCRD1Xd5.js} +1 -1
  38. package/dist/assets/{MoreHoriz-Cpg0a_lm.js → MoreHoriz-CCqkD-2X.js} +1 -1
  39. package/dist/assets/{PlayArrow-Hu915_DX.js → PlayArrow-b0SwYNYM.js} +1 -1
  40. package/dist/assets/{TuneOutlined-DRDP7kDe.js → TuneOutlined-CfZi6Ajz.js} +1 -1
  41. package/dist/assets/{ViewList-DN8B89Ry.js → ViewList-DHazaGfw.js} +1 -1
  42. package/dist/assets/{access-control-MsBNowAW.js → access-control-CrHHfd-3.js} +1 -1
  43. package/dist/assets/{actions-CcWHhKZq.js → actions-DP5QUAr6.js} +1 -1
  44. package/dist/assets/add-component-core-8M0C-Kp3.js +768 -0
  45. package/dist/assets/{add-resource-LwzRr27k.js → add-resource-BTg7Qs0I.js} +1 -1
  46. package/dist/assets/{addon-Dju3pjTL.js → addon-BKkiKK74.js} +1 -1
  47. package/dist/assets/{advanced-DYaxCBlN.js → advanced-BaQVvy3K.js} +2 -2
  48. package/dist/assets/api-87p2GGd0.js +1 -0
  49. package/dist/assets/{appearance-A-FJhFPq.js → appearance-CuPgS_bN.js} +1 -1
  50. package/dist/assets/{ar-D9QEDjY-.js → ar-C_PbiO-w.js} +1 -1
  51. package/dist/assets/{audit-logs-Cs45RZoE.js → audit-logs-CUC_aqut.js} +2 -2
  52. package/dist/assets/{authorize-fdrPc1Nd.js → authorize-DCQNYqJl.js} +1 -1
  53. package/dist/assets/{base-chart-DIErGYHN.js → base-chart-C2FJuVG1.js} +1 -1
  54. package/dist/assets/{base32-Do9iD28a.js → base32-CRxHrKOV.js} +1 -1
  55. package/dist/assets/{branding-CT66qulY.js → branding-Di3by3dx.js} +2 -2
  56. package/dist/assets/{branding-OfbhdEgY.js → branding-DrCX9AmH.js} +1 -1
  57. package/dist/assets/{bundle-avatar-LAkmelll.js → bundle-avatar-hjU0GiOA.js} +1 -1
  58. package/dist/assets/{button-B_vgCyye.js → button-BWISngjs.js} +1 -1
  59. package/dist/assets/{click-to-copy-BfYfYud0.js → click-to-copy-DoEzJWuJ.js} +1 -1
  60. package/dist/assets/{cloneDeep-ro06l5HL.js → cloneDeep-Jl_OPbSo.js} +1 -1
  61. package/dist/assets/{collapse-DRY-fGId.js → collapse-QPZHNi8E.js} +1 -1
  62. package/dist/assets/{complete-kFFCUlMp.js → complete-EC4tK63r.js} +1 -1
  63. package/dist/assets/{component-DkUWDmEA.js → component-D9Dwvz3W.js} +3 -3
  64. package/dist/assets/{config-WtCW9USL.js → config-BMkCrsxC.js} +1 -1
  65. package/dist/assets/{config-Dw2MWXp7.js → config-OasAWfj3.js} +1 -1
  66. package/dist/assets/{config-navigation-DxvpF5im.js → config-navigation-BRSxDGox.js} +6 -6
  67. package/dist/assets/{config-space-CU10Rw2i.js → config-space-DlI-IdsO.js} +1 -1
  68. package/dist/assets/{confirm-Vh9bFw1L.js → confirm-C3U-iZgd.js} +1 -1
  69. package/dist/assets/connect-2DXv3-VS.js +5 -0
  70. package/dist/assets/{connect-lFo0rnUJ.js → connect-CJtKCJvL.js} +1 -1
  71. package/dist/assets/{connect-to-1dd-PxCa.js → connect-to-DJWMCDWB.js} +1 -1
  72. package/dist/assets/{dashboard-BS4bpY03.js → dashboard-Dswj6QO1.js} +3 -3
  73. package/dist/assets/{de-BOa43YBF.js → de-m_nuB8Qa.js} +1 -1
  74. package/dist/assets/{delete-confirm-CzUZlQMV.js → delete-confirm-BPN0b1Ew.js} +1 -1
  75. package/dist/assets/{did-address-Ca4O6-Gb.js → did-address-BW7HQteV.js} +1 -1
  76. package/dist/assets/{domain-action-card-BxEOdRG6.js → domain-action-card-DK0_bx6-.js} +2 -2
  77. package/dist/assets/{domain-CcapWTGW.js → domain-i1NE8m1K.js} +1 -1
  78. package/dist/assets/domains-CDhyGAuz.js +1 -0
  79. package/dist/assets/{dot-ClH4jhsr.js → dot-iw3hN9HL.js} +1 -1
  80. package/dist/assets/{email-BKF-qRvM.js → email-DLukryRf.js} +1 -1
  81. package/dist/assets/{es-A3ma-OJp.js → es-BrT673RG.js} +1 -1
  82. package/dist/assets/{exchange-passport-C05YacXz.js → exchange-passport-CtBW8-z_.js} +1 -1
  83. package/dist/assets/{fr-I3xKp6I5.js → fr-BmbyLkZB.js} +1 -1
  84. package/dist/assets/{fuel-D5i0LwEE.js → fuel-TZdSL_3D.js} +1 -1
  85. package/dist/assets/{gen-access-key-OYE9vkTV.js → gen-access-key-CqRouazq.js} +1 -1
  86. package/dist/assets/{get-safe-url-CJuFtnAD.js → get-safe-url-CROWoUui.js} +1 -1
  87. package/dist/assets/{get-safe-url-ClddTGUv.js → get-safe-url-DPUvqYEg.js} +1 -1
  88. package/dist/assets/{hi-DacRhM8A.js → hi-CL8_a9An.js} +1 -1
  89. package/dist/assets/{home-DR0M74FO.js → home-hnxCx6H0.js} +1 -1
  90. package/dist/assets/{id-B7LQAHL7.js → id-DkcL27A7.js} +1 -1
  91. package/dist/assets/{iframe-CymxKzen.js → iframe-BB2MTAjn.js} +1 -1
  92. package/dist/assets/{index-BbupHZzB.js → index-B6fg0S6c.js} +1 -1
  93. package/dist/assets/{index-Cphaf-Ek.js → index-BAbxWghb.js} +9 -9
  94. package/dist/assets/{index-BpvW-cUy.js → index-BCtTVvHw.js} +1 -1
  95. package/dist/assets/{index-BJQsWjyx.js → index-BVBJxqPd.js} +4 -4
  96. package/dist/assets/{index-CRe5KsOj.js → index-BXRM3Fxt.js} +1 -1
  97. package/dist/assets/{index-iO-8g74B.js → index-BdgSI0pZ.js} +1 -1
  98. package/dist/assets/{index-BTKm4T5J.js → index-C-reBQ41.js} +1 -1
  99. package/dist/assets/{index-Hgoqly4p.js → index-C5pIrCeP.js} +3 -3
  100. package/dist/assets/{index--zVoF7lp.js → index-CIN38Uuw.js} +1 -1
  101. package/dist/assets/{index-Dntq1ezd.js → index-CKY4HT0P.js} +1 -1
  102. package/dist/assets/{index-BSIauQNZ.js → index-C_MX-sJs.js} +4 -4
  103. package/dist/assets/{index-B354cP6P.js → index-CcRZdZB8.js} +1 -1
  104. package/dist/assets/{index-CMXod_BF.js → index-ClKx_csi.js} +1 -1
  105. package/dist/assets/{index-DqYKLMVq.js → index-CnSfgOR1.js} +1 -1
  106. package/dist/assets/{index-D5uPwJ6o.js → index-CsA1GkvG.js} +1 -1
  107. package/dist/assets/{index-BtF2_mmu.js → index-D3Sj3zCK.js} +1 -1
  108. package/dist/assets/{index-CaercczO.js → index-OIQ3e2Ld.js} +1 -1
  109. package/dist/assets/{index-DGclkoMp.js → index-S_bysQ3H.js} +1 -1
  110. package/dist/assets/{index-6_wWEItq.js → index-gRIImn2q.js} +51 -51
  111. package/dist/assets/{index-DZfl-BHr.js → index-vo14BOSK.js} +1 -1
  112. package/dist/assets/{index-DJmmHgxv.js → index-zlAFuATT.js} +1 -1
  113. package/dist/assets/{invitation-CHKJRReb.js → invitation-BvT07MYl.js} +1 -1
  114. package/dist/assets/{invite-BIyTLjFG.js → invite-rbOwUpQz.js} +1 -1
  115. package/dist/assets/{issue-passport-D_1dgjgm.js → issue-passport-DqDO2lOV.js} +1 -1
  116. package/dist/assets/{item-Cvm3RZ4-.js → item-Kx7a4SrL.js} +1 -1
  117. package/dist/assets/{ja-DRQ4Eecl.js → ja-BVJLb0qY.js} +1 -1
  118. package/dist/assets/{ko-CzL3UzwL.js → ko-Dd2Xcc8p.js} +1 -1
  119. package/dist/assets/{layout-7LZ3RpDb.js → layout-veO5MoKq.js} +1 -1
  120. package/dist/assets/{list-Bz8uJNpj.js → list-CzMORzTV.js} +1 -1
  121. package/dist/assets/{list-CqGQfIx9.js → list-fB7PuMGP.js} +2 -2
  122. package/dist/assets/localization-CWcvfX_h.js +1 -0
  123. package/dist/assets/{log-CEcMfPWb.js → log-DFvq1Ya8.js} +1 -1
  124. package/dist/assets/{logger-DMlN-IbM.js → logger-Ch0sfkGE.js} +1 -1
  125. package/dist/assets/{login-y0a0ypm7.js → login-Cc4U4UbE.js} +1 -1
  126. package/dist/assets/{login-oauth-callback-CnAgJXgp.js → login-oauth-callback-BH3tsO_b.js} +1 -1
  127. package/dist/assets/{logo-uploader-BAsVxZ3U.js → logo-uploader-BfnTtNB4.js} +3 -3
  128. package/dist/assets/lost-passport-CEk2gBj4.js +168 -0
  129. package/dist/assets/{omit-O1pUD7ku.js → omit-BlzmxIB5.js} +1 -1
  130. package/dist/assets/{open-window-B-GejaY2.js → open-window-DNB3B3k8.js} +1 -1
  131. package/dist/assets/{overview-V76wvba7.js → overview-DqaHfHTX.js} +1 -1
  132. package/dist/assets/{page-header-huQjTQSw.js → page-header-DmVEhivC.js} +1 -1
  133. package/dist/assets/{passport-item-tcnz8j0r.js → passport-item-Dw5vAzG8.js} +1 -1
  134. package/dist/assets/{permission-BfejVUva.js → permission-CmSuLv3N.js} +1 -1
  135. package/dist/assets/{preferences-6lvT1ugx.js → preferences-DoIPeyXx.js} +1 -1
  136. package/dist/assets/{profile-embed-BqPZ87OZ.js → profile-embed-BzGFlRQR.js} +1 -1
  137. package/dist/assets/{pt-CHKumXYv.js → pt-BfbUt_Nx.js} +1 -1
  138. package/dist/assets/publish-resource-Dbw9ICt4.js +1 -0
  139. package/dist/assets/{react-beautiful-dnd.esm-Btnab_OF.js → react-beautiful-dnd.esm-B9_jlyiB.js} +1 -1
  140. package/dist/assets/{ru-CvkEKhgU.js → ru-uXrAFAz0.js} +1 -1
  141. package/dist/assets/{runtime-qegegcsI.js → runtime-D90jDC3r.js} +1 -1
  142. package/dist/assets/{sanitize-DbZs1H_T.js → sanitize-B18rcrOf.js} +1 -1
  143. package/dist/assets/sdk-DDQwgEwY.js +1 -0
  144. package/dist/assets/{security-Cxiq1ziT.js → security-D8kq04bN.js} +1 -1
  145. package/dist/assets/{session-CwC5SgVz.js → session-igceijP1.js} +1 -1
  146. package/dist/assets/setup-n8Ikg3vS.js +30 -0
  147. package/dist/assets/{spaces-Cgazj3bm.js → spaces-DVZd70Fi.js} +1 -1
  148. package/dist/assets/{start-FFKcgzTb.js → start-YvnbU7Eo.js} +1 -1
  149. package/dist/assets/{starting-progress-CKWusmmh.js → starting-progress-BOsNmsFB.js} +1 -1
  150. package/dist/assets/{status-D98jk27v.js → status-BGmXEfM-.js} +1 -1
  151. package/dist/assets/{step-actions-Cp7vl1Uh.js → step-actions-_L8XSfG4.js} +1 -1
  152. package/dist/assets/{studio-CvtVT5aS.js → studio-BImlv1KI.js} +1 -1
  153. package/dist/assets/{switch-control-DCl96cpf.js → switch-control-CGm8CkkK.js} +1 -1
  154. package/dist/assets/{table-tips-DdnbF0LB.js → table-tips-C8uXQ5tF.js} +1 -1
  155. package/dist/assets/{th-B2BUfjNJ.js → th-BnT_StPj.js} +1 -1
  156. package/dist/assets/{traffic-Bf1b6xSQ.js → traffic-NFBtntJ-.js} +1 -1
  157. package/dist/assets/{transfer-ChzHdW_I.js → transfer-CJjNcsEy.js} +1 -1
  158. package/dist/assets/{unsubscribe-CRSsqbPw.js → unsubscribe-Co6pOu2N.js} +1 -1
  159. package/dist/assets/{use-blocklet-logo-D73B-sw0.js → use-blocklet-logo-BUV6ER3X.js} +1 -1
  160. package/dist/assets/{useAsync-B6ZHbOEG.js → useAsync-DVHp96Uu.js} +1 -1
  161. package/dist/assets/{useLocalStorage-B85cd9HR.js → useLocalStorage-Cw7tZL-P.js} +1 -1
  162. package/dist/assets/{user-center-h3PNeVcw.js → user-center-CHyAfsyF.js} +3 -3
  163. package/dist/assets/{util-B5wObXV8.js → util-BKry4J3y.js} +1 -1
  164. package/dist/assets/{util-SfP61JNJ.js → util-BfQiNudG.js} +1 -1
  165. package/dist/assets/{vendor-arcblock-qCd0o3Hz.js → vendor-arcblock-Cspz6Fmz.js} +14 -14
  166. package/dist/assets/{vendor-hooks-BCm626KH.js → vendor-hooks-BFlOfe0M.js} +1 -1
  167. package/dist/assets/vendor-utils-BotmZdBm.js +208 -0
  168. package/dist/assets/{vendor-ux-did-connect-dVrbSJfQ.js → vendor-ux-did-connect-ETVwYaIV.js} +91 -92
  169. package/dist/assets/{vi-BykmwIAT.js → vi-DmitUjjk.js} +1 -1
  170. package/dist/assets/wrap-locale-ugI1o5oc.js +1 -0
  171. package/dist/assets/{zh-CbCaOuAd.js → zh-syG1cNt6.js} +2 -2
  172. package/dist/assets/{zh-tw-C9JfiCVV.js → zh-tw-DnHJQaoN.js} +1 -1
  173. package/dist/index.html +5 -5
  174. package/dist/service-worker.js +1 -1
  175. package/package.json +34 -34
  176. package/api/libs/auth/utils.js +0 -159
  177. package/dist/assets/add-component-core-C3s0hRWv.js +0 -768
  178. package/dist/assets/api-CQoRx33p.js +0 -1
  179. package/dist/assets/connect-Cg0d_ebx.js +0 -5
  180. package/dist/assets/domains-C9MeMLdA.js +0 -1
  181. package/dist/assets/localization-gg0fgyqC.js +0 -1
  182. package/dist/assets/lost-passport-D-GKwrh2.js +0 -168
  183. package/dist/assets/publish-resource-BqdiC6O1.js +0 -1
  184. package/dist/assets/sdk-DOmS9lyP.js +0 -1
  185. package/dist/assets/setup-Dilg0too.js +0 -30
  186. package/dist/assets/vendor-utils-B3iZkn2R.js +0 -208
  187. package/dist/assets/wrap-locale-C5884ev0.js +0 -1
@@ -1,2 +1,2 @@
1
1
  try{self["workbox:core:7.0.0"]&&_()}catch{}const de=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},pe=de;let R=class extends Error{constructor(e,t){const n=pe(e,t);super(n),this.name=e,this.details=t}};const ge=new Set,d={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},A=s=>[d.prefix,s,d.suffix].filter(e=>e&&e.length>0).join("-"),me=s=>{for(const e of Object.keys(d))s(e)},we={updateDetails:s=>{me(e=>{typeof s[e]=="string"&&(d[e]=s[e])})},getGoogleAnalyticsName:s=>s||A(d.googleAnalytics),getPrecacheName:s=>s||A(d.precache),getPrefix:()=>d.prefix,getRuntimeName:s=>s||A(d.runtime),getSuffix:()=>d.suffix};function V(s,e){const t=new URL(s);for(const n of e)t.searchParams.delete(n);return t.href}async function ye(s,e,t,n){const a=V(e.url,t);if(e.url===a)return s.match(e,n);const r=Object.assign(Object.assign({},n),{ignoreSearch:!0}),i=await s.keys(e,r);for(const c of i){const o=V(c.url,t);if(a===o)return s.match(c,n)}}let _e=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};async function Re(){for(const s of ge)await s()}const be=s=>new URL(String(s),location.href).href.replace(new RegExp(`^${location.origin}`),"");function Ce(s){return new Promise(e=>setTimeout(e,s))}function xe(){self.addEventListener("activate",()=>self.clients.claim())}try{self["workbox:core:7.0.0"]&&_()}catch{}const Ee=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},ke=Ee;let u=class extends Error{constructor(e,t){const n=ke(e,t);super(n),this.name=e,this.details=t}};const p={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},O=s=>[p.prefix,s,p.suffix].filter(e=>e&&e.length>0).join("-"),De=s=>{for(const e of Object.keys(p))s(e)},B={updateDetails:s=>{De(e=>{typeof s[e]=="string"&&(p[e]=s[e])})},getGoogleAnalyticsName:s=>s||O(p.googleAnalytics),getPrecacheName:s=>s||O(p.precache),getPrefix:()=>p.prefix,getRuntimeName:s=>s||O(p.runtime),getSuffix:()=>p.suffix};function G(s,e){const t=e();return s.waitUntil(t),t}try{self["workbox:precaching:7.0.0"]&&_()}catch{}const Ue="__WB_REVISION__";function Le(s){if(!s)throw new u("add-to-cache-list-unexpected-type",{entry:s});if(typeof s=="string"){const r=new URL(s,location.href);return{cacheKey:r.href,url:r.href}}const{revision:e,url:t}=s;if(!t)throw new u("add-to-cache-list-unexpected-type",{entry:s});if(!e){const r=new URL(t,location.href);return{cacheKey:r.href,url:r.href}}const n=new URL(t,location.href),a=new URL(t,location.href);return n.searchParams.set(Ue,e),{cacheKey:n.href,url:a.href}}class Pe{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:n})=>{if(e.type==="install"&&t&&t.originalRequest&&t.originalRequest instanceof Request){const a=t.originalRequest.url;n?this.notUpdatedURLs.push(a):this.updatedURLs.push(a)}return n}}}class Te{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:t,params:n})=>{const a=(n==null?void 0:n.cacheKey)||this._precacheController.getCacheKeyForURL(t.url);return a?new Request(a,{headers:t.headers}):t},this._precacheController=e}}let C;function Ne(){if(C===void 0){const s=new Response("");if("body"in s)try{new Response(s.body),C=!0}catch{C=!1}C=!1}return C}async function ve(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 n=s.clone(),r={headers:new Headers(n.headers),status:n.status,statusText:n.statusText},i=Ne()?n.body:await n.blob();return new Response(i,r)}const Me=s=>new URL(String(s),location.href).href.replace(new RegExp(`^${location.origin}`),"");function J(s,e){const t=new URL(s);for(const n of e)t.searchParams.delete(n);return t.href}async function Ae(s,e,t,n){const a=J(e.url,t);if(e.url===a)return s.match(e,n);const r=Object.assign(Object.assign({},n),{ignoreSearch:!0}),i=await s.keys(e,r);for(const c of i){const o=J(c.url,t);if(a===o)return s.match(c,n)}}class Oe{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}const Se=new Set;async function Ie(){for(const s of Se)await s()}function We(s){return new Promise(e=>setTimeout(e,s))}try{self["workbox:strategies:7.0.0"]&&_()}catch{}function L(s){return typeof s=="string"?new Request(s):s}let Ke=class{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new Oe,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const n of this._plugins)this._pluginStateMap.set(n,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this;let n=L(e);if(n.mode==="navigate"&&t instanceof FetchEvent&&t.preloadResponse){const i=await t.preloadResponse;if(i)return i}const a=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const i of this.iterateCallbacks("requestWillFetch"))n=await i({request:n.clone(),event:t})}catch(i){if(i instanceof Error)throw new u("plugin-error-request-will-fetch",{thrownErrorMessage:i.message})}const r=n.clone();try{let i;i=await fetch(n,n.mode==="navigate"?void 0:this._strategy.fetchOptions);for(const c of this.iterateCallbacks("fetchDidSucceed"))i=await c({event:t,request:r,response:i});return i}catch(i){throw a&&await this.runCallbacks("fetchDidFail",{error:i,event:t,originalRequest:a.clone(),request:r.clone()}),i}}async fetchAndCachePut(e){const t=await this.fetch(e),n=t.clone();return this.waitUntil(this.cachePut(e,n)),t}async cacheMatch(e){const t=L(e);let n;const{cacheName:a,matchOptions:r}=this._strategy,i=await this.getCacheKey(t,"read"),c=Object.assign(Object.assign({},r),{cacheName:a});n=await caches.match(i,c);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))n=await o({cacheName:a,matchOptions:r,cachedResponse:n,request:i,event:this.event})||void 0;return n}async cachePut(e,t){const n=L(e);await We(0);const a=await this.getCacheKey(n,"write");if(!t)throw new u("cache-put-with-no-response",{url:Me(a.url)});const r=await this._ensureResponseSafeToCache(t);if(!r)return!1;const{cacheName:i,matchOptions:c}=this._strategy,o=await self.caches.open(i),l=this.hasCallback("cacheDidUpdate"),f=l?await Ae(o,a.clone(),["__WB_REVISION__"],c):null;try{await o.put(a,l?r.clone():r)}catch(h){if(h instanceof Error)throw h.name==="QuotaExceededError"&&await Ie(),h}for(const h of this.iterateCallbacks("cacheDidUpdate"))await h({cacheName:i,oldResponse:f,newResponse:r.clone(),request:a,event:this.event});return!0}async getCacheKey(e,t){const n=`${e.url} | ${t}`;if(!this._cacheKeys[n]){let a=e;for(const r of this.iterateCallbacks("cacheKeyWillBeUsed"))a=L(await r({mode:t,request:a,event:this.event,params:this.params}));this._cacheKeys[n]=a}return this._cacheKeys[n]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const n of this.iterateCallbacks(e))await n(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if(typeof t[e]=="function"){const n=this._pluginStateMap.get(t);yield r=>{const i=Object.assign(Object.assign({},r),{state:n});return t[e](i)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,n=!1;for(const a of this.iterateCallbacks("cacheWillUpdate"))if(t=await a({request:this.request,response:t,event:this.event})||void 0,n=!0,!t)break;return n||t&&t.status!==200&&(t=void 0),t}},$e=class{constructor(e={}){this.cacheName=B.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});const t=e.event,n=typeof e.request=="string"?new Request(e.request):e.request,a="params"in e?e.params:void 0,r=new Ke(this,{event:t,request:n,params:a}),i=this._getResponse(r,n,t),c=this._awaitComplete(i,r,n,t);return[i,c]}async _getResponse(e,t,n){await e.runCallbacks("handlerWillStart",{event:n,request:t});let a;try{if(a=await this._handle(t,e),!a||a.type==="error")throw new u("no-response",{url:t.url})}catch(r){if(r instanceof Error){for(const i of e.iterateCallbacks("handlerDidError"))if(a=await i({error:r,event:n,request:t}),a)break}if(!a)throw r}for(const r of e.iterateCallbacks("handlerWillRespond"))a=await r({event:n,request:t,response:a});return a}async _awaitComplete(e,t,n,a){let r,i;try{r=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:a,request:n,response:r}),await t.doneWaiting()}catch(c){c instanceof Error&&(i=c)}if(await t.runCallbacks("handlerDidComplete",{event:a,request:n,response:r,error:i}),t.destroy(),i)throw i}};class y extends $e{constructor(e={}){e.cacheName=B.getPrecacheName(e.cacheName),super(e),this._fallbackToNetwork=e.fallbackToNetwork!==!1,this.plugins.push(y.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){const n=await t.cacheMatch(e);return n||(t.event&&t.event.type==="install"?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,t){let n;const a=t.params||{};if(this._fallbackToNetwork){const r=a.integrity,i=e.integrity,c=!i||i===r;n=await t.fetch(new Request(e,{integrity:e.mode!=="no-cors"?i||r:void 0})),r&&c&&e.mode!=="no-cors"&&(this._useDefaultCacheabilityPluginIfNeeded(),await t.cachePut(e,n.clone()))}else throw new u("missing-precache-entry",{cacheName:this.cacheName,url:e.url});return n}async _handleInstall(e,t){this._useDefaultCacheabilityPluginIfNeeded();const n=await t.fetch(e);if(!await t.cachePut(e,n.clone()))throw new u("bad-precaching-response",{url:e.url,status:n.status});return n}_useDefaultCacheabilityPluginIfNeeded(){let e=null,t=0;for(const[n,a]of this.plugins.entries())a!==y.copyRedirectedCacheableResponsesPlugin&&(a===y.defaultPrecacheCacheabilityPlugin&&(e=n),a.cacheWillUpdate&&t++);t===0?this.plugins.push(y.defaultPrecacheCacheabilityPlugin):t>1&&e!==null&&this.plugins.splice(e,1)}}y.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:s}){return!s||s.status>=400?null:s}};y.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:s}){return s.redirected?await ve(s):s}};class je{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:n=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new y({cacheName:B.getPrecacheName(e),plugins:[...t,new Te({precacheController:this})],fallbackToNetwork:n}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this._installAndActiveListenersAdded=!0)}addToCacheList(e){const t=[];for(const n of e){typeof n=="string"?t.push(n):n&&n.revision===void 0&&t.push(n.url);const{cacheKey:a,url:r}=Le(n),i=typeof n!="string"&&n.revision?"reload":"default";if(this._urlsToCacheKeys.has(r)&&this._urlsToCacheKeys.get(r)!==a)throw new u("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(r),secondEntry:a});if(typeof n!="string"&&n.integrity){if(this._cacheKeysToIntegrities.has(a)&&this._cacheKeysToIntegrities.get(a)!==n.integrity)throw new u("add-to-cache-list-conflicting-integrities",{url:r});this._cacheKeysToIntegrities.set(a,n.integrity)}if(this._urlsToCacheKeys.set(r,a),this._urlsToCacheModes.set(r,i),t.length>0){const c=`Workbox is precaching URLs without revision info: ${t.join(", ")}
2
- This is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(c)}}}install(e){return G(e,async()=>{const t=new Pe;this.strategy.plugins.push(t);for(const[r,i]of this._urlsToCacheKeys){const c=this._cacheKeysToIntegrities.get(i),o=this._urlsToCacheModes.get(r),l=new Request(r,{integrity:c,cache:o,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:i},request:l,event:e}))}const{updatedURLs:n,notUpdatedURLs:a}=t;return{updatedURLs:n,notUpdatedURLs:a}})}activate(e){return G(e,async()=>{const t=await self.caches.open(this.strategy.cacheName),n=await t.keys(),a=new Set(this._urlsToCacheKeys.values()),r=[];for(const i of n)a.has(i.url)||(await t.delete(i),r.push(i.url));return{deletedURLs:r}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){const t=e instanceof Request?e.url:e,n=this.getCacheKeyForURL(t);if(n)return(await self.caches.open(this.strategy.cacheName)).match(n)}createHandlerBoundToURL(e){const t=this.getCacheKeyForURL(e);if(!t)throw new u("non-precached-url",{url:e});return n=>(n.request=new Request(e),n.params=Object.assign({cacheKey:t},n.params),this.strategy.handle(n))}}let S;const te=()=>(S||(S=new je),S);try{self["workbox:routing:7.0.0"]&&_()}catch{}const se="GET",N=s=>s&&typeof s=="object"?s:{handle:s};let D=class{constructor(e,t,n=se){this.handler=N(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=N(e)}},He=class extends D{constructor(e,t,n){const a=({url:r})=>{const i=e.exec(r.href);if(i&&!(r.origin!==location.origin&&i.index!==0))return i.slice(1)};super(a,t,n)}},Fe=class{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,n=this.handleRequest({request:t,event:e});n&&e.respondWith(n)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,n=Promise.all(t.urlsToCache.map(a=>{typeof a=="string"&&(a=[a]);const r=new Request(...a);return this.handleRequest({request:r,event:e})}));e.waitUntil(n),e.ports&&e.ports[0]&&n.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const n=new URL(e.url,location.href);if(!n.protocol.startsWith("http"))return;const a=n.origin===location.origin,{params:r,route:i}=this.findMatchingRoute({event:t,request:e,sameOrigin:a,url:n});let c=i&&i.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let l;try{l=c.handle({url:n,request:e,event:t,params:r})}catch(h){l=Promise.reject(h)}const f=i&&i.catchHandler;return l instanceof Promise&&(this._catchHandler||f)&&(l=l.catch(async h=>{if(f)try{return await f.handle({url:n,request:e,event:t,params:r})}catch(b){b instanceof Error&&(h=b)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw h})),l}findMatchingRoute({url:e,sameOrigin:t,request:n,event:a}){const r=this._routes.get(n.method)||[];for(const i of r){let c;const o=i.match({url:e,sameOrigin:t,request:n,event:a});if(o)return c=o,(Array.isArray(c)&&c.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o=="boolean")&&(c=void 0),{route:i,params:c}}return{}}setDefaultHandler(e,t=se){this._defaultHandlerMap.set(t,N(e))}setCatchHandler(e){this._catchHandler=N(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")}},x;const Be=()=>(x||(x=new Fe,x.addFetchListener(),x.addCacheListener()),x);function qe(s,e,t){let n;if(typeof s=="string"){const r=new URL(s,location.href),i=({url:c})=>c.href===r.href;n=new D(i,e,t)}else if(s instanceof RegExp)n=new He(s,e,t);else if(typeof s=="function")n=new D(s,e,t);else if(s instanceof D)n=s;else throw new u("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return Be().registerRoute(n),n}function Ve(s,e=[]){for(const t of[...s.searchParams.keys()])e.some(n=>n.test(t))&&s.searchParams.delete(t);return s}function*Ge(s,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:t="index.html",cleanURLs:n=!0,urlManipulation:a}={}){const r=new URL(s,location.href);r.hash="",yield r.href;const i=Ve(r,e);if(yield i.href,t&&i.pathname.endsWith("/")){const c=new URL(i.href);c.pathname+=t,yield c.href}if(n){const c=new URL(i.href);c.pathname+=".html",yield c.href}if(a){const c=a({url:r});for(const o of c)yield o.href}}class Je extends D{constructor(e,t){const n=({request:a})=>{const r=e.getURLsToCacheKeys();for(const i of Ge(a.url,t)){const c=r.get(i);if(c){const o=e.getIntegrityForCacheKey(c);return{cacheKey:c,integrity:o}}}};super(n,e.strategy)}}function Qe(s){const e=te(),t=new Je(e,s);qe(t)}function ze(s){te().precache(s)}function Xe(s,e){ze(s),Qe(e)}try{self["workbox:core:7.0.0"]&&_()}catch{}const Ye=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},Ze=Ye;class et extends Error{constructor(e,t){const n=Ze(e,t);super(n),this.name=e,this.details=t}}function ne(s){s.then(()=>{})}const tt=(s,e)=>e.some(t=>s instanceof t);let Q,z;function st(){return Q||(Q=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function nt(){return z||(z=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const ae=new WeakMap,j=new WeakMap,re=new WeakMap,I=new WeakMap,q=new WeakMap;function at(s){const e=new Promise((t,n)=>{const a=()=>{s.removeEventListener("success",r),s.removeEventListener("error",i)},r=()=>{t(m(s.result)),a()},i=()=>{n(s.error),a()};s.addEventListener("success",r),s.addEventListener("error",i)});return e.then(t=>{t instanceof IDBCursor&&ae.set(t,s)}).catch(()=>{}),q.set(e,s),e}function rt(s){if(j.has(s))return;const e=new Promise((t,n)=>{const a=()=>{s.removeEventListener("complete",r),s.removeEventListener("error",i),s.removeEventListener("abort",i)},r=()=>{t(),a()},i=()=>{n(s.error||new DOMException("AbortError","AbortError")),a()};s.addEventListener("complete",r),s.addEventListener("error",i),s.addEventListener("abort",i)});j.set(s,e)}let H={get(s,e,t){if(s instanceof IDBTransaction){if(e==="done")return j.get(s);if(e==="objectStoreNames")return s.objectStoreNames||re.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 it(s){H=s(H)}function ct(s){return s===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...t){const n=s.call(W(this),e,...t);return re.set(n,e.sort?e.sort():[e]),m(n)}:nt().includes(s)?function(...e){return s.apply(W(this),e),m(ae.get(this))}:function(...e){return m(s.apply(W(this),e))}}function ot(s){return typeof s=="function"?ct(s):(s instanceof IDBTransaction&&rt(s),tt(s,st())?new Proxy(s,H):s)}function m(s){if(s instanceof IDBRequest)return at(s);if(I.has(s))return I.get(s);const e=ot(s);return e!==s&&(I.set(s,e),q.set(e,s)),e}const W=s=>q.get(s);function lt(s,e,{blocked:t,upgrade:n,blocking:a,terminated:r}={}){const i=indexedDB.open(s,e),c=m(i);return n&&i.addEventListener("upgradeneeded",o=>{n(m(i.result),o.oldVersion,o.newVersion,m(i.transaction),o)}),t&&i.addEventListener("blocked",o=>t(o.oldVersion,o.newVersion,o)),c.then(o=>{r&&o.addEventListener("close",()=>r()),a&&o.addEventListener("versionchange",l=>a(l.oldVersion,l.newVersion,l))}).catch(()=>{}),c}function ht(s,{blocked:e}={}){const t=indexedDB.deleteDatabase(s);return e&&t.addEventListener("blocked",n=>e(n.oldVersion,n)),m(t).then(()=>{})}const ut=["get","getKey","getAll","getAllKeys","count"],ft=["put","add","delete","clear"],K=new Map;function X(s,e){if(!(s instanceof IDBDatabase&&!(e in s)&&typeof e=="string"))return;if(K.get(e))return K.get(e);const t=e.replace(/FromIndex$/,""),n=e!==t,a=ft.includes(t);if(!(t in(n?IDBIndex:IDBObjectStore).prototype)||!(a||ut.includes(t)))return;const r=async function(i,...c){const o=this.transaction(i,a?"readwrite":"readonly");let l=o.store;return n&&(l=l.index(c.shift())),(await Promise.all([l[t](...c),a&&o.done]))[0]};return K.set(e,r),r}it(s=>({...s,get:(e,t,n)=>X(e,t)||s.get(e,t,n),has:(e,t)=>!!X(e,t)||s.has(e,t)}));try{self["workbox:expiration:7.0.0"]&&_()}catch{}const dt="workbox-expiration",E="cache-entries",Y=s=>{const e=new URL(s,location.href);return e.hash="",e.href};class pt{constructor(e){this._db=null,this._cacheName=e}_upgradeDb(e){const t=e.createObjectStore(E,{keyPath:"id"});t.createIndex("cacheName","cacheName",{unique:!1}),t.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&ht(this._cacheName)}async setTimestamp(e,t){e=Y(e);const n={url:e,timestamp:t,cacheName:this._cacheName,id:this._getId(e)},r=(await this.getDb()).transaction(E,"readwrite",{durability:"relaxed"});await r.store.put(n),await r.done}async getTimestamp(e){const n=await(await this.getDb()).get(E,this._getId(e));return n==null?void 0:n.timestamp}async expireEntries(e,t){const n=await this.getDb();let a=await n.transaction(E).store.index("timestamp").openCursor(null,"prev");const r=[];let i=0;for(;a;){const o=a.value;o.cacheName===this._cacheName&&(e&&o.timestamp<e||t&&i>=t?r.push(a.value):i++),a=await a.continue()}const c=[];for(const o of r)await n.delete(E,o.id),c.push(o.url);return c}_getId(e){return this._cacheName+"|"+Y(e)}async getDb(){return this._db||(this._db=await lt(dt,1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class gt{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 pt(e)}async expireEntries(){if(this._isRunning){this._rerunRequested=!0;return}this._isRunning=!0;const e=this._maxAgeSeconds?Date.now()-this._maxAgeSeconds*1e3:0,t=await this._timestampModel.expireEntries(e,this._maxEntries),n=await self.caches.open(this._cacheName);for(const a of t)await n.delete(a,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,ne(this.expireEntries()))}async updateTimestamp(e){await this._timestampModel.setTimestamp(e,Date.now())}async isURLExpired(e){if(this._maxAgeSeconds){const t=await this._timestampModel.getTimestamp(e),n=Date.now()-this._maxAgeSeconds*1e3;return t!==void 0?t<n:!0}else return!1}async delete(){this._rerunRequested=!1,await this._timestampModel.expireEntries(1/0)}}const g={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},$=s=>[g.prefix,s,g.suffix].filter(e=>e&&e.length>0).join("-"),mt=s=>{for(const e of Object.keys(g))s(e)},wt={updateDetails:s=>{mt(e=>{typeof s[e]=="string"&&(g[e]=s[e])})},getGoogleAnalyticsName:s=>s||$(g.googleAnalytics),getPrecacheName:s=>s||$(g.precache),getPrefix:()=>g.prefix,getRuntimeName:s=>s||$(g.runtime),getSuffix:()=>g.suffix},yt=new Set;function _t(s){yt.add(s)}class Rt{constructor(e={}){this.cachedResponseWillBeUsed=async({event:t,request:n,cacheName:a,cachedResponse:r})=>{if(!r)return null;const i=this._isResponseDateFresh(r),c=this._getCacheExpiration(a);ne(c.expireEntries());const o=c.updateTimestamp(n.url);if(t)try{t.waitUntil(o)}catch{}return i?r:null},this.cacheDidUpdate=async({cacheName:t,request:n})=>{const a=this._getCacheExpiration(t);await a.updateTimestamp(n.url),await a.expireEntries()},this._config=e,this._maxAgeSeconds=e.maxAgeSeconds,this._cacheExpirations=new Map,e.purgeOnQuotaError&&_t(()=>this.deleteCacheAndMetadata())}_getCacheExpiration(e){if(e===wt.getRuntimeName())throw new et("expire-custom-caches-only");let t=this._cacheExpirations.get(e);return t||(t=new gt(e,this._config),this._cacheExpirations.set(e,t)),t}_isResponseDateFresh(e){if(!this._maxAgeSeconds)return!0;const t=this._getDateHeaderTimestamp(e);if(t===null)return!0;const n=Date.now();return t>=n-this._maxAgeSeconds*1e3}_getDateHeaderTimestamp(e){if(!e.headers.has("date"))return null;const t=e.headers.get("date"),a=new Date(t).getTime();return isNaN(a)?null:a}async deleteCacheAndMetadata(){for(const[e,t]of this._cacheExpirations)await self.caches.delete(e),await t.delete();this._cacheExpirations=new Map}}try{self["workbox:routing:7.0.0"]&&_()}catch{}const ie="GET",v=s=>s&&typeof s=="object"?s:{handle:s};class T{constructor(e,t,n=ie){this.handler=v(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=v(e)}}class bt extends T{constructor(e,t,n){const a=({url:r})=>{const i=e.exec(r.href);if(i&&!(r.origin!==location.origin&&i.index!==0))return i.slice(1)};super(a,t,n)}}class Ct{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,n=this.handleRequest({request:t,event:e});n&&e.respondWith(n)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,n=Promise.all(t.urlsToCache.map(a=>{typeof a=="string"&&(a=[a]);const r=new Request(...a);return this.handleRequest({request:r,event:e})}));e.waitUntil(n),e.ports&&e.ports[0]&&n.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const n=new URL(e.url,location.href);if(!n.protocol.startsWith("http"))return;const a=n.origin===location.origin,{params:r,route:i}=this.findMatchingRoute({event:t,request:e,sameOrigin:a,url:n});let c=i&&i.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let l;try{l=c.handle({url:n,request:e,event:t,params:r})}catch(h){l=Promise.reject(h)}const f=i&&i.catchHandler;return l instanceof Promise&&(this._catchHandler||f)&&(l=l.catch(async h=>{if(f)try{return await f.handle({url:n,request:e,event:t,params:r})}catch(b){b instanceof Error&&(h=b)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw h})),l}findMatchingRoute({url:e,sameOrigin:t,request:n,event:a}){const r=this._routes.get(n.method)||[];for(const i of r){let c;const o=i.match({url:e,sameOrigin:t,request:n,event:a});if(o)return c=o,(Array.isArray(c)&&c.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o=="boolean")&&(c=void 0),{route:i,params:c}}return{}}setDefaultHandler(e,t=ie){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 R("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 R("unregister-route-route-not-registered")}}let k;const xt=()=>(k||(k=new Ct,k.addFetchListener(),k.addCacheListener()),k);function M(s,e,t){let n;if(typeof s=="string"){const r=new URL(s,location.href),i=({url:c})=>c.href===r.href;n=new T(i,e,t)}else if(s instanceof RegExp)n=new bt(s,e,t);else if(typeof s=="function")n=new T(s,e,t);else if(s instanceof T)n=s;else throw new R("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return xt().registerRoute(n),n}try{self["workbox:strategies:7.0.0"]&&_()}catch{}function P(s){return typeof s=="string"?new Request(s):s}class Et{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new _e,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const n of this._plugins)this._pluginStateMap.set(n,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this;let n=P(e);if(n.mode==="navigate"&&t instanceof FetchEvent&&t.preloadResponse){const i=await t.preloadResponse;if(i)return i}const a=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const i of this.iterateCallbacks("requestWillFetch"))n=await i({request:n.clone(),event:t})}catch(i){if(i instanceof Error)throw new R("plugin-error-request-will-fetch",{thrownErrorMessage:i.message})}const r=n.clone();try{let i;i=await fetch(n,n.mode==="navigate"?void 0:this._strategy.fetchOptions);for(const c of this.iterateCallbacks("fetchDidSucceed"))i=await c({event:t,request:r,response:i});return i}catch(i){throw a&&await this.runCallbacks("fetchDidFail",{error:i,event:t,originalRequest:a.clone(),request:r.clone()}),i}}async fetchAndCachePut(e){const t=await this.fetch(e),n=t.clone();return this.waitUntil(this.cachePut(e,n)),t}async cacheMatch(e){const t=P(e);let n;const{cacheName:a,matchOptions:r}=this._strategy,i=await this.getCacheKey(t,"read"),c=Object.assign(Object.assign({},r),{cacheName:a});n=await caches.match(i,c);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))n=await o({cacheName:a,matchOptions:r,cachedResponse:n,request:i,event:this.event})||void 0;return n}async cachePut(e,t){const n=P(e);await Ce(0);const a=await this.getCacheKey(n,"write");if(!t)throw new R("cache-put-with-no-response",{url:be(a.url)});const r=await this._ensureResponseSafeToCache(t);if(!r)return!1;const{cacheName:i,matchOptions:c}=this._strategy,o=await self.caches.open(i),l=this.hasCallback("cacheDidUpdate"),f=l?await ye(o,a.clone(),["__WB_REVISION__"],c):null;try{await o.put(a,l?r.clone():r)}catch(h){if(h instanceof Error)throw h.name==="QuotaExceededError"&&await Re(),h}for(const h of this.iterateCallbacks("cacheDidUpdate"))await h({cacheName:i,oldResponse:f,newResponse:r.clone(),request:a,event:this.event});return!0}async getCacheKey(e,t){const n=`${e.url} | ${t}`;if(!this._cacheKeys[n]){let a=e;for(const r of this.iterateCallbacks("cacheKeyWillBeUsed"))a=P(await r({mode:t,request:a,event:this.event,params:this.params}));this._cacheKeys[n]=a}return this._cacheKeys[n]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const n of this.iterateCallbacks(e))await n(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if(typeof t[e]=="function"){const n=this._pluginStateMap.get(t);yield r=>{const i=Object.assign(Object.assign({},r),{state:n});return t[e](i)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,n=!1;for(const a of this.iterateCallbacks("cacheWillUpdate"))if(t=await a({request:this.request,response:t,event:this.event})||void 0,n=!0,!t)break;return n||t&&t.status!==200&&(t=void 0),t}}class ce{constructor(e={}){this.cacheName=we.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});const t=e.event,n=typeof e.request=="string"?new Request(e.request):e.request,a="params"in e?e.params:void 0,r=new Et(this,{event:t,request:n,params:a}),i=this._getResponse(r,n,t),c=this._awaitComplete(i,r,n,t);return[i,c]}async _getResponse(e,t,n){await e.runCallbacks("handlerWillStart",{event:n,request:t});let a;try{if(a=await this._handle(t,e),!a||a.type==="error")throw new R("no-response",{url:t.url})}catch(r){if(r instanceof Error){for(const i of e.iterateCallbacks("handlerDidError"))if(a=await i({error:r,event:n,request:t}),a)break}if(!a)throw r}for(const r of e.iterateCallbacks("handlerWillRespond"))a=await r({event:n,request:t,response:a});return a}async _awaitComplete(e,t,n,a){let r,i;try{r=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:a,request:n,response:r}),await t.doneWaiting()}catch(c){c instanceof Error&&(i=c)}if(await t.runCallbacks("handlerDidComplete",{event:a,request:n,response:r,error:i}),t.destroy(),i)throw i}}class oe extends ce{async _handle(e,t){let n=await t.cacheMatch(e),a;if(!n)try{n=await t.fetchAndCachePut(e)}catch(r){r instanceof Error&&(a=r)}if(!n)throw new R("no-response",{url:e.url,error:a});return n}}const kt={cacheWillUpdate:async({response:s})=>s.status===200||s.status===0?s:null};class le extends ce{constructor(e={}){super(e),this.plugins.some(t=>"cacheWillUpdate"in t)||this.plugins.unshift(kt)}async _handle(e,t){const n=t.fetchAndCachePut(e).catch(()=>{});t.waitUntil(n);let a=await t.cacheMatch(e),r;if(!a)try{a=await n}catch(i){i instanceof Error&&(r=i)}if(!a)throw new R("no-response",{url:e.url,error:r});return a}}function Dt(s=""){return s.startsWith("/")}function Z(s=""){return(Dt(s)?s.slice(1):s)||"/"}const U="/.well-known/service",F="sw-update-reload-times",he="/lastUpdateMsgTimestamps",Ut=10,Lt=20*1e3;let ue=!1;function Pt(s,e){let t;return(...n)=>{clearTimeout(t),t=setTimeout(()=>{s.apply(this,n)},e)}}function Tt(s,e=50,t=5e3){return new Promise(n=>{const a=Date.now(),r=()=>{s()||Date.now()-a>=t?n():setTimeout(r,e)};r()})}self.addEventListener("message",s=>{s.data&&s.data.type==="CLIENT_UPDATE_READY"&&(console.log("Service Worker: client ready"),ue=!0)});async function Nt(s){const t=await(await caches.open(F)).match(`${he}-${s}`);if(t)try{const n=await t.text();return JSON.parse(n)}catch{return[]}return[]}async function vt(s,e){const t=await caches.open(F);if((await t.keys()).length>100){await caches.delete(F);return}const a=new Response(JSON.stringify(s));await t.put(`${he}-${e}`,a)}const Mt=Pt(async()=>{(await self.clients.matchAll()).forEach(e=>{e.postMessage({type:"SW_DOCUMENT_UPDATED"})})},100),ee=/updatedAt:\s*\d+,/g,At={cacheDidUpdate:async({request:s,oldResponse:e,newResponse:t})=>{if(e)try{let n=await e.clone().text(),a=await t.clone().text();if(s.url.includes("__blocklet__.js")&&(n=n.replace(ee,"updatedAt: ,"),a=a.replace(ee,"updatedAt: ,")),n!==a){const r=Date.now(),c=(await Nt(s.url)).filter(o=>r-o<Lt);if(c.length>=Ut){console.warn("[SW] update too frequent, skip:",s.url);return}await Tt(()=>ue),await vt(c,s.url),console.log("[SW] document version or session updated",s.url),Mt()}}catch(n){console.error("[SW] Error comparing document responses:",n)}}};Xe(([{"revision":null,"url":"assets/access-control-MsBNowAW.js"},{"revision":null,"url":"assets/actions-CcWHhKZq.js"},{"revision":null,"url":"assets/AdapterDayjs-Dvf_tKNm.js"},{"revision":null,"url":"assets/add-component-core-C3s0hRWv.js"},{"revision":null,"url":"assets/add-component-core-D-IRi6XF.css"},{"revision":null,"url":"assets/add-resource-LwzRr27k.js"},{"revision":null,"url":"assets/addon-Dju3pjTL.js"},{"revision":null,"url":"assets/advanced-DYaxCBlN.js"},{"revision":null,"url":"assets/api-CQoRx33p.js"},{"revision":null,"url":"assets/appearance-A-FJhFPq.js"},{"revision":null,"url":"assets/ar-4JMeO2Q-.js"},{"revision":null,"url":"assets/ar-D9QEDjY-.js"},{"revision":null,"url":"assets/ArrowDropDown-w902LDz5.js"},{"revision":null,"url":"assets/audit-logs-Cs45RZoE.js"},{"revision":null,"url":"assets/authorize-fdrPc1Nd.js"},{"revision":null,"url":"assets/base-chart-DIErGYHN.js"},{"revision":null,"url":"assets/base32-Do9iD28a.js"},{"revision":null,"url":"assets/branding-CT66qulY.js"},{"revision":null,"url":"assets/branding-OfbhdEgY.js"},{"revision":null,"url":"assets/bundle-avatar-LAkmelll.js"},{"revision":null,"url":"assets/button-B_vgCyye.js"},{"revision":null,"url":"assets/CheckCircle-DKLAiayP.js"},{"revision":null,"url":"assets/ChevronLeft-DoQQtCAX.js"},{"revision":null,"url":"assets/ChevronRight-Ch_6RLsY.js"},{"revision":null,"url":"assets/click-to-copy-BfYfYud0.js"},{"revision":null,"url":"assets/cloneDeep-ro06l5HL.js"},{"revision":null,"url":"assets/collapse-DRY-fGId.js"},{"revision":null,"url":"assets/Community-D4mv0jfL.js"},{"revision":null,"url":"assets/complete-kFFCUlMp.js"},{"revision":null,"url":"assets/component-DkUWDmEA.js"},{"revision":null,"url":"assets/config-Dw2MWXp7.js"},{"revision":null,"url":"assets/config-navigation-DxvpF5im.js"},{"revision":null,"url":"assets/config-space-CU10Rw2i.js"},{"revision":null,"url":"assets/config-WtCW9USL.js"},{"revision":null,"url":"assets/confirm-Vh9bFw1L.js"},{"revision":null,"url":"assets/connect-Cg0d_ebx.js"},{"revision":null,"url":"assets/connect-lFo0rnUJ.js"},{"revision":null,"url":"assets/connect-to-1dd-PxCa.js"},{"revision":null,"url":"assets/content-layout-BC2QkTYi.js"},{"revision":null,"url":"assets/dark-animation-DhFa8I7D.js"},{"revision":null,"url":"assets/dashboard-BS4bpY03.js"},{"revision":null,"url":"assets/de-BOa43YBF.js"},{"revision":null,"url":"assets/de-DXX_rGJR.js"},{"revision":null,"url":"assets/default-animation-DARmPWCI.js"},{"revision":null,"url":"assets/delete-confirm-CzUZlQMV.js"},{"revision":null,"url":"assets/DeleteOutline-CPVsjCvJ.js"},{"revision":null,"url":"assets/did-address-Ca4O6-Gb.js"},{"revision":null,"url":"assets/domain-action-card-BxEOdRG6.js"},{"revision":null,"url":"assets/domain-CcapWTGW.js"},{"revision":null,"url":"assets/domains-C9MeMLdA.js"},{"revision":null,"url":"assets/Done-C5C8-4SV.js"},{"revision":null,"url":"assets/dot-ClH4jhsr.js"},{"revision":null,"url":"assets/Download-DqajrKRK.js"},{"revision":null,"url":"assets/Edit-D_qzRYqq.js"},{"revision":null,"url":"assets/EditIcon-DfiDnAsm.js"},{"revision":null,"url":"assets/email-BKF-qRvM.js"},{"revision":null,"url":"assets/empty-spinner-BHwHZpq-.js"},{"revision":null,"url":"assets/Error-KxELF1Nr.js"},{"revision":null,"url":"assets/es-A3ma-OJp.js"},{"revision":null,"url":"assets/es-KnJQ_CSv.js"},{"revision":null,"url":"assets/exchange-passport-C05YacXz.js"},{"revision":null,"url":"assets/ExpandLess-JVHHKQQZ.js"},{"revision":null,"url":"assets/fr-I3xKp6I5.js"},{"revision":null,"url":"assets/fr-k9jwmXxf.js"},{"revision":null,"url":"assets/fuel-D5i0LwEE.js"},{"revision":null,"url":"assets/gen-access-key-OYE9vkTV.js"},{"revision":null,"url":"assets/get-safe-url-CJuFtnAD.js"},{"revision":null,"url":"assets/get-safe-url-ClddTGUv.js"},{"revision":null,"url":"assets/Google-BBqC-Muc.js"},{"revision":null,"url":"assets/hi-DacRhM8A.js"},{"revision":null,"url":"assets/hi-yiTjSXz3.js"},{"revision":null,"url":"assets/Holiday-DkzYmdt-.js"},{"revision":null,"url":"assets/Home-DD-eYV7C.js"},{"revision":null,"url":"assets/home-DR0M74FO.js"},{"revision":null,"url":"assets/id-B7LQAHL7.js"},{"revision":null,"url":"assets/id-Cd3xoDST.js"},{"revision":null,"url":"assets/iframe-CymxKzen.js"},{"revision":null,"url":"assets/index--zVoF7lp.js"},{"revision":null,"url":"assets/index-6_wWEItq.js"},{"revision":null,"url":"assets/index-8eXqqyHQ.js"},{"revision":null,"url":"assets/index-AgKpYdvC.css"},{"revision":null,"url":"assets/index-B2NkqENf.js"},{"revision":null,"url":"assets/index-B354cP6P.js"},{"revision":null,"url":"assets/index-BbupHZzB.js"},{"revision":null,"url":"assets/index-BJQsWjyx.js"},{"revision":null,"url":"assets/index-BpvW-cUy.js"},{"revision":null,"url":"assets/index-BSIauQNZ.js"},{"revision":null,"url":"assets/index-BtF2_mmu.js"},{"revision":null,"url":"assets/index-BTKm4T5J.js"},{"revision":null,"url":"assets/index-Bv7OAPJU.js"},{"revision":null,"url":"assets/index-C0Iiqot3.css"},{"revision":null,"url":"assets/index-CaercczO.js"},{"revision":null,"url":"assets/index-CMXod_BF.js"},{"revision":null,"url":"assets/index-CPE8Apzb.js"},{"revision":null,"url":"assets/index-Cphaf-Ek.js"},{"revision":null,"url":"assets/index-CRe5KsOj.js"},{"revision":null,"url":"assets/index-CTlzm-Mc.js"},{"revision":null,"url":"assets/index-D5uPwJ6o.js"},{"revision":null,"url":"assets/index-DEZojGsm.js"},{"revision":null,"url":"assets/index-DGclkoMp.js"},{"revision":null,"url":"assets/index-DJmmHgxv.js"},{"revision":null,"url":"assets/index-Dntq1ezd.js"},{"revision":null,"url":"assets/index-DOq-_YXu.css"},{"revision":null,"url":"assets/index-DqYKLMVq.js"},{"revision":null,"url":"assets/index-DVQCgvFb.js"},{"revision":null,"url":"assets/index-DZfl-BHr.js"},{"revision":null,"url":"assets/index-Hgoqly4p.js"},{"revision":null,"url":"assets/index-iO-8g74B.js"},{"revision":null,"url":"assets/InfoOutlined-CEh25_NY.js"},{"revision":null,"url":"assets/invitation-CHKJRReb.js"},{"revision":null,"url":"assets/invite-BIyTLjFG.js"},{"revision":null,"url":"assets/issue-passport-D_1dgjgm.js"},{"revision":null,"url":"assets/item-Cvm3RZ4-.js"},{"revision":null,"url":"assets/ja-Cn7b_8vh.js"},{"revision":null,"url":"assets/ja-DRQ4Eecl.js"},{"revision":null,"url":"assets/keyboard-arrow-down-rounded-DadBVmpO.js"},{"revision":null,"url":"assets/ko-BuxX0Qtk.js"},{"revision":null,"url":"assets/ko-CzL3UzwL.js"},{"revision":null,"url":"assets/Launch-Cs8Cmdb_.js"},{"revision":null,"url":"assets/launch-result-message-AharZGq2.js"},{"revision":null,"url":"assets/LaunchOutlined-CH9e3hkq.js"},{"revision":null,"url":"assets/layout-7LZ3RpDb.js"},{"revision":null,"url":"assets/list-Bz8uJNpj.js"},{"revision":null,"url":"assets/list-CqGQfIx9.js"},{"revision":null,"url":"assets/list-header-C7gle0n0.js"},{"revision":null,"url":"assets/localization-gg0fgyqC.js"},{"revision":null,"url":"assets/LockIcon-BEG59s5q.js"},{"revision":null,"url":"assets/log-CEcMfPWb.js"},{"revision":null,"url":"assets/log-D33dFtt_.css"},{"revision":null,"url":"assets/logger-DMlN-IbM.js"},{"revision":null,"url":"assets/login-oauth-callback-CnAgJXgp.js"},{"revision":null,"url":"assets/login-y0a0ypm7.js"},{"revision":null,"url":"assets/logo-uploader-BAsVxZ3U.js"},{"revision":null,"url":"assets/lost-passport-D-GKwrh2.js"},{"revision":null,"url":"assets/lottie-error-CMOXHtBH.js"},{"revision":null,"url":"assets/lottie-loading-o-GBrhM9.js"},{"revision":null,"url":"assets/lottie-react.esm-D2t-u0YU.js"},{"revision":null,"url":"assets/lottie-web-jYmAQWuC.js"},{"revision":null,"url":"assets/lottie-welcome-C9B95FIi.js"},{"revision":null,"url":"assets/Meeting-KSUAdbzW.js"},{"revision":null,"url":"assets/MoreHoriz-Cpg0a_lm.js"},{"revision":null,"url":"assets/OffSick-B0VcZ-o0.js"},{"revision":null,"url":"assets/omit-O1pUD7ku.js"},{"revision":null,"url":"assets/open-window-B-GejaY2.js"},{"revision":null,"url":"assets/overview-V76wvba7.js"},{"revision":null,"url":"assets/page-header-huQjTQSw.js"},{"revision":null,"url":"assets/passport-item-tcnz8j0r.js"},{"revision":null,"url":"assets/permission-BfejVUva.js"},{"revision":null,"url":"assets/PlayArrow-Hu915_DX.js"},{"revision":null,"url":"assets/preferences-6lvT1ugx.js"},{"revision":null,"url":"assets/profile-embed-BqPZ87OZ.js"},{"revision":null,"url":"assets/pt-B3PPKZk-.js"},{"revision":null,"url":"assets/pt-CHKumXYv.js"},{"revision":null,"url":"assets/publish-resource-BqdiC6O1.js"},{"revision":null,"url":"assets/QuestionMarkCircle-jbhclAfX.js"},{"revision":null,"url":"assets/raf-schd.esm-B3j6BePR.js"},{"revision":null,"url":"assets/react-beautiful-dnd.esm-Btnab_OF.js"},{"revision":null,"url":"assets/ru-8o6MGLMc.js"},{"revision":null,"url":"assets/ru-CvkEKhgU.js"},{"revision":null,"url":"assets/runtime-qegegcsI.js"},{"revision":null,"url":"assets/sanitize-DbZs1H_T.js"},{"revision":null,"url":"assets/sdk-DOmS9lyP.js"},{"revision":null,"url":"assets/search-4YYphs0l.js"},{"revision":null,"url":"assets/section-BDMQAX_r.js"},{"revision":null,"url":"assets/security-Cxiq1ziT.js"},{"revision":null,"url":"assets/session-CwC5SgVz.js"},{"revision":null,"url":"assets/setup-Dilg0too.js"},{"revision":null,"url":"assets/shorten-label-BQvbtscf.js"},{"revision":null,"url":"assets/simple-select-0cjVFuay.js"},{"revision":null,"url":"assets/slicedToArray-DFQjSbCD.js"},{"revision":null,"url":"assets/spaces-Cgazj3bm.js"},{"revision":null,"url":"assets/start-FFKcgzTb.js"},{"revision":null,"url":"assets/starting-progress-CKWusmmh.js"},{"revision":null,"url":"assets/status-D98jk27v.js"},{"revision":null,"url":"assets/step-actions-Cp7vl1Uh.js"},{"revision":null,"url":"assets/studio-CvtVT5aS.js"},{"revision":null,"url":"assets/switch-control-DCl96cpf.js"},{"revision":null,"url":"assets/table-tips-DdnbF0LB.js"},{"revision":null,"url":"assets/th-B2BUfjNJ.js"},{"revision":null,"url":"assets/th-ei5CkkZm.js"},{"revision":null,"url":"assets/traffic-Bf1b6xSQ.js"},{"revision":null,"url":"assets/transfer-ChzHdW_I.js"},{"revision":null,"url":"assets/TuneOutlined-DRDP7kDe.js"},{"revision":null,"url":"assets/unsubscribe-CRSsqbPw.js"},{"revision":null,"url":"assets/use-blocklet-logo-D73B-sw0.js"},{"revision":null,"url":"assets/use-mobile-CtTQsfXN.js"},{"revision":null,"url":"assets/use-mobile-DwzRjjku.js"},{"revision":null,"url":"assets/use-passport-id-B-b-_oYF.js"},{"revision":null,"url":"assets/use-server-logo-UTr-CyJD.js"},{"revision":null,"url":"assets/useAsync-B6ZHbOEG.js"},{"revision":null,"url":"assets/useLocalStorage-B85cd9HR.js"},{"revision":null,"url":"assets/user-center-h3PNeVcw.js"},{"revision":null,"url":"assets/useSetState-CWq0AVWn.js"},{"revision":null,"url":"assets/util-B5wObXV8.js"},{"revision":null,"url":"assets/util-SfP61JNJ.js"},{"revision":null,"url":"assets/vendor-arcblock-qCd0o3Hz.js"},{"revision":null,"url":"assets/vendor-hooks-BCm626KH.js"},{"revision":null,"url":"assets/vendor-mui-core-Bq8gXTan.js"},{"revision":null,"url":"assets/vendor-mui-x-1nqAyytV.js"},{"revision":null,"url":"assets/vendor-react-DEoibe3W.js"},{"revision":null,"url":"assets/vendor-utils-B3iZkn2R.js"},{"revision":null,"url":"assets/vendor-ux-did-connect-DpSGLE7B.css"},{"revision":null,"url":"assets/vendor-ux-did-connect-dVrbSJfQ.js"},{"revision":null,"url":"assets/vi-B1ypAqOQ.js"},{"revision":null,"url":"assets/vi-BykmwIAT.js"},{"revision":null,"url":"assets/ViewList-DN8B89Ry.js"},{"revision":null,"url":"assets/WorkingRemotely-5Kw3C-_c.js"},{"revision":null,"url":"assets/wrap-locale-C5884ev0.js"},{"revision":null,"url":"assets/zh-CbCaOuAd.js"},{"revision":null,"url":"assets/zh-tw-BMxcCLBp.js"},{"revision":null,"url":"assets/zh-tw-C9JfiCVV.js"},{"revision":null,"url":"assets/zh-vhAJ5xBV.js"},{"revision":"596db5a978acf690581959584c7ab8ee","url":"index.html"},{"revision":"629a14a7e3397a134f5a30b5dc735183","url":"registerSW.js"},{"revision":"07a287e43ae8e959a20d6b367a581667","url":"router-template-styles/styles.css"},{"revision":"8f9b8997bf5804519b8e9f8dd1bb6ef9","url":"share/shared-bridge.html"},{"revision":"3c1549cff96a2d2baec44397663c083e","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")));xe();self.addEventListener("activate",()=>{console.log("Service Worker activated")});self.addEventListener("install",s=>{console.log("Service Worker installed"),s.waitUntil(self.skipWaiting())});const fe=s=>!!(s.method!=="GET"||s.url.includes("/api")||s.url.includes("__meta__.js")||s.url.includes("__blocklet__.js"));M(({request:s})=>fe(s)?!1:s.url.includes("/static/"),new oe({cacheName:`static-${self.registration.scope}`,plugins:[new Rt({maxEntries:200})]}));M(({request:s,url:e})=>{var t,n;return(n=(t=self.blocklet)==null?void 0:t.canCache)!=null&&n.call(t,{url:e})?["image","font","style","script"].includes(s.destination):!1},new oe({cacheName:`static-resources-${self.registration.scope}`}));M(({request:s})=>fe(s)?!1:s.url.includes("/images/")||s.url.includes("/router/-template-styles/"),new le({cacheName:`StaleWhileRevalidate-${self.registration.scope}`}));const Ot={cacheKeyWillBeUsed({request:s}){const e=new URL(s.url);return s.destination==="document"&&e.pathname.startsWith(`${U}/admin`)?(e.pathname=`${U}/admin`,e.search="",e.toString()):s.url}},w={};M(({request:s})=>{const e=new URL(s.url);return s.destination==="document"&&e.pathname.startsWith(`${U}/admin`)?(Object.keys(w).forEach(t=>delete w[t]),!0):!w.env&&s.url.includes(`${Z(U)}/api/env`)?(w.env=!0,!0):!w.session&&s.url.includes(`${Z(U)}/api/did/session`)?(w.session=!0,!0):!w.blocklet&&s.url.endsWith("__blocklet__.js")?(w.blocklet=!0,!0):!1},new le({cacheName:`documents-${self.registration.scope}`,plugins:[At,Ot]}));
2
+ This is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(c)}}}install(e){return G(e,async()=>{const t=new Pe;this.strategy.plugins.push(t);for(const[r,i]of this._urlsToCacheKeys){const c=this._cacheKeysToIntegrities.get(i),o=this._urlsToCacheModes.get(r),l=new Request(r,{integrity:c,cache:o,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:i},request:l,event:e}))}const{updatedURLs:n,notUpdatedURLs:a}=t;return{updatedURLs:n,notUpdatedURLs:a}})}activate(e){return G(e,async()=>{const t=await self.caches.open(this.strategy.cacheName),n=await t.keys(),a=new Set(this._urlsToCacheKeys.values()),r=[];for(const i of n)a.has(i.url)||(await t.delete(i),r.push(i.url));return{deletedURLs:r}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){const t=e instanceof Request?e.url:e,n=this.getCacheKeyForURL(t);if(n)return(await self.caches.open(this.strategy.cacheName)).match(n)}createHandlerBoundToURL(e){const t=this.getCacheKeyForURL(e);if(!t)throw new u("non-precached-url",{url:e});return n=>(n.request=new Request(e),n.params=Object.assign({cacheKey:t},n.params),this.strategy.handle(n))}}let S;const te=()=>(S||(S=new je),S);try{self["workbox:routing:7.0.0"]&&_()}catch{}const se="GET",N=s=>s&&typeof s=="object"?s:{handle:s};let D=class{constructor(e,t,n=se){this.handler=N(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=N(e)}},He=class extends D{constructor(e,t,n){const a=({url:r})=>{const i=e.exec(r.href);if(i&&!(r.origin!==location.origin&&i.index!==0))return i.slice(1)};super(a,t,n)}},Fe=class{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,n=this.handleRequest({request:t,event:e});n&&e.respondWith(n)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,n=Promise.all(t.urlsToCache.map(a=>{typeof a=="string"&&(a=[a]);const r=new Request(...a);return this.handleRequest({request:r,event:e})}));e.waitUntil(n),e.ports&&e.ports[0]&&n.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const n=new URL(e.url,location.href);if(!n.protocol.startsWith("http"))return;const a=n.origin===location.origin,{params:r,route:i}=this.findMatchingRoute({event:t,request:e,sameOrigin:a,url:n});let c=i&&i.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let l;try{l=c.handle({url:n,request:e,event:t,params:r})}catch(h){l=Promise.reject(h)}const f=i&&i.catchHandler;return l instanceof Promise&&(this._catchHandler||f)&&(l=l.catch(async h=>{if(f)try{return await f.handle({url:n,request:e,event:t,params:r})}catch(b){b instanceof Error&&(h=b)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw h})),l}findMatchingRoute({url:e,sameOrigin:t,request:n,event:a}){const r=this._routes.get(n.method)||[];for(const i of r){let c;const o=i.match({url:e,sameOrigin:t,request:n,event:a});if(o)return c=o,(Array.isArray(c)&&c.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o=="boolean")&&(c=void 0),{route:i,params:c}}return{}}setDefaultHandler(e,t=se){this._defaultHandlerMap.set(t,N(e))}setCatchHandler(e){this._catchHandler=N(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")}},x;const Be=()=>(x||(x=new Fe,x.addFetchListener(),x.addCacheListener()),x);function qe(s,e,t){let n;if(typeof s=="string"){const r=new URL(s,location.href),i=({url:c})=>c.href===r.href;n=new D(i,e,t)}else if(s instanceof RegExp)n=new He(s,e,t);else if(typeof s=="function")n=new D(s,e,t);else if(s instanceof D)n=s;else throw new u("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return Be().registerRoute(n),n}function Ve(s,e=[]){for(const t of[...s.searchParams.keys()])e.some(n=>n.test(t))&&s.searchParams.delete(t);return s}function*Ge(s,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:t="index.html",cleanURLs:n=!0,urlManipulation:a}={}){const r=new URL(s,location.href);r.hash="",yield r.href;const i=Ve(r,e);if(yield i.href,t&&i.pathname.endsWith("/")){const c=new URL(i.href);c.pathname+=t,yield c.href}if(n){const c=new URL(i.href);c.pathname+=".html",yield c.href}if(a){const c=a({url:r});for(const o of c)yield o.href}}class Je extends D{constructor(e,t){const n=({request:a})=>{const r=e.getURLsToCacheKeys();for(const i of Ge(a.url,t)){const c=r.get(i);if(c){const o=e.getIntegrityForCacheKey(c);return{cacheKey:c,integrity:o}}}};super(n,e.strategy)}}function Qe(s){const e=te(),t=new Je(e,s);qe(t)}function ze(s){te().precache(s)}function Xe(s,e){ze(s),Qe(e)}try{self["workbox:core:7.0.0"]&&_()}catch{}const Ye=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},Ze=Ye;class et extends Error{constructor(e,t){const n=Ze(e,t);super(n),this.name=e,this.details=t}}function ne(s){s.then(()=>{})}const tt=(s,e)=>e.some(t=>s instanceof t);let Q,z;function st(){return Q||(Q=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function nt(){return z||(z=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const ae=new WeakMap,j=new WeakMap,re=new WeakMap,I=new WeakMap,q=new WeakMap;function at(s){const e=new Promise((t,n)=>{const a=()=>{s.removeEventListener("success",r),s.removeEventListener("error",i)},r=()=>{t(m(s.result)),a()},i=()=>{n(s.error),a()};s.addEventListener("success",r),s.addEventListener("error",i)});return e.then(t=>{t instanceof IDBCursor&&ae.set(t,s)}).catch(()=>{}),q.set(e,s),e}function rt(s){if(j.has(s))return;const e=new Promise((t,n)=>{const a=()=>{s.removeEventListener("complete",r),s.removeEventListener("error",i),s.removeEventListener("abort",i)},r=()=>{t(),a()},i=()=>{n(s.error||new DOMException("AbortError","AbortError")),a()};s.addEventListener("complete",r),s.addEventListener("error",i),s.addEventListener("abort",i)});j.set(s,e)}let H={get(s,e,t){if(s instanceof IDBTransaction){if(e==="done")return j.get(s);if(e==="objectStoreNames")return s.objectStoreNames||re.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 it(s){H=s(H)}function ct(s){return s===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...t){const n=s.call(W(this),e,...t);return re.set(n,e.sort?e.sort():[e]),m(n)}:nt().includes(s)?function(...e){return s.apply(W(this),e),m(ae.get(this))}:function(...e){return m(s.apply(W(this),e))}}function ot(s){return typeof s=="function"?ct(s):(s instanceof IDBTransaction&&rt(s),tt(s,st())?new Proxy(s,H):s)}function m(s){if(s instanceof IDBRequest)return at(s);if(I.has(s))return I.get(s);const e=ot(s);return e!==s&&(I.set(s,e),q.set(e,s)),e}const W=s=>q.get(s);function lt(s,e,{blocked:t,upgrade:n,blocking:a,terminated:r}={}){const i=indexedDB.open(s,e),c=m(i);return n&&i.addEventListener("upgradeneeded",o=>{n(m(i.result),o.oldVersion,o.newVersion,m(i.transaction),o)}),t&&i.addEventListener("blocked",o=>t(o.oldVersion,o.newVersion,o)),c.then(o=>{r&&o.addEventListener("close",()=>r()),a&&o.addEventListener("versionchange",l=>a(l.oldVersion,l.newVersion,l))}).catch(()=>{}),c}function ht(s,{blocked:e}={}){const t=indexedDB.deleteDatabase(s);return e&&t.addEventListener("blocked",n=>e(n.oldVersion,n)),m(t).then(()=>{})}const ut=["get","getKey","getAll","getAllKeys","count"],ft=["put","add","delete","clear"],K=new Map;function X(s,e){if(!(s instanceof IDBDatabase&&!(e in s)&&typeof e=="string"))return;if(K.get(e))return K.get(e);const t=e.replace(/FromIndex$/,""),n=e!==t,a=ft.includes(t);if(!(t in(n?IDBIndex:IDBObjectStore).prototype)||!(a||ut.includes(t)))return;const r=async function(i,...c){const o=this.transaction(i,a?"readwrite":"readonly");let l=o.store;return n&&(l=l.index(c.shift())),(await Promise.all([l[t](...c),a&&o.done]))[0]};return K.set(e,r),r}it(s=>({...s,get:(e,t,n)=>X(e,t)||s.get(e,t,n),has:(e,t)=>!!X(e,t)||s.has(e,t)}));try{self["workbox:expiration:7.0.0"]&&_()}catch{}const dt="workbox-expiration",E="cache-entries",Y=s=>{const e=new URL(s,location.href);return e.hash="",e.href};class pt{constructor(e){this._db=null,this._cacheName=e}_upgradeDb(e){const t=e.createObjectStore(E,{keyPath:"id"});t.createIndex("cacheName","cacheName",{unique:!1}),t.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&ht(this._cacheName)}async setTimestamp(e,t){e=Y(e);const n={url:e,timestamp:t,cacheName:this._cacheName,id:this._getId(e)},r=(await this.getDb()).transaction(E,"readwrite",{durability:"relaxed"});await r.store.put(n),await r.done}async getTimestamp(e){const n=await(await this.getDb()).get(E,this._getId(e));return n==null?void 0:n.timestamp}async expireEntries(e,t){const n=await this.getDb();let a=await n.transaction(E).store.index("timestamp").openCursor(null,"prev");const r=[];let i=0;for(;a;){const o=a.value;o.cacheName===this._cacheName&&(e&&o.timestamp<e||t&&i>=t?r.push(a.value):i++),a=await a.continue()}const c=[];for(const o of r)await n.delete(E,o.id),c.push(o.url);return c}_getId(e){return this._cacheName+"|"+Y(e)}async getDb(){return this._db||(this._db=await lt(dt,1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class gt{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 pt(e)}async expireEntries(){if(this._isRunning){this._rerunRequested=!0;return}this._isRunning=!0;const e=this._maxAgeSeconds?Date.now()-this._maxAgeSeconds*1e3:0,t=await this._timestampModel.expireEntries(e,this._maxEntries),n=await self.caches.open(this._cacheName);for(const a of t)await n.delete(a,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,ne(this.expireEntries()))}async updateTimestamp(e){await this._timestampModel.setTimestamp(e,Date.now())}async isURLExpired(e){if(this._maxAgeSeconds){const t=await this._timestampModel.getTimestamp(e),n=Date.now()-this._maxAgeSeconds*1e3;return t!==void 0?t<n:!0}else return!1}async delete(){this._rerunRequested=!1,await this._timestampModel.expireEntries(1/0)}}const g={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},$=s=>[g.prefix,s,g.suffix].filter(e=>e&&e.length>0).join("-"),mt=s=>{for(const e of Object.keys(g))s(e)},wt={updateDetails:s=>{mt(e=>{typeof s[e]=="string"&&(g[e]=s[e])})},getGoogleAnalyticsName:s=>s||$(g.googleAnalytics),getPrecacheName:s=>s||$(g.precache),getPrefix:()=>g.prefix,getRuntimeName:s=>s||$(g.runtime),getSuffix:()=>g.suffix},yt=new Set;function _t(s){yt.add(s)}class Rt{constructor(e={}){this.cachedResponseWillBeUsed=async({event:t,request:n,cacheName:a,cachedResponse:r})=>{if(!r)return null;const i=this._isResponseDateFresh(r),c=this._getCacheExpiration(a);ne(c.expireEntries());const o=c.updateTimestamp(n.url);if(t)try{t.waitUntil(o)}catch{}return i?r:null},this.cacheDidUpdate=async({cacheName:t,request:n})=>{const a=this._getCacheExpiration(t);await a.updateTimestamp(n.url),await a.expireEntries()},this._config=e,this._maxAgeSeconds=e.maxAgeSeconds,this._cacheExpirations=new Map,e.purgeOnQuotaError&&_t(()=>this.deleteCacheAndMetadata())}_getCacheExpiration(e){if(e===wt.getRuntimeName())throw new et("expire-custom-caches-only");let t=this._cacheExpirations.get(e);return t||(t=new gt(e,this._config),this._cacheExpirations.set(e,t)),t}_isResponseDateFresh(e){if(!this._maxAgeSeconds)return!0;const t=this._getDateHeaderTimestamp(e);if(t===null)return!0;const n=Date.now();return t>=n-this._maxAgeSeconds*1e3}_getDateHeaderTimestamp(e){if(!e.headers.has("date"))return null;const t=e.headers.get("date"),a=new Date(t).getTime();return isNaN(a)?null:a}async deleteCacheAndMetadata(){for(const[e,t]of this._cacheExpirations)await self.caches.delete(e),await t.delete();this._cacheExpirations=new Map}}try{self["workbox:routing:7.0.0"]&&_()}catch{}const ie="GET",v=s=>s&&typeof s=="object"?s:{handle:s};class T{constructor(e,t,n=ie){this.handler=v(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=v(e)}}class bt extends T{constructor(e,t,n){const a=({url:r})=>{const i=e.exec(r.href);if(i&&!(r.origin!==location.origin&&i.index!==0))return i.slice(1)};super(a,t,n)}}class Ct{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,n=this.handleRequest({request:t,event:e});n&&e.respondWith(n)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,n=Promise.all(t.urlsToCache.map(a=>{typeof a=="string"&&(a=[a]);const r=new Request(...a);return this.handleRequest({request:r,event:e})}));e.waitUntil(n),e.ports&&e.ports[0]&&n.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const n=new URL(e.url,location.href);if(!n.protocol.startsWith("http"))return;const a=n.origin===location.origin,{params:r,route:i}=this.findMatchingRoute({event:t,request:e,sameOrigin:a,url:n});let c=i&&i.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let l;try{l=c.handle({url:n,request:e,event:t,params:r})}catch(h){l=Promise.reject(h)}const f=i&&i.catchHandler;return l instanceof Promise&&(this._catchHandler||f)&&(l=l.catch(async h=>{if(f)try{return await f.handle({url:n,request:e,event:t,params:r})}catch(b){b instanceof Error&&(h=b)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw h})),l}findMatchingRoute({url:e,sameOrigin:t,request:n,event:a}){const r=this._routes.get(n.method)||[];for(const i of r){let c;const o=i.match({url:e,sameOrigin:t,request:n,event:a});if(o)return c=o,(Array.isArray(c)&&c.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o=="boolean")&&(c=void 0),{route:i,params:c}}return{}}setDefaultHandler(e,t=ie){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 R("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 R("unregister-route-route-not-registered")}}let k;const xt=()=>(k||(k=new Ct,k.addFetchListener(),k.addCacheListener()),k);function M(s,e,t){let n;if(typeof s=="string"){const r=new URL(s,location.href),i=({url:c})=>c.href===r.href;n=new T(i,e,t)}else if(s instanceof RegExp)n=new bt(s,e,t);else if(typeof s=="function")n=new T(s,e,t);else if(s instanceof T)n=s;else throw new R("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return xt().registerRoute(n),n}try{self["workbox:strategies:7.0.0"]&&_()}catch{}function P(s){return typeof s=="string"?new Request(s):s}class Et{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new _e,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const n of this._plugins)this._pluginStateMap.set(n,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this;let n=P(e);if(n.mode==="navigate"&&t instanceof FetchEvent&&t.preloadResponse){const i=await t.preloadResponse;if(i)return i}const a=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const i of this.iterateCallbacks("requestWillFetch"))n=await i({request:n.clone(),event:t})}catch(i){if(i instanceof Error)throw new R("plugin-error-request-will-fetch",{thrownErrorMessage:i.message})}const r=n.clone();try{let i;i=await fetch(n,n.mode==="navigate"?void 0:this._strategy.fetchOptions);for(const c of this.iterateCallbacks("fetchDidSucceed"))i=await c({event:t,request:r,response:i});return i}catch(i){throw a&&await this.runCallbacks("fetchDidFail",{error:i,event:t,originalRequest:a.clone(),request:r.clone()}),i}}async fetchAndCachePut(e){const t=await this.fetch(e),n=t.clone();return this.waitUntil(this.cachePut(e,n)),t}async cacheMatch(e){const t=P(e);let n;const{cacheName:a,matchOptions:r}=this._strategy,i=await this.getCacheKey(t,"read"),c=Object.assign(Object.assign({},r),{cacheName:a});n=await caches.match(i,c);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))n=await o({cacheName:a,matchOptions:r,cachedResponse:n,request:i,event:this.event})||void 0;return n}async cachePut(e,t){const n=P(e);await Ce(0);const a=await this.getCacheKey(n,"write");if(!t)throw new R("cache-put-with-no-response",{url:be(a.url)});const r=await this._ensureResponseSafeToCache(t);if(!r)return!1;const{cacheName:i,matchOptions:c}=this._strategy,o=await self.caches.open(i),l=this.hasCallback("cacheDidUpdate"),f=l?await ye(o,a.clone(),["__WB_REVISION__"],c):null;try{await o.put(a,l?r.clone():r)}catch(h){if(h instanceof Error)throw h.name==="QuotaExceededError"&&await Re(),h}for(const h of this.iterateCallbacks("cacheDidUpdate"))await h({cacheName:i,oldResponse:f,newResponse:r.clone(),request:a,event:this.event});return!0}async getCacheKey(e,t){const n=`${e.url} | ${t}`;if(!this._cacheKeys[n]){let a=e;for(const r of this.iterateCallbacks("cacheKeyWillBeUsed"))a=P(await r({mode:t,request:a,event:this.event,params:this.params}));this._cacheKeys[n]=a}return this._cacheKeys[n]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const n of this.iterateCallbacks(e))await n(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if(typeof t[e]=="function"){const n=this._pluginStateMap.get(t);yield r=>{const i=Object.assign(Object.assign({},r),{state:n});return t[e](i)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,n=!1;for(const a of this.iterateCallbacks("cacheWillUpdate"))if(t=await a({request:this.request,response:t,event:this.event})||void 0,n=!0,!t)break;return n||t&&t.status!==200&&(t=void 0),t}}class ce{constructor(e={}){this.cacheName=we.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});const t=e.event,n=typeof e.request=="string"?new Request(e.request):e.request,a="params"in e?e.params:void 0,r=new Et(this,{event:t,request:n,params:a}),i=this._getResponse(r,n,t),c=this._awaitComplete(i,r,n,t);return[i,c]}async _getResponse(e,t,n){await e.runCallbacks("handlerWillStart",{event:n,request:t});let a;try{if(a=await this._handle(t,e),!a||a.type==="error")throw new R("no-response",{url:t.url})}catch(r){if(r instanceof Error){for(const i of e.iterateCallbacks("handlerDidError"))if(a=await i({error:r,event:n,request:t}),a)break}if(!a)throw r}for(const r of e.iterateCallbacks("handlerWillRespond"))a=await r({event:n,request:t,response:a});return a}async _awaitComplete(e,t,n,a){let r,i;try{r=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:a,request:n,response:r}),await t.doneWaiting()}catch(c){c instanceof Error&&(i=c)}if(await t.runCallbacks("handlerDidComplete",{event:a,request:n,response:r,error:i}),t.destroy(),i)throw i}}class oe extends ce{async _handle(e,t){let n=await t.cacheMatch(e),a;if(!n)try{n=await t.fetchAndCachePut(e)}catch(r){r instanceof Error&&(a=r)}if(!n)throw new R("no-response",{url:e.url,error:a});return n}}const kt={cacheWillUpdate:async({response:s})=>s.status===200||s.status===0?s:null};class le extends ce{constructor(e={}){super(e),this.plugins.some(t=>"cacheWillUpdate"in t)||this.plugins.unshift(kt)}async _handle(e,t){const n=t.fetchAndCachePut(e).catch(()=>{});t.waitUntil(n);let a=await t.cacheMatch(e),r;if(!a)try{a=await n}catch(i){i instanceof Error&&(r=i)}if(!a)throw new R("no-response",{url:e.url,error:r});return a}}function Dt(s=""){return s.startsWith("/")}function Z(s=""){return(Dt(s)?s.slice(1):s)||"/"}const U="/.well-known/service",F="sw-update-reload-times",he="/lastUpdateMsgTimestamps",Ut=10,Lt=20*1e3;let ue=!1;function Pt(s,e){let t;return(...n)=>{clearTimeout(t),t=setTimeout(()=>{s.apply(this,n)},e)}}function Tt(s,e=50,t=5e3){return new Promise(n=>{const a=Date.now(),r=()=>{s()||Date.now()-a>=t?n():setTimeout(r,e)};r()})}self.addEventListener("message",s=>{s.data&&s.data.type==="CLIENT_UPDATE_READY"&&(console.log("Service Worker: client ready"),ue=!0)});async function Nt(s){const t=await(await caches.open(F)).match(`${he}-${s}`);if(t)try{const n=await t.text();return JSON.parse(n)}catch{return[]}return[]}async function vt(s,e){const t=await caches.open(F);if((await t.keys()).length>100){await caches.delete(F);return}const a=new Response(JSON.stringify(s));await t.put(`${he}-${e}`,a)}const Mt=Pt(async()=>{(await self.clients.matchAll()).forEach(e=>{e.postMessage({type:"SW_DOCUMENT_UPDATED"})})},100),ee=/updatedAt:\s*\d+,/g,At={cacheDidUpdate:async({request:s,oldResponse:e,newResponse:t})=>{if(e)try{let n=await e.clone().text(),a=await t.clone().text();if(s.url.includes("__blocklet__.js")&&(n=n.replace(ee,"updatedAt: ,"),a=a.replace(ee,"updatedAt: ,")),n!==a){const r=Date.now(),c=(await Nt(s.url)).filter(o=>r-o<Lt);if(c.length>=Ut){console.warn("[SW] update too frequent, skip:",s.url);return}await Tt(()=>ue),await vt(c,s.url),console.log("[SW] document version or session updated",s.url),Mt()}}catch(n){console.error("[SW] Error comparing document responses:",n)}}};Xe(([{"revision":null,"url":"assets/access-control-CrHHfd-3.js"},{"revision":null,"url":"assets/actions-DP5QUAr6.js"},{"revision":null,"url":"assets/AdapterDayjs-Cnt9tqu2.js"},{"revision":null,"url":"assets/add-component-core-8M0C-Kp3.js"},{"revision":null,"url":"assets/add-component-core-D-IRi6XF.css"},{"revision":null,"url":"assets/add-resource-BTg7Qs0I.js"},{"revision":null,"url":"assets/addon-BKkiKK74.js"},{"revision":null,"url":"assets/advanced-BaQVvy3K.js"},{"revision":null,"url":"assets/api-87p2GGd0.js"},{"revision":null,"url":"assets/appearance-CuPgS_bN.js"},{"revision":null,"url":"assets/ar-4JMeO2Q-.js"},{"revision":null,"url":"assets/ar-C_PbiO-w.js"},{"revision":null,"url":"assets/ArrowDropDown-BMwBndHf.js"},{"revision":null,"url":"assets/audit-logs-CUC_aqut.js"},{"revision":null,"url":"assets/authorize-DCQNYqJl.js"},{"revision":null,"url":"assets/base-chart-C2FJuVG1.js"},{"revision":null,"url":"assets/base32-CRxHrKOV.js"},{"revision":null,"url":"assets/branding-Di3by3dx.js"},{"revision":null,"url":"assets/branding-DrCX9AmH.js"},{"revision":null,"url":"assets/bundle-avatar-hjU0GiOA.js"},{"revision":null,"url":"assets/button-BWISngjs.js"},{"revision":null,"url":"assets/CheckCircle-41Yqmlux.js"},{"revision":null,"url":"assets/ChevronLeft-CLsrCaxE.js"},{"revision":null,"url":"assets/ChevronRight-BVlAyY8t.js"},{"revision":null,"url":"assets/click-to-copy-DoEzJWuJ.js"},{"revision":null,"url":"assets/cloneDeep-Jl_OPbSo.js"},{"revision":null,"url":"assets/collapse-QPZHNi8E.js"},{"revision":null,"url":"assets/Community-D4mv0jfL.js"},{"revision":null,"url":"assets/complete-EC4tK63r.js"},{"revision":null,"url":"assets/component-D9Dwvz3W.js"},{"revision":null,"url":"assets/config-BMkCrsxC.js"},{"revision":null,"url":"assets/config-navigation-BRSxDGox.js"},{"revision":null,"url":"assets/config-OasAWfj3.js"},{"revision":null,"url":"assets/config-space-DlI-IdsO.js"},{"revision":null,"url":"assets/confirm-C3U-iZgd.js"},{"revision":null,"url":"assets/connect-2DXv3-VS.js"},{"revision":null,"url":"assets/connect-CJtKCJvL.js"},{"revision":null,"url":"assets/connect-to-DJWMCDWB.js"},{"revision":null,"url":"assets/content-layout-BC2QkTYi.js"},{"revision":null,"url":"assets/dark-animation-DhFa8I7D.js"},{"revision":null,"url":"assets/dashboard-Dswj6QO1.js"},{"revision":null,"url":"assets/de-DXX_rGJR.js"},{"revision":null,"url":"assets/de-m_nuB8Qa.js"},{"revision":null,"url":"assets/default-animation-DARmPWCI.js"},{"revision":null,"url":"assets/delete-confirm-BPN0b1Ew.js"},{"revision":null,"url":"assets/DeleteOutline-5003D11l.js"},{"revision":null,"url":"assets/did-address-BW7HQteV.js"},{"revision":null,"url":"assets/domain-action-card-DK0_bx6-.js"},{"revision":null,"url":"assets/domain-i1NE8m1K.js"},{"revision":null,"url":"assets/domains-CDhyGAuz.js"},{"revision":null,"url":"assets/Done-LE-14AsK.js"},{"revision":null,"url":"assets/dot-iw3hN9HL.js"},{"revision":null,"url":"assets/Download-BGEarAho.js"},{"revision":null,"url":"assets/Edit-CrL54Zhc.js"},{"revision":null,"url":"assets/EditIcon-DfiDnAsm.js"},{"revision":null,"url":"assets/email-DLukryRf.js"},{"revision":null,"url":"assets/empty-spinner-BHwHZpq-.js"},{"revision":null,"url":"assets/Error-quFZHb54.js"},{"revision":null,"url":"assets/es-BrT673RG.js"},{"revision":null,"url":"assets/es-KnJQ_CSv.js"},{"revision":null,"url":"assets/exchange-passport-CtBW8-z_.js"},{"revision":null,"url":"assets/ExpandLess-DJGiqXwX.js"},{"revision":null,"url":"assets/fr-BmbyLkZB.js"},{"revision":null,"url":"assets/fr-k9jwmXxf.js"},{"revision":null,"url":"assets/fuel-TZdSL_3D.js"},{"revision":null,"url":"assets/gen-access-key-CqRouazq.js"},{"revision":null,"url":"assets/get-safe-url-CROWoUui.js"},{"revision":null,"url":"assets/get-safe-url-DPUvqYEg.js"},{"revision":null,"url":"assets/Google-woDe3URG.js"},{"revision":null,"url":"assets/hi-CL8_a9An.js"},{"revision":null,"url":"assets/hi-yiTjSXz3.js"},{"revision":null,"url":"assets/Holiday-DkzYmdt-.js"},{"revision":null,"url":"assets/Home-C0Jy-iyL.js"},{"revision":null,"url":"assets/home-hnxCx6H0.js"},{"revision":null,"url":"assets/id-Cd3xoDST.js"},{"revision":null,"url":"assets/id-DkcL27A7.js"},{"revision":null,"url":"assets/iframe-BB2MTAjn.js"},{"revision":null,"url":"assets/index-8eXqqyHQ.js"},{"revision":null,"url":"assets/index-AgKpYdvC.css"},{"revision":null,"url":"assets/index-B2NkqENf.js"},{"revision":null,"url":"assets/index-B6fg0S6c.js"},{"revision":null,"url":"assets/index-BAbxWghb.js"},{"revision":null,"url":"assets/index-BCtTVvHw.js"},{"revision":null,"url":"assets/index-BdgSI0pZ.js"},{"revision":null,"url":"assets/index-Bv7OAPJU.js"},{"revision":null,"url":"assets/index-BVBJxqPd.js"},{"revision":null,"url":"assets/index-BXRM3Fxt.js"},{"revision":null,"url":"assets/index-C_MX-sJs.js"},{"revision":null,"url":"assets/index-C-reBQ41.js"},{"revision":null,"url":"assets/index-C0Iiqot3.css"},{"revision":null,"url":"assets/index-C5pIrCeP.js"},{"revision":null,"url":"assets/index-CcRZdZB8.js"},{"revision":null,"url":"assets/index-CIN38Uuw.js"},{"revision":null,"url":"assets/index-CKY4HT0P.js"},{"revision":null,"url":"assets/index-ClKx_csi.js"},{"revision":null,"url":"assets/index-CnSfgOR1.js"},{"revision":null,"url":"assets/index-CPE8Apzb.js"},{"revision":null,"url":"assets/index-CsA1GkvG.js"},{"revision":null,"url":"assets/index-CTlzm-Mc.js"},{"revision":null,"url":"assets/index-D3Sj3zCK.js"},{"revision":null,"url":"assets/index-DEZojGsm.js"},{"revision":null,"url":"assets/index-DOq-_YXu.css"},{"revision":null,"url":"assets/index-DVQCgvFb.js"},{"revision":null,"url":"assets/index-gRIImn2q.js"},{"revision":null,"url":"assets/index-OIQ3e2Ld.js"},{"revision":null,"url":"assets/index-S_bysQ3H.js"},{"revision":null,"url":"assets/index-vo14BOSK.js"},{"revision":null,"url":"assets/index-zlAFuATT.js"},{"revision":null,"url":"assets/InfoOutlined-3bCMdMdL.js"},{"revision":null,"url":"assets/invitation-BvT07MYl.js"},{"revision":null,"url":"assets/invite-rbOwUpQz.js"},{"revision":null,"url":"assets/issue-passport-DqDO2lOV.js"},{"revision":null,"url":"assets/item-Kx7a4SrL.js"},{"revision":null,"url":"assets/ja-BVJLb0qY.js"},{"revision":null,"url":"assets/ja-Cn7b_8vh.js"},{"revision":null,"url":"assets/keyboard-arrow-down-rounded-DadBVmpO.js"},{"revision":null,"url":"assets/ko-BuxX0Qtk.js"},{"revision":null,"url":"assets/ko-Dd2Xcc8p.js"},{"revision":null,"url":"assets/Launch-DrVQ-_LF.js"},{"revision":null,"url":"assets/launch-result-message-AharZGq2.js"},{"revision":null,"url":"assets/LaunchOutlined-DCRD1Xd5.js"},{"revision":null,"url":"assets/layout-veO5MoKq.js"},{"revision":null,"url":"assets/list-CzMORzTV.js"},{"revision":null,"url":"assets/list-fB7PuMGP.js"},{"revision":null,"url":"assets/list-header-C7gle0n0.js"},{"revision":null,"url":"assets/localization-CWcvfX_h.js"},{"revision":null,"url":"assets/LockIcon-BEG59s5q.js"},{"revision":null,"url":"assets/log-D33dFtt_.css"},{"revision":null,"url":"assets/log-DFvq1Ya8.js"},{"revision":null,"url":"assets/logger-Ch0sfkGE.js"},{"revision":null,"url":"assets/login-Cc4U4UbE.js"},{"revision":null,"url":"assets/login-oauth-callback-BH3tsO_b.js"},{"revision":null,"url":"assets/logo-uploader-BfnTtNB4.js"},{"revision":null,"url":"assets/lost-passport-CEk2gBj4.js"},{"revision":null,"url":"assets/lottie-error-CMOXHtBH.js"},{"revision":null,"url":"assets/lottie-loading-o-GBrhM9.js"},{"revision":null,"url":"assets/lottie-react.esm-D2t-u0YU.js"},{"revision":null,"url":"assets/lottie-web-jYmAQWuC.js"},{"revision":null,"url":"assets/lottie-welcome-C9B95FIi.js"},{"revision":null,"url":"assets/Meeting-KSUAdbzW.js"},{"revision":null,"url":"assets/MoreHoriz-CCqkD-2X.js"},{"revision":null,"url":"assets/OffSick-B0VcZ-o0.js"},{"revision":null,"url":"assets/omit-BlzmxIB5.js"},{"revision":null,"url":"assets/open-window-DNB3B3k8.js"},{"revision":null,"url":"assets/overview-DqaHfHTX.js"},{"revision":null,"url":"assets/page-header-DmVEhivC.js"},{"revision":null,"url":"assets/passport-item-Dw5vAzG8.js"},{"revision":null,"url":"assets/permission-CmSuLv3N.js"},{"revision":null,"url":"assets/PlayArrow-b0SwYNYM.js"},{"revision":null,"url":"assets/preferences-DoIPeyXx.js"},{"revision":null,"url":"assets/profile-embed-BzGFlRQR.js"},{"revision":null,"url":"assets/pt-B3PPKZk-.js"},{"revision":null,"url":"assets/pt-BfbUt_Nx.js"},{"revision":null,"url":"assets/publish-resource-Dbw9ICt4.js"},{"revision":null,"url":"assets/QuestionMarkCircle-jbhclAfX.js"},{"revision":null,"url":"assets/raf-schd.esm-B3j6BePR.js"},{"revision":null,"url":"assets/react-beautiful-dnd.esm-B9_jlyiB.js"},{"revision":null,"url":"assets/ru-8o6MGLMc.js"},{"revision":null,"url":"assets/ru-uXrAFAz0.js"},{"revision":null,"url":"assets/runtime-D90jDC3r.js"},{"revision":null,"url":"assets/sanitize-B18rcrOf.js"},{"revision":null,"url":"assets/sdk-DDQwgEwY.js"},{"revision":null,"url":"assets/search-4YYphs0l.js"},{"revision":null,"url":"assets/section-BDMQAX_r.js"},{"revision":null,"url":"assets/security-D8kq04bN.js"},{"revision":null,"url":"assets/session-igceijP1.js"},{"revision":null,"url":"assets/setup-n8Ikg3vS.js"},{"revision":null,"url":"assets/shorten-label-BQvbtscf.js"},{"revision":null,"url":"assets/simple-select-0cjVFuay.js"},{"revision":null,"url":"assets/slicedToArray-DFQjSbCD.js"},{"revision":null,"url":"assets/spaces-DVZd70Fi.js"},{"revision":null,"url":"assets/start-YvnbU7Eo.js"},{"revision":null,"url":"assets/starting-progress-BOsNmsFB.js"},{"revision":null,"url":"assets/status-BGmXEfM-.js"},{"revision":null,"url":"assets/step-actions-_L8XSfG4.js"},{"revision":null,"url":"assets/studio-BImlv1KI.js"},{"revision":null,"url":"assets/switch-control-CGm8CkkK.js"},{"revision":null,"url":"assets/table-tips-C8uXQ5tF.js"},{"revision":null,"url":"assets/th-BnT_StPj.js"},{"revision":null,"url":"assets/th-ei5CkkZm.js"},{"revision":null,"url":"assets/traffic-NFBtntJ-.js"},{"revision":null,"url":"assets/transfer-CJjNcsEy.js"},{"revision":null,"url":"assets/TuneOutlined-CfZi6Ajz.js"},{"revision":null,"url":"assets/unsubscribe-Co6pOu2N.js"},{"revision":null,"url":"assets/use-blocklet-logo-BUV6ER3X.js"},{"revision":null,"url":"assets/use-mobile-CtTQsfXN.js"},{"revision":null,"url":"assets/use-mobile-DwzRjjku.js"},{"revision":null,"url":"assets/use-passport-id-B-b-_oYF.js"},{"revision":null,"url":"assets/use-server-logo-UTr-CyJD.js"},{"revision":null,"url":"assets/useAsync-DVHp96Uu.js"},{"revision":null,"url":"assets/useLocalStorage-Cw7tZL-P.js"},{"revision":null,"url":"assets/user-center-CHyAfsyF.js"},{"revision":null,"url":"assets/useSetState-CWq0AVWn.js"},{"revision":null,"url":"assets/util-BfQiNudG.js"},{"revision":null,"url":"assets/util-BKry4J3y.js"},{"revision":null,"url":"assets/vendor-arcblock-Cspz6Fmz.js"},{"revision":null,"url":"assets/vendor-hooks-BFlOfe0M.js"},{"revision":null,"url":"assets/vendor-mui-core-Bq8gXTan.js"},{"revision":null,"url":"assets/vendor-mui-x-1nqAyytV.js"},{"revision":null,"url":"assets/vendor-react-DEoibe3W.js"},{"revision":null,"url":"assets/vendor-utils-BotmZdBm.js"},{"revision":null,"url":"assets/vendor-ux-did-connect-DpSGLE7B.css"},{"revision":null,"url":"assets/vendor-ux-did-connect-ETVwYaIV.js"},{"revision":null,"url":"assets/vi-B1ypAqOQ.js"},{"revision":null,"url":"assets/vi-DmitUjjk.js"},{"revision":null,"url":"assets/ViewList-DHazaGfw.js"},{"revision":null,"url":"assets/WorkingRemotely-5Kw3C-_c.js"},{"revision":null,"url":"assets/wrap-locale-ugI1o5oc.js"},{"revision":null,"url":"assets/zh-syG1cNt6.js"},{"revision":null,"url":"assets/zh-tw-BMxcCLBp.js"},{"revision":null,"url":"assets/zh-tw-DnHJQaoN.js"},{"revision":null,"url":"assets/zh-vhAJ5xBV.js"},{"revision":"c6867dcc9fe758af0eeb979e0edc095a","url":"index.html"},{"revision":"629a14a7e3397a134f5a30b5dc735183","url":"registerSW.js"},{"revision":"07a287e43ae8e959a20d6b367a581667","url":"router-template-styles/styles.css"},{"revision":"8f9b8997bf5804519b8e9f8dd1bb6ef9","url":"share/shared-bridge.html"},{"revision":"3c1549cff96a2d2baec44397663c083e","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")));xe();self.addEventListener("activate",()=>{console.log("Service Worker activated")});self.addEventListener("install",s=>{console.log("Service Worker installed"),s.waitUntil(self.skipWaiting())});const fe=s=>!!(s.method!=="GET"||s.url.includes("/api")||s.url.includes("__meta__.js")||s.url.includes("__blocklet__.js"));M(({request:s})=>fe(s)?!1:s.url.includes("/static/"),new oe({cacheName:`static-${self.registration.scope}`,plugins:[new Rt({maxEntries:200})]}));M(({request:s,url:e})=>{var t,n;return(n=(t=self.blocklet)==null?void 0:t.canCache)!=null&&n.call(t,{url:e})?["image","font","style","script"].includes(s.destination):!1},new oe({cacheName:`static-resources-${self.registration.scope}`}));M(({request:s})=>fe(s)?!1:s.url.includes("/images/")||s.url.includes("/router/-template-styles/"),new le({cacheName:`StaleWhileRevalidate-${self.registration.scope}`}));const Ot={cacheKeyWillBeUsed({request:s}){const e=new URL(s.url);return s.destination==="document"&&e.pathname.startsWith(`${U}/admin`)?(e.pathname=`${U}/admin`,e.search="",e.toString()):s.url}},w={};M(({request:s})=>{const e=new URL(s.url);return s.destination==="document"&&e.pathname.startsWith(`${U}/admin`)?(Object.keys(w).forEach(t=>delete w[t]),!0):!w.env&&s.url.includes(`${Z(U)}/api/env`)?(w.env=!0,!0):!w.session&&s.url.includes(`${Z(U)}/api/did/session`)?(w.session=!0,!0):!w.blocklet&&s.url.endsWith("__blocklet__.js")?(w.blocklet=!0,!0):!1},new le({cacheName:`documents-${self.registration.scope}`,plugins:[At,Ot]}));
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.16.45-beta-20250610-112229-2eb0face",
6
+ "version": "1.16.45-beta-20250614-101901-d1700f8d",
7
7
  "description": "Provide unified services for every blocklet",
8
8
  "main": "api/index.js",
9
9
  "files": [
@@ -33,18 +33,18 @@
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.45-beta-20250610-112229-2eb0face",
37
- "@abtnode/auth": "1.16.45-beta-20250610-112229-2eb0face",
38
- "@abtnode/client": "1.16.45-beta-20250610-112229-2eb0face",
39
- "@abtnode/connect-storage": "1.16.45-beta-20250610-112229-2eb0face",
40
- "@abtnode/constant": "1.16.45-beta-20250610-112229-2eb0face",
41
- "@abtnode/core": "1.16.45-beta-20250610-112229-2eb0face",
42
- "@abtnode/cron": "1.16.45-beta-20250610-112229-2eb0face",
43
- "@abtnode/db-cache": "1.16.45-beta-20250610-112229-2eb0face",
44
- "@abtnode/logger": "1.16.45-beta-20250610-112229-2eb0face",
45
- "@abtnode/models": "1.16.45-beta-20250610-112229-2eb0face",
46
- "@abtnode/router-templates": "1.16.45-beta-20250610-112229-2eb0face",
47
- "@abtnode/util": "1.16.45-beta-20250610-112229-2eb0face",
36
+ "@abtnode/analytics": "1.16.45-beta-20250614-101901-d1700f8d",
37
+ "@abtnode/auth": "1.16.45-beta-20250614-101901-d1700f8d",
38
+ "@abtnode/client": "1.16.45-beta-20250614-101901-d1700f8d",
39
+ "@abtnode/connect-storage": "1.16.45-beta-20250614-101901-d1700f8d",
40
+ "@abtnode/constant": "1.16.45-beta-20250614-101901-d1700f8d",
41
+ "@abtnode/core": "1.16.45-beta-20250614-101901-d1700f8d",
42
+ "@abtnode/cron": "1.16.45-beta-20250614-101901-d1700f8d",
43
+ "@abtnode/db-cache": "1.16.45-beta-20250614-101901-d1700f8d",
44
+ "@abtnode/logger": "1.16.45-beta-20250614-101901-d1700f8d",
45
+ "@abtnode/models": "1.16.45-beta-20250614-101901-d1700f8d",
46
+ "@abtnode/router-templates": "1.16.45-beta-20250614-101901-d1700f8d",
47
+ "@abtnode/util": "1.16.45-beta-20250614-101901-d1700f8d",
48
48
  "@arcblock/did": "1.20.14",
49
49
  "@arcblock/did-auth": "1.20.14",
50
50
  "@arcblock/did-ext": "1.20.14",
@@ -54,20 +54,20 @@
54
54
  "@arcblock/jwt": "1.20.14",
55
55
  "@arcblock/validator": "1.20.14",
56
56
  "@arcblock/ws": "1.20.14",
57
- "@blocklet/constant": "1.16.45-beta-20250610-112229-2eb0face",
57
+ "@blocklet/constant": "1.16.45-beta-20250614-101901-d1700f8d",
58
58
  "@blocklet/dbhub": "^0.2.9",
59
- "@blocklet/did-space-js": "^1.0.59",
60
- "@blocklet/env": "1.16.45-beta-20250610-112229-2eb0face",
59
+ "@blocklet/did-space-js": "^1.0.60",
60
+ "@blocklet/env": "1.16.45-beta-20250614-101901-d1700f8d",
61
61
  "@blocklet/error": "^0.2.5",
62
62
  "@blocklet/form-builder": "^0.1.12",
63
63
  "@blocklet/form-collector": "^0.1.8",
64
- "@blocklet/images": "1.16.45-beta-20250610-112229-2eb0face",
65
- "@blocklet/js-sdk": "1.16.45-beta-20250610-112229-2eb0face",
64
+ "@blocklet/images": "1.16.45-beta-20250614-101901-d1700f8d",
65
+ "@blocklet/js-sdk": "1.16.45-beta-20250614-101901-d1700f8d",
66
66
  "@blocklet/mcp": "^1.10.2",
67
- "@blocklet/meta": "1.16.45-beta-20250610-112229-2eb0face",
68
- "@blocklet/sdk": "1.16.45-beta-20250610-112229-2eb0face",
69
- "@blocklet/theme": "^2.13.63",
70
- "@blocklet/theme-builder": "^0.1.19",
67
+ "@blocklet/meta": "1.16.45-beta-20250614-101901-d1700f8d",
68
+ "@blocklet/sdk": "1.16.45-beta-20250614-101901-d1700f8d",
69
+ "@blocklet/theme": "^2.13.67",
70
+ "@blocklet/theme-builder": "^0.1.23",
71
71
  "@blocklet/uploader-server": "^0.1.101",
72
72
  "@blocklet/xss": "^0.1.36",
73
73
  "@did-connect/authenticator": "^2.2.8",
@@ -95,6 +95,7 @@
95
95
  "jsonwebtoken": "^9.0.0",
96
96
  "jwks-rsa": "^3.1.0",
97
97
  "lodash": "^4.17.21",
98
+ "lru-cache": "^11.1.0",
98
99
  "minimatch": "^9.0.4",
99
100
  "nocache": "^2.1.0",
100
101
  "node-fetch": "2",
@@ -116,20 +117,19 @@
116
117
  "zod": "^3.24.3"
117
118
  },
118
119
  "resolutions": {
119
- "minimatch": "9.0.4",
120
120
  "whatwg-url": "14.0.0"
121
121
  },
122
122
  "devDependencies": {
123
- "@abtnode/ux": "1.16.45-beta-20250610-112229-2eb0face",
124
- "@arcblock/bridge": "^2.13.63",
125
- "@arcblock/did-connect": "^2.13.63",
126
- "@arcblock/icons": "^2.13.63",
127
- "@arcblock/react-hooks": "^2.13.63",
128
- "@arcblock/ux": "^2.13.63",
129
- "@blocklet/launcher-layout": "^2.13.63",
130
- "@blocklet/payment-react": "^1.18.54",
131
- "@blocklet/tracker": "1.16.45-beta-20250610-112229-2eb0face",
132
- "@blocklet/ui-react": "^2.13.63",
123
+ "@abtnode/ux": "1.16.45-beta-20250614-101901-d1700f8d",
124
+ "@arcblock/bridge": "^2.13.67",
125
+ "@arcblock/did-connect": "^2.13.67",
126
+ "@arcblock/icons": "^2.13.67",
127
+ "@arcblock/react-hooks": "^2.13.67",
128
+ "@arcblock/ux": "^2.13.67",
129
+ "@blocklet/launcher-layout": "^2.13.67",
130
+ "@blocklet/payment-react": "^1.18.56",
131
+ "@blocklet/tracker": "1.16.45-beta-20250614-101901-d1700f8d",
132
+ "@blocklet/ui-react": "^2.13.67",
133
133
  "@blocklet/uploader": "^0.1.95",
134
134
  "@emotion/react": "^11.11.4",
135
135
  "@emotion/styled": "^11.11.5",
@@ -206,5 +206,5 @@
206
206
  "url": "https://github.com/ArcBlock/blocklet-server/issues",
207
207
  "email": "shijun@arcblock.io"
208
208
  },
209
- "gitHead": "d35fb6c907c29f4466fa965c079e1662dc77e582"
209
+ "gitHead": "5fb4c294b2754d660fa946ac85c962edb2deaad2"
210
210
  }
@@ -1,159 +0,0 @@
1
- const isEmpty = require('lodash/isEmpty');
2
- const { getPassportStatusEndpoint, getApplicationInfo } = require('@abtnode/auth/lib/auth');
3
- const { createPassportVC, upsertToPassports, createUserPassport } = require('@abtnode/auth/lib/passport');
4
- const { getActivePassports } = require('@abtnode/util/lib/passport');
5
- const { VC_TYPE_NODE_PASSPORT, VC_TYPE_GENERAL_PASSPORT } = require('@abtnode/constant');
6
- const { getAvatarByEmail, getAvatarByUrl, getUserAvatarUrl } = require('@abtnode/util/lib/user');
7
- const { getBlockletAppIdList } = require('@blocklet/meta/lib/util');
8
- const pick = require('lodash/pick');
9
- const uniq = require('lodash/uniq');
10
- const { LOGIN_PROVIDER } = require('@blocklet/constant');
11
-
12
- const { PASSPORT_LOG_ACTION, PASSPORT_ISSUE_ACTION } = require('@abtnode/constant');
13
- const { sendToUser } = require('../notification');
14
-
15
- const PASSPORT_VC_TYPES = [VC_TYPE_GENERAL_PASSPORT, VC_TYPE_NODE_PASSPORT];
16
-
17
- async function transferPassport(fromUser, toUser, { req, teamDid, node, nodeInfo, revokePassport = false }) {
18
- if (!fromUser || !toUser) {
19
- return;
20
- }
21
- const {
22
- name: issuerName,
23
- wallet: issuerWallet,
24
- passportColor,
25
- } = await getApplicationInfo({ node, nodeInfo, teamDid });
26
-
27
- const blockletInfo = await req.getBlockletInfo();
28
- const { wallet: blockletWallet } = blockletInfo;
29
- const issuerDidList = uniq([blockletWallet.address, ...getBlockletAppIdList(blockletInfo)]);
30
- const waitPassportList = getActivePassports(fromUser, issuerDidList);
31
-
32
- if (waitPassportList.length === 0) {
33
- // 没有待转移的 passport,无需进行下面的步骤
34
- return;
35
- }
36
-
37
- const attachments = await Promise.all(
38
- waitPassportList.map(async (x) => {
39
- const vcParams = {
40
- issuerName,
41
- issuerWallet,
42
- ownerDid: toUser.did,
43
- passport: { ...pick(x, ['name', 'title', 'specVersion']), endpoint: x.endpoint || blockletInfo.appUrl },
44
- endpoint: getPassportStatusEndpoint({
45
- baseUrl: x.endpoint || blockletInfo.appUrl,
46
- userDid: toUser.did,
47
- teamDid,
48
- }),
49
- ownerProfile: {
50
- email: toUser.email,
51
- fullName: toUser.fullName,
52
- avatar: getUserAvatarUrl(x.endpoint || blockletInfo.appUrl, toUser.avatar),
53
- },
54
- preferredColor: passportColor,
55
- types: teamDid === nodeInfo.did ? [VC_TYPE_NODE_PASSPORT] : x.types,
56
- purpose: teamDid === nodeInfo.did || isEmpty(x.types) ? 'login' : 'verification',
57
- display: x.display,
58
- };
59
-
60
- const vc = await createPassportVC(vcParams);
61
- return {
62
- type: 'vc',
63
- data: {
64
- credential: vc,
65
- tag: x.name,
66
- },
67
- };
68
- })
69
- );
70
-
71
- const insertPassportList = attachments.map((item, index) => {
72
- return {
73
- ...createUserPassport(item.data.credential, { role: item.data.tag, display: item.data.display }),
74
- ...pick(waitPassportList[index], ['firstLoginAt', 'lastLoginAt', 'lastLoginIp']),
75
- userDid: toUser.did,
76
- };
77
- });
78
-
79
- const passportNameList = attachments.map((x) => x.data.credential.name);
80
-
81
- await sendToUser(
82
- toUser.did,
83
- {
84
- title: 'Transfer passports',
85
- body: `You received passport ${passportNameList.join(', ')} because you just bind your DID Wallet to ${
86
- fromUser.email
87
- }`,
88
- attachments,
89
- },
90
- { req }
91
- );
92
-
93
- const passports = insertPassportList.reduce((acc, item) => {
94
- return upsertToPassports(acc, item);
95
- }, fromUser.passports || []);
96
- const toUserExist = await node.getUser({
97
- teamDid,
98
- user: { did: toUser.did },
99
- options: {
100
- enableConnectedAccount: false,
101
- },
102
- });
103
- // HACK: 默认情况下,应该将新 passport 添加到 toUser,但某些情况下,toUser 是绑定到 fromUser 的 connectAccount,所以需要将新通行证添加到 fromUser
104
- if (toUserExist) {
105
- await node.updateUser({
106
- teamDid,
107
- user: {
108
- did: toUser.did,
109
- pk: toUser.pk,
110
- passports,
111
- },
112
- });
113
- } else {
114
- await node.updateUser({
115
- teamDid,
116
- user: {
117
- did: fromUser.did,
118
- pk: fromUser.pk,
119
- passports,
120
- },
121
- });
122
- }
123
-
124
- await Promise.all(
125
- insertPassportList.map((item) => {
126
- return node.createPassportLog(
127
- teamDid,
128
- {
129
- passportId: item.id,
130
- action: PASSPORT_LOG_ACTION.ISSUE,
131
- operatorDid: fromUser.did,
132
- metadata: {
133
- action: PASSPORT_ISSUE_ACTION.ISSUE_ON_TRANSFER,
134
- },
135
- },
136
- req
137
- );
138
- })
139
- );
140
-
141
- if (revokePassport) {
142
- const revokePendingList = waitPassportList
143
- .filter((item) => item.id)
144
- .map((item) => {
145
- if (fromUser.sourceProvider === LOGIN_PROVIDER.AUTH0) {
146
- return node.removeUserPassport({ teamDid, userDid: fromUser.did, passportId: item.id });
147
- }
148
- return node.revokeUserPassport({ teamDid, userDid: fromUser.did, passportId: item.id });
149
- });
150
- await Promise.all(revokePendingList);
151
- }
152
- }
153
-
154
- module.exports = {
155
- getAvatarByUrl,
156
- getAvatarByEmail,
157
- transferPassport,
158
- PASSPORT_VC_TYPES,
159
- };