@abtnode/blocklet-services 1.16.38-beta-20250110-003414-d3c1bfbd → 1.16.38-beta-20250114-011103-277f0108

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/api/libs/connect/session.js +47 -9
  2. package/api/libs/open-graph/template.js +15 -12
  3. package/api/routes/oauth.js +5 -7
  4. package/api/routes/user.js +6 -8
  5. package/dist/assets/{access-control-DcliPEX2.js → access-control-DYH-J6hX.js} +1 -1
  6. package/dist/assets/{add-component-core-DSlHbXth.js → add-component-core-BWkCzqAe.js} +1 -1
  7. package/dist/assets/{add-resource-B9SUcn9b.js → add-resource-gJH8Kf-h.js} +1 -1
  8. package/dist/assets/{analytics-BVmtToBr.js → analytics-Bv-kTIMo.js} +1 -1
  9. package/dist/assets/{audit-logs-DOpEhbRi.js → audit-logs-1KlkVb5T.js} +1 -1
  10. package/dist/assets/{branding-BIbnR-Yt.js → branding-CKhye1G1.js} +2 -2
  11. package/dist/assets/{bundle-avatar-DqROxHMq.js → bundle-avatar-B19h7IBb.js} +1 -1
  12. package/dist/assets/{complete-B_C_fwut.js → complete-XH7CJJ1E.js} +1 -1
  13. package/dist/assets/{component-eAmweIYL.js → component-B4nl0OGh.js} +1 -1
  14. package/dist/assets/{config-CWoxBu0J.js → config-B8mAOrZA.js} +1 -1
  15. package/dist/assets/{config-navigation-jKhcoDId.js → config-navigation-Y__TwRFz.js} +3 -3
  16. package/dist/assets/{config-space-Dofzrh5m.js → config-space-DJZf5rEq.js} +1 -1
  17. package/dist/assets/{confirm-C0rryr4e.js → confirm-CucPiuHr.js} +1 -1
  18. package/dist/assets/{connect-Wiz0Gw9I.js → connect-CPSe4Vws.js} +1 -1
  19. package/dist/assets/{connect-CfWNBUY4.js → connect-DH0hj2CX.js} +1 -1
  20. package/dist/assets/{connect-to-Dsq1ST9l.js → connect-to-DfzH7XJt.js} +1 -1
  21. package/dist/assets/{dashboard-Ca8O6iHB.js → dashboard-D7XqaqMa.js} +3 -3
  22. package/dist/assets/{domain-DJyjDPmO.js → domain-D80mBbZ5.js} +1 -1
  23. package/dist/assets/{domain-list-BEjAE8hh.js → domain-list-DGgkgu6r.js} +1 -1
  24. package/dist/assets/{email-C3ggDSGp.js → email-C1ha_p9W.js} +1 -1
  25. package/dist/assets/{exchange-passport-4QuzoW2F.js → exchange-passport-4uu5i0rP.js} +1 -1
  26. package/dist/assets/{form-text-input-CT57jMfW.js → form-text-input-DB90dWTR.js} +1 -1
  27. package/dist/assets/{fuel-CJ-CsgDu.js → fuel-PiarpzYg.js} +1 -1
  28. package/dist/assets/{index-CQT4qLcx.js → index-8ktBk2aq.js} +1 -1
  29. package/dist/assets/{index-CrvlY8Z5.js → index-B5PaGLoo.js} +1 -1
  30. package/dist/assets/{index-CqPx8QUY.js → index-BCUhK2IK.js} +1 -1
  31. package/dist/assets/{index-l4yaELph.js → index-BPFeU32W.js} +1 -1
  32. package/dist/assets/{index-BZnWmdZ0.js → index-BdipdMDv.js} +1 -1
  33. package/dist/assets/{index-BPF3oif7.js → index-CYcUSW9Y.js} +5 -5
  34. package/dist/assets/{index-IdPbsC-k.js → index-Cn9hlGXz.js} +1 -1
  35. package/dist/assets/{index-DMelUylN.js → index-D97FQw7_.js} +3 -3
  36. package/dist/assets/{index-BQxL3qXG.js → index-DDHKg1sP.js} +1 -1
  37. package/dist/assets/{index-wG4Kh8A_.js → index-DgZ1ypbb.js} +3 -3
  38. package/dist/assets/{index-Bxg1LKG8.js → index-N-iuMUsJ.js} +1 -1
  39. package/dist/assets/{index-ROkOEO9F.js → index-PIIZTXU1.js} +1 -1
  40. package/dist/assets/{invitation-Dn2JFqk3.js → invitation-D0h9V7Yr.js} +1 -1
  41. package/dist/assets/{invite-k-THgUaE.js → invite-CLadQHSg.js} +1 -1
  42. package/dist/assets/{issue-passport-Cp0z7zOC.js → issue-passport-DOvL3-GM.js} +1 -1
  43. package/dist/assets/{item-DqTNLhw3.js → item-BKMUYpdp.js} +1 -1
  44. package/dist/assets/{layout-BRN0uPvp.js → layout-Bb4get3W.js} +1 -1
  45. package/dist/assets/{log-D1ShKaDY.js → log-r4HRH3tf.js} +1 -1
  46. package/dist/assets/{login-D9awP98G.js → login-IiYHalJQ.js} +1 -1
  47. package/dist/assets/{logo-uploader-BA8U554_.js → logo-uploader-C1-XCCMv.js} +3 -3
  48. package/dist/assets/{lost-passport-kJqVsdV1.js → lost-passport-EcYlR7v6.js} +1 -1
  49. package/dist/assets/{overview-4bff7RWe.js → overview-Bc6RN_5G.js} +1 -1
  50. package/dist/assets/{publish-resource-BhQQlAPL.js → publish-resource-cSMHC1nt.js} +1 -1
  51. package/dist/assets/{relative-time-BXb5Mt72.js → relative-time-BzZIQh7e.js} +1 -1
  52. package/dist/assets/{setup-DTQXAoXZ.js → setup-CdCyHLLn.js} +3 -3
  53. package/dist/assets/{start-DNpygdxp.js → start-owo1aKq8.js} +1 -1
  54. package/dist/assets/{step-actions-ClTz1KhK.js → step-actions-DnckX9Zh.js} +1 -1
  55. package/dist/assets/{transfer-A_yTwCWw.js → transfer-De5_Rua8.js} +1 -1
  56. package/dist/assets/{unsubscribe-uaBnibKD.js → unsubscribe-B0kFTEaS.js} +1 -1
  57. package/dist/assets/{user-center-B3stHKHJ.js → user-center-B9_0ML8Q.js} +1 -1
  58. package/dist/assets/{util-ao8gSgii.js → util-Ci0WMGC4.js} +1 -1
  59. package/dist/assets/{wrap-locale-DNve09jN.js → wrap-locale-D_rplmnG.js} +1 -1
  60. package/dist/images/og-image.jpg +0 -0
  61. package/dist/index.html +1 -1
  62. package/dist/service-worker.js +1 -1
  63. package/dist/share/shared-service-worker.js +60 -2
  64. package/package.json +21 -21
