@abtnode/blocklet-services 1.16.25 → 1.16.26-beta-c724c8e6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/index.js +1 -1
- package/api/services/auth/connect/receive-transfer-app-owner.js +1 -1
- package/api/util/federated.js +2 -1
- package/api/util/index.js +1 -1
- package/dist/assets/{Add-fqv5dYhK.js → Add-CSALqOL2.js} +1 -1
- package/dist/assets/Alert-Bfy43tWu.js +1 -0
- package/dist/assets/{ArrowDropDown-acg2e0kM.js → ArrowDropDown-YQC0m5j6.js} +1 -1
- package/dist/assets/{Avatar-Wi9J6JgS.js → Avatar-kRZlSVDZ.js} +1 -1
- package/dist/assets/{ButtonGroup-lRYajIq-.js → ButtonGroup-B9nwPHBC.js} +1 -1
- package/dist/assets/{CheckCircle-Z4O4Mjwj.js → CheckCircle-B1QjBTyZ.js} +1 -1
- package/dist/assets/{ChevronRight-kd90TcZt.js → ChevronRight-DP0p_UTV.js} +1 -1
- package/dist/assets/{CloseOutlined-twGwkp1V.js → CloseOutlined-Dd6P0mUS.js} +1 -1
- package/dist/assets/{Delete-baeq4z3e.js → Delete-DXQBSw3p.js} +1 -1
- package/dist/assets/{DeleteOutline-lsNZfg_t.js → DeleteOutline-BcuMj2Om.js} +1 -1
- package/dist/assets/{Done-nQ7vdlYU.js → Done-C_QFBMZp.js} +1 -1
- package/dist/assets/{Download-k5XX4dTL.js → Download-E58lW-mA.js} +1 -1
- package/dist/assets/{Edit-XaiOy2Xx.js → Edit-Cb5DHfSS.js} +1 -1
- package/dist/assets/{EditIcon-gUEbH7RR.js → EditIcon-Nlg8TK77.js} +1 -1
- package/dist/assets/{ExpandMore-Y-GY23eE.js → ExpandMore-CboKri_u.js} +1 -1
- package/dist/assets/{FilterList--1bXVDoV.js → FilterList-wuXDGTLe.js} +4 -4
- package/dist/assets/{FormControl-lbyrVtJ0.js → FormControl-C-HIkhGC.js} +1 -1
- package/dist/assets/{FormControlLabel-w9vgx7Yo.js → FormControlLabel-BMm4Nb7L.js} +1 -1
- package/dist/assets/{FormGroup-j6mNPGc4.js → FormGroup-sFGTqDL0.js} +1 -1
- package/dist/assets/{Google--x6bIAdx.js → Google-6skZzWel.js} +4 -4
- package/dist/assets/{Grid-BBXWNjXi.js → Grid-DrgCuwdw.js} +1 -1
- package/dist/assets/{Hidden-GQzdfHD2.js → Hidden-DGbIB_cs.js} +1 -1
- package/dist/assets/{InfoOutlined-pQTJbNAR.js → InfoOutlined-BzdWDdEW.js} +1 -1
- package/dist/assets/{InputAdornment-YKNFOPoW.js → InputAdornment-DLeNk04D.js} +1 -1
- package/dist/assets/{InputLabel-M8f8zxdp.js → InputLabel-BEw4IlsK.js} +1 -1
- package/dist/assets/{LastPage-qjBY70oZ.js → LastPage-B7fr2Bgg.js} +1 -1
- package/dist/assets/{Launch-0FC6BZcS.js → Launch-bbh5Q3b_.js} +1 -1
- package/dist/assets/{LaunchOutlined-VfVP-A8e.js → LaunchOutlined-Dv6lMSrT.js} +1 -1
- package/dist/assets/{Link-zECde_mP.js → Link-CkTpavTP.js} +1 -1
- package/dist/assets/{ListItem-PsjMYGYW.js → ListItem-DUdj8Kmm.js} +1 -1
- package/dist/assets/{ListItemText-v-YDDXLu.js → ListItemText-Caaw8krj.js} +1 -1
- package/dist/assets/{LockIcon-YPDKLYDR.js → LockIcon-DX6Zdkki.js} +1 -1
- package/dist/assets/{Loop-FvY8qKla.js → Loop-8GJykIwr.js} +1 -1
- package/dist/assets/{MoreHoriz-lASj8aGx.js → MoreHoriz-D9SvJLnk.js} +1 -1
- package/dist/assets/{MoreVert-bHHnG_Se.js → MoreVert-Diuqsm0S.js} +1 -1
- package/dist/assets/{OpenInNew-OG9KtzMo.js → OpenInNew-7hVLsi_L.js} +1 -1
- package/dist/assets/{Pagination-V3cV30lP.js → Pagination-Clu1MG6s.js} +1 -1
- package/dist/assets/{PlayArrow-hVUuCAl-.js → PlayArrow-Ctey7itN.js} +1 -1
- package/dist/assets/{RadioGroup-EPTUHzZr.js → RadioGroup-CF5xStKS.js} +1 -1
- package/dist/assets/{Search-DgnsoBhR.js → Search-BwpU7y5Y.js} +1 -1
- package/dist/assets/{Select-wfeVFmBa.js → Select-DeQrk7uE.js} +2 -2
- package/dist/assets/{ServerLogo-jR1OIGkM.js → ServerLogo-DdMEc5OT.js} +1 -1
- package/dist/assets/{Skeleton-6ZVG1Wck.js → Skeleton-BYZaCcFY.js} +3 -3
- package/dist/assets/{Slider-ugTmN6S_.js → Slider-RDFV-ee2.js} +1 -1
- package/dist/assets/{Stepper-gPp4biHj.js → Stepper-Byik0SvR.js} +1 -1
- package/dist/assets/{TableRow-zrhpBalc.js → TableRow-BUGcp46F.js} +2 -2
- package/dist/assets/{TextField-W6oenAin.js → TextField-1REpbtHI.js} +1 -1
- package/dist/assets/{Toolbar-kSVa89hA.js → Toolbar-D1UExKwh.js} +1 -1
- package/dist/assets/{ViewList-0K6WNbjd.js → ViewList-DHOYXrF1.js} +1 -1
- package/dist/assets/access-control-DkXxF3G5.js +13 -0
- package/dist/assets/{actions-fEYd3Zzl.js → actions-BJCgpUa1.js} +1 -1
- package/dist/assets/{add-component-core-O259MLsf.js → add-component-core-BcdmPIzQ.js} +54 -54
- package/dist/assets/add-resource-BgRIgUuu.js +1 -0
- package/dist/assets/{addon-OoVGx7qV.js → addon-DPweWyQ9.js} +1 -1
- package/dist/assets/{analytics-m0u-NVoq.js → analytics-DMUwKOCx.js} +7 -7
- package/dist/assets/api-CfHak9bu.js +1 -0
- package/dist/assets/ar-CtvBwC9x.js +1 -0
- package/dist/assets/{audit-logs-GKeDBaow.js → audit-logs-CFobEMUo.js} +1 -1
- package/dist/assets/{button-uxbH21Zq.js → button-BOQqSIjQ.js} +1 -1
- package/dist/assets/{click-to-copy--qY6cnLF.js → click-to-copy-BhXu5Oa9.js} +1 -1
- package/dist/assets/{complete-ghyYqeBw.js → complete-B5EdQ5rD.js} +2 -2
- package/dist/assets/{component-sKQ_1mkW.js → component-CPiVNvUd.js} +36 -36
- package/dist/assets/{config-peT7nMj4.js → config-DEX2jzvW.js} +2 -2
- package/dist/assets/{config-aGlNeJvv.js → config-Dmy2r2ct.js} +1 -1
- package/dist/assets/{config-navigation-WtVoLchG.js → config-navigation-BZ-m12wq.js} +5 -5
- package/dist/assets/{config-space-cvgqOVHm.js → config-space-CAE9_X8D.js} +2 -2
- package/dist/assets/{confirm-b2aIw6ht.js → confirm-Cxv5rlKs.js} +1 -1
- package/dist/assets/{connect-VkiahrPx.js → connect-BY6uhibK.js} +1 -1
- package/dist/assets/{connect-1vYWNPD1.js → connect-th3KGF1X.js} +2 -2
- package/dist/assets/connect-to-BMXxyPoQ.js +54 -0
- package/dist/assets/{content-layout-Avo37FUx.js → content-layout-CAjryyt5.js} +1 -1
- package/dist/assets/{dashboard-hH4ldZxt.js → dashboard-x-SwAZSt.js} +8 -8
- package/dist/assets/de-Dne-I8J5.js +1 -0
- package/dist/assets/{did-address-r4LrHsNJ.js → did-address-BdzARvFL.js} +1 -1
- package/dist/assets/{domain-s9bkfIdC.js → domain-Dg4C4gEx.js} +2 -2
- package/dist/assets/{domain-list-vvqfefP7.js → domain-list-DQo9izp6.js} +2 -2
- package/dist/assets/es-oIIJHLwJ.js +1 -0
- package/dist/assets/{exchange-passport-13f-NXrO.js → exchange-passport-BSDNgDh5.js} +1 -1
- package/dist/assets/{fallback-QWR-uZ1t.js → fallback-CUhtWylI.js} +1 -1
- package/dist/assets/fr-DhdScjyY.js +1 -0
- package/dist/assets/{fuel-8t7kY2mB.js → fuel-CSlGFStq.js} +1 -1
- package/dist/assets/{fullpage-6xHD82Cr.js → fullpage-CCEVYKVy.js} +1 -1
- package/dist/assets/hi-zO0chDpQ.js +1 -0
- package/dist/assets/home-4YK2sPir.js +1 -0
- package/dist/assets/id-Ck1JiAPu.js +1 -0
- package/dist/assets/iframe-VDCuXFSq.js +1 -0
- package/dist/assets/{index-Wjwa0cOQ.js → index-B8il3K7L.js} +8 -8
- package/dist/assets/{index-sJqh01NS.js → index-BIl2byhA.js} +1 -1
- package/dist/assets/index-BUTxi5wJ.js +221 -0
- package/dist/assets/{index-ZZs7ZSmY.js → index-BWH1BL7e.js} +2 -2
- package/dist/assets/{index-fu9fK7pt.js → index-B_nWZpYb.js} +1 -1
- package/dist/assets/{index-H-1bD5E0.js → index-BkHtGxzx.js} +1 -1
- package/dist/assets/{index-bgLnrtLA.js → index-BnqbdDV9.js} +7 -7
- package/dist/assets/{index-hoFepcTV.js → index-Brl8hqFl.js} +1 -1
- package/dist/assets/{index-NdBEK8Bl.js → index-C6Ue8EuO.js} +160 -157
- package/dist/assets/{index-F9vDNwHQ.css → index-CCovGSMB.css} +1 -1
- package/dist/assets/{index-JuS3WfQt.js → index-CEOtTrx7.js} +1 -1
- package/dist/assets/{index-Dl94rmeF.js → index-COFYjffY.js} +1 -1
- package/dist/assets/{index-FNrjqxyS.js → index-COXGvP9H.js} +1 -1
- package/dist/assets/index-Cj9Ilrq-.js +1 -0
- package/dist/assets/index-CzzCTVSf.js +54 -0
- package/dist/assets/{index-chJaccxy.js → index-D2-McmJV.js} +9 -9
- package/dist/assets/{index-MirmvGsd.js → index-D5uLks1u.js} +1 -1
- package/dist/assets/{index-jy1-LBfT.js → index-DGMWtahG.js} +4 -4
- package/dist/assets/{index-mpTP79cg.js → index-DG_ypNN6.js} +1 -1
- package/dist/assets/{index-YnKRdxXK.js → index-DSyhtbQu.js} +1 -1
- package/dist/assets/index-DdaeL0pn.js +13 -0
- package/dist/assets/{index-RGb4v1N9.js → index-De7ZBKgW.js} +12 -12
- package/dist/assets/{index-5Y-_rvNQ.js → index-DlBowrsh.js} +15 -15
- package/dist/assets/{index-1_TlP6sd.js → index-DncF0fB3.js} +1 -1
- package/dist/assets/{index-IunnZV0n.js → index-KKIYuddO.js} +8 -8
- package/dist/assets/{index-ci8nhgp1.js → index-OGKPRmXX.js} +1 -1
- package/dist/assets/{index-_bNlMvQb.js → index-i7JgVpS8.js} +2 -8
- package/dist/assets/{index-TS6UYx6i.js → index-iVkbhCIq.js} +1 -1
- package/dist/assets/{index.es-HSBEj3GM.js → index.es-CHEOrdi2.js} +1 -1
- package/dist/assets/{index.esm-EwSckbet.js → index.esm-1E_GgTvg.js} +1 -1
- package/dist/assets/{invitation-jGsQVGc5.js → invitation-l8cfulo_.js} +4 -4
- package/dist/assets/{invite-KxhZeZua.js → invite-D5vQgiOc.js} +1 -1
- package/dist/assets/issue-passport-Cf-xm3hp.js +1 -0
- package/dist/assets/item-BccTJwxu.js +1 -0
- package/dist/assets/ja-CJDb8rhQ.js +1 -0
- package/dist/assets/{jss-plugin-props-sort.esm-bLo1Evve.js → jss-plugin-props-sort.esm-CAOI9fXo.js} +5 -5
- package/dist/assets/ko-d6gRwvhy.js +1 -0
- package/dist/assets/{launch-result-message-dY2iMilP.js → launch-result-message-CfYP3oYm.js} +1 -1
- package/dist/assets/{layout-e5H4XbgR.js → layout-B7TaVAOp.js} +2 -2
- package/dist/assets/{list-header-H85FxnUd.js → list-header-DzErmZPF.js} +1 -1
- package/dist/assets/localization-CDq-HG2y.js +1 -0
- package/dist/assets/{log-XmvgUYJV.js → log-DnrPjYaF.js} +1 -1
- package/dist/assets/{login-WV60NNnV.js → login-C_d3kcDB.js} +1 -1
- package/dist/assets/{logo-uploader-dLVBmlFg.js → logo-uploader-CwSvo0ae.js} +8 -8
- package/dist/assets/lost-passport-Ff-IHu4a.js +169 -0
- package/dist/assets/{lottie-nlmxqKlE.js → lottie-k5jCb9t6.js} +1 -1
- package/dist/assets/notifications-BYPIYVNe.js +62 -0
- package/dist/assets/overview-Be7QvIZN.js +12 -0
- package/dist/assets/{page-header-v_K419Ac.js → page-header-ByCAXek-.js} +1 -1
- package/dist/assets/{permission-ABtmXTuW.js → permission-D8W7kw-h.js} +1 -1
- package/dist/assets/{preferences-k_7KgW5w.js → preferences-SvUeEo-H.js} +1 -1
- package/dist/assets/pt-B-aZwggu.js +1 -0
- package/dist/assets/publish-resource-BxHcEnAH.js +1 -0
- package/dist/assets/{react-ao8ifLH_.js → react-BiUsLSvX.js} +8 -8
- package/dist/assets/{redux-eumHG9Ya.js → redux-BEagnTzd.js} +1 -1
- package/dist/assets/ru-C3IFuM_m.js +1 -0
- package/dist/assets/{selector-lFou3wXO.js → selector-Btvzcs3I.js} +3 -3
- package/dist/assets/session-Bf7V9tjJ.js +1 -0
- package/dist/assets/{setup-ARWRhDFy.js → setup-DUlhW3pN.js} +9 -9
- package/dist/assets/{slicedToArray-R9kg3ydD.js → slicedToArray-Alir59X0.js} +2 -2
- package/dist/assets/{spaces-y8AzCBZN.js → spaces-azJeDl15.js} +1 -1
- package/dist/assets/{start-ZDZ1ioO6.js → start-BELza-Mc.js} +1 -1
- package/dist/assets/{step-actions--VVhNAmi.js → step-actions-CmNdp14l.js} +1 -1
- package/dist/assets/{studio-zggObH8h.js → studio-C2Ej83Gl.js} +1 -1
- package/dist/assets/{switch-control-Yn6cWwSf.js → switch-control-BuCqXYS5.js} +1 -1
- package/dist/assets/th-CoOC9Fdr.js +1 -0
- package/dist/assets/{toUpper-QMvcoiWG.js → toUpper-7Va8nJbM.js} +1 -1
- package/dist/assets/transfer-DYRzJT9S.js +16 -0
- package/dist/assets/{ua-parser-MgngbXVk.js → ua-parser-B4fL4aLk.js} +2 -2
- package/dist/assets/{uniqBy-et6jS2Aa.js → uniqBy-D7b07JqH.js} +1 -1
- package/dist/assets/{unsubscribe-tcM4xxw3.js → unsubscribe-DbVpYahm.js} +1 -1
- package/dist/assets/use-blocklet-info-for-connect-did-spaces-CU1i1qSA.js +1 -0
- package/dist/assets/useAsync-C0DeDjqc.js +1 -0
- package/dist/assets/{useFormControl-hft_BGqP.js → useFormControl-DwATx00U.js} +1 -1
- package/dist/assets/{useLocalStorage-5hZfnQUd.js → useLocalStorage-O0eB5S4S.js} +1 -1
- package/dist/assets/{useSetState-0ShTN-QE.js → useSetState-Cvi1fL6F.js} +1 -1
- package/dist/assets/useSlot-eNkNGL79.js +1 -0
- package/dist/assets/{user-center-6JSNAtav.js → user-center-S1eifUHr.js} +1 -1
- package/dist/assets/user-sessions-C-s-TSGZ.js +1 -0
- package/dist/assets/{util-NLYqDddJ.js → util-CY67-DOO.js} +1 -1
- package/dist/assets/vi-4_K1eJyK.js +1 -0
- package/dist/assets/wrap-locale-Bb5r-LIM.js +1 -0
- package/dist/assets/zh-B3t5p9W7.js +2 -0
- package/dist/assets/zh-tw-RApzLgwA.js +1 -0
- package/dist/index.html +2 -2
- package/dist/service-worker.js +2 -1752
- package/package.json +39 -39
- package/dist/assets/Alert-QxQP6nLe.js +0 -1
- package/dist/assets/access-control-lqeL04xS.js +0 -13
- package/dist/assets/add-resource-PL-7Cqbo.js +0 -1
- package/dist/assets/api-JdyjIzZ7.js +0 -1
- package/dist/assets/ar-fPoAp63K.js +0 -1
- package/dist/assets/connect-to-VVkrWXpx.js +0 -54
- package/dist/assets/de-SxNezp7R.js +0 -1
- package/dist/assets/es-dNi5rRte.js +0 -1
- package/dist/assets/fr-uSakQJtB.js +0 -1
- package/dist/assets/hi-Ytu7go_o.js +0 -1
- package/dist/assets/home-prDJP1vN.js +0 -1
- package/dist/assets/id-te5mqOnp.js +0 -1
- package/dist/assets/iframe-R8rAYMnn.js +0 -1
- package/dist/assets/index-G5Tqb7tu.js +0 -221
- package/dist/assets/index-Jcr8esMm.js +0 -1
- package/dist/assets/index-Tys9zsjU.js +0 -1
- package/dist/assets/index-bX4hWAvF.js +0 -54
- package/dist/assets/index-xq1BazCi.js +0 -13
- package/dist/assets/issue-passport-cwxYmfl-.js +0 -1
- package/dist/assets/ja-OpUWOcZU.js +0 -1
- package/dist/assets/ko-lILou2tB.js +0 -1
- package/dist/assets/localization-dKtkWfCP.js +0 -1
- package/dist/assets/lost-passport-Pjdx6_fH.js +0 -169
- package/dist/assets/notifications-D82a4tmz.js +0 -62
- package/dist/assets/overview-vUP7CiQf.js +0 -12
- package/dist/assets/pt-GqNQVp8c.js +0 -1
- package/dist/assets/publish-resource-jWTLqVL5.js +0 -1
- package/dist/assets/ru-qJiTbTeh.js +0 -1
- package/dist/assets/session-AG-xGSdP.js +0 -1
- package/dist/assets/th-jh8eUZZR.js +0 -1
- package/dist/assets/transfer-wURup8-H.js +0 -16
- package/dist/assets/use-blocklet-info-for-connect-did-spaces-rbrAZhHq.js +0 -1
- package/dist/assets/useAsync-R7mQBX4E.js +0 -1
- package/dist/assets/useSlot-S2mM1BYb.js +0 -1
- package/dist/assets/user-sessions-95DNVhRl.js +0 -1
- package/dist/assets/vi-1a4YQXnq.js +0 -1
- package/dist/assets/wrap-locale-0QLC53p3.js +0 -7
- package/dist/assets/zh-o4AqgTyY.js +0 -2
- package/dist/assets/zh-tw-qnWxTKWn.js +0 -1
- /package/dist/assets/{add-component-core-sZCWP9eJ.css → add-component-core-CxkJY_14.css} +0 -0
- /package/dist/assets/{ar-GhaeoIRX.js → ar-CxvIl-Ji.js} +0 -0
- /package/dist/assets/{audit-logs-QseNTS8s.css → audit-logs-BCx41NLy.css} +0 -0
- /package/dist/assets/{de-xwlaLxE5.js → de-3qOdEa6P.js} +0 -0
- /package/dist/assets/{es-WU0JxH3v.js → es-7PLonVLT.js} +0 -0
- /package/dist/assets/{fr-s2654-DL.js → fr-1I2E8gH_.js} +0 -0
- /package/dist/assets/{hi-lcoNZDY5.js → hi-O7fF0c9u.js} +0 -0
- /package/dist/assets/{id-uVaD_Ehi.js → id-BF9h-bev.js} +0 -0
- /package/dist/assets/{index-d-Rw6UM2.js → index-D-XBJ_hS.js} +0 -0
- /package/dist/assets/{index-7SG8bi1h.js → index-DTEEl-sV.js} +0 -0
- /package/dist/assets/{index-1NyTkR9G.css → index-DU3JORH0.css} +0 -0
- /package/dist/assets/{inter-latin-300-normal-2jONLEHF.woff → inter-latin-300-normal-DaM40sQc.woff} +0 -0
- /package/dist/assets/{inter-latin-300-normal-CHA_qmA3.woff2 → inter-latin-300-normal-IcD-qYDc.woff2} +0 -0
- /package/dist/assets/{inter-latin-400-normal-U9R_j0_y.woff2 → inter-latin-400-normal-BT1H-PT_.woff2} +0 -0
- /package/dist/assets/{inter-latin-400-normal-nYvLeTLv.woff → inter-latin-400-normal-Cdi8t5Mu.woff} +0 -0
- /package/dist/assets/{inter-latin-500-normal--CPASgsZ.woff → inter-latin-500-normal-D4I8BKCx.woff} +0 -0
- /package/dist/assets/{inter-latin-500-normal-JFocBHQx.woff2 → inter-latin-500-normal-kWhwEdDH.woff2} +0 -0
- /package/dist/assets/{inter-latin-700-normal-ts3xWOyE.woff2 → inter-latin-700-normal-C2zfFY7I.woff2} +0 -0
- /package/dist/assets/{inter-latin-700-normal-hxZXRi9v.woff → inter-latin-700-normal-CHFldGL2.woff} +0 -0
- /package/dist/assets/{inter-latin-ext-300-normal-O3IJKV3D.woff → inter-latin-ext-300-normal-7cgkpXcN.woff} +0 -0
- /package/dist/assets/{inter-latin-ext-300-normal-Lj3yl17a.woff2 → inter-latin-ext-300-normal-uPfKXXtp.woff2} +0 -0
- /package/dist/assets/{inter-latin-ext-400-normal-PLSM5vss.woff → inter-latin-ext-400-normal-8tIzm-yw.woff} +0 -0
- /package/dist/assets/{inter-latin-ext-400-normal-91vjqTvm.woff2 → inter-latin-ext-400-normal-D3W-OpO-.woff2} +0 -0
- /package/dist/assets/{inter-latin-ext-500-normal-fbvEP8xx.woff2 → inter-latin-ext-500-normal-B9u8Q_zH.woff2} +0 -0
- /package/dist/assets/{inter-latin-ext-500-normal-ErlJEjU1.woff → inter-latin-ext-500-normal-SuUkSNTU.woff} +0 -0
- /package/dist/assets/{inter-latin-ext-700-normal-bu5Rtp3b.woff → inter-latin-ext-700-normal-Bu7lG2nd.woff} +0 -0
- /package/dist/assets/{inter-latin-ext-700-normal-gGtzKlLf.woff2 → inter-latin-ext-700-normal-CAa3MqUt.woff2} +0 -0
- /package/dist/assets/{ja-9UaRFNdy.js → ja-BRl6JgyC.js} +0 -0
- /package/dist/assets/{ko-yTikii17.js → ko-BjJKFx_R.js} +0 -0
- /package/dist/assets/{log-993Rbbf_.css → log-D33dFtt_.css} +0 -0
- /package/dist/assets/{login-bg-m34fVHNm.png → login-bg-Cbfh9Uc2.png} +0 -0
- /package/dist/assets/{mode-Ip8p6ZjP.js → mode-B2dWMeTO.js} +0 -0
- /package/dist/assets/{preact.module-CqtzSW6G.js → preact.module-FqEZb0ZS.js} +0 -0
- /package/dist/assets/{pt-zAir0hVe.js → pt-CkaW7MUR.js} +0 -0
- /package/dist/assets/{react-i1f7jPtW.css → react-CLV_uM-1.css} +0 -0
- /package/dist/assets/{ru-Gi96O-Vb.js → ru-1GZMliq9.js} +0 -0
- /package/dist/assets/{th-TxDimAv4.js → th-Bc32gh20.js} +0 -0
- /package/dist/assets/{ubuntu-mono-cyrillic-400-normal-1r_k7was.woff2 → ubuntu-mono-cyrillic-400-normal-DWv-TvBq.woff2} +0 -0
- /package/dist/assets/{ubuntu-mono-cyrillic-400-normal-Cet8Npzg.woff → ubuntu-mono-cyrillic-400-normal-J63w2nOD.woff} +0 -0
- /package/dist/assets/{ubuntu-mono-cyrillic-ext-400-normal-Ni0K3o4l.woff2 → ubuntu-mono-cyrillic-ext-400-normal-2LQrejiW.woff2} +0 -0
- /package/dist/assets/{ubuntu-mono-cyrillic-ext-400-normal-0Nr3QbWH.woff → ubuntu-mono-cyrillic-ext-400-normal-DQ2vdBtY.woff} +0 -0
- /package/dist/assets/{ubuntu-mono-greek-400-normal-ZqeL-uKU.woff2 → ubuntu-mono-greek-400-normal-Bmp4v64p.woff2} +0 -0
- /package/dist/assets/{ubuntu-mono-greek-400-normal-nPPFGWwV.woff → ubuntu-mono-greek-400-normal-Cc88UZbB.woff} +0 -0
- /package/dist/assets/{ubuntu-mono-greek-ext-400-normal-bPDHNzua.woff2 → ubuntu-mono-greek-ext-400-normal-Bs8Mc3O5.woff2} +0 -0
- /package/dist/assets/{ubuntu-mono-greek-ext-400-normal-KdFZVwFm.woff → ubuntu-mono-greek-ext-400-normal-p0VlXAWb.woff} +0 -0
- /package/dist/assets/{ubuntu-mono-latin-400-normal-uDUzuIHS.woff2 → ubuntu-mono-latin-400-normal-C4NTO4gd.woff2} +0 -0
- /package/dist/assets/{ubuntu-mono-latin-400-normal-Dp4O8cuq.woff → ubuntu-mono-latin-400-normal-Ong7xy6r.woff} +0 -0
- /package/dist/assets/{ubuntu-mono-latin-ext-400-normal-QZPQh_Ya.woff → ubuntu-mono-latin-ext-400-normal-BBk9CH9h.woff} +0 -0
- /package/dist/assets/{ubuntu-mono-latin-ext-400-normal-Ib0NXz3I.woff2 → ubuntu-mono-latin-ext-400-normal-hvQ1fPch.woff2} +0 -0
- /package/dist/assets/{use-passport-id-pXgWCnyq.js → use-passport-id-B-b-_oYF.js} +0 -0
- /package/dist/assets/{vi-hic6htLz.js → vi-CRasBMRh.js} +0 -0
- /package/dist/assets/{zh-VrMBUqtA.js → zh-B75pu7gp.js} +0 -0
- /package/dist/assets/{zh-tw-wjxZMUrx.js → zh-tw-BYDo5dcg.js} +0 -0
package/dist/service-worker.js
CHANGED
|
@@ -1,1752 +1,2 @@
|
|
|
1
|
-
try {
|
|
2
|
-
self["workbox:core:7.0.0"] && _();
|
|
3
|
-
} catch {
|
|
4
|
-
}
|
|
5
|
-
const Q = (s, ...e) => {
|
|
6
|
-
let t = s;
|
|
7
|
-
return e.length > 0 && (t += ` :: ${JSON.stringify(e)}`), t;
|
|
8
|
-
}, z = Q;
|
|
9
|
-
class h extends Error {
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
* @param {string} errorCode The error code that
|
|
13
|
-
* identifies this particular error.
|
|
14
|
-
* @param {Object=} details Any relevant arguments
|
|
15
|
-
* that will help developers identify issues should
|
|
16
|
-
* be added as a key on the context object.
|
|
17
|
-
*/
|
|
18
|
-
constructor(e, t) {
|
|
19
|
-
const n = z(e, t);
|
|
20
|
-
super(n), this.name = e, this.details = t;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
const j = /* @__PURE__ */ new Set();
|
|
24
|
-
function J(s) {
|
|
25
|
-
j.add(s);
|
|
26
|
-
}
|
|
27
|
-
const d = {
|
|
28
|
-
googleAnalytics: "googleAnalytics",
|
|
29
|
-
precache: "precache-v2",
|
|
30
|
-
prefix: "workbox",
|
|
31
|
-
runtime: "runtime",
|
|
32
|
-
suffix: typeof registration < "u" ? registration.scope : ""
|
|
33
|
-
}, E = (s) => [d.prefix, s, d.suffix].filter((e) => e && e.length > 0).join("-"), X = (s) => {
|
|
34
|
-
for (const e of Object.keys(d))
|
|
35
|
-
s(e);
|
|
36
|
-
}, x = {
|
|
37
|
-
updateDetails: (s) => {
|
|
38
|
-
X((e) => {
|
|
39
|
-
typeof s[e] == "string" && (d[e] = s[e]);
|
|
40
|
-
});
|
|
41
|
-
},
|
|
42
|
-
getGoogleAnalyticsName: (s) => s || E(d.googleAnalytics),
|
|
43
|
-
getPrecacheName: (s) => s || E(d.precache),
|
|
44
|
-
getPrefix: () => d.prefix,
|
|
45
|
-
getRuntimeName: (s) => s || E(d.runtime),
|
|
46
|
-
getSuffix: () => d.suffix
|
|
47
|
-
};
|
|
48
|
-
function K(s, e) {
|
|
49
|
-
const t = new URL(s);
|
|
50
|
-
for (const n of e)
|
|
51
|
-
t.searchParams.delete(n);
|
|
52
|
-
return t.href;
|
|
53
|
-
}
|
|
54
|
-
async function Y(s, e, t, n) {
|
|
55
|
-
const a = K(e.url, t);
|
|
56
|
-
if (e.url === a)
|
|
57
|
-
return s.match(e, n);
|
|
58
|
-
const r = Object.assign(Object.assign({}, n), { ignoreSearch: !0 }), i = await s.keys(e, r);
|
|
59
|
-
for (const c of i) {
|
|
60
|
-
const o = K(c.url, t);
|
|
61
|
-
if (a === o)
|
|
62
|
-
return s.match(c, n);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
let m;
|
|
66
|
-
function Z() {
|
|
67
|
-
if (m === void 0) {
|
|
68
|
-
const s = new Response("");
|
|
69
|
-
if ("body" in s)
|
|
70
|
-
try {
|
|
71
|
-
new Response(s.body), m = !0;
|
|
72
|
-
} catch {
|
|
73
|
-
m = !1;
|
|
74
|
-
}
|
|
75
|
-
m = !1;
|
|
76
|
-
}
|
|
77
|
-
return m;
|
|
78
|
-
}
|
|
79
|
-
function F(s) {
|
|
80
|
-
s.then(() => {
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
class ee {
|
|
84
|
-
/**
|
|
85
|
-
* Creates a promise and exposes its resolve and reject functions as methods.
|
|
86
|
-
*/
|
|
87
|
-
constructor() {
|
|
88
|
-
this.promise = new Promise((e, t) => {
|
|
89
|
-
this.resolve = e, this.reject = t;
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
async function te() {
|
|
94
|
-
for (const s of j)
|
|
95
|
-
await s();
|
|
96
|
-
}
|
|
97
|
-
const se = (s) => new URL(String(s), location.href).href.replace(new RegExp(`^${location.origin}`), "");
|
|
98
|
-
function ne(s) {
|
|
99
|
-
return new Promise((e) => setTimeout(e, s));
|
|
100
|
-
}
|
|
101
|
-
function A(s, e) {
|
|
102
|
-
const t = e();
|
|
103
|
-
return s.waitUntil(t), t;
|
|
104
|
-
}
|
|
105
|
-
async function ae(s, e) {
|
|
106
|
-
let t = null;
|
|
107
|
-
if (s.url && (t = new URL(s.url).origin), t !== self.location.origin)
|
|
108
|
-
throw new h("cross-origin-copy-response", { origin: t });
|
|
109
|
-
const n = s.clone(), a = {
|
|
110
|
-
headers: new Headers(n.headers),
|
|
111
|
-
status: n.status,
|
|
112
|
-
statusText: n.statusText
|
|
113
|
-
}, r = e ? e(a) : a, i = Z() ? n.body : await n.blob();
|
|
114
|
-
return new Response(i, r);
|
|
115
|
-
}
|
|
116
|
-
function re() {
|
|
117
|
-
self.addEventListener("activate", () => self.clients.claim());
|
|
118
|
-
}
|
|
119
|
-
try {
|
|
120
|
-
self["workbox:precaching:7.0.0"] && _();
|
|
121
|
-
} catch {
|
|
122
|
-
}
|
|
123
|
-
const ie = "__WB_REVISION__";
|
|
124
|
-
function ce(s) {
|
|
125
|
-
if (!s)
|
|
126
|
-
throw new h("add-to-cache-list-unexpected-type", { entry: s });
|
|
127
|
-
if (typeof s == "string") {
|
|
128
|
-
const r = new URL(s, location.href);
|
|
129
|
-
return {
|
|
130
|
-
cacheKey: r.href,
|
|
131
|
-
url: r.href
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
const { revision: e, url: t } = s;
|
|
135
|
-
if (!t)
|
|
136
|
-
throw new h("add-to-cache-list-unexpected-type", { entry: s });
|
|
137
|
-
if (!e) {
|
|
138
|
-
const r = new URL(t, location.href);
|
|
139
|
-
return {
|
|
140
|
-
cacheKey: r.href,
|
|
141
|
-
url: r.href
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
const n = new URL(t, location.href), a = new URL(t, location.href);
|
|
145
|
-
return n.searchParams.set(ie, e), {
|
|
146
|
-
cacheKey: n.href,
|
|
147
|
-
url: a.href
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
class oe {
|
|
151
|
-
constructor() {
|
|
152
|
-
this.updatedURLs = [], this.notUpdatedURLs = [], this.handlerWillStart = async ({ request: e, state: t }) => {
|
|
153
|
-
t && (t.originalRequest = e);
|
|
154
|
-
}, this.cachedResponseWillBeUsed = async ({ event: e, state: t, cachedResponse: n }) => {
|
|
155
|
-
if (e.type === "install" && t && t.originalRequest && t.originalRequest instanceof Request) {
|
|
156
|
-
const a = t.originalRequest.url;
|
|
157
|
-
n ? this.notUpdatedURLs.push(a) : this.updatedURLs.push(a);
|
|
158
|
-
}
|
|
159
|
-
return n;
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
class le {
|
|
164
|
-
constructor({ precacheController: e }) {
|
|
165
|
-
this.cacheKeyWillBeUsed = async ({ request: t, params: n }) => {
|
|
166
|
-
const a = (n == null ? void 0 : n.cacheKey) || this._precacheController.getCacheKeyForURL(t.url);
|
|
167
|
-
return a ? new Request(a, { headers: t.headers }) : t;
|
|
168
|
-
}, this._precacheController = e;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
try {
|
|
172
|
-
self["workbox:strategies:7.0.0"] && _();
|
|
173
|
-
} catch {
|
|
174
|
-
}
|
|
175
|
-
function b(s) {
|
|
176
|
-
return typeof s == "string" ? new Request(s) : s;
|
|
177
|
-
}
|
|
178
|
-
class he {
|
|
179
|
-
/**
|
|
180
|
-
* Creates a new instance associated with the passed strategy and event
|
|
181
|
-
* that's handling the request.
|
|
182
|
-
*
|
|
183
|
-
* The constructor also initializes the state that will be passed to each of
|
|
184
|
-
* the plugins handling this request.
|
|
185
|
-
*
|
|
186
|
-
* @param {workbox-strategies.Strategy} strategy
|
|
187
|
-
* @param {Object} options
|
|
188
|
-
* @param {Request|string} options.request A request to run this strategy for.
|
|
189
|
-
* @param {ExtendableEvent} options.event The event associated with the
|
|
190
|
-
* request.
|
|
191
|
-
* @param {URL} [options.url]
|
|
192
|
-
* @param {*} [options.params] The return value from the
|
|
193
|
-
* {@link workbox-routing~matchCallback} (if applicable).
|
|
194
|
-
*/
|
|
195
|
-
constructor(e, t) {
|
|
196
|
-
this._cacheKeys = {}, Object.assign(this, t), this.event = t.event, this._strategy = e, this._handlerDeferred = new ee(), this._extendLifetimePromises = [], this._plugins = [...e.plugins], this._pluginStateMap = /* @__PURE__ */ new Map();
|
|
197
|
-
for (const n of this._plugins)
|
|
198
|
-
this._pluginStateMap.set(n, {});
|
|
199
|
-
this.event.waitUntil(this._handlerDeferred.promise);
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Fetches a given request (and invokes any applicable plugin callback
|
|
203
|
-
* methods) using the `fetchOptions` (for non-navigation requests) and
|
|
204
|
-
* `plugins` defined on the `Strategy` object.
|
|
205
|
-
*
|
|
206
|
-
* The following plugin lifecycle methods are invoked when using this method:
|
|
207
|
-
* - `requestWillFetch()`
|
|
208
|
-
* - `fetchDidSucceed()`
|
|
209
|
-
* - `fetchDidFail()`
|
|
210
|
-
*
|
|
211
|
-
* @param {Request|string} input The URL or request to fetch.
|
|
212
|
-
* @return {Promise<Response>}
|
|
213
|
-
*/
|
|
214
|
-
async fetch(e) {
|
|
215
|
-
const { event: t } = this;
|
|
216
|
-
let n = b(e);
|
|
217
|
-
if (n.mode === "navigate" && t instanceof FetchEvent && t.preloadResponse) {
|
|
218
|
-
const i = await t.preloadResponse;
|
|
219
|
-
if (i)
|
|
220
|
-
return i;
|
|
221
|
-
}
|
|
222
|
-
const a = this.hasCallback("fetchDidFail") ? n.clone() : null;
|
|
223
|
-
try {
|
|
224
|
-
for (const i of this.iterateCallbacks("requestWillFetch"))
|
|
225
|
-
n = await i({ request: n.clone(), event: t });
|
|
226
|
-
} catch (i) {
|
|
227
|
-
if (i instanceof Error)
|
|
228
|
-
throw new h("plugin-error-request-will-fetch", {
|
|
229
|
-
thrownErrorMessage: i.message
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
const r = n.clone();
|
|
233
|
-
try {
|
|
234
|
-
let i;
|
|
235
|
-
i = await fetch(n, n.mode === "navigate" ? void 0 : this._strategy.fetchOptions);
|
|
236
|
-
for (const c of this.iterateCallbacks("fetchDidSucceed"))
|
|
237
|
-
i = await c({
|
|
238
|
-
event: t,
|
|
239
|
-
request: r,
|
|
240
|
-
response: i
|
|
241
|
-
});
|
|
242
|
-
return i;
|
|
243
|
-
} catch (i) {
|
|
244
|
-
throw a && await this.runCallbacks("fetchDidFail", {
|
|
245
|
-
error: i,
|
|
246
|
-
event: t,
|
|
247
|
-
originalRequest: a.clone(),
|
|
248
|
-
request: r.clone()
|
|
249
|
-
}), i;
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* Calls `this.fetch()` and (in the background) runs `this.cachePut()` on
|
|
254
|
-
* the response generated by `this.fetch()`.
|
|
255
|
-
*
|
|
256
|
-
* The call to `this.cachePut()` automatically invokes `this.waitUntil()`,
|
|
257
|
-
* so you do not have to manually call `waitUntil()` on the event.
|
|
258
|
-
*
|
|
259
|
-
* @param {Request|string} input The request or URL to fetch and cache.
|
|
260
|
-
* @return {Promise<Response>}
|
|
261
|
-
*/
|
|
262
|
-
async fetchAndCachePut(e) {
|
|
263
|
-
const t = await this.fetch(e), n = t.clone();
|
|
264
|
-
return this.waitUntil(this.cachePut(e, n)), t;
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* Matches a request from the cache (and invokes any applicable plugin
|
|
268
|
-
* callback methods) using the `cacheName`, `matchOptions`, and `plugins`
|
|
269
|
-
* defined on the strategy object.
|
|
270
|
-
*
|
|
271
|
-
* The following plugin lifecycle methods are invoked when using this method:
|
|
272
|
-
* - cacheKeyWillByUsed()
|
|
273
|
-
* - cachedResponseWillByUsed()
|
|
274
|
-
*
|
|
275
|
-
* @param {Request|string} key The Request or URL to use as the cache key.
|
|
276
|
-
* @return {Promise<Response|undefined>} A matching response, if found.
|
|
277
|
-
*/
|
|
278
|
-
async cacheMatch(e) {
|
|
279
|
-
const t = b(e);
|
|
280
|
-
let n;
|
|
281
|
-
const { cacheName: a, matchOptions: r } = this._strategy, i = await this.getCacheKey(t, "read"), c = Object.assign(Object.assign({}, r), { cacheName: a });
|
|
282
|
-
n = await caches.match(i, c);
|
|
283
|
-
for (const o of this.iterateCallbacks("cachedResponseWillBeUsed"))
|
|
284
|
-
n = await o({
|
|
285
|
-
cacheName: a,
|
|
286
|
-
matchOptions: r,
|
|
287
|
-
cachedResponse: n,
|
|
288
|
-
request: i,
|
|
289
|
-
event: this.event
|
|
290
|
-
}) || void 0;
|
|
291
|
-
return n;
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* Puts a request/response pair in the cache (and invokes any applicable
|
|
295
|
-
* plugin callback methods) using the `cacheName` and `plugins` defined on
|
|
296
|
-
* the strategy object.
|
|
297
|
-
*
|
|
298
|
-
* The following plugin lifecycle methods are invoked when using this method:
|
|
299
|
-
* - cacheKeyWillByUsed()
|
|
300
|
-
* - cacheWillUpdate()
|
|
301
|
-
* - cacheDidUpdate()
|
|
302
|
-
*
|
|
303
|
-
* @param {Request|string} key The request or URL to use as the cache key.
|
|
304
|
-
* @param {Response} response The response to cache.
|
|
305
|
-
* @return {Promise<boolean>} `false` if a cacheWillUpdate caused the response
|
|
306
|
-
* not be cached, and `true` otherwise.
|
|
307
|
-
*/
|
|
308
|
-
async cachePut(e, t) {
|
|
309
|
-
const n = b(e);
|
|
310
|
-
await ne(0);
|
|
311
|
-
const a = await this.getCacheKey(n, "write");
|
|
312
|
-
if (!t)
|
|
313
|
-
throw new h("cache-put-with-no-response", {
|
|
314
|
-
url: se(a.url)
|
|
315
|
-
});
|
|
316
|
-
const r = await this._ensureResponseSafeToCache(t);
|
|
317
|
-
if (!r)
|
|
318
|
-
return !1;
|
|
319
|
-
const { cacheName: i, matchOptions: c } = this._strategy, o = await self.caches.open(i), l = this.hasCallback("cacheDidUpdate"), g = l ? await Y(
|
|
320
|
-
// TODO(philipwalton): the `__WB_REVISION__` param is a precaching
|
|
321
|
-
// feature. Consider into ways to only add this behavior if using
|
|
322
|
-
// precaching.
|
|
323
|
-
o,
|
|
324
|
-
a.clone(),
|
|
325
|
-
["__WB_REVISION__"],
|
|
326
|
-
c
|
|
327
|
-
) : null;
|
|
328
|
-
try {
|
|
329
|
-
await o.put(a, l ? r.clone() : r);
|
|
330
|
-
} catch (u) {
|
|
331
|
-
if (u instanceof Error)
|
|
332
|
-
throw u.name === "QuotaExceededError" && await te(), u;
|
|
333
|
-
}
|
|
334
|
-
for (const u of this.iterateCallbacks("cacheDidUpdate"))
|
|
335
|
-
await u({
|
|
336
|
-
cacheName: i,
|
|
337
|
-
oldResponse: g,
|
|
338
|
-
newResponse: r.clone(),
|
|
339
|
-
request: a,
|
|
340
|
-
event: this.event
|
|
341
|
-
});
|
|
342
|
-
return !0;
|
|
343
|
-
}
|
|
344
|
-
/**
|
|
345
|
-
* Checks the list of plugins for the `cacheKeyWillBeUsed` callback, and
|
|
346
|
-
* executes any of those callbacks found in sequence. The final `Request`
|
|
347
|
-
* object returned by the last plugin is treated as the cache key for cache
|
|
348
|
-
* reads and/or writes. If no `cacheKeyWillBeUsed` plugin callbacks have
|
|
349
|
-
* been registered, the passed request is returned unmodified
|
|
350
|
-
*
|
|
351
|
-
* @param {Request} request
|
|
352
|
-
* @param {string} mode
|
|
353
|
-
* @return {Promise<Request>}
|
|
354
|
-
*/
|
|
355
|
-
async getCacheKey(e, t) {
|
|
356
|
-
const n = `${e.url} | ${t}`;
|
|
357
|
-
if (!this._cacheKeys[n]) {
|
|
358
|
-
let a = e;
|
|
359
|
-
for (const r of this.iterateCallbacks("cacheKeyWillBeUsed"))
|
|
360
|
-
a = b(await r({
|
|
361
|
-
mode: t,
|
|
362
|
-
request: a,
|
|
363
|
-
event: this.event,
|
|
364
|
-
// params has a type any can't change right now.
|
|
365
|
-
params: this.params
|
|
366
|
-
// eslint-disable-line
|
|
367
|
-
}));
|
|
368
|
-
this._cacheKeys[n] = a;
|
|
369
|
-
}
|
|
370
|
-
return this._cacheKeys[n];
|
|
371
|
-
}
|
|
372
|
-
/**
|
|
373
|
-
* Returns true if the strategy has at least one plugin with the given
|
|
374
|
-
* callback.
|
|
375
|
-
*
|
|
376
|
-
* @param {string} name The name of the callback to check for.
|
|
377
|
-
* @return {boolean}
|
|
378
|
-
*/
|
|
379
|
-
hasCallback(e) {
|
|
380
|
-
for (const t of this._strategy.plugins)
|
|
381
|
-
if (e in t)
|
|
382
|
-
return !0;
|
|
383
|
-
return !1;
|
|
384
|
-
}
|
|
385
|
-
/**
|
|
386
|
-
* Runs all plugin callbacks matching the given name, in order, passing the
|
|
387
|
-
* given param object (merged ith the current plugin state) as the only
|
|
388
|
-
* argument.
|
|
389
|
-
*
|
|
390
|
-
* Note: since this method runs all plugins, it's not suitable for cases
|
|
391
|
-
* where the return value of a callback needs to be applied prior to calling
|
|
392
|
-
* the next callback. See
|
|
393
|
-
* {@link workbox-strategies.StrategyHandler#iterateCallbacks}
|
|
394
|
-
* below for how to handle that case.
|
|
395
|
-
*
|
|
396
|
-
* @param {string} name The name of the callback to run within each plugin.
|
|
397
|
-
* @param {Object} param The object to pass as the first (and only) param
|
|
398
|
-
* when executing each callback. This object will be merged with the
|
|
399
|
-
* current plugin state prior to callback execution.
|
|
400
|
-
*/
|
|
401
|
-
async runCallbacks(e, t) {
|
|
402
|
-
for (const n of this.iterateCallbacks(e))
|
|
403
|
-
await n(t);
|
|
404
|
-
}
|
|
405
|
-
/**
|
|
406
|
-
* Accepts a callback and returns an iterable of matching plugin callbacks,
|
|
407
|
-
* where each callback is wrapped with the current handler state (i.e. when
|
|
408
|
-
* you call each callback, whatever object parameter you pass it will
|
|
409
|
-
* be merged with the plugin's current state).
|
|
410
|
-
*
|
|
411
|
-
* @param {string} name The name fo the callback to run
|
|
412
|
-
* @return {Array<Function>}
|
|
413
|
-
*/
|
|
414
|
-
*iterateCallbacks(e) {
|
|
415
|
-
for (const t of this._strategy.plugins)
|
|
416
|
-
if (typeof t[e] == "function") {
|
|
417
|
-
const n = this._pluginStateMap.get(t);
|
|
418
|
-
yield (r) => {
|
|
419
|
-
const i = Object.assign(Object.assign({}, r), { state: n });
|
|
420
|
-
return t[e](i);
|
|
421
|
-
};
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
/**
|
|
425
|
-
* Adds a promise to the
|
|
426
|
-
* [extend lifetime promises]{@link https://w3c.github.io/ServiceWorker/#extendableevent-extend-lifetime-promises}
|
|
427
|
-
* of the event event associated with the request being handled (usually a
|
|
428
|
-
* `FetchEvent`).
|
|
429
|
-
*
|
|
430
|
-
* Note: you can await
|
|
431
|
-
* {@link workbox-strategies.StrategyHandler~doneWaiting}
|
|
432
|
-
* to know when all added promises have settled.
|
|
433
|
-
*
|
|
434
|
-
* @param {Promise} promise A promise to add to the extend lifetime promises
|
|
435
|
-
* of the event that triggered the request.
|
|
436
|
-
*/
|
|
437
|
-
waitUntil(e) {
|
|
438
|
-
return this._extendLifetimePromises.push(e), e;
|
|
439
|
-
}
|
|
440
|
-
/**
|
|
441
|
-
* Returns a promise that resolves once all promises passed to
|
|
442
|
-
* {@link workbox-strategies.StrategyHandler~waitUntil}
|
|
443
|
-
* have settled.
|
|
444
|
-
*
|
|
445
|
-
* Note: any work done after `doneWaiting()` settles should be manually
|
|
446
|
-
* passed to an event's `waitUntil()` method (not this handler's
|
|
447
|
-
* `waitUntil()` method), otherwise the service worker thread my be killed
|
|
448
|
-
* prior to your work completing.
|
|
449
|
-
*/
|
|
450
|
-
async doneWaiting() {
|
|
451
|
-
let e;
|
|
452
|
-
for (; e = this._extendLifetimePromises.shift(); )
|
|
453
|
-
await e;
|
|
454
|
-
}
|
|
455
|
-
/**
|
|
456
|
-
* Stops running the strategy and immediately resolves any pending
|
|
457
|
-
* `waitUntil()` promises.
|
|
458
|
-
*/
|
|
459
|
-
destroy() {
|
|
460
|
-
this._handlerDeferred.resolve(null);
|
|
461
|
-
}
|
|
462
|
-
/**
|
|
463
|
-
* This method will call cacheWillUpdate on the available plugins (or use
|
|
464
|
-
* status === 200) to determine if the Response is safe and valid to cache.
|
|
465
|
-
*
|
|
466
|
-
* @param {Request} options.request
|
|
467
|
-
* @param {Response} options.response
|
|
468
|
-
* @return {Promise<Response|undefined>}
|
|
469
|
-
*
|
|
470
|
-
* @private
|
|
471
|
-
*/
|
|
472
|
-
async _ensureResponseSafeToCache(e) {
|
|
473
|
-
let t = e, n = !1;
|
|
474
|
-
for (const a of this.iterateCallbacks("cacheWillUpdate"))
|
|
475
|
-
if (t = await a({
|
|
476
|
-
request: this.request,
|
|
477
|
-
response: t,
|
|
478
|
-
event: this.event
|
|
479
|
-
}) || void 0, n = !0, !t)
|
|
480
|
-
break;
|
|
481
|
-
return n || t && t.status !== 200 && (t = void 0), t;
|
|
482
|
-
}
|
|
483
|
-
}
|
|
484
|
-
class v {
|
|
485
|
-
/**
|
|
486
|
-
* Creates a new instance of the strategy and sets all documented option
|
|
487
|
-
* properties as public instance properties.
|
|
488
|
-
*
|
|
489
|
-
* Note: if a custom strategy class extends the base Strategy class and does
|
|
490
|
-
* not need more than these properties, it does not need to define its own
|
|
491
|
-
* constructor.
|
|
492
|
-
*
|
|
493
|
-
* @param {Object} [options]
|
|
494
|
-
* @param {string} [options.cacheName] Cache name to store and retrieve
|
|
495
|
-
* requests. Defaults to the cache names provided by
|
|
496
|
-
* {@link workbox-core.cacheNames}.
|
|
497
|
-
* @param {Array<Object>} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}
|
|
498
|
-
* to use in conjunction with this caching strategy.
|
|
499
|
-
* @param {Object} [options.fetchOptions] Values passed along to the
|
|
500
|
-
* [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)
|
|
501
|
-
* of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796)
|
|
502
|
-
* `fetch()` requests made by this strategy.
|
|
503
|
-
* @param {Object} [options.matchOptions] The
|
|
504
|
-
* [`CacheQueryOptions`]{@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions}
|
|
505
|
-
* for any `cache.match()` or `cache.put()` calls made by this strategy.
|
|
506
|
-
*/
|
|
507
|
-
constructor(e = {}) {
|
|
508
|
-
this.cacheName = x.getRuntimeName(e.cacheName), this.plugins = e.plugins || [], this.fetchOptions = e.fetchOptions, this.matchOptions = e.matchOptions;
|
|
509
|
-
}
|
|
510
|
-
/**
|
|
511
|
-
* Perform a request strategy and returns a `Promise` that will resolve with
|
|
512
|
-
* a `Response`, invoking all relevant plugin callbacks.
|
|
513
|
-
*
|
|
514
|
-
* When a strategy instance is registered with a Workbox
|
|
515
|
-
* {@link workbox-routing.Route}, this method is automatically
|
|
516
|
-
* called when the route matches.
|
|
517
|
-
*
|
|
518
|
-
* Alternatively, this method can be used in a standalone `FetchEvent`
|
|
519
|
-
* listener by passing it to `event.respondWith()`.
|
|
520
|
-
*
|
|
521
|
-
* @param {FetchEvent|Object} options A `FetchEvent` or an object with the
|
|
522
|
-
* properties listed below.
|
|
523
|
-
* @param {Request|string} options.request A request to run this strategy for.
|
|
524
|
-
* @param {ExtendableEvent} options.event The event associated with the
|
|
525
|
-
* request.
|
|
526
|
-
* @param {URL} [options.url]
|
|
527
|
-
* @param {*} [options.params]
|
|
528
|
-
*/
|
|
529
|
-
handle(e) {
|
|
530
|
-
const [t] = this.handleAll(e);
|
|
531
|
-
return t;
|
|
532
|
-
}
|
|
533
|
-
/**
|
|
534
|
-
* Similar to {@link workbox-strategies.Strategy~handle}, but
|
|
535
|
-
* instead of just returning a `Promise` that resolves to a `Response` it
|
|
536
|
-
* it will return an tuple of `[response, done]` promises, where the former
|
|
537
|
-
* (`response`) is equivalent to what `handle()` returns, and the latter is a
|
|
538
|
-
* Promise that will resolve once any promises that were added to
|
|
539
|
-
* `event.waitUntil()` as part of performing the strategy have completed.
|
|
540
|
-
*
|
|
541
|
-
* You can await the `done` promise to ensure any extra work performed by
|
|
542
|
-
* the strategy (usually caching responses) completes successfully.
|
|
543
|
-
*
|
|
544
|
-
* @param {FetchEvent|Object} options A `FetchEvent` or an object with the
|
|
545
|
-
* properties listed below.
|
|
546
|
-
* @param {Request|string} options.request A request to run this strategy for.
|
|
547
|
-
* @param {ExtendableEvent} options.event The event associated with the
|
|
548
|
-
* request.
|
|
549
|
-
* @param {URL} [options.url]
|
|
550
|
-
* @param {*} [options.params]
|
|
551
|
-
* @return {Array<Promise>} A tuple of [response, done]
|
|
552
|
-
* promises that can be used to determine when the response resolves as
|
|
553
|
-
* well as when the handler has completed all its work.
|
|
554
|
-
*/
|
|
555
|
-
handleAll(e) {
|
|
556
|
-
e instanceof FetchEvent && (e = {
|
|
557
|
-
event: e,
|
|
558
|
-
request: e.request
|
|
559
|
-
});
|
|
560
|
-
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 he(this, { event: t, request: n, params: a }), i = this._getResponse(r, n, t), c = this._awaitComplete(i, r, n, t);
|
|
561
|
-
return [i, c];
|
|
562
|
-
}
|
|
563
|
-
async _getResponse(e, t, n) {
|
|
564
|
-
await e.runCallbacks("handlerWillStart", { event: n, request: t });
|
|
565
|
-
let a;
|
|
566
|
-
try {
|
|
567
|
-
if (a = await this._handle(t, e), !a || a.type === "error")
|
|
568
|
-
throw new h("no-response", { url: t.url });
|
|
569
|
-
} catch (r) {
|
|
570
|
-
if (r instanceof Error) {
|
|
571
|
-
for (const i of e.iterateCallbacks("handlerDidError"))
|
|
572
|
-
if (a = await i({ error: r, event: n, request: t }), a)
|
|
573
|
-
break;
|
|
574
|
-
}
|
|
575
|
-
if (!a)
|
|
576
|
-
throw r;
|
|
577
|
-
}
|
|
578
|
-
for (const r of e.iterateCallbacks("handlerWillRespond"))
|
|
579
|
-
a = await r({ event: n, request: t, response: a });
|
|
580
|
-
return a;
|
|
581
|
-
}
|
|
582
|
-
async _awaitComplete(e, t, n, a) {
|
|
583
|
-
let r, i;
|
|
584
|
-
try {
|
|
585
|
-
r = await e;
|
|
586
|
-
} catch {
|
|
587
|
-
}
|
|
588
|
-
try {
|
|
589
|
-
await t.runCallbacks("handlerDidRespond", {
|
|
590
|
-
event: a,
|
|
591
|
-
request: n,
|
|
592
|
-
response: r
|
|
593
|
-
}), await t.doneWaiting();
|
|
594
|
-
} catch (c) {
|
|
595
|
-
c instanceof Error && (i = c);
|
|
596
|
-
}
|
|
597
|
-
if (await t.runCallbacks("handlerDidComplete", {
|
|
598
|
-
event: a,
|
|
599
|
-
request: n,
|
|
600
|
-
response: r,
|
|
601
|
-
error: i
|
|
602
|
-
}), t.destroy(), i)
|
|
603
|
-
throw i;
|
|
604
|
-
}
|
|
605
|
-
}
|
|
606
|
-
class p extends v {
|
|
607
|
-
/**
|
|
608
|
-
*
|
|
609
|
-
* @param {Object} [options]
|
|
610
|
-
* @param {string} [options.cacheName] Cache name to store and retrieve
|
|
611
|
-
* requests. Defaults to the cache names provided by
|
|
612
|
-
* {@link workbox-core.cacheNames}.
|
|
613
|
-
* @param {Array<Object>} [options.plugins] {@link https://developers.google.com/web/tools/workbox/guides/using-plugins|Plugins}
|
|
614
|
-
* to use in conjunction with this caching strategy.
|
|
615
|
-
* @param {Object} [options.fetchOptions] Values passed along to the
|
|
616
|
-
* {@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters|init}
|
|
617
|
-
* of all fetch() requests made by this strategy.
|
|
618
|
-
* @param {Object} [options.matchOptions] The
|
|
619
|
-
* {@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions|CacheQueryOptions}
|
|
620
|
-
* for any `cache.match()` or `cache.put()` calls made by this strategy.
|
|
621
|
-
* @param {boolean} [options.fallbackToNetwork=true] Whether to attempt to
|
|
622
|
-
* get the response from the network if there's a precache miss.
|
|
623
|
-
*/
|
|
624
|
-
constructor(e = {}) {
|
|
625
|
-
e.cacheName = x.getPrecacheName(e.cacheName), super(e), this._fallbackToNetwork = e.fallbackToNetwork !== !1, this.plugins.push(p.copyRedirectedCacheableResponsesPlugin);
|
|
626
|
-
}
|
|
627
|
-
/**
|
|
628
|
-
* @private
|
|
629
|
-
* @param {Request|string} request A request to run this strategy for.
|
|
630
|
-
* @param {workbox-strategies.StrategyHandler} handler The event that
|
|
631
|
-
* triggered the request.
|
|
632
|
-
* @return {Promise<Response>}
|
|
633
|
-
*/
|
|
634
|
-
async _handle(e, t) {
|
|
635
|
-
const n = await t.cacheMatch(e);
|
|
636
|
-
return n || (t.event && t.event.type === "install" ? await this._handleInstall(e, t) : await this._handleFetch(e, t));
|
|
637
|
-
}
|
|
638
|
-
async _handleFetch(e, t) {
|
|
639
|
-
let n;
|
|
640
|
-
const a = t.params || {};
|
|
641
|
-
if (this._fallbackToNetwork) {
|
|
642
|
-
const r = a.integrity, i = e.integrity, c = !i || i === r;
|
|
643
|
-
n = await t.fetch(new Request(e, {
|
|
644
|
-
integrity: e.mode !== "no-cors" ? i || r : void 0
|
|
645
|
-
})), r && c && e.mode !== "no-cors" && (this._useDefaultCacheabilityPluginIfNeeded(), await t.cachePut(e, n.clone()));
|
|
646
|
-
} else
|
|
647
|
-
throw new h("missing-precache-entry", {
|
|
648
|
-
cacheName: this.cacheName,
|
|
649
|
-
url: e.url
|
|
650
|
-
});
|
|
651
|
-
return n;
|
|
652
|
-
}
|
|
653
|
-
async _handleInstall(e, t) {
|
|
654
|
-
this._useDefaultCacheabilityPluginIfNeeded();
|
|
655
|
-
const n = await t.fetch(e);
|
|
656
|
-
if (!await t.cachePut(e, n.clone()))
|
|
657
|
-
throw new h("bad-precaching-response", {
|
|
658
|
-
url: e.url,
|
|
659
|
-
status: n.status
|
|
660
|
-
});
|
|
661
|
-
return n;
|
|
662
|
-
}
|
|
663
|
-
/**
|
|
664
|
-
* This method is complex, as there a number of things to account for:
|
|
665
|
-
*
|
|
666
|
-
* The `plugins` array can be set at construction, and/or it might be added to
|
|
667
|
-
* to at any time before the strategy is used.
|
|
668
|
-
*
|
|
669
|
-
* At the time the strategy is used (i.e. during an `install` event), there
|
|
670
|
-
* needs to be at least one plugin that implements `cacheWillUpdate` in the
|
|
671
|
-
* array, other than `copyRedirectedCacheableResponsesPlugin`.
|
|
672
|
-
*
|
|
673
|
-
* - If this method is called and there are no suitable `cacheWillUpdate`
|
|
674
|
-
* plugins, we need to add `defaultPrecacheCacheabilityPlugin`.
|
|
675
|
-
*
|
|
676
|
-
* - If this method is called and there is exactly one `cacheWillUpdate`, then
|
|
677
|
-
* we don't have to do anything (this might be a previously added
|
|
678
|
-
* `defaultPrecacheCacheabilityPlugin`, or it might be a custom plugin).
|
|
679
|
-
*
|
|
680
|
-
* - If this method is called and there is more than one `cacheWillUpdate`,
|
|
681
|
-
* then we need to check if one is `defaultPrecacheCacheabilityPlugin`. If so,
|
|
682
|
-
* we need to remove it. (This situation is unlikely, but it could happen if
|
|
683
|
-
* the strategy is used multiple times, the first without a `cacheWillUpdate`,
|
|
684
|
-
* and then later on after manually adding a custom `cacheWillUpdate`.)
|
|
685
|
-
*
|
|
686
|
-
* See https://github.com/GoogleChrome/workbox/issues/2737 for more context.
|
|
687
|
-
*
|
|
688
|
-
* @private
|
|
689
|
-
*/
|
|
690
|
-
_useDefaultCacheabilityPluginIfNeeded() {
|
|
691
|
-
let e = null, t = 0;
|
|
692
|
-
for (const [n, a] of this.plugins.entries())
|
|
693
|
-
a !== p.copyRedirectedCacheableResponsesPlugin && (a === p.defaultPrecacheCacheabilityPlugin && (e = n), a.cacheWillUpdate && t++);
|
|
694
|
-
t === 0 ? this.plugins.push(p.defaultPrecacheCacheabilityPlugin) : t > 1 && e !== null && this.plugins.splice(e, 1);
|
|
695
|
-
}
|
|
696
|
-
}
|
|
697
|
-
p.defaultPrecacheCacheabilityPlugin = {
|
|
698
|
-
async cacheWillUpdate({ response: s }) {
|
|
699
|
-
return !s || s.status >= 400 ? null : s;
|
|
700
|
-
}
|
|
701
|
-
};
|
|
702
|
-
p.copyRedirectedCacheableResponsesPlugin = {
|
|
703
|
-
async cacheWillUpdate({ response: s }) {
|
|
704
|
-
return s.redirected ? await ae(s) : s;
|
|
705
|
-
}
|
|
706
|
-
};
|
|
707
|
-
class ue {
|
|
708
|
-
/**
|
|
709
|
-
* Create a new PrecacheController.
|
|
710
|
-
*
|
|
711
|
-
* @param {Object} [options]
|
|
712
|
-
* @param {string} [options.cacheName] The cache to use for precaching.
|
|
713
|
-
* @param {string} [options.plugins] Plugins to use when precaching as well
|
|
714
|
-
* as responding to fetch events for precached assets.
|
|
715
|
-
* @param {boolean} [options.fallbackToNetwork=true] Whether to attempt to
|
|
716
|
-
* get the response from the network if there's a precache miss.
|
|
717
|
-
*/
|
|
718
|
-
constructor({ cacheName: e, plugins: t = [], fallbackToNetwork: n = !0 } = {}) {
|
|
719
|
-
this._urlsToCacheKeys = /* @__PURE__ */ new Map(), this._urlsToCacheModes = /* @__PURE__ */ new Map(), this._cacheKeysToIntegrities = /* @__PURE__ */ new Map(), this._strategy = new p({
|
|
720
|
-
cacheName: x.getPrecacheName(e),
|
|
721
|
-
plugins: [
|
|
722
|
-
...t,
|
|
723
|
-
new le({ precacheController: this })
|
|
724
|
-
],
|
|
725
|
-
fallbackToNetwork: n
|
|
726
|
-
}), this.install = this.install.bind(this), this.activate = this.activate.bind(this);
|
|
727
|
-
}
|
|
728
|
-
/**
|
|
729
|
-
* @type {workbox-precaching.PrecacheStrategy} The strategy created by this controller and
|
|
730
|
-
* used to cache assets and respond to fetch events.
|
|
731
|
-
*/
|
|
732
|
-
get strategy() {
|
|
733
|
-
return this._strategy;
|
|
734
|
-
}
|
|
735
|
-
/**
|
|
736
|
-
* Adds items to the precache list, removing any duplicates and
|
|
737
|
-
* stores the files in the
|
|
738
|
-
* {@link workbox-core.cacheNames|"precache cache"} when the service
|
|
739
|
-
* worker installs.
|
|
740
|
-
*
|
|
741
|
-
* This method can be called multiple times.
|
|
742
|
-
*
|
|
743
|
-
* @param {Array<Object|string>} [entries=[]] Array of entries to precache.
|
|
744
|
-
*/
|
|
745
|
-
precache(e) {
|
|
746
|
-
this.addToCacheList(e), this._installAndActiveListenersAdded || (self.addEventListener("install", this.install), self.addEventListener("activate", this.activate), this._installAndActiveListenersAdded = !0);
|
|
747
|
-
}
|
|
748
|
-
/**
|
|
749
|
-
* This method will add items to the precache list, removing duplicates
|
|
750
|
-
* and ensuring the information is valid.
|
|
751
|
-
*
|
|
752
|
-
* @param {Array<workbox-precaching.PrecacheController.PrecacheEntry|string>} entries
|
|
753
|
-
* Array of entries to precache.
|
|
754
|
-
*/
|
|
755
|
-
addToCacheList(e) {
|
|
756
|
-
const t = [];
|
|
757
|
-
for (const n of e) {
|
|
758
|
-
typeof n == "string" ? t.push(n) : n && n.revision === void 0 && t.push(n.url);
|
|
759
|
-
const { cacheKey: a, url: r } = ce(n), i = typeof n != "string" && n.revision ? "reload" : "default";
|
|
760
|
-
if (this._urlsToCacheKeys.has(r) && this._urlsToCacheKeys.get(r) !== a)
|
|
761
|
-
throw new h("add-to-cache-list-conflicting-entries", {
|
|
762
|
-
firstEntry: this._urlsToCacheKeys.get(r),
|
|
763
|
-
secondEntry: a
|
|
764
|
-
});
|
|
765
|
-
if (typeof n != "string" && n.integrity) {
|
|
766
|
-
if (this._cacheKeysToIntegrities.has(a) && this._cacheKeysToIntegrities.get(a) !== n.integrity)
|
|
767
|
-
throw new h("add-to-cache-list-conflicting-integrities", {
|
|
768
|
-
url: r
|
|
769
|
-
});
|
|
770
|
-
this._cacheKeysToIntegrities.set(a, n.integrity);
|
|
771
|
-
}
|
|
772
|
-
if (this._urlsToCacheKeys.set(r, a), this._urlsToCacheModes.set(r, i), t.length > 0) {
|
|
773
|
-
const c = `Workbox is precaching URLs without revision info: ${t.join(", ")}
|
|
774
|
-
This is generally NOT safe. Learn more at https://bit.ly/wb-precache`;
|
|
775
|
-
console.warn(c);
|
|
776
|
-
}
|
|
777
|
-
}
|
|
778
|
-
}
|
|
779
|
-
/**
|
|
780
|
-
* Precaches new and updated assets. Call this method from the service worker
|
|
781
|
-
* install event.
|
|
782
|
-
*
|
|
783
|
-
* Note: this method calls `event.waitUntil()` for you, so you do not need
|
|
784
|
-
* to call it yourself in your event handlers.
|
|
785
|
-
*
|
|
786
|
-
* @param {ExtendableEvent} event
|
|
787
|
-
* @return {Promise<workbox-precaching.InstallResult>}
|
|
788
|
-
*/
|
|
789
|
-
install(e) {
|
|
790
|
-
return A(e, async () => {
|
|
791
|
-
const t = new oe();
|
|
792
|
-
this.strategy.plugins.push(t);
|
|
793
|
-
for (const [r, i] of this._urlsToCacheKeys) {
|
|
794
|
-
const c = this._cacheKeysToIntegrities.get(i), o = this._urlsToCacheModes.get(r), l = new Request(r, {
|
|
795
|
-
integrity: c,
|
|
796
|
-
cache: o,
|
|
797
|
-
credentials: "same-origin"
|
|
798
|
-
});
|
|
799
|
-
await Promise.all(this.strategy.handleAll({
|
|
800
|
-
params: { cacheKey: i },
|
|
801
|
-
request: l,
|
|
802
|
-
event: e
|
|
803
|
-
}));
|
|
804
|
-
}
|
|
805
|
-
const { updatedURLs: n, notUpdatedURLs: a } = t;
|
|
806
|
-
return { updatedURLs: n, notUpdatedURLs: a };
|
|
807
|
-
});
|
|
808
|
-
}
|
|
809
|
-
/**
|
|
810
|
-
* Deletes assets that are no longer present in the current precache manifest.
|
|
811
|
-
* Call this method from the service worker activate event.
|
|
812
|
-
*
|
|
813
|
-
* Note: this method calls `event.waitUntil()` for you, so you do not need
|
|
814
|
-
* to call it yourself in your event handlers.
|
|
815
|
-
*
|
|
816
|
-
* @param {ExtendableEvent} event
|
|
817
|
-
* @return {Promise<workbox-precaching.CleanupResult>}
|
|
818
|
-
*/
|
|
819
|
-
activate(e) {
|
|
820
|
-
return A(e, async () => {
|
|
821
|
-
const t = await self.caches.open(this.strategy.cacheName), n = await t.keys(), a = new Set(this._urlsToCacheKeys.values()), r = [];
|
|
822
|
-
for (const i of n)
|
|
823
|
-
a.has(i.url) || (await t.delete(i), r.push(i.url));
|
|
824
|
-
return { deletedURLs: r };
|
|
825
|
-
});
|
|
826
|
-
}
|
|
827
|
-
/**
|
|
828
|
-
* Returns a mapping of a precached URL to the corresponding cache key, taking
|
|
829
|
-
* into account the revision information for the URL.
|
|
830
|
-
*
|
|
831
|
-
* @return {Map<string, string>} A URL to cache key mapping.
|
|
832
|
-
*/
|
|
833
|
-
getURLsToCacheKeys() {
|
|
834
|
-
return this._urlsToCacheKeys;
|
|
835
|
-
}
|
|
836
|
-
/**
|
|
837
|
-
* Returns a list of all the URLs that have been precached by the current
|
|
838
|
-
* service worker.
|
|
839
|
-
*
|
|
840
|
-
* @return {Array<string>} The precached URLs.
|
|
841
|
-
*/
|
|
842
|
-
getCachedURLs() {
|
|
843
|
-
return [...this._urlsToCacheKeys.keys()];
|
|
844
|
-
}
|
|
845
|
-
/**
|
|
846
|
-
* Returns the cache key used for storing a given URL. If that URL is
|
|
847
|
-
* unversioned, like `/index.html', then the cache key will be the original
|
|
848
|
-
* URL with a search parameter appended to it.
|
|
849
|
-
*
|
|
850
|
-
* @param {string} url A URL whose cache key you want to look up.
|
|
851
|
-
* @return {string} The versioned URL that corresponds to a cache key
|
|
852
|
-
* for the original URL, or undefined if that URL isn't precached.
|
|
853
|
-
*/
|
|
854
|
-
getCacheKeyForURL(e) {
|
|
855
|
-
const t = new URL(e, location.href);
|
|
856
|
-
return this._urlsToCacheKeys.get(t.href);
|
|
857
|
-
}
|
|
858
|
-
/**
|
|
859
|
-
* @param {string} url A cache key whose SRI you want to look up.
|
|
860
|
-
* @return {string} The subresource integrity associated with the cache key,
|
|
861
|
-
* or undefined if it's not set.
|
|
862
|
-
*/
|
|
863
|
-
getIntegrityForCacheKey(e) {
|
|
864
|
-
return this._cacheKeysToIntegrities.get(e);
|
|
865
|
-
}
|
|
866
|
-
/**
|
|
867
|
-
* This acts as a drop-in replacement for
|
|
868
|
-
* [`cache.match()`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/match)
|
|
869
|
-
* with the following differences:
|
|
870
|
-
*
|
|
871
|
-
* - It knows what the name of the precache is, and only checks in that cache.
|
|
872
|
-
* - It allows you to pass in an "original" URL without versioning parameters,
|
|
873
|
-
* and it will automatically look up the correct cache key for the currently
|
|
874
|
-
* active revision of that URL.
|
|
875
|
-
*
|
|
876
|
-
* E.g., `matchPrecache('index.html')` will find the correct precached
|
|
877
|
-
* response for the currently active service worker, even if the actual cache
|
|
878
|
-
* key is `'/index.html?__WB_REVISION__=1234abcd'`.
|
|
879
|
-
*
|
|
880
|
-
* @param {string|Request} request The key (without revisioning parameters)
|
|
881
|
-
* to look up in the precache.
|
|
882
|
-
* @return {Promise<Response|undefined>}
|
|
883
|
-
*/
|
|
884
|
-
async matchPrecache(e) {
|
|
885
|
-
const t = e instanceof Request ? e.url : e, n = this.getCacheKeyForURL(t);
|
|
886
|
-
if (n)
|
|
887
|
-
return (await self.caches.open(this.strategy.cacheName)).match(n);
|
|
888
|
-
}
|
|
889
|
-
/**
|
|
890
|
-
* Returns a function that looks up `url` in the precache (taking into
|
|
891
|
-
* account revision information), and returns the corresponding `Response`.
|
|
892
|
-
*
|
|
893
|
-
* @param {string} url The precached URL which will be used to lookup the
|
|
894
|
-
* `Response`.
|
|
895
|
-
* @return {workbox-routing~handlerCallback}
|
|
896
|
-
*/
|
|
897
|
-
createHandlerBoundToURL(e) {
|
|
898
|
-
const t = this.getCacheKeyForURL(e);
|
|
899
|
-
if (!t)
|
|
900
|
-
throw new h("non-precached-url", { url: e });
|
|
901
|
-
return (n) => (n.request = new Request(e), n.params = Object.assign({ cacheKey: t }, n.params), this.strategy.handle(n));
|
|
902
|
-
}
|
|
903
|
-
}
|
|
904
|
-
let D;
|
|
905
|
-
const q = () => (D || (D = new ue()), D);
|
|
906
|
-
try {
|
|
907
|
-
self["workbox:routing:7.0.0"] && _();
|
|
908
|
-
} catch {
|
|
909
|
-
}
|
|
910
|
-
const H = "GET", C = (s) => s && typeof s == "object" ? s : { handle: s };
|
|
911
|
-
class R {
|
|
912
|
-
/**
|
|
913
|
-
* Constructor for Route class.
|
|
914
|
-
*
|
|
915
|
-
* @param {workbox-routing~matchCallback} match
|
|
916
|
-
* A callback function that determines whether the route matches a given
|
|
917
|
-
* `fetch` event by returning a non-falsy value.
|
|
918
|
-
* @param {workbox-routing~handlerCallback} handler A callback
|
|
919
|
-
* function that returns a Promise resolving to a Response.
|
|
920
|
-
* @param {string} [method='GET'] The HTTP method to match the Route
|
|
921
|
-
* against.
|
|
922
|
-
*/
|
|
923
|
-
constructor(e, t, n = H) {
|
|
924
|
-
this.handler = C(t), this.match = e, this.method = n;
|
|
925
|
-
}
|
|
926
|
-
/**
|
|
927
|
-
*
|
|
928
|
-
* @param {workbox-routing-handlerCallback} handler A callback
|
|
929
|
-
* function that returns a Promise resolving to a Response
|
|
930
|
-
*/
|
|
931
|
-
setCatchHandler(e) {
|
|
932
|
-
this.catchHandler = C(e);
|
|
933
|
-
}
|
|
934
|
-
}
|
|
935
|
-
class de extends R {
|
|
936
|
-
/**
|
|
937
|
-
* If the regular expression contains
|
|
938
|
-
* [capture groups]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#grouping-back-references},
|
|
939
|
-
* the captured values will be passed to the
|
|
940
|
-
* {@link workbox-routing~handlerCallback} `params`
|
|
941
|
-
* argument.
|
|
942
|
-
*
|
|
943
|
-
* @param {RegExp} regExp The regular expression to match against URLs.
|
|
944
|
-
* @param {workbox-routing~handlerCallback} handler A callback
|
|
945
|
-
* function that returns a Promise resulting in a Response.
|
|
946
|
-
* @param {string} [method='GET'] The HTTP method to match the Route
|
|
947
|
-
* against.
|
|
948
|
-
*/
|
|
949
|
-
constructor(e, t, n) {
|
|
950
|
-
const a = ({ url: r }) => {
|
|
951
|
-
const i = e.exec(r.href);
|
|
952
|
-
if (i && !(r.origin !== location.origin && i.index !== 0))
|
|
953
|
-
return i.slice(1);
|
|
954
|
-
};
|
|
955
|
-
super(a, t, n);
|
|
956
|
-
}
|
|
957
|
-
}
|
|
958
|
-
class fe {
|
|
959
|
-
/**
|
|
960
|
-
* Initializes a new Router.
|
|
961
|
-
*/
|
|
962
|
-
constructor() {
|
|
963
|
-
this._routes = /* @__PURE__ */ new Map(), this._defaultHandlerMap = /* @__PURE__ */ new Map();
|
|
964
|
-
}
|
|
965
|
-
/**
|
|
966
|
-
* @return {Map<string, Array<workbox-routing.Route>>} routes A `Map` of HTTP
|
|
967
|
-
* method name ('GET', etc.) to an array of all the corresponding `Route`
|
|
968
|
-
* instances that are registered.
|
|
969
|
-
*/
|
|
970
|
-
get routes() {
|
|
971
|
-
return this._routes;
|
|
972
|
-
}
|
|
973
|
-
/**
|
|
974
|
-
* Adds a fetch event listener to respond to events when a route matches
|
|
975
|
-
* the event's request.
|
|
976
|
-
*/
|
|
977
|
-
addFetchListener() {
|
|
978
|
-
self.addEventListener("fetch", (e) => {
|
|
979
|
-
const { request: t } = e, n = this.handleRequest({ request: t, event: e });
|
|
980
|
-
n && e.respondWith(n);
|
|
981
|
-
});
|
|
982
|
-
}
|
|
983
|
-
/**
|
|
984
|
-
* Adds a message event listener for URLs to cache from the window.
|
|
985
|
-
* This is useful to cache resources loaded on the page prior to when the
|
|
986
|
-
* service worker started controlling it.
|
|
987
|
-
*
|
|
988
|
-
* The format of the message data sent from the window should be as follows.
|
|
989
|
-
* Where the `urlsToCache` array may consist of URL strings or an array of
|
|
990
|
-
* URL string + `requestInit` object (the same as you'd pass to `fetch()`).
|
|
991
|
-
*
|
|
992
|
-
* ```
|
|
993
|
-
* {
|
|
994
|
-
* type: 'CACHE_URLS',
|
|
995
|
-
* payload: {
|
|
996
|
-
* urlsToCache: [
|
|
997
|
-
* './script1.js',
|
|
998
|
-
* './script2.js',
|
|
999
|
-
* ['./script3.js', {mode: 'no-cors'}],
|
|
1000
|
-
* ],
|
|
1001
|
-
* },
|
|
1002
|
-
* }
|
|
1003
|
-
* ```
|
|
1004
|
-
*/
|
|
1005
|
-
addCacheListener() {
|
|
1006
|
-
self.addEventListener("message", (e) => {
|
|
1007
|
-
if (e.data && e.data.type === "CACHE_URLS") {
|
|
1008
|
-
const { payload: t } = e.data, n = Promise.all(t.urlsToCache.map((a) => {
|
|
1009
|
-
typeof a == "string" && (a = [a]);
|
|
1010
|
-
const r = new Request(...a);
|
|
1011
|
-
return this.handleRequest({ request: r, event: e });
|
|
1012
|
-
}));
|
|
1013
|
-
e.waitUntil(n), e.ports && e.ports[0] && n.then(() => e.ports[0].postMessage(!0));
|
|
1014
|
-
}
|
|
1015
|
-
});
|
|
1016
|
-
}
|
|
1017
|
-
/**
|
|
1018
|
-
* Apply the routing rules to a FetchEvent object to get a Response from an
|
|
1019
|
-
* appropriate Route's handler.
|
|
1020
|
-
*
|
|
1021
|
-
* @param {Object} options
|
|
1022
|
-
* @param {Request} options.request The request to handle.
|
|
1023
|
-
* @param {ExtendableEvent} options.event The event that triggered the
|
|
1024
|
-
* request.
|
|
1025
|
-
* @return {Promise<Response>|undefined} A promise is returned if a
|
|
1026
|
-
* registered route can handle the request. If there is no matching
|
|
1027
|
-
* route and there's no `defaultHandler`, `undefined` is returned.
|
|
1028
|
-
*/
|
|
1029
|
-
handleRequest({ request: e, event: t }) {
|
|
1030
|
-
const n = new URL(e.url, location.href);
|
|
1031
|
-
if (!n.protocol.startsWith("http"))
|
|
1032
|
-
return;
|
|
1033
|
-
const a = n.origin === location.origin, { params: r, route: i } = this.findMatchingRoute({
|
|
1034
|
-
event: t,
|
|
1035
|
-
request: e,
|
|
1036
|
-
sameOrigin: a,
|
|
1037
|
-
url: n
|
|
1038
|
-
});
|
|
1039
|
-
let c = i && i.handler;
|
|
1040
|
-
const o = e.method;
|
|
1041
|
-
if (!c && this._defaultHandlerMap.has(o) && (c = this._defaultHandlerMap.get(o)), !c)
|
|
1042
|
-
return;
|
|
1043
|
-
let l;
|
|
1044
|
-
try {
|
|
1045
|
-
l = c.handle({ url: n, request: e, event: t, params: r });
|
|
1046
|
-
} catch (u) {
|
|
1047
|
-
l = Promise.reject(u);
|
|
1048
|
-
}
|
|
1049
|
-
const g = i && i.catchHandler;
|
|
1050
|
-
return l instanceof Promise && (this._catchHandler || g) && (l = l.catch(async (u) => {
|
|
1051
|
-
if (g)
|
|
1052
|
-
try {
|
|
1053
|
-
return await g.handle({ url: n, request: e, event: t, params: r });
|
|
1054
|
-
} catch (N) {
|
|
1055
|
-
N instanceof Error && (u = N);
|
|
1056
|
-
}
|
|
1057
|
-
if (this._catchHandler)
|
|
1058
|
-
return this._catchHandler.handle({ url: n, request: e, event: t });
|
|
1059
|
-
throw u;
|
|
1060
|
-
})), l;
|
|
1061
|
-
}
|
|
1062
|
-
/**
|
|
1063
|
-
* Checks a request and URL (and optionally an event) against the list of
|
|
1064
|
-
* registered routes, and if there's a match, returns the corresponding
|
|
1065
|
-
* route along with any params generated by the match.
|
|
1066
|
-
*
|
|
1067
|
-
* @param {Object} options
|
|
1068
|
-
* @param {URL} options.url
|
|
1069
|
-
* @param {boolean} options.sameOrigin The result of comparing `url.origin`
|
|
1070
|
-
* against the current origin.
|
|
1071
|
-
* @param {Request} options.request The request to match.
|
|
1072
|
-
* @param {Event} options.event The corresponding event.
|
|
1073
|
-
* @return {Object} An object with `route` and `params` properties.
|
|
1074
|
-
* They are populated if a matching route was found or `undefined`
|
|
1075
|
-
* otherwise.
|
|
1076
|
-
*/
|
|
1077
|
-
findMatchingRoute({ url: e, sameOrigin: t, request: n, event: a }) {
|
|
1078
|
-
const r = this._routes.get(n.method) || [];
|
|
1079
|
-
for (const i of r) {
|
|
1080
|
-
let c;
|
|
1081
|
-
const o = i.match({ url: e, sameOrigin: t, request: n, event: a });
|
|
1082
|
-
if (o)
|
|
1083
|
-
return c = o, (Array.isArray(c) && c.length === 0 || o.constructor === Object && // eslint-disable-line
|
|
1084
|
-
Object.keys(o).length === 0 || typeof o == "boolean") && (c = void 0), { route: i, params: c };
|
|
1085
|
-
}
|
|
1086
|
-
return {};
|
|
1087
|
-
}
|
|
1088
|
-
/**
|
|
1089
|
-
* Define a default `handler` that's called when no routes explicitly
|
|
1090
|
-
* match the incoming request.
|
|
1091
|
-
*
|
|
1092
|
-
* Each HTTP method ('GET', 'POST', etc.) gets its own default handler.
|
|
1093
|
-
*
|
|
1094
|
-
* Without a default handler, unmatched requests will go against the
|
|
1095
|
-
* network as if there were no service worker present.
|
|
1096
|
-
*
|
|
1097
|
-
* @param {workbox-routing~handlerCallback} handler A callback
|
|
1098
|
-
* function that returns a Promise resulting in a Response.
|
|
1099
|
-
* @param {string} [method='GET'] The HTTP method to associate with this
|
|
1100
|
-
* default handler. Each method has its own default.
|
|
1101
|
-
*/
|
|
1102
|
-
setDefaultHandler(e, t = H) {
|
|
1103
|
-
this._defaultHandlerMap.set(t, C(e));
|
|
1104
|
-
}
|
|
1105
|
-
/**
|
|
1106
|
-
* If a Route throws an error while handling a request, this `handler`
|
|
1107
|
-
* will be called and given a chance to provide a response.
|
|
1108
|
-
*
|
|
1109
|
-
* @param {workbox-routing~handlerCallback} handler A callback
|
|
1110
|
-
* function that returns a Promise resulting in a Response.
|
|
1111
|
-
*/
|
|
1112
|
-
setCatchHandler(e) {
|
|
1113
|
-
this._catchHandler = C(e);
|
|
1114
|
-
}
|
|
1115
|
-
/**
|
|
1116
|
-
* Registers a route with the router.
|
|
1117
|
-
*
|
|
1118
|
-
* @param {workbox-routing.Route} route The route to register.
|
|
1119
|
-
*/
|
|
1120
|
-
registerRoute(e) {
|
|
1121
|
-
this._routes.has(e.method) || this._routes.set(e.method, []), this._routes.get(e.method).push(e);
|
|
1122
|
-
}
|
|
1123
|
-
/**
|
|
1124
|
-
* Unregisters a route with the router.
|
|
1125
|
-
*
|
|
1126
|
-
* @param {workbox-routing.Route} route The route to unregister.
|
|
1127
|
-
*/
|
|
1128
|
-
unregisterRoute(e) {
|
|
1129
|
-
if (!this._routes.has(e.method))
|
|
1130
|
-
throw new h("unregister-route-but-not-found-with-method", {
|
|
1131
|
-
method: e.method
|
|
1132
|
-
});
|
|
1133
|
-
const t = this._routes.get(e.method).indexOf(e);
|
|
1134
|
-
if (t > -1)
|
|
1135
|
-
this._routes.get(e.method).splice(t, 1);
|
|
1136
|
-
else
|
|
1137
|
-
throw new h("unregister-route-route-not-registered");
|
|
1138
|
-
}
|
|
1139
|
-
}
|
|
1140
|
-
let w;
|
|
1141
|
-
const pe = () => (w || (w = new fe(), w.addFetchListener(), w.addCacheListener()), w);
|
|
1142
|
-
function I(s, e, t) {
|
|
1143
|
-
let n;
|
|
1144
|
-
if (typeof s == "string") {
|
|
1145
|
-
const r = new URL(s, location.href), i = ({ url: c }) => c.href === r.href;
|
|
1146
|
-
n = new R(i, e, t);
|
|
1147
|
-
} else if (s instanceof RegExp)
|
|
1148
|
-
n = new de(s, e, t);
|
|
1149
|
-
else if (typeof s == "function")
|
|
1150
|
-
n = new R(s, e, t);
|
|
1151
|
-
else if (s instanceof R)
|
|
1152
|
-
n = s;
|
|
1153
|
-
else
|
|
1154
|
-
throw new h("unsupported-route-type", {
|
|
1155
|
-
moduleName: "workbox-routing",
|
|
1156
|
-
funcName: "registerRoute",
|
|
1157
|
-
paramName: "capture"
|
|
1158
|
-
});
|
|
1159
|
-
return pe().registerRoute(n), n;
|
|
1160
|
-
}
|
|
1161
|
-
function ge(s, e = []) {
|
|
1162
|
-
for (const t of [...s.searchParams.keys()])
|
|
1163
|
-
e.some((n) => n.test(t)) && s.searchParams.delete(t);
|
|
1164
|
-
return s;
|
|
1165
|
-
}
|
|
1166
|
-
function* me(s, { ignoreURLParametersMatching: e = [/^utm_/, /^fbclid$/], directoryIndex: t = "index.html", cleanURLs: n = !0, urlManipulation: a } = {}) {
|
|
1167
|
-
const r = new URL(s, location.href);
|
|
1168
|
-
r.hash = "", yield r.href;
|
|
1169
|
-
const i = ge(r, e);
|
|
1170
|
-
if (yield i.href, t && i.pathname.endsWith("/")) {
|
|
1171
|
-
const c = new URL(i.href);
|
|
1172
|
-
c.pathname += t, yield c.href;
|
|
1173
|
-
}
|
|
1174
|
-
if (n) {
|
|
1175
|
-
const c = new URL(i.href);
|
|
1176
|
-
c.pathname += ".html", yield c.href;
|
|
1177
|
-
}
|
|
1178
|
-
if (a) {
|
|
1179
|
-
const c = a({ url: r });
|
|
1180
|
-
for (const o of c)
|
|
1181
|
-
yield o.href;
|
|
1182
|
-
}
|
|
1183
|
-
}
|
|
1184
|
-
class we extends R {
|
|
1185
|
-
/**
|
|
1186
|
-
* @param {PrecacheController} precacheController A `PrecacheController`
|
|
1187
|
-
* instance used to both match requests and respond to fetch events.
|
|
1188
|
-
* @param {Object} [options] Options to control how requests are matched
|
|
1189
|
-
* against the list of precached URLs.
|
|
1190
|
-
* @param {string} [options.directoryIndex=index.html] The `directoryIndex` will
|
|
1191
|
-
* check cache entries for a URLs ending with '/' to see if there is a hit when
|
|
1192
|
-
* appending the `directoryIndex` value.
|
|
1193
|
-
* @param {Array<RegExp>} [options.ignoreURLParametersMatching=[/^utm_/, /^fbclid$/]] An
|
|
1194
|
-
* array of regex's to remove search params when looking for a cache match.
|
|
1195
|
-
* @param {boolean} [options.cleanURLs=true] The `cleanURLs` option will
|
|
1196
|
-
* check the cache for the URL with a `.html` added to the end of the end.
|
|
1197
|
-
* @param {workbox-precaching~urlManipulation} [options.urlManipulation]
|
|
1198
|
-
* This is a function that should take a URL and return an array of
|
|
1199
|
-
* alternative URLs that should be checked for precache matches.
|
|
1200
|
-
*/
|
|
1201
|
-
constructor(e, t) {
|
|
1202
|
-
const n = ({ request: a }) => {
|
|
1203
|
-
const r = e.getURLsToCacheKeys();
|
|
1204
|
-
for (const i of me(a.url, t)) {
|
|
1205
|
-
const c = r.get(i);
|
|
1206
|
-
if (c) {
|
|
1207
|
-
const o = e.getIntegrityForCacheKey(c);
|
|
1208
|
-
return { cacheKey: c, integrity: o };
|
|
1209
|
-
}
|
|
1210
|
-
}
|
|
1211
|
-
};
|
|
1212
|
-
super(n, e.strategy);
|
|
1213
|
-
}
|
|
1214
|
-
}
|
|
1215
|
-
function ye(s) {
|
|
1216
|
-
const e = q(), t = new we(e, s);
|
|
1217
|
-
I(t);
|
|
1218
|
-
}
|
|
1219
|
-
function _e(s) {
|
|
1220
|
-
q().precache(s);
|
|
1221
|
-
}
|
|
1222
|
-
function Re(s, e) {
|
|
1223
|
-
_e(s), ye(e);
|
|
1224
|
-
}
|
|
1225
|
-
const be = (s, e) => e.some((t) => s instanceof t);
|
|
1226
|
-
let O, S;
|
|
1227
|
-
function Ce() {
|
|
1228
|
-
return O || (O = [
|
|
1229
|
-
IDBDatabase,
|
|
1230
|
-
IDBObjectStore,
|
|
1231
|
-
IDBIndex,
|
|
1232
|
-
IDBCursor,
|
|
1233
|
-
IDBTransaction
|
|
1234
|
-
]);
|
|
1235
|
-
}
|
|
1236
|
-
function xe() {
|
|
1237
|
-
return S || (S = [
|
|
1238
|
-
IDBCursor.prototype.advance,
|
|
1239
|
-
IDBCursor.prototype.continue,
|
|
1240
|
-
IDBCursor.prototype.continuePrimaryKey
|
|
1241
|
-
]);
|
|
1242
|
-
}
|
|
1243
|
-
const V = /* @__PURE__ */ new WeakMap(), T = /* @__PURE__ */ new WeakMap(), $ = /* @__PURE__ */ new WeakMap(), L = /* @__PURE__ */ new WeakMap(), M = /* @__PURE__ */ new WeakMap();
|
|
1244
|
-
function Ee(s) {
|
|
1245
|
-
const e = new Promise((t, n) => {
|
|
1246
|
-
const a = () => {
|
|
1247
|
-
s.removeEventListener("success", r), s.removeEventListener("error", i);
|
|
1248
|
-
}, r = () => {
|
|
1249
|
-
t(f(s.result)), a();
|
|
1250
|
-
}, i = () => {
|
|
1251
|
-
n(s.error), a();
|
|
1252
|
-
};
|
|
1253
|
-
s.addEventListener("success", r), s.addEventListener("error", i);
|
|
1254
|
-
});
|
|
1255
|
-
return e.then((t) => {
|
|
1256
|
-
t instanceof IDBCursor && V.set(t, s);
|
|
1257
|
-
}).catch(() => {
|
|
1258
|
-
}), M.set(e, s), e;
|
|
1259
|
-
}
|
|
1260
|
-
function De(s) {
|
|
1261
|
-
if (T.has(s))
|
|
1262
|
-
return;
|
|
1263
|
-
const e = new Promise((t, n) => {
|
|
1264
|
-
const a = () => {
|
|
1265
|
-
s.removeEventListener("complete", r), s.removeEventListener("error", i), s.removeEventListener("abort", i);
|
|
1266
|
-
}, r = () => {
|
|
1267
|
-
t(), a();
|
|
1268
|
-
}, i = () => {
|
|
1269
|
-
n(s.error || new DOMException("AbortError", "AbortError")), a();
|
|
1270
|
-
};
|
|
1271
|
-
s.addEventListener("complete", r), s.addEventListener("error", i), s.addEventListener("abort", i);
|
|
1272
|
-
});
|
|
1273
|
-
T.set(s, e);
|
|
1274
|
-
}
|
|
1275
|
-
let P = {
|
|
1276
|
-
get(s, e, t) {
|
|
1277
|
-
if (s instanceof IDBTransaction) {
|
|
1278
|
-
if (e === "done")
|
|
1279
|
-
return T.get(s);
|
|
1280
|
-
if (e === "objectStoreNames")
|
|
1281
|
-
return s.objectStoreNames || $.get(s);
|
|
1282
|
-
if (e === "store")
|
|
1283
|
-
return t.objectStoreNames[1] ? void 0 : t.objectStore(t.objectStoreNames[0]);
|
|
1284
|
-
}
|
|
1285
|
-
return f(s[e]);
|
|
1286
|
-
},
|
|
1287
|
-
set(s, e, t) {
|
|
1288
|
-
return s[e] = t, !0;
|
|
1289
|
-
},
|
|
1290
|
-
has(s, e) {
|
|
1291
|
-
return s instanceof IDBTransaction && (e === "done" || e === "store") ? !0 : e in s;
|
|
1292
|
-
}
|
|
1293
|
-
};
|
|
1294
|
-
function Le(s) {
|
|
1295
|
-
P = s(P);
|
|
1296
|
-
}
|
|
1297
|
-
function Ue(s) {
|
|
1298
|
-
return s === IDBDatabase.prototype.transaction && !("objectStoreNames" in IDBTransaction.prototype) ? function(e, ...t) {
|
|
1299
|
-
const n = s.call(U(this), e, ...t);
|
|
1300
|
-
return $.set(n, e.sort ? e.sort() : [e]), f(n);
|
|
1301
|
-
} : xe().includes(s) ? function(...e) {
|
|
1302
|
-
return s.apply(U(this), e), f(V.get(this));
|
|
1303
|
-
} : function(...e) {
|
|
1304
|
-
return f(s.apply(U(this), e));
|
|
1305
|
-
};
|
|
1306
|
-
}
|
|
1307
|
-
function ke(s) {
|
|
1308
|
-
return typeof s == "function" ? Ue(s) : (s instanceof IDBTransaction && De(s), be(s, Ce()) ? new Proxy(s, P) : s);
|
|
1309
|
-
}
|
|
1310
|
-
function f(s) {
|
|
1311
|
-
if (s instanceof IDBRequest)
|
|
1312
|
-
return Ee(s);
|
|
1313
|
-
if (L.has(s))
|
|
1314
|
-
return L.get(s);
|
|
1315
|
-
const e = ke(s);
|
|
1316
|
-
return e !== s && (L.set(s, e), M.set(e, s)), e;
|
|
1317
|
-
}
|
|
1318
|
-
const U = (s) => M.get(s);
|
|
1319
|
-
function Te(s, e, { blocked: t, upgrade: n, blocking: a, terminated: r } = {}) {
|
|
1320
|
-
const i = indexedDB.open(s, e), c = f(i);
|
|
1321
|
-
return n && i.addEventListener("upgradeneeded", (o) => {
|
|
1322
|
-
n(f(i.result), o.oldVersion, o.newVersion, f(i.transaction), o);
|
|
1323
|
-
}), t && i.addEventListener("blocked", (o) => t(
|
|
1324
|
-
// Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405
|
|
1325
|
-
o.oldVersion,
|
|
1326
|
-
o.newVersion,
|
|
1327
|
-
o
|
|
1328
|
-
)), c.then((o) => {
|
|
1329
|
-
r && o.addEventListener("close", () => r()), a && o.addEventListener("versionchange", (l) => a(l.oldVersion, l.newVersion, l));
|
|
1330
|
-
}).catch(() => {
|
|
1331
|
-
}), c;
|
|
1332
|
-
}
|
|
1333
|
-
function Pe(s, { blocked: e } = {}) {
|
|
1334
|
-
const t = indexedDB.deleteDatabase(s);
|
|
1335
|
-
return e && t.addEventListener("blocked", (n) => e(
|
|
1336
|
-
// Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405
|
|
1337
|
-
n.oldVersion,
|
|
1338
|
-
n
|
|
1339
|
-
)), f(t).then(() => {
|
|
1340
|
-
});
|
|
1341
|
-
}
|
|
1342
|
-
const ve = ["get", "getKey", "getAll", "getAllKeys", "count"], Ie = ["put", "add", "delete", "clear"], k = /* @__PURE__ */ new Map();
|
|
1343
|
-
function W(s, e) {
|
|
1344
|
-
if (!(s instanceof IDBDatabase && !(e in s) && typeof e == "string"))
|
|
1345
|
-
return;
|
|
1346
|
-
if (k.get(e))
|
|
1347
|
-
return k.get(e);
|
|
1348
|
-
const t = e.replace(/FromIndex$/, ""), n = e !== t, a = Ie.includes(t);
|
|
1349
|
-
if (
|
|
1350
|
-
// Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.
|
|
1351
|
-
!(t in (n ? IDBIndex : IDBObjectStore).prototype) || !(a || ve.includes(t))
|
|
1352
|
-
)
|
|
1353
|
-
return;
|
|
1354
|
-
const r = async function(i, ...c) {
|
|
1355
|
-
const o = this.transaction(i, a ? "readwrite" : "readonly");
|
|
1356
|
-
let l = o.store;
|
|
1357
|
-
return n && (l = l.index(c.shift())), (await Promise.all([
|
|
1358
|
-
l[t](...c),
|
|
1359
|
-
a && o.done
|
|
1360
|
-
]))[0];
|
|
1361
|
-
};
|
|
1362
|
-
return k.set(e, r), r;
|
|
1363
|
-
}
|
|
1364
|
-
Le((s) => ({
|
|
1365
|
-
...s,
|
|
1366
|
-
get: (e, t, n) => W(e, t) || s.get(e, t, n),
|
|
1367
|
-
has: (e, t) => !!W(e, t) || s.has(e, t)
|
|
1368
|
-
}));
|
|
1369
|
-
try {
|
|
1370
|
-
self["workbox:expiration:7.0.0"] && _();
|
|
1371
|
-
} catch {
|
|
1372
|
-
}
|
|
1373
|
-
const Me = "workbox-expiration", y = "cache-entries", B = (s) => {
|
|
1374
|
-
const e = new URL(s, location.href);
|
|
1375
|
-
return e.hash = "", e.href;
|
|
1376
|
-
};
|
|
1377
|
-
class Ne {
|
|
1378
|
-
/**
|
|
1379
|
-
*
|
|
1380
|
-
* @param {string} cacheName
|
|
1381
|
-
*
|
|
1382
|
-
* @private
|
|
1383
|
-
*/
|
|
1384
|
-
constructor(e) {
|
|
1385
|
-
this._db = null, this._cacheName = e;
|
|
1386
|
-
}
|
|
1387
|
-
/**
|
|
1388
|
-
* Performs an upgrade of indexedDB.
|
|
1389
|
-
*
|
|
1390
|
-
* @param {IDBPDatabase<CacheDbSchema>} db
|
|
1391
|
-
*
|
|
1392
|
-
* @private
|
|
1393
|
-
*/
|
|
1394
|
-
_upgradeDb(e) {
|
|
1395
|
-
const t = e.createObjectStore(y, { keyPath: "id" });
|
|
1396
|
-
t.createIndex("cacheName", "cacheName", { unique: !1 }), t.createIndex("timestamp", "timestamp", { unique: !1 });
|
|
1397
|
-
}
|
|
1398
|
-
/**
|
|
1399
|
-
* Performs an upgrade of indexedDB and deletes deprecated DBs.
|
|
1400
|
-
*
|
|
1401
|
-
* @param {IDBPDatabase<CacheDbSchema>} db
|
|
1402
|
-
*
|
|
1403
|
-
* @private
|
|
1404
|
-
*/
|
|
1405
|
-
_upgradeDbAndDeleteOldDbs(e) {
|
|
1406
|
-
this._upgradeDb(e), this._cacheName && Pe(this._cacheName);
|
|
1407
|
-
}
|
|
1408
|
-
/**
|
|
1409
|
-
* @param {string} url
|
|
1410
|
-
* @param {number} timestamp
|
|
1411
|
-
*
|
|
1412
|
-
* @private
|
|
1413
|
-
*/
|
|
1414
|
-
async setTimestamp(e, t) {
|
|
1415
|
-
e = B(e);
|
|
1416
|
-
const n = {
|
|
1417
|
-
url: e,
|
|
1418
|
-
timestamp: t,
|
|
1419
|
-
cacheName: this._cacheName,
|
|
1420
|
-
// Creating an ID from the URL and cache name won't be necessary once
|
|
1421
|
-
// Edge switches to Chromium and all browsers we support work with
|
|
1422
|
-
// array keyPaths.
|
|
1423
|
-
id: this._getId(e)
|
|
1424
|
-
}, r = (await this.getDb()).transaction(y, "readwrite", {
|
|
1425
|
-
durability: "relaxed"
|
|
1426
|
-
});
|
|
1427
|
-
await r.store.put(n), await r.done;
|
|
1428
|
-
}
|
|
1429
|
-
/**
|
|
1430
|
-
* Returns the timestamp stored for a given URL.
|
|
1431
|
-
*
|
|
1432
|
-
* @param {string} url
|
|
1433
|
-
* @return {number | undefined}
|
|
1434
|
-
*
|
|
1435
|
-
* @private
|
|
1436
|
-
*/
|
|
1437
|
-
async getTimestamp(e) {
|
|
1438
|
-
const n = await (await this.getDb()).get(y, this._getId(e));
|
|
1439
|
-
return n == null ? void 0 : n.timestamp;
|
|
1440
|
-
}
|
|
1441
|
-
/**
|
|
1442
|
-
* Iterates through all the entries in the object store (from newest to
|
|
1443
|
-
* oldest) and removes entries once either `maxCount` is reached or the
|
|
1444
|
-
* entry's timestamp is less than `minTimestamp`.
|
|
1445
|
-
*
|
|
1446
|
-
* @param {number} minTimestamp
|
|
1447
|
-
* @param {number} maxCount
|
|
1448
|
-
* @return {Array<string>}
|
|
1449
|
-
*
|
|
1450
|
-
* @private
|
|
1451
|
-
*/
|
|
1452
|
-
async expireEntries(e, t) {
|
|
1453
|
-
const n = await this.getDb();
|
|
1454
|
-
let a = await n.transaction(y).store.index("timestamp").openCursor(null, "prev");
|
|
1455
|
-
const r = [];
|
|
1456
|
-
let i = 0;
|
|
1457
|
-
for (; a; ) {
|
|
1458
|
-
const o = a.value;
|
|
1459
|
-
o.cacheName === this._cacheName && (e && o.timestamp < e || t && i >= t ? r.push(a.value) : i++), a = await a.continue();
|
|
1460
|
-
}
|
|
1461
|
-
const c = [];
|
|
1462
|
-
for (const o of r)
|
|
1463
|
-
await n.delete(y, o.id), c.push(o.url);
|
|
1464
|
-
return c;
|
|
1465
|
-
}
|
|
1466
|
-
/**
|
|
1467
|
-
* Takes a URL and returns an ID that will be unique in the object store.
|
|
1468
|
-
*
|
|
1469
|
-
* @param {string} url
|
|
1470
|
-
* @return {string}
|
|
1471
|
-
*
|
|
1472
|
-
* @private
|
|
1473
|
-
*/
|
|
1474
|
-
_getId(e) {
|
|
1475
|
-
return this._cacheName + "|" + B(e);
|
|
1476
|
-
}
|
|
1477
|
-
/**
|
|
1478
|
-
* Returns an open connection to the database.
|
|
1479
|
-
*
|
|
1480
|
-
* @private
|
|
1481
|
-
*/
|
|
1482
|
-
async getDb() {
|
|
1483
|
-
return this._db || (this._db = await Te(Me, 1, {
|
|
1484
|
-
upgrade: this._upgradeDbAndDeleteOldDbs.bind(this)
|
|
1485
|
-
})), this._db;
|
|
1486
|
-
}
|
|
1487
|
-
}
|
|
1488
|
-
class Ke {
|
|
1489
|
-
/**
|
|
1490
|
-
* To construct a new CacheExpiration instance you must provide at least
|
|
1491
|
-
* one of the `config` properties.
|
|
1492
|
-
*
|
|
1493
|
-
* @param {string} cacheName Name of the cache to apply restrictions to.
|
|
1494
|
-
* @param {Object} config
|
|
1495
|
-
* @param {number} [config.maxEntries] The maximum number of entries to cache.
|
|
1496
|
-
* Entries used the least will be removed as the maximum is reached.
|
|
1497
|
-
* @param {number} [config.maxAgeSeconds] The maximum age of an entry before
|
|
1498
|
-
* it's treated as stale and removed.
|
|
1499
|
-
* @param {Object} [config.matchOptions] The [`CacheQueryOptions`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/delete#Parameters)
|
|
1500
|
-
* that will be used when calling `delete()` on the cache.
|
|
1501
|
-
*/
|
|
1502
|
-
constructor(e, t = {}) {
|
|
1503
|
-
this._isRunning = !1, this._rerunRequested = !1, this._maxEntries = t.maxEntries, this._maxAgeSeconds = t.maxAgeSeconds, this._matchOptions = t.matchOptions, this._cacheName = e, this._timestampModel = new Ne(e);
|
|
1504
|
-
}
|
|
1505
|
-
/**
|
|
1506
|
-
* Expires entries for the given cache and given criteria.
|
|
1507
|
-
*/
|
|
1508
|
-
async expireEntries() {
|
|
1509
|
-
if (this._isRunning) {
|
|
1510
|
-
this._rerunRequested = !0;
|
|
1511
|
-
return;
|
|
1512
|
-
}
|
|
1513
|
-
this._isRunning = !0;
|
|
1514
|
-
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);
|
|
1515
|
-
for (const a of t)
|
|
1516
|
-
await n.delete(a, this._matchOptions);
|
|
1517
|
-
this._isRunning = !1, this._rerunRequested && (this._rerunRequested = !1, F(this.expireEntries()));
|
|
1518
|
-
}
|
|
1519
|
-
/**
|
|
1520
|
-
* Update the timestamp for the given URL. This ensures the when
|
|
1521
|
-
* removing entries based on maximum entries, most recently used
|
|
1522
|
-
* is accurate or when expiring, the timestamp is up-to-date.
|
|
1523
|
-
*
|
|
1524
|
-
* @param {string} url
|
|
1525
|
-
*/
|
|
1526
|
-
async updateTimestamp(e) {
|
|
1527
|
-
await this._timestampModel.setTimestamp(e, Date.now());
|
|
1528
|
-
}
|
|
1529
|
-
/**
|
|
1530
|
-
* Can be used to check if a URL has expired or not before it's used.
|
|
1531
|
-
*
|
|
1532
|
-
* This requires a look up from IndexedDB, so can be slow.
|
|
1533
|
-
*
|
|
1534
|
-
* Note: This method will not remove the cached entry, call
|
|
1535
|
-
* `expireEntries()` to remove indexedDB and Cache entries.
|
|
1536
|
-
*
|
|
1537
|
-
* @param {string} url
|
|
1538
|
-
* @return {boolean}
|
|
1539
|
-
*/
|
|
1540
|
-
async isURLExpired(e) {
|
|
1541
|
-
if (this._maxAgeSeconds) {
|
|
1542
|
-
const t = await this._timestampModel.getTimestamp(e), n = Date.now() - this._maxAgeSeconds * 1e3;
|
|
1543
|
-
return t !== void 0 ? t < n : !0;
|
|
1544
|
-
} else
|
|
1545
|
-
return !1;
|
|
1546
|
-
}
|
|
1547
|
-
/**
|
|
1548
|
-
* Removes the IndexedDB object store used to keep track of cache expiration
|
|
1549
|
-
* metadata.
|
|
1550
|
-
*/
|
|
1551
|
-
async delete() {
|
|
1552
|
-
this._rerunRequested = !1, await this._timestampModel.expireEntries(1 / 0);
|
|
1553
|
-
}
|
|
1554
|
-
}
|
|
1555
|
-
class Ae {
|
|
1556
|
-
/**
|
|
1557
|
-
* @param {ExpirationPluginOptions} config
|
|
1558
|
-
* @param {number} [config.maxEntries] The maximum number of entries to cache.
|
|
1559
|
-
* Entries used the least will be removed as the maximum is reached.
|
|
1560
|
-
* @param {number} [config.maxAgeSeconds] The maximum age of an entry before
|
|
1561
|
-
* it's treated as stale and removed.
|
|
1562
|
-
* @param {Object} [config.matchOptions] The [`CacheQueryOptions`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/delete#Parameters)
|
|
1563
|
-
* that will be used when calling `delete()` on the cache.
|
|
1564
|
-
* @param {boolean} [config.purgeOnQuotaError] Whether to opt this cache in to
|
|
1565
|
-
* automatic deletion if the available storage quota has been exceeded.
|
|
1566
|
-
*/
|
|
1567
|
-
constructor(e = {}) {
|
|
1568
|
-
this.cachedResponseWillBeUsed = async ({ event: t, request: n, cacheName: a, cachedResponse: r }) => {
|
|
1569
|
-
if (!r)
|
|
1570
|
-
return null;
|
|
1571
|
-
const i = this._isResponseDateFresh(r), c = this._getCacheExpiration(a);
|
|
1572
|
-
F(c.expireEntries());
|
|
1573
|
-
const o = c.updateTimestamp(n.url);
|
|
1574
|
-
if (t)
|
|
1575
|
-
try {
|
|
1576
|
-
t.waitUntil(o);
|
|
1577
|
-
} catch {
|
|
1578
|
-
}
|
|
1579
|
-
return i ? r : null;
|
|
1580
|
-
}, this.cacheDidUpdate = async ({ cacheName: t, request: n }) => {
|
|
1581
|
-
const a = this._getCacheExpiration(t);
|
|
1582
|
-
await a.updateTimestamp(n.url), await a.expireEntries();
|
|
1583
|
-
}, this._config = e, this._maxAgeSeconds = e.maxAgeSeconds, this._cacheExpirations = /* @__PURE__ */ new Map(), e.purgeOnQuotaError && J(() => this.deleteCacheAndMetadata());
|
|
1584
|
-
}
|
|
1585
|
-
/**
|
|
1586
|
-
* A simple helper method to return a CacheExpiration instance for a given
|
|
1587
|
-
* cache name.
|
|
1588
|
-
*
|
|
1589
|
-
* @param {string} cacheName
|
|
1590
|
-
* @return {CacheExpiration}
|
|
1591
|
-
*
|
|
1592
|
-
* @private
|
|
1593
|
-
*/
|
|
1594
|
-
_getCacheExpiration(e) {
|
|
1595
|
-
if (e === x.getRuntimeName())
|
|
1596
|
-
throw new h("expire-custom-caches-only");
|
|
1597
|
-
let t = this._cacheExpirations.get(e);
|
|
1598
|
-
return t || (t = new Ke(e, this._config), this._cacheExpirations.set(e, t)), t;
|
|
1599
|
-
}
|
|
1600
|
-
/**
|
|
1601
|
-
* @param {Response} cachedResponse
|
|
1602
|
-
* @return {boolean}
|
|
1603
|
-
*
|
|
1604
|
-
* @private
|
|
1605
|
-
*/
|
|
1606
|
-
_isResponseDateFresh(e) {
|
|
1607
|
-
if (!this._maxAgeSeconds)
|
|
1608
|
-
return !0;
|
|
1609
|
-
const t = this._getDateHeaderTimestamp(e);
|
|
1610
|
-
if (t === null)
|
|
1611
|
-
return !0;
|
|
1612
|
-
const n = Date.now();
|
|
1613
|
-
return t >= n - this._maxAgeSeconds * 1e3;
|
|
1614
|
-
}
|
|
1615
|
-
/**
|
|
1616
|
-
* This method will extract the data header and parse it into a useful
|
|
1617
|
-
* value.
|
|
1618
|
-
*
|
|
1619
|
-
* @param {Response} cachedResponse
|
|
1620
|
-
* @return {number|null}
|
|
1621
|
-
*
|
|
1622
|
-
* @private
|
|
1623
|
-
*/
|
|
1624
|
-
_getDateHeaderTimestamp(e) {
|
|
1625
|
-
if (!e.headers.has("date"))
|
|
1626
|
-
return null;
|
|
1627
|
-
const t = e.headers.get("date"), a = new Date(t).getTime();
|
|
1628
|
-
return isNaN(a) ? null : a;
|
|
1629
|
-
}
|
|
1630
|
-
/**
|
|
1631
|
-
* This is a helper method that performs two operations:
|
|
1632
|
-
*
|
|
1633
|
-
* - Deletes *all* the underlying Cache instances associated with this plugin
|
|
1634
|
-
* instance, by calling caches.delete() on your behalf.
|
|
1635
|
-
* - Deletes the metadata from IndexedDB used to keep track of expiration
|
|
1636
|
-
* details for each Cache instance.
|
|
1637
|
-
*
|
|
1638
|
-
* When using cache expiration, calling this method is preferable to calling
|
|
1639
|
-
* `caches.delete()` directly, since this will ensure that the IndexedDB
|
|
1640
|
-
* metadata is also cleanly removed and open IndexedDB instances are deleted.
|
|
1641
|
-
*
|
|
1642
|
-
* Note that if you're *not* using cache expiration for a given cache, calling
|
|
1643
|
-
* `caches.delete()` and passing in the cache's name should be sufficient.
|
|
1644
|
-
* There is no Workbox-specific method needed for cleanup in that case.
|
|
1645
|
-
*/
|
|
1646
|
-
async deleteCacheAndMetadata() {
|
|
1647
|
-
for (const [e, t] of this._cacheExpirations)
|
|
1648
|
-
await self.caches.delete(e), await t.delete();
|
|
1649
|
-
this._cacheExpirations = /* @__PURE__ */ new Map();
|
|
1650
|
-
}
|
|
1651
|
-
}
|
|
1652
|
-
class Oe extends v {
|
|
1653
|
-
/**
|
|
1654
|
-
* @private
|
|
1655
|
-
* @param {Request|string} request A request to run this strategy for.
|
|
1656
|
-
* @param {workbox-strategies.StrategyHandler} handler The event that
|
|
1657
|
-
* triggered the request.
|
|
1658
|
-
* @return {Promise<Response>}
|
|
1659
|
-
*/
|
|
1660
|
-
async _handle(e, t) {
|
|
1661
|
-
let n = await t.cacheMatch(e), a;
|
|
1662
|
-
if (!n)
|
|
1663
|
-
try {
|
|
1664
|
-
n = await t.fetchAndCachePut(e);
|
|
1665
|
-
} catch (r) {
|
|
1666
|
-
r instanceof Error && (a = r);
|
|
1667
|
-
}
|
|
1668
|
-
if (!n)
|
|
1669
|
-
throw new h("no-response", { url: e.url, error: a });
|
|
1670
|
-
return n;
|
|
1671
|
-
}
|
|
1672
|
-
}
|
|
1673
|
-
const Se = {
|
|
1674
|
-
/**
|
|
1675
|
-
* Returns a valid response (to allow caching) if the status is 200 (OK) or
|
|
1676
|
-
* 0 (opaque).
|
|
1677
|
-
*
|
|
1678
|
-
* @param {Object} options
|
|
1679
|
-
* @param {Response} options.response
|
|
1680
|
-
* @return {Response|null}
|
|
1681
|
-
*
|
|
1682
|
-
* @private
|
|
1683
|
-
*/
|
|
1684
|
-
cacheWillUpdate: async ({ response: s }) => s.status === 200 || s.status === 0 ? s : null
|
|
1685
|
-
};
|
|
1686
|
-
class We extends v {
|
|
1687
|
-
/**
|
|
1688
|
-
* @param {Object} [options]
|
|
1689
|
-
* @param {string} [options.cacheName] Cache name to store and retrieve
|
|
1690
|
-
* requests. Defaults to cache names provided by
|
|
1691
|
-
* {@link workbox-core.cacheNames}.
|
|
1692
|
-
* @param {Array<Object>} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}
|
|
1693
|
-
* to use in conjunction with this caching strategy.
|
|
1694
|
-
* @param {Object} [options.fetchOptions] Values passed along to the
|
|
1695
|
-
* [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)
|
|
1696
|
-
* of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796)
|
|
1697
|
-
* `fetch()` requests made by this strategy.
|
|
1698
|
-
* @param {Object} [options.matchOptions] [`CacheQueryOptions`](https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions)
|
|
1699
|
-
*/
|
|
1700
|
-
constructor(e = {}) {
|
|
1701
|
-
super(e), this.plugins.some((t) => "cacheWillUpdate" in t) || this.plugins.unshift(Se);
|
|
1702
|
-
}
|
|
1703
|
-
/**
|
|
1704
|
-
* @private
|
|
1705
|
-
* @param {Request|string} request A request to run this strategy for.
|
|
1706
|
-
* @param {workbox-strategies.StrategyHandler} handler The event that
|
|
1707
|
-
* triggered the request.
|
|
1708
|
-
* @return {Promise<Response>}
|
|
1709
|
-
*/
|
|
1710
|
-
async _handle(e, t) {
|
|
1711
|
-
const n = t.fetchAndCachePut(e).catch(() => {
|
|
1712
|
-
});
|
|
1713
|
-
t.waitUntil(n);
|
|
1714
|
-
let a = await t.cacheMatch(e), r;
|
|
1715
|
-
if (!a)
|
|
1716
|
-
try {
|
|
1717
|
-
a = await n;
|
|
1718
|
-
} catch (i) {
|
|
1719
|
-
i instanceof Error && (r = i);
|
|
1720
|
-
}
|
|
1721
|
-
if (!a)
|
|
1722
|
-
throw new h("no-response", { url: e.url, error: r });
|
|
1723
|
-
return a;
|
|
1724
|
-
}
|
|
1725
|
-
}
|
|
1726
|
-
Re(([{"revision":null,"url":"assets/access-control-lqeL04xS.js"},{"revision":null,"url":"assets/actions-fEYd3Zzl.js"},{"revision":null,"url":"assets/add-component-core-O259MLsf.js"},{"revision":null,"url":"assets/add-component-core-sZCWP9eJ.css"},{"revision":null,"url":"assets/Add-fqv5dYhK.js"},{"revision":null,"url":"assets/add-resource-PL-7Cqbo.js"},{"revision":null,"url":"assets/addon-OoVGx7qV.js"},{"revision":null,"url":"assets/Alert-QxQP6nLe.js"},{"revision":null,"url":"assets/analytics-m0u-NVoq.js"},{"revision":null,"url":"assets/api-JdyjIzZ7.js"},{"revision":null,"url":"assets/ar-fPoAp63K.js"},{"revision":null,"url":"assets/ar-GhaeoIRX.js"},{"revision":null,"url":"assets/ArrowDropDown-acg2e0kM.js"},{"revision":null,"url":"assets/audit-logs-GKeDBaow.js"},{"revision":null,"url":"assets/audit-logs-QseNTS8s.css"},{"revision":null,"url":"assets/Avatar-Wi9J6JgS.js"},{"revision":null,"url":"assets/button-uxbH21Zq.js"},{"revision":null,"url":"assets/ButtonGroup-lRYajIq-.js"},{"revision":null,"url":"assets/CheckCircle-Z4O4Mjwj.js"},{"revision":null,"url":"assets/ChevronRight-kd90TcZt.js"},{"revision":null,"url":"assets/click-to-copy--qY6cnLF.js"},{"revision":null,"url":"assets/CloseOutlined-twGwkp1V.js"},{"revision":null,"url":"assets/complete-ghyYqeBw.js"},{"revision":null,"url":"assets/component-sKQ_1mkW.js"},{"revision":null,"url":"assets/config-aGlNeJvv.js"},{"revision":null,"url":"assets/config-navigation-WtVoLchG.js"},{"revision":null,"url":"assets/config-peT7nMj4.js"},{"revision":null,"url":"assets/config-space-cvgqOVHm.js"},{"revision":null,"url":"assets/confirm-b2aIw6ht.js"},{"revision":null,"url":"assets/connect-1vYWNPD1.js"},{"revision":null,"url":"assets/connect-to-VVkrWXpx.js"},{"revision":null,"url":"assets/connect-VkiahrPx.js"},{"revision":null,"url":"assets/content-layout-Avo37FUx.js"},{"revision":null,"url":"assets/dashboard-hH4ldZxt.js"},{"revision":null,"url":"assets/de-SxNezp7R.js"},{"revision":null,"url":"assets/de-xwlaLxE5.js"},{"revision":null,"url":"assets/Delete-baeq4z3e.js"},{"revision":null,"url":"assets/DeleteOutline-lsNZfg_t.js"},{"revision":null,"url":"assets/did-address-r4LrHsNJ.js"},{"revision":null,"url":"assets/domain-list-vvqfefP7.js"},{"revision":null,"url":"assets/domain-s9bkfIdC.js"},{"revision":null,"url":"assets/Done-nQ7vdlYU.js"},{"revision":null,"url":"assets/Download-k5XX4dTL.js"},{"revision":null,"url":"assets/Edit-XaiOy2Xx.js"},{"revision":null,"url":"assets/EditIcon-gUEbH7RR.js"},{"revision":null,"url":"assets/es-dNi5rRte.js"},{"revision":null,"url":"assets/es-WU0JxH3v.js"},{"revision":null,"url":"assets/exchange-passport-13f-NXrO.js"},{"revision":null,"url":"assets/ExpandMore-Y-GY23eE.js"},{"revision":null,"url":"assets/fallback-QWR-uZ1t.js"},{"revision":null,"url":"assets/FilterList--1bXVDoV.js"},{"revision":null,"url":"assets/FormControl-lbyrVtJ0.js"},{"revision":null,"url":"assets/FormControlLabel-w9vgx7Yo.js"},{"revision":null,"url":"assets/FormGroup-j6mNPGc4.js"},{"revision":null,"url":"assets/fr-s2654-DL.js"},{"revision":null,"url":"assets/fr-uSakQJtB.js"},{"revision":null,"url":"assets/fuel-8t7kY2mB.js"},{"revision":null,"url":"assets/fullpage-6xHD82Cr.js"},{"revision":null,"url":"assets/Google--x6bIAdx.js"},{"revision":null,"url":"assets/Grid-BBXWNjXi.js"},{"revision":null,"url":"assets/hi-lcoNZDY5.js"},{"revision":null,"url":"assets/hi-Ytu7go_o.js"},{"revision":null,"url":"assets/Hidden-GQzdfHD2.js"},{"revision":null,"url":"assets/home-prDJP1vN.js"},{"revision":null,"url":"assets/id-te5mqOnp.js"},{"revision":null,"url":"assets/id-uVaD_Ehi.js"},{"revision":null,"url":"assets/iframe-R8rAYMnn.js"},{"revision":null,"url":"assets/index-_bNlMvQb.js"},{"revision":null,"url":"assets/index-1_TlP6sd.js"},{"revision":null,"url":"assets/index-1NyTkR9G.css"},{"revision":null,"url":"assets/index-5Y-_rvNQ.js"},{"revision":null,"url":"assets/index-7SG8bi1h.js"},{"revision":null,"url":"assets/index-bgLnrtLA.js"},{"revision":null,"url":"assets/index-bX4hWAvF.js"},{"revision":null,"url":"assets/index-chJaccxy.js"},{"revision":null,"url":"assets/index-ci8nhgp1.js"},{"revision":null,"url":"assets/index-d-Rw6UM2.js"},{"revision":null,"url":"assets/index-Dl94rmeF.js"},{"revision":null,"url":"assets/index-F9vDNwHQ.css"},{"revision":null,"url":"assets/index-FNrjqxyS.js"},{"revision":null,"url":"assets/index-fu9fK7pt.js"},{"revision":null,"url":"assets/index-G5Tqb7tu.js"},{"revision":null,"url":"assets/index-H-1bD5E0.js"},{"revision":null,"url":"assets/index-hoFepcTV.js"},{"revision":null,"url":"assets/index-IunnZV0n.js"},{"revision":null,"url":"assets/index-Jcr8esMm.js"},{"revision":null,"url":"assets/index-JuS3WfQt.js"},{"revision":null,"url":"assets/index-jy1-LBfT.js"},{"revision":null,"url":"assets/index-MirmvGsd.js"},{"revision":null,"url":"assets/index-mpTP79cg.js"},{"revision":null,"url":"assets/index-NdBEK8Bl.js"},{"revision":null,"url":"assets/index-RGb4v1N9.js"},{"revision":null,"url":"assets/index-sJqh01NS.js"},{"revision":null,"url":"assets/index-TS6UYx6i.js"},{"revision":null,"url":"assets/index-Tys9zsjU.js"},{"revision":null,"url":"assets/index-Wjwa0cOQ.js"},{"revision":null,"url":"assets/index-xq1BazCi.js"},{"revision":null,"url":"assets/index-YnKRdxXK.js"},{"revision":null,"url":"assets/index-ZZs7ZSmY.js"},{"revision":null,"url":"assets/index.es-HSBEj3GM.js"},{"revision":null,"url":"assets/index.esm-EwSckbet.js"},{"revision":null,"url":"assets/InfoOutlined-pQTJbNAR.js"},{"revision":null,"url":"assets/InputAdornment-YKNFOPoW.js"},{"revision":null,"url":"assets/InputLabel-M8f8zxdp.js"},{"revision":null,"url":"assets/invitation-jGsQVGc5.js"},{"revision":null,"url":"assets/invite-KxhZeZua.js"},{"revision":null,"url":"assets/issue-passport-cwxYmfl-.js"},{"revision":null,"url":"assets/ja-9UaRFNdy.js"},{"revision":null,"url":"assets/ja-OpUWOcZU.js"},{"revision":null,"url":"assets/jss-plugin-props-sort.esm-bLo1Evve.js"},{"revision":null,"url":"assets/ko-lILou2tB.js"},{"revision":null,"url":"assets/ko-yTikii17.js"},{"revision":null,"url":"assets/LastPage-qjBY70oZ.js"},{"revision":null,"url":"assets/Launch-0FC6BZcS.js"},{"revision":null,"url":"assets/launch-result-message-dY2iMilP.js"},{"revision":null,"url":"assets/LaunchOutlined-VfVP-A8e.js"},{"revision":null,"url":"assets/layout-e5H4XbgR.js"},{"revision":null,"url":"assets/Link-zECde_mP.js"},{"revision":null,"url":"assets/list-header-H85FxnUd.js"},{"revision":null,"url":"assets/ListItem-PsjMYGYW.js"},{"revision":null,"url":"assets/ListItemText-v-YDDXLu.js"},{"revision":null,"url":"assets/localization-dKtkWfCP.js"},{"revision":null,"url":"assets/LockIcon-YPDKLYDR.js"},{"revision":null,"url":"assets/log-993Rbbf_.css"},{"revision":null,"url":"assets/log-XmvgUYJV.js"},{"revision":null,"url":"assets/login-WV60NNnV.js"},{"revision":null,"url":"assets/logo-uploader-dLVBmlFg.js"},{"revision":null,"url":"assets/Loop-FvY8qKla.js"},{"revision":null,"url":"assets/lost-passport-Pjdx6_fH.js"},{"revision":null,"url":"assets/lottie-nlmxqKlE.js"},{"revision":null,"url":"assets/mode-Ip8p6ZjP.js"},{"revision":null,"url":"assets/MoreHoriz-lASj8aGx.js"},{"revision":null,"url":"assets/MoreVert-bHHnG_Se.js"},{"revision":null,"url":"assets/notifications-D82a4tmz.js"},{"revision":null,"url":"assets/OpenInNew-OG9KtzMo.js"},{"revision":null,"url":"assets/overview-vUP7CiQf.js"},{"revision":null,"url":"assets/page-header-v_K419Ac.js"},{"revision":null,"url":"assets/Pagination-V3cV30lP.js"},{"revision":null,"url":"assets/permission-ABtmXTuW.js"},{"revision":null,"url":"assets/PlayArrow-hVUuCAl-.js"},{"revision":null,"url":"assets/preact.module-CqtzSW6G.js"},{"revision":null,"url":"assets/preferences-k_7KgW5w.js"},{"revision":null,"url":"assets/pt-GqNQVp8c.js"},{"revision":null,"url":"assets/pt-zAir0hVe.js"},{"revision":null,"url":"assets/publish-resource-jWTLqVL5.js"},{"revision":null,"url":"assets/RadioGroup-EPTUHzZr.js"},{"revision":null,"url":"assets/react-ao8ifLH_.js"},{"revision":null,"url":"assets/react-i1f7jPtW.css"},{"revision":null,"url":"assets/redux-eumHG9Ya.js"},{"revision":null,"url":"assets/ru-Gi96O-Vb.js"},{"revision":null,"url":"assets/ru-qJiTbTeh.js"},{"revision":null,"url":"assets/Search-DgnsoBhR.js"},{"revision":null,"url":"assets/Select-wfeVFmBa.js"},{"revision":null,"url":"assets/selector-lFou3wXO.js"},{"revision":null,"url":"assets/ServerLogo-jR1OIGkM.js"},{"revision":null,"url":"assets/session-AG-xGSdP.js"},{"revision":null,"url":"assets/setup-ARWRhDFy.js"},{"revision":null,"url":"assets/Skeleton-6ZVG1Wck.js"},{"revision":null,"url":"assets/slicedToArray-R9kg3ydD.js"},{"revision":null,"url":"assets/Slider-ugTmN6S_.js"},{"revision":null,"url":"assets/spaces-y8AzCBZN.js"},{"revision":null,"url":"assets/start-ZDZ1ioO6.js"},{"revision":null,"url":"assets/step-actions--VVhNAmi.js"},{"revision":null,"url":"assets/Stepper-gPp4biHj.js"},{"revision":null,"url":"assets/studio-zggObH8h.js"},{"revision":null,"url":"assets/switch-control-Yn6cWwSf.js"},{"revision":null,"url":"assets/TableRow-zrhpBalc.js"},{"revision":null,"url":"assets/TextField-W6oenAin.js"},{"revision":null,"url":"assets/th-jh8eUZZR.js"},{"revision":null,"url":"assets/th-TxDimAv4.js"},{"revision":null,"url":"assets/Toolbar-kSVa89hA.js"},{"revision":null,"url":"assets/toUpper-QMvcoiWG.js"},{"revision":null,"url":"assets/transfer-wURup8-H.js"},{"revision":null,"url":"assets/ua-parser-MgngbXVk.js"},{"revision":null,"url":"assets/uniqBy-et6jS2Aa.js"},{"revision":null,"url":"assets/unsubscribe-tcM4xxw3.js"},{"revision":null,"url":"assets/use-blocklet-info-for-connect-did-spaces-rbrAZhHq.js"},{"revision":null,"url":"assets/use-passport-id-pXgWCnyq.js"},{"revision":null,"url":"assets/useAsync-R7mQBX4E.js"},{"revision":null,"url":"assets/useFormControl-hft_BGqP.js"},{"revision":null,"url":"assets/useLocalStorage-5hZfnQUd.js"},{"revision":null,"url":"assets/user-center-6JSNAtav.js"},{"revision":null,"url":"assets/user-sessions-95DNVhRl.js"},{"revision":null,"url":"assets/useSetState-0ShTN-QE.js"},{"revision":null,"url":"assets/useSlot-S2mM1BYb.js"},{"revision":null,"url":"assets/util-NLYqDddJ.js"},{"revision":null,"url":"assets/vi-1a4YQXnq.js"},{"revision":null,"url":"assets/vi-hic6htLz.js"},{"revision":null,"url":"assets/ViewList-0K6WNbjd.js"},{"revision":null,"url":"assets/wrap-locale-0QLC53p3.js"},{"revision":null,"url":"assets/zh-o4AqgTyY.js"},{"revision":null,"url":"assets/zh-tw-qnWxTKWn.js"},{"revision":null,"url":"assets/zh-tw-wjxZMUrx.js"},{"revision":null,"url":"assets/zh-VrMBUqtA.js"},{"revision":"9eca73031f81d28735dc419eb15c134b","url":"index.html"},{"revision":"186b2f1889d7c89ecd30e422ab415c8a","url":"registerSW.js"},{"revision":"07a287e43ae8e959a20d6b367a581667","url":"router-template-styles/styles.css"},{"revision":"ecdddc9b1297e7511cad18529d5cfd89","url":"manifest.webmanifest"}] || []).filter((s) => s.url !== "/" && !s.url.includes("index.html")));
|
|
1727
|
-
re();
|
|
1728
|
-
self.addEventListener("activate", () => {
|
|
1729
|
-
console.log("Service Worker activated");
|
|
1730
|
-
});
|
|
1731
|
-
self.addEventListener("install", (s) => {
|
|
1732
|
-
console.log("Service Worker installed"), s.waitUntil(self.skipWaiting());
|
|
1733
|
-
});
|
|
1734
|
-
const G = (s) => !!(s.method !== "GET" || s.url.includes("/api") || s.url.includes("__meta__.js") || s.url.includes("__blocklet__.js"));
|
|
1735
|
-
I(
|
|
1736
|
-
(s) => {
|
|
1737
|
-
const { request: e } = s;
|
|
1738
|
-
return G(e) ? !1 : e.url.includes("/static/");
|
|
1739
|
-
},
|
|
1740
|
-
new Oe({
|
|
1741
|
-
cacheName: "static",
|
|
1742
|
-
plugins: [
|
|
1743
|
-
new Ae({
|
|
1744
|
-
maxEntries: 200
|
|
1745
|
-
})
|
|
1746
|
-
]
|
|
1747
|
-
})
|
|
1748
|
-
);
|
|
1749
|
-
I((s) => {
|
|
1750
|
-
const { request: e } = s;
|
|
1751
|
-
return G(e) ? !1 : e.url.includes("/images/") || e.url.includes("/router/-template-styles/");
|
|
1752
|
-
}, new We());
|
|
1
|
+
try{self["workbox:core:7.0.0"]&&_()}catch{}const Q=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},z=Q;class h extends Error{constructor(e,t){const n=z(e,t);super(n),this.name=e,this.details=t}}const j=new Set;function J(s){j.add(s)}const d={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},E=s=>[d.prefix,s,d.suffix].filter(e=>e&&e.length>0).join("-"),X=s=>{for(const e of Object.keys(d))s(e)},x={updateDetails:s=>{X(e=>{typeof s[e]=="string"&&(d[e]=s[e])})},getGoogleAnalyticsName:s=>s||E(d.googleAnalytics),getPrecacheName:s=>s||E(d.precache),getPrefix:()=>d.prefix,getRuntimeName:s=>s||E(d.runtime),getSuffix:()=>d.suffix};function K(s,e){const t=new URL(s);for(const n of e)t.searchParams.delete(n);return t.href}async function Y(s,e,t,n){const a=K(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=K(c.url,t);if(a===o)return s.match(c,n)}}let m;function Z(){if(m===void 0){const s=new Response("");if("body"in s)try{new Response(s.body),m=!0}catch{m=!1}m=!1}return m}function F(s){s.then(()=>{})}class ee{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}async function te(){for(const s of j)await s()}const se=s=>new URL(String(s),location.href).href.replace(new RegExp(`^${location.origin}`),"");function ne(s){return new Promise(e=>setTimeout(e,s))}function A(s,e){const t=e();return s.waitUntil(t),t}async function ae(s,e){let t=null;if(s.url&&(t=new URL(s.url).origin),t!==self.location.origin)throw new h("cross-origin-copy-response",{origin:t});const n=s.clone(),a={headers:new Headers(n.headers),status:n.status,statusText:n.statusText},r=e?e(a):a,i=Z()?n.body:await n.blob();return new Response(i,r)}function re(){self.addEventListener("activate",()=>self.clients.claim())}try{self["workbox:precaching:7.0.0"]&&_()}catch{}const ie="__WB_REVISION__";function ce(s){if(!s)throw new h("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 h("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(ie,e),{cacheKey:n.href,url:a.href}}class oe{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 le{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}}try{self["workbox:strategies:7.0.0"]&&_()}catch{}function b(s){return typeof s=="string"?new Request(s):s}class he{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new ee,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=b(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 h("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=b(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=b(e);await ne(0);const a=await this.getCacheKey(n,"write");if(!t)throw new h("cache-put-with-no-response",{url:se(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"),g=l?await Y(o,a.clone(),["__WB_REVISION__"],c):null;try{await o.put(a,l?r.clone():r)}catch(u){if(u instanceof Error)throw u.name==="QuotaExceededError"&&await te(),u}for(const u of this.iterateCallbacks("cacheDidUpdate"))await u({cacheName:i,oldResponse:g,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=b(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 v{constructor(e={}){this.cacheName=x.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 he(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 h("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 p extends v{constructor(e={}){e.cacheName=x.getPrecacheName(e.cacheName),super(e),this._fallbackToNetwork=e.fallbackToNetwork!==!1,this.plugins.push(p.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 h("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 h("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!==p.copyRedirectedCacheableResponsesPlugin&&(a===p.defaultPrecacheCacheabilityPlugin&&(e=n),a.cacheWillUpdate&&t++);t===0?this.plugins.push(p.defaultPrecacheCacheabilityPlugin):t>1&&e!==null&&this.plugins.splice(e,1)}}p.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:s}){return!s||s.status>=400?null:s}};p.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:s}){return s.redirected?await ae(s):s}};class ue{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:n=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new p({cacheName:x.getPrecacheName(e),plugins:[...t,new le({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}=ce(n),i=typeof n!="string"&&n.revision?"reload":"default";if(this._urlsToCacheKeys.has(r)&&this._urlsToCacheKeys.get(r)!==a)throw new h("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 h("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 A(e,async()=>{const t=new oe;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 A(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 h("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 D;const q=()=>(D||(D=new ue),D);try{self["workbox:routing:7.0.0"]&&_()}catch{}const H="GET",C=s=>s&&typeof s=="object"?s:{handle:s};class R{constructor(e,t,n=H){this.handler=C(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=C(e)}}class de extends R{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 fe{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(u){l=Promise.reject(u)}const g=i&&i.catchHandler;return l instanceof Promise&&(this._catchHandler||g)&&(l=l.catch(async u=>{if(g)try{return await g.handle({url:n,request:e,event:t,params:r})}catch(N){N instanceof Error&&(u=N)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw u})),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=H){this._defaultHandlerMap.set(t,C(e))}setCatchHandler(e){this._catchHandler=C(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 h("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 h("unregister-route-route-not-registered")}}let w;const pe=()=>(w||(w=new fe,w.addFetchListener(),w.addCacheListener()),w);function I(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 R(i,e,t)}else if(s instanceof RegExp)n=new de(s,e,t);else if(typeof s=="function")n=new R(s,e,t);else if(s instanceof R)n=s;else throw new h("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return pe().registerRoute(n),n}function ge(s,e=[]){for(const t of[...s.searchParams.keys()])e.some(n=>n.test(t))&&s.searchParams.delete(t);return s}function*me(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=ge(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 we extends R{constructor(e,t){const n=({request:a})=>{const r=e.getURLsToCacheKeys();for(const i of me(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 ye(s){const e=q(),t=new we(e,s);I(t)}function _e(s){q().precache(s)}function Re(s,e){_e(s),ye(e)}const be=(s,e)=>e.some(t=>s instanceof t);let O,S;function Ce(){return O||(O=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function xe(){return S||(S=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const V=new WeakMap,T=new WeakMap,$=new WeakMap,L=new WeakMap,M=new WeakMap;function Ee(s){const e=new Promise((t,n)=>{const a=()=>{s.removeEventListener("success",r),s.removeEventListener("error",i)},r=()=>{t(f(s.result)),a()},i=()=>{n(s.error),a()};s.addEventListener("success",r),s.addEventListener("error",i)});return e.then(t=>{t instanceof IDBCursor&&V.set(t,s)}).catch(()=>{}),M.set(e,s),e}function De(s){if(T.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)});T.set(s,e)}let P={get(s,e,t){if(s instanceof IDBTransaction){if(e==="done")return T.get(s);if(e==="objectStoreNames")return s.objectStoreNames||$.get(s);if(e==="store")return t.objectStoreNames[1]?void 0:t.objectStore(t.objectStoreNames[0])}return f(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 Le(s){P=s(P)}function Ue(s){return s===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...t){const n=s.call(U(this),e,...t);return $.set(n,e.sort?e.sort():[e]),f(n)}:xe().includes(s)?function(...e){return s.apply(U(this),e),f(V.get(this))}:function(...e){return f(s.apply(U(this),e))}}function ke(s){return typeof s=="function"?Ue(s):(s instanceof IDBTransaction&&De(s),be(s,Ce())?new Proxy(s,P):s)}function f(s){if(s instanceof IDBRequest)return Ee(s);if(L.has(s))return L.get(s);const e=ke(s);return e!==s&&(L.set(s,e),M.set(e,s)),e}const U=s=>M.get(s);function Te(s,e,{blocked:t,upgrade:n,blocking:a,terminated:r}={}){const i=indexedDB.open(s,e),c=f(i);return n&&i.addEventListener("upgradeneeded",o=>{n(f(i.result),o.oldVersion,o.newVersion,f(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 Pe(s,{blocked:e}={}){const t=indexedDB.deleteDatabase(s);return e&&t.addEventListener("blocked",n=>e(n.oldVersion,n)),f(t).then(()=>{})}const ve=["get","getKey","getAll","getAllKeys","count"],Ie=["put","add","delete","clear"],k=new Map;function W(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=Ie.includes(t);if(!(t in(n?IDBIndex:IDBObjectStore).prototype)||!(a||ve.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}Le(s=>({...s,get:(e,t,n)=>W(e,t)||s.get(e,t,n),has:(e,t)=>!!W(e,t)||s.has(e,t)}));try{self["workbox:expiration:7.0.0"]&&_()}catch{}const Me="workbox-expiration",y="cache-entries",B=s=>{const e=new URL(s,location.href);return e.hash="",e.href};class Ne{constructor(e){this._db=null,this._cacheName=e}_upgradeDb(e){const t=e.createObjectStore(y,{keyPath:"id"});t.createIndex("cacheName","cacheName",{unique:!1}),t.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&Pe(this._cacheName)}async setTimestamp(e,t){e=B(e);const n={url:e,timestamp:t,cacheName:this._cacheName,id:this._getId(e)},r=(await this.getDb()).transaction(y,"readwrite",{durability:"relaxed"});await r.store.put(n),await r.done}async getTimestamp(e){const n=await(await this.getDb()).get(y,this._getId(e));return n==null?void 0:n.timestamp}async expireEntries(e,t){const n=await this.getDb();let a=await n.transaction(y).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(y,o.id),c.push(o.url);return c}_getId(e){return this._cacheName+"|"+B(e)}async getDb(){return this._db||(this._db=await Te(Me,1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class Ke{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 Ne(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,F(this.expireEntries()))}async updateTimestamp(e){await this._timestampModel.setTimestamp(e,Date.now())}async isURLExpired(e){if(this._maxAgeSeconds){const t=await this._timestampModel.getTimestamp(e),n=Date.now()-this._maxAgeSeconds*1e3;return t!==void 0?t<n:!0}else return!1}async delete(){this._rerunRequested=!1,await this._timestampModel.expireEntries(1/0)}}class Ae{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);F(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&&J(()=>this.deleteCacheAndMetadata())}_getCacheExpiration(e){if(e===x.getRuntimeName())throw new h("expire-custom-caches-only");let t=this._cacheExpirations.get(e);return t||(t=new Ke(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}}class Oe extends v{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 h("no-response",{url:e.url,error:a});return n}}const Se={cacheWillUpdate:async({response:s})=>s.status===200||s.status===0?s:null};class We extends v{constructor(e={}){super(e),this.plugins.some(t=>"cacheWillUpdate"in t)||this.plugins.unshift(Se)}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 h("no-response",{url:e.url,error:r});return a}}Re(([{"revision":null,"url":"assets/access-control-DkXxF3G5.js"},{"revision":null,"url":"assets/actions-BJCgpUa1.js"},{"revision":null,"url":"assets/add-component-core-BcdmPIzQ.js"},{"revision":null,"url":"assets/add-component-core-CxkJY_14.css"},{"revision":null,"url":"assets/Add-CSALqOL2.js"},{"revision":null,"url":"assets/add-resource-BgRIgUuu.js"},{"revision":null,"url":"assets/addon-DPweWyQ9.js"},{"revision":null,"url":"assets/Alert-Bfy43tWu.js"},{"revision":null,"url":"assets/analytics-DMUwKOCx.js"},{"revision":null,"url":"assets/api-CfHak9bu.js"},{"revision":null,"url":"assets/ar-CtvBwC9x.js"},{"revision":null,"url":"assets/ar-CxvIl-Ji.js"},{"revision":null,"url":"assets/ArrowDropDown-YQC0m5j6.js"},{"revision":null,"url":"assets/audit-logs-BCx41NLy.css"},{"revision":null,"url":"assets/audit-logs-CFobEMUo.js"},{"revision":null,"url":"assets/Avatar-kRZlSVDZ.js"},{"revision":null,"url":"assets/button-BOQqSIjQ.js"},{"revision":null,"url":"assets/ButtonGroup-B9nwPHBC.js"},{"revision":null,"url":"assets/CheckCircle-B1QjBTyZ.js"},{"revision":null,"url":"assets/ChevronRight-DP0p_UTV.js"},{"revision":null,"url":"assets/click-to-copy-BhXu5Oa9.js"},{"revision":null,"url":"assets/CloseOutlined-Dd6P0mUS.js"},{"revision":null,"url":"assets/complete-B5EdQ5rD.js"},{"revision":null,"url":"assets/component-CPiVNvUd.js"},{"revision":null,"url":"assets/config-DEX2jzvW.js"},{"revision":null,"url":"assets/config-Dmy2r2ct.js"},{"revision":null,"url":"assets/config-navigation-BZ-m12wq.js"},{"revision":null,"url":"assets/config-space-CAE9_X8D.js"},{"revision":null,"url":"assets/confirm-Cxv5rlKs.js"},{"revision":null,"url":"assets/connect-BY6uhibK.js"},{"revision":null,"url":"assets/connect-th3KGF1X.js"},{"revision":null,"url":"assets/connect-to-BMXxyPoQ.js"},{"revision":null,"url":"assets/content-layout-CAjryyt5.js"},{"revision":null,"url":"assets/dashboard-x-SwAZSt.js"},{"revision":null,"url":"assets/de-3qOdEa6P.js"},{"revision":null,"url":"assets/de-Dne-I8J5.js"},{"revision":null,"url":"assets/Delete-DXQBSw3p.js"},{"revision":null,"url":"assets/DeleteOutline-BcuMj2Om.js"},{"revision":null,"url":"assets/did-address-BdzARvFL.js"},{"revision":null,"url":"assets/domain-Dg4C4gEx.js"},{"revision":null,"url":"assets/domain-list-DQo9izp6.js"},{"revision":null,"url":"assets/Done-C_QFBMZp.js"},{"revision":null,"url":"assets/Download-E58lW-mA.js"},{"revision":null,"url":"assets/Edit-Cb5DHfSS.js"},{"revision":null,"url":"assets/EditIcon-Nlg8TK77.js"},{"revision":null,"url":"assets/es-7PLonVLT.js"},{"revision":null,"url":"assets/es-oIIJHLwJ.js"},{"revision":null,"url":"assets/exchange-passport-BSDNgDh5.js"},{"revision":null,"url":"assets/ExpandMore-CboKri_u.js"},{"revision":null,"url":"assets/fallback-CUhtWylI.js"},{"revision":null,"url":"assets/FilterList-wuXDGTLe.js"},{"revision":null,"url":"assets/FormControl-C-HIkhGC.js"},{"revision":null,"url":"assets/FormControlLabel-BMm4Nb7L.js"},{"revision":null,"url":"assets/FormGroup-sFGTqDL0.js"},{"revision":null,"url":"assets/fr-1I2E8gH_.js"},{"revision":null,"url":"assets/fr-DhdScjyY.js"},{"revision":null,"url":"assets/fuel-CSlGFStq.js"},{"revision":null,"url":"assets/fullpage-CCEVYKVy.js"},{"revision":null,"url":"assets/Google-6skZzWel.js"},{"revision":null,"url":"assets/Grid-DrgCuwdw.js"},{"revision":null,"url":"assets/hi-O7fF0c9u.js"},{"revision":null,"url":"assets/hi-zO0chDpQ.js"},{"revision":null,"url":"assets/Hidden-DGbIB_cs.js"},{"revision":null,"url":"assets/home-4YK2sPir.js"},{"revision":null,"url":"assets/id-BF9h-bev.js"},{"revision":null,"url":"assets/id-Ck1JiAPu.js"},{"revision":null,"url":"assets/iframe-VDCuXFSq.js"},{"revision":null,"url":"assets/index-B_nWZpYb.js"},{"revision":null,"url":"assets/index-B8il3K7L.js"},{"revision":null,"url":"assets/index-BIl2byhA.js"},{"revision":null,"url":"assets/index-BkHtGxzx.js"},{"revision":null,"url":"assets/index-BnqbdDV9.js"},{"revision":null,"url":"assets/index-Brl8hqFl.js"},{"revision":null,"url":"assets/index-BUTxi5wJ.js"},{"revision":null,"url":"assets/index-BWH1BL7e.js"},{"revision":null,"url":"assets/index-C6Ue8EuO.js"},{"revision":null,"url":"assets/index-CCovGSMB.css"},{"revision":null,"url":"assets/index-CEOtTrx7.js"},{"revision":null,"url":"assets/index-Cj9Ilrq-.js"},{"revision":null,"url":"assets/index-COFYjffY.js"},{"revision":null,"url":"assets/index-COXGvP9H.js"},{"revision":null,"url":"assets/index-CzzCTVSf.js"},{"revision":null,"url":"assets/index-D-XBJ_hS.js"},{"revision":null,"url":"assets/index-D2-McmJV.js"},{"revision":null,"url":"assets/index-D5uLks1u.js"},{"revision":null,"url":"assets/index-DdaeL0pn.js"},{"revision":null,"url":"assets/index-De7ZBKgW.js"},{"revision":null,"url":"assets/index-DG_ypNN6.js"},{"revision":null,"url":"assets/index-DGMWtahG.js"},{"revision":null,"url":"assets/index-DlBowrsh.js"},{"revision":null,"url":"assets/index-DncF0fB3.js"},{"revision":null,"url":"assets/index-DSyhtbQu.js"},{"revision":null,"url":"assets/index-DTEEl-sV.js"},{"revision":null,"url":"assets/index-DU3JORH0.css"},{"revision":null,"url":"assets/index-i7JgVpS8.js"},{"revision":null,"url":"assets/index-iVkbhCIq.js"},{"revision":null,"url":"assets/index-KKIYuddO.js"},{"revision":null,"url":"assets/index-OGKPRmXX.js"},{"revision":null,"url":"assets/index.es-CHEOrdi2.js"},{"revision":null,"url":"assets/index.esm-1E_GgTvg.js"},{"revision":null,"url":"assets/InfoOutlined-BzdWDdEW.js"},{"revision":null,"url":"assets/InputAdornment-DLeNk04D.js"},{"revision":null,"url":"assets/InputLabel-BEw4IlsK.js"},{"revision":null,"url":"assets/invitation-l8cfulo_.js"},{"revision":null,"url":"assets/invite-D5vQgiOc.js"},{"revision":null,"url":"assets/issue-passport-Cf-xm3hp.js"},{"revision":null,"url":"assets/item-BccTJwxu.js"},{"revision":null,"url":"assets/ja-BRl6JgyC.js"},{"revision":null,"url":"assets/ja-CJDb8rhQ.js"},{"revision":null,"url":"assets/jss-plugin-props-sort.esm-CAOI9fXo.js"},{"revision":null,"url":"assets/ko-BjJKFx_R.js"},{"revision":null,"url":"assets/ko-d6gRwvhy.js"},{"revision":null,"url":"assets/LastPage-B7fr2Bgg.js"},{"revision":null,"url":"assets/Launch-bbh5Q3b_.js"},{"revision":null,"url":"assets/launch-result-message-CfYP3oYm.js"},{"revision":null,"url":"assets/LaunchOutlined-Dv6lMSrT.js"},{"revision":null,"url":"assets/layout-B7TaVAOp.js"},{"revision":null,"url":"assets/Link-CkTpavTP.js"},{"revision":null,"url":"assets/list-header-DzErmZPF.js"},{"revision":null,"url":"assets/ListItem-DUdj8Kmm.js"},{"revision":null,"url":"assets/ListItemText-Caaw8krj.js"},{"revision":null,"url":"assets/localization-CDq-HG2y.js"},{"revision":null,"url":"assets/LockIcon-DX6Zdkki.js"},{"revision":null,"url":"assets/log-D33dFtt_.css"},{"revision":null,"url":"assets/log-DnrPjYaF.js"},{"revision":null,"url":"assets/login-C_d3kcDB.js"},{"revision":null,"url":"assets/logo-uploader-CwSvo0ae.js"},{"revision":null,"url":"assets/Loop-8GJykIwr.js"},{"revision":null,"url":"assets/lost-passport-Ff-IHu4a.js"},{"revision":null,"url":"assets/lottie-k5jCb9t6.js"},{"revision":null,"url":"assets/mode-B2dWMeTO.js"},{"revision":null,"url":"assets/MoreHoriz-D9SvJLnk.js"},{"revision":null,"url":"assets/MoreVert-Diuqsm0S.js"},{"revision":null,"url":"assets/notifications-BYPIYVNe.js"},{"revision":null,"url":"assets/OpenInNew-7hVLsi_L.js"},{"revision":null,"url":"assets/overview-Be7QvIZN.js"},{"revision":null,"url":"assets/page-header-ByCAXek-.js"},{"revision":null,"url":"assets/Pagination-Clu1MG6s.js"},{"revision":null,"url":"assets/permission-D8W7kw-h.js"},{"revision":null,"url":"assets/PlayArrow-Ctey7itN.js"},{"revision":null,"url":"assets/preact.module-FqEZb0ZS.js"},{"revision":null,"url":"assets/preferences-SvUeEo-H.js"},{"revision":null,"url":"assets/pt-B-aZwggu.js"},{"revision":null,"url":"assets/pt-CkaW7MUR.js"},{"revision":null,"url":"assets/publish-resource-BxHcEnAH.js"},{"revision":null,"url":"assets/RadioGroup-CF5xStKS.js"},{"revision":null,"url":"assets/react-BiUsLSvX.js"},{"revision":null,"url":"assets/react-CLV_uM-1.css"},{"revision":null,"url":"assets/redux-BEagnTzd.js"},{"revision":null,"url":"assets/ru-1GZMliq9.js"},{"revision":null,"url":"assets/ru-C3IFuM_m.js"},{"revision":null,"url":"assets/Search-BwpU7y5Y.js"},{"revision":null,"url":"assets/Select-DeQrk7uE.js"},{"revision":null,"url":"assets/selector-Btvzcs3I.js"},{"revision":null,"url":"assets/ServerLogo-DdMEc5OT.js"},{"revision":null,"url":"assets/session-Bf7V9tjJ.js"},{"revision":null,"url":"assets/setup-DUlhW3pN.js"},{"revision":null,"url":"assets/Skeleton-BYZaCcFY.js"},{"revision":null,"url":"assets/slicedToArray-Alir59X0.js"},{"revision":null,"url":"assets/Slider-RDFV-ee2.js"},{"revision":null,"url":"assets/spaces-azJeDl15.js"},{"revision":null,"url":"assets/start-BELza-Mc.js"},{"revision":null,"url":"assets/step-actions-CmNdp14l.js"},{"revision":null,"url":"assets/Stepper-Byik0SvR.js"},{"revision":null,"url":"assets/studio-C2Ej83Gl.js"},{"revision":null,"url":"assets/switch-control-BuCqXYS5.js"},{"revision":null,"url":"assets/TableRow-BUGcp46F.js"},{"revision":null,"url":"assets/TextField-1REpbtHI.js"},{"revision":null,"url":"assets/th-Bc32gh20.js"},{"revision":null,"url":"assets/th-CoOC9Fdr.js"},{"revision":null,"url":"assets/Toolbar-D1UExKwh.js"},{"revision":null,"url":"assets/toUpper-7Va8nJbM.js"},{"revision":null,"url":"assets/transfer-DYRzJT9S.js"},{"revision":null,"url":"assets/ua-parser-B4fL4aLk.js"},{"revision":null,"url":"assets/uniqBy-D7b07JqH.js"},{"revision":null,"url":"assets/unsubscribe-DbVpYahm.js"},{"revision":null,"url":"assets/use-blocklet-info-for-connect-did-spaces-CU1i1qSA.js"},{"revision":null,"url":"assets/use-passport-id-B-b-_oYF.js"},{"revision":null,"url":"assets/useAsync-C0DeDjqc.js"},{"revision":null,"url":"assets/useFormControl-DwATx00U.js"},{"revision":null,"url":"assets/useLocalStorage-O0eB5S4S.js"},{"revision":null,"url":"assets/user-center-S1eifUHr.js"},{"revision":null,"url":"assets/user-sessions-C-s-TSGZ.js"},{"revision":null,"url":"assets/useSetState-Cvi1fL6F.js"},{"revision":null,"url":"assets/useSlot-eNkNGL79.js"},{"revision":null,"url":"assets/util-CY67-DOO.js"},{"revision":null,"url":"assets/vi-4_K1eJyK.js"},{"revision":null,"url":"assets/vi-CRasBMRh.js"},{"revision":null,"url":"assets/ViewList-DHOYXrF1.js"},{"revision":null,"url":"assets/wrap-locale-Bb5r-LIM.js"},{"revision":null,"url":"assets/zh-B3t5p9W7.js"},{"revision":null,"url":"assets/zh-B75pu7gp.js"},{"revision":null,"url":"assets/zh-tw-BYDo5dcg.js"},{"revision":null,"url":"assets/zh-tw-RApzLgwA.js"},{"revision":"df0f87ff38511b45466d60431fa2162f","url":"index.html"},{"revision":"186b2f1889d7c89ecd30e422ab415c8a","url":"registerSW.js"},{"revision":"07a287e43ae8e959a20d6b367a581667","url":"router-template-styles/styles.css"},{"revision":"ecdddc9b1297e7511cad18529d5cfd89","url":"manifest.webmanifest"}]||[]).filter(s=>s.url!=="/"&&!s.url.includes("index.html")));re();self.addEventListener("activate",()=>{console.log("Service Worker activated")});self.addEventListener("install",s=>{console.log("Service Worker installed"),s.waitUntil(self.skipWaiting())});const G=s=>!!(s.method!=="GET"||s.url.includes("/api")||s.url.includes("__meta__.js")||s.url.includes("__blocklet__.js"));I(s=>{const{request:e}=s;return G(e)?!1:e.url.includes("/static/")},new Oe({cacheName:"static",plugins:[new Ae({maxEntries:200})]}));I(s=>{const{request:e}=s;return G(e)?!1:e.url.includes("/images/")||e.url.includes("/router/-template-styles/")},new We);
|