@@ -1,2 +1,2 @@
1
1
  try{self["workbox:core:7.0.0"]&&_()}catch{}const ae=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},ne=ae;let y=class extends Error{constructor(e,t){const r=ne(e,t);super(r),this.name=e,this.details=t}};const ie=new Set,d={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},N=s=>[d.prefix,s,d.suffix].filter(e=>e&&e.length>0).join("-"),ce=s=>{for(const e of Object.keys(d))s(e)},oe={updateDetails:s=>{ce(e=>{typeof s[e]=="string"&&(d[e]=s[e])})},getGoogleAnalyticsName:s=>s||N(d.googleAnalytics),getPrecacheName:s=>s||N(d.precache),getPrefix:()=>d.prefix,getRuntimeName:s=>s||N(d.runtime),getSuffix:()=>d.suffix};function q(s,e){const t=new URL(s);for(const r of e)t.searchParams.delete(r);return t.href}async function le(s,e,t,r){const a=q(e.url,t);if(e.url===a)return s.match(e,r);const i=Object.assign(Object.assign({},r),{ignoreSearch:!0}),n=await s.keys(e,i);for(const c of n){const o=q(c.url,t);if(a===o)return s.match(c,r)}}let he=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};async function ue(){for(const s of ie)await s()}const fe=s=>new URL(String(s),location.href).href.replace(new RegExp(`^${location.origin}`),"");function de(s){return new Promise(e=>setTimeout(e,s))}function pe(){self.addEventListener("activate",()=>self.clients.claim())}try{self["workbox:core:7.0.0"]&&_()}catch{}const ge=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},me=ge;let u=class extends Error{constructor(e,t){const r=me(e,t);super(r),this.name=e,this.details=t}};const p={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},M=s=>[p.prefix,s,p.suffix].filter(e=>e&&e.length>0).join("-"),we=s=>{for(const e of Object.keys(p))s(e)},j={updateDetails:s=>{we(e=>{typeof s[e]=="string"&&(p[e]=s[e])})},getGoogleAnalyticsName:s=>s||M(p.googleAnalytics),getPrecacheName:s=>s||M(p.precache),getPrefix:()=>p.prefix,getRuntimeName:s=>s||M(p.runtime),getSuffix:()=>p.suffix};function H(s,e){const t=e();return s.waitUntil(t),t}try{self["workbox:precaching:7.0.0"]&&_()}catch{}const ye="__WB_REVISION__";function _e(s){if(!s)throw new u("add-to-cache-list-unexpected-type",{entry:s});if(typeof s=="string"){const i=new URL(s,location.href);return{cacheKey:i.href,url:i.href}}const{revision:e,url:t}=s;if(!t)throw new u("add-to-cache-list-unexpected-type",{entry:s});if(!e){const i=new URL(t,location.href);return{cacheKey:i.href,url:i.href}}const r=new URL(t,location.href),a=new URL(t,location.href);return r.searchParams.set(ye,e),{cacheKey:r.href,url:a.href}}class Re{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:r})=>{if(e.type==="install"&&t&&t.originalRequest&&t.originalRequest instanceof Request){const a=t.originalRequest.url;r?this.notUpdatedURLs.push(a):this.updatedURLs.push(a)}return r}}}class be{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:t,params:r})=>{const a=(r==null?void 0:r.cacheKey)||this._precacheController.getCacheKeyForURL(t.url);return a?new Request(a,{headers:t.headers}):t},this._precacheController=e}}let b;function Ce(){if(b===void 0){const s=new Response("");if("body"in s)try{new Response(s.body),b=!0}catch{b=!1}b=!1}return b}async function xe(s,e){let t=null;if(s.url&&(t=new URL(s.url).origin),t!==self.location.origin)throw new u("cross-origin-copy-response",{origin:t});const r=s.clone(),i={headers:new Headers(r.headers),status:r.status,statusText:r.statusText},n=Ce()?r.body:await r.blob();return new Response(n,i)}const ke=s=>new URL(String(s),location.href).href.replace(new RegExp(`^${location.origin}`),"");function B(s,e){const t=new URL(s);for(const r of e)t.searchParams.delete(r);return t.href}async function Ee(s,e,t,r){const a=B(e.url,t);if(e.url===a)return s.match(e,r);const i=Object.assign(Object.assign({},r),{ignoreSearch:!0}),n=await s.keys(e,i);for(const c of n){const o=B(c.url,t);if(a===o)return s.match(c,r)}}class De{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}const Ue=new Set;async function Le(){for(const s of Ue)await s()}function Pe(s){return new Promise(e=>setTimeout(e,s))}try{self["workbox:strategies:7.0.0"]&&_()}catch{}function D(s){return typeof s=="string"?new Request(s):s}let ve=class{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new De,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const r of this._plugins)this._pluginStateMap.set(r,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this;let r=D(e);if(r.mode==="navigate"&&t instanceof FetchEvent&&t.preloadResponse){const n=await t.preloadResponse;if(n)return n}const a=this.hasCallback("fetchDidFail")?r.clone():null;try{for(const n of this.iterateCallbacks("requestWillFetch"))r=await n({request:r.clone(),event:t})}catch(n){if(n instanceof Error)throw new u("plugin-error-request-will-fetch",{thrownErrorMessage:n.message})}const i=r.clone();try{let n;n=await fetch(r,r.mode==="navigate"?void 0:this._strategy.fetchOptions);for(const c of this.iterateCallbacks("fetchDidSucceed"))n=await c({event:t,request:i,response:n});return n}catch(n){throw a&&await this.runCallbacks("fetchDidFail",{error:n,event:t,originalRequest:a.clone(),request:i.clone()}),n}}async fetchAndCachePut(e){const t=await this.fetch(e),r=t.clone();return this.waitUntil(this.cachePut(e,r)),t}async cacheMatch(e){const t=D(e);let r;const{cacheName:a,matchOptions:i}=this._strategy,n=await this.getCacheKey(t,"read"),c=Object.assign(Object.assign({},i),{cacheName:a});r=await caches.match(n,c);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))r=await o({cacheName:a,matchOptions:i,cachedResponse:r,request:n,event:this.event})||void 0;return r}async cachePut(e,t){const r=D(e);await Pe(0);const a=await this.getCacheKey(r,"write");if(!t)throw new u("cache-put-with-no-response",{url:ke(a.url)});const i=await this._ensureResponseSafeToCache(t);if(!i)return!1;const{cacheName:n,matchOptions:c}=this._strategy,o=await self.caches.open(n),l=this.hasCallback("cacheDidUpdate"),f=l?await Ee(o,a.clone(),["__WB_REVISION__"],c):null;try{await o.put(a,l?i.clone():i)}catch(h){if(h instanceof Error)throw h.name==="QuotaExceededError"&&await Le(),h}for(const h of this.iterateCallbacks("cacheDidUpdate"))await h({cacheName:n,oldResponse:f,newResponse:i.clone(),request:a,event:this.event});return!0}async getCacheKey(e,t){const r=`${e.url} | ${t}`;if(!this._cacheKeys[r]){let a=e;for(const i of this.iterateCallbacks("cacheKeyWillBeUsed"))a=D(await i({mode:t,request:a,event:this.event,params:this.params}));this._cacheKeys[r]=a}return this._cacheKeys[r]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const r of this.iterateCallbacks(e))await r(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if(typeof t[e]=="function"){const r=this._pluginStateMap.get(t);yield i=>{const n=Object.assign(Object.assign({},i),{state:r});return t[e](n)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,r=!1;for(const a of this.iterateCallbacks("cacheWillUpdate"))if(t=await a({request:this.request,response:t,event:this.event})||void 0,r=!0,!t)break;return r||t&&t.status!==200&&(t=void 0),t}},Ne=class{constructor(e={}){this.cacheName=j.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});const t=e.event,r=typeof e.request=="string"?new Request(e.request):e.request,a="params"in e?e.params:void 0,i=new ve(this,{event:t,request:r,params:a}),n=this._getResponse(i,r,t),c=this._awaitComplete(n,i,r,t);return[n,c]}async _getResponse(e,t,r){await e.runCallbacks("handlerWillStart",{event:r,request:t});let a;try{if(a=await this._handle(t,e),!a||a.type==="error")throw new u("no-response",{url:t.url})}catch(i){if(i instanceof Error){for(const n of e.iterateCallbacks("handlerDidError"))if(a=await n({error:i,event:r,request:t}),a)break}if(!a)throw i}for(const i of e.iterateCallbacks("handlerWillRespond"))a=await i({event:r,request:t,response:a});return a}async _awaitComplete(e,t,r,a){let i,n;try{i=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:a,request:r,response:i}),await t.doneWaiting()}catch(c){c instanceof Error&&(n=c)}if(await t.runCallbacks("handlerDidComplete",{event:a,request:r,response:i,error:n}),t.destroy(),n)throw n}};class w extends Ne{constructor(e={}){e.cacheName=j.getPrecacheName(e.cacheName),super(e),this._fallbackToNetwork=e.fallbackToNetwork!==!1,this.plugins.push(w.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){const r=await t.cacheMatch(e);return r||(t.event&&t.event.type==="install"?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,t){let r;const a=t.params||{};if(this._fallbackToNetwork){const i=a.integrity,n=e.integrity,c=!n||n===i;r=await t.fetch(new Request(e,{integrity:e.mode!=="no-cors"?n||i:void 0})),i&&c&&e.mode!=="no-cors"&&(this._useDefaultCacheabilityPluginIfNeeded(),await t.cachePut(e,r.clone()))}else throw new u("missing-precache-entry",{cacheName:this.cacheName,url:e.url});return r}async _handleInstall(e,t){this._useDefaultCacheabilityPluginIfNeeded();const r=await t.fetch(e);if(!await t.cachePut(e,r.clone()))throw new u("bad-precaching-response",{url:e.url,status:r.status});return r}_useDefaultCacheabilityPluginIfNeeded(){let e=null,t=0;for(const[r,a]of this.plugins.entries())a!==w.copyRedirectedCacheableResponsesPlugin&&(a===w.defaultPrecacheCacheabilityPlugin&&(e=r),a.cacheWillUpdate&&t++);t===0?this.plugins.push(w.defaultPrecacheCacheabilityPlugin):t>1&&e!==null&&this.plugins.splice(e,1)}}w.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:s}){return!s||s.status>=400?null:s}};w.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:s}){return s.redirected?await xe(s):s}};class Me{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:r=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new w({cacheName:j.getPrecacheName(e),plugins:[...t,new be({precacheController:this})],fallbackToNetwork:r}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this._installAndActiveListenersAdded=!0)}addToCacheList(e){const t=[];for(const r of e){typeof r=="string"?t.push(r):r&&r.revision===void 0&&t.push(r.url);const{cacheKey:a,url:i}=_e(r),n=typeof r!="string"&&r.revision?"reload":"default";if(this._urlsToCacheKeys.has(i)&&this._urlsToCacheKeys.get(i)!==a)throw new u("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(i),secondEntry:a});if(typeof r!="string"&&r.integrity){if(this._cacheKeysToIntegrities.has(a)&&this._cacheKeysToIntegrities.get(a)!==r.integrity)throw new u("add-to-cache-list-conflicting-integrities",{url:i});this._cacheKeysToIntegrities.set(a,r.integrity)}if(this._urlsToCacheKeys.set(i,a),this._urlsToCacheModes.set(i,n),t.length>0){const c=`Workbox is precaching URLs without revision info: ${t.join(", ")}
2
- This is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(c)}}}install(e){return H(e,async()=>{const t=new Re;this.strategy.plugins.push(t);for(const[i,n]of this._urlsToCacheKeys){const c=this._cacheKeysToIntegrities.get(n),o=this._urlsToCacheModes.get(i),l=new Request(i,{integrity:c,cache:o,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:n},request:l,event:e}))}const{updatedURLs:r,notUpdatedURLs:a}=t;return{updatedURLs:r,notUpdatedURLs:a}})}activate(e){return H(e,async()=>{const t=await self.caches.open(this.strategy.cacheName),r=await t.keys(),a=new Set(this._urlsToCacheKeys.values()),i=[];for(const n of r)a.has(n.url)||(await t.delete(n),i.push(n.url));return{deletedURLs:i}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){const t=e instanceof Request?e.url:e,r=this.getCacheKeyForURL(t);if(r)return(await self.caches.open(this.strategy.cacheName)).match(r)}createHandlerBoundToURL(e){const t=this.getCacheKeyForURL(e);if(!t)throw new u("non-precached-url",{url:e});return r=>(r.request=new Request(e),r.params=Object.assign({cacheKey:t},r.params),this.strategy.handle(r))}}let T;const J=()=>(T||(T=new Me),T);try{self["workbox:routing:7.0.0"]&&_()}catch{}const z="GET",P=s=>s&&typeof s=="object"?s:{handle:s};let E=class{constructor(e,t,r=z){this.handler=P(t),this.match=e,this.method=r}setCatchHandler(e){this.catchHandler=P(e)}},Te=class extends E{constructor(e,t,r){const a=({url:i})=>{const n=e.exec(i.href);if(n&&!(i.origin!==location.origin&&n.index!==0))return n.slice(1)};super(a,t,r)}},Oe=class{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,r=this.handleRequest({request:t,event:e});r&&e.respondWith(r)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,r=Promise.all(t.urlsToCache.map(a=>{typeof a=="string"&&(a=[a]);const i=new Request(...a);return this.handleRequest({request:i,event:e})}));e.waitUntil(r),e.ports&&e.ports[0]&&r.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const r=new URL(e.url,location.href);if(!r.protocol.startsWith("http"))return;const a=r.origin===location.origin,{params:i,route:n}=this.findMatchingRoute({event:t,request:e,sameOrigin:a,url:r});let c=n&&n.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let l;try{l=c.handle({url:r,request:e,event:t,params:i})}catch(h){l=Promise.reject(h)}const f=n&&n.catchHandler;return l instanceof Promise&&(this._catchHandler||f)&&(l=l.catch(async h=>{if(f)try{return await f.handle({url:r,request:e,event:t,params:i})}catch(R){R instanceof Error&&(h=R)}if(this._catchHandler)return this._catchHandler.handle({url:r,request:e,event:t});throw h})),l}findMatchingRoute({url:e,sameOrigin:t,request:r,event:a}){const i=this._routes.get(r.method)||[];for(const n of i){let c;const o=n.match({url:e,sameOrigin:t,request:r,event:a});if(o)return c=o,(Array.isArray(c)&&c.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o=="boolean")&&(c=void 0),{route:n,params:c}}return{}}setDefaultHandler(e,t=z){this._defaultHandlerMap.set(t,P(e))}setCatchHandler(e){this._catchHandler=P(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new u("unregister-route-but-not-found-with-method",{method:e.method});const t=this._routes.get(e.method).indexOf(e);if(t>-1)this._routes.get(e.method).splice(t,1);else throw new u("unregister-route-route-not-registered")}},C;const Se=()=>(C||(C=new Oe,C.addFetchListener(),C.addCacheListener()),C);function Ae(s,e,t){let r;if(typeof s=="string"){const i=new URL(s,location.href),n=({url:c})=>c.href===i.href;r=new E(n,e,t)}else if(s instanceof RegExp)r=new Te(s,e,t);else if(typeof s=="function")r=new E(s,e,t);else if(s instanceof E)r=s;else throw new u("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return Se().registerRoute(r),r}function Ke(s,e=[]){for(const t of[...s.searchParams.keys()])e.some(r=>r.test(t))&&s.searchParams.delete(t);return s}function*Ie(s,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:t="index.html",cleanURLs:r=!0,urlManipulation:a}={}){const i=new URL(s,location.href);i.hash="",yield i.href;const n=Ke(i,e);if(yield n.href,t&&n.pathname.endsWith("/")){const c=new URL(n.href);c.pathname+=t,yield c.href}if(r){const c=new URL(n.href);c.pathname+=".html",yield c.href}if(a){const c=a({url:i});for(const o of c)yield o.href}}class We extends E{constructor(e,t){const r=({request:a})=>{const i=e.getURLsToCacheKeys();for(const n of Ie(a.url,t)){const c=i.get(n);if(c){const o=e.getIntegrityForCacheKey(c);return{cacheKey:c,integrity:o}}}};super(r,e.strategy)}}function je(s){const e=J(),t=new We(e,s);Ae(t)}function $e(s){J().precache(s)}function qe(s,e){$e(s),je(e)}try{self["workbox:core:7.0.0"]&&_()}catch{}const He=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},Be=He;class Fe extends Error{constructor(e,t){const r=Be(e,t);super(r),this.name=e,this.details=t}}function X(s){s.then(()=>{})}const Ve=(s,e)=>e.some(t=>s instanceof t);let F,V;function Ge(){return F||(F=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Qe(){return V||(V=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const Y=new WeakMap,I=new WeakMap,Z=new WeakMap,O=new WeakMap,$=new WeakMap;function Je(s){const e=new Promise((t,r)=>{const a=()=>{s.removeEventListener("success",i),s.removeEventListener("error",n)},i=()=>{t(m(s.result)),a()},n=()=>{r(s.error),a()};s.addEventListener("success",i),s.addEventListener("error",n)});return e.then(t=>{t instanceof IDBCursor&&Y.set(t,s)}).catch(()=>{}),$.set(e,s),e}function ze(s){if(I.has(s))return;const e=new Promise((t,r)=>{const a=()=>{s.removeEventListener("complete",i),s.removeEventListener("error",n),s.removeEventListener("abort",n)},i=()=>{t(),a()},n=()=>{r(s.error||new DOMException("AbortError","AbortError")),a()};s.addEventListener("complete",i),s.addEventListener("error",n),s.addEventListener("abort",n)});I.set(s,e)}let W={get(s,e,t){if(s instanceof IDBTransaction){if(e==="done")return I.get(s);if(e==="objectStoreNames")return s.objectStoreNames||Z.get(s);if(e==="store")return t.objectStoreNames[1]?void 0:t.objectStore(t.objectStoreNames[0])}return m(s[e])},set(s,e,t){return s[e]=t,!0},has(s,e){return s instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in s}};function Xe(s){W=s(W)}function Ye(s){return s===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...t){const r=s.call(S(this),e,...t);return Z.set(r,e.sort?e.sort():[e]),m(r)}:Qe().includes(s)?function(...e){return s.apply(S(this),e),m(Y.get(this))}:function(...e){return m(s.apply(S(this),e))}}function Ze(s){return typeof s=="function"?Ye(s):(s instanceof IDBTransaction&&ze(s),Ve(s,Ge())?new Proxy(s,W):s)}function m(s){if(s instanceof IDBRequest)return Je(s);if(O.has(s))return O.get(s);const e=Ze(s);return e!==s&&(O.set(s,e),$.set(e,s)),e}const S=s=>$.get(s);function et(s,e,{blocked:t,upgrade:r,blocking:a,terminated:i}={}){const n=indexedDB.open(s,e),c=m(n);return r&&n.addEventListener("upgradeneeded",o=>{r(m(n.result),o.oldVersion,o.newVersion,m(n.transaction),o)}),t&&n.addEventListener("blocked",o=>t(o.oldVersion,o.newVersion,o)),c.then(o=>{i&&o.addEventListener("close",()=>i()),a&&o.addEventListener("versionchange",l=>a(l.oldVersion,l.newVersion,l))}).catch(()=>{}),c}function tt(s,{blocked:e}={}){const t=indexedDB.deleteDatabase(s);return e&&t.addEventListener("blocked",r=>e(r.oldVersion,r)),m(t).then(()=>{})}const st=["get","getKey","getAll","getAllKeys","count"],rt=["put","add","delete","clear"],A=new Map;function G(s,e){if(!(s instanceof IDBDatabase&&!(e in s)&&typeof e=="string"))return;if(A.get(e))return A.get(e);const t=e.replace(/FromIndex$/,""),r=e!==t,a=rt.includes(t);if(!(t in(r?IDBIndex:IDBObjectStore).prototype)||!(a||st.includes(t)))return;const i=async function(n,...c){const o=this.transaction(n,a?"readwrite":"readonly");let l=o.store;return r&&(l=l.index(c.shift())),(await Promise.all([l[t](...c),a&&o.done]))[0]};return A.set(e,i),i}Xe(s=>({...s,get:(e,t,r)=>G(e,t)||s.get(e,t,r),has:(e,t)=>!!G(e,t)||s.has(e,t)}));try{self["workbox:expiration:7.0.0"]&&_()}catch{}const at="workbox-expiration",x="cache-entries",Q=s=>{const e=new URL(s,location.href);return e.hash="",e.href};class nt{constructor(e){this._db=null,this._cacheName=e}_upgradeDb(e){const t=e.createObjectStore(x,{keyPath:"id"});t.createIndex("cacheName","cacheName",{unique:!1}),t.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&tt(this._cacheName)}async setTimestamp(e,t){e=Q(e);const r={url:e,timestamp:t,cacheName:this._cacheName,id:this._getId(e)},i=(await this.getDb()).transaction(x,"readwrite",{durability:"relaxed"});await i.store.put(r),await i.done}async getTimestamp(e){const r=await(await this.getDb()).get(x,this._getId(e));return r==null?void 0:r.timestamp}async expireEntries(e,t){const r=await this.getDb();let a=await r.transaction(x).store.index("timestamp").openCursor(null,"prev");const i=[];let n=0;for(;a;){const o=a.value;o.cacheName===this._cacheName&&(e&&o.timestamp<e||t&&n>=t?i.push(a.value):n++),a=await a.continue()}const c=[];for(const o of i)await r.delete(x,o.id),c.push(o.url);return c}_getId(e){return this._cacheName+"|"+Q(e)}async getDb(){return this._db||(this._db=await et(at,1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class it{constructor(e,t={}){this._isRunning=!1,this._rerunRequested=!1,this._maxEntries=t.maxEntries,this._maxAgeSeconds=t.maxAgeSeconds,this._matchOptions=t.matchOptions,this._cacheName=e,this._timestampModel=new nt(e)}async expireEntries(){if(this._isRunning){this._rerunRequested=!0;return}this._isRunning=!0;const e=this._maxAgeSeconds?Date.now()-this._maxAgeSeconds*1e3:0,t=await this._timestampModel.expireEntries(e,this._maxEntries),r=await self.caches.open(this._cacheName);for(const a of t)await r.delete(a,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,X(this.expireEntries()))}async updateTimestamp(e){await this._timestampModel.setTimestamp(e,Date.now())}async isURLExpired(e){if(this._maxAgeSeconds){const t=await this._timestampModel.getTimestamp(e),r=Date.now()-this._maxAgeSeconds*1e3;return t!==void 0?t<r:!0}else return!1}async delete(){this._rerunRequested=!1,await this._timestampModel.expireEntries(1/0)}}const g={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},K=s=>[g.prefix,s,g.suffix].filter(e=>e&&e.length>0).join("-"),ct=s=>{for(const e of Object.keys(g))s(e)},ot={updateDetails:s=>{ct(e=>{typeof s[e]=="string"&&(g[e]=s[e])})},getGoogleAnalyticsName:s=>s||K(g.googleAnalytics),getPrecacheName:s=>s||K(g.precache),getPrefix:()=>g.prefix,getRuntimeName:s=>s||K(g.runtime),getSuffix:()=>g.suffix},lt=new Set;function ht(s){lt.add(s)}class ut{constructor(e={}){this.cachedResponseWillBeUsed=async({event:t,request:r,cacheName:a,cachedResponse:i})=>{if(!i)return null;const n=this._isResponseDateFresh(i),c=this._getCacheExpiration(a);X(c.expireEntries());const o=c.updateTimestamp(r.url);if(t)try{t.waitUntil(o)}catch{}return n?i:null},this.cacheDidUpdate=async({cacheName:t,request:r})=>{const a=this._getCacheExpiration(t);await a.updateTimestamp(r.url),await a.expireEntries()},this._config=e,this._maxAgeSeconds=e.maxAgeSeconds,this._cacheExpirations=new Map,e.purgeOnQuotaError&&ht(()=>this.deleteCacheAndMetadata())}_getCacheExpiration(e){if(e===ot.getRuntimeName())throw new Fe("expire-custom-caches-only");let t=this._cacheExpirations.get(e);return t||(t=new it(e,this._config),this._cacheExpirations.set(e,t)),t}_isResponseDateFresh(e){if(!this._maxAgeSeconds)return!0;const t=this._getDateHeaderTimestamp(e);if(t===null)return!0;const r=Date.now();return t>=r-this._maxAgeSeconds*1e3}_getDateHeaderTimestamp(e){if(!e.headers.has("date"))return null;const t=e.headers.get("date"),a=new Date(t).getTime();return isNaN(a)?null:a}async deleteCacheAndMetadata(){for(const[e,t]of this._cacheExpirations)await self.caches.delete(e),await t.delete();this._cacheExpirations=new Map}}try{self["workbox:routing:7.0.0"]&&_()}catch{}const ee="GET",v=s=>s&&typeof s=="object"?s:{handle:s};class L{constructor(e,t,r=ee){this.handler=v(t),this.match=e,this.method=r}setCatchHandler(e){this.catchHandler=v(e)}}class ft extends L{constructor(e,t,r){const a=({url:i})=>{const n=e.exec(i.href);if(n&&!(i.origin!==location.origin&&n.index!==0))return n.slice(1)};super(a,t,r)}}class dt{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,r=this.handleRequest({request:t,event:e});r&&e.respondWith(r)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,r=Promise.all(t.urlsToCache.map(a=>{typeof a=="string"&&(a=[a]);const i=new Request(...a);return this.handleRequest({request:i,event:e})}));e.waitUntil(r),e.ports&&e.ports[0]&&r.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const r=new URL(e.url,location.href);if(!r.protocol.startsWith("http"))return;const a=r.origin===location.origin,{params:i,route:n}=this.findMatchingRoute({event:t,request:e,sameOrigin:a,url:r});let c=n&&n.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let l;try{l=c.handle({url:r,request:e,event:t,params:i})}catch(h){l=Promise.reject(h)}const f=n&&n.catchHandler;return l instanceof Promise&&(this._catchHandler||f)&&(l=l.catch(async h=>{if(f)try{return await f.handle({url:r,request:e,event:t,params:i})}catch(R){R instanceof Error&&(h=R)}if(this._catchHandler)return this._catchHandler.handle({url:r,request:e,event:t});throw h})),l}findMatchingRoute({url:e,sameOrigin:t,request:r,event:a}){const i=this._routes.get(r.method)||[];for(const n of i){let c;const o=n.match({url:e,sameOrigin:t,request:r,event:a});if(o)return c=o,(Array.isArray(c)&&c.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o=="boolean")&&(c=void 0),{route:n,params:c}}return{}}setDefaultHandler(e,t=ee){this._defaultHandlerMap.set(t,v(e))}setCatchHandler(e){this._catchHandler=v(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new y("unregister-route-but-not-found-with-method",{method:e.method});const t=this._routes.get(e.method).indexOf(e);if(t>-1)this._routes.get(e.method).splice(t,1);else throw new y("unregister-route-route-not-registered")}}let k;const pt=()=>(k||(k=new dt,k.addFetchListener(),k.addCacheListener()),k);function te(s,e,t){let r;if(typeof s=="string"){const i=new URL(s,location.href),n=({url:c})=>c.href===i.href;r=new L(n,e,t)}else if(s instanceof RegExp)r=new ft(s,e,t);else if(typeof s=="function")r=new L(s,e,t);else if(s instanceof L)r=s;else throw new y("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return pt().registerRoute(r),r}try{self["workbox:strategies:7.0.0"]&&_()}catch{}function U(s){return typeof s=="string"?new Request(s):s}class gt{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new he,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const r of this._plugins)this._pluginStateMap.set(r,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this;let r=U(e);if(r.mode==="navigate"&&t instanceof FetchEvent&&t.preloadResponse){const n=await t.preloadResponse;if(n)return n}const a=this.hasCallback("fetchDidFail")?r.clone():null;try{for(const n of this.iterateCallbacks("requestWillFetch"))r=await n({request:r.clone(),event:t})}catch(n){if(n instanceof Error)throw new y("plugin-error-request-will-fetch",{thrownErrorMessage:n.message})}const i=r.clone();try{let n;n=await fetch(r,r.mode==="navigate"?void 0:this._strategy.fetchOptions);for(const c of this.iterateCallbacks("fetchDidSucceed"))n=await c({event:t,request:i,response:n});return n}catch(n){throw a&&await this.runCallbacks("fetchDidFail",{error:n,event:t,originalRequest:a.clone(),request:i.clone()}),n}}async fetchAndCachePut(e){const t=await this.fetch(e),r=t.clone();return this.waitUntil(this.cachePut(e,r)),t}async cacheMatch(e){const t=U(e);let r;const{cacheName:a,matchOptions:i}=this._strategy,n=await this.getCacheKey(t,"read"),c=Object.assign(Object.assign({},i),{cacheName:a});r=await caches.match(n,c);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))r=await o({cacheName:a,matchOptions:i,cachedResponse:r,request:n,event:this.event})||void 0;return r}async cachePut(e,t){const r=U(e);await de(0);const a=await this.getCacheKey(r,"write");if(!t)throw new y("cache-put-with-no-response",{url:fe(a.url)});const i=await this._ensureResponseSafeToCache(t);if(!i)return!1;const{cacheName:n,matchOptions:c}=this._strategy,o=await self.caches.open(n),l=this.hasCallback("cacheDidUpdate"),f=l?await le(o,a.clone(),["__WB_REVISION__"],c):null;try{await o.put(a,l?i.clone():i)}catch(h){if(h instanceof Error)throw h.name==="QuotaExceededError"&&await ue(),h}for(const h of this.iterateCallbacks("cacheDidUpdate"))await h({cacheName:n,oldResponse:f,newResponse:i.clone(),request:a,event:this.event});return!0}async getCacheKey(e,t){const r=`${e.url} | ${t}`;if(!this._cacheKeys[r]){let a=e;for(const i of this.iterateCallbacks("cacheKeyWillBeUsed"))a=U(await i({mode:t,request:a,event:this.event,params:this.params}));this._cacheKeys[r]=a}return this._cacheKeys[r]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const r of this.iterateCallbacks(e))await r(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if(typeof t[e]=="function"){const r=this._pluginStateMap.get(t);yield i=>{const n=Object.assign(Object.assign({},i),{state:r});return t[e](n)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,r=!1;for(const a of this.iterateCallbacks("cacheWillUpdate"))if(t=await a({request:this.request,response:t,event:this.event})||void 0,r=!0,!t)break;return r||t&&t.status!==200&&(t=void 0),t}}class se{constructor(e={}){this.cacheName=oe.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});const t=e.event,r=typeof e.request=="string"?new Request(e.request):e.request,a="params"in e?e.params:void 0,i=new gt(this,{event:t,request:r,params:a}),n=this._getResponse(i,r,t),c=this._awaitComplete(n,i,r,t);return[n,c]}async _getResponse(e,t,r){await e.runCallbacks("handlerWillStart",{event:r,request:t});let a;try{if(a=await this._handle(t,e),!a||a.type==="error")throw new y("no-response",{url:t.url})}catch(i){if(i instanceof Error){for(const n of e.iterateCallbacks("handlerDidError"))if(a=await n({error:i,event:r,request:t}),a)break}if(!a)throw i}for(const i of e.iterateCallbacks("handlerWillRespond"))a=await i({event:r,request:t,response:a});return a}async _awaitComplete(e,t,r,a){let i,n;try{i=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:a,request:r,response:i}),await t.doneWaiting()}catch(c){c instanceof Error&&(n=c)}if(await t.runCallbacks("handlerDidComplete",{event:a,request:r,response:i,error:n}),t.destroy(),n)throw n}}class mt extends se{async _handle(e,t){let r=await t.cacheMatch(e),a;if(!r)try{r=await t.fetchAndCachePut(e)}catch(i){i instanceof Error&&(a=i)}if(!r)throw new y("no-response",{url:e.url,error:a});return r}}const wt={cacheWillUpdate:async({response:s})=>s.status===200||s.status===0?s:null};class yt extends se{constructor(e={}){super(e),this.plugins.some(t=>"cacheWillUpdate"in t)||this.plugins.unshift(wt)}async _handle(e,t){const r=t.fetchAndCachePut(e).catch(()=>{});t.waitUntil(r);let a=await t.cacheMatch(e),i;if(!a)try{a=await r}catch(n){n instanceof Error&&(i=n)}if(!a)throw new y("no-response",{url:e.url,error:i});return a}}qe(([{"revision":null,"url":"assets/_createAggregator-B4i0o6gy.js"},{"revision":null,"url":"assets/access-control-DcliPEX2.js"},{"revision":null,"url":"assets/actions-BEpPU26q.js"},{"revision":null,"url":"assets/Add-2VCvBnGd.js"},{"revision":null,"url":"assets/add-component-core-D-IRi6XF.css"},{"revision":null,"url":"assets/add-component-core-DSlHbXth.js"},{"revision":null,"url":"assets/add-resource-B9SUcn9b.js"},{"revision":null,"url":"assets/addon-C8Ytd8YY.js"},{"revision":null,"url":"assets/analytics-BVmtToBr.js"},{"revision":null,"url":"assets/api-C0C4sDJA.js"},{"revision":null,"url":"assets/ar-DuHAbPhE.js"},{"revision":null,"url":"assets/ar-hiIrGdss.js"},{"revision":null,"url":"assets/ArrowDropDown-BdHlAt9a.js"},{"revision":null,"url":"assets/audit-logs-DOpEhbRi.js"},{"revision":null,"url":"assets/base32-COJTblwx.js"},{"revision":null,"url":"assets/branding-BIbnR-Yt.js"},{"revision":null,"url":"assets/bundle-avatar-DqROxHMq.js"},{"revision":null,"url":"assets/button-Bo5ZAcJk.js"},{"revision":null,"url":"assets/CheckCircle-BElcljFC.js"},{"revision":null,"url":"assets/ChevronLeft-BfF37o7u.js"},{"revision":null,"url":"assets/ChevronRight-B8pf890W.js"},{"revision":null,"url":"assets/click-to-copy-DNu8CktB.js"},{"revision":null,"url":"assets/complete-B_C_fwut.js"},{"revision":null,"url":"assets/component-eAmweIYL.js"},{"revision":null,"url":"assets/config-CWoxBu0J.js"},{"revision":null,"url":"assets/config-d41PVAVu.js"},{"revision":null,"url":"assets/config-navigation-jKhcoDId.js"},{"revision":null,"url":"assets/config-space-Dofzrh5m.js"},{"revision":null,"url":"assets/confirm-C0rryr4e.js"},{"revision":null,"url":"assets/connect-CfWNBUY4.js"},{"revision":null,"url":"assets/connect-to-Dsq1ST9l.js"},{"revision":null,"url":"assets/connect-Wiz0Gw9I.js"},{"revision":null,"url":"assets/content-layout-CK_AzZZ-.js"},{"revision":null,"url":"assets/dashboard-Ca8O6iHB.js"},{"revision":null,"url":"assets/de-CJi7wiel.js"},{"revision":null,"url":"assets/de-D_LJn5nm.js"},{"revision":null,"url":"assets/DeleteOutline-VzoIEqow.js"},{"revision":null,"url":"assets/did-address-49U3oRW2.js"},{"revision":null,"url":"assets/domain-DJyjDPmO.js"},{"revision":null,"url":"assets/domain-list-BEjAE8hh.js"},{"revision":null,"url":"assets/Done-BCESxXX2.js"},{"revision":null,"url":"assets/Download-BJmwtO6i.js"},{"revision":null,"url":"assets/EditIcon-BF2eKBD0.js"},{"revision":null,"url":"assets/email-C3ggDSGp.js"},{"revision":null,"url":"assets/Error-CpAOVH8t.js"},{"revision":null,"url":"assets/es-B0ocJhTd.js"},{"revision":null,"url":"assets/es-ClwhOFrW.js"},{"revision":null,"url":"assets/exchange-passport-4QuzoW2F.js"},{"revision":null,"url":"assets/form-text-input-CT57jMfW.js"},{"revision":null,"url":"assets/format-error-C0Ke3VXF.js"},{"revision":null,"url":"assets/fr-CAkkNKvy.js"},{"revision":null,"url":"assets/fr-eolYJCOV.js"},{"revision":null,"url":"assets/fuel-CJ-CsgDu.js"},{"revision":null,"url":"assets/fullpage-CFp4hSHz.js"},{"revision":null,"url":"assets/get-safe-url-CVhAz4Qr.js"},{"revision":null,"url":"assets/get-safe-url-RTzyOi09.js"},{"revision":null,"url":"assets/Google-rxW6OGq8.js"},{"revision":null,"url":"assets/hi-CGrG89HI.js"},{"revision":null,"url":"assets/hi-DSwvTH0x.js"},{"revision":null,"url":"assets/home-D1QP6Ilh.js"},{"revision":null,"url":"assets/id-5G9oPRk4.js"},{"revision":null,"url":"assets/id-D6PyIa8m.js"},{"revision":null,"url":"assets/iframe-BUonayoL.js"},{"revision":null,"url":"assets/index-AgKpYdvC.css"},{"revision":null,"url":"assets/index-BGO2DsWz.js"},{"revision":null,"url":"assets/index-Bi1xb9O8.js"},{"revision":null,"url":"assets/index-BP6sEHV5.js"},{"revision":null,"url":"assets/index-BPF3oif7.js"},{"revision":null,"url":"assets/index-BQCwe2Vs.js"},{"revision":null,"url":"assets/index-BQxL3qXG.js"},{"revision":null,"url":"assets/index-Bxg1LKG8.js"},{"revision":null,"url":"assets/index-BZnWmdZ0.js"},{"revision":null,"url":"assets/index-CqPx8QUY.js"},{"revision":null,"url":"assets/index-CQT4qLcx.js"},{"revision":null,"url":"assets/index-CrvlY8Z5.js"},{"revision":null,"url":"assets/index-D4PP6P2d.css"},{"revision":null,"url":"assets/index-D7mJIWyJ.js"},{"revision":null,"url":"assets/index-DcfIKM1A.js"},{"revision":null,"url":"assets/index-DMelUylN.js"},{"revision":null,"url":"assets/index-DoZ2YM4T.js"},{"revision":null,"url":"assets/index-DQSF6ElG.js"},{"revision":null,"url":"assets/index-DVYdq7IA.js"},{"revision":null,"url":"assets/index-IdPbsC-k.js"},{"revision":null,"url":"assets/index-l4yaELph.js"},{"revision":null,"url":"assets/index-mnKcDZP2.js"},{"revision":null,"url":"assets/index-ROkOEO9F.js"},{"revision":null,"url":"assets/index-wG4Kh8A_.js"},{"revision":null,"url":"assets/InfoOutlined-BFP30UJa.js"},{"revision":null,"url":"assets/invitation-Dn2JFqk3.js"},{"revision":null,"url":"assets/invite-k-THgUaE.js"},{"revision":null,"url":"assets/isEmail-BWNRBSAy.js"},{"revision":null,"url":"assets/issue-passport-Cp0z7zOC.js"},{"revision":null,"url":"assets/item-DqTNLhw3.js"},{"revision":null,"url":"assets/ja-B2h7onKc.js"},{"revision":null,"url":"assets/ja-C82Szos_.js"},{"revision":null,"url":"assets/keyboard-arrow-down-rounded-DadBVmpO.js"},{"revision":null,"url":"assets/ko-B8lz4XE7.js"},{"revision":null,"url":"assets/ko-zaXquvPm.js"},{"revision":null,"url":"assets/Launch-BOCFiYoz.js"},{"revision":null,"url":"assets/launch-result-message-zXOcVqEr.js"},{"revision":null,"url":"assets/LaunchOutlined-B-PaS5ms.js"},{"revision":null,"url":"assets/layout-BRN0uPvp.js"},{"revision":null,"url":"assets/list-header-Bn1GhGok.js"},{"revision":null,"url":"assets/localization-L03Lvx4v.js"},{"revision":null,"url":"assets/LockIcon-DQtUl5vk.js"},{"revision":null,"url":"assets/log-D1ShKaDY.js"},{"revision":null,"url":"assets/log-D33dFtt_.css"},{"revision":null,"url":"assets/login-D9awP98G.js"},{"revision":null,"url":"assets/login-oauth-callback-DHA7e6Ar.js"},{"revision":null,"url":"assets/logo-uploader-BA8U554_.js"},{"revision":null,"url":"assets/Loop-n5c7A0qE.js"},{"revision":null,"url":"assets/lost-passport-kJqVsdV1.js"},{"revision":null,"url":"assets/lottie-react.esm-CHpXrEmm.js"},{"revision":null,"url":"assets/MoreHoriz-DnFq43xg.js"},{"revision":null,"url":"assets/open-window-B-5Hms7z.js"},{"revision":null,"url":"assets/overview-4bff7RWe.js"},{"revision":null,"url":"assets/page-header-6EUz18Qu.js"},{"revision":null,"url":"assets/permission-SgzW7fBj.js"},{"revision":null,"url":"assets/PlayArrow-oA7gV2MA.js"},{"revision":null,"url":"assets/preferences-RkqN3i2t.js"},{"revision":null,"url":"assets/pt-CMq2TmiV.js"},{"revision":null,"url":"assets/pt-JWdcQImo.js"},{"revision":null,"url":"assets/publish-resource-BhQQlAPL.js"},{"revision":null,"url":"assets/QuestionMarkCircle-gL_QM35Z.js"},{"revision":null,"url":"assets/raf-schd.esm-Cxhj8umC.js"},{"revision":null,"url":"assets/react-beautiful-dnd.esm-C8vTtkBe.js"},{"revision":null,"url":"assets/relative-time-BXb5Mt72.js"},{"revision":null,"url":"assets/ru-BwmmHWZS.js"},{"revision":null,"url":"assets/ru-CWgdu04g.js"},{"revision":null,"url":"assets/sdk-Dqc91xl4.js"},{"revision":null,"url":"assets/ServerLogo-UNPlRpuM.js"},{"revision":null,"url":"assets/session-ocxAyn6f.js"},{"revision":null,"url":"assets/setup-DTQXAoXZ.js"},{"revision":null,"url":"assets/shorten-label-BnvWOC_s.js"},{"revision":null,"url":"assets/simple-select-BwufbE2b.js"},{"revision":null,"url":"assets/slicedToArray-DNAGECrJ.js"},{"revision":null,"url":"assets/start-DNpygdxp.js"},{"revision":null,"url":"assets/step-actions-ClTz1KhK.js"},{"revision":null,"url":"assets/studio-DPoV-6q9.js"},{"revision":null,"url":"assets/switch-control-D-IROOaC.js"},{"revision":null,"url":"assets/th-BnfuNX_7.js"},{"revision":null,"url":"assets/th-C-hKn9xa.js"},{"revision":null,"url":"assets/toUpper-BQrWudMF.js"},{"revision":null,"url":"assets/transfer-A_yTwCWw.js"},{"revision":null,"url":"assets/unsubscribe-uaBnibKD.js"},{"revision":null,"url":"assets/use-mobile-DAR0hmJd.js"},{"revision":null,"url":"assets/use-passport-id-B-b-_oYF.js"},{"revision":null,"url":"assets/useAsync-cdOzMWPw.js"},{"revision":null,"url":"assets/useAsyncRetry-KXMle3o0.js"},{"revision":null,"url":"assets/useLocalStorage-CSyjxtUy.js"},{"revision":null,"url":"assets/user-center-B3stHKHJ.js"},{"revision":null,"url":"assets/useSetState-Crt4S51m.js"},{"revision":null,"url":"assets/util-ao8gSgii.js"},{"revision":null,"url":"assets/vendor-arcblock-CiLB_TiI.js"},{"revision":null,"url":"assets/vendor-arcblock-DhgPdlEj.css"},{"revision":null,"url":"assets/vendor-hooks-CLzfFpO7.js"},{"revision":null,"url":"assets/vendor-mui-core-BlX2BJoA.js"},{"revision":null,"url":"assets/vendor-mui-x-Bq1FyQ7S.js"},{"revision":null,"url":"assets/vendor-react-D-afvo_7.js"},{"revision":null,"url":"assets/vendor-utils-DCpRgzMR.js"},{"revision":null,"url":"assets/vi-C_iM9J2X.js"},{"revision":null,"url":"assets/vi-D7HQHu1T.js"},{"revision":null,"url":"assets/ViewList-IMqkd2Sv.js"},{"revision":null,"url":"assets/wrap-locale-DNve09jN.js"},{"revision":null,"url":"assets/zh-6fa1T5uL.js"},{"revision":null,"url":"assets/zh-DNY792IC.js"},{"revision":null,"url":"assets/zh-tw-9sY6BN2s.js"},{"revision":null,"url":"assets/zh-tw-jFbTVB_K.js"},{"revision":"808170f5d62cda593f1f6ce6b46d0fdc","url":"index.html"},{"revision":"629a14a7e3397a134f5a30b5dc735183","url":"registerSW.js"},{"revision":"07a287e43ae8e959a20d6b367a581667","url":"router-template-styles/styles.css"},{"revision":"68620cfe0e63f87f00560a22617347e3","url":"share/shared-service-worker.js"},{"revision":"19d4c6a99cb8ed11e68209a612e7ec44","url":"share/workbox-v7.3.0/workbox-background-sync.prod.js"},{"revision":"d9d631014689e2b4b0e343c129671749","url":"share/workbox-v7.3.0/workbox-broadcast-update.prod.js"},{"revision":"bdb39ceb7380dcb1483c543e8856242b","url":"share/workbox-v7.3.0/workbox-cacheable-response.prod.js"},{"revision":"b84dd900eb18e8bc842666bbb740604e","url":"share/workbox-v7.3.0/workbox-core.prod.js"},{"revision":"c582a61c037234d8283eea0b97693b1b","url":"share/workbox-v7.3.0/workbox-expiration.prod.js"},{"revision":"866ba7d03bd871fa990976e4db312ab3","url":"share/workbox-v7.3.0/workbox-navigation-preload.prod.js"},{"revision":"0c55bb581ea7ce5ebfac1ce95cdda21f","url":"share/workbox-v7.3.0/workbox-offline-ga.prod.js"},{"revision":"770d183cf1f189a1ceb11ba8b5d808fa","url":"share/workbox-v7.3.0/workbox-precaching.prod.js"},{"revision":"295decbe1eb3b073a2a8d67cfbdf5692","url":"share/workbox-v7.3.0/workbox-range-requests.prod.js"},{"revision":"0bcb90677f3508ebc8a3571d14194478","url":"share/workbox-v7.3.0/workbox-recipes.prod.js"},{"revision":"4af96b70b2d20b041e2edd7ef1a8ef27","url":"share/workbox-v7.3.0/workbox-routing.prod.js"},{"revision":"c78c21b4058a1134ad3e12286c57cb2f","url":"share/workbox-v7.3.0/workbox-strategies.prod.js"},{"revision":"7eeb2d820d409221e076d31951fdcf79","url":"share/workbox-v7.3.0/workbox-streams.prod.js"},{"revision":"aa7368887577b9719a46b585d5dcc7a5","url":"share/workbox-v7.3.0/workbox-sw.js"},{"revision":"e768668db4eeefde11b58542900ab2ad","url":"share/workbox-v7.3.0/workbox-window.prod.umd.js"},{"revision":"f272d080151aa40322ce1603c6261ec1","url":"manifest.webmanifest"}]||[]).filter(s=>s.url!=="/"&&!s.url.includes("index.html")));pe();self.addEventListener("activate",()=>{console.log("Service Worker activated")});self.addEventListener("install",s=>{console.log("Service Worker installed"),s.waitUntil(self.skipWaiting())});const re=s=>!!(s.method!=="GET"||s.url.includes("/api")||s.url.includes("__meta__.js")||s.url.includes("__blocklet__.js"));te(({request:s})=>re(s)?!1:s.url.includes("/static/"),new mt({cacheName:`static-${self.registration.scope}`,plugins:[new ut({maxEntries:200})]}));te(({request:s})=>re(s)?!1:s.url.includes("/images/")||s.url.includes("/router/-template-styles/"),new yt({cacheName:`StaleWhileRevalidate-${self.registration.scope}`}));
2
+ This is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(c)}}}install(e){return H(e,async()=>{const t=new Re;this.strategy.plugins.push(t);for(const[i,n]of this._urlsToCacheKeys){const c=this._cacheKeysToIntegrities.get(n),o=this._urlsToCacheModes.get(i),l=new Request(i,{integrity:c,cache:o,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:n},request:l,event:e}))}const{updatedURLs:r,notUpdatedURLs:a}=t;return{updatedURLs:r,notUpdatedURLs:a}})}activate(e){return H(e,async()=>{const t=await self.caches.open(this.strategy.cacheName),r=await t.keys(),a=new Set(this._urlsToCacheKeys.values()),i=[];for(const n of r)a.has(n.url)||(await t.delete(n),i.push(n.url));return{deletedURLs:i}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){const t=e instanceof Request?e.url:e,r=this.getCacheKeyForURL(t);if(r)return(await self.caches.open(this.strategy.cacheName)).match(r)}createHandlerBoundToURL(e){const t=this.getCacheKeyForURL(e);if(!t)throw new u("non-precached-url",{url:e});return r=>(r.request=new Request(e),r.params=Object.assign({cacheKey:t},r.params),this.strategy.handle(r))}}let T;const J=()=>(T||(T=new Me),T);try{self["workbox:routing:7.0.0"]&&_()}catch{}const z="GET",P=s=>s&&typeof s=="object"?s:{handle:s};let E=class{constructor(e,t,r=z){this.handler=P(t),this.match=e,this.method=r}setCatchHandler(e){this.catchHandler=P(e)}},Te=class extends E{constructor(e,t,r){const a=({url:i})=>{const n=e.exec(i.href);if(n&&!(i.origin!==location.origin&&n.index!==0))return n.slice(1)};super(a,t,r)}},Oe=class{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,r=this.handleRequest({request:t,event:e});r&&e.respondWith(r)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,r=Promise.all(t.urlsToCache.map(a=>{typeof a=="string"&&(a=[a]);const i=new Request(...a);return this.handleRequest({request:i,event:e})}));e.waitUntil(r),e.ports&&e.ports[0]&&r.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const r=new URL(e.url,location.href);if(!r.protocol.startsWith("http"))return;const a=r.origin===location.origin,{params:i,route:n}=this.findMatchingRoute({event:t,request:e,sameOrigin:a,url:r});let c=n&&n.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let l;try{l=c.handle({url:r,request:e,event:t,params:i})}catch(h){l=Promise.reject(h)}const f=n&&n.catchHandler;return l instanceof Promise&&(this._catchHandler||f)&&(l=l.catch(async h=>{if(f)try{return await f.handle({url:r,request:e,event:t,params:i})}catch(R){R instanceof Error&&(h=R)}if(this._catchHandler)return this._catchHandler.handle({url:r,request:e,event:t});throw h})),l}findMatchingRoute({url:e,sameOrigin:t,request:r,event:a}){const i=this._routes.get(r.method)||[];for(const n of i){let c;const o=n.match({url:e,sameOrigin:t,request:r,event:a});if(o)return c=o,(Array.isArray(c)&&c.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o=="boolean")&&(c=void 0),{route:n,params:c}}return{}}setDefaultHandler(e,t=z){this._defaultHandlerMap.set(t,P(e))}setCatchHandler(e){this._catchHandler=P(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new u("unregister-route-but-not-found-with-method",{method:e.method});const t=this._routes.get(e.method).indexOf(e);if(t>-1)this._routes.get(e.method).splice(t,1);else throw new u("unregister-route-route-not-registered")}},C;const Se=()=>(C||(C=new Oe,C.addFetchListener(),C.addCacheListener()),C);function Ae(s,e,t){let r;if(typeof s=="string"){const i=new URL(s,location.href),n=({url:c})=>c.href===i.href;r=new E(n,e,t)}else if(s instanceof RegExp)r=new Te(s,e,t);else if(typeof s=="function")r=new E(s,e,t);else if(s instanceof E)r=s;else throw new u("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return Se().registerRoute(r),r}function Ke(s,e=[]){for(const t of[...s.searchParams.keys()])e.some(r=>r.test(t))&&s.searchParams.delete(t);return s}function*Ie(s,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:t="index.html",cleanURLs:r=!0,urlManipulation:a}={}){const i=new URL(s,location.href);i.hash="",yield i.href;const n=Ke(i,e);if(yield n.href,t&&n.pathname.endsWith("/")){const c=new URL(n.href);c.pathname+=t,yield c.href}if(r){const c=new URL(n.href);c.pathname+=".html",yield c.href}if(a){const c=a({url:i});for(const o of c)yield o.href}}class We extends E{constructor(e,t){const r=({request:a})=>{const i=e.getURLsToCacheKeys();for(const n of Ie(a.url,t)){const c=i.get(n);if(c){const o=e.getIntegrityForCacheKey(c);return{cacheKey:c,integrity:o}}}};super(r,e.strategy)}}function je(s){const e=J(),t=new We(e,s);Ae(t)}function $e(s){J().precache(s)}function qe(s,e){$e(s),je(e)}try{self["workbox:core:7.0.0"]&&_()}catch{}const He=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},Be=He;class Fe extends Error{constructor(e,t){const r=Be(e,t);super(r),this.name=e,this.details=t}}function X(s){s.then(()=>{})}const Ve=(s,e)=>e.some(t=>s instanceof t);let F,V;function Ge(){return F||(F=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Qe(){return V||(V=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const Y=new WeakMap,I=new WeakMap,Z=new WeakMap,O=new WeakMap,$=new WeakMap;function Je(s){const e=new Promise((t,r)=>{const a=()=>{s.removeEventListener("success",i),s.removeEventListener("error",n)},i=()=>{t(m(s.result)),a()},n=()=>{r(s.error),a()};s.addEventListener("success",i),s.addEventListener("error",n)});return e.then(t=>{t instanceof IDBCursor&&Y.set(t,s)}).catch(()=>{}),$.set(e,s),e}function ze(s){if(I.has(s))return;const e=new Promise((t,r)=>{const a=()=>{s.removeEventListener("complete",i),s.removeEventListener("error",n),s.removeEventListener("abort",n)},i=()=>{t(),a()},n=()=>{r(s.error||new DOMException("AbortError","AbortError")),a()};s.addEventListener("complete",i),s.addEventListener("error",n),s.addEventListener("abort",n)});I.set(s,e)}let W={get(s,e,t){if(s instanceof IDBTransaction){if(e==="done")return I.get(s);if(e==="objectStoreNames")return s.objectStoreNames||Z.get(s);if(e==="store")return t.objectStoreNames[1]?void 0:t.objectStore(t.objectStoreNames[0])}return m(s[e])},set(s,e,t){return s[e]=t,!0},has(s,e){return s instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in s}};function Xe(s){W=s(W)}function Ye(s){return s===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...t){const r=s.call(S(this),e,...t);return Z.set(r,e.sort?e.sort():[e]),m(r)}:Qe().includes(s)?function(...e){return s.apply(S(this),e),m(Y.get(this))}:function(...e){return m(s.apply(S(this),e))}}function Ze(s){return typeof s=="function"?Ye(s):(s instanceof IDBTransaction&&ze(s),Ve(s,Ge())?new Proxy(s,W):s)}function m(s){if(s instanceof IDBRequest)return Je(s);if(O.has(s))return O.get(s);const e=Ze(s);return e!==s&&(O.set(s,e),$.set(e,s)),e}const S=s=>$.get(s);function et(s,e,{blocked:t,upgrade:r,blocking:a,terminated:i}={}){const n=indexedDB.open(s,e),c=m(n);return r&&n.addEventListener("upgradeneeded",o=>{r(m(n.result),o.oldVersion,o.newVersion,m(n.transaction),o)}),t&&n.addEventListener("blocked",o=>t(o.oldVersion,o.newVersion,o)),c.then(o=>{i&&o.addEventListener("close",()=>i()),a&&o.addEventListener("versionchange",l=>a(l.oldVersion,l.newVersion,l))}).catch(()=>{}),c}function tt(s,{blocked:e}={}){const t=indexedDB.deleteDatabase(s);return e&&t.addEventListener("blocked",r=>e(r.oldVersion,r)),m(t).then(()=>{})}const st=["get","getKey","getAll","getAllKeys","count"],rt=["put","add","delete","clear"],A=new Map;function G(s,e){if(!(s instanceof IDBDatabase&&!(e in s)&&typeof e=="string"))return;if(A.get(e))return A.get(e);const t=e.replace(/FromIndex$/,""),r=e!==t,a=rt.includes(t);if(!(t in(r?IDBIndex:IDBObjectStore).prototype)||!(a||st.includes(t)))return;const i=async function(n,...c){const o=this.transaction(n,a?"readwrite":"readonly");let l=o.store;return r&&(l=l.index(c.shift())),(await Promise.all([l[t](...c),a&&o.done]))[0]};return A.set(e,i),i}Xe(s=>({...s,get:(e,t,r)=>G(e,t)||s.get(e,t,r),has:(e,t)=>!!G(e,t)||s.has(e,t)}));try{self["workbox:expiration:7.0.0"]&&_()}catch{}const at="workbox-expiration",x="cache-entries",Q=s=>{const e=new URL(s,location.href);return e.hash="",e.href};class nt{constructor(e){this._db=null,this._cacheName=e}_upgradeDb(e){const t=e.createObjectStore(x,{keyPath:"id"});t.createIndex("cacheName","cacheName",{unique:!1}),t.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&tt(this._cacheName)}async setTimestamp(e,t){e=Q(e);const r={url:e,timestamp:t,cacheName:this._cacheName,id:this._getId(e)},i=(await this.getDb()).transaction(x,"readwrite",{durability:"relaxed"});await i.store.put(r),await i.done}async getTimestamp(e){const r=await(await this.getDb()).get(x,this._getId(e));return r==null?void 0:r.timestamp}async expireEntries(e,t){const r=await this.getDb();let a=await r.transaction(x).store.index("timestamp").openCursor(null,"prev");const i=[];let n=0;for(;a;){const o=a.value;o.cacheName===this._cacheName&&(e&&o.timestamp<e||t&&n>=t?i.push(a.value):n++),a=await a.continue()}const c=[];for(const o of i)await r.delete(x,o.id),c.push(o.url);return c}_getId(e){return this._cacheName+"|"+Q(e)}async getDb(){return this._db||(this._db=await et(at,1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class it{constructor(e,t={}){this._isRunning=!1,this._rerunRequested=!1,this._maxEntries=t.maxEntries,this._maxAgeSeconds=t.maxAgeSeconds,this._matchOptions=t.matchOptions,this._cacheName=e,this._timestampModel=new nt(e)}async expireEntries(){if(this._isRunning){this._rerunRequested=!0;return}this._isRunning=!0;const e=this._maxAgeSeconds?Date.now()-this._maxAgeSeconds*1e3:0,t=await this._timestampModel.expireEntries(e,this._maxEntries),r=await self.caches.open(this._cacheName);for(const a of t)await r.delete(a,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,X(this.expireEntries()))}async updateTimestamp(e){await this._timestampModel.setTimestamp(e,Date.now())}async isURLExpired(e){if(this._maxAgeSeconds){const t=await this._timestampModel.getTimestamp(e),r=Date.now()-this._maxAgeSeconds*1e3;return t!==void 0?t<r:!0}else return!1}async delete(){this._rerunRequested=!1,await this._timestampModel.expireEntries(1/0)}}const g={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},K=s=>[g.prefix,s,g.suffix].filter(e=>e&&e.length>0).join("-"),ct=s=>{for(const e of Object.keys(g))s(e)},ot={updateDetails:s=>{ct(e=>{typeof s[e]=="string"&&(g[e]=s[e])})},getGoogleAnalyticsName:s=>s||K(g.googleAnalytics),getPrecacheName:s=>s||K(g.precache),getPrefix:()=>g.prefix,getRuntimeName:s=>s||K(g.runtime),getSuffix:()=>g.suffix},lt=new Set;function ht(s){lt.add(s)}class ut{constructor(e={}){this.cachedResponseWillBeUsed=async({event:t,request:r,cacheName:a,cachedResponse:i})=>{if(!i)return null;const n=this._isResponseDateFresh(i),c=this._getCacheExpiration(a);X(c.expireEntries());const o=c.updateTimestamp(r.url);if(t)try{t.waitUntil(o)}catch{}return n?i:null},this.cacheDidUpdate=async({cacheName:t,request:r})=>{const a=this._getCacheExpiration(t);await a.updateTimestamp(r.url),await a.expireEntries()},this._config=e,this._maxAgeSeconds=e.maxAgeSeconds,this._cacheExpirations=new Map,e.purgeOnQuotaError&&ht(()=>this.deleteCacheAndMetadata())}_getCacheExpiration(e){if(e===ot.getRuntimeName())throw new Fe("expire-custom-caches-only");let t=this._cacheExpirations.get(e);return t||(t=new it(e,this._config),this._cacheExpirations.set(e,t)),t}_isResponseDateFresh(e){if(!this._maxAgeSeconds)return!0;const t=this._getDateHeaderTimestamp(e);if(t===null)return!0;const r=Date.now();return t>=r-this._maxAgeSeconds*1e3}_getDateHeaderTimestamp(e){if(!e.headers.has("date"))return null;const t=e.headers.get("date"),a=new Date(t).getTime();return isNaN(a)?null:a}async deleteCacheAndMetadata(){for(const[e,t]of this._cacheExpirations)await self.caches.delete(e),await t.delete();this._cacheExpirations=new Map}}try{self["workbox:routing:7.0.0"]&&_()}catch{}const ee="GET",v=s=>s&&typeof s=="object"?s:{handle:s};class L{constructor(e,t,r=ee){this.handler=v(t),this.match=e,this.method=r}setCatchHandler(e){this.catchHandler=v(e)}}class ft extends L{constructor(e,t,r){const a=({url:i})=>{const n=e.exec(i.href);if(n&&!(i.origin!==location.origin&&n.index!==0))return n.slice(1)};super(a,t,r)}}class dt{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,r=this.handleRequest({request:t,event:e});r&&e.respondWith(r)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,r=Promise.all(t.urlsToCache.map(a=>{typeof a=="string"&&(a=[a]);const i=new Request(...a);return this.handleRequest({request:i,event:e})}));e.waitUntil(r),e.ports&&e.ports[0]&&r.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const r=new URL(e.url,location.href);if(!r.protocol.startsWith("http"))return;const a=r.origin===location.origin,{params:i,route:n}=this.findMatchingRoute({event:t,request:e,sameOrigin:a,url:r});let c=n&&n.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let l;try{l=c.handle({url:r,request:e,event:t,params:i})}catch(h){l=Promise.reject(h)}const f=n&&n.catchHandler;return l instanceof Promise&&(this._catchHandler||f)&&(l=l.catch(async h=>{if(f)try{return await f.handle({url:r,request:e,event:t,params:i})}catch(R){R instanceof Error&&(h=R)}if(this._catchHandler)return this._catchHandler.handle({url:r,request:e,event:t});throw h})),l}findMatchingRoute({url:e,sameOrigin:t,request:r,event:a}){const i=this._routes.get(r.method)||[];for(const n of i){let c;const o=n.match({url:e,sameOrigin:t,request:r,event:a});if(o)return c=o,(Array.isArray(c)&&c.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o=="boolean")&&(c=void 0),{route:n,params:c}}return{}}setDefaultHandler(e,t=ee){this._defaultHandlerMap.set(t,v(e))}setCatchHandler(e){this._catchHandler=v(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new y("unregister-route-but-not-found-with-method",{method:e.method});const t=this._routes.get(e.method).indexOf(e);if(t>-1)this._routes.get(e.method).splice(t,1);else throw new y("unregister-route-route-not-registered")}}let k;const pt=()=>(k||(k=new dt,k.addFetchListener(),k.addCacheListener()),k);function te(s,e,t){let r;if(typeof s=="string"){const i=new URL(s,location.href),n=({url:c})=>c.href===i.href;r=new L(n,e,t)}else if(s instanceof RegExp)r=new ft(s,e,t);else if(typeof s=="function")r=new L(s,e,t);else if(s instanceof L)r=s;else throw new y("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return pt().registerRoute(r),r}try{self["workbox:strategies:7.0.0"]&&_()}catch{}function U(s){return typeof s=="string"?new Request(s):s}class gt{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new he,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const r of this._plugins)this._pluginStateMap.set(r,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this;let r=U(e);if(r.mode==="navigate"&&t instanceof FetchEvent&&t.preloadResponse){const n=await t.preloadResponse;if(n)return n}const a=this.hasCallback("fetchDidFail")?r.clone():null;try{for(const n of this.iterateCallbacks("requestWillFetch"))r=await n({request:r.clone(),event:t})}catch(n){if(n instanceof Error)throw new y("plugin-error-request-will-fetch",{thrownErrorMessage:n.message})}const i=r.clone();try{let n;n=await fetch(r,r.mode==="navigate"?void 0:this._strategy.fetchOptions);for(const c of this.iterateCallbacks("fetchDidSucceed"))n=await c({event:t,request:i,response:n});return n}catch(n){throw a&&await this.runCallbacks("fetchDidFail",{error:n,event:t,originalRequest:a.clone(),request:i.clone()}),n}}async fetchAndCachePut(e){const t=await this.fetch(e),r=t.clone();return this.waitUntil(this.cachePut(e,r)),t}async cacheMatch(e){const t=U(e);let r;const{cacheName:a,matchOptions:i}=this._strategy,n=await this.getCacheKey(t,"read"),c=Object.assign(Object.assign({},i),{cacheName:a});r=await caches.match(n,c);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))r=await o({cacheName:a,matchOptions:i,cachedResponse:r,request:n,event:this.event})||void 0;return r}async cachePut(e,t){const r=U(e);await de(0);const a=await this.getCacheKey(r,"write");if(!t)throw new y("cache-put-with-no-response",{url:fe(a.url)});const i=await this._ensureResponseSafeToCache(t);if(!i)return!1;const{cacheName:n,matchOptions:c}=this._strategy,o=await self.caches.open(n),l=this.hasCallback("cacheDidUpdate"),f=l?await le(o,a.clone(),["__WB_REVISION__"],c):null;try{await o.put(a,l?i.clone():i)}catch(h){if(h instanceof Error)throw h.name==="QuotaExceededError"&&await ue(),h}for(const h of this.iterateCallbacks("cacheDidUpdate"))await h({cacheName:n,oldResponse:f,newResponse:i.clone(),request:a,event:this.event});return!0}async getCacheKey(e,t){const r=`${e.url} | ${t}`;if(!this._cacheKeys[r]){let a=e;for(const i of this.iterateCallbacks("cacheKeyWillBeUsed"))a=U(await i({mode:t,request:a,event:this.event,params:this.params}));this._cacheKeys[r]=a}return this._cacheKeys[r]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const r of this.iterateCallbacks(e))await r(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if(typeof t[e]=="function"){const r=this._pluginStateMap.get(t);yield i=>{const n=Object.assign(Object.assign({},i),{state:r});return t[e](n)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,r=!1;for(const a of this.iterateCallbacks("cacheWillUpdate"))if(t=await a({request:this.request,response:t,event:this.event})||void 0,r=!0,!t)break;return r||t&&t.status!==200&&(t=void 0),t}}class se{constructor(e={}){this.cacheName=oe.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});const t=e.event,r=typeof e.request=="string"?new Request(e.request):e.request,a="params"in e?e.params:void 0,i=new gt(this,{event:t,request:r,params:a}),n=this._getResponse(i,r,t),c=this._awaitComplete(n,i,r,t);return[n,c]}async _getResponse(e,t,r){await e.runCallbacks("handlerWillStart",{event:r,request:t});let a;try{if(a=await this._handle(t,e),!a||a.type==="error")throw new y("no-response",{url:t.url})}catch(i){if(i instanceof Error){for(const n of e.iterateCallbacks("handlerDidError"))if(a=await n({error:i,event:r,request:t}),a)break}if(!a)throw i}for(const i of e.iterateCallbacks("handlerWillRespond"))a=await i({event:r,request:t,response:a});return a}async _awaitComplete(e,t,r,a){let i,n;try{i=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:a,request:r,response:i}),await t.doneWaiting()}catch(c){c instanceof Error&&(n=c)}if(await t.runCallbacks("handlerDidComplete",{event:a,request:r,response:i,error:n}),t.destroy(),n)throw n}}class mt extends se{async _handle(e,t){let r=await t.cacheMatch(e),a;if(!r)try{r=await t.fetchAndCachePut(e)}catch(i){i instanceof Error&&(a=i)}if(!r)throw new y("no-response",{url:e.url,error:a});return r}}const wt={cacheWillUpdate:async({response:s})=>s.status===200||s.status===0?s:null};class yt extends se{constructor(e={}){super(e),this.plugins.some(t=>"cacheWillUpdate"in t)||this.plugins.unshift(wt)}async _handle(e,t){const r=t.fetchAndCachePut(e).catch(()=>{});t.waitUntil(r);let a=await t.cacheMatch(e),i;if(!a)try{a=await r}catch(n){n instanceof Error&&(i=n)}if(!a)throw new y("no-response",{url:e.url,error:i});return a}}qe(([{"revision":null,"url":"assets/_createAggregator-B4i0o6gy.js"},{"revision":null,"url":"assets/access-control-DYH-J6hX.js"},{"revision":null,"url":"assets/actions-BEpPU26q.js"},{"revision":null,"url":"assets/Add-2VCvBnGd.js"},{"revision":null,"url":"assets/add-component-core-BWkCzqAe.js"},{"revision":null,"url":"assets/add-component-core-D-IRi6XF.css"},{"revision":null,"url":"assets/add-resource-gJH8Kf-h.js"},{"revision":null,"url":"assets/addon-C8Ytd8YY.js"},{"revision":null,"url":"assets/analytics-Bv-kTIMo.js"},{"revision":null,"url":"assets/api-C0C4sDJA.js"},{"revision":null,"url":"assets/ar-DuHAbPhE.js"},{"revision":null,"url":"assets/ar-hiIrGdss.js"},{"revision":null,"url":"assets/ArrowDropDown-BdHlAt9a.js"},{"revision":null,"url":"assets/audit-logs-1KlkVb5T.js"},{"revision":null,"url":"assets/base32-COJTblwx.js"},{"revision":null,"url":"assets/branding-CKhye1G1.js"},{"revision":null,"url":"assets/bundle-avatar-B19h7IBb.js"},{"revision":null,"url":"assets/button-Bo5ZAcJk.js"},{"revision":null,"url":"assets/CheckCircle-BElcljFC.js"},{"revision":null,"url":"assets/ChevronLeft-BfF37o7u.js"},{"revision":null,"url":"assets/ChevronRight-B8pf890W.js"},{"revision":null,"url":"assets/click-to-copy-DNu8CktB.js"},{"revision":null,"url":"assets/complete-XH7CJJ1E.js"},{"revision":null,"url":"assets/component-B4nl0OGh.js"},{"revision":null,"url":"assets/config-B8mAOrZA.js"},{"revision":null,"url":"assets/config-d41PVAVu.js"},{"revision":null,"url":"assets/config-navigation-Y__TwRFz.js"},{"revision":null,"url":"assets/config-space-DJZf5rEq.js"},{"revision":null,"url":"assets/confirm-CucPiuHr.js"},{"revision":null,"url":"assets/connect-CPSe4Vws.js"},{"revision":null,"url":"assets/connect-DH0hj2CX.js"},{"revision":null,"url":"assets/connect-to-DfzH7XJt.js"},{"revision":null,"url":"assets/content-layout-CK_AzZZ-.js"},{"revision":null,"url":"assets/dashboard-D7XqaqMa.js"},{"revision":null,"url":"assets/de-CJi7wiel.js"},{"revision":null,"url":"assets/de-D_LJn5nm.js"},{"revision":null,"url":"assets/DeleteOutline-VzoIEqow.js"},{"revision":null,"url":"assets/did-address-49U3oRW2.js"},{"revision":null,"url":"assets/domain-D80mBbZ5.js"},{"revision":null,"url":"assets/domain-list-DGgkgu6r.js"},{"revision":null,"url":"assets/Done-BCESxXX2.js"},{"revision":null,"url":"assets/Download-BJmwtO6i.js"},{"revision":null,"url":"assets/EditIcon-BF2eKBD0.js"},{"revision":null,"url":"assets/email-C1ha_p9W.js"},{"revision":null,"url":"assets/Error-CpAOVH8t.js"},{"revision":null,"url":"assets/es-B0ocJhTd.js"},{"revision":null,"url":"assets/es-ClwhOFrW.js"},{"revision":null,"url":"assets/exchange-passport-4uu5i0rP.js"},{"revision":null,"url":"assets/form-text-input-DB90dWTR.js"},{"revision":null,"url":"assets/format-error-C0Ke3VXF.js"},{"revision":null,"url":"assets/fr-CAkkNKvy.js"},{"revision":null,"url":"assets/fr-eolYJCOV.js"},{"revision":null,"url":"assets/fuel-PiarpzYg.js"},{"revision":null,"url":"assets/fullpage-CFp4hSHz.js"},{"revision":null,"url":"assets/get-safe-url-CVhAz4Qr.js"},{"revision":null,"url":"assets/get-safe-url-RTzyOi09.js"},{"revision":null,"url":"assets/Google-rxW6OGq8.js"},{"revision":null,"url":"assets/hi-CGrG89HI.js"},{"revision":null,"url":"assets/hi-DSwvTH0x.js"},{"revision":null,"url":"assets/home-D1QP6Ilh.js"},{"revision":null,"url":"assets/id-5G9oPRk4.js"},{"revision":null,"url":"assets/id-D6PyIa8m.js"},{"revision":null,"url":"assets/iframe-BUonayoL.js"},{"revision":null,"url":"assets/index-8ktBk2aq.js"},{"revision":null,"url":"assets/index-AgKpYdvC.css"},{"revision":null,"url":"assets/index-B5PaGLoo.js"},{"revision":null,"url":"assets/index-BCUhK2IK.js"},{"revision":null,"url":"assets/index-BdipdMDv.js"},{"revision":null,"url":"assets/index-BGO2DsWz.js"},{"revision":null,"url":"assets/index-Bi1xb9O8.js"},{"revision":null,"url":"assets/index-BP6sEHV5.js"},{"revision":null,"url":"assets/index-BPFeU32W.js"},{"revision":null,"url":"assets/index-BQCwe2Vs.js"},{"revision":null,"url":"assets/index-Cn9hlGXz.js"},{"revision":null,"url":"assets/index-CYcUSW9Y.js"},{"revision":null,"url":"assets/index-D4PP6P2d.css"},{"revision":null,"url":"assets/index-D7mJIWyJ.js"},{"revision":null,"url":"assets/index-D97FQw7_.js"},{"revision":null,"url":"assets/index-DcfIKM1A.js"},{"revision":null,"url":"assets/index-DDHKg1sP.js"},{"revision":null,"url":"assets/index-DgZ1ypbb.js"},{"revision":null,"url":"assets/index-DoZ2YM4T.js"},{"revision":null,"url":"assets/index-DQSF6ElG.js"},{"revision":null,"url":"assets/index-DVYdq7IA.js"},{"revision":null,"url":"assets/index-mnKcDZP2.js"},{"revision":null,"url":"assets/index-N-iuMUsJ.js"},{"revision":null,"url":"assets/index-PIIZTXU1.js"},{"revision":null,"url":"assets/InfoOutlined-BFP30UJa.js"},{"revision":null,"url":"assets/invitation-D0h9V7Yr.js"},{"revision":null,"url":"assets/invite-CLadQHSg.js"},{"revision":null,"url":"assets/isEmail-BWNRBSAy.js"},{"revision":null,"url":"assets/issue-passport-DOvL3-GM.js"},{"revision":null,"url":"assets/item-BKMUYpdp.js"},{"revision":null,"url":"assets/ja-B2h7onKc.js"},{"revision":null,"url":"assets/ja-C82Szos_.js"},{"revision":null,"url":"assets/keyboard-arrow-down-rounded-DadBVmpO.js"},{"revision":null,"url":"assets/ko-B8lz4XE7.js"},{"revision":null,"url":"assets/ko-zaXquvPm.js"},{"revision":null,"url":"assets/Launch-BOCFiYoz.js"},{"revision":null,"url":"assets/launch-result-message-zXOcVqEr.js"},{"revision":null,"url":"assets/LaunchOutlined-B-PaS5ms.js"},{"revision":null,"url":"assets/layout-Bb4get3W.js"},{"revision":null,"url":"assets/list-header-Bn1GhGok.js"},{"revision":null,"url":"assets/localization-L03Lvx4v.js"},{"revision":null,"url":"assets/LockIcon-DQtUl5vk.js"},{"revision":null,"url":"assets/log-D33dFtt_.css"},{"revision":null,"url":"assets/log-r4HRH3tf.js"},{"revision":null,"url":"assets/login-IiYHalJQ.js"},{"revision":null,"url":"assets/login-oauth-callback-DHA7e6Ar.js"},{"revision":null,"url":"assets/logo-uploader-C1-XCCMv.js"},{"revision":null,"url":"assets/Loop-n5c7A0qE.js"},{"revision":null,"url":"assets/lost-passport-EcYlR7v6.js"},{"revision":null,"url":"assets/lottie-react.esm-CHpXrEmm.js"},{"revision":null,"url":"assets/MoreHoriz-DnFq43xg.js"},{"revision":null,"url":"assets/open-window-B-5Hms7z.js"},{"revision":null,"url":"assets/overview-Bc6RN_5G.js"},{"revision":null,"url":"assets/page-header-6EUz18Qu.js"},{"revision":null,"url":"assets/permission-SgzW7fBj.js"},{"revision":null,"url":"assets/PlayArrow-oA7gV2MA.js"},{"revision":null,"url":"assets/preferences-RkqN3i2t.js"},{"revision":null,"url":"assets/pt-CMq2TmiV.js"},{"revision":null,"url":"assets/pt-JWdcQImo.js"},{"revision":null,"url":"assets/publish-resource-cSMHC1nt.js"},{"revision":null,"url":"assets/QuestionMarkCircle-gL_QM35Z.js"},{"revision":null,"url":"assets/raf-schd.esm-Cxhj8umC.js"},{"revision":null,"url":"assets/react-beautiful-dnd.esm-C8vTtkBe.js"},{"revision":null,"url":"assets/relative-time-BzZIQh7e.js"},{"revision":null,"url":"assets/ru-BwmmHWZS.js"},{"revision":null,"url":"assets/ru-CWgdu04g.js"},{"revision":null,"url":"assets/sdk-Dqc91xl4.js"},{"revision":null,"url":"assets/ServerLogo-UNPlRpuM.js"},{"revision":null,"url":"assets/session-ocxAyn6f.js"},{"revision":null,"url":"assets/setup-CdCyHLLn.js"},{"revision":null,"url":"assets/shorten-label-BnvWOC_s.js"},{"revision":null,"url":"assets/simple-select-BwufbE2b.js"},{"revision":null,"url":"assets/slicedToArray-DNAGECrJ.js"},{"revision":null,"url":"assets/start-owo1aKq8.js"},{"revision":null,"url":"assets/step-actions-DnckX9Zh.js"},{"revision":null,"url":"assets/studio-DPoV-6q9.js"},{"revision":null,"url":"assets/switch-control-D-IROOaC.js"},{"revision":null,"url":"assets/th-BnfuNX_7.js"},{"revision":null,"url":"assets/th-C-hKn9xa.js"},{"revision":null,"url":"assets/toUpper-BQrWudMF.js"},{"revision":null,"url":"assets/transfer-De5_Rua8.js"},{"revision":null,"url":"assets/unsubscribe-B0kFTEaS.js"},{"revision":null,"url":"assets/use-mobile-DAR0hmJd.js"},{"revision":null,"url":"assets/use-passport-id-B-b-_oYF.js"},{"revision":null,"url":"assets/useAsync-cdOzMWPw.js"},{"revision":null,"url":"assets/useAsyncRetry-KXMle3o0.js"},{"revision":null,"url":"assets/useLocalStorage-CSyjxtUy.js"},{"revision":null,"url":"assets/user-center-B9_0ML8Q.js"},{"revision":null,"url":"assets/useSetState-Crt4S51m.js"},{"revision":null,"url":"assets/util-Ci0WMGC4.js"},{"revision":null,"url":"assets/vendor-arcblock-CiLB_TiI.js"},{"revision":null,"url":"assets/vendor-arcblock-DhgPdlEj.css"},{"revision":null,"url":"assets/vendor-hooks-CLzfFpO7.js"},{"revision":null,"url":"assets/vendor-mui-core-BlX2BJoA.js"},{"revision":null,"url":"assets/vendor-mui-x-Bq1FyQ7S.js"},{"revision":null,"url":"assets/vendor-react-D-afvo_7.js"},{"revision":null,"url":"assets/vendor-utils-DCpRgzMR.js"},{"revision":null,"url":"assets/vi-C_iM9J2X.js"},{"revision":null,"url":"assets/vi-D7HQHu1T.js"},{"revision":null,"url":"assets/ViewList-IMqkd2Sv.js"},{"revision":null,"url":"assets/wrap-locale-D_rplmnG.js"},{"revision":null,"url":"assets/zh-6fa1T5uL.js"},{"revision":null,"url":"assets/zh-DNY792IC.js"},{"revision":null,"url":"assets/zh-tw-9sY6BN2s.js"},{"revision":null,"url":"assets/zh-tw-jFbTVB_K.js"},{"revision":"bb7f327e6c4a289702de3cb376e6102f","url":"index.html"},{"revision":"629a14a7e3397a134f5a30b5dc735183","url":"registerSW.js"},{"revision":"07a287e43ae8e959a20d6b367a581667","url":"router-template-styles/styles.css"},{"revision":"9cfdcbc55d6894de3082639644bbd060","url":"share/shared-service-worker.js"},{"revision":"19d4c6a99cb8ed11e68209a612e7ec44","url":"share/workbox-v7.3.0/workbox-background-sync.prod.js"},{"revision":"d9d631014689e2b4b0e343c129671749","url":"share/workbox-v7.3.0/workbox-broadcast-update.prod.js"},{"revision":"bdb39ceb7380dcb1483c543e8856242b","url":"share/workbox-v7.3.0/workbox-cacheable-response.prod.js"},{"revision":"b84dd900eb18e8bc842666bbb740604e","url":"share/workbox-v7.3.0/workbox-core.prod.js"},{"revision":"c582a61c037234d8283eea0b97693b1b","url":"share/workbox-v7.3.0/workbox-expiration.prod.js"},{"revision":"866ba7d03bd871fa990976e4db312ab3","url":"share/workbox-v7.3.0/workbox-navigation-preload.prod.js"},{"revision":"0c55bb581ea7ce5ebfac1ce95cdda21f","url":"share/workbox-v7.3.0/workbox-offline-ga.prod.js"},{"revision":"770d183cf1f189a1ceb11ba8b5d808fa","url":"share/workbox-v7.3.0/workbox-precaching.prod.js"},{"revision":"295decbe1eb3b073a2a8d67cfbdf5692","url":"share/workbox-v7.3.0/workbox-range-requests.prod.js"},{"revision":"0bcb90677f3508ebc8a3571d14194478","url":"share/workbox-v7.3.0/workbox-recipes.prod.js"},{"revision":"4af96b70b2d20b041e2edd7ef1a8ef27","url":"share/workbox-v7.3.0/workbox-routing.prod.js"},{"revision":"c78c21b4058a1134ad3e12286c57cb2f","url":"share/workbox-v7.3.0/workbox-strategies.prod.js"},{"revision":"7eeb2d820d409221e076d31951fdcf79","url":"share/workbox-v7.3.0/workbox-streams.prod.js"},{"revision":"aa7368887577b9719a46b585d5dcc7a5","url":"share/workbox-v7.3.0/workbox-sw.js"},{"revision":"e768668db4eeefde11b58542900ab2ad","url":"share/workbox-v7.3.0/workbox-window.prod.umd.js"},{"revision":"f272d080151aa40322ce1603c6261ec1","url":"manifest.webmanifest"}]||[]).filter(s=>s.url!=="/"&&!s.url.includes("index.html")));pe();self.addEventListener("activate",()=>{console.log("Service Worker activated")});self.addEventListener("install",s=>{console.log("Service Worker installed"),s.waitUntil(self.skipWaiting())});const re=s=>!!(s.method!=="GET"||s.url.includes("/api")||s.url.includes("__meta__.js")||s.url.includes("__blocklet__.js"));te(({request:s})=>re(s)?!1:s.url.includes("/static/"),new mt({cacheName:`static-${self.registration.scope}`,plugins:[new ut({maxEntries:200})]}));te(({request:s})=>re(s)?!1:s.url.includes("/images/")||s.url.includes("/router/-template-styles/"),new yt({cacheName:`StaleWhileRevalidate-${self.registration.scope}`}));
@@ -6,10 +6,20 @@ workbox.setConfig({
6
6
  // 注入一系列属性和方法供应用的 sw 使用,此处不再做任何规则预设
7
7
  self.blocklet = {
8
8
  workbox,
9
- whiteList: ['/.well-known/service/blocklet/logo', '/favicon.ico'],
9
+ whiteList: [
10
+ '/.well-known/service/blocklet/logo',
11
+ '/.well-known/service/blocklet/logo-favicon',
12
+ '/.well-known/service/blocklet/logo-rect',
13
+ '/.well-known/service/blocklet/splash/portrait',
14
+ '/.well-known/service/blocklet/splash/landscape',
15
+ '/favicon.ico',
16
+ '/.well-known/service/openembed.json',
17
+ '/.well-known/service/openembed.yaml',
18
+ ],
10
19
 
11
20
  /**
12
21
  * 检查 url 是否为自身组件
22
+ * @deprecated 仅作旧版本兼容,将在未来移除
13
23
  * @param {object} options
14
24
  * @param {url} options.url 资源的路径
15
25
  * @returns {boolean} 是否为当前组件
@@ -31,6 +41,48 @@ self.blocklet = {
31
41
  if (!otherMountPoints.some((x) => pathname.startsWith(x))) {
32
42
  return true;
33
43
  }
44
+ return false;
45
+ }
46
+ if (pathname.startsWith(self.blocklet.prefix)) {
47
+ return true;
48
+ }
49
+ return false;
50
+ },
51
+
52
+ /**
53
+ * 检查 url 是否允许被 sw 缓存
54
+ * @param {object} options
55
+ * @param {url} options.url 资源的路径
56
+ * @returns {boolean}
57
+ */
58
+ canCache({ url }) {
59
+ const pathname = url.pathname;
60
+ // 禁止缓存统计接口
61
+ if (pathname.startsWith('/.well-known/analytics')) {
62
+ return false;
63
+ }
64
+
65
+ // HACK: 由于部分资源是由 service 提供,所以需要由白名单
66
+ if (
67
+ pathname.startsWith('/.well-known/service/static/share/') ||
68
+ pathname.startsWith(`/.blocklet/proxy/${self.blocklet.did}`) ||
69
+ self.blocklet.whiteList.some((x) => x === url.pathname)
70
+ ) {
71
+ return true;
72
+ }
73
+
74
+ // 如果是被标记为 shared 的组件,则允许被缓存
75
+ if (self.blocklet.sharedMountPoints.some((x) => pathname.startsWith(x))) {
76
+ return true;
77
+ }
78
+
79
+ const otherMountPoints = self.blocklet.mountPoints.filter((item) => item !== self.blocklet.prefix);
80
+ if (self.blocklet.prefix === '/') {
81
+ // 如果当前组件挂载到 / 下,则要求要匹配的路由不能属于任何其他的组件 (blocklet-service 可以看作是一个特殊的组件)
82
+ if (!otherMountPoints.some((x) => pathname.startsWith(x)) && !pathname.startsWith('/.well-known/service/')) {
83
+ return true;
84
+ }
85
+ return false;
34
86
  }
35
87
  if (pathname.startsWith(self.blocklet.prefix)) {
36
88
  return true;
@@ -50,7 +102,12 @@ self.blocklet = {
50
102
  getMountPoints() {
51
103
  const selfUrl = new URL(self.location.href);
52
104
  const mountPoints = selfUrl.searchParams.get('mountPoints');
53
- return mountPoints.split(',');
105
+ return mountPoints ? mountPoints.split(',').filter(Boolean) : [];
106
+ },
107
+ getSharedMountPoints() {
108
+ const selfUrl = new URL(self.location.href);
109
+ const mountPoints = selfUrl.searchParams.get('sharedMountPoints');
110
+ return mountPoints ? mountPoints.split(',').filter(Boolean) : [];
54
111
  },
55
112
  fixRouteUrl(route) {
56
113
  return {
@@ -63,3 +120,4 @@ self.blocklet = {
63
120
  self.blocklet.did = self.blocklet.getDid();
64
121
  self.blocklet.prefix = self.blocklet.getPrefix();
65
122
  self.blocklet.mountPoints = self.blocklet.getMountPoints();
123
+ self.blocklet.sharedMountPoints = self.blocklet.getSharedMountPoints();
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.16.38-beta-20250110-003414-d3c1bfbd",
6
+ "version": "1.16.38-beta-20250114-011103-277f0108",
7
7
  "description": "Provide unified services for every blocklet",
8
8
  "main": "api/index.js",
9
9
  "files": [
@@ -33,17 +33,17 @@
33
33
  "author": "wangshijun <wangshijun2010@gmail.com> (http://github.com/wangshijun)",
34
34
  "license": "Apache-2.0",
35
35
  "dependencies": {
36
- "@abtnode/analytics": "1.16.38-beta-20250110-003414-d3c1bfbd",
37
- "@abtnode/auth": "1.16.38-beta-20250110-003414-d3c1bfbd",
38
- "@abtnode/client": "1.16.38-beta-20250110-003414-d3c1bfbd",
39
- "@abtnode/connect-storage": "1.16.38-beta-20250110-003414-d3c1bfbd",
40
- "@abtnode/constant": "1.16.38-beta-20250110-003414-d3c1bfbd",
41
- "@abtnode/core": "1.16.38-beta-20250110-003414-d3c1bfbd",
42
- "@abtnode/cron": "1.16.38-beta-20250110-003414-d3c1bfbd",
43
- "@abtnode/logger": "1.16.38-beta-20250110-003414-d3c1bfbd",
44
- "@abtnode/models": "1.16.38-beta-20250110-003414-d3c1bfbd",
45
- "@abtnode/router-templates": "1.16.38-beta-20250110-003414-d3c1bfbd",
46
- "@abtnode/util": "1.16.38-beta-20250110-003414-d3c1bfbd",
36
+ "@abtnode/analytics": "1.16.38-beta-20250114-011103-277f0108",
37
+ "@abtnode/auth": "1.16.38-beta-20250114-011103-277f0108",
38
+ "@abtnode/client": "1.16.38-beta-20250114-011103-277f0108",
39
+ "@abtnode/connect-storage": "1.16.38-beta-20250114-011103-277f0108",
40
+ "@abtnode/constant": "1.16.38-beta-20250114-011103-277f0108",
41
+ "@abtnode/core": "1.16.38-beta-20250114-011103-277f0108",
42
+ "@abtnode/cron": "1.16.38-beta-20250114-011103-277f0108",
43
+ "@abtnode/logger": "1.16.38-beta-20250114-011103-277f0108",
44
+ "@abtnode/models": "1.16.38-beta-20250114-011103-277f0108",
45
+ "@abtnode/router-templates": "1.16.38-beta-20250114-011103-277f0108",
46
+ "@abtnode/util": "1.16.38-beta-20250114-011103-277f0108",
47
47
  "@arcblock/did": "^1.19.2",
48
48
  "@arcblock/did-auth": "1.19.2",
49
49
  "@arcblock/did-ext": "^1.19.2",
@@ -52,15 +52,15 @@
52
52
  "@arcblock/jwt": "1.19.2",
53
53
  "@arcblock/validator": "^1.19.2",
54
54
  "@arcblock/ws": "1.19.2",
55
- "@blocklet/constant": "1.16.38-beta-20250110-003414-d3c1bfbd",
55
+ "@blocklet/constant": "1.16.38-beta-20250114-011103-277f0108",
56
56
  "@blocklet/did-space-js": "^1.0.2",
57
- "@blocklet/env": "1.16.38-beta-20250110-003414-d3c1bfbd",
57
+ "@blocklet/env": "1.16.38-beta-20250114-011103-277f0108",
58
58
  "@blocklet/form-builder": "^0.1.11",
59
59
  "@blocklet/form-collector": "^0.1.8",
60
- "@blocklet/images": "1.16.38-beta-20250110-003414-d3c1bfbd",
61
- "@blocklet/js-sdk": "1.16.38-beta-20250110-003414-d3c1bfbd",
62
- "@blocklet/meta": "1.16.38-beta-20250110-003414-d3c1bfbd",
63
- "@blocklet/sdk": "1.16.38-beta-20250110-003414-d3c1bfbd",
60
+ "@blocklet/images": "1.16.38-beta-20250114-011103-277f0108",
61
+ "@blocklet/js-sdk": "1.16.38-beta-20250114-011103-277f0108",
62
+ "@blocklet/meta": "1.16.38-beta-20250114-011103-277f0108",
63
+ "@blocklet/sdk": "1.16.38-beta-20250114-011103-277f0108",
64
64
  "@blocklet/uploader-server": "^0.1.67",
65
65
  "@did-connect/authenticator": "^2.2.4",
66
66
  "@did-connect/relay-adapter-express": "^2.2.4",
@@ -109,14 +109,14 @@
109
109
  "whatwg-url": "14.0.0"
110
110
  },
111
111
  "devDependencies": {
112
- "@abtnode/ux": "1.16.38-beta-20250110-003414-d3c1bfbd",
112
+ "@abtnode/ux": "1.16.38-beta-20250114-011103-277f0108",
113
113
  "@arcblock/bridge": "^2.11.25",
114
114
  "@arcblock/did-connect": "^2.11.25",
115
115
  "@arcblock/icons": "^2.11.25",
116
116
  "@arcblock/react-hooks": "^2.11.25",
117
117
  "@arcblock/ux": "^2.11.25",
118
118
  "@blocklet/launcher-layout": "^2.11.25",
119
- "@blocklet/tracker": "1.16.38-beta-20250110-003414-d3c1bfbd",
119
+ "@blocklet/tracker": "1.16.38-beta-20250114-011103-277f0108",
120
120
  "@blocklet/ui-react": "^2.11.25",
121
121
  "@blocklet/uploader": "^0.1.63",
122
122
  "@emotion/react": "^11.11.4",
@@ -193,5 +193,5 @@
193
193
  "url": "https://github.com/ArcBlock/blocklet-server/issues",
194
194
  "email": "shijun@arcblock.io"
195
195
  },
196
- "gitHead": "56883ef3e5f208f18c3fe4eedfb664be8e2b4fa7"
196
+ "gitHead": "9e4d26709a9d8b01f6a0a9158220da8504132997"
197
197
  }