From 906ba5dbddff87bf6f6de8515ce7c76a4e1994f9 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 2 Jan 2025 19:51:25 +0000 Subject: [PATCH] Deploy to GitHub Pages --- .env.dist | 5 - .github/workflows/deploy.yml | 42 - .github/workflows/tests.yml | 18 - .gitignore | 26 - public/404.html => 404.html | 0 public/CNAME => CNAME | 0 LICENSE | 21 - README.md | 35 - assets/browser-Bln07Ja-.js | 1 + assets/index-Bynste_d.js | 64 + assets/index-DUIwa_qn.css | 1 + cypress.config.ts | 8 - cypress/e2e/game_leaderboards.cy.ts | 80 - cypress/e2e/leaderboard_entries.cy.ts | 174 - cypress/e2e/login_page.cy.ts | 88 - cypress/e2e/recently_played_games_page.cy.ts | 66 - .../fixtures/game-list-with-leaderboard.json | 20 - .../game-list-without-leaderboard.json | 20 - .../fixtures/leaderboard-entries-refresh.json | 76 - cypress/fixtures/leaderboard-entries.json | 76 - cypress/fixtures/leaderboards-refresh.json | 126 - cypress/fixtures/leaderboards.json | 126 - cypress/fixtures/no-leaderboard-entries.json | 5 - cypress/fixtures/no-leaderboards.json | 5 - cypress/fixtures/no-played-games.json | 1 - cypress/fixtures/recently-played-games-1.json | 20 - cypress/fixtures/recently-played-games-2.json | 38 - cypress/fixtures/supabase.auth-granted.json | 47 - .../fixtures/supabase.ra-credentials-bad.json | 3 - .../fixtures/supabase.ra-credentials-ok.json | 6 - .../fixtures/users-i-follow-with-matias.json | 18 - cypress/fixtures/users-i-follow.json | 12 - cypress/support/commands.ts | 75 - cypress/support/e2e.ts | 20 - cypress/tsconfig.json | 8 - index.html | 3 +- package-lock.json | 3701 ----------------- package.json | 29 - src/App.vue | 17 - src/components/AuthCallback.vue | 71 - src/components/BurgerMenu.vue | 195 - src/components/ConfirmModal.vue | 86 - src/components/GameLeaderboards.vue | 270 -- src/components/Home.vue | 213 - src/components/LeaderboardEntries.vue | 231 - src/components/LeaderboardsUpdates.vue | 231 - src/components/Login.vue | 152 - src/components/Logout.vue | 39 - src/components/RACredentials.vue | 143 - src/components/SingUp.vue | 146 - src/components/Tooltip.vue | 101 - src/main.ts | 18 - src/models/Friends.ts | 12 - src/models/GameLeaderboards.ts | 20 - src/models/LeaderboardEntries.ts | 13 - src/models/RecentlyPlayedGames.ts | 20 - src/repositories/GameRepository.ts | 49 - src/repositories/UserRepository.ts | 22 - src/router/index.ts | 46 - src/shims-vue.d.ts | 5 - src/stores/friends.ts | 23 - src/stores/games.ts | 65 - src/stores/postStore.ts | 48 - src/stores/user.ts | 60 - src/utils/crypto.ts | 10 - src/utils/supabaseClient.ts | 6 - src/vite-env.d.ts | 1 - tsconfig.app.json | 26 - tsconfig.json | 7 - tsconfig.node.json | 24 - public/v0.0.4.gif => v0.0.4.gif | Bin vite.config.mjs | 7 - public/vite.svg => vite.svg | 0 73 files changed, 68 insertions(+), 7373 deletions(-) delete mode 100644 .env.dist delete mode 100644 .github/workflows/deploy.yml delete mode 100644 .github/workflows/tests.yml delete mode 100644 .gitignore rename public/404.html => 404.html (100%) rename public/CNAME => CNAME (100%) delete mode 100644 LICENSE delete mode 100644 README.md create mode 100644 assets/browser-Bln07Ja-.js create mode 100644 assets/index-Bynste_d.js create mode 100644 assets/index-DUIwa_qn.css delete mode 100644 cypress.config.ts delete mode 100644 cypress/e2e/game_leaderboards.cy.ts delete mode 100644 cypress/e2e/leaderboard_entries.cy.ts delete mode 100644 cypress/e2e/login_page.cy.ts delete mode 100644 cypress/e2e/recently_played_games_page.cy.ts delete mode 100644 cypress/fixtures/game-list-with-leaderboard.json delete mode 100644 cypress/fixtures/game-list-without-leaderboard.json delete mode 100644 cypress/fixtures/leaderboard-entries-refresh.json delete mode 100644 cypress/fixtures/leaderboard-entries.json delete mode 100644 cypress/fixtures/leaderboards-refresh.json delete mode 100644 cypress/fixtures/leaderboards.json delete mode 100644 cypress/fixtures/no-leaderboard-entries.json delete mode 100644 cypress/fixtures/no-leaderboards.json delete mode 100644 cypress/fixtures/no-played-games.json delete mode 100644 cypress/fixtures/recently-played-games-1.json delete mode 100644 cypress/fixtures/recently-played-games-2.json delete mode 100644 cypress/fixtures/supabase.auth-granted.json delete mode 100644 cypress/fixtures/supabase.ra-credentials-bad.json delete mode 100644 cypress/fixtures/supabase.ra-credentials-ok.json delete mode 100644 cypress/fixtures/users-i-follow-with-matias.json delete mode 100644 cypress/fixtures/users-i-follow.json delete mode 100644 cypress/support/commands.ts delete mode 100644 cypress/support/e2e.ts delete mode 100644 cypress/tsconfig.json delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 src/App.vue delete mode 100644 src/components/AuthCallback.vue delete mode 100644 src/components/BurgerMenu.vue delete mode 100644 src/components/ConfirmModal.vue delete mode 100644 src/components/GameLeaderboards.vue delete mode 100644 src/components/Home.vue delete mode 100644 src/components/LeaderboardEntries.vue delete mode 100644 src/components/LeaderboardsUpdates.vue delete mode 100644 src/components/Login.vue delete mode 100644 src/components/Logout.vue delete mode 100644 src/components/RACredentials.vue delete mode 100644 src/components/SingUp.vue delete mode 100644 src/components/Tooltip.vue delete mode 100644 src/main.ts delete mode 100644 src/models/Friends.ts delete mode 100644 src/models/GameLeaderboards.ts delete mode 100644 src/models/LeaderboardEntries.ts delete mode 100644 src/models/RecentlyPlayedGames.ts delete mode 100644 src/repositories/GameRepository.ts delete mode 100644 src/repositories/UserRepository.ts delete mode 100644 src/router/index.ts delete mode 100644 src/shims-vue.d.ts delete mode 100644 src/stores/friends.ts delete mode 100644 src/stores/games.ts delete mode 100644 src/stores/postStore.ts delete mode 100644 src/stores/user.ts delete mode 100644 src/utils/crypto.ts delete mode 100644 src/utils/supabaseClient.ts delete mode 100644 src/vite-env.d.ts delete mode 100644 tsconfig.app.json delete mode 100644 tsconfig.json delete mode 100644 tsconfig.node.json rename public/v0.0.4.gif => v0.0.4.gif (100%) delete mode 100644 vite.config.mjs rename public/vite.svg => vite.svg (100%) diff --git a/.env.dist b/.env.dist deleted file mode 100644 index 77891e6..0000000 --- a/.env.dist +++ /dev/null @@ -1,5 +0,0 @@ -VITE_APP_URL=https://retroleaderboards.app -VITE_API_URL=https://retroachievements.org -VITE_ENCRYPTION_KEY=some-key -VITE_SUPABASE_URL=some-url -VITE_SUPABASE_KEY=some-key diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index 9473840..0000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Deploy to GitHub Pages - -on: - workflow_dispatch: - release: - types: [ published ] - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version: '18' - - - name: Install dependencies - run: npm install - - - name: Build project - env: - VITE_APP_URL: ${{ vars.APP_URL }} - VITE_API_URL: ${{ vars.API_URL }} - VITE_ENCRYPTION_KEY: ${{ secrets.ENCRYPTION_KEY }} - VITE_SUPABASE_URL: ${{ vars.SUPABASE_URL }} - VITE_SUPABASE_KEY: ${{ secrets.SUPABASE_KEY }} - run: npm run build - - - name: Deploy to GitHub Pages - run: | - git config --global user.name 'GitHub Actions' - git config --global user.email 'actions@github.com' - git checkout main - git add dist -f - git commit -m 'Deploy to GitHub Pages' - git push origin `git subtree split --prefix dist main`:gh-pages --force diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml deleted file mode 100644 index 9e442d5..0000000 --- a/.github/workflows/tests.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Tests - -on: - workflow_dispatch: - pull_request: - types: [ opened, synchronize, reopened ] - -jobs: - cypress_run: - runs-on: ubuntu-24.04 - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Cypress run - uses: cypress-io/github-action@v6 - with: - start: npm run dev:cypress diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 3b0b403..0000000 --- a/.gitignore +++ /dev/null @@ -1,26 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? - -.env \ No newline at end of file diff --git a/public/404.html b/404.html similarity index 100% rename from public/404.html rename to 404.html diff --git a/public/CNAME b/CNAME similarity index 100% rename from public/CNAME rename to CNAME diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 63a7eb2..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 Gastón Gaiduk - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index cba161b..0000000 --- a/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# Retro leaderboards - -Retro leaderboards is a small easy to use [Retroachievements.org](https://retroachievements.org) companion website (mobile first design) that allows you to compare your recently played games leaderboards with your friends. -You only need two things in order to use it: your username and your web api key (which can be gathered from your [setting page](https://retroachievements.org/settings), under the _Keys_ section) - -## What technologies does it use? - -This small webpage is built using [VITE](https://vite.dev) and [VUE](https://vuejs.org). Uses [GitHub Pages](https://pages.github.com) to host. -It uses local storage to keep track of visited games information (so we don't overwhelm the server each time we navigate through pages). -Sensitive data is stored using [crypto-js](https://www.npmjs.com/package/crypto-js). Testing aiming for full code coverage with [Cypress](https://www.cypress.io). - -## Is it safe? - -It tries to. Always keeping in mind that is a frontend application running in your browser which are never exempt of risks. - -- So how does it try to be safe? - - Basically it encrypts sensitive data before storing it to local storage. -- Why does it store the data in first place? - - So you don't have to fill it up every time you want to use the app. -- What if I don't want to keep my secrets stored? - - Then you could log out after each use and all your stored data will be deleted. - -## How to build - -Create a .env file in your project's root folder. -```.env -VITE_API_URL=https://retroachievements.org -VITE_ENCRYPTION_KEY=example -``` - -Install node, at least version 18. First run `npm install` and then `npm run dev`. -The project should be accessible via http://localhost:5173/. - -## Screens -Screenshots diff --git a/assets/browser-Bln07Ja-.js b/assets/browser-Bln07Ja-.js new file mode 100644 index 0000000..05470e5 --- /dev/null +++ b/assets/browser-Bln07Ja-.js @@ -0,0 +1 @@ +import{g as o}from"./index-Bynste_d.js";var r,e;function t(){return e||(e=1,r=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}),r}var s=t();const n=o(s),w=Object.freeze(Object.defineProperty({__proto__:null,default:n},Symbol.toStringTag,{value:"Module"}));export{w as b}; diff --git a/assets/index-Bynste_d.js b/assets/index-Bynste_d.js new file mode 100644 index 0000000..49f56e2 --- /dev/null +++ b/assets/index-Bynste_d.js @@ -0,0 +1,64 @@ +var Yu=Object.defineProperty;var Zu=(e,t,r)=>t in e?Yu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Xr=(e,t,r)=>Zu(e,typeof t!="symbol"?t+"":t,r);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))s(n);new MutationObserver(n=>{for(const i of n)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&s(o)}).observe(document,{childList:!0,subtree:!0});function r(n){const i={};return n.integrity&&(i.integrity=n.integrity),n.referrerPolicy&&(i.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?i.credentials="include":n.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(n){if(n.ep)return;n.ep=!0;const i=r(n);fetch(n.href,i)}})();/** +* @vue/shared v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function bo(e){const t=Object.create(null);for(const r of e.split(","))t[r]=1;return r=>r in t}const Ae={},Or=[],St=()=>{},ef=()=>!1,Mn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),wo=e=>e.startsWith("onUpdate:"),Ne=Object.assign,Eo=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},tf=Object.prototype.hasOwnProperty,be=(e,t)=>tf.call(e,t),oe=Array.isArray,$r=e=>zn(e)==="[object Map]",Cc=e=>zn(e)==="[object Set]",ce=e=>typeof e=="function",$e=e=>typeof e=="string",It=e=>typeof e=="symbol",Fe=e=>e!==null&&typeof e=="object",Ac=e=>(Fe(e)||ce(e))&&ce(e.then)&&ce(e.catch),Bc=Object.prototype.toString,zn=e=>Bc.call(e),rf=e=>zn(e).slice(8,-1),Sc=e=>zn(e)==="[object Object]",Co=e=>$e(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,os=bo(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Wn=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},sf=/-(\w)/g,ht=Wn(e=>e.replace(sf,(t,r)=>r?r.toUpperCase():"")),nf=/\B([A-Z])/g,vr=Wn(e=>e.replace(nf,"-$1").toLowerCase()),Gn=Wn(e=>e.charAt(0).toUpperCase()+e.slice(1)),mi=Wn(e=>e?`on${Gn(e)}`:""),Xt=(e,t)=>!Object.is(e,t),qs=(e,...t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:r})},Mi=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let aa;const Vn=()=>aa||(aa=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Kn(e){if(oe(e)){const t={};for(let r=0;r{if(r){const s=r.split(af);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function zr(e){let t="";if($e(e))t=e;else if(oe(e))for(let r=0;r!!(e&&e.__v_isRef===!0),Pe=e=>$e(e)?e:e==null?"":oe(e)||Fe(e)&&(e.toString===Bc||!ce(e.toString))?Fc(e)?Pe(e.value):JSON.stringify(e,Rc,2):String(e),Rc=(e,t)=>Fc(t)?Rc(e,t.value):$r(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[s,n],i)=>(r[_i(s,i)+" =>"]=n,r),{})}:Cc(t)?{[`Set(${t.size})`]:[...t.values()].map(r=>_i(r))}:It(t)?_i(t):Fe(t)&&!oe(t)&&!Sc(t)?String(t):t,_i=(e,t="")=>{var r;return It(e)?`Symbol(${(r=e.description)!=null?r:t})`:e};/** +* @vue/reactivity v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ye;class Tc{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Ye,!t&&Ye&&(this.index=(Ye.scopes||(Ye.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,r;if(this.scopes)for(t=0,r=this.scopes.length;t0)return;if(cs){let t=cs;for(cs=void 0;t;){const r=t.next;t.next=void 0,t.flags&=-9,t=r}}let e;for(;as;){let t=as;for(as=void 0;t;){const r=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=r}}if(e)throw e}function jc(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Uc(e){let t,r=e.depsTail,s=r;for(;s;){const n=s.prevDep;s.version===-1?(s===r&&(r=n),So(s),hf(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=n}e.deps=t,e.depsTail=r}function zi(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Nc(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Nc(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===gs))return;e.globalVersion=gs;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!zi(e)){e.flags&=-3;return}const r=Se,s=gt;Se=e,gt=!0;try{jc(e);const n=e.fn(e._value);(t.version===0||Xt(n,e._value))&&(e._value=n,t.version++)}catch(n){throw t.version++,n}finally{Se=r,gt=s,Uc(e),e.flags&=-3}}function So(e,t=!1){const{dep:r,prevSub:s,nextSub:n}=e;if(s&&(s.nextSub=n,e.prevSub=void 0),n&&(n.prevSub=s,e.nextSub=void 0),r.subs===e&&(r.subs=s,!s&&r.computed)){r.computed.flags&=-5;for(let i=r.computed.deps;i;i=i.nextDep)So(i,!0)}!t&&!--r.sc&&r.map&&r.map.delete(r.key)}function hf(e){const{prevDep:t,nextDep:r}=e;t&&(t.nextDep=r,e.prevDep=void 0),r&&(r.prevDep=t,e.nextDep=void 0)}let gt=!0;const Hc=[];function Zt(){Hc.push(gt),gt=!1}function er(){const e=Hc.pop();gt=e===void 0?!0:e}function ca(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const r=Se;Se=void 0;try{t()}finally{Se=r}}}let gs=0;class xf{constructor(t,r){this.sub=t,this.dep=r,this.version=r.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Do{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(t){if(!Se||!gt||Se===this.computed)return;let r=this.activeLink;if(r===void 0||r.sub!==Se)r=this.activeLink=new xf(Se,this),Se.deps?(r.prevDep=Se.depsTail,Se.depsTail.nextDep=r,Se.depsTail=r):Se.deps=Se.depsTail=r,qc(r);else if(r.version===-1&&(r.version=this.version,r.nextDep)){const s=r.nextDep;s.prevDep=r.prevDep,r.prevDep&&(r.prevDep.nextDep=s),r.prevDep=Se.depsTail,r.nextDep=void 0,Se.depsTail.nextDep=r,Se.depsTail=r,Se.deps===r&&(Se.deps=s)}return r}trigger(t){this.version++,gs++,this.notify(t)}notify(t){Ao();try{for(let r=this.subs;r;r=r.prevSub)r.sub.notify()&&r.sub.dep.notify()}finally{Bo()}}}function qc(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)qc(s)}const r=e.dep.subs;r!==e&&(e.prevSub=r,r&&(r.nextSub=e)),e.dep.subs=e}}const Tn=new WeakMap,lr=Symbol(""),Wi=Symbol(""),ms=Symbol("");function We(e,t,r){if(gt&&Se){let s=Tn.get(e);s||Tn.set(e,s=new Map);let n=s.get(r);n||(s.set(r,n=new Do),n.map=s,n.key=r),n.track()}}function $t(e,t,r,s,n,i){const o=Tn.get(e);if(!o){gs++;return}const a=c=>{c&&c.trigger()};if(Ao(),t==="clear")o.forEach(a);else{const c=oe(e),l=c&&Co(r);if(c&&r==="length"){const u=Number(s);o.forEach((f,d)=>{(d==="length"||d===ms||!It(d)&&d>=u)&&a(f)})}else switch((r!==void 0||o.has(void 0))&&a(o.get(r)),l&&a(o.get(ms)),t){case"add":c?l&&a(o.get("length")):(a(o.get(lr)),$r(e)&&a(o.get(Wi)));break;case"delete":c||(a(o.get(lr)),$r(e)&&a(o.get(Wi)));break;case"set":$r(e)&&a(o.get(lr));break}}Bo()}function pf(e,t){const r=Tn.get(e);return r&&r.get(t)}function br(e){const t=_e(e);return t===e?t:(We(t,"iterate",ms),ft(e)?t:t.map(Ge))}function Jn(e){return We(e=_e(e),"iterate",ms),e}const vf={__proto__:null,[Symbol.iterator](){return bi(this,Symbol.iterator,Ge)},concat(...e){return br(this).concat(...e.map(t=>oe(t)?br(t):t))},entries(){return bi(this,"entries",e=>(e[1]=Ge(e[1]),e))},every(e,t){return Rt(this,"every",e,t,void 0,arguments)},filter(e,t){return Rt(this,"filter",e,t,r=>r.map(Ge),arguments)},find(e,t){return Rt(this,"find",e,t,Ge,arguments)},findIndex(e,t){return Rt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Rt(this,"findLast",e,t,Ge,arguments)},findLastIndex(e,t){return Rt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Rt(this,"forEach",e,t,void 0,arguments)},includes(...e){return wi(this,"includes",e)},indexOf(...e){return wi(this,"indexOf",e)},join(e){return br(this).join(e)},lastIndexOf(...e){return wi(this,"lastIndexOf",e)},map(e,t){return Rt(this,"map",e,t,void 0,arguments)},pop(){return Qr(this,"pop")},push(...e){return Qr(this,"push",e)},reduce(e,...t){return la(this,"reduce",e,t)},reduceRight(e,...t){return la(this,"reduceRight",e,t)},shift(){return Qr(this,"shift")},some(e,t){return Rt(this,"some",e,t,void 0,arguments)},splice(...e){return Qr(this,"splice",e)},toReversed(){return br(this).toReversed()},toSorted(e){return br(this).toSorted(e)},toSpliced(...e){return br(this).toSpliced(...e)},unshift(...e){return Qr(this,"unshift",e)},values(){return bi(this,"values",Ge)}};function bi(e,t,r){const s=Jn(e),n=s[t]();return s!==e&&!ft(e)&&(n._next=n.next,n.next=()=>{const i=n._next();return i.value&&(i.value=r(i.value)),i}),n}const gf=Array.prototype;function Rt(e,t,r,s,n,i){const o=Jn(e),a=o!==e&&!ft(e),c=o[t];if(c!==gf[t]){const f=c.apply(e,i);return a?Ge(f):f}let l=r;o!==e&&(a?l=function(f,d){return r.call(this,Ge(f),d,e)}:r.length>2&&(l=function(f,d){return r.call(this,f,d,e)}));const u=c.call(o,l,s);return a&&n?n(u):u}function la(e,t,r,s){const n=Jn(e);let i=r;return n!==e&&(ft(e)?r.length>3&&(i=function(o,a,c){return r.call(this,o,a,c,e)}):i=function(o,a,c){return r.call(this,o,Ge(a),c,e)}),n[t](i,...s)}function wi(e,t,r){const s=_e(e);We(s,"iterate",ms);const n=s[t](...r);return(n===-1||n===!1)&&Ro(r[0])?(r[0]=_e(r[0]),s[t](...r)):n}function Qr(e,t,r=[]){Zt(),Ao();const s=_e(e)[t].apply(e,r);return Bo(),er(),s}const mf=bo("__proto__,__v_isRef,__isVue"),Mc=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(It));function _f(e){It(e)||(e=String(e));const t=_e(this);return We(t,"has",e),t.hasOwnProperty(e)}class zc{constructor(t=!1,r=!1){this._isReadonly=t,this._isShallow=r}get(t,r,s){if(r==="__v_skip")return t.__v_skip;const n=this._isReadonly,i=this._isShallow;if(r==="__v_isReactive")return!n;if(r==="__v_isReadonly")return n;if(r==="__v_isShallow")return i;if(r==="__v_raw")return s===(n?i?kf:Kc:i?Vc:Gc).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=oe(t);if(!n){let c;if(o&&(c=vf[r]))return c;if(r==="hasOwnProperty")return _f}const a=Reflect.get(t,r,Oe(t)?t:s);return(It(r)?Mc.has(r):mf(r))||(n||We(t,"get",r),i)?a:Oe(a)?o&&Co(r)?a:a.value:Fe(a)?n?Xc(a):Ss(a):a}}class Wc extends zc{constructor(t=!1){super(!1,t)}set(t,r,s,n){let i=t[r];if(!this._isShallow){const c=xr(i);if(!ft(s)&&!xr(s)&&(i=_e(i),s=_e(s)),!oe(t)&&Oe(i)&&!Oe(s))return c?!1:(i.value=s,!0)}const o=oe(t)&&Co(r)?Number(r)e,Os=e=>Reflect.getPrototypeOf(e);function Cf(e,t,r){return function(...s){const n=this.__v_raw,i=_e(n),o=$r(i),a=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,l=n[e](...s),u=r?Gi:t?Vi:Ge;return!t&&We(i,"iterate",c?Wi:lr),{next(){const{value:f,done:d}=l.next();return d?{value:f,done:d}:{value:a?[u(f[0]),u(f[1])]:u(f),done:d}},[Symbol.iterator](){return this}}}}function $s(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Af(e,t){const r={get(n){const i=this.__v_raw,o=_e(i),a=_e(n);e||(Xt(n,a)&&We(o,"get",n),We(o,"get",a));const{has:c}=Os(o),l=t?Gi:e?Vi:Ge;if(c.call(o,n))return l(i.get(n));if(c.call(o,a))return l(i.get(a));i!==o&&i.get(n)},get size(){const n=this.__v_raw;return!e&&We(_e(n),"iterate",lr),Reflect.get(n,"size",n)},has(n){const i=this.__v_raw,o=_e(i),a=_e(n);return e||(Xt(n,a)&&We(o,"has",n),We(o,"has",a)),n===a?i.has(n):i.has(n)||i.has(a)},forEach(n,i){const o=this,a=o.__v_raw,c=_e(a),l=t?Gi:e?Vi:Ge;return!e&&We(c,"iterate",lr),a.forEach((u,f)=>n.call(i,l(u),l(f),o))}};return Ne(r,e?{add:$s("add"),set:$s("set"),delete:$s("delete"),clear:$s("clear")}:{add(n){!t&&!ft(n)&&!xr(n)&&(n=_e(n));const i=_e(this);return Os(i).has.call(i,n)||(i.add(n),$t(i,"add",n,n)),this},set(n,i){!t&&!ft(i)&&!xr(i)&&(i=_e(i));const o=_e(this),{has:a,get:c}=Os(o);let l=a.call(o,n);l||(n=_e(n),l=a.call(o,n));const u=c.call(o,n);return o.set(n,i),l?Xt(i,u)&&$t(o,"set",n,i):$t(o,"add",n,i),this},delete(n){const i=_e(this),{has:o,get:a}=Os(i);let c=o.call(i,n);c||(n=_e(n),c=o.call(i,n)),a&&a.call(i,n);const l=i.delete(n);return c&&$t(i,"delete",n,void 0),l},clear(){const n=_e(this),i=n.size!==0,o=n.clear();return i&&$t(n,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(n=>{r[n]=Cf(n,e,t)}),r}function ko(e,t){const r=Af(e,t);return(s,n,i)=>n==="__v_isReactive"?!e:n==="__v_isReadonly"?e:n==="__v_raw"?s:Reflect.get(be(r,n)&&n in s?r:s,n,i)}const Bf={get:ko(!1,!1)},Sf={get:ko(!1,!0)},Df={get:ko(!0,!1)};const Gc=new WeakMap,Vc=new WeakMap,Kc=new WeakMap,kf=new WeakMap;function Ff(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Rf(e){return e.__v_skip||!Object.isExtensible(e)?0:Ff(rf(e))}function Ss(e){return xr(e)?e:Fo(e,!1,bf,Bf,Gc)}function Jc(e){return Fo(e,!1,Ef,Sf,Vc)}function Xc(e){return Fo(e,!0,wf,Df,Kc)}function Fo(e,t,r,s,n){if(!Fe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=n.get(e);if(i)return i;const o=Rf(e);if(o===0)return e;const a=new Proxy(e,o===2?s:r);return n.set(e,a),a}function Qt(e){return xr(e)?Qt(e.__v_raw):!!(e&&e.__v_isReactive)}function xr(e){return!!(e&&e.__v_isReadonly)}function ft(e){return!!(e&&e.__v_isShallow)}function Ro(e){return e?!!e.__v_raw:!1}function _e(e){const t=e&&e.__v_raw;return t?_e(t):e}function Xn(e){return!be(e,"__v_skip")&&Object.isExtensible(e)&&Dc(e,"__v_skip",!0),e}const Ge=e=>Fe(e)?Ss(e):e,Vi=e=>Fe(e)?Xc(e):e;function Oe(e){return e?e.__v_isRef===!0:!1}function ke(e){return Qc(e,!1)}function Tf(e){return Qc(e,!0)}function Qc(e,t){return Oe(e)?e:new Pf(e,t)}class Pf{constructor(t,r){this.dep=new Do,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=r?t:_e(t),this._value=r?t:Ge(t),this.__v_isShallow=r}get value(){return this.dep.track(),this._value}set value(t){const r=this._rawValue,s=this.__v_isShallow||ft(t)||xr(t);t=s?t:_e(t),Xt(t,r)&&(this._rawValue=t,this._value=s?t:Ge(t),this.dep.trigger())}}function Le(e){return Oe(e)?e.value:e}const Of={get:(e,t,r)=>t==="__v_raw"?e:Le(Reflect.get(e,t,r)),set:(e,t,r,s)=>{const n=e[t];return Oe(n)&&!Oe(r)?(n.value=r,!0):Reflect.set(e,t,r,s)}};function Yc(e){return Qt(e)?e:new Proxy(e,Of)}function $f(e){const t=oe(e)?new Array(e.length):{};for(const r in e)t[r]=If(e,r);return t}class Lf{constructor(t,r,s){this._object=t,this._key=r,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return pf(_e(this._object),this._key)}}function If(e,t,r){const s=e[t];return Oe(s)?s:new Lf(e,t,r)}class jf{constructor(t,r,s){this.fn=t,this.setter=r,this._value=void 0,this.dep=new Do(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=gs-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!r,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&Se!==this)return Ic(this,!0),!0}get value(){const t=this.dep.track();return Nc(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Uf(e,t,r=!1){let s,n;return ce(e)?s=e:(s=e.get,n=e.set),new jf(s,n,r)}const Ls={},Pn=new WeakMap;let ir;function Nf(e,t=!1,r=ir){if(r){let s=Pn.get(r);s||Pn.set(r,s=[]),s.push(e)}}function Hf(e,t,r=Ae){const{immediate:s,deep:n,once:i,scheduler:o,augmentJob:a,call:c}=r,l=_=>n?_:ft(_)||n===!1||n===0?Lt(_,1):Lt(_);let u,f,d,h,x=!1,g=!1;if(Oe(e)?(f=()=>e.value,x=ft(e)):Qt(e)?(f=()=>l(e),x=!0):oe(e)?(g=!0,x=e.some(_=>Qt(_)||ft(_)),f=()=>e.map(_=>{if(Oe(_))return _.value;if(Qt(_))return l(_);if(ce(_))return c?c(_,2):_()})):ce(e)?t?f=c?()=>c(e,2):e:f=()=>{if(d){Zt();try{d()}finally{er()}}const _=ir;ir=u;try{return c?c(e,3,[h]):e(h)}finally{ir=_}}:f=St,t&&n){const _=f,E=n===!0?1/0:n;f=()=>Lt(_(),E)}const p=Oc(),b=()=>{u.stop(),p&&p.active&&Eo(p.effects,u)};if(i&&t){const _=t;t=(...E)=>{_(...E),b()}}let v=g?new Array(e.length).fill(Ls):Ls;const m=_=>{if(!(!(u.flags&1)||!u.dirty&&!_))if(t){const E=u.run();if(n||x||(g?E.some((C,B)=>Xt(C,v[B])):Xt(E,v))){d&&d();const C=ir;ir=u;try{const B=[E,v===Ls?void 0:g&&v[0]===Ls?[]:v,h];c?c(t,3,B):t(...B),v=E}finally{ir=C}}}else u.run()};return a&&a(m),u=new $c(f),u.scheduler=o?()=>o(m,!1):m,h=_=>Nf(_,!1,u),d=u.onStop=()=>{const _=Pn.get(u);if(_){if(c)c(_,4);else for(const E of _)E();Pn.delete(u)}},t?s?m(!0):v=u.run():o?o(m.bind(null,!0),!0):u.run(),b.pause=u.pause.bind(u),b.resume=u.resume.bind(u),b.stop=b,b}function Lt(e,t=1/0,r){if(t<=0||!Fe(e)||e.__v_skip||(r=r||new Set,r.has(e)))return e;if(r.add(e),t--,Oe(e))Lt(e.value,t,r);else if(oe(e))for(let s=0;s{Lt(s,t,r)});else if(Sc(e)){for(const s in e)Lt(e[s],t,r);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&Lt(e[s],t,r)}return e}/** +* @vue/runtime-core v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Ds(e,t,r,s){try{return s?e(...s):e()}catch(n){Qn(n,t,r)}}function Dt(e,t,r,s){if(ce(e)){const n=Ds(e,t,r,s);return n&&Ac(n)&&n.catch(i=>{Qn(i,t,r)}),n}if(oe(e)){const n=[];for(let i=0;i>>1,n=Ze[s],i=_s(n);i=_s(r)?Ze.push(e):Ze.splice(Mf(t),0,e),e.flags|=1,el()}}function el(){On||(On=Zc.then(rl))}function zf(e){oe(e)?Lr.push(...e):Wt&&e.id===-1?Wt.splice(Rr+1,0,e):e.flags&1||(Lr.push(e),e.flags|=1),el()}function ua(e,t,r=At+1){for(;r_s(r)-_s(s));if(Lr.length=0,Wt){Wt.push(...t);return}for(Wt=t,Rr=0;Rre.id==null?e.flags&2?-1:1/0:e.id;function rl(e){try{for(At=0;At{s._d&&_a(-1);const i=$n(t);let o;try{o=e(...n)}finally{$n(i),s._d&&_a(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function ur(e,t){if(Ue===null)return e;const r=si(Ue),s=e.dirs||(e.dirs=[]);for(let n=0;ne.__isTeleport;function Oo(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Oo(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}/*! #__NO_SIDE_EFFECTS__ */function st(e,t){return ce(e)?Ne({name:e.name},t,{setup:e}):e}function nl(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Ln(e,t,r,s,n=!1){if(oe(e)){e.forEach((x,g)=>Ln(x,t&&(oe(t)?t[g]:t),r,s,n));return}if(Ir(s)&&!n){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&Ln(e,t,r,s.component.subTree);return}const i=s.shapeFlag&4?si(s.component):s.el,o=n?null:i,{i:a,r:c}=e,l=t&&t.r,u=a.refs===Ae?a.refs={}:a.refs,f=a.setupState,d=_e(f),h=f===Ae?()=>!1:x=>be(d,x);if(l!=null&&l!==c&&($e(l)?(u[l]=null,h(l)&&(f[l]=null)):Oe(l)&&(l.value=null)),ce(c))Ds(c,a,12,[o,u]);else{const x=$e(c),g=Oe(c);if(x||g){const p=()=>{if(e.f){const b=x?h(c)?f[c]:u[c]:c.value;n?oe(b)&&Eo(b,i):oe(b)?b.includes(i)||b.push(i):x?(u[c]=[i],h(c)&&(f[c]=u[c])):(c.value=[i],e.k&&(u[e.k]=c.value))}else x?(u[c]=o,h(c)&&(f[c]=o)):g&&(c.value=o,e.k&&(u[e.k]=o))};o?(p.id=-1,it(p,r)):p()}}}Vn().requestIdleCallback;Vn().cancelIdleCallback;const Ir=e=>!!e.type.__asyncLoader,il=e=>e.type.__isKeepAlive;function Vf(e,t){ol(e,"a",t)}function Kf(e,t){ol(e,"da",t)}function ol(e,t,r=Me){const s=e.__wdc||(e.__wdc=()=>{let n=r;for(;n;){if(n.isDeactivated)return;n=n.parent}return e()});if(Zn(t,s,r),r){let n=r.parent;for(;n&&n.parent;)il(n.parent.vnode)&&Jf(s,t,r,n),n=n.parent}}function Jf(e,t,r,s){const n=Zn(t,e,s,!0);al(()=>{Eo(s[t],n)},r)}function Zn(e,t,r=Me,s=!1){if(r){const n=r[e]||(r[e]=[]),i=t.__weh||(t.__weh=(...o)=>{Zt();const a=ks(r),c=Dt(t,r,e,o);return a(),er(),c});return s?n.unshift(i):n.push(i),i}}const jt=e=>(t,r=Me)=>{(!ws||e==="sp")&&Zn(e,(...s)=>t(...s),r)},Xf=jt("bm"),yt=jt("m"),Qf=jt("bu"),Yf=jt("u"),Zf=jt("bum"),al=jt("um"),ed=jt("sp"),td=jt("rtg"),rd=jt("rtc");function sd(e,t=Me){Zn("ec",e,t)}const nd="components";function id(e,t){return ad(nd,e,!0,t)||e}const od=Symbol.for("v-ndc");function ad(e,t,r=!0,s=!1){const n=Ue||Me;if(n){const i=n.type;{const a=Jd(i,!1);if(a&&(a===t||a===ht(t)||a===Gn(ht(t))))return i}const o=fa(n[e]||i[e],t)||fa(n.appContext[e],t);return!o&&s?i:o}}function fa(e,t){return e&&(e[t]||e[ht(t)]||e[Gn(ht(t))])}function ei(e,t,r,s){let n;const i=r,o=oe(e);if(o||$e(e)){const a=o&&Qt(e);let c=!1;a&&(c=!ft(e),e=Jn(e)),n=new Array(e.length);for(let l=0,u=e.length;lt(a,c,void 0,i));else{const a=Object.keys(e);n=new Array(a.length);for(let c=0,l=a.length;cbs(t)?!(t.type===Yt||t.type===Ve&&!cl(t.children)):!0)?e:null}const Ki=e=>e?Dl(e)?si(e):Ki(e.parent):null,ls=Ne(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ki(e.parent),$root:e=>Ki(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>$o(e),$forceUpdate:e=>e.f||(e.f=()=>{Po(e.update)}),$nextTick:e=>e.n||(e.n=To.bind(e.proxy)),$watch:e=>Fd.bind(e)}),Ei=(e,t)=>e!==Ae&&!e.__isScriptSetup&&be(e,t),ld={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:r,setupState:s,data:n,props:i,accessCache:o,type:a,appContext:c}=e;let l;if(t[0]!=="$"){const h=o[t];if(h!==void 0)switch(h){case 1:return s[t];case 2:return n[t];case 4:return r[t];case 3:return i[t]}else{if(Ei(s,t))return o[t]=1,s[t];if(n!==Ae&&be(n,t))return o[t]=2,n[t];if((l=e.propsOptions[0])&&be(l,t))return o[t]=3,i[t];if(r!==Ae&&be(r,t))return o[t]=4,r[t];Ji&&(o[t]=0)}}const u=ls[t];let f,d;if(u)return t==="$attrs"&&We(e.attrs,"get",""),u(e);if((f=a.__cssModules)&&(f=f[t]))return f;if(r!==Ae&&be(r,t))return o[t]=4,r[t];if(d=c.config.globalProperties,be(d,t))return d[t]},set({_:e},t,r){const{data:s,setupState:n,ctx:i}=e;return Ei(n,t)?(n[t]=r,!0):s!==Ae&&be(s,t)?(s[t]=r,!0):be(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:s,appContext:n,propsOptions:i}},o){let a;return!!r[o]||e!==Ae&&be(e,o)||Ei(t,o)||(a=i[0])&&be(a,o)||be(s,o)||be(ls,o)||be(n.config.globalProperties,o)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:be(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}};function da(e){return oe(e)?e.reduce((t,r)=>(t[r]=null,t),{}):e}let Ji=!0;function ud(e){const t=$o(e),r=e.proxy,s=e.ctx;Ji=!1,t.beforeCreate&&ha(t.beforeCreate,e,"bc");const{data:n,computed:i,methods:o,watch:a,provide:c,inject:l,created:u,beforeMount:f,mounted:d,beforeUpdate:h,updated:x,activated:g,deactivated:p,beforeDestroy:b,beforeUnmount:v,destroyed:m,unmounted:_,render:E,renderTracked:C,renderTriggered:B,errorCaptured:S,serverPrefetch:R,expose:A,inheritAttrs:D,components:$,directives:P,filters:Q}=t;if(l&&fd(l,s,null),o)for(const X in o){const ee=o[X];ce(ee)&&(s[X]=ee.bind(r))}if(n){const X=n.call(r,r);Fe(X)&&(e.data=Ss(X))}if(Ji=!0,i)for(const X in i){const ee=i[X],xe=ce(ee)?ee.bind(r,r):ce(ee.get)?ee.get.bind(r,r):St,he=!ce(ee)&&ce(ee.set)?ee.set.bind(r):St,L=tt({get:xe,set:he});Object.defineProperty(s,X,{enumerable:!0,configurable:!0,get:()=>L.value,set:I=>L.value=I})}if(a)for(const X in a)ll(a[X],s,r,X);if(c){const X=ce(c)?c.call(r):c;Reflect.ownKeys(X).forEach(ee=>{Ms(ee,X[ee])})}u&&ha(u,e,"c");function Y(X,ee){oe(ee)?ee.forEach(xe=>X(xe.bind(r))):ee&&X(ee.bind(r))}if(Y(Xf,f),Y(yt,d),Y(Qf,h),Y(Yf,x),Y(Vf,g),Y(Kf,p),Y(sd,S),Y(rd,C),Y(td,B),Y(Zf,v),Y(al,_),Y(ed,R),oe(A))if(A.length){const X=e.exposed||(e.exposed={});A.forEach(ee=>{Object.defineProperty(X,ee,{get:()=>r[ee],set:xe=>r[ee]=xe})})}else e.exposed||(e.exposed={});E&&e.render===St&&(e.render=E),D!=null&&(e.inheritAttrs=D),$&&(e.components=$),P&&(e.directives=P),R&&nl(e)}function fd(e,t,r=St){oe(e)&&(e=Xi(e));for(const s in e){const n=e[s];let i;Fe(n)?"default"in n?i=dt(n.from||s,n.default,!0):i=dt(n.from||s):i=dt(n),Oe(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function ha(e,t,r){Dt(oe(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,r)}function ll(e,t,r,s){let n=s.includes(".")?El(r,s):()=>r[s];if($e(e)){const i=t[e];ce(i)&&us(n,i)}else if(ce(e))us(n,e.bind(r));else if(Fe(e))if(oe(e))e.forEach(i=>ll(i,t,r,s));else{const i=ce(e.handler)?e.handler.bind(r):t[e.handler];ce(i)&&us(n,i,e)}}function $o(e){const t=e.type,{mixins:r,extends:s}=t,{mixins:n,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,a=i.get(t);let c;return a?c=a:!n.length&&!r&&!s?c=t:(c={},n.length&&n.forEach(l=>In(c,l,o,!0)),In(c,t,o)),Fe(t)&&i.set(t,c),c}function In(e,t,r,s=!1){const{mixins:n,extends:i}=t;i&&In(e,i,r,!0),n&&n.forEach(o=>In(e,o,r,!0));for(const o in t)if(!(s&&o==="expose")){const a=dd[o]||r&&r[o];e[o]=a?a(e[o],t[o]):t[o]}return e}const dd={data:xa,props:pa,emits:pa,methods:ns,computed:ns,beforeCreate:Qe,created:Qe,beforeMount:Qe,mounted:Qe,beforeUpdate:Qe,updated:Qe,beforeDestroy:Qe,beforeUnmount:Qe,destroyed:Qe,unmounted:Qe,activated:Qe,deactivated:Qe,errorCaptured:Qe,serverPrefetch:Qe,components:ns,directives:ns,watch:xd,provide:xa,inject:hd};function xa(e,t){return t?e?function(){return Ne(ce(e)?e.call(this,this):e,ce(t)?t.call(this,this):t)}:t:e}function hd(e,t){return ns(Xi(e),Xi(t))}function Xi(e){if(oe(e)){const t={};for(let r=0;r1)return r&&ce(t)?t.call(s&&s.proxy):t}}function gd(){return!!(Me||Ue||fr)}const fl={},dl=()=>Object.create(fl),hl=e=>Object.getPrototypeOf(e)===fl;function md(e,t,r,s=!1){const n={},i=dl();e.propsDefaults=Object.create(null),xl(e,t,n,i);for(const o in e.propsOptions[0])o in n||(n[o]=void 0);r?e.props=s?n:Jc(n):e.type.props?e.props=n:e.props=i,e.attrs=i}function _d(e,t,r,s){const{props:n,attrs:i,vnode:{patchFlag:o}}=e,a=_e(n),[c]=e.propsOptions;let l=!1;if((s||o>0)&&!(o&16)){if(o&8){const u=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[d,h]=pl(f,t,!0);Ne(o,d),h&&a.push(...h)};!r&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!i&&!c)return Fe(e)&&s.set(e,Or),Or;if(oe(i))for(let u=0;ue[0]==="_"||e==="$stable",Lo=e=>oe(e)?e.map(Bt):[Bt(e)],bd=(e,t,r)=>{if(t._n)return t;const s=Yn((...n)=>Lo(t(...n)),r);return s._c=!1,s},gl=(e,t,r)=>{const s=e._ctx;for(const n in e){if(vl(n))continue;const i=e[n];if(ce(i))t[n]=bd(n,i,s);else if(i!=null){const o=Lo(i);t[n]=()=>o}}},ml=(e,t)=>{const r=Lo(t);e.slots.default=()=>r},_l=(e,t,r)=>{for(const s in t)(r||s!=="_")&&(e[s]=t[s])},wd=(e,t,r)=>{const s=e.slots=dl();if(e.vnode.shapeFlag&32){const n=t._;n?(_l(s,t,r),r&&Dc(s,"_",n,!0)):gl(t,s)}else t&&ml(e,t)},Ed=(e,t,r)=>{const{vnode:s,slots:n}=e;let i=!0,o=Ae;if(s.shapeFlag&32){const a=t._;a?r&&a===1?i=!1:_l(n,t,r):(i=!t.$stable,gl(t,n)),o=t}else t&&(ml(e,t),o={default:1});if(i)for(const a in n)!vl(a)&&o[a]==null&&delete n[a]},it=Id;function Cd(e){return Ad(e)}function Ad(e,t){const r=Vn();r.__VUE__=!0;const{insert:s,remove:n,patchProp:i,createElement:o,createText:a,createComment:c,setText:l,setElementText:u,parentNode:f,nextSibling:d,setScopeId:h=St,insertStaticContent:x}=e,g=(y,w,k,H=null,O=null,q=null,K=void 0,G=null,W=!!w.dynamicChildren)=>{if(y===w)return;y&&!Yr(y,w)&&(H=T(y),I(y,O,q,!0),y=null),w.patchFlag===-2&&(W=!1,w.dynamicChildren=null);const{type:N,ref:re,shapeFlag:J}=w;switch(N){case ri:p(y,w,k,H);break;case Yt:b(y,w,k,H);break;case Bi:y==null&&v(w,k,H,K);break;case Ve:$(y,w,k,H,O,q,K,G,W);break;default:J&1?E(y,w,k,H,O,q,K,G,W):J&6?P(y,w,k,H,O,q,K,G,W):(J&64||J&128)&&N.process(y,w,k,H,O,q,K,G,W,Z)}re!=null&&O&&Ln(re,y&&y.ref,q,w||y,!w)},p=(y,w,k,H)=>{if(y==null)s(w.el=a(w.children),k,H);else{const O=w.el=y.el;w.children!==y.children&&l(O,w.children)}},b=(y,w,k,H)=>{y==null?s(w.el=c(w.children||""),k,H):w.el=y.el},v=(y,w,k,H)=>{[y.el,y.anchor]=x(y.children,w,k,H,y.el,y.anchor)},m=({el:y,anchor:w},k,H)=>{let O;for(;y&&y!==w;)O=d(y),s(y,k,H),y=O;s(w,k,H)},_=({el:y,anchor:w})=>{let k;for(;y&&y!==w;)k=d(y),n(y),y=k;n(w)},E=(y,w,k,H,O,q,K,G,W)=>{w.type==="svg"?K="svg":w.type==="math"&&(K="mathml"),y==null?C(w,k,H,O,q,K,G,W):R(y,w,O,q,K,G,W)},C=(y,w,k,H,O,q,K,G)=>{let W,N;const{props:re,shapeFlag:J,transition:se,dirs:ne}=y;if(W=y.el=o(y.type,q,re&&re.is,re),J&8?u(W,y.children):J&16&&S(y.children,W,null,H,O,Ci(y,q),K,G),ne&&rr(y,null,H,"created"),B(W,y,y.scopeId,K,H),re){for(const Ce in re)Ce!=="value"&&!os(Ce)&&i(W,Ce,null,re[Ce],q,H);"value"in re&&i(W,"value",null,re.value,q),(N=re.onVnodeBeforeMount)&&wt(N,H,y)}ne&&rr(y,null,H,"beforeMount");const ue=Bd(O,se);ue&&se.beforeEnter(W),s(W,w,k),((N=re&&re.onVnodeMounted)||ue||ne)&&it(()=>{N&&wt(N,H,y),ue&&se.enter(W),ne&&rr(y,null,H,"mounted")},O)},B=(y,w,k,H,O)=>{if(k&&h(y,k),H)for(let q=0;q{for(let N=W;N{const G=w.el=y.el;let{patchFlag:W,dynamicChildren:N,dirs:re}=w;W|=y.patchFlag&16;const J=y.props||Ae,se=w.props||Ae;let ne;if(k&&sr(k,!1),(ne=se.onVnodeBeforeUpdate)&&wt(ne,k,w,y),re&&rr(w,y,k,"beforeUpdate"),k&&sr(k,!0),(J.innerHTML&&se.innerHTML==null||J.textContent&&se.textContent==null)&&u(G,""),N?A(y.dynamicChildren,N,G,k,H,Ci(w,O),q):K||ee(y,w,G,null,k,H,Ci(w,O),q,!1),W>0){if(W&16)D(G,J,se,k,O);else if(W&2&&J.class!==se.class&&i(G,"class",null,se.class,O),W&4&&i(G,"style",J.style,se.style,O),W&8){const ue=w.dynamicProps;for(let Ce=0;Ce{ne&&wt(ne,k,w,y),re&&rr(w,y,k,"updated")},H)},A=(y,w,k,H,O,q,K)=>{for(let G=0;G{if(w!==k){if(w!==Ae)for(const q in w)!os(q)&&!(q in k)&&i(y,q,w[q],null,O,H);for(const q in k){if(os(q))continue;const K=k[q],G=w[q];K!==G&&q!=="value"&&i(y,q,G,K,O,H)}"value"in k&&i(y,"value",w.value,k.value,O)}},$=(y,w,k,H,O,q,K,G,W)=>{const N=w.el=y?y.el:a(""),re=w.anchor=y?y.anchor:a("");let{patchFlag:J,dynamicChildren:se,slotScopeIds:ne}=w;ne&&(G=G?G.concat(ne):ne),y==null?(s(N,k,H),s(re,k,H),S(w.children||[],k,re,O,q,K,G,W)):J>0&&J&64&&se&&y.dynamicChildren?(A(y.dynamicChildren,se,k,O,q,K,G),(w.key!=null||O&&w===O.subTree)&&yl(y,w,!0)):ee(y,w,k,re,O,q,K,G,W)},P=(y,w,k,H,O,q,K,G,W)=>{w.slotScopeIds=G,y==null?w.shapeFlag&512?O.ctx.activate(w,k,H,K,W):Q(w,k,H,O,q,K,W):te(y,w,W)},Q=(y,w,k,H,O,q,K)=>{const G=y.component=zd(y,H,O);if(il(y)&&(G.ctx.renderer=Z),Wd(G,!1,K),G.asyncDep){if(O&&O.registerDep(G,Y,K),!y.el){const W=G.subTree=Te(Yt);b(null,W,w,k)}}else Y(G,y,w,k,O,q,K)},te=(y,w,k)=>{const H=w.component=y.component;if($d(y,w,k))if(H.asyncDep&&!H.asyncResolved){X(H,w,k);return}else H.next=w,H.update();else w.el=y.el,H.vnode=w},Y=(y,w,k,H,O,q,K)=>{const G=()=>{if(y.isMounted){let{next:J,bu:se,u:ne,parent:ue,vnode:Ce}=y;{const Je=bl(y);if(Je){J&&(J.el=Ce.el,X(y,J,K)),Je.asyncDep.then(()=>{y.isUnmounted||G()});return}}let me=J,ze;sr(y,!1),J?(J.el=Ce.el,X(y,J,K)):J=Ce,se&&qs(se),(ze=J.props&&J.props.onVnodeBeforeUpdate)&&wt(ze,ue,J,Ce),sr(y,!0);const Re=Ai(y),qe=y.subTree;y.subTree=Re,g(qe,Re,f(qe.el),T(qe),y,O,q),J.el=Re.el,me===null&&Ld(y,Re.el),ne&&it(ne,O),(ze=J.props&&J.props.onVnodeUpdated)&&it(()=>wt(ze,ue,J,Ce),O)}else{let J;const{el:se,props:ne}=w,{bm:ue,m:Ce,parent:me,root:ze,type:Re}=y,qe=Ir(w);if(sr(y,!1),ue&&qs(ue),!qe&&(J=ne&&ne.onVnodeBeforeMount)&&wt(J,me,w),sr(y,!0),se&&Ee){const Je=()=>{y.subTree=Ai(y),Ee(se,y.subTree,y,O,null)};qe&&Re.__asyncHydrate?Re.__asyncHydrate(se,y,Je):Je()}else{ze.ce&&ze.ce._injectChildStyle(Re);const Je=y.subTree=Ai(y);g(null,Je,k,H,y,O,q),w.el=Je.el}if(Ce&&it(Ce,O),!qe&&(J=ne&&ne.onVnodeMounted)){const Je=w;it(()=>wt(J,me,Je),O)}(w.shapeFlag&256||me&&Ir(me.vnode)&&me.vnode.shapeFlag&256)&&y.a&&it(y.a,O),y.isMounted=!0,w=k=H=null}};y.scope.on();const W=y.effect=new $c(G);y.scope.off();const N=y.update=W.run.bind(W),re=y.job=W.runIfDirty.bind(W);re.i=y,re.id=y.uid,W.scheduler=()=>Po(re),sr(y,!0),N()},X=(y,w,k)=>{w.component=y;const H=y.vnode.props;y.vnode=w,y.next=null,_d(y,w.props,H,k),Ed(y,w.children,k),Zt(),ua(y),er()},ee=(y,w,k,H,O,q,K,G,W=!1)=>{const N=y&&y.children,re=y?y.shapeFlag:0,J=w.children,{patchFlag:se,shapeFlag:ne}=w;if(se>0){if(se&128){he(N,J,k,H,O,q,K,G,W);return}else if(se&256){xe(N,J,k,H,O,q,K,G,W);return}}ne&8?(re&16&&de(N,O,q),J!==N&&u(k,J)):re&16?ne&16?he(N,J,k,H,O,q,K,G,W):de(N,O,q,!0):(re&8&&u(k,""),ne&16&&S(J,k,H,O,q,K,G,W))},xe=(y,w,k,H,O,q,K,G,W)=>{y=y||Or,w=w||Or;const N=y.length,re=w.length,J=Math.min(N,re);let se;for(se=0;sere?de(y,O,q,!0,!1,J):S(w,k,H,O,q,K,G,W,J)},he=(y,w,k,H,O,q,K,G,W)=>{let N=0;const re=w.length;let J=y.length-1,se=re-1;for(;N<=J&&N<=se;){const ne=y[N],ue=w[N]=W?Gt(w[N]):Bt(w[N]);if(Yr(ne,ue))g(ne,ue,k,null,O,q,K,G,W);else break;N++}for(;N<=J&&N<=se;){const ne=y[J],ue=w[se]=W?Gt(w[se]):Bt(w[se]);if(Yr(ne,ue))g(ne,ue,k,null,O,q,K,G,W);else break;J--,se--}if(N>J){if(N<=se){const ne=se+1,ue=nese)for(;N<=J;)I(y[N],O,q,!0),N++;else{const ne=N,ue=N,Ce=new Map;for(N=ue;N<=se;N++){const Xe=w[N]=W?Gt(w[N]):Bt(w[N]);Xe.key!=null&&Ce.set(Xe.key,N)}let me,ze=0;const Re=se-ue+1;let qe=!1,Je=0;const Ut=new Array(Re);for(N=0;N=Re){I(Xe,O,q,!0);continue}let ut;if(Xe.key!=null)ut=Ce.get(Xe.key);else for(me=ue;me<=se;me++)if(Ut[me-ue]===0&&Yr(Xe,w[me])){ut=me;break}ut===void 0?I(Xe,O,q,!0):(Ut[ut-ue]=N+1,ut>=Je?Je=ut:qe=!0,g(Xe,w[ut],k,null,O,q,K,G,W),ze++)}const Kr=qe?Sd(Ut):Or;for(me=Kr.length-1,N=Re-1;N>=0;N--){const Xe=ue+N,ut=w[Xe],Jr=Xe+1{const{el:q,type:K,transition:G,children:W,shapeFlag:N}=y;if(N&6){L(y.component.subTree,w,k,H);return}if(N&128){y.suspense.move(w,k,H);return}if(N&64){K.move(y,w,k,Z);return}if(K===Ve){s(q,w,k);for(let J=0;JG.enter(q),O);else{const{leave:J,delayLeave:se,afterLeave:ne}=G,ue=()=>s(q,w,k),Ce=()=>{J(q,()=>{ue(),ne&&ne()})};se?se(q,ue,Ce):Ce()}else s(q,w,k)},I=(y,w,k,H=!1,O=!1)=>{const{type:q,props:K,ref:G,children:W,dynamicChildren:N,shapeFlag:re,patchFlag:J,dirs:se,cacheIndex:ne}=y;if(J===-2&&(O=!1),G!=null&&Ln(G,null,k,y,!0),ne!=null&&(w.renderCache[ne]=void 0),re&256){w.ctx.deactivate(y);return}const ue=re&1&&se,Ce=!Ir(y);let me;if(Ce&&(me=K&&K.onVnodeBeforeUnmount)&&wt(me,w,y),re&6)we(y.component,k,H);else{if(re&128){y.suspense.unmount(k,H);return}ue&&rr(y,null,w,"beforeUnmount"),re&64?y.type.remove(y,w,k,Z,H):N&&!N.hasOnce&&(q!==Ve||J>0&&J&64)?de(N,w,k,!1,!0):(q===Ve&&J&384||!O&&re&16)&&de(W,w,k),H&&M(y)}(Ce&&(me=K&&K.onVnodeUnmounted)||ue)&&it(()=>{me&&wt(me,w,y),ue&&rr(y,null,w,"unmounted")},k)},M=y=>{const{type:w,el:k,anchor:H,transition:O}=y;if(w===Ve){j(k,H);return}if(w===Bi){_(y);return}const q=()=>{n(k),O&&!O.persisted&&O.afterLeave&&O.afterLeave()};if(y.shapeFlag&1&&O&&!O.persisted){const{leave:K,delayLeave:G}=O,W=()=>K(k,q);G?G(y.el,q,W):W()}else q()},j=(y,w)=>{let k;for(;y!==w;)k=d(y),n(y),y=k;n(w)},we=(y,w,k)=>{const{bum:H,scope:O,job:q,subTree:K,um:G,m:W,a:N}=y;ga(W),ga(N),H&&qs(H),O.stop(),q&&(q.flags|=8,I(K,y,w,k)),G&&it(G,w),it(()=>{y.isUnmounted=!0},w),w&&w.pendingBranch&&!w.isUnmounted&&y.asyncDep&&!y.asyncResolved&&y.suspenseId===w.pendingId&&(w.deps--,w.deps===0&&w.resolve())},de=(y,w,k,H=!1,O=!1,q=0)=>{for(let K=q;K{if(y.shapeFlag&6)return T(y.component.subTree);if(y.shapeFlag&128)return y.suspense.next();const w=d(y.anchor||y.el),k=w&&w[Wf];return k?d(k):w};let U=!1;const V=(y,w,k)=>{y==null?w._vnode&&I(w._vnode,null,null,!0):g(w._vnode||null,y,w,null,null,null,k),w._vnode=y,U||(U=!0,ua(),tl(),U=!1)},Z={p:g,um:I,m:L,r:M,mt:Q,mc:S,pc:ee,pbc:A,n:T,o:e};let ge,Ee;return{render:V,hydrate:ge,createApp:vd(V,ge)}}function Ci({type:e,props:t},r){return r==="svg"&&e==="foreignObject"||r==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:r}function sr({effect:e,job:t},r){r?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Bd(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function yl(e,t,r=!1){const s=e.children,n=t.children;if(oe(s)&&oe(n))for(let i=0;i>1,e[r[a]]0&&(t[s]=r[i-1]),r[i]=s)}}for(i=r.length,o=r[i-1];i-- >0;)r[i]=o,o=t[o];return r}function bl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:bl(t)}function ga(e){if(e)for(let t=0;tdt(Dd);function us(e,t,r){return wl(e,t,r)}function wl(e,t,r=Ae){const{immediate:s,deep:n,flush:i,once:o}=r,a=Ne({},r),c=t&&s||!t&&i!=="post";let l;if(ws){if(i==="sync"){const h=kd();l=h.__watcherHandles||(h.__watcherHandles=[])}else if(!c){const h=()=>{};return h.stop=St,h.resume=St,h.pause=St,h}}const u=Me;a.call=(h,x,g)=>Dt(h,u,x,g);let f=!1;i==="post"?a.scheduler=h=>{it(h,u&&u.suspense)}:i!=="sync"&&(f=!0,a.scheduler=(h,x)=>{x?h():Po(h)}),a.augmentJob=h=>{t&&(h.flags|=4),f&&(h.flags|=2,u&&(h.id=u.uid,h.i=u))};const d=Hf(e,t,a);return ws&&(l?l.push(d):c&&d()),d}function Fd(e,t,r){const s=this.proxy,n=$e(e)?e.includes(".")?El(s,e):()=>s[e]:e.bind(s,s);let i;ce(t)?i=t:(i=t.handler,r=t);const o=ks(this),a=wl(n,i.bind(s),r);return o(),a}function El(e,t){const r=t.split(".");return()=>{let s=e;for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ht(t)}Modifiers`]||e[`${vr(t)}Modifiers`];function Td(e,t,...r){if(e.isUnmounted)return;const s=e.vnode.props||Ae;let n=r;const i=t.startsWith("update:"),o=i&&Rd(s,t.slice(7));o&&(o.trim&&(n=r.map(u=>$e(u)?u.trim():u)),o.number&&(n=r.map(Mi)));let a,c=s[a=mi(t)]||s[a=mi(ht(t))];!c&&i&&(c=s[a=mi(vr(t))]),c&&Dt(c,e,6,n);const l=s[a+"Once"];if(l){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Dt(l,e,6,n)}}function Cl(e,t,r=!1){const s=t.emitsCache,n=s.get(e);if(n!==void 0)return n;const i=e.emits;let o={},a=!1;if(!ce(e)){const c=l=>{const u=Cl(l,t,!0);u&&(a=!0,Ne(o,u))};!r&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!a?(Fe(e)&&s.set(e,null),null):(oe(i)?i.forEach(c=>o[c]=null):Ne(o,i),Fe(e)&&s.set(e,o),o)}function ti(e,t){return!e||!Mn(t)?!1:(t=t.slice(2).replace(/Once$/,""),be(e,t[0].toLowerCase()+t.slice(1))||be(e,vr(t))||be(e,t))}function Ai(e){const{type:t,vnode:r,proxy:s,withProxy:n,propsOptions:[i],slots:o,attrs:a,emit:c,render:l,renderCache:u,props:f,data:d,setupState:h,ctx:x,inheritAttrs:g}=e,p=$n(e);let b,v;try{if(r.shapeFlag&4){const _=n||s,E=_;b=Bt(l.call(E,_,u,f,h,d,x)),v=a}else{const _=t;b=Bt(_.length>1?_(f,{attrs:a,slots:o,emit:c}):_(f,null)),v=t.props?a:Pd(a)}}catch(_){fs.length=0,Qn(_,e,1),b=Te(Yt)}let m=b;if(v&&g!==!1){const _=Object.keys(v),{shapeFlag:E}=m;_.length&&E&7&&(i&&_.some(wo)&&(v=Od(v,i)),m=Ur(m,v,!1,!0))}return r.dirs&&(m=Ur(m,null,!1,!0),m.dirs=m.dirs?m.dirs.concat(r.dirs):r.dirs),r.transition&&Oo(m,r.transition),b=m,$n(p),b}const Pd=e=>{let t;for(const r in e)(r==="class"||r==="style"||Mn(r))&&((t||(t={}))[r]=e[r]);return t},Od=(e,t)=>{const r={};for(const s in e)(!wo(s)||!(s.slice(9)in t))&&(r[s]=e[s]);return r};function $d(e,t,r){const{props:s,children:n,component:i}=e,{props:o,children:a,patchFlag:c}=t,l=i.emitsOptions;if(t.dirs||t.transition)return!0;if(r&&c>=0){if(c&1024)return!0;if(c&16)return s?ma(s,o,l):!!o;if(c&8){const u=t.dynamicProps;for(let f=0;fe.__isSuspense;function Id(e,t){t&&t.pendingBranch?oe(e)?t.effects.push(...e):t.effects.push(e):zf(e)}const Ve=Symbol.for("v-fgt"),ri=Symbol.for("v-txt"),Yt=Symbol.for("v-cmt"),Bi=Symbol.for("v-stc"),fs=[];let at=null;function ie(e=!1){fs.push(at=e?null:[])}function jd(){fs.pop(),at=fs[fs.length-1]||null}let ys=1;function _a(e,t=!1){ys+=e,e<0&&at&&t&&(at.hasOnce=!0)}function Bl(e){return e.dynamicChildren=ys>0?at||Or:null,jd(),ys>0&&at&&at.push(e),e}function ae(e,t,r,s,n,i){return Bl(z(e,t,r,s,n,i,!0))}function jn(e,t,r,s,n){return Bl(Te(e,t,r,s,n,!0))}function bs(e){return e?e.__v_isVNode===!0:!1}function Yr(e,t){return e.type===t.type&&e.key===t.key}const Sl=({key:e})=>e??null,zs=({ref:e,ref_key:t,ref_for:r})=>(typeof e=="number"&&(e=""+e),e!=null?$e(e)||Oe(e)||ce(e)?{i:Ue,r:e,k:t,f:!!r}:e:null);function z(e,t=null,r=null,s=0,n=null,i=e===Ve?0:1,o=!1,a=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Sl(t),ref:t&&zs(t),scopeId:sl,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:Ue};return a?(Io(c,r),i&128&&e.normalize(c)):r&&(c.shapeFlag|=$e(r)?8:16),ys>0&&!o&&at&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&at.push(c),c}const Te=Ud;function Ud(e,t=null,r=null,s=0,n=null,i=!1){if((!e||e===od)&&(e=Yt),bs(e)){const a=Ur(e,t,!0);return r&&Io(a,r),ys>0&&!i&&at&&(a.shapeFlag&6?at[at.indexOf(e)]=a:at.push(a)),a.patchFlag=-2,a}if(Xd(e)&&(e=e.__vccOpts),t){t=Nd(t);let{class:a,style:c}=t;a&&!$e(a)&&(t.class=zr(a)),Fe(c)&&(Ro(c)&&!oe(c)&&(c=Ne({},c)),t.style=Kn(c))}const o=$e(e)?1:Al(e)?128:Gf(e)?64:Fe(e)?4:ce(e)?2:0;return z(e,t,r,s,n,o,i,!0)}function Nd(e){return e?Ro(e)||hl(e)?Ne({},e):e:null}function Ur(e,t,r=!1,s=!1){const{props:n,ref:i,patchFlag:o,children:a,transition:c}=e,l=t?Hd(n||{},t):n,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Sl(l),ref:t&&t.ref?r&&i?oe(i)?i.concat(zs(t)):[i,zs(t)]:zs(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ve?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ur(e.ssContent),ssFallback:e.ssFallback&&Ur(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&s&&Oo(u,c.clone(u)),u}function vt(e=" ",t=0){return Te(ri,null,e,t)}function pt(e="",t=!1){return t?(ie(),jn(Yt,null,e)):Te(Yt,null,e)}function Bt(e){return e==null||typeof e=="boolean"?Te(Yt):oe(e)?Te(Ve,null,e.slice()):bs(e)?Gt(e):Te(ri,null,String(e))}function Gt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ur(e)}function Io(e,t){let r=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(oe(t))r=16;else if(typeof t=="object")if(s&65){const n=t.default;n&&(n._c&&(n._d=!1),Io(e,n()),n._c&&(n._d=!0));return}else{r=32;const n=t._;!n&&!hl(t)?t._ctx=Ue:n===3&&Ue&&(Ue.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ce(t)?(t={default:t,_ctx:Ue},r=32):(t=String(t),s&64?(r=16,t=[vt(t)]):r=8);e.children=t,e.shapeFlag|=r}function Hd(...e){const t={};for(let r=0;r{let n;return(n=e[r])||(n=e[r]=[]),n.push(s),i=>{n.length>1?n.forEach(o=>o(i)):n[0](i)}};Un=t("__VUE_INSTANCE_SETTERS__",r=>Me=r),Yi=t("__VUE_SSR_SETTERS__",r=>ws=r)}const ks=e=>{const t=Me;return Un(e),e.scope.on(),()=>{e.scope.off(),Un(t)}},ya=()=>{Me&&Me.scope.off(),Un(null)};function Dl(e){return e.vnode.shapeFlag&4}let ws=!1;function Wd(e,t=!1,r=!1){t&&Yi(t);const{props:s,children:n}=e.vnode,i=Dl(e);md(e,s,i,t),wd(e,n,r);const o=i?Gd(e,t):void 0;return t&&Yi(!1),o}function Gd(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ld);const{setup:s}=r;if(s){Zt();const n=e.setupContext=s.length>1?Kd(e):null,i=ks(e),o=Ds(s,e,0,[e.props,n]),a=Ac(o);if(er(),i(),(a||e.sp)&&!Ir(e)&&nl(e),a){if(o.then(ya,ya),t)return o.then(c=>{ba(e,c,t)}).catch(c=>{Qn(c,e,0)});e.asyncDep=o}else ba(e,o,t)}else kl(e,t)}function ba(e,t,r){ce(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Fe(t)&&(e.setupState=Yc(t)),kl(e,r)}let wa;function kl(e,t,r){const s=e.type;if(!e.render){if(!t&&wa&&!s.render){const n=s.template||$o(e).template;if(n){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:a,compilerOptions:c}=s,l=Ne(Ne({isCustomElement:i,delimiters:a},o),c);s.render=wa(n,l)}}e.render=s.render||St}{const n=ks(e);Zt();try{ud(e)}finally{er(),n()}}}const Vd={get(e,t){return We(e,"get",""),e[t]}};function Kd(e){const t=r=>{e.exposed=r||{}};return{attrs:new Proxy(e.attrs,Vd),slots:e.slots,emit:e.emit,expose:t}}function si(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Yc(Xn(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in ls)return ls[r](e)},has(t,r){return r in t||r in ls}})):e.proxy}function Jd(e,t=!0){return ce(e)?e.displayName||e.name:e.name||t&&e.__name}function Xd(e){return ce(e)&&"__vccOpts"in e}const tt=(e,t)=>Uf(e,t,ws);function Fl(e,t,r){const s=arguments.length;return s===2?Fe(t)&&!oe(t)?bs(t)?Te(e,null,[t]):Te(e,t):Te(e,null,t):(s>3?r=Array.prototype.slice.call(arguments,2):s===3&&bs(r)&&(r=[r]),Te(e,t,r))}const Qd="3.5.13";/** +* @vue/runtime-dom v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Zi;const Ea=typeof window<"u"&&window.trustedTypes;if(Ea)try{Zi=Ea.createPolicy("vue",{createHTML:e=>e})}catch{}const Rl=Zi?e=>Zi.createHTML(e):e=>e,Yd="http://www.w3.org/2000/svg",Zd="http://www.w3.org/1998/Math/MathML",Pt=typeof document<"u"?document:null,Ca=Pt&&Pt.createElement("template"),eh={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,s)=>{const n=t==="svg"?Pt.createElementNS(Yd,e):t==="mathml"?Pt.createElementNS(Zd,e):r?Pt.createElement(e,{is:r}):Pt.createElement(e);return e==="select"&&s&&s.multiple!=null&&n.setAttribute("multiple",s.multiple),n},createText:e=>Pt.createTextNode(e),createComment:e=>Pt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Pt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,s,n,i){const o=r?r.previousSibling:t.lastChild;if(n&&(n===i||n.nextSibling))for(;t.insertBefore(n.cloneNode(!0),r),!(n===i||!(n=n.nextSibling)););else{Ca.innerHTML=Rl(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const a=Ca.content;if(s==="svg"||s==="mathml"){const c=a.firstChild;for(;c.firstChild;)a.appendChild(c.firstChild);a.removeChild(c)}t.insertBefore(a,r)}return[o?o.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}},th=Symbol("_vtc");function rh(e,t,r){const s=e[th];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}const Aa=Symbol("_vod"),sh=Symbol("_vsh"),nh=Symbol(""),ih=/(^|;)\s*display\s*:/;function oh(e,t,r){const s=e.style,n=$e(r);let i=!1;if(r&&!n){if(t)if($e(t))for(const o of t.split(";")){const a=o.slice(0,o.indexOf(":")).trim();r[a]==null&&Ws(s,a,"")}else for(const o in t)r[o]==null&&Ws(s,o,"");for(const o in r)o==="display"&&(i=!0),Ws(s,o,r[o])}else if(n){if(t!==r){const o=s[nh];o&&(r+=";"+o),s.cssText=r,i=ih.test(r)}}else t&&e.removeAttribute("style");Aa in e&&(e[Aa]=i?s.display:"",e[sh]&&(s.display="none"))}const Ba=/\s*!important$/;function Ws(e,t,r){if(oe(r))r.forEach(s=>Ws(e,t,s));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const s=ah(e,t);Ba.test(r)?e.setProperty(vr(s),r.replace(Ba,""),"important"):e[s]=r}}const Sa=["Webkit","Moz","ms"],Si={};function ah(e,t){const r=Si[t];if(r)return r;let s=ht(t);if(s!=="filter"&&s in e)return Si[t]=s;s=Gn(s);for(let n=0;nDi||(fh.then(()=>Di=0),Di=Date.now());function hh(e,t){const r=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=r.attached)return;Dt(xh(s,r.value),t,5,[s])};return r.value=e,r.attached=dh(),r}function xh(e,t){if(oe(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(s=>n=>!n._stopped&&s&&s(n))}else return t}const Pa=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ph=(e,t,r,s,n,i)=>{const o=n==="svg";t==="class"?rh(e,s,o):t==="style"?oh(e,r,s):Mn(t)?wo(t)||lh(e,t,r,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):vh(e,t,s,o))?(Fa(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ka(e,t,s,o,i,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!$e(s))?Fa(e,ht(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),ka(e,t,s,o))};function vh(e,t,r,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Pa(t)&&ce(r));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const n=e.tagName;if(n==="IMG"||n==="VIDEO"||n==="CANVAS"||n==="SOURCE")return!1}return Pa(t)&&$e(r)?!1:t in e}const Oa=e=>{const t=e.props["onUpdate:modelValue"]||!1;return oe(t)?r=>qs(t,r):t};function gh(e){e.target.composing=!0}function $a(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const ki=Symbol("_assign"),dr={created(e,{modifiers:{lazy:t,trim:r,number:s}},n){e[ki]=Oa(n);const i=s||n.props&&n.props.type==="number";Tr(e,t?"change":"input",o=>{if(o.target.composing)return;let a=e.value;r&&(a=a.trim()),i&&(a=Mi(a)),e[ki](a)}),r&&Tr(e,"change",()=>{e.value=e.value.trim()}),t||(Tr(e,"compositionstart",gh),Tr(e,"compositionend",$a),Tr(e,"change",$a))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:r,modifiers:{lazy:s,trim:n,number:i}},o){if(e[ki]=Oa(o),e.composing)return;const a=(i||e.type==="number")&&!/^0\d/.test(e.value)?Mi(e.value):e.value,c=t??"";a!==c&&(document.activeElement===e&&e.type!=="range"&&(s&&t===r||n&&e.value.trim()===c)||(e.value=c))}},mh=["ctrl","shift","alt","meta"],_h={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>mh.some(r=>e[`${r}Key`]&&!t.includes(r))},ni=(e,t)=>{const r=e._withMods||(e._withMods={}),s=t.join(".");return r[s]||(r[s]=(n,...i)=>{for(let o=0;o{const t=bh().createApp(...e),{mount:r}=t;return t.mount=s=>{const n=Ch(s);if(!n)return;const i=t._component;!ce(i)&&!i.render&&!i.template&&(i.template=n.innerHTML),n.nodeType===1&&(n.textContent="");const o=r(n,!1,Eh(n));return n instanceof Element&&(n.removeAttribute("v-cloak"),n.setAttribute("data-v-app","")),o},t};function Eh(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ch(e){return $e(e)?document.querySelector(e):e}var Ah=!1;/*! + * pinia v2.3.0 + * (c) 2024 Eduardo San Martin Morote + * @license MIT + */let Tl;const ii=e=>Tl=e,Pl=Symbol();function eo(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var ds;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(ds||(ds={}));function Bh(){const e=Pc(!0),t=e.run(()=>ke({}));let r=[],s=[];const n=Xn({install(i){ii(n),n._a=i,i.provide(Pl,n),i.config.globalProperties.$pinia=n,s.forEach(o=>r.push(o)),s=[]},use(i){return!this._a&&!Ah?s.push(i):r.push(i),this},_p:r,_a:null,_e:e,_s:new Map,state:t});return n}const Ol=()=>{};function Ia(e,t,r,s=Ol){e.push(t);const n=()=>{const i=e.indexOf(t);i>-1&&(e.splice(i,1),s())};return!r&&Oc()&&df(n),n}function wr(e,...t){e.slice().forEach(r=>{r(...t)})}const Sh=e=>e(),ja=Symbol(),Fi=Symbol();function to(e,t){e instanceof Map&&t instanceof Map?t.forEach((r,s)=>e.set(s,r)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const r in t){if(!t.hasOwnProperty(r))continue;const s=t[r],n=e[r];eo(n)&&eo(s)&&e.hasOwnProperty(r)&&!Oe(s)&&!Qt(s)?e[r]=to(n,s):e[r]=s}return e}const Dh=Symbol();function kh(e){return!eo(e)||!e.hasOwnProperty(Dh)}const{assign:qt}=Object;function Fh(e){return!!(Oe(e)&&e.effect)}function Rh(e,t,r,s){const{state:n,actions:i,getters:o}=t,a=r.state.value[e];let c;function l(){a||(r.state.value[e]=n?n():{});const u=$f(r.state.value[e]);return qt(u,i,Object.keys(o||{}).reduce((f,d)=>(f[d]=Xn(tt(()=>{ii(r);const h=r._s.get(e);return o[d].call(h,h)})),f),{}))}return c=$l(e,l,t,r,s,!0),c}function $l(e,t,r={},s,n,i){let o;const a=qt({actions:{}},r),c={deep:!0};let l,u,f=[],d=[],h;const x=s.state.value[e];!i&&!x&&(s.state.value[e]={}),ke({});let g;function p(S){let R;l=u=!1,typeof S=="function"?(S(s.state.value[e]),R={type:ds.patchFunction,storeId:e,events:h}):(to(s.state.value[e],S),R={type:ds.patchObject,payload:S,storeId:e,events:h});const A=g=Symbol();To().then(()=>{g===A&&(l=!0)}),u=!0,wr(f,R,s.state.value[e])}const b=i?function(){const{state:R}=r,A=R?R():{};this.$patch(D=>{qt(D,A)})}:Ol;function v(){o.stop(),f=[],d=[],s._s.delete(e)}const m=(S,R="")=>{if(ja in S)return S[Fi]=R,S;const A=function(){ii(s);const D=Array.from(arguments),$=[],P=[];function Q(X){$.push(X)}function te(X){P.push(X)}wr(d,{args:D,name:A[Fi],store:E,after:Q,onError:te});let Y;try{Y=S.apply(this&&this.$id===e?this:E,D)}catch(X){throw wr(P,X),X}return Y instanceof Promise?Y.then(X=>(wr($,X),X)).catch(X=>(wr(P,X),Promise.reject(X))):(wr($,Y),Y)};return A[ja]=!0,A[Fi]=R,A},_={_p:s,$id:e,$onAction:Ia.bind(null,d),$patch:p,$reset:b,$subscribe(S,R={}){const A=Ia(f,S,R.detached,()=>D()),D=o.run(()=>us(()=>s.state.value[e],$=>{(R.flush==="sync"?u:l)&&S({storeId:e,type:ds.direct,events:h},$)},qt({},c,R)));return A},$dispose:v},E=Ss(_);s._s.set(e,E);const B=(s._a&&s._a.runWithContext||Sh)(()=>s._e.run(()=>(o=Pc()).run(()=>t({action:m}))));for(const S in B){const R=B[S];if(Oe(R)&&!Fh(R)||Qt(R))i||(x&&kh(R)&&(Oe(R)?R.value=x[S]:to(R,x[S])),s.state.value[e][S]=R);else if(typeof R=="function"){const A=m(R,S);B[S]=A,a.actions[S]=R}}return qt(E,B),qt(_e(E),B),Object.defineProperty(E,"$state",{get:()=>s.state.value[e],set:S=>{p(R=>{qt(R,S)})}}),s._p.forEach(S=>{qt(E,o.run(()=>S({store:E,app:s._a,pinia:s,options:a})))}),x&&i&&r.hydrate&&r.hydrate(E.$state,x),l=!0,u=!0,E}/*! #__NO_SIDE_EFFECTS__ */function oi(e,t,r){let s,n;const i=typeof t=="function";typeof e=="string"?(s=e,n=i?r:t):(n=e,s=e.id);function o(a,c){const l=gd();return a=a||(l?dt(Pl,null):null),a&&ii(a),a=Tl,a._s.has(s)||(i?$l(s,t,n,a):Rh(s,n,a)),a._s.get(s)}return o.$id=s,o}var Ri=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ll(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Il(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var r=function s(){return this instanceof s?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(s){var n=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(r,s,n.get?n:{enumerable:!0,get:function(){return e[s]}})}),r}var Gs={exports:{}};function Th(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Vs={exports:{}};const Ph={},Oh=Object.freeze(Object.defineProperty({__proto__:null,default:Ph},Symbol.toStringTag,{value:"Module"})),$h=Il(Oh);var Lh=Vs.exports,Ua;function ve(){return Ua||(Ua=1,function(e,t){(function(r,s){e.exports=s()})(Lh,function(){var r=r||function(s,n){var i;if(typeof window<"u"&&window.crypto&&(i=window.crypto),typeof self<"u"&&self.crypto&&(i=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(i=globalThis.crypto),!i&&typeof window<"u"&&window.msCrypto&&(i=window.msCrypto),!i&&typeof Ri<"u"&&Ri.crypto&&(i=Ri.crypto),!i&&typeof Th=="function")try{i=$h}catch{}var o=function(){if(i){if(typeof i.getRandomValues=="function")try{return i.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof i.randomBytes=="function")try{return i.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},a=Object.create||function(){function v(){}return function(m){var _;return v.prototype=m,_=new v,v.prototype=null,_}}(),c={},l=c.lib={},u=l.Base=function(){return{extend:function(v){var m=a(this);return v&&m.mixIn(v),(!m.hasOwnProperty("init")||this.init===m.init)&&(m.init=function(){m.$super.init.apply(this,arguments)}),m.init.prototype=m,m.$super=this,m},create:function(){var v=this.extend();return v.init.apply(v,arguments),v},init:function(){},mixIn:function(v){for(var m in v)v.hasOwnProperty(m)&&(this[m]=v[m]);v.hasOwnProperty("toString")&&(this.toString=v.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),f=l.WordArray=u.extend({init:function(v,m){v=this.words=v||[],m!=n?this.sigBytes=m:this.sigBytes=v.length*4},toString:function(v){return(v||h).stringify(this)},concat:function(v){var m=this.words,_=v.words,E=this.sigBytes,C=v.sigBytes;if(this.clamp(),E%4)for(var B=0;B>>2]>>>24-B%4*8&255;m[E+B>>>2]|=S<<24-(E+B)%4*8}else for(var R=0;R>>2]=_[R>>>2];return this.sigBytes+=C,this},clamp:function(){var v=this.words,m=this.sigBytes;v[m>>>2]&=4294967295<<32-m%4*8,v.length=s.ceil(m/4)},clone:function(){var v=u.clone.call(this);return v.words=this.words.slice(0),v},random:function(v){for(var m=[],_=0;_>>2]>>>24-C%4*8&255;E.push((B>>>4).toString(16)),E.push((B&15).toString(16))}return E.join("")},parse:function(v){for(var m=v.length,_=[],E=0;E>>3]|=parseInt(v.substr(E,2),16)<<24-E%8*4;return new f.init(_,m/2)}},x=d.Latin1={stringify:function(v){for(var m=v.words,_=v.sigBytes,E=[],C=0;C<_;C++){var B=m[C>>>2]>>>24-C%4*8&255;E.push(String.fromCharCode(B))}return E.join("")},parse:function(v){for(var m=v.length,_=[],E=0;E>>2]|=(v.charCodeAt(E)&255)<<24-E%4*8;return new f.init(_,m)}},g=d.Utf8={stringify:function(v){try{return decodeURIComponent(escape(x.stringify(v)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(v){return x.parse(unescape(encodeURIComponent(v)))}},p=l.BufferedBlockAlgorithm=u.extend({reset:function(){this._data=new f.init,this._nDataBytes=0},_append:function(v){typeof v=="string"&&(v=g.parse(v)),this._data.concat(v),this._nDataBytes+=v.sigBytes},_process:function(v){var m,_=this._data,E=_.words,C=_.sigBytes,B=this.blockSize,S=B*4,R=C/S;v?R=s.ceil(R):R=s.max((R|0)-this._minBufferSize,0);var A=R*B,D=s.min(A*4,C);if(A){for(var $=0;$>>2]|=c[f]<<24-f%4*8;o.call(this,u,l)}else o.apply(this,arguments)};a.prototype=i}}(),r.lib.WordArray})}(Js)),Js.exports}var Xs={exports:{}},Nh=Xs.exports,qa;function Hh(){return qa||(qa=1,function(e,t){(function(r,s){e.exports=s(ve())})(Nh,function(r){return function(){var s=r,n=s.lib,i=n.WordArray,o=s.enc;o.Utf16=o.Utf16BE={stringify:function(c){for(var l=c.words,u=c.sigBytes,f=[],d=0;d>>2]>>>16-d%4*8&65535;f.push(String.fromCharCode(h))}return f.join("")},parse:function(c){for(var l=c.length,u=[],f=0;f>>1]|=c.charCodeAt(f)<<16-f%2*16;return i.create(u,l*2)}},o.Utf16LE={stringify:function(c){for(var l=c.words,u=c.sigBytes,f=[],d=0;d>>2]>>>16-d%4*8&65535);f.push(String.fromCharCode(h))}return f.join("")},parse:function(c){for(var l=c.length,u=[],f=0;f>>1]|=a(c.charCodeAt(f)<<16-f%2*16);return i.create(u,l*2)}};function a(c){return c<<8&4278255360|c>>>8&16711935}}(),r.enc.Utf16})}(Xs)),Xs.exports}var Qs={exports:{}},qh=Qs.exports,Ma;function gr(){return Ma||(Ma=1,function(e,t){(function(r,s){e.exports=s(ve())})(qh,function(r){return function(){var s=r,n=s.lib,i=n.WordArray,o=s.enc;o.Base64={stringify:function(c){var l=c.words,u=c.sigBytes,f=this._map;c.clamp();for(var d=[],h=0;h>>2]>>>24-h%4*8&255,g=l[h+1>>>2]>>>24-(h+1)%4*8&255,p=l[h+2>>>2]>>>24-(h+2)%4*8&255,b=x<<16|g<<8|p,v=0;v<4&&h+v*.75>>6*(3-v)&63));var m=f.charAt(64);if(m)for(;d.length%4;)d.push(m);return d.join("")},parse:function(c){var l=c.length,u=this._map,f=this._reverseMap;if(!f){f=this._reverseMap=[];for(var d=0;d>>6-h%4*2,p=x|g;f[d>>>2]|=p<<24-d%4*8,d++}return i.create(f,d)}}(),r.enc.Base64})}(Qs)),Qs.exports}var Ys={exports:{}},Mh=Ys.exports,za;function zh(){return za||(za=1,function(e,t){(function(r,s){e.exports=s(ve())})(Mh,function(r){return function(){var s=r,n=s.lib,i=n.WordArray,o=s.enc;o.Base64url={stringify:function(c,l){l===void 0&&(l=!0);var u=c.words,f=c.sigBytes,d=l?this._safe_map:this._map;c.clamp();for(var h=[],x=0;x>>2]>>>24-x%4*8&255,p=u[x+1>>>2]>>>24-(x+1)%4*8&255,b=u[x+2>>>2]>>>24-(x+2)%4*8&255,v=g<<16|p<<8|b,m=0;m<4&&x+m*.75>>6*(3-m)&63));var _=d.charAt(64);if(_)for(;h.length%4;)h.push(_);return h.join("")},parse:function(c,l){l===void 0&&(l=!0);var u=c.length,f=l?this._safe_map:this._map,d=this._reverseMap;if(!d){d=this._reverseMap=[];for(var h=0;h>>6-h%4*2,p=x|g;f[d>>>2]|=p<<24-d%4*8,d++}return i.create(f,d)}}(),r.enc.Base64url})}(Ys)),Ys.exports}var Zs={exports:{}},Wh=Zs.exports,Wa;function mr(){return Wa||(Wa=1,function(e,t){(function(r,s){e.exports=s(ve())})(Wh,function(r){return function(s){var n=r,i=n.lib,o=i.WordArray,a=i.Hasher,c=n.algo,l=[];(function(){for(var g=0;g<64;g++)l[g]=s.abs(s.sin(g+1))*4294967296|0})();var u=c.MD5=a.extend({_doReset:function(){this._hash=new o.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(g,p){for(var b=0;b<16;b++){var v=p+b,m=g[v];g[v]=(m<<8|m>>>24)&16711935|(m<<24|m>>>8)&4278255360}var _=this._hash.words,E=g[p+0],C=g[p+1],B=g[p+2],S=g[p+3],R=g[p+4],A=g[p+5],D=g[p+6],$=g[p+7],P=g[p+8],Q=g[p+9],te=g[p+10],Y=g[p+11],X=g[p+12],ee=g[p+13],xe=g[p+14],he=g[p+15],L=_[0],I=_[1],M=_[2],j=_[3];L=f(L,I,M,j,E,7,l[0]),j=f(j,L,I,M,C,12,l[1]),M=f(M,j,L,I,B,17,l[2]),I=f(I,M,j,L,S,22,l[3]),L=f(L,I,M,j,R,7,l[4]),j=f(j,L,I,M,A,12,l[5]),M=f(M,j,L,I,D,17,l[6]),I=f(I,M,j,L,$,22,l[7]),L=f(L,I,M,j,P,7,l[8]),j=f(j,L,I,M,Q,12,l[9]),M=f(M,j,L,I,te,17,l[10]),I=f(I,M,j,L,Y,22,l[11]),L=f(L,I,M,j,X,7,l[12]),j=f(j,L,I,M,ee,12,l[13]),M=f(M,j,L,I,xe,17,l[14]),I=f(I,M,j,L,he,22,l[15]),L=d(L,I,M,j,C,5,l[16]),j=d(j,L,I,M,D,9,l[17]),M=d(M,j,L,I,Y,14,l[18]),I=d(I,M,j,L,E,20,l[19]),L=d(L,I,M,j,A,5,l[20]),j=d(j,L,I,M,te,9,l[21]),M=d(M,j,L,I,he,14,l[22]),I=d(I,M,j,L,R,20,l[23]),L=d(L,I,M,j,Q,5,l[24]),j=d(j,L,I,M,xe,9,l[25]),M=d(M,j,L,I,S,14,l[26]),I=d(I,M,j,L,P,20,l[27]),L=d(L,I,M,j,ee,5,l[28]),j=d(j,L,I,M,B,9,l[29]),M=d(M,j,L,I,$,14,l[30]),I=d(I,M,j,L,X,20,l[31]),L=h(L,I,M,j,A,4,l[32]),j=h(j,L,I,M,P,11,l[33]),M=h(M,j,L,I,Y,16,l[34]),I=h(I,M,j,L,xe,23,l[35]),L=h(L,I,M,j,C,4,l[36]),j=h(j,L,I,M,R,11,l[37]),M=h(M,j,L,I,$,16,l[38]),I=h(I,M,j,L,te,23,l[39]),L=h(L,I,M,j,ee,4,l[40]),j=h(j,L,I,M,E,11,l[41]),M=h(M,j,L,I,S,16,l[42]),I=h(I,M,j,L,D,23,l[43]),L=h(L,I,M,j,Q,4,l[44]),j=h(j,L,I,M,X,11,l[45]),M=h(M,j,L,I,he,16,l[46]),I=h(I,M,j,L,B,23,l[47]),L=x(L,I,M,j,E,6,l[48]),j=x(j,L,I,M,$,10,l[49]),M=x(M,j,L,I,xe,15,l[50]),I=x(I,M,j,L,A,21,l[51]),L=x(L,I,M,j,X,6,l[52]),j=x(j,L,I,M,S,10,l[53]),M=x(M,j,L,I,te,15,l[54]),I=x(I,M,j,L,C,21,l[55]),L=x(L,I,M,j,P,6,l[56]),j=x(j,L,I,M,he,10,l[57]),M=x(M,j,L,I,D,15,l[58]),I=x(I,M,j,L,ee,21,l[59]),L=x(L,I,M,j,R,6,l[60]),j=x(j,L,I,M,Y,10,l[61]),M=x(M,j,L,I,B,15,l[62]),I=x(I,M,j,L,Q,21,l[63]),_[0]=_[0]+L|0,_[1]=_[1]+I|0,_[2]=_[2]+M|0,_[3]=_[3]+j|0},_doFinalize:function(){var g=this._data,p=g.words,b=this._nDataBytes*8,v=g.sigBytes*8;p[v>>>5]|=128<<24-v%32;var m=s.floor(b/4294967296),_=b;p[(v+64>>>9<<4)+15]=(m<<8|m>>>24)&16711935|(m<<24|m>>>8)&4278255360,p[(v+64>>>9<<4)+14]=(_<<8|_>>>24)&16711935|(_<<24|_>>>8)&4278255360,g.sigBytes=(p.length+1)*4,this._process();for(var E=this._hash,C=E.words,B=0;B<4;B++){var S=C[B];C[B]=(S<<8|S>>>24)&16711935|(S<<24|S>>>8)&4278255360}return E},clone:function(){var g=a.clone.call(this);return g._hash=this._hash.clone(),g}});function f(g,p,b,v,m,_,E){var C=g+(p&b|~p&v)+m+E;return(C<<_|C>>>32-_)+p}function d(g,p,b,v,m,_,E){var C=g+(p&v|b&~v)+m+E;return(C<<_|C>>>32-_)+p}function h(g,p,b,v,m,_,E){var C=g+(p^b^v)+m+E;return(C<<_|C>>>32-_)+p}function x(g,p,b,v,m,_,E){var C=g+(b^(p|~v))+m+E;return(C<<_|C>>>32-_)+p}n.MD5=a._createHelper(u),n.HmacMD5=a._createHmacHelper(u)}(Math),r.MD5})}(Zs)),Zs.exports}var en={exports:{}},Gh=en.exports,Ga;function jl(){return Ga||(Ga=1,function(e,t){(function(r,s){e.exports=s(ve())})(Gh,function(r){return function(){var s=r,n=s.lib,i=n.WordArray,o=n.Hasher,a=s.algo,c=[],l=a.SHA1=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(u,f){for(var d=this._hash.words,h=d[0],x=d[1],g=d[2],p=d[3],b=d[4],v=0;v<80;v++){if(v<16)c[v]=u[f+v]|0;else{var m=c[v-3]^c[v-8]^c[v-14]^c[v-16];c[v]=m<<1|m>>>31}var _=(h<<5|h>>>27)+b+c[v];v<20?_+=(x&g|~x&p)+1518500249:v<40?_+=(x^g^p)+1859775393:v<60?_+=(x&g|x&p|g&p)-1894007588:_+=(x^g^p)-899497514,b=p,p=g,g=x<<30|x>>>2,x=h,h=_}d[0]=d[0]+h|0,d[1]=d[1]+x|0,d[2]=d[2]+g|0,d[3]=d[3]+p|0,d[4]=d[4]+b|0},_doFinalize:function(){var u=this._data,f=u.words,d=this._nDataBytes*8,h=u.sigBytes*8;return f[h>>>5]|=128<<24-h%32,f[(h+64>>>9<<4)+14]=Math.floor(d/4294967296),f[(h+64>>>9<<4)+15]=d,u.sigBytes=f.length*4,this._process(),this._hash},clone:function(){var u=o.clone.call(this);return u._hash=this._hash.clone(),u}});s.SHA1=o._createHelper(l),s.HmacSHA1=o._createHmacHelper(l)}(),r.SHA1})}(en)),en.exports}var tn={exports:{}},Vh=tn.exports,Va;function jo(){return Va||(Va=1,function(e,t){(function(r,s){e.exports=s(ve())})(Vh,function(r){return function(s){var n=r,i=n.lib,o=i.WordArray,a=i.Hasher,c=n.algo,l=[],u=[];(function(){function h(b){for(var v=s.sqrt(b),m=2;m<=v;m++)if(!(b%m))return!1;return!0}function x(b){return(b-(b|0))*4294967296|0}for(var g=2,p=0;p<64;)h(g)&&(p<8&&(l[p]=x(s.pow(g,1/2))),u[p]=x(s.pow(g,1/3)),p++),g++})();var f=[],d=c.SHA256=a.extend({_doReset:function(){this._hash=new o.init(l.slice(0))},_doProcessBlock:function(h,x){for(var g=this._hash.words,p=g[0],b=g[1],v=g[2],m=g[3],_=g[4],E=g[5],C=g[6],B=g[7],S=0;S<64;S++){if(S<16)f[S]=h[x+S]|0;else{var R=f[S-15],A=(R<<25|R>>>7)^(R<<14|R>>>18)^R>>>3,D=f[S-2],$=(D<<15|D>>>17)^(D<<13|D>>>19)^D>>>10;f[S]=A+f[S-7]+$+f[S-16]}var P=_&E^~_&C,Q=p&b^p&v^b&v,te=(p<<30|p>>>2)^(p<<19|p>>>13)^(p<<10|p>>>22),Y=(_<<26|_>>>6)^(_<<21|_>>>11)^(_<<7|_>>>25),X=B+Y+P+u[S]+f[S],ee=te+Q;B=C,C=E,E=_,_=m+X|0,m=v,v=b,b=p,p=X+ee|0}g[0]=g[0]+p|0,g[1]=g[1]+b|0,g[2]=g[2]+v|0,g[3]=g[3]+m|0,g[4]=g[4]+_|0,g[5]=g[5]+E|0,g[6]=g[6]+C|0,g[7]=g[7]+B|0},_doFinalize:function(){var h=this._data,x=h.words,g=this._nDataBytes*8,p=h.sigBytes*8;return x[p>>>5]|=128<<24-p%32,x[(p+64>>>9<<4)+14]=s.floor(g/4294967296),x[(p+64>>>9<<4)+15]=g,h.sigBytes=x.length*4,this._process(),this._hash},clone:function(){var h=a.clone.call(this);return h._hash=this._hash.clone(),h}});n.SHA256=a._createHelper(d),n.HmacSHA256=a._createHmacHelper(d)}(Math),r.SHA256})}(tn)),tn.exports}var rn={exports:{}},Kh=rn.exports,Ka;function Jh(){return Ka||(Ka=1,function(e,t){(function(r,s,n){e.exports=s(ve(),jo())})(Kh,function(r){return function(){var s=r,n=s.lib,i=n.WordArray,o=s.algo,a=o.SHA256,c=o.SHA224=a.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var l=a._doFinalize.call(this);return l.sigBytes-=4,l}});s.SHA224=a._createHelper(c),s.HmacSHA224=a._createHmacHelper(c)}(),r.SHA224})}(rn)),rn.exports}var sn={exports:{}},Xh=sn.exports,Ja;function Ul(){return Ja||(Ja=1,function(e,t){(function(r,s,n){e.exports=s(ve(),ai())})(Xh,function(r){return function(){var s=r,n=s.lib,i=n.Hasher,o=s.x64,a=o.Word,c=o.WordArray,l=s.algo;function u(){return a.create.apply(a,arguments)}var f=[u(1116352408,3609767458),u(1899447441,602891725),u(3049323471,3964484399),u(3921009573,2173295548),u(961987163,4081628472),u(1508970993,3053834265),u(2453635748,2937671579),u(2870763221,3664609560),u(3624381080,2734883394),u(310598401,1164996542),u(607225278,1323610764),u(1426881987,3590304994),u(1925078388,4068182383),u(2162078206,991336113),u(2614888103,633803317),u(3248222580,3479774868),u(3835390401,2666613458),u(4022224774,944711139),u(264347078,2341262773),u(604807628,2007800933),u(770255983,1495990901),u(1249150122,1856431235),u(1555081692,3175218132),u(1996064986,2198950837),u(2554220882,3999719339),u(2821834349,766784016),u(2952996808,2566594879),u(3210313671,3203337956),u(3336571891,1034457026),u(3584528711,2466948901),u(113926993,3758326383),u(338241895,168717936),u(666307205,1188179964),u(773529912,1546045734),u(1294757372,1522805485),u(1396182291,2643833823),u(1695183700,2343527390),u(1986661051,1014477480),u(2177026350,1206759142),u(2456956037,344077627),u(2730485921,1290863460),u(2820302411,3158454273),u(3259730800,3505952657),u(3345764771,106217008),u(3516065817,3606008344),u(3600352804,1432725776),u(4094571909,1467031594),u(275423344,851169720),u(430227734,3100823752),u(506948616,1363258195),u(659060556,3750685593),u(883997877,3785050280),u(958139571,3318307427),u(1322822218,3812723403),u(1537002063,2003034995),u(1747873779,3602036899),u(1955562222,1575990012),u(2024104815,1125592928),u(2227730452,2716904306),u(2361852424,442776044),u(2428436474,593698344),u(2756734187,3733110249),u(3204031479,2999351573),u(3329325298,3815920427),u(3391569614,3928383900),u(3515267271,566280711),u(3940187606,3454069534),u(4118630271,4000239992),u(116418474,1914138554),u(174292421,2731055270),u(289380356,3203993006),u(460393269,320620315),u(685471733,587496836),u(852142971,1086792851),u(1017036298,365543100),u(1126000580,2618297676),u(1288033470,3409855158),u(1501505948,4234509866),u(1607167915,987167468),u(1816402316,1246189591)],d=[];(function(){for(var x=0;x<80;x++)d[x]=u()})();var h=l.SHA512=i.extend({_doReset:function(){this._hash=new c.init([new a.init(1779033703,4089235720),new a.init(3144134277,2227873595),new a.init(1013904242,4271175723),new a.init(2773480762,1595750129),new a.init(1359893119,2917565137),new a.init(2600822924,725511199),new a.init(528734635,4215389547),new a.init(1541459225,327033209)])},_doProcessBlock:function(x,g){for(var p=this._hash.words,b=p[0],v=p[1],m=p[2],_=p[3],E=p[4],C=p[5],B=p[6],S=p[7],R=b.high,A=b.low,D=v.high,$=v.low,P=m.high,Q=m.low,te=_.high,Y=_.low,X=E.high,ee=E.low,xe=C.high,he=C.low,L=B.high,I=B.low,M=S.high,j=S.low,we=R,de=A,T=D,U=$,V=P,Z=Q,ge=te,Ee=Y,y=X,w=ee,k=xe,H=he,O=L,q=I,K=M,G=j,W=0;W<80;W++){var N,re,J=d[W];if(W<16)re=J.high=x[g+W*2]|0,N=J.low=x[g+W*2+1]|0;else{var se=d[W-15],ne=se.high,ue=se.low,Ce=(ne>>>1|ue<<31)^(ne>>>8|ue<<24)^ne>>>7,me=(ue>>>1|ne<<31)^(ue>>>8|ne<<24)^(ue>>>7|ne<<25),ze=d[W-2],Re=ze.high,qe=ze.low,Je=(Re>>>19|qe<<13)^(Re<<3|qe>>>29)^Re>>>6,Ut=(qe>>>19|Re<<13)^(qe<<3|Re>>>29)^(qe>>>6|Re<<26),Kr=d[W-7],Xe=Kr.high,ut=Kr.low,Jr=d[W-16],Mu=Jr.high,ta=Jr.low;N=me+ut,re=Ce+Xe+(N>>>0>>0?1:0),N=N+Ut,re=re+Je+(N>>>0>>0?1:0),N=N+ta,re=re+Mu+(N>>>0>>0?1:0),J.high=re,J.low=N}var zu=y&k^~y&O,ra=w&H^~w&q,Wu=we&T^we&V^T&V,Gu=de&U^de&Z^U&Z,Vu=(we>>>28|de<<4)^(we<<30|de>>>2)^(we<<25|de>>>7),sa=(de>>>28|we<<4)^(de<<30|we>>>2)^(de<<25|we>>>7),Ku=(y>>>14|w<<18)^(y>>>18|w<<14)^(y<<23|w>>>9),Ju=(w>>>14|y<<18)^(w>>>18|y<<14)^(w<<23|y>>>9),na=f[W],Xu=na.high,ia=na.low,nt=G+Ju,Nt=K+Ku+(nt>>>0>>0?1:0),nt=nt+ra,Nt=Nt+zu+(nt>>>0>>0?1:0),nt=nt+ia,Nt=Nt+Xu+(nt>>>0>>0?1:0),nt=nt+N,Nt=Nt+re+(nt>>>0>>0?1:0),oa=sa+Gu,Qu=Vu+Wu+(oa>>>0>>0?1:0);K=O,G=q,O=k,q=H,k=y,H=w,w=Ee+nt|0,y=ge+Nt+(w>>>0>>0?1:0)|0,ge=V,Ee=Z,V=T,Z=U,T=we,U=de,de=nt+oa|0,we=Nt+Qu+(de>>>0>>0?1:0)|0}A=b.low=A+de,b.high=R+we+(A>>>0>>0?1:0),$=v.low=$+U,v.high=D+T+($>>>0>>0?1:0),Q=m.low=Q+Z,m.high=P+V+(Q>>>0>>0?1:0),Y=_.low=Y+Ee,_.high=te+ge+(Y>>>0>>0?1:0),ee=E.low=ee+w,E.high=X+y+(ee>>>0>>0?1:0),he=C.low=he+H,C.high=xe+k+(he>>>0>>0?1:0),I=B.low=I+q,B.high=L+O+(I>>>0>>0?1:0),j=S.low=j+G,S.high=M+K+(j>>>0>>0?1:0)},_doFinalize:function(){var x=this._data,g=x.words,p=this._nDataBytes*8,b=x.sigBytes*8;g[b>>>5]|=128<<24-b%32,g[(b+128>>>10<<5)+30]=Math.floor(p/4294967296),g[(b+128>>>10<<5)+31]=p,x.sigBytes=g.length*4,this._process();var v=this._hash.toX32();return v},clone:function(){var x=i.clone.call(this);return x._hash=this._hash.clone(),x},blockSize:1024/32});s.SHA512=i._createHelper(h),s.HmacSHA512=i._createHmacHelper(h)}(),r.SHA512})}(sn)),sn.exports}var nn={exports:{}},Qh=nn.exports,Xa;function Yh(){return Xa||(Xa=1,function(e,t){(function(r,s,n){e.exports=s(ve(),ai(),Ul())})(Qh,function(r){return function(){var s=r,n=s.x64,i=n.Word,o=n.WordArray,a=s.algo,c=a.SHA512,l=a.SHA384=c.extend({_doReset:function(){this._hash=new o.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var u=c._doFinalize.call(this);return u.sigBytes-=16,u}});s.SHA384=c._createHelper(l),s.HmacSHA384=c._createHmacHelper(l)}(),r.SHA384})}(nn)),nn.exports}var on={exports:{}},Zh=on.exports,Qa;function ex(){return Qa||(Qa=1,function(e,t){(function(r,s,n){e.exports=s(ve(),ai())})(Zh,function(r){return function(s){var n=r,i=n.lib,o=i.WordArray,a=i.Hasher,c=n.x64,l=c.Word,u=n.algo,f=[],d=[],h=[];(function(){for(var p=1,b=0,v=0;v<24;v++){f[p+5*b]=(v+1)*(v+2)/2%64;var m=b%5,_=(2*p+3*b)%5;p=m,b=_}for(var p=0;p<5;p++)for(var b=0;b<5;b++)d[p+5*b]=b+(2*p+3*b)%5*5;for(var E=1,C=0;C<24;C++){for(var B=0,S=0,R=0;R<7;R++){if(E&1){var A=(1<>>24)&16711935|(E<<24|E>>>8)&4278255360,C=(C<<8|C>>>24)&16711935|(C<<24|C>>>8)&4278255360;var B=v[_];B.high^=C,B.low^=E}for(var S=0;S<24;S++){for(var R=0;R<5;R++){for(var A=0,D=0,$=0;$<5;$++){var B=v[R+5*$];A^=B.high,D^=B.low}var P=x[R];P.high=A,P.low=D}for(var R=0;R<5;R++)for(var Q=x[(R+4)%5],te=x[(R+1)%5],Y=te.high,X=te.low,A=Q.high^(Y<<1|X>>>31),D=Q.low^(X<<1|Y>>>31),$=0;$<5;$++){var B=v[R+5*$];B.high^=A,B.low^=D}for(var ee=1;ee<25;ee++){var A,D,B=v[ee],xe=B.high,he=B.low,L=f[ee];L<32?(A=xe<>>32-L,D=he<>>32-L):(A=he<>>64-L,D=xe<>>64-L);var I=x[d[ee]];I.high=A,I.low=D}var M=x[0],j=v[0];M.high=j.high,M.low=j.low;for(var R=0;R<5;R++)for(var $=0;$<5;$++){var ee=R+5*$,B=v[ee],we=x[ee],de=x[(R+1)%5+5*$],T=x[(R+2)%5+5*$];B.high=we.high^~de.high&T.high,B.low=we.low^~de.low&T.low}var B=v[0],U=h[S];B.high^=U.high,B.low^=U.low}},_doFinalize:function(){var p=this._data,b=p.words;this._nDataBytes*8;var v=p.sigBytes*8,m=this.blockSize*32;b[v>>>5]|=1<<24-v%32,b[(s.ceil((v+1)/m)*m>>>5)-1]|=128,p.sigBytes=b.length*4,this._process();for(var _=this._state,E=this.cfg.outputLength/8,C=E/8,B=[],S=0;S>>24)&16711935|(A<<24|A>>>8)&4278255360,D=(D<<8|D>>>24)&16711935|(D<<24|D>>>8)&4278255360,B.push(D),B.push(A)}return new o.init(B,E)},clone:function(){for(var p=a.clone.call(this),b=p._state=this._state.slice(0),v=0;v<25;v++)b[v]=b[v].clone();return p}});n.SHA3=a._createHelper(g),n.HmacSHA3=a._createHmacHelper(g)}(Math),r.SHA3})}(on)),on.exports}var an={exports:{}},tx=an.exports,Ya;function rx(){return Ya||(Ya=1,function(e,t){(function(r,s){e.exports=s(ve())})(tx,function(r){/** @preserve + (c) 2012 by Cédric Mesnil. All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */return function(s){var n=r,i=n.lib,o=i.WordArray,a=i.Hasher,c=n.algo,l=o.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),u=o.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),f=o.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),d=o.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),h=o.create([0,1518500249,1859775393,2400959708,2840853838]),x=o.create([1352829926,1548603684,1836072691,2053994217,0]),g=c.RIPEMD160=a.extend({_doReset:function(){this._hash=o.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(C,B){for(var S=0;S<16;S++){var R=B+S,A=C[R];C[R]=(A<<8|A>>>24)&16711935|(A<<24|A>>>8)&4278255360}var D=this._hash.words,$=h.words,P=x.words,Q=l.words,te=u.words,Y=f.words,X=d.words,ee,xe,he,L,I,M,j,we,de,T;M=ee=D[0],j=xe=D[1],we=he=D[2],de=L=D[3],T=I=D[4];for(var U,S=0;S<80;S+=1)U=ee+C[B+Q[S]]|0,S<16?U+=p(xe,he,L)+$[0]:S<32?U+=b(xe,he,L)+$[1]:S<48?U+=v(xe,he,L)+$[2]:S<64?U+=m(xe,he,L)+$[3]:U+=_(xe,he,L)+$[4],U=U|0,U=E(U,Y[S]),U=U+I|0,ee=I,I=L,L=E(he,10),he=xe,xe=U,U=M+C[B+te[S]]|0,S<16?U+=_(j,we,de)+P[0]:S<32?U+=m(j,we,de)+P[1]:S<48?U+=v(j,we,de)+P[2]:S<64?U+=b(j,we,de)+P[3]:U+=p(j,we,de)+P[4],U=U|0,U=E(U,X[S]),U=U+T|0,M=T,T=de,de=E(we,10),we=j,j=U;U=D[1]+he+de|0,D[1]=D[2]+L+T|0,D[2]=D[3]+I+M|0,D[3]=D[4]+ee+j|0,D[4]=D[0]+xe+we|0,D[0]=U},_doFinalize:function(){var C=this._data,B=C.words,S=this._nDataBytes*8,R=C.sigBytes*8;B[R>>>5]|=128<<24-R%32,B[(R+64>>>9<<4)+14]=(S<<8|S>>>24)&16711935|(S<<24|S>>>8)&4278255360,C.sigBytes=(B.length+1)*4,this._process();for(var A=this._hash,D=A.words,$=0;$<5;$++){var P=D[$];D[$]=(P<<8|P>>>24)&16711935|(P<<24|P>>>8)&4278255360}return A},clone:function(){var C=a.clone.call(this);return C._hash=this._hash.clone(),C}});function p(C,B,S){return C^B^S}function b(C,B,S){return C&B|~C&S}function v(C,B,S){return(C|~B)^S}function m(C,B,S){return C&S|B&~S}function _(C,B,S){return C^(B|~S)}function E(C,B){return C<>>32-B}n.RIPEMD160=a._createHelper(g),n.HmacRIPEMD160=a._createHmacHelper(g)}(),r.RIPEMD160})}(an)),an.exports}var cn={exports:{}},sx=cn.exports,Za;function Uo(){return Za||(Za=1,function(e,t){(function(r,s){e.exports=s(ve())})(sx,function(r){(function(){var s=r,n=s.lib,i=n.Base,o=s.enc,a=o.Utf8,c=s.algo;c.HMAC=i.extend({init:function(l,u){l=this._hasher=new l.init,typeof u=="string"&&(u=a.parse(u));var f=l.blockSize,d=f*4;u.sigBytes>d&&(u=l.finalize(u)),u.clamp();for(var h=this._oKey=u.clone(),x=this._iKey=u.clone(),g=h.words,p=x.words,b=0;b>>2]&255;A.sigBytes-=D}};i.BlockCipher=h.extend({cfg:h.cfg.extend({mode:p,padding:v}),reset:function(){var A;h.reset.call(this);var D=this.cfg,$=D.iv,P=D.mode;this._xformMode==this._ENC_XFORM_MODE?A=P.createEncryptor:(A=P.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==A?this._mode.init(this,$&&$.words):(this._mode=A.call(P,this,$&&$.words),this._mode.__creator=A)},_doProcessBlock:function(A,D){this._mode.processBlock(A,D)},_doFinalize:function(){var A,D=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(D.pad(this._data,this.blockSize),A=this._process(!0)):(A=this._process(!0),D.unpad(A)),A},blockSize:128/32});var m=i.CipherParams=o.extend({init:function(A){this.mixIn(A)},toString:function(A){return(A||this.formatter).stringify(this)}}),_=n.format={},E=_.OpenSSL={stringify:function(A){var D,$=A.ciphertext,P=A.salt;return P?D=a.create([1398893684,1701076831]).concat(P).concat($):D=$,D.toString(u)},parse:function(A){var D,$=u.parse(A),P=$.words;return P[0]==1398893684&&P[1]==1701076831&&(D=a.create(P.slice(2,4)),P.splice(0,4),$.sigBytes-=16),m.create({ciphertext:$,salt:D})}},C=i.SerializableCipher=o.extend({cfg:o.extend({format:E}),encrypt:function(A,D,$,P){P=this.cfg.extend(P);var Q=A.createEncryptor($,P),te=Q.finalize(D),Y=Q.cfg;return m.create({ciphertext:te,key:$,iv:Y.iv,algorithm:A,mode:Y.mode,padding:Y.padding,blockSize:A.blockSize,formatter:P.format})},decrypt:function(A,D,$,P){P=this.cfg.extend(P),D=this._parse(D,P.format);var Q=A.createDecryptor($,P).finalize(D.ciphertext);return Q},_parse:function(A,D){return typeof A=="string"?D.parse(A,this):A}}),B=n.kdf={},S=B.OpenSSL={execute:function(A,D,$,P,Q){if(P||(P=a.random(64/8)),Q)var te=d.create({keySize:D+$,hasher:Q}).compute(A,P);else var te=d.create({keySize:D+$}).compute(A,P);var Y=a.create(te.words.slice(D),$*4);return te.sigBytes=D*4,m.create({key:te,iv:Y,salt:P})}},R=i.PasswordBasedCipher=C.extend({cfg:C.cfg.extend({kdf:S}),encrypt:function(A,D,$,P){P=this.cfg.extend(P);var Q=P.kdf.execute($,A.keySize,A.ivSize,P.salt,P.hasher);P.iv=Q.iv;var te=C.encrypt.call(this,A,D,Q.key,P);return te.mixIn(Q),te},decrypt:function(A,D,$,P){P=this.cfg.extend(P),D=this._parse(D,P.format);var Q=P.kdf.execute($,A.keySize,A.ivSize,D.salt,P.hasher);P.iv=Q.iv;var te=C.decrypt.call(this,A,D,Q.key,P);return te}})}()})}(fn)),fn.exports}var dn={exports:{}},cx=dn.exports,s0;function lx(){return s0||(s0=1,function(e,t){(function(r,s,n){e.exports=s(ve(),He())})(cx,function(r){return r.mode.CFB=function(){var s=r.lib.BlockCipherMode.extend();s.Encryptor=s.extend({processBlock:function(i,o){var a=this._cipher,c=a.blockSize;n.call(this,i,o,c,a),this._prevBlock=i.slice(o,o+c)}}),s.Decryptor=s.extend({processBlock:function(i,o){var a=this._cipher,c=a.blockSize,l=i.slice(o,o+c);n.call(this,i,o,c,a),this._prevBlock=l}});function n(i,o,a,c){var l,u=this._iv;u?(l=u.slice(0),this._iv=void 0):l=this._prevBlock,c.encryptBlock(l,0);for(var f=0;f>24&255)===255){var c=a>>16&255,l=a>>8&255,u=a&255;c===255?(c=0,l===255?(l=0,u===255?u=0:++u):++l):++c,a=0,a+=c<<16,a+=l<<8,a+=u}else a+=1<<24;return a}function i(a){return(a[0]=n(a[0]))===0&&(a[1]=n(a[1])),a}var o=s.Encryptor=s.extend({processBlock:function(a,c){var l=this._cipher,u=l.blockSize,f=this._iv,d=this._counter;f&&(d=this._counter=f.slice(0),this._iv=void 0),i(d);var h=d.slice(0);l.encryptBlock(h,0);for(var x=0;x>>2]|=a<<24-c%4*8,s.sigBytes+=a},unpad:function(s){var n=s.words[s.sigBytes-1>>>2]&255;s.sigBytes-=n}},r.pad.Ansix923})}(gn)),gn.exports}var mn={exports:{}},yx=mn.exports,l0;function bx(){return l0||(l0=1,function(e,t){(function(r,s,n){e.exports=s(ve(),He())})(yx,function(r){return r.pad.Iso10126={pad:function(s,n){var i=n*4,o=i-s.sigBytes%i;s.concat(r.lib.WordArray.random(o-1)).concat(r.lib.WordArray.create([o<<24],1))},unpad:function(s){var n=s.words[s.sigBytes-1>>>2]&255;s.sigBytes-=n}},r.pad.Iso10126})}(mn)),mn.exports}var _n={exports:{}},wx=_n.exports,u0;function Ex(){return u0||(u0=1,function(e,t){(function(r,s,n){e.exports=s(ve(),He())})(wx,function(r){return r.pad.Iso97971={pad:function(s,n){s.concat(r.lib.WordArray.create([2147483648],1)),r.pad.ZeroPadding.pad(s,n)},unpad:function(s){r.pad.ZeroPadding.unpad(s),s.sigBytes--}},r.pad.Iso97971})}(_n)),_n.exports}var yn={exports:{}},Cx=yn.exports,f0;function Ax(){return f0||(f0=1,function(e,t){(function(r,s,n){e.exports=s(ve(),He())})(Cx,function(r){return r.pad.ZeroPadding={pad:function(s,n){var i=n*4;s.clamp(),s.sigBytes+=i-(s.sigBytes%i||i)},unpad:function(s){for(var n=s.words,i=s.sigBytes-1,i=s.sigBytes-1;i>=0;i--)if(n[i>>>2]>>>24-i%4*8&255){s.sigBytes=i+1;break}}},r.pad.ZeroPadding})}(yn)),yn.exports}var bn={exports:{}},Bx=bn.exports,d0;function Sx(){return d0||(d0=1,function(e,t){(function(r,s,n){e.exports=s(ve(),He())})(Bx,function(r){return r.pad.NoPadding={pad:function(){},unpad:function(){}},r.pad.NoPadding})}(bn)),bn.exports}var wn={exports:{}},Dx=wn.exports,h0;function kx(){return h0||(h0=1,function(e,t){(function(r,s,n){e.exports=s(ve(),He())})(Dx,function(r){return function(s){var n=r,i=n.lib,o=i.CipherParams,a=n.enc,c=a.Hex,l=n.format;l.Hex={stringify:function(u){return u.ciphertext.toString(c)},parse:function(u){var f=c.parse(u);return o.create({ciphertext:f})}}}(),r.format.Hex})}(wn)),wn.exports}var En={exports:{}},Fx=En.exports,x0;function Rx(){return x0||(x0=1,function(e,t){(function(r,s,n){e.exports=s(ve(),gr(),mr(),tr(),He())})(Fx,function(r){return function(){var s=r,n=s.lib,i=n.BlockCipher,o=s.algo,a=[],c=[],l=[],u=[],f=[],d=[],h=[],x=[],g=[],p=[];(function(){for(var m=[],_=0;_<256;_++)_<128?m[_]=_<<1:m[_]=_<<1^283;for(var E=0,C=0,_=0;_<256;_++){var B=C^C<<1^C<<2^C<<3^C<<4;B=B>>>8^B&255^99,a[E]=B,c[B]=E;var S=m[E],R=m[S],A=m[R],D=m[B]*257^B*16843008;l[E]=D<<24|D>>>8,u[E]=D<<16|D>>>16,f[E]=D<<8|D>>>24,d[E]=D;var D=A*16843009^R*65537^S*257^E*16843008;h[B]=D<<24|D>>>8,x[B]=D<<16|D>>>16,g[B]=D<<8|D>>>24,p[B]=D,E?(E=S^m[m[m[A^S]]],C^=m[m[C]]):E=C=1}})();var b=[0,1,2,4,8,16,32,64,128,27,54],v=o.AES=i.extend({_doReset:function(){var m;if(!(this._nRounds&&this._keyPriorReset===this._key)){for(var _=this._keyPriorReset=this._key,E=_.words,C=_.sigBytes/4,B=this._nRounds=C+6,S=(B+1)*4,R=this._keySchedule=[],A=0;A6&&A%C==4&&(m=a[m>>>24]<<24|a[m>>>16&255]<<16|a[m>>>8&255]<<8|a[m&255]):(m=m<<8|m>>>24,m=a[m>>>24]<<24|a[m>>>16&255]<<16|a[m>>>8&255]<<8|a[m&255],m^=b[A/C|0]<<24),R[A]=R[A-C]^m);for(var D=this._invKeySchedule=[],$=0;$>>24]]^x[a[m>>>16&255]]^g[a[m>>>8&255]]^p[a[m&255]]}}},encryptBlock:function(m,_){this._doCryptBlock(m,_,this._keySchedule,l,u,f,d,a)},decryptBlock:function(m,_){var E=m[_+1];m[_+1]=m[_+3],m[_+3]=E,this._doCryptBlock(m,_,this._invKeySchedule,h,x,g,p,c);var E=m[_+1];m[_+1]=m[_+3],m[_+3]=E},_doCryptBlock:function(m,_,E,C,B,S,R,A){for(var D=this._nRounds,$=m[_]^E[0],P=m[_+1]^E[1],Q=m[_+2]^E[2],te=m[_+3]^E[3],Y=4,X=1;X>>24]^B[P>>>16&255]^S[Q>>>8&255]^R[te&255]^E[Y++],xe=C[P>>>24]^B[Q>>>16&255]^S[te>>>8&255]^R[$&255]^E[Y++],he=C[Q>>>24]^B[te>>>16&255]^S[$>>>8&255]^R[P&255]^E[Y++],L=C[te>>>24]^B[$>>>16&255]^S[P>>>8&255]^R[Q&255]^E[Y++];$=ee,P=xe,Q=he,te=L}var ee=(A[$>>>24]<<24|A[P>>>16&255]<<16|A[Q>>>8&255]<<8|A[te&255])^E[Y++],xe=(A[P>>>24]<<24|A[Q>>>16&255]<<16|A[te>>>8&255]<<8|A[$&255])^E[Y++],he=(A[Q>>>24]<<24|A[te>>>16&255]<<16|A[$>>>8&255]<<8|A[P&255])^E[Y++],L=(A[te>>>24]<<24|A[$>>>16&255]<<16|A[P>>>8&255]<<8|A[Q&255])^E[Y++];m[_]=ee,m[_+1]=xe,m[_+2]=he,m[_+3]=L},keySize:256/32});s.AES=i._createHelper(v)}(),r.AES})}(En)),En.exports}var Cn={exports:{}},Tx=Cn.exports,p0;function Px(){return p0||(p0=1,function(e,t){(function(r,s,n){e.exports=s(ve(),gr(),mr(),tr(),He())})(Tx,function(r){return function(){var s=r,n=s.lib,i=n.WordArray,o=n.BlockCipher,a=s.algo,c=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],l=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],u=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],f=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],d=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],h=a.DES=o.extend({_doReset:function(){for(var b=this._key,v=b.words,m=[],_=0;_<56;_++){var E=c[_]-1;m[_]=v[E>>>5]>>>31-E%32&1}for(var C=this._subKeys=[],B=0;B<16;B++){for(var S=C[B]=[],R=u[B],_=0;_<24;_++)S[_/6|0]|=m[(l[_]-1+R)%28]<<31-_%6,S[4+(_/6|0)]|=m[28+(l[_+24]-1+R)%28]<<31-_%6;S[0]=S[0]<<1|S[0]>>>31;for(var _=1;_<7;_++)S[_]=S[_]>>>(_-1)*4+3;S[7]=S[7]<<5|S[7]>>>27}for(var A=this._invSubKeys=[],_=0;_<16;_++)A[_]=C[15-_]},encryptBlock:function(b,v){this._doCryptBlock(b,v,this._subKeys)},decryptBlock:function(b,v){this._doCryptBlock(b,v,this._invSubKeys)},_doCryptBlock:function(b,v,m){this._lBlock=b[v],this._rBlock=b[v+1],x.call(this,4,252645135),x.call(this,16,65535),g.call(this,2,858993459),g.call(this,8,16711935),x.call(this,1,1431655765);for(var _=0;_<16;_++){for(var E=m[_],C=this._lBlock,B=this._rBlock,S=0,R=0;R<8;R++)S|=f[R][((B^E[R])&d[R])>>>0];this._lBlock=B,this._rBlock=C^S}var A=this._lBlock;this._lBlock=this._rBlock,this._rBlock=A,x.call(this,1,1431655765),g.call(this,8,16711935),g.call(this,2,858993459),x.call(this,16,65535),x.call(this,4,252645135),b[v]=this._lBlock,b[v+1]=this._rBlock},keySize:64/32,ivSize:64/32,blockSize:64/32});function x(b,v){var m=(this._lBlock>>>b^this._rBlock)&v;this._rBlock^=m,this._lBlock^=m<>>b^this._lBlock)&v;this._lBlock^=m,this._rBlock^=m<192.");var m=v.slice(0,2),_=v.length<4?v.slice(0,2):v.slice(2,4),E=v.length<6?v.slice(0,2):v.slice(4,6);this._des1=h.createEncryptor(i.create(m)),this._des2=h.createEncryptor(i.create(_)),this._des3=h.createEncryptor(i.create(E))},encryptBlock:function(b,v){this._des1.encryptBlock(b,v),this._des2.decryptBlock(b,v),this._des3.encryptBlock(b,v)},decryptBlock:function(b,v){this._des3.decryptBlock(b,v),this._des2.encryptBlock(b,v),this._des1.decryptBlock(b,v)},keySize:192/32,ivSize:64/32,blockSize:64/32});s.TripleDES=o._createHelper(p)}(),r.TripleDES})}(Cn)),Cn.exports}var An={exports:{}},Ox=An.exports,v0;function $x(){return v0||(v0=1,function(e,t){(function(r,s,n){e.exports=s(ve(),gr(),mr(),tr(),He())})(Ox,function(r){return function(){var s=r,n=s.lib,i=n.StreamCipher,o=s.algo,a=o.RC4=i.extend({_doReset:function(){for(var u=this._key,f=u.words,d=u.sigBytes,h=this._S=[],x=0;x<256;x++)h[x]=x;for(var x=0,g=0;x<256;x++){var p=x%d,b=f[p>>>2]>>>24-p%4*8&255;g=(g+h[x]+b)%256;var v=h[x];h[x]=h[g],h[g]=v}this._i=this._j=0},_doProcessBlock:function(u,f){u[f]^=c.call(this)},keySize:256/32,ivSize:0});function c(){for(var u=this._S,f=this._i,d=this._j,h=0,x=0;x<4;x++){f=(f+1)%256,d=(d+u[f])%256;var g=u[f];u[f]=u[d],u[d]=g,h|=u[(u[f]+u[d])%256]<<24-x*8}return this._i=f,this._j=d,h}s.RC4=i._createHelper(a);var l=o.RC4Drop=a.extend({cfg:a.cfg.extend({drop:192}),_doReset:function(){a._doReset.call(this);for(var u=this.cfg.drop;u>0;u--)c.call(this)}});s.RC4Drop=i._createHelper(l)}(),r.RC4})}(An)),An.exports}var Bn={exports:{}},Lx=Bn.exports,g0;function Ix(){return g0||(g0=1,function(e,t){(function(r,s,n){e.exports=s(ve(),gr(),mr(),tr(),He())})(Lx,function(r){return function(){var s=r,n=s.lib,i=n.StreamCipher,o=s.algo,a=[],c=[],l=[],u=o.Rabbit=i.extend({_doReset:function(){for(var d=this._key.words,h=this.cfg.iv,x=0;x<4;x++)d[x]=(d[x]<<8|d[x]>>>24)&16711935|(d[x]<<24|d[x]>>>8)&4278255360;var g=this._X=[d[0],d[3]<<16|d[2]>>>16,d[1],d[0]<<16|d[3]>>>16,d[2],d[1]<<16|d[0]>>>16,d[3],d[2]<<16|d[1]>>>16],p=this._C=[d[2]<<16|d[2]>>>16,d[0]&4294901760|d[1]&65535,d[3]<<16|d[3]>>>16,d[1]&4294901760|d[2]&65535,d[0]<<16|d[0]>>>16,d[2]&4294901760|d[3]&65535,d[1]<<16|d[1]>>>16,d[3]&4294901760|d[0]&65535];this._b=0;for(var x=0;x<4;x++)f.call(this);for(var x=0;x<8;x++)p[x]^=g[x+4&7];if(h){var b=h.words,v=b[0],m=b[1],_=(v<<8|v>>>24)&16711935|(v<<24|v>>>8)&4278255360,E=(m<<8|m>>>24)&16711935|(m<<24|m>>>8)&4278255360,C=_>>>16|E&4294901760,B=E<<16|_&65535;p[0]^=_,p[1]^=C,p[2]^=E,p[3]^=B,p[4]^=_,p[5]^=C,p[6]^=E,p[7]^=B;for(var x=0;x<4;x++)f.call(this)}},_doProcessBlock:function(d,h){var x=this._X;f.call(this),a[0]=x[0]^x[5]>>>16^x[3]<<16,a[1]=x[2]^x[7]>>>16^x[5]<<16,a[2]=x[4]^x[1]>>>16^x[7]<<16,a[3]=x[6]^x[3]>>>16^x[1]<<16;for(var g=0;g<4;g++)a[g]=(a[g]<<8|a[g]>>>24)&16711935|(a[g]<<24|a[g]>>>8)&4278255360,d[h+g]^=a[g]},blockSize:128/32,ivSize:64/32});function f(){for(var d=this._X,h=this._C,x=0;x<8;x++)c[x]=h[x];h[0]=h[0]+1295307597+this._b|0,h[1]=h[1]+3545052371+(h[0]>>>0>>0?1:0)|0,h[2]=h[2]+886263092+(h[1]>>>0>>0?1:0)|0,h[3]=h[3]+1295307597+(h[2]>>>0>>0?1:0)|0,h[4]=h[4]+3545052371+(h[3]>>>0>>0?1:0)|0,h[5]=h[5]+886263092+(h[4]>>>0>>0?1:0)|0,h[6]=h[6]+1295307597+(h[5]>>>0>>0?1:0)|0,h[7]=h[7]+3545052371+(h[6]>>>0>>0?1:0)|0,this._b=h[7]>>>0>>0?1:0;for(var x=0;x<8;x++){var g=d[x]+h[x],p=g&65535,b=g>>>16,v=((p*p>>>17)+p*b>>>15)+b*b,m=((g&4294901760)*g|0)+((g&65535)*g|0);l[x]=v^m}d[0]=l[0]+(l[7]<<16|l[7]>>>16)+(l[6]<<16|l[6]>>>16)|0,d[1]=l[1]+(l[0]<<8|l[0]>>>24)+l[7]|0,d[2]=l[2]+(l[1]<<16|l[1]>>>16)+(l[0]<<16|l[0]>>>16)|0,d[3]=l[3]+(l[2]<<8|l[2]>>>24)+l[1]|0,d[4]=l[4]+(l[3]<<16|l[3]>>>16)+(l[2]<<16|l[2]>>>16)|0,d[5]=l[5]+(l[4]<<8|l[4]>>>24)+l[3]|0,d[6]=l[6]+(l[5]<<16|l[5]>>>16)+(l[4]<<16|l[4]>>>16)|0,d[7]=l[7]+(l[6]<<8|l[6]>>>24)+l[5]|0}s.Rabbit=i._createHelper(u)}(),r.Rabbit})}(Bn)),Bn.exports}var Sn={exports:{}},jx=Sn.exports,m0;function Ux(){return m0||(m0=1,function(e,t){(function(r,s,n){e.exports=s(ve(),gr(),mr(),tr(),He())})(jx,function(r){return function(){var s=r,n=s.lib,i=n.StreamCipher,o=s.algo,a=[],c=[],l=[],u=o.RabbitLegacy=i.extend({_doReset:function(){var d=this._key.words,h=this.cfg.iv,x=this._X=[d[0],d[3]<<16|d[2]>>>16,d[1],d[0]<<16|d[3]>>>16,d[2],d[1]<<16|d[0]>>>16,d[3],d[2]<<16|d[1]>>>16],g=this._C=[d[2]<<16|d[2]>>>16,d[0]&4294901760|d[1]&65535,d[3]<<16|d[3]>>>16,d[1]&4294901760|d[2]&65535,d[0]<<16|d[0]>>>16,d[2]&4294901760|d[3]&65535,d[1]<<16|d[1]>>>16,d[3]&4294901760|d[0]&65535];this._b=0;for(var p=0;p<4;p++)f.call(this);for(var p=0;p<8;p++)g[p]^=x[p+4&7];if(h){var b=h.words,v=b[0],m=b[1],_=(v<<8|v>>>24)&16711935|(v<<24|v>>>8)&4278255360,E=(m<<8|m>>>24)&16711935|(m<<24|m>>>8)&4278255360,C=_>>>16|E&4294901760,B=E<<16|_&65535;g[0]^=_,g[1]^=C,g[2]^=E,g[3]^=B,g[4]^=_,g[5]^=C,g[6]^=E,g[7]^=B;for(var p=0;p<4;p++)f.call(this)}},_doProcessBlock:function(d,h){var x=this._X;f.call(this),a[0]=x[0]^x[5]>>>16^x[3]<<16,a[1]=x[2]^x[7]>>>16^x[5]<<16,a[2]=x[4]^x[1]>>>16^x[7]<<16,a[3]=x[6]^x[3]>>>16^x[1]<<16;for(var g=0;g<4;g++)a[g]=(a[g]<<8|a[g]>>>24)&16711935|(a[g]<<24|a[g]>>>8)&4278255360,d[h+g]^=a[g]},blockSize:128/32,ivSize:64/32});function f(){for(var d=this._X,h=this._C,x=0;x<8;x++)c[x]=h[x];h[0]=h[0]+1295307597+this._b|0,h[1]=h[1]+3545052371+(h[0]>>>0>>0?1:0)|0,h[2]=h[2]+886263092+(h[1]>>>0>>0?1:0)|0,h[3]=h[3]+1295307597+(h[2]>>>0>>0?1:0)|0,h[4]=h[4]+3545052371+(h[3]>>>0>>0?1:0)|0,h[5]=h[5]+886263092+(h[4]>>>0>>0?1:0)|0,h[6]=h[6]+1295307597+(h[5]>>>0>>0?1:0)|0,h[7]=h[7]+3545052371+(h[6]>>>0>>0?1:0)|0,this._b=h[7]>>>0>>0?1:0;for(var x=0;x<8;x++){var g=d[x]+h[x],p=g&65535,b=g>>>16,v=((p*p>>>17)+p*b>>>15)+b*b,m=((g&4294901760)*g|0)+((g&65535)*g|0);l[x]=v^m}d[0]=l[0]+(l[7]<<16|l[7]>>>16)+(l[6]<<16|l[6]>>>16)|0,d[1]=l[1]+(l[0]<<8|l[0]>>>24)+l[7]|0,d[2]=l[2]+(l[1]<<16|l[1]>>>16)+(l[0]<<16|l[0]>>>16)|0,d[3]=l[3]+(l[2]<<8|l[2]>>>24)+l[1]|0,d[4]=l[4]+(l[3]<<16|l[3]>>>16)+(l[2]<<16|l[2]>>>16)|0,d[5]=l[5]+(l[4]<<8|l[4]>>>24)+l[3]|0,d[6]=l[6]+(l[5]<<16|l[5]>>>16)+(l[4]<<16|l[4]>>>16)|0,d[7]=l[7]+(l[6]<<8|l[6]>>>24)+l[5]|0}s.RabbitLegacy=i._createHelper(u)}(),r.RabbitLegacy})}(Sn)),Sn.exports}var Dn={exports:{}},Nx=Dn.exports,_0;function Hx(){return _0||(_0=1,function(e,t){(function(r,s,n){e.exports=s(ve(),gr(),mr(),tr(),He())})(Nx,function(r){return function(){var s=r,n=s.lib,i=n.BlockCipher,o=s.algo;const a=16,c=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],l=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var u={pbox:[],sbox:[]};function f(p,b){let v=b>>24&255,m=b>>16&255,_=b>>8&255,E=b&255,C=p.sbox[0][v]+p.sbox[1][m];return C=C^p.sbox[2][_],C=C+p.sbox[3][E],C}function d(p,b,v){let m=b,_=v,E;for(let C=0;C1;--C)m=m^p.pbox[C],_=f(p,m)^_,E=m,m=_,_=E;return E=m,m=_,_=E,_=_^p.pbox[1],m=m^p.pbox[0],{left:m,right:_}}function x(p,b,v){for(let B=0;B<4;B++){p.sbox[B]=[];for(let S=0;S<256;S++)p.sbox[B][S]=l[B][S]}let m=0;for(let B=0;B=v&&(m=0);let _=0,E=0,C=0;for(let B=0;B({user_id:null,token:null,username:null,key:null}),actions:{init(){if(localStorage.getItem("user_id")!==null&&(this.user_id=localStorage.getItem("user_id")),localStorage.getItem("token")!==null&&(this.token=localStorage.getItem("token")),localStorage.getItem("username")!==null){const e=localStorage.getItem("username");e&&(this.username=w0(e))}if(localStorage.getItem("key")!==null){const e=localStorage.getItem("key");e&&(this.key=w0(e))}},isSet(){return this.init(),this.username!==null&&this.key!==null},set(e,t){this.username=e,this.key=t,localStorage.setItem("username",b0(e)),localStorage.setItem("key",b0(t))},isLoggedIn(){return this.init(),this.user_id!==null&&this.token!==null},login(e,t){this.user_id=e,this.token=t,localStorage.setItem("user_id",e),localStorage.setItem("token",t)}}}),Wx=st({__name:"App",setup(e){const t=lt();return yt(()=>{t.init()}),(r,s)=>{const n=id("router-view");return ie(),jn(n)}}});/*! + * vue-router v4.5.0 + * (c) 2024 Eduardo San Martin Morote + * @license MIT + */const Pr=typeof document<"u";function Nl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Gx(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Nl(e.default)}const ye=Object.assign;function Ti(e,t){const r={};for(const s in t){const n=t[s];r[s]=_t(n)?n.map(e):e(n)}return r}const hs=()=>{},_t=Array.isArray,Hl=/#/g,Vx=/&/g,Kx=/\//g,Jx=/=/g,Xx=/\?/g,ql=/\+/g,Qx=/%5B/g,Yx=/%5D/g,Ml=/%5E/g,Zx=/%60/g,zl=/%7B/g,ep=/%7C/g,Wl=/%7D/g,tp=/%20/g;function No(e){return encodeURI(""+e).replace(ep,"|").replace(Qx,"[").replace(Yx,"]")}function rp(e){return No(e).replace(zl,"{").replace(Wl,"}").replace(Ml,"^")}function so(e){return No(e).replace(ql,"%2B").replace(tp,"+").replace(Hl,"%23").replace(Vx,"%26").replace(Zx,"`").replace(zl,"{").replace(Wl,"}").replace(Ml,"^")}function sp(e){return so(e).replace(Jx,"%3D")}function np(e){return No(e).replace(Hl,"%23").replace(Xx,"%3F")}function ip(e){return e==null?"":np(e).replace(Kx,"%2F")}function Es(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const op=/\/$/,ap=e=>e.replace(op,"");function Pi(e,t,r="/"){let s,n={},i="",o="";const a=t.indexOf("#");let c=t.indexOf("?");return a=0&&(c=-1),c>-1&&(s=t.slice(0,c),i=t.slice(c+1,a>-1?a:t.length),n=e(i)),a>-1&&(s=s||t.slice(0,a),o=t.slice(a,t.length)),s=fp(s??t,r),{fullPath:s+(i&&"?")+i+o,path:s,query:n,hash:Es(o)}}function cp(e,t){const r=t.query?e(t.query):"";return t.path+(r&&"?")+r+(t.hash||"")}function E0(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function lp(e,t,r){const s=t.matched.length-1,n=r.matched.length-1;return s>-1&&s===n&&Nr(t.matched[s],r.matched[n])&&Gl(t.params,r.params)&&e(t.query)===e(r.query)&&t.hash===r.hash}function Nr(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Gl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(!up(e[r],t[r]))return!1;return!0}function up(e,t){return _t(e)?C0(e,t):_t(t)?C0(t,e):e===t}function C0(e,t){return _t(t)?e.length===t.length&&e.every((r,s)=>r===t[s]):e.length===1&&e[0]===t}function fp(e,t){if(e.startsWith("/"))return e;if(!e)return t;const r=t.split("/"),s=e.split("/"),n=s[s.length-1];(n===".."||n===".")&&s.push("");let i=r.length-1,o,a;for(o=0;o1&&i--;else break;return r.slice(0,i).join("/")+"/"+s.slice(o).join("/")}const Ht={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Cs;(function(e){e.pop="pop",e.push="push"})(Cs||(Cs={}));var xs;(function(e){e.back="back",e.forward="forward",e.unknown=""})(xs||(xs={}));function dp(e){if(!e)if(Pr){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ap(e)}const hp=/^[^#]+#/;function xp(e,t){return e.replace(hp,"#")+t}function pp(e,t){const r=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:t.behavior,left:s.left-r.left-(t.left||0),top:s.top-r.top-(t.top||0)}}const ci=()=>({left:window.scrollX,top:window.scrollY});function vp(e){let t;if("el"in e){const r=e.el,s=typeof r=="string"&&r.startsWith("#"),n=typeof r=="string"?s?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!n)return;t=pp(n,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function A0(e,t){return(history.state?history.state.position-t:-1)+e}const no=new Map;function gp(e,t){no.set(e,t)}function mp(e){const t=no.get(e);return no.delete(e),t}let _p=()=>location.protocol+"//"+location.host;function Vl(e,t){const{pathname:r,search:s,hash:n}=t,i=e.indexOf("#");if(i>-1){let a=n.includes(e.slice(i))?e.slice(i).length:1,c=n.slice(a);return c[0]!=="/"&&(c="/"+c),E0(c,"")}return E0(r,e)+s+n}function yp(e,t,r,s){let n=[],i=[],o=null;const a=({state:d})=>{const h=Vl(e,location),x=r.value,g=t.value;let p=0;if(d){if(r.value=h,t.value=d,o&&o===x){o=null;return}p=g?d.position-g.position:0}else s(h);n.forEach(b=>{b(r.value,x,{delta:p,type:Cs.pop,direction:p?p>0?xs.forward:xs.back:xs.unknown})})};function c(){o=r.value}function l(d){n.push(d);const h=()=>{const x=n.indexOf(d);x>-1&&n.splice(x,1)};return i.push(h),h}function u(){const{history:d}=window;d.state&&d.replaceState(ye({},d.state,{scroll:ci()}),"")}function f(){for(const d of i)d();i=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",u)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",u,{passive:!0}),{pauseListeners:c,listen:l,destroy:f}}function B0(e,t,r,s=!1,n=!1){return{back:e,current:t,forward:r,replaced:s,position:window.history.length,scroll:n?ci():null}}function bp(e){const{history:t,location:r}=window,s={value:Vl(e,r)},n={value:t.state};n.value||i(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(c,l,u){const f=e.indexOf("#"),d=f>-1?(r.host&&document.querySelector("base")?e:e.slice(f))+c:_p()+e+c;try{t[u?"replaceState":"pushState"](l,"",d),n.value=l}catch(h){console.error(h),r[u?"replace":"assign"](d)}}function o(c,l){const u=ye({},t.state,B0(n.value.back,c,n.value.forward,!0),l,{position:n.value.position});i(c,u,!0),s.value=c}function a(c,l){const u=ye({},n.value,t.state,{forward:c,scroll:ci()});i(u.current,u,!0);const f=ye({},B0(s.value,c,null),{position:u.position+1},l);i(c,f,!1),s.value=c}return{location:s,state:n,push:a,replace:o}}function wp(e){e=dp(e);const t=bp(e),r=yp(e,t.state,t.location,t.replace);function s(i,o=!0){o||r.pauseListeners(),history.go(i)}const n=ye({location:"",base:e,go:s,createHref:xp.bind(null,e)},t,r);return Object.defineProperty(n,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(n,"state",{enumerable:!0,get:()=>t.state.value}),n}function Ep(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),wp(e)}function Cp(e){return typeof e=="string"||e&&typeof e=="object"}function Kl(e){return typeof e=="string"||typeof e=="symbol"}const Jl=Symbol("");var S0;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(S0||(S0={}));function Hr(e,t){return ye(new Error,{type:e,[Jl]:!0},t)}function Tt(e,t){return e instanceof Error&&Jl in e&&(t==null||!!(e.type&t))}const D0="[^/]+?",Ap={sensitive:!1,strict:!1,start:!0,end:!0},Bp=/[.+*?^${}()[\]/\\]/g;function Sp(e,t){const r=ye({},Ap,t),s=[];let n=r.start?"^":"";const i=[];for(const l of e){const u=l.length?[]:[90];r.strict&&!l.length&&(n+="/");for(let f=0;ft.length?t.length===1&&t[0]===80?1:-1:0}function Xl(e,t){let r=0;const s=e.score,n=t.score;for(;r0&&t[t.length-1]<0}const kp={type:0,value:""},Fp=/[a-zA-Z0-9_]/;function Rp(e){if(!e)return[[]];if(e==="/")return[[kp]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${r})/"${l}": ${h}`)}let r=0,s=r;const n=[];let i;function o(){i&&n.push(i),i=[]}let a=0,c,l="",u="";function f(){l&&(r===0?i.push({type:0,value:l}):r===1||r===2||r===3?(i.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:l,regexp:u,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),l="")}function d(){l+=c}for(;a{o(m)}:hs}function o(f){if(Kl(f)){const d=s.get(f);d&&(s.delete(f),r.splice(r.indexOf(d),1),d.children.forEach(o),d.alias.forEach(o))}else{const d=r.indexOf(f);d>-1&&(r.splice(d,1),f.record.name&&s.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function a(){return r}function c(f){const d=Lp(f,r);r.splice(d,0,f),f.record.name&&!T0(f)&&s.set(f.record.name,f)}function l(f,d){let h,x={},g,p;if("name"in f&&f.name){if(h=s.get(f.name),!h)throw Hr(1,{location:f});p=h.record.name,x=ye(F0(d.params,h.keys.filter(m=>!m.optional).concat(h.parent?h.parent.keys.filter(m=>m.optional):[]).map(m=>m.name)),f.params&&F0(f.params,h.keys.map(m=>m.name))),g=h.stringify(x)}else if(f.path!=null)g=f.path,h=r.find(m=>m.re.test(g)),h&&(x=h.parse(g),p=h.record.name);else{if(h=d.name?s.get(d.name):r.find(m=>m.re.test(d.path)),!h)throw Hr(1,{location:f,currentLocation:d});p=h.record.name,x=ye({},d.params,f.params),g=h.stringify(x)}const b=[];let v=h;for(;v;)b.unshift(v.record),v=v.parent;return{name:p,path:g,params:x,matched:b,meta:$p(b)}}e.forEach(f=>i(f));function u(){r.length=0,s.clear()}return{addRoute:i,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:a,getRecordMatcher:n}}function F0(e,t){const r={};for(const s of t)s in e&&(r[s]=e[s]);return r}function R0(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Op(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Op(e){const t={},r=e.props||!1;if("component"in e)t.default=r;else for(const s in e.components)t[s]=typeof r=="object"?r[s]:r;return t}function T0(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function $p(e){return e.reduce((t,r)=>ye(t,r.meta),{})}function P0(e,t){const r={};for(const s in e)r[s]=s in t?t[s]:e[s];return r}function Lp(e,t){let r=0,s=t.length;for(;r!==s;){const i=r+s>>1;Xl(e,t[i])<0?s=i:r=i+1}const n=Ip(e);return n&&(s=t.lastIndexOf(n,s-1)),s}function Ip(e){let t=e;for(;t=t.parent;)if(Ql(t)&&Xl(e,t)===0)return t}function Ql({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function jp(e){const t={};if(e===""||e==="?")return t;const s=(e[0]==="?"?e.slice(1):e).split("&");for(let n=0;ni&&so(i)):[s&&so(s)]).forEach(i=>{i!==void 0&&(t+=(t.length?"&":"")+r,i!=null&&(t+="="+i))})}return t}function Up(e){const t={};for(const r in e){const s=e[r];s!==void 0&&(t[r]=_t(s)?s.map(n=>n==null?null:""+n):s==null?s:""+s)}return t}const Np=Symbol(""),$0=Symbol(""),li=Symbol(""),Ho=Symbol(""),io=Symbol("");function Zr(){let e=[];function t(s){return e.push(s),()=>{const n=e.indexOf(s);n>-1&&e.splice(n,1)}}function r(){e=[]}return{add:t,list:()=>e.slice(),reset:r}}function Vt(e,t,r,s,n,i=o=>o()){const o=s&&(s.enterCallbacks[n]=s.enterCallbacks[n]||[]);return()=>new Promise((a,c)=>{const l=d=>{d===!1?c(Hr(4,{from:r,to:t})):d instanceof Error?c(d):Cp(d)?c(Hr(2,{from:t,to:d})):(o&&s.enterCallbacks[n]===o&&typeof d=="function"&&o.push(d),a())},u=i(()=>e.call(s&&s.instances[n],t,r,l));let f=Promise.resolve(u);e.length<3&&(f=f.then(l)),f.catch(d=>c(d))})}function Oi(e,t,r,s,n=i=>i()){const i=[];for(const o of e)for(const a in o.components){let c=o.components[a];if(!(t!=="beforeRouteEnter"&&!o.instances[a]))if(Nl(c)){const u=(c.__vccOpts||c)[t];u&&i.push(Vt(u,r,s,o,a,n))}else{let l=c();i.push(()=>l.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${a}" at "${o.path}"`);const f=Gx(u)?u.default:u;o.mods[a]=u,o.components[a]=f;const h=(f.__vccOpts||f)[t];return h&&Vt(h,r,s,o,a,n)()}))}}return i}function L0(e){const t=dt(li),r=dt(Ho),s=tt(()=>{const c=Le(e.to);return t.resolve(c)}),n=tt(()=>{const{matched:c}=s.value,{length:l}=c,u=c[l-1],f=r.matched;if(!u||!f.length)return-1;const d=f.findIndex(Nr.bind(null,u));if(d>-1)return d;const h=I0(c[l-2]);return l>1&&I0(u)===h&&f[f.length-1].path!==h?f.findIndex(Nr.bind(null,c[l-2])):d}),i=tt(()=>n.value>-1&&Wp(r.params,s.value.params)),o=tt(()=>n.value>-1&&n.value===r.matched.length-1&&Gl(r.params,s.value.params));function a(c={}){if(zp(c)){const l=t[Le(e.replace)?"replace":"push"](Le(e.to)).catch(hs);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>l),l}return Promise.resolve()}return{route:s,href:tt(()=>s.value.href),isActive:i,isExactActive:o,navigate:a}}function Hp(e){return e.length===1?e[0]:e}const qp=st({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:L0,setup(e,{slots:t}){const r=Ss(L0(e)),{options:s}=dt(li),n=tt(()=>({[j0(e.activeClass,s.linkActiveClass,"router-link-active")]:r.isActive,[j0(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const i=t.default&&Hp(t.default(r));return e.custom?i:Fl("a",{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:n.value},i)}}}),Mp=qp;function zp(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Wp(e,t){for(const r in t){const s=t[r],n=e[r];if(typeof s=="string"){if(s!==n)return!1}else if(!_t(n)||n.length!==s.length||s.some((i,o)=>i!==n[o]))return!1}return!0}function I0(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const j0=(e,t,r)=>e??t??r,Gp=st({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:r}){const s=dt(io),n=tt(()=>e.route||s.value),i=dt($0,0),o=tt(()=>{let l=Le(i);const{matched:u}=n.value;let f;for(;(f=u[l])&&!f.components;)l++;return l}),a=tt(()=>n.value.matched[o.value]);Ms($0,tt(()=>o.value+1)),Ms(Np,a),Ms(io,n);const c=ke();return us(()=>[c.value,a.value,e.name],([l,u,f],[d,h,x])=>{u&&(u.instances[f]=l,h&&h!==u&&l&&l===d&&(u.leaveGuards.size||(u.leaveGuards=h.leaveGuards),u.updateGuards.size||(u.updateGuards=h.updateGuards))),l&&u&&(!h||!Nr(u,h)||!d)&&(u.enterCallbacks[f]||[]).forEach(g=>g(l))},{flush:"post"}),()=>{const l=n.value,u=e.name,f=a.value,d=f&&f.components[u];if(!d)return U0(r.default,{Component:d,route:l});const h=f.props[u],x=h?h===!0?l.params:typeof h=="function"?h(l):h:null,p=Fl(d,ye({},x,t,{onVnodeUnmounted:b=>{b.component.isUnmounted&&(f.instances[u]=null)},ref:c}));return U0(r.default,{Component:p,route:l})||p}}});function U0(e,t){if(!e)return null;const r=e(t);return r.length===1?r[0]:r}const Vp=Gp;function Kp(e){const t=Pp(e.routes,e),r=e.parseQuery||jp,s=e.stringifyQuery||O0,n=e.history,i=Zr(),o=Zr(),a=Zr(),c=Tf(Ht);let l=Ht;Pr&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=Ti.bind(null,T=>""+T),f=Ti.bind(null,ip),d=Ti.bind(null,Es);function h(T,U){let V,Z;return Kl(T)?(V=t.getRecordMatcher(T),Z=U):Z=T,t.addRoute(Z,V)}function x(T){const U=t.getRecordMatcher(T);U&&t.removeRoute(U)}function g(){return t.getRoutes().map(T=>T.record)}function p(T){return!!t.getRecordMatcher(T)}function b(T,U){if(U=ye({},U||c.value),typeof T=="string"){const w=Pi(r,T,U.path),k=t.resolve({path:w.path},U),H=n.createHref(w.fullPath);return ye(w,k,{params:d(k.params),hash:Es(w.hash),redirectedFrom:void 0,href:H})}let V;if(T.path!=null)V=ye({},T,{path:Pi(r,T.path,U.path).path});else{const w=ye({},T.params);for(const k in w)w[k]==null&&delete w[k];V=ye({},T,{params:f(w)}),U.params=f(U.params)}const Z=t.resolve(V,U),ge=T.hash||"";Z.params=u(d(Z.params));const Ee=cp(s,ye({},T,{hash:rp(ge),path:Z.path})),y=n.createHref(Ee);return ye({fullPath:Ee,hash:ge,query:s===O0?Up(T.query):T.query||{}},Z,{redirectedFrom:void 0,href:y})}function v(T){return typeof T=="string"?Pi(r,T,c.value.path):ye({},T)}function m(T,U){if(l!==T)return Hr(8,{from:U,to:T})}function _(T){return B(T)}function E(T){return _(ye(v(T),{replace:!0}))}function C(T){const U=T.matched[T.matched.length-1];if(U&&U.redirect){const{redirect:V}=U;let Z=typeof V=="function"?V(T):V;return typeof Z=="string"&&(Z=Z.includes("?")||Z.includes("#")?Z=v(Z):{path:Z},Z.params={}),ye({query:T.query,hash:T.hash,params:Z.path!=null?{}:T.params},Z)}}function B(T,U){const V=l=b(T),Z=c.value,ge=T.state,Ee=T.force,y=T.replace===!0,w=C(V);if(w)return B(ye(v(w),{state:typeof w=="object"?ye({},ge,w.state):ge,force:Ee,replace:y}),U||V);const k=V;k.redirectedFrom=U;let H;return!Ee&&lp(s,Z,V)&&(H=Hr(16,{to:k,from:Z}),L(Z,Z,!0,!1)),(H?Promise.resolve(H):A(k,Z)).catch(O=>Tt(O)?Tt(O,2)?O:he(O):ee(O,k,Z)).then(O=>{if(O){if(Tt(O,2))return B(ye({replace:y},v(O.to),{state:typeof O.to=="object"?ye({},ge,O.to.state):ge,force:Ee}),U||k)}else O=$(k,Z,!0,y,ge);return D(k,Z,O),O})}function S(T,U){const V=m(T,U);return V?Promise.reject(V):Promise.resolve()}function R(T){const U=j.values().next().value;return U&&typeof U.runWithContext=="function"?U.runWithContext(T):T()}function A(T,U){let V;const[Z,ge,Ee]=Jp(T,U);V=Oi(Z.reverse(),"beforeRouteLeave",T,U);for(const w of Z)w.leaveGuards.forEach(k=>{V.push(Vt(k,T,U))});const y=S.bind(null,T,U);return V.push(y),de(V).then(()=>{V=[];for(const w of i.list())V.push(Vt(w,T,U));return V.push(y),de(V)}).then(()=>{V=Oi(ge,"beforeRouteUpdate",T,U);for(const w of ge)w.updateGuards.forEach(k=>{V.push(Vt(k,T,U))});return V.push(y),de(V)}).then(()=>{V=[];for(const w of Ee)if(w.beforeEnter)if(_t(w.beforeEnter))for(const k of w.beforeEnter)V.push(Vt(k,T,U));else V.push(Vt(w.beforeEnter,T,U));return V.push(y),de(V)}).then(()=>(T.matched.forEach(w=>w.enterCallbacks={}),V=Oi(Ee,"beforeRouteEnter",T,U,R),V.push(y),de(V))).then(()=>{V=[];for(const w of o.list())V.push(Vt(w,T,U));return V.push(y),de(V)}).catch(w=>Tt(w,8)?w:Promise.reject(w))}function D(T,U,V){a.list().forEach(Z=>R(()=>Z(T,U,V)))}function $(T,U,V,Z,ge){const Ee=m(T,U);if(Ee)return Ee;const y=U===Ht,w=Pr?history.state:{};V&&(Z||y?n.replace(T.fullPath,ye({scroll:y&&w&&w.scroll},ge)):n.push(T.fullPath,ge)),c.value=T,L(T,U,V,y),he()}let P;function Q(){P||(P=n.listen((T,U,V)=>{if(!we.listening)return;const Z=b(T),ge=C(Z);if(ge){B(ye(ge,{replace:!0,force:!0}),Z).catch(hs);return}l=Z;const Ee=c.value;Pr&&gp(A0(Ee.fullPath,V.delta),ci()),A(Z,Ee).catch(y=>Tt(y,12)?y:Tt(y,2)?(B(ye(v(y.to),{force:!0}),Z).then(w=>{Tt(w,20)&&!V.delta&&V.type===Cs.pop&&n.go(-1,!1)}).catch(hs),Promise.reject()):(V.delta&&n.go(-V.delta,!1),ee(y,Z,Ee))).then(y=>{y=y||$(Z,Ee,!1),y&&(V.delta&&!Tt(y,8)?n.go(-V.delta,!1):V.type===Cs.pop&&Tt(y,20)&&n.go(-1,!1)),D(Z,Ee,y)}).catch(hs)}))}let te=Zr(),Y=Zr(),X;function ee(T,U,V){he(T);const Z=Y.list();return Z.length?Z.forEach(ge=>ge(T,U,V)):console.error(T),Promise.reject(T)}function xe(){return X&&c.value!==Ht?Promise.resolve():new Promise((T,U)=>{te.add([T,U])})}function he(T){return X||(X=!T,Q(),te.list().forEach(([U,V])=>T?V(T):U()),te.reset()),T}function L(T,U,V,Z){const{scrollBehavior:ge}=e;if(!Pr||!ge)return Promise.resolve();const Ee=!V&&mp(A0(T.fullPath,0))||(Z||!V)&&history.state&&history.state.scroll||null;return To().then(()=>ge(T,U,Ee)).then(y=>y&&vp(y)).catch(y=>ee(y,T,U))}const I=T=>n.go(T);let M;const j=new Set,we={currentRoute:c,listening:!0,addRoute:h,removeRoute:x,clearRoutes:t.clearRoutes,hasRoute:p,getRoutes:g,resolve:b,options:e,push:_,replace:E,go:I,back:()=>I(-1),forward:()=>I(1),beforeEach:i.add,beforeResolve:o.add,afterEach:a.add,onError:Y.add,isReady:xe,install(T){const U=this;T.component("RouterLink",Mp),T.component("RouterView",Vp),T.config.globalProperties.$router=U,Object.defineProperty(T.config.globalProperties,"$route",{enumerable:!0,get:()=>Le(c)}),Pr&&!M&&c.value===Ht&&(M=!0,_(n.location).catch(ge=>{}));const V={};for(const ge in Ht)Object.defineProperty(V,ge,{get:()=>c.value[ge],enumerable:!0});T.provide(li,U),T.provide(Ho,Jc(V)),T.provide(io,c);const Z=T.unmount;j.add(T),T.unmount=function(){j.delete(T),j.size<1&&(l=Ht,P&&P(),P=null,c.value=Ht,M=!1,X=!1),Z()}}};function de(T){return T.reduce((U,V)=>U.then(()=>R(V)),Promise.resolve())}return we}function Jp(e,t){const r=[],s=[],n=[],i=Math.max(t.matched.length,e.matched.length);for(let o=0;oNr(l,a))?s.push(a):r.push(a));const c=e.matched[o];c&&(t.matched.find(l=>Nr(l,c))||n.push(c))}return[r,s,n]}function kt(){return dt(li)}function Xp(e){return dt(Ho)}function Yl(e,t){return function(){return e.apply(t,arguments)}}const{toString:Qp}=Object.prototype,{getPrototypeOf:qo}=Object,ui=(e=>t=>{const r=Qp.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),bt=e=>(e=e.toLowerCase(),t=>ui(t)===e),fi=e=>t=>typeof t===e,{isArray:Wr}=Array,As=fi("undefined");function Yp(e){return e!==null&&!As(e)&&e.constructor!==null&&!As(e.constructor)&&ct(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Zl=bt("ArrayBuffer");function Zp(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Zl(e.buffer),t}const e1=fi("string"),ct=fi("function"),eu=fi("number"),di=e=>e!==null&&typeof e=="object",t1=e=>e===!0||e===!1,kn=e=>{if(ui(e)!=="object")return!1;const t=qo(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},r1=bt("Date"),s1=bt("File"),n1=bt("Blob"),i1=bt("FileList"),o1=e=>di(e)&&ct(e.pipe),a1=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||ct(e.append)&&((t=ui(e))==="formdata"||t==="object"&&ct(e.toString)&&e.toString()==="[object FormData]"))},c1=bt("URLSearchParams"),[l1,u1,f1,d1]=["ReadableStream","Request","Response","Headers"].map(bt),h1=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Fs(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>"u")return;let s,n;if(typeof e!="object"&&(e=[e]),Wr(e))for(s=0,n=e.length;s0;)if(n=r[s],t===n.toLowerCase())return n;return null}const cr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,ru=e=>!As(e)&&e!==cr;function oo(){const{caseless:e}=ru(this)&&this||{},t={},r=(s,n)=>{const i=e&&tu(t,n)||n;kn(t[i])&&kn(s)?t[i]=oo(t[i],s):kn(s)?t[i]=oo({},s):Wr(s)?t[i]=s.slice():t[i]=s};for(let s=0,n=arguments.length;s(Fs(t,(n,i)=>{r&&ct(n)?e[i]=Yl(n,r):e[i]=n},{allOwnKeys:s}),e),p1=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),v1=(e,t,r,s)=>{e.prototype=Object.create(t.prototype,s),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},g1=(e,t,r,s)=>{let n,i,o;const a={};if(t=t||{},e==null)return t;do{for(n=Object.getOwnPropertyNames(e),i=n.length;i-- >0;)o=n[i],(!s||s(o,e,t))&&!a[o]&&(t[o]=e[o],a[o]=!0);e=r!==!1&&qo(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},m1=(e,t,r)=>{e=String(e),(r===void 0||r>e.length)&&(r=e.length),r-=t.length;const s=e.indexOf(t,r);return s!==-1&&s===r},_1=e=>{if(!e)return null;if(Wr(e))return e;let t=e.length;if(!eu(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},y1=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&qo(Uint8Array)),b1=(e,t)=>{const s=(e&&e[Symbol.iterator]).call(e);let n;for(;(n=s.next())&&!n.done;){const i=n.value;t.call(e,i[0],i[1])}},w1=(e,t)=>{let r;const s=[];for(;(r=e.exec(t))!==null;)s.push(r);return s},E1=bt("HTMLFormElement"),C1=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,s,n){return s.toUpperCase()+n}),N0=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),A1=bt("RegExp"),su=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),s={};Fs(r,(n,i)=>{let o;(o=t(n,i,e))!==!1&&(s[i]=o||n)}),Object.defineProperties(e,s)},B1=e=>{su(e,(t,r)=>{if(ct(e)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;const s=e[r];if(ct(s)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},S1=(e,t)=>{const r={},s=n=>{n.forEach(i=>{r[i]=!0})};return Wr(e)?s(e):s(String(e).split(t)),r},D1=()=>{},k1=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t,$i="abcdefghijklmnopqrstuvwxyz",H0="0123456789",nu={DIGIT:H0,ALPHA:$i,ALPHA_DIGIT:$i+$i.toUpperCase()+H0},F1=(e=16,t=nu.ALPHA_DIGIT)=>{let r="";const{length:s}=t;for(;e--;)r+=t[Math.random()*s|0];return r};function R1(e){return!!(e&&ct(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const T1=e=>{const t=new Array(10),r=(s,n)=>{if(di(s)){if(t.indexOf(s)>=0)return;if(!("toJSON"in s)){t[n]=s;const i=Wr(s)?[]:{};return Fs(s,(o,a)=>{const c=r(o,n+1);!As(c)&&(i[a]=c)}),t[n]=void 0,i}}return s};return r(e,0)},P1=bt("AsyncFunction"),O1=e=>e&&(di(e)||ct(e))&&ct(e.then)&&ct(e.catch),iu=((e,t)=>e?setImmediate:t?((r,s)=>(cr.addEventListener("message",({source:n,data:i})=>{n===cr&&i===r&&s.length&&s.shift()()},!1),n=>{s.push(n),cr.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",ct(cr.postMessage)),$1=typeof queueMicrotask<"u"?queueMicrotask.bind(cr):typeof process<"u"&&process.nextTick||iu,F={isArray:Wr,isArrayBuffer:Zl,isBuffer:Yp,isFormData:a1,isArrayBufferView:Zp,isString:e1,isNumber:eu,isBoolean:t1,isObject:di,isPlainObject:kn,isReadableStream:l1,isRequest:u1,isResponse:f1,isHeaders:d1,isUndefined:As,isDate:r1,isFile:s1,isBlob:n1,isRegExp:A1,isFunction:ct,isStream:o1,isURLSearchParams:c1,isTypedArray:y1,isFileList:i1,forEach:Fs,merge:oo,extend:x1,trim:h1,stripBOM:p1,inherits:v1,toFlatObject:g1,kindOf:ui,kindOfTest:bt,endsWith:m1,toArray:_1,forEachEntry:b1,matchAll:w1,isHTMLForm:E1,hasOwnProperty:N0,hasOwnProp:N0,reduceDescriptors:su,freezeMethods:B1,toObjectSet:S1,toCamelCase:C1,noop:D1,toFiniteNumber:k1,findKey:tu,global:cr,isContextDefined:ru,ALPHABET:nu,generateString:F1,isSpecCompliantForm:R1,toJSONObject:T1,isAsyncFn:P1,isThenable:O1,setImmediate:iu,asap:$1};function le(e,t,r,s,n){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),s&&(this.request=s),n&&(this.response=n,this.status=n.status?n.status:null)}F.inherits(le,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:F.toJSONObject(this.config),code:this.code,status:this.status}}});const ou=le.prototype,au={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{au[e]={value:e}});Object.defineProperties(le,au);Object.defineProperty(ou,"isAxiosError",{value:!0});le.from=(e,t,r,s,n,i)=>{const o=Object.create(ou);return F.toFlatObject(e,o,function(c){return c!==Error.prototype},a=>a!=="isAxiosError"),le.call(o,e.message,t,r,s,n),o.cause=e,o.name=e.name,i&&Object.assign(o,i),o};const L1=null;function ao(e){return F.isPlainObject(e)||F.isArray(e)}function cu(e){return F.endsWith(e,"[]")?e.slice(0,-2):e}function q0(e,t,r){return e?e.concat(t).map(function(n,i){return n=cu(n),!r&&i?"["+n+"]":n}).join(r?".":""):t}function I1(e){return F.isArray(e)&&!e.some(ao)}const j1=F.toFlatObject(F,{},null,function(t){return/^is[A-Z]/.test(t)});function hi(e,t,r){if(!F.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,r=F.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(g,p){return!F.isUndefined(p[g])});const s=r.metaTokens,n=r.visitor||u,i=r.dots,o=r.indexes,c=(r.Blob||typeof Blob<"u"&&Blob)&&F.isSpecCompliantForm(t);if(!F.isFunction(n))throw new TypeError("visitor must be a function");function l(x){if(x===null)return"";if(F.isDate(x))return x.toISOString();if(!c&&F.isBlob(x))throw new le("Blob is not supported. Use a Buffer instead.");return F.isArrayBuffer(x)||F.isTypedArray(x)?c&&typeof Blob=="function"?new Blob([x]):Buffer.from(x):x}function u(x,g,p){let b=x;if(x&&!p&&typeof x=="object"){if(F.endsWith(g,"{}"))g=s?g:g.slice(0,-2),x=JSON.stringify(x);else if(F.isArray(x)&&I1(x)||(F.isFileList(x)||F.endsWith(g,"[]"))&&(b=F.toArray(x)))return g=cu(g),b.forEach(function(m,_){!(F.isUndefined(m)||m===null)&&t.append(o===!0?q0([g],_,i):o===null?g:g+"[]",l(m))}),!1}return ao(x)?!0:(t.append(q0(p,g,i),l(x)),!1)}const f=[],d=Object.assign(j1,{defaultVisitor:u,convertValue:l,isVisitable:ao});function h(x,g){if(!F.isUndefined(x)){if(f.indexOf(x)!==-1)throw Error("Circular reference detected in "+g.join("."));f.push(x),F.forEach(x,function(b,v){(!(F.isUndefined(b)||b===null)&&n.call(t,b,F.isString(v)?v.trim():v,g,d))===!0&&h(b,g?g.concat(v):[v])}),f.pop()}}if(!F.isObject(e))throw new TypeError("data must be an object");return h(e),t}function M0(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(s){return t[s]})}function Mo(e,t){this._pairs=[],e&&hi(e,this,t)}const lu=Mo.prototype;lu.append=function(t,r){this._pairs.push([t,r])};lu.toString=function(t){const r=t?function(s){return t.call(this,s,M0)}:M0;return this._pairs.map(function(n){return r(n[0])+"="+r(n[1])},"").join("&")};function U1(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function uu(e,t,r){if(!t)return e;const s=r&&r.encode||U1;F.isFunction(r)&&(r={serialize:r});const n=r&&r.serialize;let i;if(n?i=n(t,r):i=F.isURLSearchParams(t)?t.toString():new Mo(t,r).toString(s),i){const o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class z0{constructor(){this.handlers=[]}use(t,r,s){return this.handlers.push({fulfilled:t,rejected:r,synchronous:s?s.synchronous:!1,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){F.forEach(this.handlers,function(s){s!==null&&t(s)})}}const fu={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},N1=typeof URLSearchParams<"u"?URLSearchParams:Mo,H1=typeof FormData<"u"?FormData:null,q1=typeof Blob<"u"?Blob:null,M1={isBrowser:!0,classes:{URLSearchParams:N1,FormData:H1,Blob:q1},protocols:["http","https","file","blob","url","data"]},zo=typeof window<"u"&&typeof document<"u",co=typeof navigator=="object"&&navigator||void 0,z1=zo&&(!co||["ReactNative","NativeScript","NS"].indexOf(co.product)<0),W1=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",G1=zo&&window.location.href||"http://localhost",V1=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:zo,hasStandardBrowserEnv:z1,hasStandardBrowserWebWorkerEnv:W1,navigator:co,origin:G1},Symbol.toStringTag,{value:"Module"})),Ke={...V1,...M1};function K1(e,t){return hi(e,new Ke.classes.URLSearchParams,Object.assign({visitor:function(r,s,n,i){return Ke.isNode&&F.isBuffer(r)?(this.append(s,r.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)}},t))}function J1(e){return F.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function X1(e){const t={},r=Object.keys(e);let s;const n=r.length;let i;for(s=0;s=r.length;return o=!o&&F.isArray(n)?n.length:o,c?(F.hasOwnProp(n,o)?n[o]=[n[o],s]:n[o]=s,!a):((!n[o]||!F.isObject(n[o]))&&(n[o]=[]),t(r,s,n[o],i)&&F.isArray(n[o])&&(n[o]=X1(n[o])),!a)}if(F.isFormData(e)&&F.isFunction(e.entries)){const r={};return F.forEachEntry(e,(s,n)=>{t(J1(s),n,r,0)}),r}return null}function Q1(e,t,r){if(F.isString(e))try{return(t||JSON.parse)(e),F.trim(e)}catch(s){if(s.name!=="SyntaxError")throw s}return(0,JSON.stringify)(e)}const Rs={transitional:fu,adapter:["xhr","http","fetch"],transformRequest:[function(t,r){const s=r.getContentType()||"",n=s.indexOf("application/json")>-1,i=F.isObject(t);if(i&&F.isHTMLForm(t)&&(t=new FormData(t)),F.isFormData(t))return n?JSON.stringify(du(t)):t;if(F.isArrayBuffer(t)||F.isBuffer(t)||F.isStream(t)||F.isFile(t)||F.isBlob(t)||F.isReadableStream(t))return t;if(F.isArrayBufferView(t))return t.buffer;if(F.isURLSearchParams(t))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(i){if(s.indexOf("application/x-www-form-urlencoded")>-1)return K1(t,this.formSerializer).toString();if((a=F.isFileList(t))||s.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return hi(a?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||n?(r.setContentType("application/json",!1),Q1(t)):t}],transformResponse:[function(t){const r=this.transitional||Rs.transitional,s=r&&r.forcedJSONParsing,n=this.responseType==="json";if(F.isResponse(t)||F.isReadableStream(t))return t;if(t&&F.isString(t)&&(s&&!this.responseType||n)){const o=!(r&&r.silentJSONParsing)&&n;try{return JSON.parse(t)}catch(a){if(o)throw a.name==="SyntaxError"?le.from(a,le.ERR_BAD_RESPONSE,this,null,this.response):a}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ke.classes.FormData,Blob:Ke.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};F.forEach(["delete","get","head","post","put","patch"],e=>{Rs.headers[e]={}});const Y1=F.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Z1=e=>{const t={};let r,s,n;return e&&e.split(` +`).forEach(function(o){n=o.indexOf(":"),r=o.substring(0,n).trim().toLowerCase(),s=o.substring(n+1).trim(),!(!r||t[r]&&Y1[r])&&(r==="set-cookie"?t[r]?t[r].push(s):t[r]=[s]:t[r]=t[r]?t[r]+", "+s:s)}),t},W0=Symbol("internals");function es(e){return e&&String(e).trim().toLowerCase()}function Fn(e){return e===!1||e==null?e:F.isArray(e)?e.map(Fn):String(e)}function ev(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=r.exec(e);)t[s[1]]=s[2];return t}const tv=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Li(e,t,r,s,n){if(F.isFunction(s))return s.call(this,t,r);if(n&&(t=r),!!F.isString(t)){if(F.isString(s))return t.indexOf(s)!==-1;if(F.isRegExp(s))return s.test(t)}}function rv(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,r,s)=>r.toUpperCase()+s)}function sv(e,t){const r=F.toCamelCase(" "+t);["get","set","has"].forEach(s=>{Object.defineProperty(e,s+r,{value:function(n,i,o){return this[s].call(this,t,n,i,o)},configurable:!0})})}class rt{constructor(t){t&&this.set(t)}set(t,r,s){const n=this;function i(a,c,l){const u=es(c);if(!u)throw new Error("header name must be a non-empty string");const f=F.findKey(n,u);(!f||n[f]===void 0||l===!0||l===void 0&&n[f]!==!1)&&(n[f||c]=Fn(a))}const o=(a,c)=>F.forEach(a,(l,u)=>i(l,u,c));if(F.isPlainObject(t)||t instanceof this.constructor)o(t,r);else if(F.isString(t)&&(t=t.trim())&&!tv(t))o(Z1(t),r);else if(F.isHeaders(t))for(const[a,c]of t.entries())i(c,a,s);else t!=null&&i(r,t,s);return this}get(t,r){if(t=es(t),t){const s=F.findKey(this,t);if(s){const n=this[s];if(!r)return n;if(r===!0)return ev(n);if(F.isFunction(r))return r.call(this,n,s);if(F.isRegExp(r))return r.exec(n);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,r){if(t=es(t),t){const s=F.findKey(this,t);return!!(s&&this[s]!==void 0&&(!r||Li(this,this[s],s,r)))}return!1}delete(t,r){const s=this;let n=!1;function i(o){if(o=es(o),o){const a=F.findKey(s,o);a&&(!r||Li(s,s[a],a,r))&&(delete s[a],n=!0)}}return F.isArray(t)?t.forEach(i):i(t),n}clear(t){const r=Object.keys(this);let s=r.length,n=!1;for(;s--;){const i=r[s];(!t||Li(this,this[i],i,t,!0))&&(delete this[i],n=!0)}return n}normalize(t){const r=this,s={};return F.forEach(this,(n,i)=>{const o=F.findKey(s,i);if(o){r[o]=Fn(n),delete r[i];return}const a=t?rv(i):String(i).trim();a!==i&&delete r[i],r[a]=Fn(n),s[a]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const r=Object.create(null);return F.forEach(this,(s,n)=>{s!=null&&s!==!1&&(r[n]=t&&F.isArray(s)?s.join(", "):s)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,r])=>t+": "+r).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...r){const s=new this(t);return r.forEach(n=>s.set(n)),s}static accessor(t){const s=(this[W0]=this[W0]={accessors:{}}).accessors,n=this.prototype;function i(o){const a=es(o);s[a]||(sv(n,o),s[a]=!0)}return F.isArray(t)?t.forEach(i):i(t),this}}rt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);F.reduceDescriptors(rt.prototype,({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(s){this[r]=s}}});F.freezeMethods(rt);function Ii(e,t){const r=this||Rs,s=t||r,n=rt.from(s.headers);let i=s.data;return F.forEach(e,function(a){i=a.call(r,i,n.normalize(),t?t.status:void 0)}),n.normalize(),i}function hu(e){return!!(e&&e.__CANCEL__)}function Gr(e,t,r){le.call(this,e??"canceled",le.ERR_CANCELED,t,r),this.name="CanceledError"}F.inherits(Gr,le,{__CANCEL__:!0});function xu(e,t,r){const s=r.config.validateStatus;!r.status||!s||s(r.status)?e(r):t(new le("Request failed with status code "+r.status,[le.ERR_BAD_REQUEST,le.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}function nv(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function iv(e,t){e=e||10;const r=new Array(e),s=new Array(e);let n=0,i=0,o;return t=t!==void 0?t:1e3,function(c){const l=Date.now(),u=s[i];o||(o=l),r[n]=c,s[n]=l;let f=i,d=0;for(;f!==n;)d+=r[f++],f=f%e;if(n=(n+1)%e,n===i&&(i=(i+1)%e),l-o{r=u,n=null,i&&(clearTimeout(i),i=null),e.apply(null,l)};return[(...l)=>{const u=Date.now(),f=u-r;f>=s?o(l,u):(n=l,i||(i=setTimeout(()=>{i=null,o(n)},s-f)))},()=>n&&o(n)]}const Nn=(e,t,r=3)=>{let s=0;const n=iv(50,250);return ov(i=>{const o=i.loaded,a=i.lengthComputable?i.total:void 0,c=o-s,l=n(c),u=o<=a;s=o;const f={loaded:o,total:a,progress:a?o/a:void 0,bytes:c,rate:l||void 0,estimated:l&&a&&u?(a-o)/l:void 0,event:i,lengthComputable:a!=null,[t?"download":"upload"]:!0};e(f)},r)},G0=(e,t)=>{const r=e!=null;return[s=>t[0]({lengthComputable:r,total:e,loaded:s}),t[1]]},V0=e=>(...t)=>F.asap(()=>e(...t)),av=Ke.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,Ke.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(Ke.origin),Ke.navigator&&/(msie|trident)/i.test(Ke.navigator.userAgent)):()=>!0,cv=Ke.hasStandardBrowserEnv?{write(e,t,r,s,n,i){const o=[e+"="+encodeURIComponent(t)];F.isNumber(r)&&o.push("expires="+new Date(r).toGMTString()),F.isString(s)&&o.push("path="+s),F.isString(n)&&o.push("domain="+n),i===!0&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function lv(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function uv(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function pu(e,t){return e&&!lv(t)?uv(e,t):t}const K0=e=>e instanceof rt?{...e}:e;function pr(e,t){t=t||{};const r={};function s(l,u,f,d){return F.isPlainObject(l)&&F.isPlainObject(u)?F.merge.call({caseless:d},l,u):F.isPlainObject(u)?F.merge({},u):F.isArray(u)?u.slice():u}function n(l,u,f,d){if(F.isUndefined(u)){if(!F.isUndefined(l))return s(void 0,l,f,d)}else return s(l,u,f,d)}function i(l,u){if(!F.isUndefined(u))return s(void 0,u)}function o(l,u){if(F.isUndefined(u)){if(!F.isUndefined(l))return s(void 0,l)}else return s(void 0,u)}function a(l,u,f){if(f in t)return s(l,u);if(f in e)return s(void 0,l)}const c={url:i,method:i,data:i,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:a,headers:(l,u,f)=>n(K0(l),K0(u),f,!0)};return F.forEach(Object.keys(Object.assign({},e,t)),function(u){const f=c[u]||n,d=f(e[u],t[u],u);F.isUndefined(d)&&f!==a||(r[u]=d)}),r}const vu=e=>{const t=pr({},e);let{data:r,withXSRFToken:s,xsrfHeaderName:n,xsrfCookieName:i,headers:o,auth:a}=t;t.headers=o=rt.from(o),t.url=uu(pu(t.baseURL,t.url),e.params,e.paramsSerializer),a&&o.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):"")));let c;if(F.isFormData(r)){if(Ke.hasStandardBrowserEnv||Ke.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if((c=o.getContentType())!==!1){const[l,...u]=c?c.split(";").map(f=>f.trim()).filter(Boolean):[];o.setContentType([l||"multipart/form-data",...u].join("; "))}}if(Ke.hasStandardBrowserEnv&&(s&&F.isFunction(s)&&(s=s(t)),s||s!==!1&&av(t.url))){const l=n&&i&&cv.read(i);l&&o.set(n,l)}return t},fv=typeof XMLHttpRequest<"u",dv=fv&&function(e){return new Promise(function(r,s){const n=vu(e);let i=n.data;const o=rt.from(n.headers).normalize();let{responseType:a,onUploadProgress:c,onDownloadProgress:l}=n,u,f,d,h,x;function g(){h&&h(),x&&x(),n.cancelToken&&n.cancelToken.unsubscribe(u),n.signal&&n.signal.removeEventListener("abort",u)}let p=new XMLHttpRequest;p.open(n.method.toUpperCase(),n.url,!0),p.timeout=n.timeout;function b(){if(!p)return;const m=rt.from("getAllResponseHeaders"in p&&p.getAllResponseHeaders()),E={data:!a||a==="text"||a==="json"?p.responseText:p.response,status:p.status,statusText:p.statusText,headers:m,config:e,request:p};xu(function(B){r(B),g()},function(B){s(B),g()},E),p=null}"onloadend"in p?p.onloadend=b:p.onreadystatechange=function(){!p||p.readyState!==4||p.status===0&&!(p.responseURL&&p.responseURL.indexOf("file:")===0)||setTimeout(b)},p.onabort=function(){p&&(s(new le("Request aborted",le.ECONNABORTED,e,p)),p=null)},p.onerror=function(){s(new le("Network Error",le.ERR_NETWORK,e,p)),p=null},p.ontimeout=function(){let _=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded";const E=n.transitional||fu;n.timeoutErrorMessage&&(_=n.timeoutErrorMessage),s(new le(_,E.clarifyTimeoutError?le.ETIMEDOUT:le.ECONNABORTED,e,p)),p=null},i===void 0&&o.setContentType(null),"setRequestHeader"in p&&F.forEach(o.toJSON(),function(_,E){p.setRequestHeader(E,_)}),F.isUndefined(n.withCredentials)||(p.withCredentials=!!n.withCredentials),a&&a!=="json"&&(p.responseType=n.responseType),l&&([d,x]=Nn(l,!0),p.addEventListener("progress",d)),c&&p.upload&&([f,h]=Nn(c),p.upload.addEventListener("progress",f),p.upload.addEventListener("loadend",h)),(n.cancelToken||n.signal)&&(u=m=>{p&&(s(!m||m.type?new Gr(null,e,p):m),p.abort(),p=null)},n.cancelToken&&n.cancelToken.subscribe(u),n.signal&&(n.signal.aborted?u():n.signal.addEventListener("abort",u)));const v=nv(n.url);if(v&&Ke.protocols.indexOf(v)===-1){s(new le("Unsupported protocol "+v+":",le.ERR_BAD_REQUEST,e));return}p.send(i||null)})},hv=(e,t)=>{const{length:r}=e=e?e.filter(Boolean):[];if(t||r){let s=new AbortController,n;const i=function(l){if(!n){n=!0,a();const u=l instanceof Error?l:this.reason;s.abort(u instanceof le?u:new Gr(u instanceof Error?u.message:u))}};let o=t&&setTimeout(()=>{o=null,i(new le(`timeout ${t} of ms exceeded`,le.ETIMEDOUT))},t);const a=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(l=>{l.unsubscribe?l.unsubscribe(i):l.removeEventListener("abort",i)}),e=null)};e.forEach(l=>l.addEventListener("abort",i));const{signal:c}=s;return c.unsubscribe=()=>F.asap(a),c}},xv=function*(e,t){let r=e.byteLength;if(r{const n=pv(e,t);let i=0,o,a=c=>{o||(o=!0,s&&s(c))};return new ReadableStream({async pull(c){try{const{done:l,value:u}=await n.next();if(l){a(),c.close();return}let f=u.byteLength;if(r){let d=i+=f;r(d)}c.enqueue(new Uint8Array(u))}catch(l){throw a(l),l}},cancel(c){return a(c),n.return()}},{highWaterMark:2})},xi=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",gu=xi&&typeof ReadableStream=="function",gv=xi&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),mu=(e,...t)=>{try{return!!e(...t)}catch{return!1}},mv=gu&&mu(()=>{let e=!1;const t=new Request(Ke.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),X0=64*1024,lo=gu&&mu(()=>F.isReadableStream(new Response("").body)),Hn={stream:lo&&(e=>e.body)};xi&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!Hn[t]&&(Hn[t]=F.isFunction(e[t])?r=>r[t]():(r,s)=>{throw new le(`Response type '${t}' is not supported`,le.ERR_NOT_SUPPORT,s)})})})(new Response);const _v=async e=>{if(e==null)return 0;if(F.isBlob(e))return e.size;if(F.isSpecCompliantForm(e))return(await new Request(Ke.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(F.isArrayBufferView(e)||F.isArrayBuffer(e))return e.byteLength;if(F.isURLSearchParams(e)&&(e=e+""),F.isString(e))return(await gv(e)).byteLength},yv=async(e,t)=>{const r=F.toFiniteNumber(e.getContentLength());return r??_v(t)},bv=xi&&(async e=>{let{url:t,method:r,data:s,signal:n,cancelToken:i,timeout:o,onDownloadProgress:a,onUploadProgress:c,responseType:l,headers:u,withCredentials:f="same-origin",fetchOptions:d}=vu(e);l=l?(l+"").toLowerCase():"text";let h=hv([n,i&&i.toAbortSignal()],o),x;const g=h&&h.unsubscribe&&(()=>{h.unsubscribe()});let p;try{if(c&&mv&&r!=="get"&&r!=="head"&&(p=await yv(u,s))!==0){let E=new Request(t,{method:"POST",body:s,duplex:"half"}),C;if(F.isFormData(s)&&(C=E.headers.get("content-type"))&&u.setContentType(C),E.body){const[B,S]=G0(p,Nn(V0(c)));s=J0(E.body,X0,B,S)}}F.isString(f)||(f=f?"include":"omit");const b="credentials"in Request.prototype;x=new Request(t,{...d,signal:h,method:r.toUpperCase(),headers:u.normalize().toJSON(),body:s,duplex:"half",credentials:b?f:void 0});let v=await fetch(x);const m=lo&&(l==="stream"||l==="response");if(lo&&(a||m&&g)){const E={};["status","statusText","headers"].forEach(R=>{E[R]=v[R]});const C=F.toFiniteNumber(v.headers.get("content-length")),[B,S]=a&&G0(C,Nn(V0(a),!0))||[];v=new Response(J0(v.body,X0,B,()=>{S&&S(),g&&g()}),E)}l=l||"text";let _=await Hn[F.findKey(Hn,l)||"text"](v,e);return!m&&g&&g(),await new Promise((E,C)=>{xu(E,C,{data:_,headers:rt.from(v.headers),status:v.status,statusText:v.statusText,config:e,request:x})})}catch(b){throw g&&g(),b&&b.name==="TypeError"&&/fetch/i.test(b.message)?Object.assign(new le("Network Error",le.ERR_NETWORK,e,x),{cause:b.cause||b}):le.from(b,b&&b.code,e,x)}}),uo={http:L1,xhr:dv,fetch:bv};F.forEach(uo,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Q0=e=>`- ${e}`,wv=e=>F.isFunction(e)||e===null||e===!1,_u={getAdapter:e=>{e=F.isArray(e)?e:[e];const{length:t}=e;let r,s;const n={};for(let i=0;i`adapter ${a} `+(c===!1?"is not supported by the environment":"is not available in the build"));let o=t?i.length>1?`since : +`+i.map(Q0).join(` +`):" "+Q0(i[0]):"as no adapter specified";throw new le("There is no suitable adapter to dispatch the request "+o,"ERR_NOT_SUPPORT")}return s},adapters:uo};function ji(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Gr(null,e)}function Y0(e){return ji(e),e.headers=rt.from(e.headers),e.data=Ii.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),_u.getAdapter(e.adapter||Rs.adapter)(e).then(function(s){return ji(e),s.data=Ii.call(e,e.transformResponse,s),s.headers=rt.from(s.headers),s},function(s){return hu(s)||(ji(e),s&&s.response&&(s.response.data=Ii.call(e,e.transformResponse,s.response),s.response.headers=rt.from(s.response.headers))),Promise.reject(s)})}const yu="1.7.9",pi={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{pi[e]=function(s){return typeof s===e||"a"+(t<1?"n ":" ")+e}});const Z0={};pi.transitional=function(t,r,s){function n(i,o){return"[Axios v"+yu+"] Transitional option '"+i+"'"+o+(s?". "+s:"")}return(i,o,a)=>{if(t===!1)throw new le(n(o," has been removed"+(r?" in "+r:"")),le.ERR_DEPRECATED);return r&&!Z0[o]&&(Z0[o]=!0,console.warn(n(o," has been deprecated since v"+r+" and will be removed in the near future"))),t?t(i,o,a):!0}};pi.spelling=function(t){return(r,s)=>(console.warn(`${s} is likely a misspelling of ${t}`),!0)};function Ev(e,t,r){if(typeof e!="object")throw new le("options must be an object",le.ERR_BAD_OPTION_VALUE);const s=Object.keys(e);let n=s.length;for(;n-- >0;){const i=s[n],o=t[i];if(o){const a=e[i],c=a===void 0||o(a,i,e);if(c!==!0)throw new le("option "+i+" must be "+c,le.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new le("Unknown option "+i,le.ERR_BAD_OPTION)}}const Rn={assertOptions:Ev,validators:pi},Et=Rn.validators;class hr{constructor(t){this.defaults=t,this.interceptors={request:new z0,response:new z0}}async request(t,r){try{return await this._request(t,r)}catch(s){if(s instanceof Error){let n={};Error.captureStackTrace?Error.captureStackTrace(n):n=new Error;const i=n.stack?n.stack.replace(/^.+\n/,""):"";try{s.stack?i&&!String(s.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(s.stack+=` +`+i):s.stack=i}catch{}}throw s}}_request(t,r){typeof t=="string"?(r=r||{},r.url=t):r=t||{},r=pr(this.defaults,r);const{transitional:s,paramsSerializer:n,headers:i}=r;s!==void 0&&Rn.assertOptions(s,{silentJSONParsing:Et.transitional(Et.boolean),forcedJSONParsing:Et.transitional(Et.boolean),clarifyTimeoutError:Et.transitional(Et.boolean)},!1),n!=null&&(F.isFunction(n)?r.paramsSerializer={serialize:n}:Rn.assertOptions(n,{encode:Et.function,serialize:Et.function},!0)),Rn.assertOptions(r,{baseUrl:Et.spelling("baseURL"),withXsrfToken:Et.spelling("withXSRFToken")},!0),r.method=(r.method||this.defaults.method||"get").toLowerCase();let o=i&&F.merge(i.common,i[r.method]);i&&F.forEach(["delete","get","head","post","put","patch","common"],x=>{delete i[x]}),r.headers=rt.concat(o,i);const a=[];let c=!0;this.interceptors.request.forEach(function(g){typeof g.runWhen=="function"&&g.runWhen(r)===!1||(c=c&&g.synchronous,a.unshift(g.fulfilled,g.rejected))});const l=[];this.interceptors.response.forEach(function(g){l.push(g.fulfilled,g.rejected)});let u,f=0,d;if(!c){const x=[Y0.bind(this),void 0];for(x.unshift.apply(x,a),x.push.apply(x,l),d=x.length,u=Promise.resolve(r);f{if(!s._listeners)return;let i=s._listeners.length;for(;i-- >0;)s._listeners[i](n);s._listeners=null}),this.promise.then=n=>{let i;const o=new Promise(a=>{s.subscribe(a),i=a}).then(n);return o.cancel=function(){s.unsubscribe(i)},o},t(function(i,o,a){s.reason||(s.reason=new Gr(i,o,a),r(s.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const r=this._listeners.indexOf(t);r!==-1&&this._listeners.splice(r,1)}toAbortSignal(){const t=new AbortController,r=s=>{t.abort(s)};return this.subscribe(r),t.signal.unsubscribe=()=>this.unsubscribe(r),t.signal}static source(){let t;return{token:new Wo(function(n){t=n}),cancel:t}}}function Cv(e){return function(r){return e.apply(null,r)}}function Av(e){return F.isObject(e)&&e.isAxiosError===!0}const fo={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(fo).forEach(([e,t])=>{fo[t]=e});function bu(e){const t=new hr(e),r=Yl(hr.prototype.request,t);return F.extend(r,hr.prototype,t,{allOwnKeys:!0}),F.extend(r,t,null,{allOwnKeys:!0}),r.create=function(n){return bu(pr(e,n))},r}const De=bu(Rs);De.Axios=hr;De.CanceledError=Gr;De.CancelToken=Wo;De.isCancel=hu;De.VERSION=yu;De.toFormData=hi;De.AxiosError=le;De.Cancel=De.CanceledError;De.all=function(t){return Promise.all(t)};De.spread=Cv;De.isAxiosError=Av;De.mergeConfig=pr;De.AxiosHeaders=rt;De.formToJSON=e=>du(F.isHTMLForm(e)?new FormData(e):e);De.getAdapter=_u.getAdapter;De.HttpStatusCode=fo;De.default=De;class Go{constructor(){Xr(this,"url","https://retroachievements.org");Xr(this,"user",lt())}async fetchLastPlayedGames(){try{return(await De.get(`${this.url}/API/API_GetUserRecentlyPlayedGames.php`,{params:{y:this.user.key,u:this.user.username,c:10}})).data}catch(t){throw console.error("Error fetching request:",t),t}}async fetchLeaderboards(t){try{return(await De.get(`${this.url}/API/API_GetGameLeaderboards.php`,{params:{y:this.user.key,i:t}})).data}catch(r){throw console.error("Error fetching request:",r),r}}async fetchLeaderboardEntries(t){try{return(await De.get(`${this.url}/API/API_GetLeaderboardEntries.php`,{params:{y:this.user.key,i:t,c:500}})).data}catch(r){throw console.error("Error fetching request:",r),r}}}const Ts=oi("post",{state:()=>({selectedGameLeaderboards:null,selectedLeaderboard:null}),actions:{selectGameLeaderboards(e,t=!0){this.selectedGameLeaderboards=e,localStorage.setItem("selectedGameLeaderboards",JSON.stringify(e)),t&&this.router.push({name:"GameLeaderboards",params:{id:e.GameID}})},getSelectedGameLeaderboards(){return this.selectedGameLeaderboards===null&&(this.selectedGameLeaderboards=JSON.parse(localStorage.getItem("selectedGameLeaderboards"))),this.selectedGameLeaderboards},selectLeaderboard(e){this.selectedLeaderboard=e,localStorage.setItem("selectedLeaderboard",JSON.stringify(e)),this.router.push({name:"Leaderboard",params:{id:e.ID}})},getSelectedLeaderboard(){return this.selectedLeaderboard===null&&(this.selectedLeaderboard=JSON.parse(localStorage.getItem("selectedLeaderboard"))),this.selectedLeaderboard}}}),vi=oi("games",{state:()=>({lastPlayedGames:null,gamesLeaderboards:null,leaderboardEntries:null}),actions:{setLastPlayedGames(e){this.lastPlayedGames=e},setGameLeaderboards(e,t){this.gamesLeaderboards===null&&(this.gamesLeaderboards=new Map),this.gamesLeaderboards.set(e,t)},hasGameLeaderboard(e){return this.gamesLeaderboards===null&&(this.gamesLeaderboards=new Map),this.gamesLeaderboards.has(e)},getGameLeaderboards(e){return this.gamesLeaderboards===null&&(this.gamesLeaderboards=new Map),this.gamesLeaderboards.get(e)},setLeaderboardEntries(e,t){this.leaderboardEntries===null&&(this.leaderboardEntries=new Map),this.leaderboardEntries.set(e,t)},hasLeaderboardEntries(e){return this.leaderboardEntries===null&&(this.leaderboardEntries=new Map),this.leaderboardEntries.has(e)},getLeaderboardEntries(e){return this.leaderboardEntries===null&&(this.leaderboardEntries=new Map),this.leaderboardEntries.get(e)}}}),Bv="modulepreload",Sv=function(e){return"/"+e},ec={},qr=function(t,r,s){let n=Promise.resolve();if(r&&r.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),a=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));n=Promise.allSettled(r.map(c=>{if(c=Sv(c),c in ec)return;ec[c]=!0;const l=c.endsWith(".css"),u=l?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${u}`))return;const f=document.createElement("link");if(f.rel=l?"stylesheet":Bv,l||(f.as="script"),f.crossOrigin="",f.href=c,a&&f.setAttribute("nonce",a),document.head.appendChild(f),l)return new Promise((d,h)=>{f.addEventListener("load",d),f.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return n.then(o=>{for(const a of o||[])a.status==="rejected"&&i(a.reason);return t().catch(i)})},Dv=e=>{let t;return e?t=e:typeof fetch>"u"?t=(...r)=>qr(async()=>{const{default:s}=await Promise.resolve().then(()=>Vr);return{default:s}},void 0).then(({default:s})=>s(...r)):t=fetch,(...r)=>t(...r)};class Vo extends Error{constructor(t,r="FunctionsError",s){super(t),this.name=r,this.context=s}}class kv extends Vo{constructor(t){super("Failed to send a request to the Edge Function","FunctionsFetchError",t)}}class Fv extends Vo{constructor(t){super("Relay Error invoking the Edge Function","FunctionsRelayError",t)}}class Rv extends Vo{constructor(t){super("Edge Function returned a non-2xx status code","FunctionsHttpError",t)}}var ho;(function(e){e.Any="any",e.ApNortheast1="ap-northeast-1",e.ApNortheast2="ap-northeast-2",e.ApSouth1="ap-south-1",e.ApSoutheast1="ap-southeast-1",e.ApSoutheast2="ap-southeast-2",e.CaCentral1="ca-central-1",e.EuCentral1="eu-central-1",e.EuWest1="eu-west-1",e.EuWest2="eu-west-2",e.EuWest3="eu-west-3",e.SaEast1="sa-east-1",e.UsEast1="us-east-1",e.UsWest1="us-west-1",e.UsWest2="us-west-2"})(ho||(ho={}));var Tv=function(e,t,r,s){function n(i){return i instanceof r?i:new r(function(o){o(i)})}return new(r||(r=Promise))(function(i,o){function a(u){try{l(s.next(u))}catch(f){o(f)}}function c(u){try{l(s.throw(u))}catch(f){o(f)}}function l(u){u.done?i(u.value):n(u.value).then(a,c)}l((s=s.apply(e,t||[])).next())})};class Pv{constructor(t,{headers:r={},customFetch:s,region:n=ho.Any}={}){this.url=t,this.headers=r,this.region=n,this.fetch=Dv(s)}setAuth(t){this.headers.Authorization=`Bearer ${t}`}invoke(t,r={}){var s;return Tv(this,void 0,void 0,function*(){try{const{headers:n,method:i,body:o}=r;let a={},{region:c}=r;c||(c=this.region),c&&c!=="any"&&(a["x-region"]=c);let l;o&&(n&&!Object.prototype.hasOwnProperty.call(n,"Content-Type")||!n)&&(typeof Blob<"u"&&o instanceof Blob||o instanceof ArrayBuffer?(a["Content-Type"]="application/octet-stream",l=o):typeof o=="string"?(a["Content-Type"]="text/plain",l=o):typeof FormData<"u"&&o instanceof FormData?l=o:(a["Content-Type"]="application/json",l=JSON.stringify(o)));const u=yield this.fetch(`${this.url}/${t}`,{method:i||"POST",headers:Object.assign(Object.assign(Object.assign({},a),this.headers),n),body:l}).catch(x=>{throw new kv(x)}),f=u.headers.get("x-relay-error");if(f&&f==="true")throw new Fv(u);if(!u.ok)throw new Rv(u);let d=((s=u.headers.get("Content-Type"))!==null&&s!==void 0?s:"text/plain").split(";")[0].trim(),h;return d==="application/json"?h=yield u.json():d==="application/octet-stream"?h=yield u.blob():d==="text/event-stream"?h=u:d==="multipart/form-data"?h=yield u.formData():h=yield u.text(),{data:h,error:null}}catch(n){return{data:null,error:n}}})}}var Ie={},Er={},Cr={},Ar={},Br={},Sr={},Ov=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")},Mr=Ov();const $v=Mr.fetch,wu=Mr.fetch.bind(Mr),Eu=Mr.Headers,Lv=Mr.Request,Iv=Mr.Response,Vr=Object.freeze(Object.defineProperty({__proto__:null,Headers:Eu,Request:Lv,Response:Iv,default:wu,fetch:$v},Symbol.toStringTag,{value:"Module"})),jv=Il(Vr);var Is={},tc;function Cu(){if(tc)return Is;tc=1,Object.defineProperty(Is,"__esModule",{value:!0});class e extends Error{constructor(r){super(r.message),this.name="PostgrestError",this.details=r.details,this.hint=r.hint,this.code=r.code}}return Is.default=e,Is}var rc;function Au(){if(rc)return Sr;rc=1;var e=Sr&&Sr.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Sr,"__esModule",{value:!0});const t=e(jv),r=e(Cu());class s{constructor(i){this.shouldThrowOnError=!1,this.method=i.method,this.url=i.url,this.headers=i.headers,this.schema=i.schema,this.body=i.body,this.shouldThrowOnError=i.shouldThrowOnError,this.signal=i.signal,this.isMaybeSingle=i.isMaybeSingle,i.fetch?this.fetch=i.fetch:typeof fetch>"u"?this.fetch=t.default:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(i,o){return this.headers=Object.assign({},this.headers),this.headers[i]=o,this}then(i,o){this.schema===void 0||(["GET","HEAD"].includes(this.method)?this.headers["Accept-Profile"]=this.schema:this.headers["Content-Profile"]=this.schema),this.method!=="GET"&&this.method!=="HEAD"&&(this.headers["Content-Type"]="application/json");const a=this.fetch;let c=a(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async l=>{var u,f,d;let h=null,x=null,g=null,p=l.status,b=l.statusText;if(l.ok){if(this.method!=="HEAD"){const E=await l.text();E===""||(this.headers.Accept==="text/csv"||this.headers.Accept&&this.headers.Accept.includes("application/vnd.pgrst.plan+text")?x=E:x=JSON.parse(E))}const m=(u=this.headers.Prefer)===null||u===void 0?void 0:u.match(/count=(exact|planned|estimated)/),_=(f=l.headers.get("content-range"))===null||f===void 0?void 0:f.split("/");m&&_&&_.length>1&&(g=parseInt(_[1])),this.isMaybeSingle&&this.method==="GET"&&Array.isArray(x)&&(x.length>1?(h={code:"PGRST116",details:`Results contain ${x.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},x=null,g=null,p=406,b="Not Acceptable"):x.length===1?x=x[0]:x=null)}else{const m=await l.text();try{h=JSON.parse(m),Array.isArray(h)&&l.status===404&&(x=[],h=null,p=200,b="OK")}catch{l.status===404&&m===""?(p=204,b="No Content"):h={message:m}}if(h&&this.isMaybeSingle&&(!((d=h==null?void 0:h.details)===null||d===void 0)&&d.includes("0 rows"))&&(h=null,p=200,b="OK"),h&&this.shouldThrowOnError)throw new r.default(h)}return{error:h,data:x,count:g,status:p,statusText:b}});return this.shouldThrowOnError||(c=c.catch(l=>{var u,f,d;return{error:{message:`${(u=l==null?void 0:l.name)!==null&&u!==void 0?u:"FetchError"}: ${l==null?void 0:l.message}`,details:`${(f=l==null?void 0:l.stack)!==null&&f!==void 0?f:""}`,hint:"",code:`${(d=l==null?void 0:l.code)!==null&&d!==void 0?d:""}`},data:null,count:null,status:0,statusText:""}})),c.then(i,o)}}return Sr.default=s,Sr}var sc;function Bu(){if(sc)return Br;sc=1;var e=Br&&Br.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(Br,"__esModule",{value:!0});const t=e(Au());class r extends t.default{select(n){let i=!1;const o=(n??"*").split("").map(a=>/\s/.test(a)&&!i?"":(a==='"'&&(i=!i),a)).join("");return this.url.searchParams.set("select",o),this.headers.Prefer&&(this.headers.Prefer+=","),this.headers.Prefer+="return=representation",this}order(n,{ascending:i=!0,nullsFirst:o,foreignTable:a,referencedTable:c=a}={}){const l=c?`${c}.order`:"order",u=this.url.searchParams.get(l);return this.url.searchParams.set(l,`${u?`${u},`:""}${n}.${i?"asc":"desc"}${o===void 0?"":o?".nullsfirst":".nullslast"}`),this}limit(n,{foreignTable:i,referencedTable:o=i}={}){const a=typeof o>"u"?"limit":`${o}.limit`;return this.url.searchParams.set(a,`${n}`),this}range(n,i,{foreignTable:o,referencedTable:a=o}={}){const c=typeof a>"u"?"offset":`${a}.offset`,l=typeof a>"u"?"limit":`${a}.limit`;return this.url.searchParams.set(c,`${n}`),this.url.searchParams.set(l,`${i-n+1}`),this}abortSignal(n){return this.signal=n,this}single(){return this.headers.Accept="application/vnd.pgrst.object+json",this}maybeSingle(){return this.method==="GET"?this.headers.Accept="application/json":this.headers.Accept="application/vnd.pgrst.object+json",this.isMaybeSingle=!0,this}csv(){return this.headers.Accept="text/csv",this}geojson(){return this.headers.Accept="application/geo+json",this}explain({analyze:n=!1,verbose:i=!1,settings:o=!1,buffers:a=!1,wal:c=!1,format:l="text"}={}){var u;const f=[n?"analyze":null,i?"verbose":null,o?"settings":null,a?"buffers":null,c?"wal":null].filter(Boolean).join("|"),d=(u=this.headers.Accept)!==null&&u!==void 0?u:"application/json";return this.headers.Accept=`application/vnd.pgrst.plan+${l}; for="${d}"; options=${f};`,l==="json"?this:this}rollback(){var n;return((n=this.headers.Prefer)!==null&&n!==void 0?n:"").trim().length>0?this.headers.Prefer+=",tx=rollback":this.headers.Prefer="tx=rollback",this}returns(){return this}}return Br.default=r,Br}var nc;function Ko(){if(nc)return Ar;nc=1;var e=Ar&&Ar.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(Ar,"__esModule",{value:!0});const t=e(Bu());class r extends t.default{eq(n,i){return this.url.searchParams.append(n,`eq.${i}`),this}neq(n,i){return this.url.searchParams.append(n,`neq.${i}`),this}gt(n,i){return this.url.searchParams.append(n,`gt.${i}`),this}gte(n,i){return this.url.searchParams.append(n,`gte.${i}`),this}lt(n,i){return this.url.searchParams.append(n,`lt.${i}`),this}lte(n,i){return this.url.searchParams.append(n,`lte.${i}`),this}like(n,i){return this.url.searchParams.append(n,`like.${i}`),this}likeAllOf(n,i){return this.url.searchParams.append(n,`like(all).{${i.join(",")}}`),this}likeAnyOf(n,i){return this.url.searchParams.append(n,`like(any).{${i.join(",")}}`),this}ilike(n,i){return this.url.searchParams.append(n,`ilike.${i}`),this}ilikeAllOf(n,i){return this.url.searchParams.append(n,`ilike(all).{${i.join(",")}}`),this}ilikeAnyOf(n,i){return this.url.searchParams.append(n,`ilike(any).{${i.join(",")}}`),this}is(n,i){return this.url.searchParams.append(n,`is.${i}`),this}in(n,i){const o=Array.from(new Set(i)).map(a=>typeof a=="string"&&new RegExp("[,()]").test(a)?`"${a}"`:`${a}`).join(",");return this.url.searchParams.append(n,`in.(${o})`),this}contains(n,i){return typeof i=="string"?this.url.searchParams.append(n,`cs.${i}`):Array.isArray(i)?this.url.searchParams.append(n,`cs.{${i.join(",")}}`):this.url.searchParams.append(n,`cs.${JSON.stringify(i)}`),this}containedBy(n,i){return typeof i=="string"?this.url.searchParams.append(n,`cd.${i}`):Array.isArray(i)?this.url.searchParams.append(n,`cd.{${i.join(",")}}`):this.url.searchParams.append(n,`cd.${JSON.stringify(i)}`),this}rangeGt(n,i){return this.url.searchParams.append(n,`sr.${i}`),this}rangeGte(n,i){return this.url.searchParams.append(n,`nxl.${i}`),this}rangeLt(n,i){return this.url.searchParams.append(n,`sl.${i}`),this}rangeLte(n,i){return this.url.searchParams.append(n,`nxr.${i}`),this}rangeAdjacent(n,i){return this.url.searchParams.append(n,`adj.${i}`),this}overlaps(n,i){return typeof i=="string"?this.url.searchParams.append(n,`ov.${i}`):this.url.searchParams.append(n,`ov.{${i.join(",")}}`),this}textSearch(n,i,{config:o,type:a}={}){let c="";a==="plain"?c="pl":a==="phrase"?c="ph":a==="websearch"&&(c="w");const l=o===void 0?"":`(${o})`;return this.url.searchParams.append(n,`${c}fts${l}.${i}`),this}match(n){return Object.entries(n).forEach(([i,o])=>{this.url.searchParams.append(i,`eq.${o}`)}),this}not(n,i,o){return this.url.searchParams.append(n,`not.${i}.${o}`),this}or(n,{foreignTable:i,referencedTable:o=i}={}){const a=o?`${o}.or`:"or";return this.url.searchParams.append(a,`(${n})`),this}filter(n,i,o){return this.url.searchParams.append(n,`${i}.${o}`),this}}return Ar.default=r,Ar}var ic;function Su(){if(ic)return Cr;ic=1;var e=Cr&&Cr.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(Cr,"__esModule",{value:!0});const t=e(Ko());class r{constructor(n,{headers:i={},schema:o,fetch:a}){this.url=n,this.headers=i,this.schema=o,this.fetch=a}select(n,{head:i=!1,count:o}={}){const a=i?"HEAD":"GET";let c=!1;const l=(n??"*").split("").map(u=>/\s/.test(u)&&!c?"":(u==='"'&&(c=!c),u)).join("");return this.url.searchParams.set("select",l),o&&(this.headers.Prefer=`count=${o}`),new t.default({method:a,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch,allowEmpty:!1})}insert(n,{count:i,defaultToNull:o=!0}={}){const a="POST",c=[];if(this.headers.Prefer&&c.push(this.headers.Prefer),i&&c.push(`count=${i}`),o||c.push("missing=default"),this.headers.Prefer=c.join(","),Array.isArray(n)){const l=n.reduce((u,f)=>u.concat(Object.keys(f)),[]);if(l.length>0){const u=[...new Set(l)].map(f=>`"${f}"`);this.url.searchParams.set("columns",u.join(","))}}return new t.default({method:a,url:this.url,headers:this.headers,schema:this.schema,body:n,fetch:this.fetch,allowEmpty:!1})}upsert(n,{onConflict:i,ignoreDuplicates:o=!1,count:a,defaultToNull:c=!0}={}){const l="POST",u=[`resolution=${o?"ignore":"merge"}-duplicates`];if(i!==void 0&&this.url.searchParams.set("on_conflict",i),this.headers.Prefer&&u.push(this.headers.Prefer),a&&u.push(`count=${a}`),c||u.push("missing=default"),this.headers.Prefer=u.join(","),Array.isArray(n)){const f=n.reduce((d,h)=>d.concat(Object.keys(h)),[]);if(f.length>0){const d=[...new Set(f)].map(h=>`"${h}"`);this.url.searchParams.set("columns",d.join(","))}}return new t.default({method:l,url:this.url,headers:this.headers,schema:this.schema,body:n,fetch:this.fetch,allowEmpty:!1})}update(n,{count:i}={}){const o="PATCH",a=[];return this.headers.Prefer&&a.push(this.headers.Prefer),i&&a.push(`count=${i}`),this.headers.Prefer=a.join(","),new t.default({method:o,url:this.url,headers:this.headers,schema:this.schema,body:n,fetch:this.fetch,allowEmpty:!1})}delete({count:n}={}){const i="DELETE",o=[];return n&&o.push(`count=${n}`),this.headers.Prefer&&o.unshift(this.headers.Prefer),this.headers.Prefer=o.join(","),new t.default({method:i,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch,allowEmpty:!1})}}return Cr.default=r,Cr}var ts={},rs={},oc;function Uv(){return oc||(oc=1,Object.defineProperty(rs,"__esModule",{value:!0}),rs.version=void 0,rs.version="0.0.0-automated"),rs}var ac;function Nv(){if(ac)return ts;ac=1,Object.defineProperty(ts,"__esModule",{value:!0}),ts.DEFAULT_HEADERS=void 0;const e=Uv();return ts.DEFAULT_HEADERS={"X-Client-Info":`postgrest-js/${e.version}`},ts}var cc;function Hv(){if(cc)return Er;cc=1;var e=Er&&Er.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Er,"__esModule",{value:!0});const t=e(Su()),r=e(Ko()),s=Nv();class n{constructor(o,{headers:a={},schema:c,fetch:l}={}){this.url=o,this.headers=Object.assign(Object.assign({},s.DEFAULT_HEADERS),a),this.schemaName=c,this.fetch=l}from(o){const a=new URL(`${this.url}/${o}`);return new t.default(a,{headers:Object.assign({},this.headers),schema:this.schemaName,fetch:this.fetch})}schema(o){return new n(this.url,{headers:this.headers,schema:o,fetch:this.fetch})}rpc(o,a={},{head:c=!1,get:l=!1,count:u}={}){let f;const d=new URL(`${this.url}/rpc/${o}`);let h;c||l?(f=c?"HEAD":"GET",Object.entries(a).filter(([g,p])=>p!==void 0).map(([g,p])=>[g,Array.isArray(p)?`{${p.join(",")}}`:`${p}`]).forEach(([g,p])=>{d.searchParams.append(g,p)})):(f="POST",h=a);const x=Object.assign({},this.headers);return u&&(x.Prefer=`count=${u}`),new r.default({method:f,url:d,headers:x,schema:this.schemaName,body:h,fetch:this.fetch,allowEmpty:!1})}}return Er.default=n,Er}var lc;function qv(){if(lc)return Ie;lc=1;var e=Ie&&Ie.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(Ie,"__esModule",{value:!0}),Ie.PostgrestError=Ie.PostgrestBuilder=Ie.PostgrestTransformBuilder=Ie.PostgrestFilterBuilder=Ie.PostgrestQueryBuilder=Ie.PostgrestClient=void 0;const t=e(Hv());Ie.PostgrestClient=t.default;const r=e(Su());Ie.PostgrestQueryBuilder=r.default;const s=e(Ko());Ie.PostgrestFilterBuilder=s.default;const n=e(Bu());Ie.PostgrestTransformBuilder=n.default;const i=e(Au());Ie.PostgrestBuilder=i.default;const o=e(Cu());return Ie.PostgrestError=o.default,Ie.default={PostgrestClient:t.default,PostgrestQueryBuilder:r.default,PostgrestFilterBuilder:s.default,PostgrestTransformBuilder:n.default,PostgrestBuilder:i.default,PostgrestError:o.default},Ie}var Mv=qv();const zv=Ll(Mv),{PostgrestClient:Wv,PostgrestQueryBuilder:ay,PostgrestFilterBuilder:cy,PostgrestTransformBuilder:ly,PostgrestBuilder:uy,PostgrestError:fy}=zv,Gv="2.11.2",Vv={"X-Client-Info":`realtime-js/${Gv}`},Kv="1.0.0",Du=1e4,Jv=1e3;var jr;(function(e){e[e.connecting=0]="connecting",e[e.open=1]="open",e[e.closing=2]="closing",e[e.closed=3]="closed"})(jr||(jr={}));var ot;(function(e){e.closed="closed",e.errored="errored",e.joined="joined",e.joining="joining",e.leaving="leaving"})(ot||(ot={}));var xt;(function(e){e.close="phx_close",e.error="phx_error",e.join="phx_join",e.reply="phx_reply",e.leave="phx_leave",e.access_token="access_token"})(xt||(xt={}));var xo;(function(e){e.websocket="websocket"})(xo||(xo={}));var ar;(function(e){e.Connecting="connecting",e.Open="open",e.Closing="closing",e.Closed="closed"})(ar||(ar={}));class Xv{constructor(){this.HEADER_LENGTH=1}decode(t,r){return t.constructor===ArrayBuffer?r(this._binaryDecode(t)):r(typeof t=="string"?JSON.parse(t):{})}_binaryDecode(t){const r=new DataView(t),s=new TextDecoder;return this._decodeBroadcast(t,r,s)}_decodeBroadcast(t,r,s){const n=r.getUint8(1),i=r.getUint8(2);let o=this.HEADER_LENGTH+2;const a=s.decode(t.slice(o,o+n));o=o+n;const c=s.decode(t.slice(o,o+i));o=o+i;const l=JSON.parse(s.decode(t.slice(o,t.byteLength)));return{ref:null,topic:a,event:c,payload:l}}}class ku{constructor(t,r){this.callback=t,this.timerCalc=r,this.timer=void 0,this.tries=0,this.callback=t,this.timerCalc=r}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries=this.tries+1,this.callback()},this.timerCalc(this.tries+1))}}var Be;(function(e){e.abstime="abstime",e.bool="bool",e.date="date",e.daterange="daterange",e.float4="float4",e.float8="float8",e.int2="int2",e.int4="int4",e.int4range="int4range",e.int8="int8",e.int8range="int8range",e.json="json",e.jsonb="jsonb",e.money="money",e.numeric="numeric",e.oid="oid",e.reltime="reltime",e.text="text",e.time="time",e.timestamp="timestamp",e.timestamptz="timestamptz",e.timetz="timetz",e.tsrange="tsrange",e.tstzrange="tstzrange"})(Be||(Be={}));const uc=(e,t,r={})=>{var s;const n=(s=r.skipTypes)!==null&&s!==void 0?s:[];return Object.keys(t).reduce((i,o)=>(i[o]=Qv(o,e,t,n),i),{})},Qv=(e,t,r,s)=>{const n=t.find(a=>a.name===e),i=n==null?void 0:n.type,o=r[e];return i&&!s.includes(i)?Fu(i,o):po(o)},Fu=(e,t)=>{if(e.charAt(0)==="_"){const r=e.slice(1,e.length);return tg(t,r)}switch(e){case Be.bool:return Yv(t);case Be.float4:case Be.float8:case Be.int2:case Be.int4:case Be.int8:case Be.numeric:case Be.oid:return Zv(t);case Be.json:case Be.jsonb:return eg(t);case Be.timestamp:return rg(t);case Be.abstime:case Be.date:case Be.daterange:case Be.int4range:case Be.int8range:case Be.money:case Be.reltime:case Be.text:case Be.time:case Be.timestamptz:case Be.timetz:case Be.tsrange:case Be.tstzrange:return po(t);default:return po(t)}},po=e=>e,Yv=e=>{switch(e){case"t":return!0;case"f":return!1;default:return e}},Zv=e=>{if(typeof e=="string"){const t=parseFloat(e);if(!Number.isNaN(t))return t}return e},eg=e=>{if(typeof e=="string")try{return JSON.parse(e)}catch(t){return console.log(`JSON parse error: ${t}`),e}return e},tg=(e,t)=>{if(typeof e!="string")return e;const r=e.length-1,s=e[r];if(e[0]==="{"&&s==="}"){let i;const o=e.slice(1,r);try{i=JSON.parse("["+o+"]")}catch{i=o?o.split(","):[]}return i.map(a=>Fu(t,a))}return e},rg=e=>typeof e=="string"?e.replace(" ","T"):e,Ru=e=>{let t=e;return t=t.replace(/^ws/i,"http"),t=t.replace(/(\/socket\/websocket|\/socket|\/websocket)\/?$/i,""),t.replace(/\/+$/,"")};class Ui{constructor(t,r,s={},n=Du){this.channel=t,this.event=r,this.payload=s,this.timeout=n,this.sent=!1,this.timeoutTimer=void 0,this.ref="",this.receivedResp=null,this.recHooks=[],this.refEvent=null}resend(t){this.timeout=t,this._cancelRefEvent(),this.ref="",this.refEvent=null,this.receivedResp=null,this.sent=!1,this.send()}send(){this._hasReceived("timeout")||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload,ref:this.ref,join_ref:this.channel._joinRef()}))}updatePayload(t){this.payload=Object.assign(Object.assign({},this.payload),t)}receive(t,r){var s;return this._hasReceived(t)&&r((s=this.receivedResp)===null||s===void 0?void 0:s.response),this.recHooks.push({status:t,callback:r}),this}startTimeout(){if(this.timeoutTimer)return;this.ref=this.channel.socket._makeRef(),this.refEvent=this.channel._replyEventName(this.ref);const t=r=>{this._cancelRefEvent(),this._cancelTimeout(),this.receivedResp=r,this._matchReceive(r)};this.channel._on(this.refEvent,{},t),this.timeoutTimer=setTimeout(()=>{this.trigger("timeout",{})},this.timeout)}trigger(t,r){this.refEvent&&this.channel._trigger(this.refEvent,{status:t,response:r})}destroy(){this._cancelRefEvent(),this._cancelTimeout()}_cancelRefEvent(){this.refEvent&&this.channel._off(this.refEvent,{})}_cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=void 0}_matchReceive({status:t,response:r}){this.recHooks.filter(s=>s.status===t).forEach(s=>s.callback(r))}_hasReceived(t){return this.receivedResp&&this.receivedResp.status===t}}var fc;(function(e){e.SYNC="sync",e.JOIN="join",e.LEAVE="leave"})(fc||(fc={}));class ps{constructor(t,r){this.channel=t,this.state={},this.pendingDiffs=[],this.joinRef=null,this.caller={onJoin:()=>{},onLeave:()=>{},onSync:()=>{}};const s=(r==null?void 0:r.events)||{state:"presence_state",diff:"presence_diff"};this.channel._on(s.state,{},n=>{const{onJoin:i,onLeave:o,onSync:a}=this.caller;this.joinRef=this.channel._joinRef(),this.state=ps.syncState(this.state,n,i,o),this.pendingDiffs.forEach(c=>{this.state=ps.syncDiff(this.state,c,i,o)}),this.pendingDiffs=[],a()}),this.channel._on(s.diff,{},n=>{const{onJoin:i,onLeave:o,onSync:a}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(n):(this.state=ps.syncDiff(this.state,n,i,o),a())}),this.onJoin((n,i,o)=>{this.channel._trigger("presence",{event:"join",key:n,currentPresences:i,newPresences:o})}),this.onLeave((n,i,o)=>{this.channel._trigger("presence",{event:"leave",key:n,currentPresences:i,leftPresences:o})}),this.onSync(()=>{this.channel._trigger("presence",{event:"sync"})})}static syncState(t,r,s,n){const i=this.cloneDeep(t),o=this.transformState(r),a={},c={};return this.map(i,(l,u)=>{o[l]||(c[l]=u)}),this.map(o,(l,u)=>{const f=i[l];if(f){const d=u.map(p=>p.presence_ref),h=f.map(p=>p.presence_ref),x=u.filter(p=>h.indexOf(p.presence_ref)<0),g=f.filter(p=>d.indexOf(p.presence_ref)<0);x.length>0&&(a[l]=x),g.length>0&&(c[l]=g)}else a[l]=u}),this.syncDiff(i,{joins:a,leaves:c},s,n)}static syncDiff(t,r,s,n){const{joins:i,leaves:o}={joins:this.transformState(r.joins),leaves:this.transformState(r.leaves)};return s||(s=()=>{}),n||(n=()=>{}),this.map(i,(a,c)=>{var l;const u=(l=t[a])!==null&&l!==void 0?l:[];if(t[a]=this.cloneDeep(c),u.length>0){const f=t[a].map(h=>h.presence_ref),d=u.filter(h=>f.indexOf(h.presence_ref)<0);t[a].unshift(...d)}s(a,u,c)}),this.map(o,(a,c)=>{let l=t[a];if(!l)return;const u=c.map(f=>f.presence_ref);l=l.filter(f=>u.indexOf(f.presence_ref)<0),t[a]=l,n(a,l,c),l.length===0&&delete t[a]}),t}static map(t,r){return Object.getOwnPropertyNames(t).map(s=>r(s,t[s]))}static transformState(t){return t=this.cloneDeep(t),Object.getOwnPropertyNames(t).reduce((r,s)=>{const n=t[s];return"metas"in n?r[s]=n.metas.map(i=>(i.presence_ref=i.phx_ref,delete i.phx_ref,delete i.phx_ref_prev,i)):r[s]=n,r},{})}static cloneDeep(t){return JSON.parse(JSON.stringify(t))}onJoin(t){this.caller.onJoin=t}onLeave(t){this.caller.onLeave=t}onSync(t){this.caller.onSync=t}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel._joinRef()}}var dc;(function(e){e.ALL="*",e.INSERT="INSERT",e.UPDATE="UPDATE",e.DELETE="DELETE"})(dc||(dc={}));var hc;(function(e){e.BROADCAST="broadcast",e.PRESENCE="presence",e.POSTGRES_CHANGES="postgres_changes",e.SYSTEM="system"})(hc||(hc={}));var Ot;(function(e){e.SUBSCRIBED="SUBSCRIBED",e.TIMED_OUT="TIMED_OUT",e.CLOSED="CLOSED",e.CHANNEL_ERROR="CHANNEL_ERROR"})(Ot||(Ot={}));class Jo{constructor(t,r={config:{}},s){this.topic=t,this.params=r,this.socket=s,this.bindings={},this.state=ot.closed,this.joinedOnce=!1,this.pushBuffer=[],this.subTopic=t.replace(/^realtime:/i,""),this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:""},private:!1},r.config),this.timeout=this.socket.timeout,this.joinPush=new Ui(this,xt.join,this.params,this.timeout),this.rejoinTimer=new ku(()=>this._rejoinUntilConnected(),this.socket.reconnectAfterMs),this.joinPush.receive("ok",()=>{this.state=ot.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(n=>n.send()),this.pushBuffer=[]}),this._onClose(()=>{this.rejoinTimer.reset(),this.socket.log("channel",`close ${this.topic} ${this._joinRef()}`),this.state=ot.closed,this.socket._remove(this)}),this._onError(n=>{this._isLeaving()||this._isClosed()||(this.socket.log("channel",`error ${this.topic}`,n),this.state=ot.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive("timeout",()=>{this._isJoining()&&(this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),this.state=ot.errored,this.rejoinTimer.scheduleTimeout())}),this._on(xt.reply,{},(n,i)=>{this._trigger(this._replyEventName(i),n)}),this.presence=new ps(this),this.broadcastEndpointURL=Ru(this.socket.endPoint)+"/api/broadcast",this.private=this.params.config.private||!1}subscribe(t,r=this.timeout){var s,n;if(this.socket.isConnected()||this.socket.connect(),this.joinedOnce)throw"tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance";{const{config:{broadcast:i,presence:o,private:a}}=this.params;this._onError(u=>t==null?void 0:t(Ot.CHANNEL_ERROR,u)),this._onClose(()=>t==null?void 0:t(Ot.CLOSED));const c={},l={broadcast:i,presence:o,postgres_changes:(n=(s=this.bindings.postgres_changes)===null||s===void 0?void 0:s.map(u=>u.filter))!==null&&n!==void 0?n:[],private:a};this.socket.accessTokenValue&&(c.access_token=this.socket.accessTokenValue),this.updateJoinPayload(Object.assign({config:l},c)),this.joinedOnce=!0,this._rejoin(r),this.joinPush.receive("ok",async({postgres_changes:u})=>{var f;if(this.socket.setAuth(),u===void 0){t==null||t(Ot.SUBSCRIBED);return}else{const d=this.bindings.postgres_changes,h=(f=d==null?void 0:d.length)!==null&&f!==void 0?f:0,x=[];for(let g=0;g{t==null||t(Ot.CHANNEL_ERROR,new Error(JSON.stringify(Object.values(u).join(", ")||"error")))}).receive("timeout",()=>{t==null||t(Ot.TIMED_OUT)})}return this}presenceState(){return this.presence.state}async track(t,r={}){return await this.send({type:"presence",event:"track",payload:t},r.timeout||this.timeout)}async untrack(t={}){return await this.send({type:"presence",event:"untrack"},t)}on(t,r,s){return this._on(t,r,s)}async send(t,r={}){var s,n;if(!this._canPush()&&t.type==="broadcast"){const{event:i,payload:o}=t,c={method:"POST",headers:{Authorization:this.socket.accessTokenValue?`Bearer ${this.socket.accessTokenValue}`:"",apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":"application/json"},body:JSON.stringify({messages:[{topic:this.subTopic,event:i,payload:o,private:this.private}]})};try{const l=await this._fetchWithTimeout(this.broadcastEndpointURL,c,(s=r.timeout)!==null&&s!==void 0?s:this.timeout);return await((n=l.body)===null||n===void 0?void 0:n.cancel()),l.ok?"ok":"error"}catch(l){return l.name==="AbortError"?"timed out":"error"}}else return new Promise(i=>{var o,a,c;const l=this._push(t.type,t,r.timeout||this.timeout);t.type==="broadcast"&&!(!((c=(a=(o=this.params)===null||o===void 0?void 0:o.config)===null||a===void 0?void 0:a.broadcast)===null||c===void 0)&&c.ack)&&i("ok"),l.receive("ok",()=>i("ok")),l.receive("error",()=>i("error")),l.receive("timeout",()=>i("timed out"))})}updateJoinPayload(t){this.joinPush.updatePayload(t)}unsubscribe(t=this.timeout){this.state=ot.leaving;const r=()=>{this.socket.log("channel",`leave ${this.topic}`),this._trigger(xt.close,"leave",this._joinRef())};return this.rejoinTimer.reset(),this.joinPush.destroy(),new Promise(s=>{const n=new Ui(this,xt.leave,{},t);n.receive("ok",()=>{r(),s("ok")}).receive("timeout",()=>{r(),s("timed out")}).receive("error",()=>{s("error")}),n.send(),this._canPush()||n.trigger("ok",{})})}async _fetchWithTimeout(t,r,s){const n=new AbortController,i=setTimeout(()=>n.abort(),s),o=await this.socket.fetch(t,Object.assign(Object.assign({},r),{signal:n.signal}));return clearTimeout(i),o}_push(t,r,s=this.timeout){if(!this.joinedOnce)throw`tried to push '${t}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;let n=new Ui(this,t,r,s);return this._canPush()?n.send():(n.startTimeout(),this.pushBuffer.push(n)),n}_onMessage(t,r,s){return r}_isMember(t){return this.topic===t}_joinRef(){return this.joinPush.ref}_trigger(t,r,s){var n,i;const o=t.toLocaleLowerCase(),{close:a,error:c,leave:l,join:u}=xt;if(s&&[a,c,l,u].indexOf(o)>=0&&s!==this._joinRef())return;let d=this._onMessage(o,r,s);if(r&&!d)throw"channel onMessage callbacks must return the payload, modified or unmodified";["insert","update","delete"].includes(o)?(n=this.bindings.postgres_changes)===null||n===void 0||n.filter(h=>{var x,g,p;return((x=h.filter)===null||x===void 0?void 0:x.event)==="*"||((p=(g=h.filter)===null||g===void 0?void 0:g.event)===null||p===void 0?void 0:p.toLocaleLowerCase())===o}).map(h=>h.callback(d,s)):(i=this.bindings[o])===null||i===void 0||i.filter(h=>{var x,g,p,b,v,m;if(["broadcast","presence","postgres_changes"].includes(o))if("id"in h){const _=h.id,E=(x=h.filter)===null||x===void 0?void 0:x.event;return _&&((g=r.ids)===null||g===void 0?void 0:g.includes(_))&&(E==="*"||(E==null?void 0:E.toLocaleLowerCase())===((p=r.data)===null||p===void 0?void 0:p.type.toLocaleLowerCase()))}else{const _=(v=(b=h==null?void 0:h.filter)===null||b===void 0?void 0:b.event)===null||v===void 0?void 0:v.toLocaleLowerCase();return _==="*"||_===((m=r==null?void 0:r.event)===null||m===void 0?void 0:m.toLocaleLowerCase())}else return h.type.toLocaleLowerCase()===o}).map(h=>{if(typeof d=="object"&&"ids"in d){const x=d.data,{schema:g,table:p,commit_timestamp:b,type:v,errors:m}=x;d=Object.assign(Object.assign({},{schema:g,table:p,commit_timestamp:b,eventType:v,new:{},old:{},errors:m}),this._getPayloadRecords(x))}h.callback(d,s)})}_isClosed(){return this.state===ot.closed}_isJoined(){return this.state===ot.joined}_isJoining(){return this.state===ot.joining}_isLeaving(){return this.state===ot.leaving}_replyEventName(t){return`chan_reply_${t}`}_on(t,r,s){const n=t.toLocaleLowerCase(),i={type:n,filter:r,callback:s};return this.bindings[n]?this.bindings[n].push(i):this.bindings[n]=[i],this}_off(t,r){const s=t.toLocaleLowerCase();return this.bindings[s]=this.bindings[s].filter(n=>{var i;return!(((i=n.type)===null||i===void 0?void 0:i.toLocaleLowerCase())===s&&Jo.isEqual(n.filter,r))}),this}static isEqual(t,r){if(Object.keys(t).length!==Object.keys(r).length)return!1;for(const s in t)if(t[s]!==r[s])return!1;return!0}_rejoinUntilConnected(){this.rejoinTimer.scheduleTimeout(),this.socket.isConnected()&&this._rejoin()}_onClose(t){this._on(xt.close,{},t)}_onError(t){this._on(xt.error,{},r=>t(r))}_canPush(){return this.socket.isConnected()&&this._isJoined()}_rejoin(t=this.timeout){this._isLeaving()||(this.socket._leaveOpenTopic(this.topic),this.state=ot.joining,this.joinPush.resend(t))}_getPayloadRecords(t){const r={new:{},old:{}};return(t.type==="INSERT"||t.type==="UPDATE")&&(r.new=uc(t.columns,t.record)),(t.type==="UPDATE"||t.type==="DELETE")&&(r.old=uc(t.columns,t.old_record)),r}}const sg=()=>{},ng=typeof WebSocket<"u",ig=` + addEventListener("message", (e) => { + if (e.data.event === "start") { + setInterval(() => postMessage({ event: "keepAlive" }), e.data.interval); + } + });`;class og{constructor(t,r){var s;this.accessTokenValue=null,this.apiKey=null,this.channels=[],this.endPoint="",this.httpEndpoint="",this.headers=Vv,this.params={},this.timeout=Du,this.heartbeatIntervalMs=3e4,this.heartbeatTimer=void 0,this.pendingHeartbeatRef=null,this.ref=0,this.logger=sg,this.conn=null,this.sendBuffer=[],this.serializer=new Xv,this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.accessToken=null,this._resolveFetch=i=>{let o;return i?o=i:typeof fetch>"u"?o=(...a)=>qr(async()=>{const{default:c}=await Promise.resolve().then(()=>Vr);return{default:c}},void 0).then(({default:c})=>c(...a)):o=fetch,(...a)=>o(...a)},this.endPoint=`${t}/${xo.websocket}`,this.httpEndpoint=Ru(t),r!=null&&r.transport?this.transport=r.transport:this.transport=null,r!=null&&r.params&&(this.params=r.params),r!=null&&r.headers&&(this.headers=Object.assign(Object.assign({},this.headers),r.headers)),r!=null&&r.timeout&&(this.timeout=r.timeout),r!=null&&r.logger&&(this.logger=r.logger),r!=null&&r.heartbeatIntervalMs&&(this.heartbeatIntervalMs=r.heartbeatIntervalMs);const n=(s=r==null?void 0:r.params)===null||s===void 0?void 0:s.apikey;if(n&&(this.accessTokenValue=n,this.apiKey=n),this.reconnectAfterMs=r!=null&&r.reconnectAfterMs?r.reconnectAfterMs:i=>[1e3,2e3,5e3,1e4][i-1]||1e4,this.encode=r!=null&&r.encode?r.encode:(i,o)=>o(JSON.stringify(i)),this.decode=r!=null&&r.decode?r.decode:this.serializer.decode.bind(this.serializer),this.reconnectTimer=new ku(async()=>{this.disconnect(),this.connect()},this.reconnectAfterMs),this.fetch=this._resolveFetch(r==null?void 0:r.fetch),r!=null&&r.worker){if(typeof window<"u"&&!window.Worker)throw new Error("Web Worker is not supported");this.worker=(r==null?void 0:r.worker)||!1,this.workerUrl=r==null?void 0:r.workerUrl}this.accessToken=(r==null?void 0:r.accessToken)||null}connect(){if(!this.conn){if(this.transport){this.conn=new this.transport(this.endpointURL(),void 0,{headers:this.headers});return}if(ng){this.conn=new WebSocket(this.endpointURL()),this.setupConnection();return}this.conn=new ag(this.endpointURL(),void 0,{close:()=>{this.conn=null}}),qr(async()=>{const{default:t}=await import("./browser-Bln07Ja-.js").then(r=>r.b);return{default:t}},[]).then(({default:t})=>{this.conn=new t(this.endpointURL(),void 0,{headers:this.headers}),this.setupConnection()})}}endpointURL(){return this._appendParams(this.endPoint,Object.assign({},this.params,{vsn:Kv}))}disconnect(t,r){this.conn&&(this.conn.onclose=function(){},t?this.conn.close(t,r??""):this.conn.close(),this.conn=null,this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.reset())}getChannels(){return this.channels}async removeChannel(t){const r=await t.unsubscribe();return this.channels.length===0&&this.disconnect(),r}async removeAllChannels(){const t=await Promise.all(this.channels.map(r=>r.unsubscribe()));return this.disconnect(),t}log(t,r,s){this.logger(t,r,s)}connectionState(){switch(this.conn&&this.conn.readyState){case jr.connecting:return ar.Connecting;case jr.open:return ar.Open;case jr.closing:return ar.Closing;default:return ar.Closed}}isConnected(){return this.connectionState()===ar.Open}channel(t,r={config:{}}){const s=new Jo(`realtime:${t}`,r,this);return this.channels.push(s),s}push(t){const{topic:r,event:s,payload:n,ref:i}=t,o=()=>{this.encode(t,a=>{var c;(c=this.conn)===null||c===void 0||c.send(a)})};this.log("push",`${r} ${s} (${i})`,n),this.isConnected()?o():this.sendBuffer.push(o)}async setAuth(t=null){let r=t||this.accessToken&&await this.accessToken()||this.accessTokenValue;if(r){let s=null;try{s=JSON.parse(atob(r.split(".")[1]))}catch{}if(s&&s.exp&&!(Math.floor(Date.now()/1e3)-s.exp<0))return this.log("auth",`InvalidJWTToken: Invalid value for JWT claim "exp" with value ${s.exp}`),Promise.reject(`InvalidJWTToken: Invalid value for JWT claim "exp" with value ${s.exp}`);this.accessTokenValue=r,this.channels.forEach(n=>{r&&n.updateJoinPayload({access_token:r}),n.joinedOnce&&n._isJoined()&&n._push(xt.access_token,{access_token:r})})}}async sendHeartbeat(){var t;if(this.isConnected()){if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null,this.log("transport","heartbeat timeout. Attempting to re-establish connection"),(t=this.conn)===null||t===void 0||t.close(Jv,"hearbeat timeout");return}this.pendingHeartbeatRef=this._makeRef(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef}),this.setAuth()}}flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach(t=>t()),this.sendBuffer=[])}_makeRef(){let t=this.ref+1;return t===this.ref?this.ref=0:this.ref=t,this.ref.toString()}_leaveOpenTopic(t){let r=this.channels.find(s=>s.topic===t&&(s._isJoined()||s._isJoining()));r&&(this.log("transport",`leaving duplicate topic "${t}"`),r.unsubscribe())}_remove(t){this.channels=this.channels.filter(r=>r._joinRef()!==t._joinRef())}setupConnection(){this.conn&&(this.conn.binaryType="arraybuffer",this.conn.onopen=()=>this._onConnOpen(),this.conn.onerror=t=>this._onConnError(t),this.conn.onmessage=t=>this._onConnMessage(t),this.conn.onclose=t=>this._onConnClose(t))}_onConnMessage(t){this.decode(t.data,r=>{let{topic:s,event:n,payload:i,ref:o}=r;o&&o===this.pendingHeartbeatRef&&(this.pendingHeartbeatRef=null),this.log("receive",`${i.status||""} ${s} ${n} ${o&&"("+o+")"||""}`,i),this.channels.filter(a=>a._isMember(s)).forEach(a=>a._trigger(n,i,o)),this.stateChangeCallbacks.message.forEach(a=>a(r))})}async _onConnOpen(){if(this.log("transport",`connected to ${this.endpointURL()}`),this.flushSendBuffer(),this.reconnectTimer.reset(),!this.worker)this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.heartbeatTimer=setInterval(()=>this.sendHeartbeat(),this.heartbeatIntervalMs);else{this.workerUrl?this.log("worker",`starting worker for from ${this.workerUrl}`):this.log("worker","starting default worker");const t=this._workerObjectUrl(this.workerUrl);this.workerRef=new Worker(t),this.workerRef.onerror=r=>{this.log("worker","worker error",r.message),this.workerRef.terminate()},this.workerRef.onmessage=r=>{r.data.event==="keepAlive"&&this.sendHeartbeat()},this.workerRef.postMessage({event:"start",interval:this.heartbeatIntervalMs})}this.stateChangeCallbacks.open.forEach(t=>t())}_onConnClose(t){this.log("transport","close",t),this._triggerChanError(),this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.scheduleTimeout(),this.stateChangeCallbacks.close.forEach(r=>r(t))}_onConnError(t){this.log("transport",t.message),this._triggerChanError(),this.stateChangeCallbacks.error.forEach(r=>r(t))}_triggerChanError(){this.channels.forEach(t=>t._trigger(xt.error))}_appendParams(t,r){if(Object.keys(r).length===0)return t;const s=t.match(/\?/)?"&":"?",n=new URLSearchParams(r);return`${t}${s}${n}`}_workerObjectUrl(t){let r;if(t)r=t;else{const s=new Blob([ig],{type:"application/javascript"});r=URL.createObjectURL(s)}return r}}class ag{constructor(t,r,s){this.binaryType="arraybuffer",this.onclose=()=>{},this.onerror=()=>{},this.onmessage=()=>{},this.onopen=()=>{},this.readyState=jr.connecting,this.send=()=>{},this.url=null,this.url=t,this.close=s.close}}class Xo extends Error{constructor(t){super(t),this.__isStorageError=!0,this.name="StorageError"}}function je(e){return typeof e=="object"&&e!==null&&"__isStorageError"in e}class cg extends Xo{constructor(t,r){super(t),this.name="StorageApiError",this.status=r}toJSON(){return{name:this.name,message:this.message,status:this.status}}}class vo extends Xo{constructor(t,r){super(t),this.name="StorageUnknownError",this.originalError=r}}var lg=function(e,t,r,s){function n(i){return i instanceof r?i:new r(function(o){o(i)})}return new(r||(r=Promise))(function(i,o){function a(u){try{l(s.next(u))}catch(f){o(f)}}function c(u){try{l(s.throw(u))}catch(f){o(f)}}function l(u){u.done?i(u.value):n(u.value).then(a,c)}l((s=s.apply(e,t||[])).next())})};const Tu=e=>{let t;return e?t=e:typeof fetch>"u"?t=(...r)=>qr(async()=>{const{default:s}=await Promise.resolve().then(()=>Vr);return{default:s}},void 0).then(({default:s})=>s(...r)):t=fetch,(...r)=>t(...r)},ug=()=>lg(void 0,void 0,void 0,function*(){return typeof Response>"u"?(yield qr(()=>Promise.resolve().then(()=>Vr),void 0)).Response:Response}),go=e=>{if(Array.isArray(e))return e.map(r=>go(r));if(typeof e=="function"||e!==Object(e))return e;const t={};return Object.entries(e).forEach(([r,s])=>{const n=r.replace(/([-_][a-z])/gi,i=>i.toUpperCase().replace(/[-_]/g,""));t[n]=go(s)}),t};var _r=function(e,t,r,s){function n(i){return i instanceof r?i:new r(function(o){o(i)})}return new(r||(r=Promise))(function(i,o){function a(u){try{l(s.next(u))}catch(f){o(f)}}function c(u){try{l(s.throw(u))}catch(f){o(f)}}function l(u){u.done?i(u.value):n(u.value).then(a,c)}l((s=s.apply(e,t||[])).next())})};const Ni=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e),fg=(e,t,r)=>_r(void 0,void 0,void 0,function*(){const s=yield ug();e instanceof s&&!(r!=null&&r.noResolveJson)?e.json().then(n=>{t(new cg(Ni(n),e.status||500))}).catch(n=>{t(new vo(Ni(n),n))}):t(new vo(Ni(e),e))}),dg=(e,t,r,s)=>{const n={method:e,headers:(t==null?void 0:t.headers)||{}};return e==="GET"?n:(n.headers=Object.assign({"Content-Type":"application/json"},t==null?void 0:t.headers),s&&(n.body=JSON.stringify(s)),Object.assign(Object.assign({},n),r))};function Ps(e,t,r,s,n,i){return _r(this,void 0,void 0,function*(){return new Promise((o,a)=>{e(r,dg(t,s,n,i)).then(c=>{if(!c.ok)throw c;return s!=null&&s.noResolveJson?c:c.json()}).then(c=>o(c)).catch(c=>fg(c,a,s))})})}function qn(e,t,r,s){return _r(this,void 0,void 0,function*(){return Ps(e,"GET",t,r,s)})}function Kt(e,t,r,s,n){return _r(this,void 0,void 0,function*(){return Ps(e,"POST",t,s,n,r)})}function hg(e,t,r,s,n){return _r(this,void 0,void 0,function*(){return Ps(e,"PUT",t,s,n,r)})}function xg(e,t,r,s){return _r(this,void 0,void 0,function*(){return Ps(e,"HEAD",t,Object.assign(Object.assign({},r),{noResolveJson:!0}),s)})}function Pu(e,t,r,s,n){return _r(this,void 0,void 0,function*(){return Ps(e,"DELETE",t,s,n,r)})}var et=function(e,t,r,s){function n(i){return i instanceof r?i:new r(function(o){o(i)})}return new(r||(r=Promise))(function(i,o){function a(u){try{l(s.next(u))}catch(f){o(f)}}function c(u){try{l(s.throw(u))}catch(f){o(f)}}function l(u){u.done?i(u.value):n(u.value).then(a,c)}l((s=s.apply(e,t||[])).next())})};const pg={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},xc={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};class vg{constructor(t,r={},s,n){this.url=t,this.headers=r,this.bucketId=s,this.fetch=Tu(n)}uploadOrUpdate(t,r,s,n){return et(this,void 0,void 0,function*(){try{let i;const o=Object.assign(Object.assign({},xc),n);let a=Object.assign(Object.assign({},this.headers),t==="POST"&&{"x-upsert":String(o.upsert)});const c=o.metadata;typeof Blob<"u"&&s instanceof Blob?(i=new FormData,i.append("cacheControl",o.cacheControl),c&&i.append("metadata",this.encodeMetadata(c)),i.append("",s)):typeof FormData<"u"&&s instanceof FormData?(i=s,i.append("cacheControl",o.cacheControl),c&&i.append("metadata",this.encodeMetadata(c))):(i=s,a["cache-control"]=`max-age=${o.cacheControl}`,a["content-type"]=o.contentType,c&&(a["x-metadata"]=this.toBase64(this.encodeMetadata(c)))),n!=null&&n.headers&&(a=Object.assign(Object.assign({},a),n.headers));const l=this._removeEmptyFolders(r),u=this._getFinalPath(l),f=yield this.fetch(`${this.url}/object/${u}`,Object.assign({method:t,body:i,headers:a},o!=null&&o.duplex?{duplex:o.duplex}:{})),d=yield f.json();return f.ok?{data:{path:l,id:d.Id,fullPath:d.Key},error:null}:{data:null,error:d}}catch(i){if(je(i))return{data:null,error:i};throw i}})}upload(t,r,s){return et(this,void 0,void 0,function*(){return this.uploadOrUpdate("POST",t,r,s)})}uploadToSignedUrl(t,r,s,n){return et(this,void 0,void 0,function*(){const i=this._removeEmptyFolders(t),o=this._getFinalPath(i),a=new URL(this.url+`/object/upload/sign/${o}`);a.searchParams.set("token",r);try{let c;const l=Object.assign({upsert:xc.upsert},n),u=Object.assign(Object.assign({},this.headers),{"x-upsert":String(l.upsert)});typeof Blob<"u"&&s instanceof Blob?(c=new FormData,c.append("cacheControl",l.cacheControl),c.append("",s)):typeof FormData<"u"&&s instanceof FormData?(c=s,c.append("cacheControl",l.cacheControl)):(c=s,u["cache-control"]=`max-age=${l.cacheControl}`,u["content-type"]=l.contentType);const f=yield this.fetch(a.toString(),{method:"PUT",body:c,headers:u}),d=yield f.json();return f.ok?{data:{path:i,fullPath:d.Key},error:null}:{data:null,error:d}}catch(c){if(je(c))return{data:null,error:c};throw c}})}createSignedUploadUrl(t,r){return et(this,void 0,void 0,function*(){try{let s=this._getFinalPath(t);const n=Object.assign({},this.headers);r!=null&&r.upsert&&(n["x-upsert"]="true");const i=yield Kt(this.fetch,`${this.url}/object/upload/sign/${s}`,{},{headers:n}),o=new URL(this.url+i.url),a=o.searchParams.get("token");if(!a)throw new Xo("No token returned by API");return{data:{signedUrl:o.toString(),path:t,token:a},error:null}}catch(s){if(je(s))return{data:null,error:s};throw s}})}update(t,r,s){return et(this,void 0,void 0,function*(){return this.uploadOrUpdate("PUT",t,r,s)})}move(t,r,s){return et(this,void 0,void 0,function*(){try{return{data:yield Kt(this.fetch,`${this.url}/object/move`,{bucketId:this.bucketId,sourceKey:t,destinationKey:r,destinationBucket:s==null?void 0:s.destinationBucket},{headers:this.headers}),error:null}}catch(n){if(je(n))return{data:null,error:n};throw n}})}copy(t,r,s){return et(this,void 0,void 0,function*(){try{return{data:{path:(yield Kt(this.fetch,`${this.url}/object/copy`,{bucketId:this.bucketId,sourceKey:t,destinationKey:r,destinationBucket:s==null?void 0:s.destinationBucket},{headers:this.headers})).Key},error:null}}catch(n){if(je(n))return{data:null,error:n};throw n}})}createSignedUrl(t,r,s){return et(this,void 0,void 0,function*(){try{let n=this._getFinalPath(t),i=yield Kt(this.fetch,`${this.url}/object/sign/${n}`,Object.assign({expiresIn:r},s!=null&&s.transform?{transform:s.transform}:{}),{headers:this.headers});const o=s!=null&&s.download?`&download=${s.download===!0?"":s.download}`:"";return i={signedUrl:encodeURI(`${this.url}${i.signedURL}${o}`)},{data:i,error:null}}catch(n){if(je(n))return{data:null,error:n};throw n}})}createSignedUrls(t,r,s){return et(this,void 0,void 0,function*(){try{const n=yield Kt(this.fetch,`${this.url}/object/sign/${this.bucketId}`,{expiresIn:r,paths:t},{headers:this.headers}),i=s!=null&&s.download?`&download=${s.download===!0?"":s.download}`:"";return{data:n.map(o=>Object.assign(Object.assign({},o),{signedUrl:o.signedURL?encodeURI(`${this.url}${o.signedURL}${i}`):null})),error:null}}catch(n){if(je(n))return{data:null,error:n};throw n}})}download(t,r){return et(this,void 0,void 0,function*(){const n=typeof(r==null?void 0:r.transform)<"u"?"render/image/authenticated":"object",i=this.transformOptsToQueryString((r==null?void 0:r.transform)||{}),o=i?`?${i}`:"";try{const a=this._getFinalPath(t);return{data:yield(yield qn(this.fetch,`${this.url}/${n}/${a}${o}`,{headers:this.headers,noResolveJson:!0})).blob(),error:null}}catch(a){if(je(a))return{data:null,error:a};throw a}})}info(t){return et(this,void 0,void 0,function*(){const r=this._getFinalPath(t);try{const s=yield qn(this.fetch,`${this.url}/object/info/${r}`,{headers:this.headers});return{data:go(s),error:null}}catch(s){if(je(s))return{data:null,error:s};throw s}})}exists(t){return et(this,void 0,void 0,function*(){const r=this._getFinalPath(t);try{return yield xg(this.fetch,`${this.url}/object/${r}`,{headers:this.headers}),{data:!0,error:null}}catch(s){if(je(s)&&s instanceof vo){const n=s.originalError;if([400,404].includes(n==null?void 0:n.status))return{data:!1,error:s}}throw s}})}getPublicUrl(t,r){const s=this._getFinalPath(t),n=[],i=r!=null&&r.download?`download=${r.download===!0?"":r.download}`:"";i!==""&&n.push(i);const a=typeof(r==null?void 0:r.transform)<"u"?"render/image":"object",c=this.transformOptsToQueryString((r==null?void 0:r.transform)||{});c!==""&&n.push(c);let l=n.join("&");return l!==""&&(l=`?${l}`),{data:{publicUrl:encodeURI(`${this.url}/${a}/public/${s}${l}`)}}}remove(t){return et(this,void 0,void 0,function*(){try{return{data:yield Pu(this.fetch,`${this.url}/object/${this.bucketId}`,{prefixes:t},{headers:this.headers}),error:null}}catch(r){if(je(r))return{data:null,error:r};throw r}})}list(t,r,s){return et(this,void 0,void 0,function*(){try{const n=Object.assign(Object.assign(Object.assign({},pg),r),{prefix:t||""});return{data:yield Kt(this.fetch,`${this.url}/object/list/${this.bucketId}`,n,{headers:this.headers},s),error:null}}catch(n){if(je(n))return{data:null,error:n};throw n}})}encodeMetadata(t){return JSON.stringify(t)}toBase64(t){return typeof Buffer<"u"?Buffer.from(t).toString("base64"):btoa(t)}_getFinalPath(t){return`${this.bucketId}/${t}`}_removeEmptyFolders(t){return t.replace(/^\/|\/$/g,"").replace(/\/+/g,"/")}transformOptsToQueryString(t){const r=[];return t.width&&r.push(`width=${t.width}`),t.height&&r.push(`height=${t.height}`),t.resize&&r.push(`resize=${t.resize}`),t.format&&r.push(`format=${t.format}`),t.quality&&r.push(`quality=${t.quality}`),r.join("&")}}const gg="2.7.1",mg={"X-Client-Info":`storage-js/${gg}`};var Dr=function(e,t,r,s){function n(i){return i instanceof r?i:new r(function(o){o(i)})}return new(r||(r=Promise))(function(i,o){function a(u){try{l(s.next(u))}catch(f){o(f)}}function c(u){try{l(s.throw(u))}catch(f){o(f)}}function l(u){u.done?i(u.value):n(u.value).then(a,c)}l((s=s.apply(e,t||[])).next())})};class _g{constructor(t,r={},s){this.url=t,this.headers=Object.assign(Object.assign({},mg),r),this.fetch=Tu(s)}listBuckets(){return Dr(this,void 0,void 0,function*(){try{return{data:yield qn(this.fetch,`${this.url}/bucket`,{headers:this.headers}),error:null}}catch(t){if(je(t))return{data:null,error:t};throw t}})}getBucket(t){return Dr(this,void 0,void 0,function*(){try{return{data:yield qn(this.fetch,`${this.url}/bucket/${t}`,{headers:this.headers}),error:null}}catch(r){if(je(r))return{data:null,error:r};throw r}})}createBucket(t,r={public:!1}){return Dr(this,void 0,void 0,function*(){try{return{data:yield Kt(this.fetch,`${this.url}/bucket`,{id:t,name:t,public:r.public,file_size_limit:r.fileSizeLimit,allowed_mime_types:r.allowedMimeTypes},{headers:this.headers}),error:null}}catch(s){if(je(s))return{data:null,error:s};throw s}})}updateBucket(t,r){return Dr(this,void 0,void 0,function*(){try{return{data:yield hg(this.fetch,`${this.url}/bucket/${t}`,{id:t,name:t,public:r.public,file_size_limit:r.fileSizeLimit,allowed_mime_types:r.allowedMimeTypes},{headers:this.headers}),error:null}}catch(s){if(je(s))return{data:null,error:s};throw s}})}emptyBucket(t){return Dr(this,void 0,void 0,function*(){try{return{data:yield Kt(this.fetch,`${this.url}/bucket/${t}/empty`,{},{headers:this.headers}),error:null}}catch(r){if(je(r))return{data:null,error:r};throw r}})}deleteBucket(t){return Dr(this,void 0,void 0,function*(){try{return{data:yield Pu(this.fetch,`${this.url}/bucket/${t}`,{},{headers:this.headers}),error:null}}catch(r){if(je(r))return{data:null,error:r};throw r}})}}class yg extends _g{constructor(t,r={},s){super(t,r,s)}from(t){return new vg(this.url,this.headers,t,this.fetch)}}const bg="2.47.10";let is="";typeof Deno<"u"?is="deno":typeof document<"u"?is="web":typeof navigator<"u"&&navigator.product==="ReactNative"?is="react-native":is="node";const wg={"X-Client-Info":`supabase-js-${is}/${bg}`},Eg={headers:wg},Cg={schema:"public"},Ag={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:"implicit"},Bg={};var Sg=function(e,t,r,s){function n(i){return i instanceof r?i:new r(function(o){o(i)})}return new(r||(r=Promise))(function(i,o){function a(u){try{l(s.next(u))}catch(f){o(f)}}function c(u){try{l(s.throw(u))}catch(f){o(f)}}function l(u){u.done?i(u.value):n(u.value).then(a,c)}l((s=s.apply(e,t||[])).next())})};const Dg=e=>{let t;return e?t=e:typeof fetch>"u"?t=wu:t=fetch,(...r)=>t(...r)},kg=()=>typeof Headers>"u"?Eu:Headers,Fg=(e,t,r)=>{const s=Dg(r),n=kg();return(i,o)=>Sg(void 0,void 0,void 0,function*(){var a;const c=(a=yield t())!==null&&a!==void 0?a:e;let l=new n(o==null?void 0:o.headers);return l.has("apikey")||l.set("apikey",e),l.has("Authorization")||l.set("Authorization",`Bearer ${c}`),s(i,Object.assign(Object.assign({},o),{headers:l}))})};var Rg=function(e,t,r,s){function n(i){return i instanceof r?i:new r(function(o){o(i)})}return new(r||(r=Promise))(function(i,o){function a(u){try{l(s.next(u))}catch(f){o(f)}}function c(u){try{l(s.throw(u))}catch(f){o(f)}}function l(u){u.done?i(u.value):n(u.value).then(a,c)}l((s=s.apply(e,t||[])).next())})};function Tg(e){return e.replace(/\/$/,"")}function Pg(e,t){const{db:r,auth:s,realtime:n,global:i}=e,{db:o,auth:a,realtime:c,global:l}=t,u={db:Object.assign(Object.assign({},o),r),auth:Object.assign(Object.assign({},a),s),realtime:Object.assign(Object.assign({},c),n),global:Object.assign(Object.assign({},l),i),accessToken:()=>Rg(this,void 0,void 0,function*(){return""})};return e.accessToken?u.accessToken=e.accessToken:delete u.accessToken,u}const Ou="2.67.3",Og="http://localhost:9999",$g="supabase.auth.token",Lg={"X-Client-Info":`gotrue-js/${Ou}`},pc=10,mo="X-Supabase-Api-Version",$u={"2024-01-01":{timestamp:Date.parse("2024-01-01T00:00:00.0Z"),name:"2024-01-01"}};function Ig(e){return Math.round(Date.now()/1e3)+e}function jg(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){const t=Math.random()*16|0;return(e=="x"?t:t&3|8).toString(16)})}const Ct=()=>typeof window<"u"&&typeof document<"u",nr={tested:!1,writable:!1},vs=()=>{if(!Ct())return!1;try{if(typeof globalThis.localStorage!="object")return!1}catch{return!1}if(nr.tested)return nr.writable;const e=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(e,e),globalThis.localStorage.removeItem(e),nr.tested=!0,nr.writable=!0}catch{nr.tested=!0,nr.writable=!1}return nr.writable};function Ug(e){const t={},r=new URL(e);if(r.hash&&r.hash[0]==="#")try{new URLSearchParams(r.hash.substring(1)).forEach((n,i)=>{t[i]=n})}catch{}return r.searchParams.forEach((s,n)=>{t[n]=s}),t}const Lu=e=>{let t;return e?t=e:typeof fetch>"u"?t=(...r)=>qr(async()=>{const{default:s}=await Promise.resolve().then(()=>Vr);return{default:s}},void 0).then(({default:s})=>s(...r)):t=fetch,(...r)=>t(...r)},Ng=e=>typeof e=="object"&&e!==null&&"status"in e&&"ok"in e&&"json"in e&&typeof e.json=="function",Iu=async(e,t,r)=>{await e.setItem(t,JSON.stringify(r))},js=async(e,t)=>{const r=await e.getItem(t);if(!r)return null;try{return JSON.parse(r)}catch{return r}},Us=async(e,t)=>{await e.removeItem(t)};function Hg(e){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";let r="",s,n,i,o,a,c,l,u=0;for(e=e.replace("-","+").replace("_","/");u>4,n=(a&15)<<4|c>>2,i=(c&3)<<6|l,r=r+String.fromCharCode(s),c!=64&&n!=0&&(r=r+String.fromCharCode(n)),l!=64&&i!=0&&(r=r+String.fromCharCode(i));return r}class gi{constructor(){this.promise=new gi.promiseConstructor((t,r)=>{this.resolve=t,this.reject=r})}}gi.promiseConstructor=Promise;function vc(e){const t=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}=?$|[a-z0-9_-]{2}(==)?$)$/i,r=e.split(".");if(r.length!==3)throw new Error("JWT is not valid: not a JWT structure");if(!t.test(r[1]))throw new Error("JWT is not valid: payload is not in base64url format");const s=r[1];return JSON.parse(Hg(s))}async function qg(e){return await new Promise(t=>{setTimeout(()=>t(null),e)})}function Mg(e,t){return new Promise((s,n)=>{(async()=>{for(let i=0;i<1/0;i++)try{const o=await e(i);if(!t(i,null,o)){s(o);return}}catch(o){if(!t(i,o)){n(o);return}}})()})}function zg(e){return("0"+e.toString(16)).substr(-2)}function Wg(){const t=new Uint32Array(56);if(typeof crypto>"u"){const r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",s=r.length;let n="";for(let i=0;i<56;i++)n+=r.charAt(Math.floor(Math.random()*s));return n}return crypto.getRandomValues(t),Array.from(t,zg).join("")}async function Gg(e){const r=new TextEncoder().encode(e),s=await crypto.subtle.digest("SHA-256",r),n=new Uint8Array(s);return Array.from(n).map(i=>String.fromCharCode(i)).join("")}function Vg(e){return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Kg(e){if(!(typeof crypto<"u"&&typeof crypto.subtle<"u"&&typeof TextEncoder<"u"))return console.warn("WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256."),e;const r=await Gg(e);return Vg(r)}async function kr(e,t,r=!1){const s=Wg();let n=s;r&&(n+="/PASSWORD_RECOVERY"),await Iu(e,`${t}-code-verifier`,n);const i=await Kg(s);return[i,s===i?"plain":"s256"]}const Jg=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;function Xg(e){const t=e.headers.get(mo);if(!t||!t.match(Jg))return null;try{return new Date(`${t}T00:00:00.0Z`)}catch{return null}}class Qo extends Error{constructor(t,r,s){super(t),this.__isAuthError=!0,this.name="AuthError",this.status=r,this.code=s}}function fe(e){return typeof e=="object"&&e!==null&&"__isAuthError"in e}class Qg extends Qo{constructor(t,r,s){super(t,r,s),this.name="AuthApiError",this.status=r,this.code=s}}function Yg(e){return fe(e)&&e.name==="AuthApiError"}class ju extends Qo{constructor(t,r){super(t),this.name="AuthUnknownError",this.originalError=r}}class yr extends Qo{constructor(t,r,s,n){super(t,s,n),this.name=r,this.status=s}}class Mt extends yr{constructor(){super("Auth session missing!","AuthSessionMissingError",400,void 0)}}function Zg(e){return fe(e)&&e.name==="AuthSessionMissingError"}class Hi extends yr{constructor(){super("Auth session or user missing","AuthInvalidTokenResponseError",500,void 0)}}class Ns extends yr{constructor(t){super(t,"AuthInvalidCredentialsError",400,void 0)}}class Hs extends yr{constructor(t,r=null){super(t,"AuthImplicitGrantRedirectError",500,void 0),this.details=null,this.details=r}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}function em(e){return fe(e)&&e.name==="AuthImplicitGrantRedirectError"}class gc extends yr{constructor(t,r=null){super(t,"AuthPKCEGrantCodeExchangeError",500,void 0),this.details=null,this.details=r}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}class _o extends yr{constructor(t,r){super(t,"AuthRetryableFetchError",r,void 0)}}function qi(e){return fe(e)&&e.name==="AuthRetryableFetchError"}class mc extends yr{constructor(t,r,s){super(t,"AuthWeakPasswordError",r,"weak_password"),this.reasons=s}}var tm=function(e,t){var r={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(r[s]=e[s]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,s=Object.getOwnPropertySymbols(e);ne.msg||e.message||e.error_description||e.error||JSON.stringify(e),rm=[502,503,504];async function _c(e){var t;if(!Ng(e))throw new _o(or(e),0);if(rm.includes(e.status))throw new _o(or(e),e.status);let r;try{r=await e.json()}catch(i){throw new ju(or(i),i)}let s;const n=Xg(e);if(n&&n.getTime()>=$u["2024-01-01"].timestamp&&typeof r=="object"&&r&&typeof r.code=="string"?s=r.code:typeof r=="object"&&r&&typeof r.error_code=="string"&&(s=r.error_code),s){if(s==="weak_password")throw new mc(or(r),e.status,((t=r.weak_password)===null||t===void 0?void 0:t.reasons)||[]);if(s==="session_not_found")throw new Mt}else if(typeof r=="object"&&r&&typeof r.weak_password=="object"&&r.weak_password&&Array.isArray(r.weak_password.reasons)&&r.weak_password.reasons.length&&r.weak_password.reasons.reduce((i,o)=>i&&typeof o=="string",!0))throw new mc(or(r),e.status,r.weak_password.reasons);throw new Qg(or(r),e.status||500,s)}const sm=(e,t,r,s)=>{const n={method:e,headers:(t==null?void 0:t.headers)||{}};return e==="GET"?n:(n.headers=Object.assign({"Content-Type":"application/json;charset=UTF-8"},t==null?void 0:t.headers),n.body=JSON.stringify(s),Object.assign(Object.assign({},n),r))};async function pe(e,t,r,s){var n;const i=Object.assign({},s==null?void 0:s.headers);i[mo]||(i[mo]=$u["2024-01-01"].name),s!=null&&s.jwt&&(i.Authorization=`Bearer ${s.jwt}`);const o=(n=s==null?void 0:s.query)!==null&&n!==void 0?n:{};s!=null&&s.redirectTo&&(o.redirect_to=s.redirectTo);const a=Object.keys(o).length?"?"+new URLSearchParams(o).toString():"",c=await nm(e,t,r+a,{headers:i,noResolveJson:s==null?void 0:s.noResolveJson},{},s==null?void 0:s.body);return s!=null&&s.xform?s==null?void 0:s.xform(c):{data:Object.assign({},c),error:null}}async function nm(e,t,r,s,n,i){const o=sm(t,s,n,i);let a;try{a=await e(r,Object.assign({},o))}catch(c){throw console.error(c),new _o(or(c),0)}if(a.ok||await _c(a),s!=null&&s.noResolveJson)return a;try{return await a.json()}catch(c){await _c(c)}}function zt(e){var t;let r=null;cm(e)&&(r=Object.assign({},e),e.expires_at||(r.expires_at=Ig(e.expires_in)));const s=(t=e.user)!==null&&t!==void 0?t:e;return{data:{session:r,user:s},error:null}}function yc(e){const t=zt(e);return!t.error&&e.weak_password&&typeof e.weak_password=="object"&&Array.isArray(e.weak_password.reasons)&&e.weak_password.reasons.length&&e.weak_password.message&&typeof e.weak_password.message=="string"&&e.weak_password.reasons.reduce((r,s)=>r&&typeof s=="string",!0)&&(t.data.weak_password=e.weak_password),t}function Jt(e){var t;return{data:{user:(t=e.user)!==null&&t!==void 0?t:e},error:null}}function im(e){return{data:e,error:null}}function om(e){const{action_link:t,email_otp:r,hashed_token:s,redirect_to:n,verification_type:i}=e,o=tm(e,["action_link","email_otp","hashed_token","redirect_to","verification_type"]),a={action_link:t,email_otp:r,hashed_token:s,redirect_to:n,verification_type:i},c=Object.assign({},o);return{data:{properties:a,user:c},error:null}}function am(e){return e}function cm(e){return e.access_token&&e.refresh_token&&e.expires_in}var lm=function(e,t){var r={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(r[s]=e[s]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,s=Object.getOwnPropertySymbols(e);n0&&(h.forEach(x=>{const g=parseInt(x.split(";")[0].split("=")[1].substring(0,1)),p=JSON.parse(x.split(";")[1].split("=")[1]);l[`${p}Page`]=g}),l.total=parseInt(d)),{data:Object.assign(Object.assign({},f),l),error:null}}catch(l){if(fe(l))return{data:{users:[]},error:l};throw l}}async getUserById(t){try{return await pe(this.fetch,"GET",`${this.url}/admin/users/${t}`,{headers:this.headers,xform:Jt})}catch(r){if(fe(r))return{data:{user:null},error:r};throw r}}async updateUserById(t,r){try{return await pe(this.fetch,"PUT",`${this.url}/admin/users/${t}`,{body:r,headers:this.headers,xform:Jt})}catch(s){if(fe(s))return{data:{user:null},error:s};throw s}}async deleteUser(t,r=!1){try{return await pe(this.fetch,"DELETE",`${this.url}/admin/users/${t}`,{headers:this.headers,body:{should_soft_delete:r},xform:Jt})}catch(s){if(fe(s))return{data:{user:null},error:s};throw s}}async _listFactors(t){try{const{data:r,error:s}=await pe(this.fetch,"GET",`${this.url}/admin/users/${t.userId}/factors`,{headers:this.headers,xform:n=>({data:{factors:n},error:null})});return{data:r,error:s}}catch(r){if(fe(r))return{data:null,error:r};throw r}}async _deleteFactor(t){try{return{data:await pe(this.fetch,"DELETE",`${this.url}/admin/users/${t.userId}/factors/${t.id}`,{headers:this.headers}),error:null}}catch(r){if(fe(r))return{data:null,error:r};throw r}}}const fm={getItem:e=>vs()?globalThis.localStorage.getItem(e):null,setItem:(e,t)=>{vs()&&globalThis.localStorage.setItem(e,t)},removeItem:e=>{vs()&&globalThis.localStorage.removeItem(e)}};function bc(e={}){return{getItem:t=>e[t]||null,setItem:(t,r)=>{e[t]=r},removeItem:t=>{delete e[t]}}}function dm(){if(typeof globalThis!="object")try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch{typeof self<"u"&&(self.globalThis=self)}}const Fr={debug:!!(globalThis&&vs()&&globalThis.localStorage&&globalThis.localStorage.getItem("supabase.gotrue-js.locks.debug")==="true")};class Uu extends Error{constructor(t){super(t),this.isAcquireTimeout=!0}}class hm extends Uu{}async function xm(e,t,r){Fr.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquire lock",e,t);const s=new globalThis.AbortController;return t>0&&setTimeout(()=>{s.abort(),Fr.debug&&console.log("@supabase/gotrue-js: navigatorLock acquire timed out",e)},t),await Promise.resolve().then(()=>globalThis.navigator.locks.request(e,t===0?{mode:"exclusive",ifAvailable:!0}:{mode:"exclusive",signal:s.signal},async n=>{if(n){Fr.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquired",e,n.name);try{return await r()}finally{Fr.debug&&console.log("@supabase/gotrue-js: navigatorLock: released",e,n.name)}}else{if(t===0)throw Fr.debug&&console.log("@supabase/gotrue-js: navigatorLock: not immediately available",e),new hm(`Acquiring an exclusive Navigator LockManager lock "${e}" immediately failed`);if(Fr.debug)try{const i=await globalThis.navigator.locks.query();console.log("@supabase/gotrue-js: Navigator LockManager state",JSON.stringify(i,null," "))}catch(i){console.warn("@supabase/gotrue-js: Error when querying Navigator LockManager state",i)}return console.warn("@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request"),await r()}}))}dm();const pm={url:Og,storageKey:$g,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:Lg,flowType:"implicit",debug:!1,hasCustomAuthorizationHeader:!1},ss=30*1e3,wc=3;async function Ec(e,t,r){return await r()}class Bs{constructor(t){var r,s;this.memoryStorage=null,this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.visibilityChangedCallback=null,this.refreshingDeferred=null,this.initializePromise=null,this.detectSessionInUrl=!0,this.hasCustomAuthorizationHeader=!1,this.suppressGetSessionWarning=!1,this.lockAcquired=!1,this.pendingInLock=[],this.broadcastChannel=null,this.logger=console.log,this.instanceID=Bs.nextInstanceID,Bs.nextInstanceID+=1,this.instanceID>0&&Ct()&&console.warn("Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.");const n=Object.assign(Object.assign({},pm),t);if(this.logDebugMessages=!!n.debug,typeof n.debug=="function"&&(this.logger=n.debug),this.persistSession=n.persistSession,this.storageKey=n.storageKey,this.autoRefreshToken=n.autoRefreshToken,this.admin=new um({url:n.url,headers:n.headers,fetch:n.fetch}),this.url=n.url,this.headers=n.headers,this.fetch=Lu(n.fetch),this.lock=n.lock||Ec,this.detectSessionInUrl=n.detectSessionInUrl,this.flowType=n.flowType,this.hasCustomAuthorizationHeader=n.hasCustomAuthorizationHeader,n.lock?this.lock=n.lock:Ct()&&(!((r=globalThis==null?void 0:globalThis.navigator)===null||r===void 0)&&r.locks)?this.lock=xm:this.lock=Ec,this.mfa={verify:this._verify.bind(this),enroll:this._enroll.bind(this),unenroll:this._unenroll.bind(this),challenge:this._challenge.bind(this),listFactors:this._listFactors.bind(this),challengeAndVerify:this._challengeAndVerify.bind(this),getAuthenticatorAssuranceLevel:this._getAuthenticatorAssuranceLevel.bind(this)},this.persistSession?n.storage?this.storage=n.storage:vs()?this.storage=fm:(this.memoryStorage={},this.storage=bc(this.memoryStorage)):(this.memoryStorage={},this.storage=bc(this.memoryStorage)),Ct()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(i){console.error("Failed to create a new BroadcastChannel, multi-tab state changes will not be available",i)}(s=this.broadcastChannel)===null||s===void 0||s.addEventListener("message",async i=>{this._debug("received broadcast notification from other tab or client",i),await this._notifyAllSubscribers(i.data.event,i.data.session,!1)})}this.initialize()}_debug(...t){return this.logDebugMessages&&this.logger(`GoTrueClient@${this.instanceID} (${Ou}) ${new Date().toISOString()}`,...t),this}async initialize(){return this.initializePromise?await this.initializePromise:(this.initializePromise=(async()=>await this._acquireLock(-1,async()=>await this._initialize()))(),await this.initializePromise)}async _initialize(){var t;try{const r=Ug(window.location.href);let s="none";if(this._isImplicitGrantCallback(r)?s="implicit":await this._isPKCECallback(r)&&(s="pkce"),Ct()&&this.detectSessionInUrl&&s!=="none"){const{data:n,error:i}=await this._getSessionFromURL(r,s);if(i){if(this._debug("#_initialize()","error detecting session from URL",i),em(i)){const c=(t=i.details)===null||t===void 0?void 0:t.code;if(c==="identity_already_exists"||c==="identity_not_found"||c==="single_identity_not_deletable")return{error:i}}return await this._removeSession(),{error:i}}const{session:o,redirectType:a}=n;return this._debug("#_initialize()","detected session in URL",o,"redirect type",a),await this._saveSession(o),setTimeout(async()=>{a==="recovery"?await this._notifyAllSubscribers("PASSWORD_RECOVERY",o):await this._notifyAllSubscribers("SIGNED_IN",o)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(r){return fe(r)?{error:r}:{error:new ju("Unexpected error during initialization",r)}}finally{await this._handleVisibilityChange(),this._debug("#_initialize()","end")}}async signInAnonymously(t){var r,s,n;try{const i=await pe(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{data:(s=(r=t==null?void 0:t.options)===null||r===void 0?void 0:r.data)!==null&&s!==void 0?s:{},gotrue_meta_security:{captcha_token:(n=t==null?void 0:t.options)===null||n===void 0?void 0:n.captchaToken}},xform:zt}),{data:o,error:a}=i;if(a||!o)return{data:{user:null,session:null},error:a};const c=o.session,l=o.user;return o.session&&(await this._saveSession(o.session),await this._notifyAllSubscribers("SIGNED_IN",c)),{data:{user:l,session:c},error:null}}catch(i){if(fe(i))return{data:{user:null,session:null},error:i};throw i}}async signUp(t){var r,s,n;try{let i;if("email"in t){const{email:u,password:f,options:d}=t;let h=null,x=null;this.flowType==="pkce"&&([h,x]=await kr(this.storage,this.storageKey)),i=await pe(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,redirectTo:d==null?void 0:d.emailRedirectTo,body:{email:u,password:f,data:(r=d==null?void 0:d.data)!==null&&r!==void 0?r:{},gotrue_meta_security:{captcha_token:d==null?void 0:d.captchaToken},code_challenge:h,code_challenge_method:x},xform:zt})}else if("phone"in t){const{phone:u,password:f,options:d}=t;i=await pe(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{phone:u,password:f,data:(s=d==null?void 0:d.data)!==null&&s!==void 0?s:{},channel:(n=d==null?void 0:d.channel)!==null&&n!==void 0?n:"sms",gotrue_meta_security:{captcha_token:d==null?void 0:d.captchaToken}},xform:zt})}else throw new Ns("You must provide either an email or phone number and a password");const{data:o,error:a}=i;if(a||!o)return{data:{user:null,session:null},error:a};const c=o.session,l=o.user;return o.session&&(await this._saveSession(o.session),await this._notifyAllSubscribers("SIGNED_IN",c)),{data:{user:l,session:c},error:null}}catch(i){if(fe(i))return{data:{user:null,session:null},error:i};throw i}}async signInWithPassword(t){try{let r;if("email"in t){const{email:i,password:o,options:a}=t;r=await pe(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:i,password:o,gotrue_meta_security:{captcha_token:a==null?void 0:a.captchaToken}},xform:yc})}else if("phone"in t){const{phone:i,password:o,options:a}=t;r=await pe(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:i,password:o,gotrue_meta_security:{captcha_token:a==null?void 0:a.captchaToken}},xform:yc})}else throw new Ns("You must provide either an email or phone number and a password");const{data:s,error:n}=r;return n?{data:{user:null,session:null},error:n}:!s||!s.session||!s.user?{data:{user:null,session:null},error:new Hi}:(s.session&&(await this._saveSession(s.session),await this._notifyAllSubscribers("SIGNED_IN",s.session)),{data:Object.assign({user:s.user,session:s.session},s.weak_password?{weakPassword:s.weak_password}:null),error:n})}catch(r){if(fe(r))return{data:{user:null,session:null},error:r};throw r}}async signInWithOAuth(t){var r,s,n,i;return await this._handleProviderSignIn(t.provider,{redirectTo:(r=t.options)===null||r===void 0?void 0:r.redirectTo,scopes:(s=t.options)===null||s===void 0?void 0:s.scopes,queryParams:(n=t.options)===null||n===void 0?void 0:n.queryParams,skipBrowserRedirect:(i=t.options)===null||i===void 0?void 0:i.skipBrowserRedirect})}async exchangeCodeForSession(t){return await this.initializePromise,this._acquireLock(-1,async()=>this._exchangeCodeForSession(t))}async _exchangeCodeForSession(t){const r=await js(this.storage,`${this.storageKey}-code-verifier`),[s,n]=(r??"").split("/");try{const{data:i,error:o}=await pe(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:t,code_verifier:s},xform:zt});if(await Us(this.storage,`${this.storageKey}-code-verifier`),o)throw o;return!i||!i.session||!i.user?{data:{user:null,session:null,redirectType:null},error:new Hi}:(i.session&&(await this._saveSession(i.session),await this._notifyAllSubscribers("SIGNED_IN",i.session)),{data:Object.assign(Object.assign({},i),{redirectType:n??null}),error:o})}catch(i){if(fe(i))return{data:{user:null,session:null,redirectType:null},error:i};throw i}}async signInWithIdToken(t){try{const{options:r,provider:s,token:n,access_token:i,nonce:o}=t,a=await pe(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:s,id_token:n,access_token:i,nonce:o,gotrue_meta_security:{captcha_token:r==null?void 0:r.captchaToken}},xform:zt}),{data:c,error:l}=a;return l?{data:{user:null,session:null},error:l}:!c||!c.session||!c.user?{data:{user:null,session:null},error:new Hi}:(c.session&&(await this._saveSession(c.session),await this._notifyAllSubscribers("SIGNED_IN",c.session)),{data:c,error:l})}catch(r){if(fe(r))return{data:{user:null,session:null},error:r};throw r}}async signInWithOtp(t){var r,s,n,i,o;try{if("email"in t){const{email:a,options:c}=t;let l=null,u=null;this.flowType==="pkce"&&([l,u]=await kr(this.storage,this.storageKey));const{error:f}=await pe(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email:a,data:(r=c==null?void 0:c.data)!==null&&r!==void 0?r:{},create_user:(s=c==null?void 0:c.shouldCreateUser)!==null&&s!==void 0?s:!0,gotrue_meta_security:{captcha_token:c==null?void 0:c.captchaToken},code_challenge:l,code_challenge_method:u},redirectTo:c==null?void 0:c.emailRedirectTo});return{data:{user:null,session:null},error:f}}if("phone"in t){const{phone:a,options:c}=t,{data:l,error:u}=await pe(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone:a,data:(n=c==null?void 0:c.data)!==null&&n!==void 0?n:{},create_user:(i=c==null?void 0:c.shouldCreateUser)!==null&&i!==void 0?i:!0,gotrue_meta_security:{captcha_token:c==null?void 0:c.captchaToken},channel:(o=c==null?void 0:c.channel)!==null&&o!==void 0?o:"sms"}});return{data:{user:null,session:null,messageId:l==null?void 0:l.message_id},error:u}}throw new Ns("You must provide either an email or phone number.")}catch(a){if(fe(a))return{data:{user:null,session:null},error:a};throw a}}async verifyOtp(t){var r,s;try{let n,i;"options"in t&&(n=(r=t.options)===null||r===void 0?void 0:r.redirectTo,i=(s=t.options)===null||s===void 0?void 0:s.captchaToken);const{data:o,error:a}=await pe(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},t),{gotrue_meta_security:{captcha_token:i}}),redirectTo:n,xform:zt});if(a)throw a;if(!o)throw new Error("An error occurred on token verification.");const c=o.session,l=o.user;return c!=null&&c.access_token&&(await this._saveSession(c),await this._notifyAllSubscribers(t.type=="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",c)),{data:{user:l,session:c},error:null}}catch(n){if(fe(n))return{data:{user:null,session:null},error:n};throw n}}async signInWithSSO(t){var r,s,n;try{let i=null,o=null;return this.flowType==="pkce"&&([i,o]=await kr(this.storage,this.storageKey)),await pe(this.fetch,"POST",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},"providerId"in t?{provider_id:t.providerId}:null),"domain"in t?{domain:t.domain}:null),{redirect_to:(s=(r=t.options)===null||r===void 0?void 0:r.redirectTo)!==null&&s!==void 0?s:void 0}),!((n=t==null?void 0:t.options)===null||n===void 0)&&n.captchaToken?{gotrue_meta_security:{captcha_token:t.options.captchaToken}}:null),{skip_http_redirect:!0,code_challenge:i,code_challenge_method:o}),headers:this.headers,xform:im})}catch(i){if(fe(i))return{data:null,error:i};throw i}}async reauthenticate(){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._reauthenticate())}async _reauthenticate(){try{return await this._useSession(async t=>{const{data:{session:r},error:s}=t;if(s)throw s;if(!r)throw new Mt;const{error:n}=await pe(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:r.access_token});return{data:{user:null,session:null},error:n}})}catch(t){if(fe(t))return{data:{user:null,session:null},error:t};throw t}}async resend(t){try{const r=`${this.url}/resend`;if("email"in t){const{email:s,type:n,options:i}=t,{error:o}=await pe(this.fetch,"POST",r,{headers:this.headers,body:{email:s,type:n,gotrue_meta_security:{captcha_token:i==null?void 0:i.captchaToken}},redirectTo:i==null?void 0:i.emailRedirectTo});return{data:{user:null,session:null},error:o}}else if("phone"in t){const{phone:s,type:n,options:i}=t,{data:o,error:a}=await pe(this.fetch,"POST",r,{headers:this.headers,body:{phone:s,type:n,gotrue_meta_security:{captcha_token:i==null?void 0:i.captchaToken}}});return{data:{user:null,session:null,messageId:o==null?void 0:o.message_id},error:a}}throw new Ns("You must provide either an email or phone number and a type")}catch(r){if(fe(r))return{data:{user:null,session:null},error:r};throw r}}async getSession(){return await this.initializePromise,await this._acquireLock(-1,async()=>this._useSession(async r=>r))}async _acquireLock(t,r){this._debug("#_acquireLock","begin",t);try{if(this.lockAcquired){const s=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve(),n=(async()=>(await s,await r()))();return this.pendingInLock.push((async()=>{try{await n}catch{}})()),n}return await this.lock(`lock:${this.storageKey}`,t,async()=>{this._debug("#_acquireLock","lock acquired for storage key",this.storageKey);try{this.lockAcquired=!0;const s=r();for(this.pendingInLock.push((async()=>{try{await s}catch{}})()),await s;this.pendingInLock.length;){const n=[...this.pendingInLock];await Promise.all(n),this.pendingInLock.splice(0,n.length)}return await s}finally{this._debug("#_acquireLock","lock released for storage key",this.storageKey),this.lockAcquired=!1}})}finally{this._debug("#_acquireLock","end")}}async _useSession(t){this._debug("#_useSession","begin");try{const r=await this.__loadSession();return await t(r)}finally{this._debug("#_useSession","end")}}async __loadSession(){this._debug("#__loadSession()","begin"),this.lockAcquired||this._debug("#__loadSession()","used outside of an acquired lock!",new Error().stack);try{let t=null;const r=await js(this.storage,this.storageKey);if(this._debug("#getSession()","session from storage",r),r!==null&&(this._isValidSession(r)?t=r:(this._debug("#getSession()","session from storage is not valid"),await this._removeSession())),!t)return{data:{session:null},error:null};const s=t.expires_at?t.expires_at<=Date.now()/1e3:!1;if(this._debug("#__loadSession()",`session has${s?"":" not"} expired`,"expires_at",t.expires_at),!s){if(this.storage.isServer){let o=this.suppressGetSessionWarning;t=new Proxy(t,{get:(c,l,u)=>(!o&&l==="user"&&(console.warn("Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server."),o=!0,this.suppressGetSessionWarning=!0),Reflect.get(c,l,u))})}return{data:{session:t},error:null}}const{session:n,error:i}=await this._callRefreshToken(t.refresh_token);return i?{data:{session:null},error:i}:{data:{session:n},error:null}}finally{this._debug("#__loadSession()","end")}}async getUser(t){return t?await this._getUser(t):(await this.initializePromise,await this._acquireLock(-1,async()=>await this._getUser()))}async _getUser(t){try{return t?await pe(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:t,xform:Jt}):await this._useSession(async r=>{var s,n,i;const{data:o,error:a}=r;if(a)throw a;return!(!((s=o.session)===null||s===void 0)&&s.access_token)&&!this.hasCustomAuthorizationHeader?{data:{user:null},error:new Mt}:await pe(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:(i=(n=o.session)===null||n===void 0?void 0:n.access_token)!==null&&i!==void 0?i:void 0,xform:Jt})})}catch(r){if(fe(r))return Zg(r)&&(await this._removeSession(),await Us(this.storage,`${this.storageKey}-code-verifier`)),{data:{user:null},error:r};throw r}}async updateUser(t,r={}){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._updateUser(t,r))}async _updateUser(t,r={}){try{return await this._useSession(async s=>{const{data:n,error:i}=s;if(i)throw i;if(!n.session)throw new Mt;const o=n.session;let a=null,c=null;this.flowType==="pkce"&&t.email!=null&&([a,c]=await kr(this.storage,this.storageKey));const{data:l,error:u}=await pe(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:r==null?void 0:r.emailRedirectTo,body:Object.assign(Object.assign({},t),{code_challenge:a,code_challenge_method:c}),jwt:o.access_token,xform:Jt});if(u)throw u;return o.user=l.user,await this._saveSession(o),await this._notifyAllSubscribers("USER_UPDATED",o),{data:{user:o.user},error:null}})}catch(s){if(fe(s))return{data:{user:null},error:s};throw s}}_decodeJWT(t){return vc(t)}async setSession(t){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._setSession(t))}async _setSession(t){try{if(!t.access_token||!t.refresh_token)throw new Mt;const r=Date.now()/1e3;let s=r,n=!0,i=null;const o=vc(t.access_token);if(o.exp&&(s=o.exp,n=s<=r),n){const{session:a,error:c}=await this._callRefreshToken(t.refresh_token);if(c)return{data:{user:null,session:null},error:c};if(!a)return{data:{user:null,session:null},error:null};i=a}else{const{data:a,error:c}=await this._getUser(t.access_token);if(c)throw c;i={access_token:t.access_token,refresh_token:t.refresh_token,user:a.user,token_type:"bearer",expires_in:s-r,expires_at:s},await this._saveSession(i),await this._notifyAllSubscribers("SIGNED_IN",i)}return{data:{user:i.user,session:i},error:null}}catch(r){if(fe(r))return{data:{session:null,user:null},error:r};throw r}}async refreshSession(t){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._refreshSession(t))}async _refreshSession(t){try{return await this._useSession(async r=>{var s;if(!t){const{data:o,error:a}=r;if(a)throw a;t=(s=o.session)!==null&&s!==void 0?s:void 0}if(!(t!=null&&t.refresh_token))throw new Mt;const{session:n,error:i}=await this._callRefreshToken(t.refresh_token);return i?{data:{user:null,session:null},error:i}:n?{data:{user:n.user,session:n},error:null}:{data:{user:null,session:null},error:null}})}catch(r){if(fe(r))return{data:{user:null,session:null},error:r};throw r}}async _getSessionFromURL(t,r){try{if(!Ct())throw new Hs("No browser detected.");if(t.error||t.error_description||t.error_code)throw new Hs(t.error_description||"Error in URL with unspecified error_description",{error:t.error||"unspecified_error",code:t.error_code||"unspecified_code"});switch(r){case"implicit":if(this.flowType==="pkce")throw new gc("Not a valid PKCE flow url.");break;case"pkce":if(this.flowType==="implicit")throw new Hs("Not a valid implicit grant flow url.");break;default:}if(r==="pkce"){if(this._debug("#_initialize()","begin","is PKCE flow",!0),!t.code)throw new gc("No code detected.");const{data:v,error:m}=await this._exchangeCodeForSession(t.code);if(m)throw m;const _=new URL(window.location.href);return _.searchParams.delete("code"),window.history.replaceState(window.history.state,"",_.toString()),{data:{session:v.session,redirectType:null},error:null}}const{provider_token:s,provider_refresh_token:n,access_token:i,refresh_token:o,expires_in:a,expires_at:c,token_type:l}=t;if(!i||!a||!o||!l)throw new Hs("No session defined in URL");const u=Math.round(Date.now()/1e3),f=parseInt(a);let d=u+f;c&&(d=parseInt(c));const h=d-u;h*1e3<=ss&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${h}s, should have been closer to ${f}s`);const x=d-f;u-x>=120?console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale",x,d,u):u-x<0&&console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew",x,d,u);const{data:g,error:p}=await this._getUser(i);if(p)throw p;const b={provider_token:s,provider_refresh_token:n,access_token:i,expires_in:f,expires_at:d,refresh_token:o,token_type:l,user:g.user};return window.location.hash="",this._debug("#_getSessionFromURL()","clearing window.location.hash"),{data:{session:b,redirectType:t.type},error:null}}catch(s){if(fe(s))return{data:{session:null,redirectType:null},error:s};throw s}}_isImplicitGrantCallback(t){return!!(t.access_token||t.error_description)}async _isPKCECallback(t){const r=await js(this.storage,`${this.storageKey}-code-verifier`);return!!(t.code&&r)}async signOut(t={scope:"global"}){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._signOut(t))}async _signOut({scope:t}={scope:"global"}){return await this._useSession(async r=>{var s;const{data:n,error:i}=r;if(i)return{error:i};const o=(s=n.session)===null||s===void 0?void 0:s.access_token;if(o){const{error:a}=await this.admin.signOut(o,t);if(a&&!(Yg(a)&&(a.status===404||a.status===401||a.status===403)))return{error:a}}return t!=="others"&&(await this._removeSession(),await Us(this.storage,`${this.storageKey}-code-verifier`)),{error:null}})}onAuthStateChange(t){const r=jg(),s={id:r,callback:t,unsubscribe:()=>{this._debug("#unsubscribe()","state change callback with id removed",r),this.stateChangeEmitters.delete(r)}};return this._debug("#onAuthStateChange()","registered callback with id",r),this.stateChangeEmitters.set(r,s),(async()=>(await this.initializePromise,await this._acquireLock(-1,async()=>{this._emitInitialSession(r)})))(),{data:{subscription:s}}}async _emitInitialSession(t){return await this._useSession(async r=>{var s,n;try{const{data:{session:i},error:o}=r;if(o)throw o;await((s=this.stateChangeEmitters.get(t))===null||s===void 0?void 0:s.callback("INITIAL_SESSION",i)),this._debug("INITIAL_SESSION","callback id",t,"session",i)}catch(i){await((n=this.stateChangeEmitters.get(t))===null||n===void 0?void 0:n.callback("INITIAL_SESSION",null)),this._debug("INITIAL_SESSION","callback id",t,"error",i),console.error(i)}})}async resetPasswordForEmail(t,r={}){let s=null,n=null;this.flowType==="pkce"&&([s,n]=await kr(this.storage,this.storageKey,!0));try{return await pe(this.fetch,"POST",`${this.url}/recover`,{body:{email:t,code_challenge:s,code_challenge_method:n,gotrue_meta_security:{captcha_token:r.captchaToken}},headers:this.headers,redirectTo:r.redirectTo})}catch(i){if(fe(i))return{data:null,error:i};throw i}}async getUserIdentities(){var t;try{const{data:r,error:s}=await this.getUser();if(s)throw s;return{data:{identities:(t=r.user.identities)!==null&&t!==void 0?t:[]},error:null}}catch(r){if(fe(r))return{data:null,error:r};throw r}}async linkIdentity(t){var r;try{const{data:s,error:n}=await this._useSession(async i=>{var o,a,c,l,u;const{data:f,error:d}=i;if(d)throw d;const h=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,t.provider,{redirectTo:(o=t.options)===null||o===void 0?void 0:o.redirectTo,scopes:(a=t.options)===null||a===void 0?void 0:a.scopes,queryParams:(c=t.options)===null||c===void 0?void 0:c.queryParams,skipBrowserRedirect:!0});return await pe(this.fetch,"GET",h,{headers:this.headers,jwt:(u=(l=f.session)===null||l===void 0?void 0:l.access_token)!==null&&u!==void 0?u:void 0})});if(n)throw n;return Ct()&&!(!((r=t.options)===null||r===void 0)&&r.skipBrowserRedirect)&&window.location.assign(s==null?void 0:s.url),{data:{provider:t.provider,url:s==null?void 0:s.url},error:null}}catch(s){if(fe(s))return{data:{provider:t.provider,url:null},error:s};throw s}}async unlinkIdentity(t){try{return await this._useSession(async r=>{var s,n;const{data:i,error:o}=r;if(o)throw o;return await pe(this.fetch,"DELETE",`${this.url}/user/identities/${t.identity_id}`,{headers:this.headers,jwt:(n=(s=i.session)===null||s===void 0?void 0:s.access_token)!==null&&n!==void 0?n:void 0})})}catch(r){if(fe(r))return{data:null,error:r};throw r}}async _refreshAccessToken(t){const r=`#_refreshAccessToken(${t.substring(0,5)}...)`;this._debug(r,"begin");try{const s=Date.now();return await Mg(async n=>(n>0&&await qg(200*Math.pow(2,n-1)),this._debug(r,"refreshing attempt",n),await pe(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:t},headers:this.headers,xform:zt})),(n,i)=>{const o=200*Math.pow(2,n);return i&&qi(i)&&Date.now()+o-s{try{await a.callback(t,r)}catch(c){i.push(c)}});if(await Promise.all(o),i.length>0){for(let a=0;athis._autoRefreshTokenTick(),ss);this.autoRefreshTicker=t,t&&typeof t=="object"&&typeof t.unref=="function"?t.unref():typeof Deno<"u"&&typeof Deno.unrefTimer=="function"&&Deno.unrefTimer(t),setTimeout(async()=>{await this.initializePromise,await this._autoRefreshTokenTick()},0)}async _stopAutoRefresh(){this._debug("#_stopAutoRefresh()");const t=this.autoRefreshTicker;this.autoRefreshTicker=null,t&&clearInterval(t)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async _autoRefreshTokenTick(){this._debug("#_autoRefreshTokenTick()","begin");try{await this._acquireLock(0,async()=>{try{const t=Date.now();try{return await this._useSession(async r=>{const{data:{session:s}}=r;if(!s||!s.refresh_token||!s.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}const n=Math.floor((s.expires_at*1e3-t)/ss);this._debug("#_autoRefreshTokenTick()",`access token expires in ${n} ticks, a tick lasts ${ss}ms, refresh threshold is ${wc} ticks`),n<=wc&&await this._callRefreshToken(s.refresh_token)})}catch(r){console.error("Auto refresh tick failed with error. This is likely a transient error.",r)}}finally{this._debug("#_autoRefreshTokenTick()","end")}})}catch(t){if(t.isAcquireTimeout||t instanceof Uu)this._debug("auto refresh token tick lock not available");else throw t}}async _handleVisibilityChange(){if(this._debug("#_handleVisibilityChange()"),!Ct()||!(window!=null&&window.addEventListener))return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=async()=>await this._onVisibilityChanged(!1),window==null||window.addEventListener("visibilitychange",this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(t){console.error("_handleVisibilityChange",t)}}async _onVisibilityChanged(t){const r=`#_onVisibilityChanged(${t})`;this._debug(r,"visibilityState",document.visibilityState),document.visibilityState==="visible"?(this.autoRefreshToken&&this._startAutoRefresh(),t||(await this.initializePromise,await this._acquireLock(-1,async()=>{if(document.visibilityState!=="visible"){this._debug(r,"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting");return}await this._recoverAndRefresh()}))):document.visibilityState==="hidden"&&this.autoRefreshToken&&this._stopAutoRefresh()}async _getUrlForProvider(t,r,s){const n=[`provider=${encodeURIComponent(r)}`];if(s!=null&&s.redirectTo&&n.push(`redirect_to=${encodeURIComponent(s.redirectTo)}`),s!=null&&s.scopes&&n.push(`scopes=${encodeURIComponent(s.scopes)}`),this.flowType==="pkce"){const[i,o]=await kr(this.storage,this.storageKey),a=new URLSearchParams({code_challenge:`${encodeURIComponent(i)}`,code_challenge_method:`${encodeURIComponent(o)}`});n.push(a.toString())}if(s!=null&&s.queryParams){const i=new URLSearchParams(s.queryParams);n.push(i.toString())}return s!=null&&s.skipBrowserRedirect&&n.push(`skip_http_redirect=${s.skipBrowserRedirect}`),`${t}?${n.join("&")}`}async _unenroll(t){try{return await this._useSession(async r=>{var s;const{data:n,error:i}=r;return i?{data:null,error:i}:await pe(this.fetch,"DELETE",`${this.url}/factors/${t.factorId}`,{headers:this.headers,jwt:(s=n==null?void 0:n.session)===null||s===void 0?void 0:s.access_token})})}catch(r){if(fe(r))return{data:null,error:r};throw r}}async _enroll(t){try{return await this._useSession(async r=>{var s,n;const{data:i,error:o}=r;if(o)return{data:null,error:o};const a=Object.assign({friendly_name:t.friendlyName,factor_type:t.factorType},t.factorType==="phone"?{phone:t.phone}:{issuer:t.issuer}),{data:c,error:l}=await pe(this.fetch,"POST",`${this.url}/factors`,{body:a,headers:this.headers,jwt:(s=i==null?void 0:i.session)===null||s===void 0?void 0:s.access_token});return l?{data:null,error:l}:(t.factorType==="totp"&&(!((n=c==null?void 0:c.totp)===null||n===void 0)&&n.qr_code)&&(c.totp.qr_code=`data:image/svg+xml;utf-8,${c.totp.qr_code}`),{data:c,error:null})})}catch(r){if(fe(r))return{data:null,error:r};throw r}}async _verify(t){return this._acquireLock(-1,async()=>{try{return await this._useSession(async r=>{var s;const{data:n,error:i}=r;if(i)return{data:null,error:i};const{data:o,error:a}=await pe(this.fetch,"POST",`${this.url}/factors/${t.factorId}/verify`,{body:{code:t.code,challenge_id:t.challengeId},headers:this.headers,jwt:(s=n==null?void 0:n.session)===null||s===void 0?void 0:s.access_token});return a?{data:null,error:a}:(await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+o.expires_in},o)),await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",o),{data:o,error:a})})}catch(r){if(fe(r))return{data:null,error:r};throw r}})}async _challenge(t){return this._acquireLock(-1,async()=>{try{return await this._useSession(async r=>{var s;const{data:n,error:i}=r;return i?{data:null,error:i}:await pe(this.fetch,"POST",`${this.url}/factors/${t.factorId}/challenge`,{body:{channel:t.channel},headers:this.headers,jwt:(s=n==null?void 0:n.session)===null||s===void 0?void 0:s.access_token})})}catch(r){if(fe(r))return{data:null,error:r};throw r}})}async _challengeAndVerify(t){const{data:r,error:s}=await this._challenge({factorId:t.factorId});return s?{data:null,error:s}:await this._verify({factorId:t.factorId,challengeId:r.id,code:t.code})}async _listFactors(){const{data:{user:t},error:r}=await this.getUser();if(r)return{data:null,error:r};const s=(t==null?void 0:t.factors)||[],n=s.filter(o=>o.factor_type==="totp"&&o.status==="verified"),i=s.filter(o=>o.factor_type==="phone"&&o.status==="verified");return{data:{all:s,totp:n,phone:i},error:null}}async _getAuthenticatorAssuranceLevel(){return this._acquireLock(-1,async()=>await this._useSession(async t=>{var r,s;const{data:{session:n},error:i}=t;if(i)return{data:null,error:i};if(!n)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};const o=this._decodeJWT(n.access_token);let a=null;o.aal&&(a=o.aal);let c=a;((s=(r=n.user.factors)===null||r===void 0?void 0:r.filter(f=>f.status==="verified"))!==null&&s!==void 0?s:[]).length>0&&(c="aal2");const u=o.amr||[];return{data:{currentLevel:a,nextLevel:c,currentAuthenticationMethods:u},error:null}}))}}Bs.nextInstanceID=0;const vm=Bs;class gm extends vm{constructor(t){super(t)}}var mm=function(e,t,r,s){function n(i){return i instanceof r?i:new r(function(o){o(i)})}return new(r||(r=Promise))(function(i,o){function a(u){try{l(s.next(u))}catch(f){o(f)}}function c(u){try{l(s.throw(u))}catch(f){o(f)}}function l(u){u.done?i(u.value):n(u.value).then(a,c)}l((s=s.apply(e,t||[])).next())})};class _m{constructor(t,r,s){var n,i,o;if(this.supabaseUrl=t,this.supabaseKey=r,!t)throw new Error("supabaseUrl is required.");if(!r)throw new Error("supabaseKey is required.");const a=Tg(t);this.realtimeUrl=`${a}/realtime/v1`.replace(/^http/i,"ws"),this.authUrl=`${a}/auth/v1`,this.storageUrl=`${a}/storage/v1`,this.functionsUrl=`${a}/functions/v1`;const c=`sb-${new URL(this.authUrl).hostname.split(".")[0]}-auth-token`,l={db:Cg,realtime:Bg,auth:Object.assign(Object.assign({},Ag),{storageKey:c}),global:Eg},u=Pg(s??{},l);this.storageKey=(n=u.auth.storageKey)!==null&&n!==void 0?n:"",this.headers=(i=u.global.headers)!==null&&i!==void 0?i:{},u.accessToken?(this.accessToken=u.accessToken,this.auth=new Proxy({},{get:(f,d)=>{throw new Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(d)} is not possible`)}})):this.auth=this._initSupabaseAuthClient((o=u.auth)!==null&&o!==void 0?o:{},this.headers,u.global.fetch),this.fetch=Fg(r,this._getAccessToken.bind(this),u.global.fetch),this.realtime=this._initRealtimeClient(Object.assign({headers:this.headers,accessToken:this._getAccessToken.bind(this)},u.realtime)),this.rest=new Wv(`${a}/rest/v1`,{headers:this.headers,schema:u.db.schema,fetch:this.fetch}),u.accessToken||this._listenForAuthEvents()}get functions(){return new Pv(this.functionsUrl,{headers:this.headers,customFetch:this.fetch})}get storage(){return new yg(this.storageUrl,this.headers,this.fetch)}from(t){return this.rest.from(t)}schema(t){return this.rest.schema(t)}rpc(t,r={},s={}){return this.rest.rpc(t,r,s)}channel(t,r={config:{}}){return this.realtime.channel(t,r)}getChannels(){return this.realtime.getChannels()}removeChannel(t){return this.realtime.removeChannel(t)}removeAllChannels(){return this.realtime.removeAllChannels()}_getAccessToken(){var t,r;return mm(this,void 0,void 0,function*(){if(this.accessToken)return yield this.accessToken();const{data:s}=yield this.auth.getSession();return(r=(t=s.session)===null||t===void 0?void 0:t.access_token)!==null&&r!==void 0?r:null})}_initSupabaseAuthClient({autoRefreshToken:t,persistSession:r,detectSessionInUrl:s,storage:n,storageKey:i,flowType:o,lock:a,debug:c},l,u){var f;const d={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new gm({url:this.authUrl,headers:Object.assign(Object.assign({},d),l),storageKey:i,autoRefreshToken:t,persistSession:r,detectSessionInUrl:s,storage:n,flowType:o,lock:a,debug:c,fetch:u,hasCustomAuthorizationHeader:(f="Authorization"in this.headers)!==null&&f!==void 0?f:!1})}_initRealtimeClient(t){return new og(this.realtimeUrl,Object.assign(Object.assign({},t),{params:Object.assign({apikey:this.supabaseKey},t==null?void 0:t.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((r,s)=>{this._handleTokenChanged(r,"CLIENT",s==null?void 0:s.access_token)})}_handleTokenChanged(t,r,s){(t==="TOKEN_REFRESHED"||t==="SIGNED_IN")&&this.changedAccessToken!==s?this.changedAccessToken=s:t==="SIGNED_OUT"&&(this.realtime.setAuth(),r=="STORAGE"&&this.auth.signOut(),this.changedAccessToken=void 0)}}const ym=(e,t,r)=>new _m(e,t,r),mt=ym("https://acsdjqbnkretxfrcucnz.supabase.co","eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImFjc2RqcWJua3JldHhmcmN1Y256Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3MzQ3MjYyNjUsImV4cCI6MjA1MDMwMjI2NX0.LiiNGgvIHjPaAUksYcE6O32U5NLhQnuDT0BR38X_47Y"),bm=st({__name:"Tooltip",props:{text:{},position:{}},setup(e){const r=e.position??"top",s=ke(!1);return(n,i)=>(ie(),ae("div",{class:"tooltip-container",onMouseover:i[0]||(i[0]=o=>s.value=!0),onMouseleave:i[1]||(i[1]=o=>s.value=!1)},[cd(n.$slots,"default",{},void 0),s.value?(ie(),ae("div",{key:0,class:zr(["tooltip",Le(r)])},Pe(n.text),3)):pt("",!0)],32))}}),Ft=(e,t)=>{const r=e.__vccOpts||e;for(const[s,n]of t)r[s]=n;return r},Yo=Ft(bm,[["__scopeId","data-v-3db88e53"]]),wm={props:["isVisible","title","text"],methods:{confirmAction(){this.$emit("confirm")},cancelAction(){this.$emit("nope")}}},Em={key:0,class:"modal-overlay"},Cm={class:"modal-content"},Am={class:"modal-title"},Bm={class:"modal-text"},Sm={class:"modal-buttons"};function Dm(e,t,r,s,n,i){return r.isVisible?(ie(),ae("div",Em,[z("div",Cm,[z("h2",Am,Pe(r.title),1),z("p",Bm,Pe(r.text),1),z("div",Sm,[z("button",{onClick:t[0]||(t[0]=(...o)=>i.confirmAction&&i.confirmAction(...o)),class:"confirm-button"},"Confirm"),z("button",{onClick:t[1]||(t[1]=(...o)=>i.cancelAction&&i.cancelAction(...o)),class:"cancel-button"},"Cancel")])])])):pt("",!0)}const yo=Ft(wm,[["render",Dm],["__scopeId","data-v-921d7379"]]),km={class:"leaderboard-container"},Fm={class:"leaderboard-title"},Rm={key:0,style:{"text-align":"center"}},Tm={key:1},Pm={key:0,class:"leaderboard-list"},Om=["onClick"],$m={class:"leaderboard-item"},Lm={key:0,class:"leaderboard-item-description"},Im={class:"top-entry"},jm={key:1},Um={key:2,class:"loading-text"},Nm=st({__name:"GameLeaderboards",props:{id:{type:String,required:!0}},setup(e){const t=kt(),r=Ts(),s=lt(),n=vi(),i=new Go,o=ke(!1);function a(){o.value=!0}function c(){o.value=!1}const l=ke(!1);function u(){l.value=!0}function f(){l.value=!1}function d(){t.back()}function h(C){r.selectLeaderboard(C)}async function x(){if(_.value&&_.value.Total===0)return;let{data:C,error:B}=await mt.from("game_subscriptions").select().eq("game_id",v.id);if(B){console.log("Error while fetching subscription status: ",B);return}C&&(E.value=C.length>0)}async function g(){let{error:C}=await mt.from("game_subscriptions").insert({game_id:v.id,user_id:s.user_id});C&&console.log("Error while updating notification status to read: ",C),await x(),c()}async function p(){let{error:C}=await mt.from("game_subscriptions").delete().eq("user_id",s.user_id).eq("game_id",v.id);C&&console.log("Error while updating notification status to read: ",C),await x(),f()}async function b(){try{_.value=null,n.setGameLeaderboards(Number(v.id),await i.fetchLeaderboards(v.id)),_.value=n.getGameLeaderboards(Number(v.id))}catch(C){console.error("Error fetching last played games:",C)}}const v=e,m=ke(null),_=ke(null),E=ke(null);return yt(async()=>{if(!s.isSet()){await t.push("/login");return}if(m.value=r.getSelectedGameLeaderboards(),n.hasGameLeaderboard(Number(v.id))){_.value=n.getGameLeaderboards(Number(v.id)),await x();return}await b(),await x()}),(C,B)=>{var S,R,A,D,$;return ie(),ae("div",km,[z("button",{class:"back-button",onClick:d},B[0]||(B[0]=[z("i",{class:"fa fa-arrow-left","aria-hidden":"true"},null,-1),vt(" Back")])),Te(Yo,{text:"Refresh content",position:"left",style:{float:"right"}},{default:Yn(()=>[z("button",{class:"refresh-button",onClick:b},B[1]||(B[1]=[z("i",{class:"fa fa-refresh"},null,-1)]))]),_:1}),z("h1",Fm,Pe((S=m.value)==null?void 0:S.Title),1),_.value&&_.value.Results.length?(ie(),ae("div",Rm,[E.value?pt("",!0):(ie(),ae("button",{key:0,class:"subscribe-button",onClick:a},"Subscribe")),Te(yo,{isVisible:o.value,onConfirm:g,onNope:c,title:"Subscribe to "+((R=m.value)==null?void 0:R.Title)+"?",text:"Receive updates when a friend beats any of your scores in "+((A=m.value)==null?void 0:A.Title)+"? (no emails or push notifications are sent)"},null,8,["isVisible","title","text"]),E.value?(ie(),ae("button",{key:1,class:"unsubscribe-button",onClick:u},"Unsubscribe")):pt("",!0),Te(yo,{isVisible:l.value,onConfirm:p,onNope:f,title:"Unsubscribe from "+((D=m.value)==null?void 0:D.Title)+"?",text:"Don't receive updates for this game when a friend beats any of your scores in "+(($=m.value)==null?void 0:$.Title)+"?"},null,8,["isVisible","title","text"])])):pt("",!0),_.value?(ie(),ae("div",Tm,[_.value.Results.length?(ie(),ae("ul",Pm,[(ie(!0),ae(Ve,null,ei(_.value.Results,P=>(ie(),ae("li",{key:P.ID,class:"leaderboard-item-container",onClick:Q=>h(P)},[z("span",$m,[vt(Pe(P.Title)+" ",1),P.Title.length<2?(ie(),ae("span",Lm,Pe(P.Description),1)):pt("",!0)]),z("span",Im,Pe(P.TopEntry.User)+" ("+Pe(P.TopEntry.FormattedScore)+")",1)],8,Om))),128))])):(ie(),ae("span",jm,"No leaderboards found for this game."))])):(ie(),ae("div",Um,"Loading..."))])}}}),Hm=Ft(Nm,[["__scopeId","data-v-f0a27d73"]]);class qm{constructor(){Xr(this,"url","https://retroachievements.org");Xr(this,"user",lt())}async fetchFriends(){try{return(await De.get(`${this.url}/API/API_GetUsersIFollow.php`,{params:{y:this.user.key}})).data}catch(t){throw console.error("Error fetching request:",t),t}}}const Nu=oi("friends",{state:()=>({friends:null}),actions:{async load(){if(this.friends!==null)return this.friends;const e=new qm;this.friends=await e.fetchFriends()}}}),Mm={class:"entries-container"},zm={class:"entries-title"},Wm={class:"entries-title"},Gm={key:0},Vm={key:0,class:"entries-list"},Km={class:"entry-rank"},Jm={class:"entry-user-score"},Xm={class:"entry-username"},Qm={key:1},Ym={key:1,class:"loading-text"},Zm=st({__name:"LeaderboardEntries",props:{id:{type:String,required:!0}},setup(e){const t=kt(),r=Ts(),s=lt(),n=Nu(),i=vi(),o=new Go;function a(){t.back()}const c=e,l=ke(null),u=ke(null),f=ke(null);async function d(){try{f.value=null,i.setLeaderboardEntries(Number(c.id),await o.fetchLeaderboardEntries(c.id)),f.value=i.getLeaderboardEntries(Number(c.id))}catch(p){console.error("Error fetching last played games:",p)}}yt(async()=>{if(!s.isSet()){await t.push("/login");return}if(await n.load(),l.value=r.getSelectedGameLeaderboards(),u.value=r.getSelectedLeaderboard(),i.hasLeaderboardEntries(Number(c.id))){f.value=i.getLeaderboardEntries(Number(c.id));return}await d()});const h=tt(()=>f.value===null?[]:n.friends===null?f.value.Results:f.value.Results.sort((p,b)=>{const v=x(p.User),m=x(b.User),_=g(p.User),E=g(b.User),C=p.Rankb.User===p)}return(p,b)=>{var v,m;return ie(),ae("div",Mm,[z("button",{class:"back-button",onClick:a},b[0]||(b[0]=[z("i",{class:"fa fa-arrow-left","aria-hidden":"true"},null,-1),vt(" Back")])),Te(Yo,{text:"Refresh content",position:"left",style:{float:"right"}},{default:Yn(()=>[z("button",{class:"refresh-button",onClick:d},b[1]||(b[1]=[z("i",{class:"fa fa-refresh"},null,-1)]))]),_:1}),z("h1",zm,Pe((v=u.value)==null?void 0:v.Title),1),z("h2",Wm,Pe((m=l.value)==null?void 0:m.Title),1),f.value?(ie(),ae("div",Gm,[f.value.Results.length?(ie(),ae("ul",Vm,[(ie(!0),ae(Ve,null,ei(h.value,_=>(ie(),ae("li",{key:_.User,class:zr(["entry-item",{isFriend:g(_.User),isMe:x(_.User)}])},[z("span",Km,"#"+Pe(_.Rank),1),z("div",Jm,Pe(_.FormattedScore),1),z("div",Xm,Pe(_.User),1)],2))),128))])):(ie(),ae("span",Qm,"No entries found for this leaderboard."))])):(ie(),ae("div",Ym,"Loading..."))])}}}),e_=Ft(Zm,[["__scopeId","data-v-67ad5e7b"]]),t_={class:"retro-container"},r_={class:"form-group"},s_={class:"form-group"},n_={class:"actions"},i_={class:"clickable link"},o_=st({__name:"Login",setup(e){const t=kt(),r=lt(),s=ke(""),n=ke("");async function i(){const a={method:"GET",url:"https://acsdjqbnkretxfrcucnz.supabase.co/functions/v1/get-ra-credentials",headers:{Authorization:"Bearer "+r.token}};try{const{data:c}=await De.request(a);c.data&&r.set(c.data.username,c.data.api_key)}catch(c){console.error("Error while fetching RA credentials:",c)}}async function o(){const{data:a,error:c}=await mt.auth.signInWithPassword({email:s.value,password:n.value});if(c){alert(c.message);return}r.login(a.user.id,a.session.access_token),await i(),await t.push("/")}return yt(async()=>{r.isLoggedIn()&&(await i(),await t.push("/"))}),(a,c)=>(ie(),ae("div",t_,[c[7]||(c[7]=z("h1",{class:"retro-title"},"Login",-1)),z("form",{onSubmit:ni(o,["prevent"]),class:"user-form"},[z("div",r_,[c[3]||(c[3]=z("label",{for:"email",class:"form-label"},"Email:",-1)),ur(z("input",{type:"text",id:"email","onUpdate:modelValue":c[0]||(c[0]=l=>s.value=l),class:"form-input",required:""},null,512),[[dr,s.value]])]),z("div",s_,[c[4]||(c[4]=z("label",{for:"pass",class:"form-label"},"Password:",-1)),ur(z("input",{type:"password",id:"pass","onUpdate:modelValue":c[1]||(c[1]=l=>n.value=l),class:"form-input",required:""},null,512),[[dr,n.value]])]),z("div",n_,[z("span",i_,[z("a",{onClick:c[2]||(c[2]=l=>Le(t).push("sign-up"))},c[5]||(c[5]=[vt("Or sign-up "),z("i",{class:"fa fa-arrow-right"},null,-1)]))]),c[6]||(c[6]=z("button",{type:"submit",class:"form-button"},"Submit",-1))])],32)]))}}),a_=Ft(o_,[["__scopeId","data-v-991d1cea"]]),c_={class:"burger-menu"},l_={key:0,class:"fa fa-asterisk",style:{"font-size":"50%","padding-left":"10px","vertical-align":"middle"}},u_={class:"modal-fullscreen retro-container"},f_={class:"menu-list"},d_={key:0,class:"menu-item"},h_=["disabled"],x_={key:1,class:"menu-item"},p_=["disabled"],v_={key:0},g_={class:"menu-item"},m_=["disabled"],__=st({__name:"BurgerMenu",props:{updatesNumber:{}},setup(e){const t=kt(),r=lt(),s=ke(!1),n=ke(!1),i=()=>{s.value=!s.value},o=d=>{t.push(d)};function a(){n.value=!0}function c(){n.value=!1}const l=Xp(),u=tt(()=>l.name),f=e;return(d,h)=>(ie(),ae("div",c_,[z("button",{class:"menu-toggle",onClick:i},[h[4]||(h[4]=z("i",{class:"fa fa-bars"},null,-1)),f.updatesNumber>0?(ie(),ae("i",l_)):pt("",!0)]),s.value?(ie(),ae("div",{key:0,class:"modal-overlay",onClick:ni(i,["self"])},[z("div",u_,[z("button",{class:"close-menu",onClick:i},h[5]||(h[5]=[z("i",{class:"fa fa-times"},null,-1)])),z("ul",f_,[Le(r).isSet()?(ie(),ae("li",d_,[z("button",{class:"menu-button",onClick:h[0]||(h[0]=x=>o("/")),disabled:u.value=="Home"},h[6]||(h[6]=[z("i",{class:"fa fa-home"},null,-1),vt(" Home ")]),8,h_)])):pt("",!0),Le(r).isSet()?(ie(),ae("li",x_,[z("button",{class:"menu-button",onClick:h[1]||(h[1]=x=>o("/leaderboards-updates")),disabled:u.value=="LeaderboardsUpdates"},[h[7]||(h[7]=z("i",{class:"fa fa-gamepad"},null,-1)),h[8]||(h[8]=vt(" Leaderboards updates ")),f.updatesNumber>0?(ie(),ae("span",v_," ("+Pe(f.updatesNumber)+") ",1)):pt("",!0)],8,p_)])):pt("",!0),z("li",g_,[z("button",{class:"menu-button",onClick:h[2]||(h[2]=x=>o("/ra-credentials")),disabled:u.value=="RACredentials"},h[9]||(h[9]=[z("i",{class:"fa fa-gear"},null,-1),vt(" RetroAchievements credentials ")]),8,m_)]),z("li",{class:"menu-item"},[z("button",{class:"logout-button",onClick:a},h[10]||(h[10]=[z("i",{class:"fa fa-sign-out"},null,-1),vt(" Logout ")]))])])])])):pt("",!0),Te(yo,{isVisible:n.value,title:"Logout",text:"Are you sure you want to logout?",onConfirm:h[3]||(h[3]=x=>Le(t).push("/logout")),onNope:c},null,8,["isVisible"])]))}}),Zo=Ft(__,[["__scopeId","data-v-8f03c334"]]),y_={class:"retro-container"},b_={class:"retro-title"},w_={key:0},E_={key:0,class:"game-list"},C_=["src","alt"],A_=["onClick"],B_={key:1},S_={key:1,class:"loading-text"},D_=st({__name:"Home",setup(e){const t=kt(),r=Ts(),s=lt(),n=vi(),i=new Go;function o(d){r.selectGameLeaderboards(d)}async function a(){try{u.value=null,n.setLastPlayedGames(await i.fetchLastPlayedGames()),u.value=n.lastPlayedGames}catch(d){console.error("Error fetching last played games:",d)}}async function c(){f.value=null;let{data:d,error:h}=await mt.from("leaderboards_updates").select(` + leaderboard_id, + friend_name, + user_score, + friend_score, + created_at, + read_at, + leaderboards (name, description, games (name, image_icon)) + `).is("read_at",null).is("deleted_at",null).order("created_at",{ascending:!1});if(h){console.error("Error fetching updates:",h);return}d&&(f.value=d==null?void 0:d.length)}const l="https://retroachievements.org",u=ke(null),f=ke(null);return yt(async()=>{if(!s.isLoggedIn()){await t.push("/login");return}if(!s.isSet()){await t.push("/ra-credentials");return}if(await c(),n.lastPlayedGames===null){await a();return}u.value=n.lastPlayedGames}),(d,h)=>(ie(),ae("div",y_,[Te(Zo,{"updates-number":f.value?f.value:0},null,8,["updates-number"]),Te(Yo,{text:"Refresh content",position:"left",style:{float:"right"}},{default:Yn(()=>[z("button",{class:"refresh-button",onClick:a},h[0]||(h[0]=[z("i",{class:"fa fa-refresh"},null,-1)]))]),_:1}),z("h1",b_,"Welcome "+Pe(Le(s).username),1),Le(n).lastPlayedGames?(ie(),ae("div",w_,[Le(n).lastPlayedGames.length?(ie(),ae("ul",E_,[(ie(!0),ae(Ve,null,ei(Le(n).lastPlayedGames,x=>(ie(),ae("li",{key:x.GameID,class:"game-item"},[z("div",{class:"game-container",style:Kn({backgroundImage:"url("+Le(l)+"\\"+x.ImageIngame+")"})},[h[1]||(h[1]=z("div",{class:"background-overlay"},null,-1)),z("img",{src:Le(l)+"\\"+x.ImageIcon,alt:x.Title,class:"game-icon"},null,8,C_),z("button",{onClick:g=>o(x),class:"game-button"},Pe(x.Title),9,A_)],4)]))),128))])):(ie(),ae("div",B_,"No games played yet"))])):(ie(),ae("div",S_,"Loading..."))]))}}),k_=Ft(D_,[["__scopeId","data-v-6cb989fc"]]),F_={class:"retro-container"},R_={key:0},T_={key:0,class:"game-list"},P_=["src","alt","onClick"],O_=["onClick"],$_={class:"game-name"},L_={class:"update-text"},I_={class:"leaderboard-description"},j_=["onClick"],U_={key:1},N_={key:1,class:"loading-text"},H_=st({__name:"LeaderboardsUpdates",setup(e){const t=kt(),r=Ts(),s=lt();async function n(l,u,f,d,h){let{error:x}=await mt.from("leaderboards_updates").update({read_at:new Date}).eq("leaderboard_id",l).eq("user_id",s.user_id).eq("friend_name",h).select();if(x){console.log("Error while changing update status to read: ",x);return}const g={Title:u},p={ID:l,Title:f,Description:d};r.selectGameLeaderboards(g,!1),r.selectLeaderboard(p)}async function i(l,u){let{error:f}=await mt.from("leaderboards_updates").update({deleted_at:new Date}).eq("leaderboard_id",l).eq("user_id",s.user_id).eq("friend_name",u).select();if(f){console.log("Error while changing update status to deleted: ",f);return}await o()}async function o(){c.value=null;let{data:l,error:u}=await mt.from("leaderboards_updates").select(` + leaderboard_id, + friend_name, + user_score, + friend_score, + created_at, + read_at, + leaderboards (name, description, games (name, image_icon)) + `).is("deleted_at",null).order("created_at",{ascending:!1});if(u){console.error("Error fetching updates:",u);return}c.value=l}const a="https://retroachievements.org",c=ke(null);return yt(async()=>{if(!s.isLoggedIn()||!s.isSet()){await t.push("/login");return}await o()}),(l,u)=>(ie(),ae("div",F_,[Te(Zo,{"updates-number":0}),u[1]||(u[1]=z("h1",{class:"retro-title"},"Updates",-1)),c.value?(ie(),ae("div",R_,[c.value.length?(ie(),ae("ul",T_,[(ie(!0),ae(Ve,null,ei(c.value,f=>(ie(),ae("li",{key:f.leaderboardId,class:"game-item"},[z("div",{class:zr(["game-container",{unread:!f.read_at}])},[z("img",{src:Le(a)+"\\"+f.leaderboards.games.image_icon,alt:f.leaderboards.games.name,class:"game-icon clickable",onClick:d=>n(f.leaderboard_id,f.leaderboards.games.name,f.leaderboards.name,f.leaderboards.description,f.friend_name)},null,8,P_),z("div",{class:"clickable",onClick:d=>n(f.leaderboard_id,f.leaderboards.games.name,f.leaderboards.name,f.leaderboards.description,f.friend_name)},[z("span",$_,Pe(f.leaderboards.games.name),1),z("span",L_,Pe(f.friend_name)+" has beaten you on "+Pe(f.leaderboards.name),1),z("span",I_,Pe(f.leaderboards.description),1)],8,O_),z("button",{onClick:d=>i(f.leaderboard_id,f.friend_name),class:"delete-button"},u[0]||(u[0]=[z("i",{class:"fa fa-remove","aria-hidden":"true"},null,-1)]),8,j_)],2)]))),128))])):(ie(),ae("div",U_,"No updates"))])):(ie(),ae("div",N_,"Loading..."))]))}}),q_=Ft(H_,[["__scopeId","data-v-5b47d681"]]),M_={class:"retro-container"},z_={class:"form-group"},W_={class:"form-group"},G_={class:"form-group"},V_={class:"actions"},K_={class:"clickable link"},J_=st({__name:"SingUp",setup(e){const t=kt(),r=lt(),s=ke(""),n=ke(""),i=ke("");async function o(){var l;if(n.value!==i.value){alert("Passwords do not match");return}const{data:a,error:c}=await mt.auth.signUp({email:s.value,password:n.value,options:{emailRedirectTo:"https://retroleaderboards.app/#/auth-callback"}});if(c){console.log(c),alert("Error, please try again later");return}(l=a.user)!=null&&l.confirmation_sent_at&&alert("Confirmation email sent, login after confirming your registration"),await t.push("/login")}return yt(()=>{r.isLoggedIn()&&t.push("/")}),(a,c)=>(ie(),ae("div",M_,[c[9]||(c[9]=z("h1",{class:"retro-title"},"Sign-up",-1)),z("form",{onSubmit:ni(o,["prevent"]),class:"user-form"},[z("div",z_,[c[4]||(c[4]=z("label",{for:"email",class:"form-label"},"Email:",-1)),ur(z("input",{type:"text",id:"email","onUpdate:modelValue":c[0]||(c[0]=l=>s.value=l),class:"form-input",required:""},null,512),[[dr,s.value]])]),z("div",W_,[c[5]||(c[5]=z("label",{for:"pass",class:"form-label"},"Password:",-1)),ur(z("input",{type:"password",id:"pass","onUpdate:modelValue":c[1]||(c[1]=l=>n.value=l),class:"form-input",required:""},null,512),[[dr,n.value]])]),z("div",G_,[c[6]||(c[6]=z("label",{for:"pass-confirm",class:"form-label"},"Confirm password:",-1)),ur(z("input",{type:"password",id:"pass-confirm","onUpdate:modelValue":c[2]||(c[2]=l=>i.value=l),class:"form-input",required:""},null,512),[[dr,i.value]])]),z("div",V_,[z("span",K_,[z("a",{onClick:c[3]||(c[3]=l=>Le(t).push("login"))},c[7]||(c[7]=[vt("Or login "),z("i",{class:"fa fa-arrow-right"},null,-1)]))]),c[8]||(c[8]=z("button",{type:"submit",class:"form-button"},"Submit",-1))])],32)]))}}),X_=Ft(J_,[["__scopeId","data-v-8471670e"]]),Q_=st({__name:"Logout",setup(e){const t=kt(),r=Ts(),s=lt(),n=vi(),i=Nu();async function o(){localStorage.clear(),s.$reset(),n.$reset(),i.$reset(),r.$reset(),await mt.auth.signOut()}return yt(async()=>{await o(),await t.push("/login")}),(a,c)=>null}}),Y_={class:"retro-container"},Z_={class:"form-group"},ey={class:"form-group"},ty=st({__name:"RACredentials",setup(e){const t=kt(),r=lt(),s=ke(""),n=ke("");async function i(){const o={method:"POST",url:"https://acsdjqbnkretxfrcucnz.supabase.co/functions/v1/set-ra-credentials",headers:{Authorization:"Bearer "+r.token},data:{username:s.value,api_key:n.value}};try{await De.request(o),r.set(s.value,n.value)}catch(a){let c=a.response.data.error;if(c.includes("JWT expired")&&await t.push("/logout"),c.includes("duplicate key value violates unique constraint")){alert("Username already assigned to a user. Contact the administrator if you need assistance.");return}alert(a.response.data.error);return}await t.push("/")}return yt(()=>{r.isSet()&&r.username&&r.key&&(s.value=r.username,n.value=r.key)}),(o,a)=>(ie(),ae("div",Y_,[Te(Zo,{"updates-number":0}),a[5]||(a[5]=z("h1",{class:"retro-title"},"Set your RA credentials",-1)),z("form",{onSubmit:ni(i,["prevent"]),class:"user-form"},[z("div",Z_,[a[2]||(a[2]=z("label",{for:"username",class:"form-label"},"Username:",-1)),ur(z("input",{type:"text",id:"username","onUpdate:modelValue":a[0]||(a[0]=c=>s.value=c),class:"form-input",required:""},null,512),[[dr,s.value]])]),z("div",ey,[a[3]||(a[3]=z("label",{for:"key",class:"form-label"},[z("a",{href:"https://retroachievements.org/settings",target:"_blank",class:"link-icon"},[z("i",{class:"fa fa-external-link"})]),vt(" Web API Key: ")],-1)),ur(z("input",{type:"password",id:"key","onUpdate:modelValue":a[1]||(a[1]=c=>n.value=c),class:"form-input",required:""},null,512),[[dr,n.value]])]),a[4]||(a[4]=z("button",{type:"submit",class:"form-button"},"Submit",-1))],32)]))}}),ry=Ft(ty,[["__scopeId","data-v-2cb29389"]]),sy=st({__name:"AuthCallback",setup(e){const t=kt(),r=lt();function s(){const i=window.location.hash,o=i.indexOf("#",1);if(o!==-1){const a=i.substring(o+1),c=new URLSearchParams(a);return{accessToken:c.get("access_token"),refreshToken:c.get("refresh_token")}}return console.error("No second hash fragment found."),{accessToken:null,refreshToken:null}}async function n(i,o){try{const{data:a,error:c}=await mt.auth.setSession({access_token:i,refresh_token:o});c&&(console.error("Error setting session:",c.message),await t.push("/login"));try{r.login(a.user.id,a.session.access_token),console.log("User logged in successfully:",a)}catch{await t.push("/logout")}await t.push("/")}catch(a){console.error("Unexpected error during login:",a)}}return yt(async()=>{const{accessToken:i,refreshToken:o}=s();i&&o?await n(i,o):(console.error("Missing access or refresh token."),await t.push("/login"))}),(i,o)=>(ie(),ae("div",null,"Loading, please wait..."))}}),ny=[{path:"/",redirect:"/home"},{path:"/login",name:"Login",component:a_},{path:"/sign-up",name:"SignUp",component:X_},{path:"/logout",name:"Logout",component:Q_},{path:"/auth-callback",name:"AuthCallback",component:sy},{path:"/home",name:"Home",component:k_},{path:"/ra-credentials",name:"RACredentials",component:ry},{path:"/leaderboards-updates",name:"LeaderboardsUpdates",component:q_},{path:"/game/:id/leaderboards",name:"GameLeaderboards",component:Hm,props:!0},{path:"/leaderboard/:id",name:"Leaderboard",component:e_,props:!0},{path:"/:pathMatch(.*)*",redirect:e=>({path:"/",query:{q:e.params.pathMatch[0]}})}],Hu=Kp({history:Ep(),routes:ny}),qu=Bh(),iy=({store:e})=>{e.router=Xn(Hu)};qu.use(iy);const ea=wh(Wx);ea.use(qu);ea.use(Hu);ea.mount("#app");export{Ll as g}; diff --git a/assets/index-DUIwa_qn.css b/assets/index-DUIwa_qn.css new file mode 100644 index 0000000..a75fba2 --- /dev/null +++ b/assets/index-DUIwa_qn.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap";.tooltip-container[data-v-3db88e53]{position:relative;display:inline-block}.tooltip[data-v-3db88e53]{position:absolute;background-color:#000;color:#fff;padding:8px;border-radius:4px;z-index:1000;font-size:12px;text-align:center;white-space:normal;word-wrap:break-word}.tooltip[data-v-3db88e53]:after{content:"";position:absolute;border-width:5px;border-style:solid}.tooltip.top[data-v-3db88e53]{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip.top[data-v-3db88e53]:after{top:100%;left:50%;transform:translate(-50%);border-color:black transparent transparent transparent}.tooltip.bottom[data-v-3db88e53]{top:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip.bottom[data-v-3db88e53]:after{bottom:100%;left:50%;transform:translate(-50%);border-color:transparent transparent black transparent}.tooltip.left[data-v-3db88e53]{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tooltip.left[data-v-3db88e53]:after{right:-5px;top:50%;transform:translateY(-50%);border-color:transparent transparent transparent black}.tooltip.right[data-v-3db88e53]{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tooltip.right[data-v-3db88e53]:after{left:-5px;top:50%;transform:translateY(-50%);border-color:transparent black transparent transparent}.modal-overlay[data-v-921d7379]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#1a1a2ecc;display:flex;justify-content:center;align-items:center;z-index:1000;font-family:"Press Start 2P",cursive}.modal-content[data-v-921d7379]{background-color:#1a1a2e;color:#e0e1dd;padding:30px;border-radius:15px;box-shadow:0 0 15px #00000080;text-align:center}.modal-title[data-v-921d7379]{color:#f5a623;margin-bottom:20px;font-size:20px}.modal-text[data-v-921d7379]{margin-bottom:20px;font-size:16px}.modal-buttons[data-v-921d7379]{display:flex;justify-content:center;gap:15px}.confirm-button[data-v-921d7379],.cancel-button[data-v-921d7379]{background-color:#f5a623;color:#1a1a2e;border:none;padding:10px 20px;cursor:pointer;font-size:16px;border-radius:10px;font-family:"Press Start 2P",cursive;transition:background-color .3s ease}.confirm-button[data-v-921d7379]:hover,.cancel-button[data-v-921d7379]:hover{background-color:#d48821}.leaderboard-container[data-v-f0a27d73]{background-color:#1a1a2e;color:#e0e1dd;padding:20px;border-radius:15px;box-shadow:0 0 15px #00000080;font-family:"Press Start 2P",cursive}.leaderboard-title[data-v-f0a27d73]{font-size:24px;color:#f5a623;text-align:center}.back-button[data-v-f0a27d73],.refresh-button[data-v-f0a27d73]{background-color:#f5a623;color:#1a1a2e;border:none;padding:10px 20px;cursor:pointer;font-size:16px;border-radius:10px}.subscribe-button[data-v-f0a27d73],.unsubscribe-button[data-v-f0a27d73]{background-color:#f5a623;color:#1a1a2e;border:none;padding:10px 20px;cursor:pointer;border-radius:10px}.unsubscribe-button[data-v-f0a27d73]{background-color:#22223b;color:#e0e1dd}.back-button[data-v-f0a27d73]:hover,.refresh-button[data-v-f0a27d73]:hover,.subscribe-button[data-v-f0a27d73]:hover{background-color:#d48821}.unsubscribe-button[data-v-f0a27d73]:hover{background-color:#d9534f}.refresh-button[data-v-f0a27d73]{float:right}.leaderboard-list[data-v-f0a27d73]{list-style-type:none;padding:0}.leaderboard-item-container[data-v-f0a27d73]{background-color:#22223b;border-radius:10px;padding:15px;margin-bottom:15px;display:flex;flex-direction:column}.leaderboard-item-container[data-v-f0a27d73]:hover{background-color:#3a3c58}.leaderboard-item[data-v-f0a27d73]{color:#f5a623;flex-grow:1}.leaderboard-item-description[data-v-f0a27d73]{font-size:.7rem}.top-entry[data-v-f0a27d73]{color:#e0e1dd;font-size:12px;opacity:.7;align-self:flex-end;padding-top:1rem}.loading-text[data-v-f0a27d73]{text-align:center}.entries-container[data-v-67ad5e7b]{background-color:#1a1a2e;color:#e0e1dd;padding:20px;border-radius:15px;box-shadow:0 0 15px #00000080;font-family:"Press Start 2P",cursive}h1.entries-title[data-v-67ad5e7b]{font-size:24px;color:#f5a623;text-align:center}h2.entries-title[data-v-67ad5e7b]{font-size:12px;color:#f5a623;text-align:center}.back-button[data-v-67ad5e7b],.refresh-button[data-v-67ad5e7b]{background-color:#f5a623;color:#1a1a2e;border:none;padding:10px 20px;cursor:pointer;font-size:16px;border-radius:10px}.back-button[data-v-67ad5e7b]:hover,.refresh-button[data-v-67ad5e7b]:hover{background-color:#d48821}.refresh-button[data-v-67ad5e7b]{float:right}.entries-list[data-v-67ad5e7b]{list-style-type:none;padding:0}.entry-item[data-v-67ad5e7b]{background-color:#22223b;border-radius:10px;padding:15px;margin-bottom:15px}.entry-item[data-v-67ad5e7b]:hover{background-color:#3a3c58}.entry-rank[data-v-67ad5e7b]{color:#f5a623;font-size:1.5rem}.entry-username[data-v-67ad5e7b]{color:#e0e1dd;margin-top:5px}.entry-user-score[data-v-67ad5e7b]{color:#e0e1dd;float:right}.isFriend[data-v-67ad5e7b]{background-color:#f5a62333}.isMe[data-v-67ad5e7b]{border:solid #f5a623;border-width:thick}.loading-text[data-v-67ad5e7b]{text-align:center}.retro-container[data-v-991d1cea]{background-color:#1a1a2e;color:#e0e1dd;padding:20px;border-radius:15px;box-shadow:0 0 15px #00000080;font-family:"Press Start 2P",cursive}.retro-title[data-v-991d1cea]{font-size:24px;color:#f5a623;text-align:center}.user-form[data-v-991d1cea]{margin-bottom:20px}.form-group[data-v-991d1cea]{margin-bottom:15px}.form-label[data-v-991d1cea]{display:flex;align-items:center}.form-input[data-v-991d1cea]{width:calc(100% - 20px);padding:10px;border-radius:5px;border:none}.form-button[data-v-991d1cea]{background-color:#f5a623;color:#1a1a2e;border:none;padding:10px;cursor:pointer;font-size:16px;border-radius:10px;float:right}.form-button[data-v-991d1cea]:hover{background-color:#d48821}.clickable[data-v-991d1cea]{cursor:pointer}.link[data-v-991d1cea]{float:left}.actions[data-v-991d1cea]{min-height:2.5rem}@media (min-width: 768px){.retro-container[data-v-991d1cea]{width:calc(100% - 40px);max-width:1200px;margin-left:auto;margin-right:auto}}.burger-menu[data-v-8f03c334]{position:relative;display:contents}.menu-toggle[data-v-8f03c334]{background-color:#f5a623;color:#1a1a2e;border:none;padding:12px;cursor:pointer;font-size:20px;border-radius:10px;transition:background-color .3s ease}.menu-toggle[data-v-8f03c334]:hover{background-color:#d48821}.modal-overlay[data-v-8f03c334]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000c;z-index:1000}.modal-fullscreen[data-v-8f03c334]{position:absolute;top:0;left:0;width:calc(100% - 40px);height:calc(100% - 40px);margin:auto;display:flex;flex-direction:column;justify-content:center;align-items:center;background-color:#1a1a2e;color:#e0e1dd;padding:20px;border-radius:15px;overflow:auto}.close-menu[data-v-8f03c334]{position:absolute;top:15px;right:15px;background-color:#f5a623;color:#1a1a2e;border:none;padding:10px;cursor:pointer;border-radius:10px;font-size:20px;transition:background-color .3s ease}.close-menu[data-v-8f03c334]:hover{background-color:#d48821}.menu-list[data-v-8f03c334]{list-style-type:none;padding-left:0}.menu-list[data-v-8f03c334]{display:flex;flex-direction:column;align-items:center;gap:20px}.menu-item[data-v-8f03c334]{width:100%;max-width:300px}.menu-item i[data-v-8f03c334]{padding-right:10px}.menu-button[data-v-8f03c334],.logout-button[data-v-8f03c334]{width:100%;background-color:#f5a623;color:#1a1a2e;border:none;padding:15px;cursor:pointer;font-size:18px;border-radius:10px;transition:background-color .3s ease}.menu-button[data-v-8f03c334]:hover,.logout-button[data-v-8f03c334]:hover{background-color:#d48821}.menu-button[data-v-8f03c334]:disabled{background-color:#e0e1dd;color:#1a1a2e;cursor:not-allowed}.retro-container[data-v-6cb989fc]{background-color:#1a1a2e;color:#e0e1dd;padding:20px;border-radius:15px;box-shadow:0 0 15px #00000080;font-family:"Press Start 2P",cursive}.refresh-button[data-v-6cb989fc]{background-color:#f5a623;color:#1a1a2e;border:none;padding:10px 20px;cursor:pointer;font-size:16px;border-radius:10px}.refresh-button[data-v-6cb989fc]:hover{background-color:#d48821}.refresh-button[data-v-6cb989fc]{float:right}.retro-title[data-v-6cb989fc]{font-size:24px;color:#f5a623;text-align:center;padding:10px 0}.game-list[data-v-6cb989fc]{list-style-type:none;padding:0}.game-item[data-v-6cb989fc]{margin-bottom:15px}.game-container[data-v-6cb989fc]{position:relative;display:flex;align-items:center;padding:10px;border-radius:10px;background-position-y:center;background-repeat:no-repeat;background-size:cover}.background-overlay[data-v-6cb989fc]{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#22223b80}.game-icon[data-v-6cb989fc]{width:70px;height:auto;margin-right:15px;z-index:1}.game-button[data-v-6cb989fc]{background-color:#f5a623;color:#1a1a2e;border:none;padding:15px;cursor:pointer;font-size:16px;border-radius:10px;z-index:1}.game-button[data-v-6cb989fc]:hover{background-color:#d48821}.loading-text[data-v-6cb989fc]{text-align:center}@media (min-width: 768px){.game-container[data-v-6cb989fc]{background-repeat:no-repeat;background-size:cover;background-position:center center}}.retro-container[data-v-5b47d681]{background-color:#1a1a2e;color:#e0e1dd;padding:20px;border-radius:15px;box-shadow:0 0 15px #00000080;font-family:"Press Start 2P",cursive}.retro-title[data-v-5b47d681]{font-size:24px;color:#f5a623;text-align:center;padding:10px 0}.game-list[data-v-5b47d681]{list-style-type:none;padding:0}.game-item[data-v-5b47d681]{margin-bottom:15px}.game-container[data-v-5b47d681]{position:relative;padding:10px;border-radius:10px;display:flex;align-items:flex-start}.game-container.unread[data-v-5b47d681]{color:#1a1a2e;background-color:#d48821}.game-icon[data-v-5b47d681]{width:70px;height:auto;margin-right:15px;z-index:1}.game-container span[data-v-5b47d681]{display:block}.clickable[data-v-5b47d681]:hover{cursor:pointer}.game-name[data-v-5b47d681]{font-variant:all-petite-caps;font-size:1.5rem}.update-text[data-v-5b47d681]{padding-top:10px;font-size:1rem}.leaderboard-description[data-v-5b47d681]{padding-top:10px;font-size:.7rem;font-style:oblique}.delete-button[data-v-5b47d681]{background-color:#f5a623;color:#1a1a2e;border:none;padding:15px;cursor:pointer;font-size:16px;border-radius:10px;margin-left:auto;z-index:2}.delete-button[data-v-5b47d681]:hover{background-color:#d9534f}.loading-text[data-v-5b47d681]{text-align:center}@media (min-width: 768px){.game-container[data-v-5b47d681]{background-repeat:no-repeat;background-size:cover;background-position:center center}}.retro-container[data-v-8471670e]{background-color:#1a1a2e;color:#e0e1dd;padding:20px;border-radius:15px;box-shadow:0 0 15px #00000080;font-family:"Press Start 2P",cursive}.retro-title[data-v-8471670e]{font-size:24px;color:#f5a623;text-align:center}.user-form[data-v-8471670e]{margin-bottom:20px}.form-group[data-v-8471670e]{margin-bottom:15px}.form-label[data-v-8471670e]{display:flex;align-items:center}.form-input[data-v-8471670e]{width:calc(100% - 20px);padding:10px;border-radius:5px;border:none}.form-button[data-v-8471670e]{background-color:#f5a623;color:#1a1a2e;border:none;padding:10px;cursor:pointer;font-size:16px;border-radius:10px;float:right}.form-button[data-v-8471670e]:hover{background-color:#d48821}.clickable[data-v-8471670e]{cursor:pointer}.link[data-v-8471670e]{float:left}.actions[data-v-8471670e]{min-height:2.5rem}@media (min-width: 768px){.retro-container[data-v-8471670e]{width:calc(100% - 40px);max-width:1200px;margin-left:auto;margin-right:auto}}.retro-container[data-v-2cb29389]{background-color:#1a1a2e;color:#e0e1dd;padding:20px;border-radius:15px;box-shadow:0 0 15px #00000080;font-family:"Press Start 2P",cursive}.retro-title[data-v-2cb29389]{font-size:24px;color:#f5a623;text-align:center}.user-form[data-v-2cb29389]{margin-bottom:20px}.form-group[data-v-2cb29389]{margin-bottom:15px}.form-label[data-v-2cb29389]{display:flex;align-items:center}.form-input[data-v-2cb29389]{width:calc(100% - 20px);padding:10px;border-radius:5px;border:none}.form-button[data-v-2cb29389]{background-color:#f5a623;color:#1a1a2e;border:none;padding:10px;cursor:pointer;font-size:16px;border-radius:10px}.form-button[data-v-2cb29389]:hover{background-color:#d48821}.link-icon[data-v-2cb29389]{color:#e0e1dd;padding-bottom:5px;padding-right:10px}@media (min-width: 768px){.retro-container[data-v-2cb29389]{width:calc(100% - 40px);max-width:1200px;margin-left:auto;margin-right:auto}} diff --git a/cypress.config.ts b/cypress.config.ts deleted file mode 100644 index cd03bee..0000000 --- a/cypress.config.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { defineConfig } from "cypress"; - -export default defineConfig({ - e2e: { - baseUrl: 'http://localhost:5173', - defaultCommandTimeout: 10000, - }, -}); diff --git a/cypress/e2e/game_leaderboards.cy.ts b/cypress/e2e/game_leaderboards.cy.ts deleted file mode 100644 index 94e2d25..0000000 --- a/cypress/e2e/game_leaderboards.cy.ts +++ /dev/null @@ -1,80 +0,0 @@ -describe('game leaderboards page', () => { - beforeEach(() => { - cy.clearAllLocalStorage() - }) - - it('no leaderboards', () => { - cy.intercept('GET', '**/API/API_GetUserRecentlyPlayedGames.php*', { fixture: 'game-list-without-leaderboard.json' }).as('getRecentlyPlayedGames') - - cy.interceptRACredentials() - cy.authenticate() - cy.interceptLeaderboardsUpdates() - cy.visit('/') - - cy.intercept('GET', '**/API/API_GetGameLeaderboards.php*', { fixture: 'no-leaderboards.json' }).as('getLeaderboards') - - cy.get('.game-button').click() - - cy.wait('@getLeaderboards').its('response.body') - .should('have.property', 'Results') - - cy.url().should('include', '/game/769/leaderboards') - cy.contains('Kirby & The Amazing Mirror') - cy.contains('No leaderboards found for this game.') - }) - - it('leaderboards list with refresh', () => { - cy.intercept('GET', '**/API/API_GetUserRecentlyPlayedGames.php*', { fixture: 'game-list-with-leaderboard.json' }).as('getRecentlyPlayedGames') - - cy.interceptRACredentials() - cy.authenticate() - cy.interceptLeaderboardsUpdates() - cy.interceptGameSubscription(false) - cy.visit('/') - - cy.intercept('GET', '**/API/API_GetGameLeaderboards.php*', { fixture: 'leaderboards.json' }).as('getLeaderboards') - - cy.get('.game-button').click() - - cy.wait('@getLeaderboards').its('response.body') - .should('have.property', 'Results') - .should('have.length', 10) - - cy.url().should('include', '/game/16557/leaderboards') - cy.contains('Colin McRae Rally') - - cy.get('.leaderboard-list li').eq(1).contains('New Zealand Two') - cy.get('.leaderboard-list li').eq(1).contains('Thebpg13') - cy.get('.leaderboard-list li').eq(1).contains('2:38.36') - - cy.intercept('GET', '**/API/API_GetGameLeaderboards.php*', { fixture: 'leaderboards-refresh.json' }).as('getLeaderboardsRefresh') - - cy.get('.refresh-button').click() - - cy.wait('@getLeaderboardsRefresh').its('response.body') - .should('have.property', 'Results') - .should('have.length', 10) - - cy.get('.leaderboard-list li').eq(1).contains('New Zealand Two') - cy.get('.leaderboard-list li').eq(1).contains('zuliman92') - cy.get('.leaderboard-list li').eq(1).contains('2:35.23') - }) - - it('go back to recently played games', () => { - cy.intercept('GET', '**/API/API_GetUserRecentlyPlayedGames.php*', { fixture: 'game-list-with-leaderboard.json' }).as('getRecentlyPlayedGames') - - cy.interceptRACredentials() - cy.authenticate() - cy.interceptLeaderboardsUpdates() - cy.interceptGameSubscription(false) - cy.visit('/') - - cy.intercept('GET', '**/API/API_GetGameLeaderboards.php*', { fixture: 'leaderboards.json' }).as('getLeaderboards') - - cy.visit('#/game/16557/leaderboards') - - cy.get('.back-button').click() - - cy.url().should('include', '/home') - }) -}) diff --git a/cypress/e2e/leaderboard_entries.cy.ts b/cypress/e2e/leaderboard_entries.cy.ts deleted file mode 100644 index 48690c1..0000000 --- a/cypress/e2e/leaderboard_entries.cy.ts +++ /dev/null @@ -1,174 +0,0 @@ -describe('leaderboard entries page', () => { - beforeEach(() => { - cy.clearAllLocalStorage() - }) - - it('no entries', () => { - cy.intercept('GET', '**/API/API_GetUserRecentlyPlayedGames.php*', { fixture: 'game-list-with-leaderboard.json' }).as('getRecentlyPlayedGames') - - cy.interceptRACredentials() - cy.authenticate() - cy.interceptLeaderboardsUpdates() - cy.interceptUsersIFollow() - cy.interceptGameSubscription(false) - cy.visit('/') - - cy.intercept('GET', '**/API/API_GetGameLeaderboards.php*', { fixture: 'leaderboards.json' }).as('getLeaderboards') - - cy.get('.game-button').click() - - cy.url().should('include', '/game/16557/leaderboards') - cy.contains('Colin McRae Rally') - - cy.intercept('GET', '**/API/API_GetLeaderboardEntries.php*', { fixture: 'no-leaderboard-entries.json' }).as('getLeaderboardEntries') - - cy.get('.leaderboard-list li').eq(1).click() - - cy.url().should('include', '/leaderboard/19063') - cy.contains('Colin McRae Rally') - cy.contains('New Zealand Two') - cy.contains('No entries found for this leaderboard.') - }) - - it('entries with refresh and no entry from me or my friends', () => { - cy.intercept('GET', '**/API/API_GetUserRecentlyPlayedGames.php*', { fixture: 'game-list-with-leaderboard.json' }).as('getRecentlyPlayedGames') - - cy.interceptRACredentials() - cy.authenticate() - cy.interceptLeaderboardsUpdates() - cy.interceptUsersIFollow() - cy.interceptGameSubscription(false) - cy.visit('/') - - cy.intercept('GET', '**/API/API_GetGameLeaderboards.php*', { fixture: 'leaderboards.json' }).as('getLeaderboards') - - cy.get('.game-button').click() - - cy.url().should('include', '/game/16557/leaderboards') - cy.contains('Colin McRae Rally') - - cy.intercept('GET', '**/API/API_GetLeaderboardEntries.php*', { fixture: 'leaderboard-entries.json' }).as('getLeaderboardEntries') - - cy.get('.leaderboard-list li').eq(1).click() - - cy.url().should('include', '/leaderboard/19063') - cy.contains('Colin McRae Rally') - cy.contains('New Zealand Two') - - cy.get('.entries-list li').eq(0).contains('Thebpg13') - cy.get('.entries-list li').eq(0).contains('2:38.36') - - cy.intercept('GET', '**/API/API_GetLeaderboardEntries.php*', { fixture: 'leaderboard-entries-refresh.json' }).as('getLeaderboardEntriesRefresh') - - cy.get('.refresh-button').click() - - cy.wait('@getLeaderboardEntriesRefresh').its('response.body') - .should('have.property', 'Results') - .should('have.length', 10) - - cy.get('.entries-list li').eq(0).contains('josef733') - cy.get('.entries-list li').eq(0).contains('2:34.45') - - cy.get('.entries-list li').eq(1).contains('Thebpg13') - cy.get('.entries-list li').eq(1).contains('2:38.36') - }) - - it('entries with an entry only from me', () => { - cy.intercept('GET', '**/API/API_GetUserRecentlyPlayedGames.php*', { fixture: 'game-list-with-leaderboard.json' }).as('getRecentlyPlayedGames') - - cy.interceptRACredentials(true, 'matias721744') - cy.authenticate() - cy.interceptLeaderboardsUpdates() - cy.interceptUsersIFollow() - cy.interceptGameSubscription(false) - cy.visit('/') - - cy.intercept('GET', '**/API/API_GetGameLeaderboards.php*', { fixture: 'leaderboards.json' }).as('getLeaderboards') - - cy.get('.game-button').click() - - cy.url().should('include', '/game/16557/leaderboards') - cy.contains('Colin McRae Rally') - - cy.intercept('GET', '**/API/API_GetLeaderboardEntries.php*', { fixture: 'leaderboard-entries.json' }).as('getLeaderboardEntries') - - cy.get('.leaderboard-list li').eq(1).click() - - cy.url().should('include', '/leaderboard/19063') - cy.contains('Colin McRae Rally') - cy.contains('New Zealand Two') - - cy.get('.entries-list li').eq(0).contains('matias721744') - cy.get('.entries-list li').eq(0).contains('2:51.55') - - cy.get('.entries-list li').eq(1).contains('Thebpg13') - cy.get('.entries-list li').eq(1).contains('2:38.36') - }) - - it('entries with entry only from a friend', () => { - cy.intercept('GET', '**/API/API_GetUserRecentlyPlayedGames.php*', { fixture: 'game-list-with-leaderboard.json' }).as('getRecentlyPlayedGames') - - cy.interceptRACredentials() - cy.authenticate() - cy.interceptLeaderboardsUpdates() - cy.intercept('GET', '**/API/API_GetUsersIFollow.php*', { fixture: 'users-i-follow-with-matias.json' }).as('getUsersIFollow') - cy.interceptGameSubscription(false) - cy.visit('/') - - cy.intercept('GET', '**/API/API_GetGameLeaderboards.php*', { fixture: 'leaderboards.json' }).as('getLeaderboards') - - cy.get('.game-button').click() - - cy.url().should('include', '/game/16557/leaderboards') - cy.contains('Colin McRae Rally') - - cy.intercept('GET', '**/API/API_GetLeaderboardEntries.php*', { fixture: 'leaderboard-entries.json' }).as('getLeaderboardEntries') - - cy.get('.leaderboard-list li').eq(1).click() - - cy.url().should('include', '/leaderboard/19063') - cy.contains('Colin McRae Rally') - cy.contains('New Zealand Two') - - cy.get('.entries-list li').eq(0).contains('matias721744') - cy.get('.entries-list li').eq(0).contains('2:51.55') - - cy.get('.entries-list li').eq(1).contains('Thebpg13') - cy.get('.entries-list li').eq(1).contains('2:38.36') - }) - - it('entries with a entry from me and a friend', () => { - cy.intercept('GET', '**/API/API_GetUserRecentlyPlayedGames.php*', { fixture: 'game-list-with-leaderboard.json' }).as('getRecentlyPlayedGames') - - cy.interceptRACredentials(true, 'masakimu') - cy.authenticate() - cy.interceptLeaderboardsUpdates() - cy.intercept('GET', '**/API/API_GetUsersIFollow.php*', { fixture: 'users-i-follow-with-matias.json' }).as('getUsersIFollow') - cy.interceptGameSubscription(false) - cy.visit('/') - - cy.intercept('GET', '**/API/API_GetGameLeaderboards.php*', { fixture: 'leaderboards.json' }).as('getLeaderboards') - - cy.get('.game-button').click() - - cy.url().should('include', '/game/16557/leaderboards') - cy.contains('Colin McRae Rally') - - cy.intercept('GET', '**/API/API_GetLeaderboardEntries.php*', { fixture: 'leaderboard-entries.json' }).as('getLeaderboardEntries') - - cy.get('.leaderboard-list li').eq(1).click() - - cy.url().should('include', '/leaderboard/19063') - cy.contains('Colin McRae Rally') - cy.contains('New Zealand Two') - - cy.get('.entries-list li').eq(0).contains('masakimu') - cy.get('.entries-list li').eq(0).contains('2:46.59') - - cy.get('.entries-list li').eq(1).contains('matias721744') - cy.get('.entries-list li').eq(1).contains('2:51.55') - - cy.get('.entries-list li').eq(2).contains('Thebpg13') - cy.get('.entries-list li').eq(2).contains('2:38.36') - }) -}) diff --git a/cypress/e2e/login_page.cy.ts b/cypress/e2e/login_page.cy.ts deleted file mode 100644 index 5905752..0000000 --- a/cypress/e2e/login_page.cy.ts +++ /dev/null @@ -1,88 +0,0 @@ -describe('login page', () => { - beforeEach(() => { - cy.clearAllLocalStorage() - }) - - it('unauthorized', () => { - cy.visit('/') - - cy.url().should('include', '/login') - cy.contains('Login') - - cy.get('input[id="email"]').type('unauthorized') - cy.get('input[id="pass"]').type('unauthorized-secret') - - cy.intercept('POST', '**/auth/v1/token?grant_type*', { - body: {message: 'Bad credentials'}, statusCode: 401 - }).as('auth') - - cy.contains('Submit').click() - - cy.wait('@auth').its('response.statusCode') - .should('equal', 401) - - cy.on('window:alert', (txt) => { - expect(txt).to.contains('Bad credentials'); - }) - - cy.url().should('include', '/login') - cy.contains('Login') - }) - - it('success-without-ra-credentials', () => { - cy.visit('/') - - cy.url().should('include', '/login') - cy.contains('Login') - - cy.get('input[id="email"]').type('user@retroleaderboards.app') - cy.get('input[id="pass"]').type('user-secret') - - cy.intercept('POST', '**/auth/v1/token?grant_type*', { - fixture: 'supabase.auth-granted.json' - }).as('auth') - - cy.intercept('GET', '**/functions/v1/get-ra-credentials', { - fixture: 'supabase.ra-credentials-bad.json', statusCode: 400 - }).as('raCredentials') - - cy.contains('Submit').click() - - cy.wait('@raCredentials').its('response.statusCode') - .should('equal', 400) - - cy.url().should('include', '/ra-credentials') - cy.contains('Set your RA credentials'); - }) - - it('success-with-ra-credentials', () => { - cy.visit('/') - - cy.url().should('include', '/login') - cy.contains('Login') - - cy.get('input[id="email"]').type('user@retroleaderboards.app') - cy.get('input[id="pass"]').type('user-secret') - - cy.intercept('POST', '**/auth/v1/token?grant_type*', { - fixture: 'supabase.auth-granted.json' - }).as('auth') - - cy.intercept('GET', '**/functions/v1/get-ra-credentials', { - fixture: 'supabase.ra-credentials-ok.json', statusCode: 200 - }).as('raCredentials') - - cy.intercept('GET', '**/rest/v1/leaderboards_updates?*', { - body: {}, statusCode: 200 - }).as('leaderboardsUpdates') - - cy.intercept('GET', '**/API/API_GetUserRecentlyPlayedGames.php*', { - fixture: 'no-played-games.json', statusCode: 200 - }).as('getRecentlyPlayedGames') - - cy.contains('Submit').click() - - cy.url().should('include', '/home') - cy.contains('Welcome'); - }) -}) diff --git a/cypress/e2e/recently_played_games_page.cy.ts b/cypress/e2e/recently_played_games_page.cy.ts deleted file mode 100644 index e007df0..0000000 --- a/cypress/e2e/recently_played_games_page.cy.ts +++ /dev/null @@ -1,66 +0,0 @@ -describe('recently played games page', () => { - beforeEach(() => { - cy.clearAllLocalStorage() - }) - - it('no games played', () => { - cy.intercept('GET', '**/API/API_GetUserRecentlyPlayedGames.php*', { fixture: 'no-played-games.json' }).as('getRecentlyPlayedGames') - - cy.interceptRACredentials() - cy.authenticate() - cy.interceptLeaderboardsUpdates() - cy.visit('/') - - cy.wait('@getRecentlyPlayedGames').its('response.body') - .should('deep.equal', []) - - cy.url().should('include', '/home') - cy.contains('No games played yet') - }) - - it('recently played games list with refresh', () => { - cy.intercept('GET', '**/API/API_GetUserRecentlyPlayedGames.php*', { fixture: 'recently-played-games-1.json' }).as('getRecentlyPlayedGames') - - cy.interceptRACredentials() - cy.authenticate() - cy.interceptLeaderboardsUpdates() - cy.visit('/') - - cy.wait('@getRecentlyPlayedGames').its('response.body') - .should('have.length', 1) - - cy.url().should('include', '/home') - cy.contains('Colin McRae Rally') - - cy.intercept('GET', '**/API/API_GetUserRecentlyPlayedGames.php*', { fixture: 'recently-played-games-2.json' }).as('getRecentlyPlayedGamesTwo') - - cy.get('.refresh-button').click() - - cy.wait('@getRecentlyPlayedGamesTwo').its('response.body') - .should('have.length', 2) - - cy.get('.game-list li').eq(0).contains('Colin McRae Rally') - cy.get('.game-list li').eq(1).contains('Kirby & The Amazing Mirror') - }) - - it('logout', () => { - cy.intercept('GET', '**/API/API_GetUserRecentlyPlayedGames.php*', { fixture: 'no-played-games.json' }).as('getRecentlyPlayedGames') - - cy.interceptRACredentials() - cy.authenticate() - cy.interceptLeaderboardsUpdates() - cy.visit('/') - - cy.wait('@getRecentlyPlayedGames').its('response.body') - .should('deep.equal', []) - - cy.get('.menu-toggle').click() - cy.contains('Logout').click() - - cy.get('.confirm-button').click() - - cy.getAllLocalStorage().should('be.empty') - - cy.url().should('include', '/login') - }) -}) diff --git a/cypress/fixtures/game-list-with-leaderboard.json b/cypress/fixtures/game-list-with-leaderboard.json deleted file mode 100644 index f24c72f..0000000 --- a/cypress/fixtures/game-list-with-leaderboard.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - { - "GameID": 16557, - "ConsoleID": 12, - "ConsoleName": "PlayStation", - "Title": "Colin McRae Rally", - "ImageIcon": "/Images/036840.png", - "ImageTitle": "/Images/036689.png", - "ImageIngame": "/Images/036690.png", - "ImageBoxArt": "/Images/065054.png", - "LastPlayed": "2024-12-16 22:22:54", - "AchievementsTotal": 104, - "NumPossibleAchievements": 104, - "PossibleScore": 436, - "NumAchieved": 53, - "ScoreAchieved": 173, - "NumAchievedHardcore": 53, - "ScoreAchievedHardcore": 173 - } -] diff --git a/cypress/fixtures/game-list-without-leaderboard.json b/cypress/fixtures/game-list-without-leaderboard.json deleted file mode 100644 index 8ef6a60..0000000 --- a/cypress/fixtures/game-list-without-leaderboard.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - { - "GameID": 769, - "ConsoleID": 5, - "ConsoleName": "Game Boy Advance", - "Title": "Kirby & The Amazing Mirror", - "ImageIcon": "/Images/042405.png", - "ImageTitle": "/Images/033746.png", - "ImageIngame": "/Images/002643.png", - "ImageBoxArt": "/Images/014483.png", - "LastPlayed": "2024-11-24 21:31:43", - "AchievementsTotal": 55, - "NumPossibleAchievements": 55, - "PossibleScore": 311, - "NumAchieved": 21, - "ScoreAchieved": 31, - "NumAchievedHardcore": 21, - "ScoreAchievedHardcore": 31 - } -] diff --git a/cypress/fixtures/leaderboard-entries-refresh.json b/cypress/fixtures/leaderboard-entries-refresh.json deleted file mode 100644 index f7cf4a3..0000000 --- a/cypress/fixtures/leaderboard-entries-refresh.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "Count": 10, - "Total": 366, - "Results": [ - { - "User": "josef733", - "DateSubmitted": "2024-05-28T21:45:32+00:00", - "Score": 15445, - "FormattedScore": "2:34.45", - "Rank": 1 - }, - { - "User": "Thebpg13", - "DateSubmitted": "2024-10-08T21:22:07+00:00", - "Score": 15836, - "FormattedScore": "2:38.36", - "Rank": 2 - }, - { - "User": "masakimu", - "DateSubmitted": "2023-10-28T17:20:02+00:00", - "Score": 16659, - "FormattedScore": "2:46.59", - "Rank": 3 - }, - { - "User": "JollyClubber", - "DateSubmitted": "2024-11-22T11:44:03+00:00", - "Score": 16682, - "FormattedScore": "2:46.82", - "Rank": 4 - }, - { - "User": "Ryszard", - "DateSubmitted": "2023-10-01T17:12:55+00:00", - "Score": 16965, - "FormattedScore": "2:49.65", - "Rank": 5 - }, - { - "User": "matias721744", - "DateSubmitted": "2024-09-27T21:08:48+00:00", - "Score": 17155, - "FormattedScore": "2:51.55", - "Rank": 6 - }, - { - "User": "ReAPer13AW", - "DateSubmitted": "2024-10-22T21:50:54+00:00", - "Score": 17339, - "FormattedScore": "2:53.39", - "Rank": 7 - }, - { - "User": "KboxGames", - "DateSubmitted": "2024-10-03T14:25:26+00:00", - "Score": 17342, - "FormattedScore": "2:53.42", - "Rank": 8 - }, - { - "User": "Pluxer", - "DateSubmitted": "2023-08-09T15:29:40+00:00", - "Score": 17509, - "FormattedScore": "2:55.09", - "Rank": 9 - }, - { - "User": "suXin", - "DateSubmitted": "2021-11-06T14:53:10+00:00", - "Score": 17559, - "FormattedScore": "2:55.59", - "Rank": 10 - } - ] -} \ No newline at end of file diff --git a/cypress/fixtures/leaderboard-entries.json b/cypress/fixtures/leaderboard-entries.json deleted file mode 100644 index 4b3d783..0000000 --- a/cypress/fixtures/leaderboard-entries.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "Count": 10, - "Total": 366, - "Results": [ - { - "User": "Thebpg13", - "DateSubmitted": "2024-10-08T21:22:07+00:00", - "Score": 15836, - "FormattedScore": "2:38.36", - "Rank": 1 - }, - { - "User": "josef733", - "DateSubmitted": "2024-05-28T21:45:32+00:00", - "Score": 16445, - "FormattedScore": "2:44.45", - "Rank": 2 - }, - { - "User": "masakimu", - "DateSubmitted": "2023-10-28T17:20:02+00:00", - "Score": 16659, - "FormattedScore": "2:46.59", - "Rank": 3 - }, - { - "User": "JollyClubber", - "DateSubmitted": "2024-11-22T11:44:03+00:00", - "Score": 16682, - "FormattedScore": "2:46.82", - "Rank": 4 - }, - { - "User": "Ryszard", - "DateSubmitted": "2023-10-01T17:12:55+00:00", - "Score": 16965, - "FormattedScore": "2:49.65", - "Rank": 5 - }, - { - "User": "matias721744", - "DateSubmitted": "2024-09-27T21:08:48+00:00", - "Score": 17155, - "FormattedScore": "2:51.55", - "Rank": 6 - }, - { - "User": "ReAPer13AW", - "DateSubmitted": "2024-10-22T21:50:54+00:00", - "Score": 17339, - "FormattedScore": "2:53.39", - "Rank": 7 - }, - { - "User": "KboxGames", - "DateSubmitted": "2024-10-03T14:25:26+00:00", - "Score": 17342, - "FormattedScore": "2:53.42", - "Rank": 8 - }, - { - "User": "Pluxer", - "DateSubmitted": "2023-08-09T15:29:40+00:00", - "Score": 17509, - "FormattedScore": "2:55.09", - "Rank": 9 - }, - { - "User": "suXin", - "DateSubmitted": "2021-11-06T14:53:10+00:00", - "Score": 17559, - "FormattedScore": "2:55.59", - "Rank": 10 - } - ] -} \ No newline at end of file diff --git a/cypress/fixtures/leaderboards-refresh.json b/cypress/fixtures/leaderboards-refresh.json deleted file mode 100644 index 80f28a8..0000000 --- a/cypress/fixtures/leaderboards-refresh.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "Count": 10, - "Total": 64, - "Results": [ - { - "ID": 19062, - "RankAsc": true, - "Title": "New Zealand One", - "Description": "Complete New Zealand S1 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "Thebpg13", - "Score": 11903, - "FormattedScore": "1:59.03" - } - }, - { - "ID": 19063, - "RankAsc": true, - "Title": "New Zealand Two", - "Description": "Complete New Zealand S2 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "zuliman92", - "Score": 15836, - "FormattedScore": "2:35.23" - } - }, - { - "ID": 19064, - "RankAsc": true, - "Title": "New Zealand Three", - "Description": "Complete New Zealand S3 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "Thebpg13", - "Score": 17619, - "FormattedScore": "2:56.19" - } - }, - { - "ID": 19065, - "RankAsc": true, - "Title": "New Zealand Four", - "Description": "Complete New Zealand S4 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "Thebpg13", - "Score": 14173, - "FormattedScore": "2:21.73" - } - }, - { - "ID": 19066, - "RankAsc": true, - "Title": "New Zealand Five", - "Description": "Complete New Zealand S5 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "Thebpg13", - "Score": 13963, - "FormattedScore": "2:19.63" - } - }, - { - "ID": 19067, - "RankAsc": true, - "Title": "New Zealand Six", - "Description": "Complete New Zealand S6 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "JollyClubber", - "Score": 15422, - "FormattedScore": "2:34.22" - } - }, - { - "ID": 19068, - "RankAsc": true, - "Title": "Greece One", - "Description": "Complete Greece S1 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "Thebpg13", - "Score": 15252, - "FormattedScore": "2:32.52" - } - }, - { - "ID": 19069, - "RankAsc": true, - "Title": "Greece Two", - "Description": "Complete Greece S2 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "josef733", - "Score": 13953, - "FormattedScore": "2:19.53" - } - }, - { - "ID": 19070, - "RankAsc": true, - "Title": "Greece Three", - "Description": "Complete Greece S3 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "josef733", - "Score": 12140, - "FormattedScore": "2:01.40" - } - }, - { - "ID": 19071, - "RankAsc": true, - "Title": "Greece Four", - "Description": "Complete Greece S4 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "Thebpg13", - "Score": 15219, - "FormattedScore": "2:32.19" - } - } - ] - } \ No newline at end of file diff --git a/cypress/fixtures/leaderboards.json b/cypress/fixtures/leaderboards.json deleted file mode 100644 index bbbbcf4..0000000 --- a/cypress/fixtures/leaderboards.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "Count": 10, - "Total": 64, - "Results": [ - { - "ID": 19062, - "RankAsc": true, - "Title": "New Zealand One", - "Description": "Complete New Zealand S1 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "Thebpg13", - "Score": 11903, - "FormattedScore": "1:59.03" - } - }, - { - "ID": 19063, - "RankAsc": true, - "Title": "New Zealand Two", - "Description": "Complete New Zealand S2 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "Thebpg13", - "Score": 15836, - "FormattedScore": "2:38.36" - } - }, - { - "ID": 19064, - "RankAsc": true, - "Title": "New Zealand Three", - "Description": "Complete New Zealand S3 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "Thebpg13", - "Score": 17619, - "FormattedScore": "2:56.19" - } - }, - { - "ID": 19065, - "RankAsc": true, - "Title": "New Zealand Four", - "Description": "Complete New Zealand S4 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "Thebpg13", - "Score": 14173, - "FormattedScore": "2:21.73" - } - }, - { - "ID": 19066, - "RankAsc": true, - "Title": "New Zealand Five", - "Description": "Complete New Zealand S5 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "Thebpg13", - "Score": 13963, - "FormattedScore": "2:19.63" - } - }, - { - "ID": 19067, - "RankAsc": true, - "Title": "New Zealand Six", - "Description": "Complete New Zealand S6 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "JollyClubber", - "Score": 15422, - "FormattedScore": "2:34.22" - } - }, - { - "ID": 19068, - "RankAsc": true, - "Title": "Greece One", - "Description": "Complete Greece S1 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "Thebpg13", - "Score": 15252, - "FormattedScore": "2:32.52" - } - }, - { - "ID": 19069, - "RankAsc": true, - "Title": "Greece Two", - "Description": "Complete Greece S2 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "josef733", - "Score": 13953, - "FormattedScore": "2:19.53" - } - }, - { - "ID": 19070, - "RankAsc": true, - "Title": "Greece Three", - "Description": "Complete Greece S3 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "josef733", - "Score": 12140, - "FormattedScore": "2:01.40" - } - }, - { - "ID": 19071, - "RankAsc": true, - "Title": "Greece Four", - "Description": "Complete Greece S4 in least time", - "Format": "MILLISECS", - "TopEntry": { - "User": "Thebpg13", - "Score": 15219, - "FormattedScore": "2:32.19" - } - } - ] - } \ No newline at end of file diff --git a/cypress/fixtures/no-leaderboard-entries.json b/cypress/fixtures/no-leaderboard-entries.json deleted file mode 100644 index a61ac39..0000000 --- a/cypress/fixtures/no-leaderboard-entries.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "Count": 0, - "Total": 0, - "Results": [] -} \ No newline at end of file diff --git a/cypress/fixtures/no-leaderboards.json b/cypress/fixtures/no-leaderboards.json deleted file mode 100644 index a61ac39..0000000 --- a/cypress/fixtures/no-leaderboards.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "Count": 0, - "Total": 0, - "Results": [] -} \ No newline at end of file diff --git a/cypress/fixtures/no-played-games.json b/cypress/fixtures/no-played-games.json deleted file mode 100644 index 0637a08..0000000 --- a/cypress/fixtures/no-played-games.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/cypress/fixtures/recently-played-games-1.json b/cypress/fixtures/recently-played-games-1.json deleted file mode 100644 index f24c72f..0000000 --- a/cypress/fixtures/recently-played-games-1.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - { - "GameID": 16557, - "ConsoleID": 12, - "ConsoleName": "PlayStation", - "Title": "Colin McRae Rally", - "ImageIcon": "/Images/036840.png", - "ImageTitle": "/Images/036689.png", - "ImageIngame": "/Images/036690.png", - "ImageBoxArt": "/Images/065054.png", - "LastPlayed": "2024-12-16 22:22:54", - "AchievementsTotal": 104, - "NumPossibleAchievements": 104, - "PossibleScore": 436, - "NumAchieved": 53, - "ScoreAchieved": 173, - "NumAchievedHardcore": 53, - "ScoreAchievedHardcore": 173 - } -] diff --git a/cypress/fixtures/recently-played-games-2.json b/cypress/fixtures/recently-played-games-2.json deleted file mode 100644 index 711a296..0000000 --- a/cypress/fixtures/recently-played-games-2.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "GameID": 16557, - "ConsoleID": 12, - "ConsoleName": "PlayStation", - "Title": "Colin McRae Rally", - "ImageIcon": "/Images/036840.png", - "ImageTitle": "/Images/036689.png", - "ImageIngame": "/Images/036690.png", - "ImageBoxArt": "/Images/065054.png", - "LastPlayed": "2024-12-16 22:22:54", - "AchievementsTotal": 104, - "NumPossibleAchievements": 104, - "PossibleScore": 436, - "NumAchieved": 53, - "ScoreAchieved": 173, - "NumAchievedHardcore": 53, - "ScoreAchievedHardcore": 173 - }, - { - "GameID": 769, - "ConsoleID": 5, - "ConsoleName": "Game Boy Advance", - "Title": "Kirby & The Amazing Mirror", - "ImageIcon": "/Images/042405.png", - "ImageTitle": "/Images/033746.png", - "ImageIngame": "/Images/002643.png", - "ImageBoxArt": "/Images/014483.png", - "LastPlayed": "2024-11-24 21:31:43", - "AchievementsTotal": 55, - "NumPossibleAchievements": 55, - "PossibleScore": 311, - "NumAchieved": 21, - "ScoreAchieved": 31, - "NumAchievedHardcore": 21, - "ScoreAchievedHardcore": 31 - } -] diff --git a/cypress/fixtures/supabase.auth-granted.json b/cypress/fixtures/supabase.auth-granted.json deleted file mode 100644 index 02e72e2..0000000 --- a/cypress/fixtures/supabase.auth-granted.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "access_token": "access_token_example", - "token_type": "bearer", - "expires_in": 3600, - "expires_at": 1735829283, - "refresh_token": "refresh_token_example", - "user": { - "id": "f5c17b2f-b0b5-42e7-bb52-9b74690433d3", - "aud": "authenticated", - "role": "authenticated", - "email": "user@retroleaderboards.app", - "email_confirmed_at": "2024-12-30T09:51:08.890862Z", - "phone": "", - "confirmed_at": "2024-12-30T09:51:08.890862Z", - "last_sign_in_at": "2025-01-02T13:48:03.069871615Z", - "app_metadata": { - "provider": "email", - "providers": [ - "email" - ] - }, - "user_metadata": { - "email_verified": true - }, - "identities": [ - { - "identity_id": "e8aefdfa-42af-4e3a-9479-fab604d54856", - "id": "f5c17b2f-b0b5-42e7-bb52-9b74690433d3", - "user_id": "f5c17b2f-b0b5-42e7-bb52-9b74690433d3", - "identity_data": { - "email": "user@retroleaderboards.app", - "email_verified": false, - "phone_verified": false, - "sub": "f5c17b2f-b0b5-42e7-bb52-9b74690433d3" - }, - "provider": "email", - "last_sign_in_at": "2024-12-30T09:51:08.887812Z", - "created_at": "2024-12-30T09:51:08.887864Z", - "updated_at": "2024-12-30T09:51:08.887864Z", - "email": "user@retroleaderboards.app" - } - ], - "created_at": "2024-12-30T09:51:08.883337Z", - "updated_at": "2025-01-02T13:48:03.0769Z", - "is_anonymous": false - } -} \ No newline at end of file diff --git a/cypress/fixtures/supabase.ra-credentials-bad.json b/cypress/fixtures/supabase.ra-credentials-bad.json deleted file mode 100644 index d945891..0000000 --- a/cypress/fixtures/supabase.ra-credentials-bad.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "error": "Cannot read properties of undefined (reading 'ra_api_key')" -} \ No newline at end of file diff --git a/cypress/fixtures/supabase.ra-credentials-ok.json b/cypress/fixtures/supabase.ra-credentials-ok.json deleted file mode 100644 index fc53fac..0000000 --- a/cypress/fixtures/supabase.ra-credentials-ok.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "data": { - "username": "demo", - "api_key": "demo-web-api-key" - } -} \ No newline at end of file diff --git a/cypress/fixtures/users-i-follow-with-matias.json b/cypress/fixtures/users-i-follow-with-matias.json deleted file mode 100644 index 687f531..0000000 --- a/cypress/fixtures/users-i-follow-with-matias.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "Count": 2, - "Total": 2, - "Results": [ - { - "User": "matias721744", - "Points": 7081, - "PointsSoftcore": 0, - "IsFollowingMe": true - }, - { - "User": "zuliman92", - "Points": 2442, - "PointsSoftcore": 258, - "IsFollowingMe": true - } - ] -} \ No newline at end of file diff --git a/cypress/fixtures/users-i-follow.json b/cypress/fixtures/users-i-follow.json deleted file mode 100644 index 8cac5cf..0000000 --- a/cypress/fixtures/users-i-follow.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Count": 1, - "Total": 1, - "Results": [ - { - "User": "zuliman92", - "Points": 2442, - "PointsSoftcore": 258, - "IsFollowingMe": true - } - ] -} \ No newline at end of file diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts deleted file mode 100644 index 2b119d4..0000000 --- a/cypress/support/commands.ts +++ /dev/null @@ -1,75 +0,0 @@ -import {} from 'cypress' - -Cypress.Commands.add('authenticate', (granted = true) => { - cy.visit('/login') - cy.get('input[id="email"]').type('user@retroleaderboards.app') - cy.get('input[id="pass"]').type('user-secret') - if (granted) { - cy.intercept('POST', '**/auth/v1/token?grant_type*', { - fixture: 'supabase.auth-granted.json' - }) - } else { - cy.intercept('POST', '**/auth/v1/token?grant_type*', { - body: {message: 'Bad credentials'}, statusCode: 401 - }) - } - cy.contains('Submit').click() - }) - -Cypress.Commands.add('interceptRACredentials', (existing = true, username = "demo", apiKey = "demo-key") => { - if (existing) { - cy.intercept('GET', '**/functions/v1/get-ra-credentials', { - body: { - "data": { - "username": username, - "api_key": apiKey - } - }, statusCode: 200 - }) - } else { - cy.intercept('GET', '**/functions/v1/get-ra-credentials', { - fixture: 'supabase.ra-credentials-bad.json', statusCode: 400 - }) - } -}) - -Cypress.Commands.add('interceptLeaderboardsUpdates', () => { - cy.intercept('OPTIONS', '**/rest/v1/leaderboards_updates?*', { - statusCode: 200 - }) - cy.intercept('GET', '**/rest/v1/leaderboards_updates?*', { - body: {}, statusCode: 200 - }) -}) - -Cypress.Commands.add('interceptGameSubscription', (subscribed = true) => { - if (subscribed) { - cy.intercept('GET', '**/rest/v1/game_subscriptions?*', { - body: { - user_id: "b6fb8bca-f451-4bde-99c3-8354e3ca27cf", - game_id: 1, - created_at: "2025-01-01T22:37:36.833282+00:00" - }, statusCode: 200 - }) - } else { - cy.intercept('GET', '**/rest/v1/game_subscriptions?*', { - body: {}, statusCode: 200 - }) - } -}) - -Cypress.Commands.add('interceptUsersIFollow', () => { - cy.intercept('GET', '**/API/API_GetUsersIFollow.php*', { fixture: 'users-i-follow.json' }).as('getUsersIFollow') -}) - -declare global { - namespace Cypress { - interface Chainable { - authenticate(granted = true): Chainable - interceptRACredentials(existing: boolean, username: string, apiKey: string): Chainable - interceptLeaderboardsUpdates(): Chainable - interceptGameSubscription(subscribed: boolean): Chainable - interceptUsersIFollow(): Chainable - } - } -} diff --git a/cypress/support/e2e.ts b/cypress/support/e2e.ts deleted file mode 100644 index f80f74f..0000000 --- a/cypress/support/e2e.ts +++ /dev/null @@ -1,20 +0,0 @@ -// *********************************************************** -// This example support/e2e.ts is processed and -// loaded automatically before your test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/configuration -// *********************************************************** - -// Import commands.js using ES2015 syntax: -import './commands' - -// Alternatively you can use CommonJS syntax: -// require('./commands') \ No newline at end of file diff --git a/cypress/tsconfig.json b/cypress/tsconfig.json deleted file mode 100644 index 18edb19..0000000 --- a/cypress/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "lib": ["es5", "dom"], - "types": ["cypress", "node"] - }, - "include": ["**/*.ts"] -} diff --git a/index.html b/index.html index 6d6518d..28ea4bf 100644 --- a/index.html +++ b/index.html @@ -6,9 +6,10 @@ Retro leaderboards + +
- diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index f985947..0000000 --- a/package-lock.json +++ /dev/null @@ -1,3701 +0,0 @@ -{ - "name": "retroleaderboards", - "version": "0.0.6", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "retroleaderboards", - "version": "0.0.6", - "dependencies": { - "@supabase/supabase-js": "^2.47.10", - "axios": "^1.7.9", - "crypto-js": "^4.2.0", - "pinia": "^2.3.0", - "vue": "^3.5.13", - "vue-router": "^4.5.0" - }, - "devDependencies": { - "@types/crypto-js": "^4.2.2", - "@vitejs/plugin-vue": "^5.2.1", - "cypress": "^13.16.1", - "typescript": "~5.6.2", - "vite": "^6.0.1", - "vue-tsc": "^2.1.10" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", - "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.26.3" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/types": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", - "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@cypress/request": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.7.tgz", - "integrity": "sha512-LzxlLEMbBOPYB85uXrDqvD4MgcenjRBLIns3zyhx7vTPj/0u2eQhzXvPiGcaJrV38Q9dbkExWp6cOHPJ+EtFYg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~4.0.0", - "http-signature": "~1.4.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "performance-now": "^2.1.0", - "qs": "6.13.1", - "safe-buffer": "^5.1.2", - "tough-cookie": "^5.0.0", - "tunnel-agent": "^0.6.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@cypress/xvfb": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", - "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.1.0", - "lodash.once": "^4.1.1" - } - }, - "node_modules/@cypress/xvfb/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", - "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", - "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", - "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", - "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", - "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", - "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", - "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", - "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", - "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", - "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", - "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", - "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", - "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", - "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", - "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", - "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", - "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", - "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", - "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", - "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", - "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", - "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", - "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", - "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "license": "MIT" - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.1.tgz", - "integrity": "sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.1.tgz", - "integrity": "sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.1.tgz", - "integrity": "sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.1.tgz", - "integrity": "sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.1.tgz", - "integrity": "sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.1.tgz", - "integrity": "sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.1.tgz", - "integrity": "sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.1.tgz", - "integrity": "sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.1.tgz", - "integrity": "sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.1.tgz", - "integrity": "sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.28.1.tgz", - "integrity": "sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.1.tgz", - "integrity": "sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.1.tgz", - "integrity": "sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.1.tgz", - "integrity": "sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.1.tgz", - "integrity": "sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.1.tgz", - "integrity": "sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.1.tgz", - "integrity": "sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.1.tgz", - "integrity": "sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.1.tgz", - "integrity": "sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@supabase/auth-js": { - "version": "2.67.3", - "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.67.3.tgz", - "integrity": "sha512-NJDaW8yXs49xMvWVOkSIr8j46jf+tYHV0wHhrwOaLLMZSFO4g6kKAf+MfzQ2RaD06OCUkUHIzctLAxjTgEVpzw==", - "license": "MIT", - "dependencies": { - "@supabase/node-fetch": "^2.6.14" - } - }, - "node_modules/@supabase/functions-js": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.4.4.tgz", - "integrity": "sha512-WL2p6r4AXNGwop7iwvul2BvOtuJ1YQy8EbOd0dhG1oN1q8el/BIRSFCFnWAMM/vJJlHWLi4ad22sKbKr9mvjoA==", - "license": "MIT", - "dependencies": { - "@supabase/node-fetch": "^2.6.14" - } - }, - "node_modules/@supabase/node-fetch": { - "version": "2.6.15", - "resolved": "https://registry.npmjs.org/@supabase/node-fetch/-/node-fetch-2.6.15.tgz", - "integrity": "sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/@supabase/postgrest-js": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.17.7.tgz", - "integrity": "sha512-aOzOYaTADm/dVTNksyqv9KsbhVa1gHz1Hoxb2ZEF2Ed9H7qlWOfptECQWmkEmrrFjtNaiPrgiSaPECvzI/seDA==", - "license": "MIT", - "dependencies": { - "@supabase/node-fetch": "^2.6.14" - } - }, - "node_modules/@supabase/realtime-js": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.11.2.tgz", - "integrity": "sha512-u/XeuL2Y0QEhXSoIPZZwR6wMXgB+RQbJzG9VErA3VghVt7uRfSVsjeqd7m5GhX3JR6dM/WRmLbVR8URpDWG4+w==", - "license": "MIT", - "dependencies": { - "@supabase/node-fetch": "^2.6.14", - "@types/phoenix": "^1.5.4", - "@types/ws": "^8.5.10", - "ws": "^8.18.0" - } - }, - "node_modules/@supabase/storage-js": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.7.1.tgz", - "integrity": "sha512-asYHcyDR1fKqrMpytAS1zjyEfvxuOIp1CIXX7ji4lHHcJKqyk+sLl/Vxgm4sN6u8zvuUtae9e4kDxQP2qrwWBA==", - "license": "MIT", - "dependencies": { - "@supabase/node-fetch": "^2.6.14" - } - }, - "node_modules/@supabase/supabase-js": { - "version": "2.47.10", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.47.10.tgz", - "integrity": "sha512-vJfPF820Ho5WILYHfKiBykDQ1SB9odTHrRZ0JxHfuLMC8GRvv21YLkUZQK7/rSVCkLvD6/ZwMWaOAfdUd//guw==", - "license": "MIT", - "dependencies": { - "@supabase/auth-js": "2.67.3", - "@supabase/functions-js": "2.4.4", - "@supabase/node-fetch": "2.6.15", - "@supabase/postgrest-js": "1.17.7", - "@supabase/realtime-js": "2.11.2", - "@supabase/storage-js": "2.7.1" - } - }, - "node_modules/@types/crypto-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.2.2.tgz", - "integrity": "sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.10.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", - "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/phoenix": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.6.tgz", - "integrity": "sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==", - "license": "MIT" - }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", - "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/sizzle": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.9.tgz", - "integrity": "sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/ws": { - "version": "8.5.13", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", - "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@vitejs/plugin-vue": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz", - "integrity": "sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0", - "vue": "^3.2.25" - } - }, - "node_modules/@volar/language-core": { - "version": "2.4.10", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.10.tgz", - "integrity": "sha512-hG3Z13+nJmGaT+fnQzAkS0hjJRa2FCeqZt6Bd+oGNhUkQ+mTFsDETg5rqUTxyzIh5pSOGY7FHCWUS8G82AzLCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@volar/source-map": "2.4.10" - } - }, - "node_modules/@volar/source-map": { - "version": "2.4.10", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.10.tgz", - "integrity": "sha512-OCV+b5ihV0RF3A7vEvNyHPi4G4kFa6ukPmyVocmqm5QzOd8r5yAtiNvaPEjl8dNvgC/lj4JPryeeHLdXd62rWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@volar/typescript": { - "version": "2.4.10", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.10.tgz", - "integrity": "sha512-F8ZtBMhSXyYKuBfGpYwqA5rsONnOwAVvjyE7KPYJ7wgZqo2roASqNWUnianOomJX5u1cxeRooHV59N0PhvEOgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@volar/language-core": "2.4.10", - "path-browserify": "^1.0.1", - "vscode-uri": "^3.0.8" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", - "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.25.3", - "@vue/shared": "3.5.13", - "entities": "^4.5.0", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.0" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", - "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", - "license": "MIT", - "dependencies": { - "@vue/compiler-core": "3.5.13", - "@vue/shared": "3.5.13" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", - "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.25.3", - "@vue/compiler-core": "3.5.13", - "@vue/compiler-dom": "3.5.13", - "@vue/compiler-ssr": "3.5.13", - "@vue/shared": "3.5.13", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.11", - "postcss": "^8.4.48", - "source-map-js": "^1.2.0" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", - "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", - "license": "MIT", - "dependencies": { - "@vue/compiler-dom": "3.5.13", - "@vue/shared": "3.5.13" - } - }, - "node_modules/@vue/compiler-vue2": { - "version": "2.7.16", - "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", - "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", - "dev": true, - "license": "MIT", - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, - "node_modules/@vue/devtools-api": { - "version": "6.6.4", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", - "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", - "license": "MIT" - }, - "node_modules/@vue/language-core": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.10.tgz", - "integrity": "sha512-DAI289d0K3AB5TUG3xDp9OuQ71CnrujQwJrQnfuZDwo6eGNf0UoRlPuaVNO+Zrn65PC3j0oB2i7mNmVPggeGeQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@volar/language-core": "~2.4.8", - "@vue/compiler-dom": "^3.5.0", - "@vue/compiler-vue2": "^2.7.16", - "@vue/shared": "^3.5.0", - "alien-signals": "^0.2.0", - "minimatch": "^9.0.3", - "muggle-string": "^0.4.1", - "path-browserify": "^1.0.1" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@vue/reactivity": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", - "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", - "license": "MIT", - "dependencies": { - "@vue/shared": "3.5.13" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", - "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", - "license": "MIT", - "dependencies": { - "@vue/reactivity": "3.5.13", - "@vue/shared": "3.5.13" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", - "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", - "license": "MIT", - "dependencies": { - "@vue/reactivity": "3.5.13", - "@vue/runtime-core": "3.5.13", - "@vue/shared": "3.5.13", - "csstype": "^3.1.3" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", - "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", - "license": "MIT", - "dependencies": { - "@vue/compiler-ssr": "3.5.13", - "@vue/shared": "3.5.13" - }, - "peerDependencies": { - "vue": "3.5.13" - } - }, - "node_modules/@vue/shared": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", - "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", - "license": "MIT" - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/alien-signals": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-0.2.2.tgz", - "integrity": "sha512-cZIRkbERILsBOXTQmMrxc9hgpxglstn69zm+F1ARf4aPAzdAFYd6sBq87ErO0Fj3DV94tglcyHG5kQz9nDC/8A==", - "dev": true, - "license": "MIT" - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/arch": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true, - "license": "MIT" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", - "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", - "dev": true, - "license": "MIT" - }, - "node_modules/axios": { - "version": "1.7.9", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", - "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/blob-util": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", - "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true, - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/cachedir": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", - "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", - "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/check-more-types": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ci-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.1.0.tgz", - "integrity": "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-table3": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", - "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", - "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", - "license": "MIT" - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "node_modules/cypress": { - "version": "13.16.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.16.1.tgz", - "integrity": "sha512-17FtCaz0cx7ssWYKXzGB0Vub8xHwpVPr+iPt2fHhLMDhVAPVrplD+rTQsZUsfb19LVBn5iwkEUFjQ1yVVJXsLA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "@cypress/request": "^3.0.6", - "@cypress/xvfb": "^1.2.4", - "@types/sinonjs__fake-timers": "8.1.1", - "@types/sizzle": "^2.3.2", - "arch": "^2.2.0", - "blob-util": "^2.0.2", - "bluebird": "^3.7.2", - "buffer": "^5.7.1", - "cachedir": "^2.3.0", - "chalk": "^4.1.0", - "check-more-types": "^2.24.0", - "ci-info": "^4.0.0", - "cli-cursor": "^3.1.0", - "cli-table3": "~0.6.1", - "commander": "^6.2.1", - "common-tags": "^1.8.0", - "dayjs": "^1.10.4", - "debug": "^4.3.4", - "enquirer": "^2.3.6", - "eventemitter2": "6.4.7", - "execa": "4.1.0", - "executable": "^4.1.1", - "extract-zip": "2.0.1", - "figures": "^3.2.0", - "fs-extra": "^9.1.0", - "getos": "^3.2.1", - "is-installed-globally": "~0.4.0", - "lazy-ass": "^1.6.0", - "listr2": "^3.8.3", - "lodash": "^4.17.21", - "log-symbols": "^4.0.0", - "minimist": "^1.2.8", - "ospath": "^1.2.2", - "pretty-bytes": "^5.6.0", - "process": "^0.11.10", - "proxy-from-env": "1.0.0", - "request-progress": "^3.0.0", - "semver": "^7.5.3", - "supports-color": "^8.1.1", - "tmp": "~0.2.3", - "tree-kill": "1.2.2", - "untildify": "^4.0.0", - "yauzl": "^2.10.0" - }, - "bin": { - "cypress": "bin/cypress" - }, - "engines": { - "node": "^16.0.0 || ^18.0.0 || >=20.0.0" - } - }, - "node_modules/cypress/node_modules/proxy-from-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", - "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", - "dev": true, - "license": "MIT" - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", - "dev": true, - "license": "MIT" - }, - "node_modules/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", - "dev": true, - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/esbuild": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", - "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.0", - "@esbuild/android-arm": "0.24.0", - "@esbuild/android-arm64": "0.24.0", - "@esbuild/android-x64": "0.24.0", - "@esbuild/darwin-arm64": "0.24.0", - "@esbuild/darwin-x64": "0.24.0", - "@esbuild/freebsd-arm64": "0.24.0", - "@esbuild/freebsd-x64": "0.24.0", - "@esbuild/linux-arm": "0.24.0", - "@esbuild/linux-arm64": "0.24.0", - "@esbuild/linux-ia32": "0.24.0", - "@esbuild/linux-loong64": "0.24.0", - "@esbuild/linux-mips64el": "0.24.0", - "@esbuild/linux-ppc64": "0.24.0", - "@esbuild/linux-riscv64": "0.24.0", - "@esbuild/linux-s390x": "0.24.0", - "@esbuild/linux-x64": "0.24.0", - "@esbuild/netbsd-x64": "0.24.0", - "@esbuild/openbsd-arm64": "0.24.0", - "@esbuild/openbsd-x64": "0.24.0", - "@esbuild/sunos-x64": "0.24.0", - "@esbuild/win32-arm64": "0.24.0", - "@esbuild/win32-ia32": "0.24.0", - "@esbuild/win32-x64": "0.24.0" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "license": "MIT" - }, - "node_modules/eventemitter2": { - "version": "6.4.7", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", - "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", - "dev": true, - "license": "MIT" - }, - "node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/executable": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", - "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^2.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true, - "license": "MIT" - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz", - "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "dunder-proto": "^1.0.0", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "function-bind": "^1.1.2", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/getos": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", - "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "async": "^3.2.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/http-signature": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.4.0.tgz", - "integrity": "sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^2.0.2", - "sshpk": "^1.18.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8.12.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true, - "license": "MIT" - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true, - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true, - "license": "ISC" - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsprim": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", - "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "node_modules/lazy-ass": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "> 0.8" - } - }, - "node_modules/listr2": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", - "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.5.1", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/magic-string": { - "version": "0.30.15", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.15.tgz", - "integrity": "sha512-zXeaYRgZ6ldS1RJJUrMrYgNJ4fdwnyI6tVqoiIhyCyv5IVTK9BU8Ic2l253GGETQHxI4HNUwhJ3fjDhKqEoaAw==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "node_modules/math-intrinsics": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.0.0.tgz", - "integrity": "sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "license": "MIT" - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/muggle-string": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", - "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ospath": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", - "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", - "dev": true, - "license": "MIT" - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true, - "license": "MIT" - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinia": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.3.0.tgz", - "integrity": "sha512-ohZj3jla0LL0OH5PlLTDMzqKiVw2XARmC1XYLdLWIPBMdhDW/123ZWr4zVAhtJm+aoSkFa13pYXskAvAscIkhQ==", - "license": "MIT", - "dependencies": { - "@vue/devtools-api": "^6.6.3", - "vue-demi": "^0.14.10" - }, - "funding": { - "url": "https://github.com/sponsors/posva" - }, - "peerDependencies": { - "typescript": ">=4.4.4", - "vue": "^2.7.0 || ^3.5.11" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/qs": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", - "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/request-progress": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", - "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "throttleit": "^1.0.0" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/rfdc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true, - "license": "MIT" - }, - "node_modules/rollup": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.1.tgz", - "integrity": "sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.28.1", - "@rollup/rollup-android-arm64": "4.28.1", - "@rollup/rollup-darwin-arm64": "4.28.1", - "@rollup/rollup-darwin-x64": "4.28.1", - "@rollup/rollup-freebsd-arm64": "4.28.1", - "@rollup/rollup-freebsd-x64": "4.28.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.28.1", - "@rollup/rollup-linux-arm-musleabihf": "4.28.1", - "@rollup/rollup-linux-arm64-gnu": "4.28.1", - "@rollup/rollup-linux-arm64-musl": "4.28.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.28.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.28.1", - "@rollup/rollup-linux-riscv64-gnu": "4.28.1", - "@rollup/rollup-linux-s390x-gnu": "4.28.1", - "@rollup/rollup-linux-x64-gnu": "4.28.1", - "@rollup/rollup-linux-x64-musl": "4.28.1", - "@rollup/rollup-win32-arm64-msvc": "4.28.1", - "@rollup/rollup-win32-ia32-msvc": "4.28.1", - "@rollup/rollup-win32-x64-msvc": "4.28.1", - "fsevents": "~2.3.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "license": "MIT" - }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sshpk": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", - "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/throttleit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", - "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true, - "license": "MIT" - }, - "node_modules/tldts": { - "version": "6.1.68", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.68.tgz", - "integrity": "sha512-JKF17jROiYkjJPT73hUTEiTp2OBCf+kAlB+1novk8i6Q6dWjHsgEjw9VLiipV4KTJavazXhY1QUXyQFSem2T7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "tldts-core": "^6.1.68" - }, - "bin": { - "tldts": "bin/cli.js" - } - }, - "node_modules/tldts-core": { - "version": "6.1.68", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.68.tgz", - "integrity": "sha512-85TdlS/DLW/gVdf2oyyzqp3ocS30WxjaL4la85EArl9cHUR/nizifKAJPziWewSZjDZS71U517/i6ciUeqtB5Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.14" - } - }, - "node_modules/tough-cookie": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.0.0.tgz", - "integrity": "sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tldts": "^6.1.32" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT" - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "license": "MIT", - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true, - "license": "Unlicense" - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", - "devOptional": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "license": "MIT" - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/vite": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.3.tgz", - "integrity": "sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.24.0", - "postcss": "^8.4.49", - "rollup": "^4.23.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vscode-uri": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", - "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", - "dev": true, - "license": "MIT" - }, - "node_modules/vue": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", - "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", - "license": "MIT", - "dependencies": { - "@vue/compiler-dom": "3.5.13", - "@vue/compiler-sfc": "3.5.13", - "@vue/runtime-dom": "3.5.13", - "@vue/server-renderer": "3.5.13", - "@vue/shared": "3.5.13" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/vue-demi": { - "version": "0.14.10", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", - "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, - "node_modules/vue-router": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.0.tgz", - "integrity": "sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==", - "license": "MIT", - "dependencies": { - "@vue/devtools-api": "^6.6.4" - }, - "funding": { - "url": "https://github.com/sponsors/posva" - }, - "peerDependencies": { - "vue": "^3.2.0" - } - }, - "node_modules/vue-tsc": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.1.10.tgz", - "integrity": "sha512-RBNSfaaRHcN5uqVqJSZh++Gy/YUzryuv9u1aFWhsammDJXNtUiJMNoJ747lZcQ68wUQFx6E73y4FY3D8E7FGMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@volar/typescript": "~2.4.8", - "@vue/language-core": "2.1.10", - "semver": "^7.5.4" - }, - "bin": { - "vue-tsc": "bin/vue-tsc.js" - }, - "peerDependencies": { - "typescript": ">=5.0.0" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 57258c3..0000000 --- a/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "retroleaderboards", - "private": true, - "version": "0.0.6", - "scripts": { - "dev": "vite", - "dev:cypress": "VITE_ENCRYPTION_KEY=1234567890_KEY VITE_SUPABASE_URL=http://127.0.0.1:54321 VITE_SUPABASE_KEY=some-key vite --host", - "build": "vue-tsc && vite build", - "preview": "vite preview", - "cy:open": "cypress open", - "cy:run": "cypress run" - }, - "dependencies": { - "@supabase/supabase-js": "^2.47.10", - "axios": "^1.7.9", - "crypto-js": "^4.2.0", - "pinia": "^2.3.0", - "vue": "^3.5.13", - "vue-router": "^4.5.0" - }, - "devDependencies": { - "@types/crypto-js": "^4.2.2", - "@vitejs/plugin-vue": "^5.2.1", - "cypress": "^13.16.1", - "typescript": "~5.6.2", - "vite": "^6.0.1", - "vue-tsc": "^2.1.10" - } -} diff --git a/src/App.vue b/src/App.vue deleted file mode 100644 index 703da6b..0000000 --- a/src/App.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - diff --git a/src/components/AuthCallback.vue b/src/components/AuthCallback.vue deleted file mode 100644 index 3119309..0000000 --- a/src/components/AuthCallback.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/BurgerMenu.vue b/src/components/BurgerMenu.vue deleted file mode 100644 index 73c8cfa..0000000 --- a/src/components/BurgerMenu.vue +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - diff --git a/src/components/ConfirmModal.vue b/src/components/ConfirmModal.vue deleted file mode 100644 index 8271c11..0000000 --- a/src/components/ConfirmModal.vue +++ /dev/null @@ -1,86 +0,0 @@ - - - - - diff --git a/src/components/GameLeaderboards.vue b/src/components/GameLeaderboards.vue deleted file mode 100644 index 643c837..0000000 --- a/src/components/GameLeaderboards.vue +++ /dev/null @@ -1,270 +0,0 @@ - - - - - diff --git a/src/components/Home.vue b/src/components/Home.vue deleted file mode 100644 index 25daf11..0000000 --- a/src/components/Home.vue +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - diff --git a/src/components/LeaderboardEntries.vue b/src/components/LeaderboardEntries.vue deleted file mode 100644 index da09c1d..0000000 --- a/src/components/LeaderboardEntries.vue +++ /dev/null @@ -1,231 +0,0 @@ - - - - - diff --git a/src/components/LeaderboardsUpdates.vue b/src/components/LeaderboardsUpdates.vue deleted file mode 100644 index 6fdf786..0000000 --- a/src/components/LeaderboardsUpdates.vue +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - diff --git a/src/components/Login.vue b/src/components/Login.vue deleted file mode 100644 index ce2a551..0000000 --- a/src/components/Login.vue +++ /dev/null @@ -1,152 +0,0 @@ - - - - diff --git a/src/components/Logout.vue b/src/components/Logout.vue deleted file mode 100644 index ad407cf..0000000 --- a/src/components/Logout.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/RACredentials.vue b/src/components/RACredentials.vue deleted file mode 100644 index 2b58dde..0000000 --- a/src/components/RACredentials.vue +++ /dev/null @@ -1,143 +0,0 @@ - - - - diff --git a/src/components/SingUp.vue b/src/components/SingUp.vue deleted file mode 100644 index 795fd71..0000000 --- a/src/components/SingUp.vue +++ /dev/null @@ -1,146 +0,0 @@ - - - - diff --git a/src/components/Tooltip.vue b/src/components/Tooltip.vue deleted file mode 100644 index 0c118de..0000000 --- a/src/components/Tooltip.vue +++ /dev/null @@ -1,101 +0,0 @@ - - - - - diff --git a/src/main.ts b/src/main.ts deleted file mode 100644 index c89aca9..0000000 --- a/src/main.ts +++ /dev/null @@ -1,18 +0,0 @@ -import {createApp} from 'vue'; -import {createPinia, PiniaPlugin} from 'pinia'; -import App from './App.vue'; -import router from './router/index'; -import {markRaw} from 'vue'; - -const pinia = createPinia(); - -const piniaPlugin: PiniaPlugin = ({store}) => { - store.router = markRaw(router); -}; - -pinia.use(piniaPlugin); - -const app = createApp(App); -app.use(pinia); -app.use(router); -app.mount('#app'); diff --git a/src/models/Friends.ts b/src/models/Friends.ts deleted file mode 100644 index 2a1201e..0000000 --- a/src/models/Friends.ts +++ /dev/null @@ -1,12 +0,0 @@ -export interface Friends { - Count: number - Total: number - Results: Friend[] -} - -export interface Friend { - User: string - Points: number - PointsSoftcore: number - IsFollowingMe: boolean -} diff --git a/src/models/GameLeaderboards.ts b/src/models/GameLeaderboards.ts deleted file mode 100644 index 1d66d5a..0000000 --- a/src/models/GameLeaderboards.ts +++ /dev/null @@ -1,20 +0,0 @@ -export interface GameLeaderboards { - Count: number - Total: number - Results: Leaderboard[] -} - -export interface Leaderboard { - ID: number - RankAsc: boolean - Title: string - Description: string - Format: string - TopEntry: TopEntry -} - -export interface TopEntry { - User: string - Score: number - FormattedScore: string -} diff --git a/src/models/LeaderboardEntries.ts b/src/models/LeaderboardEntries.ts deleted file mode 100644 index ea9becd..0000000 --- a/src/models/LeaderboardEntries.ts +++ /dev/null @@ -1,13 +0,0 @@ -export interface LeaderboardEntries { - Count: number - Total: number - Results: Entry[] -} - -export interface Entry { - User: string - DateSubmitted: string - Score: number - FormattedScore: string - Rank: number -} diff --git a/src/models/RecentlyPlayedGames.ts b/src/models/RecentlyPlayedGames.ts deleted file mode 100644 index d54ae16..0000000 --- a/src/models/RecentlyPlayedGames.ts +++ /dev/null @@ -1,20 +0,0 @@ -export type GameList = Game[] - -export interface Game { - GameID: number - ConsoleID: number - ConsoleName: string - Title: string - ImageIcon: string - ImageTitle: string - ImageIngame: string - ImageBoxArt: string - LastPlayed: string - AchievementsTotal: number - NumPossibleAchievements: number - PossibleScore: number - NumAchieved: number - ScoreAchieved: number - NumAchievedHardcore: number - ScoreAchievedHardcore: number -} diff --git a/src/repositories/GameRepository.ts b/src/repositories/GameRepository.ts deleted file mode 100644 index 2cf898f..0000000 --- a/src/repositories/GameRepository.ts +++ /dev/null @@ -1,49 +0,0 @@ -import axios from "axios"; -import type {GameList} from "../models/RecentlyPlayedGames"; -import {GameLeaderboards} from "../models/GameLeaderboards.ts"; -import {LeaderboardEntries} from "../models/LeaderboardEntries.ts"; - -import { useUserStore } from '../stores/user'; - -class GameRepository { - private url = import.meta.env.VITE_API_URL; - private user = useUserStore(); - - public async fetchLastPlayedGames(): Promise { - try { - const response = await axios.get(`${this.url}/API/API_GetUserRecentlyPlayedGames.php`, { - params: {y: this.user.key, u: this.user.username, c: 10} - }); - return response.data as GameList; - } catch (error) { - console.error('Error fetching request:', error); - throw error; - } - } - - public async fetchLeaderboards(gameId: string) { - try { - const response = await axios.get(`${this.url}/API/API_GetGameLeaderboards.php`, { - params: {y: this.user.key, i: gameId} - }); - return response.data as GameLeaderboards; - } catch (error) { - console.error('Error fetching request:', error); - throw error; - } - } - - public async fetchLeaderboardEntries(leaderboardId: string) { - try { - const response = await axios.get(`${this.url}/API/API_GetLeaderboardEntries.php`, { - params: {y: this.user.key, i: leaderboardId, c: 500} - }); - return response.data as LeaderboardEntries; - } catch (error) { - console.error('Error fetching request:', error); - throw error; - } - } -} - -export default GameRepository; \ No newline at end of file diff --git a/src/repositories/UserRepository.ts b/src/repositories/UserRepository.ts deleted file mode 100644 index 9515444..0000000 --- a/src/repositories/UserRepository.ts +++ /dev/null @@ -1,22 +0,0 @@ -import axios from "axios"; -import {Friends} from "../models/Friends"; -import { useUserStore } from '../stores/user'; - -class UserRepository { - private url = import.meta.env.VITE_API_URL; - private user = useUserStore(); - - public async fetchFriends() { - try { - const response = await axios.get(`${this.url}/API/API_GetUsersIFollow.php`, { - params: {y: this.user.key} - }); - return response.data as Friends; - } catch (error) { - console.error('Error fetching request:', error); - throw error; - } - } -} - -export default UserRepository; \ No newline at end of file diff --git a/src/router/index.ts b/src/router/index.ts deleted file mode 100644 index c85fda7..0000000 --- a/src/router/index.ts +++ /dev/null @@ -1,46 +0,0 @@ -import {createRouter, createWebHashHistory, RouteRecordRaw} from 'vue-router'; -import GameLeaderboards from '../components/GameLeaderboards.vue'; -import Leaderboard from "../components/LeaderboardEntries.vue"; -import Login from "../components/Login.vue"; -import Home from "../components/Home.vue"; -import LeaderboardsUpdates from "../components/LeaderboardsUpdates.vue"; -import SingUp from "../components/SingUp.vue"; -import Logout from "../components/Logout.vue"; -import RaCredentials from "../components/RACredentials.vue"; -import AuthCallback from "../components/AuthCallback.vue"; - -const routes: Array = [ - { path: '/', redirect: '/home' }, - { path: '/login', name: 'Login', component: Login }, - { path: '/sign-up', name: 'SignUp', component: SingUp }, - { path: '/logout', name: 'Logout', component: Logout }, - { path: '/auth-callback', name: 'AuthCallback', component: AuthCallback }, - { path: '/home', name: 'Home', component: Home }, - { path: '/ra-credentials', name: 'RACredentials', component: RaCredentials }, - { path: '/leaderboards-updates', name: 'LeaderboardsUpdates', component: LeaderboardsUpdates }, - { - path: '/game/:id/leaderboards', - name: 'GameLeaderboards', - component: GameLeaderboards, - props: true, - }, - { - path: '/leaderboard/:id', - name: 'Leaderboard', - component: Leaderboard, - props: true, - }, - // Redirect all other paths to the home page - { path: '/:pathMatch(.*)*', - redirect: to => { - return { path: '/', query: { q: to.params.pathMatch[0] } } - }, - }, -]; - -const router = createRouter({ - history: createWebHashHistory(), - routes, -}); - -export default router; \ No newline at end of file diff --git a/src/shims-vue.d.ts b/src/shims-vue.d.ts deleted file mode 100644 index e98bce1..0000000 --- a/src/shims-vue.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare module '*.vue' { - import { DefineComponent } from 'vue'; - const component: DefineComponent<{}, {}, any>; - export default component; -} \ No newline at end of file diff --git a/src/stores/friends.ts b/src/stores/friends.ts deleted file mode 100644 index 06873ac..0000000 --- a/src/stores/friends.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {defineStore} from 'pinia'; -import {Friends} from "../models/Friends.ts"; -import UserRepository from "../repositories/UserRepository.ts"; - -interface FriendsState { - friends: Friends | null; -} - -export const useFriendsState = defineStore('friends', { - state: (): FriendsState => ({ - friends: null, - }), - actions: { - async load() { - if (this.friends !== null) { - return this.friends; - } - - const userRepository = new UserRepository(); - this.friends = await userRepository.fetchFriends(); - }, - }, -}); diff --git a/src/stores/games.ts b/src/stores/games.ts deleted file mode 100644 index 8451428..0000000 --- a/src/stores/games.ts +++ /dev/null @@ -1,65 +0,0 @@ -import {defineStore} from 'pinia'; -import type {GameList} from "../models/RecentlyPlayedGames.ts"; -import {GameLeaderboards} from "../models/GameLeaderboards.ts"; -import {LeaderboardEntries} from "../models/LeaderboardEntries.ts"; - -interface GamesState { - lastPlayedGames: GameList | null; - gamesLeaderboards: Map | null; - leaderboardEntries: Map | null; -} - -export const useGamesStore = defineStore('games', { - state: (): GamesState => ({ - lastPlayedGames: null, - gamesLeaderboards: null, - leaderboardEntries: null, - }), - actions: { - setLastPlayedGames(list: GameList | null) { - this.lastPlayedGames = list; - }, - setGameLeaderboards(gameId: number, list: GameLeaderboards) { - if (this.gamesLeaderboards === null) { - this.gamesLeaderboards = new Map(); - } - - this.gamesLeaderboards.set(gameId, list); - }, - hasGameLeaderboard(gameId: number): boolean { - if (this.gamesLeaderboards === null) { - this.gamesLeaderboards = new Map(); - } - - return this.gamesLeaderboards.has(gameId); - }, - getGameLeaderboards(gameId: number) { - if (this.gamesLeaderboards === null) { - this.gamesLeaderboards = new Map(); - } - - return this.gamesLeaderboards.get(gameId) as GameLeaderboards | null; - }, - setLeaderboardEntries(leaderboardId: number, list: LeaderboardEntries) { - if (this.leaderboardEntries === null) { - this.leaderboardEntries = new Map(); - } - - this.leaderboardEntries.set(leaderboardId, list); - }, - hasLeaderboardEntries(leaderboardId: number): boolean { - if (this.leaderboardEntries === null) { - this.leaderboardEntries = new Map(); - } - - return this.leaderboardEntries.has(leaderboardId); - }, - getLeaderboardEntries(leaderboardId: number) { - if (this.leaderboardEntries === null) { - this.leaderboardEntries = new Map(); - } - - return this.leaderboardEntries.get(leaderboardId) as LeaderboardEntries | null; - }, - }, -}); diff --git a/src/stores/postStore.ts b/src/stores/postStore.ts deleted file mode 100644 index a4f99e0..0000000 --- a/src/stores/postStore.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { defineStore } from 'pinia'; -import { Router } from 'vue-router'; -import {Game} from "../models/RecentlyPlayedGames.ts"; -import {Leaderboard} from "../models/GameLeaderboards.ts"; - -interface PostState { - selectedGameLeaderboards: Game | null; - selectedLeaderboard: Leaderboard | null; -} - -export const usePostStore = defineStore('post', { - state: (): PostState => ({ - selectedGameLeaderboards: null, - selectedLeaderboard: null, - }), - actions: { - selectGameLeaderboards(game: Game, navigate = true): void { - this.selectedGameLeaderboards = game; - localStorage.setItem('selectedGameLeaderboards', JSON.stringify(game)); - if (navigate) { - this.router.push({ name: 'GameLeaderboards', params: { id: game.GameID } }); - } - }, - getSelectedGameLeaderboards() { - if (this.selectedGameLeaderboards === null) { - this.selectedGameLeaderboards = JSON.parse(localStorage.getItem('selectedGameLeaderboards')); - } - return this.selectedGameLeaderboards; - }, - selectLeaderboard(leaderboard: Leaderboard): void { - this.selectedLeaderboard = leaderboard; - localStorage.setItem("selectedLeaderboard", JSON.stringify(leaderboard)); - this.router.push({ name: 'Leaderboard', params: { id: leaderboard.ID } }); - }, - getSelectedLeaderboard() { - if (this.selectedLeaderboard === null) { - this.selectedLeaderboard = JSON.parse(localStorage.getItem('selectedLeaderboard')); - } - return this.selectedLeaderboard; - } - }, -}); - -declare module 'pinia' { - export interface PiniaCustomProperties { - router: Router; - } -} diff --git a/src/stores/user.ts b/src/stores/user.ts deleted file mode 100644 index 511aff1..0000000 --- a/src/stores/user.ts +++ /dev/null @@ -1,60 +0,0 @@ -import {defineStore} from 'pinia'; -import {decryptData, encryptData} from "../utils/crypto.ts"; - -interface UserState { - user_id: string | null; - token: string | null; - username: string | null; - key: string | null; -} - -export const useUserStore = defineStore('user', { - state: (): UserState => ({ - user_id: null, - token: null, - username: null, - key: null, - }), - actions: { - init(): boolean { - if (localStorage.getItem('user_id') !== null) { - this.user_id = localStorage.getItem('user_id'); - } - if (localStorage.getItem('token') !== null) { - this.token = localStorage.getItem('token'); - } - if (localStorage.getItem('username') !== null) { - const encryptedSecret = localStorage.getItem('username'); - if (encryptedSecret) { - this.username = decryptData(encryptedSecret); - } - } - if (localStorage.getItem('key') !== null) { - const encryptedSecret = localStorage.getItem('key'); - if (encryptedSecret) { - this.key = decryptData(encryptedSecret); - } - } - }, - isSet(): boolean { - this.init(); - return this.username !== null && this.key !== null; - }, - set(username: string, key: string): void { - this.username = username; - this.key = key; - localStorage.setItem('username', encryptData(username)); - localStorage.setItem('key', encryptData(key)); - }, - isLoggedIn(): boolean { - this.init(); - return this.user_id !== null && this.token !== null; - }, - login(user_id: string, access_token: string): void { - this.user_id = user_id; - this.token = access_token; - localStorage.setItem('user_id', user_id) - localStorage.setItem('token', access_token) - }, - }, -}); diff --git a/src/utils/crypto.ts b/src/utils/crypto.ts deleted file mode 100644 index e15367d..0000000 --- a/src/utils/crypto.ts +++ /dev/null @@ -1,10 +0,0 @@ -import CryptoJS from 'crypto-js'; - -export function encryptData(data: string): string { - return CryptoJS.AES.encrypt(data, import.meta.env.VITE_ENCRYPTION_KEY as string).toString(); -} - -export function decryptData(ciphertext: string): string { - const bytes = CryptoJS.AES.decrypt(ciphertext, import.meta.env.VITE_ENCRYPTION_KEY as string); - return bytes.toString(CryptoJS.enc.Utf8); -} diff --git a/src/utils/supabaseClient.ts b/src/utils/supabaseClient.ts deleted file mode 100644 index cff4ca0..0000000 --- a/src/utils/supabaseClient.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { createClient } from '@supabase/supabase-js' - -export const supabase = createClient( - import.meta.env.VITE_SUPABASE_URL, - import.meta.env.VITE_SUPABASE_KEY -) \ No newline at end of file diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts deleted file mode 100644 index 11f02fe..0000000 --- a/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/tsconfig.app.json b/tsconfig.app.json deleted file mode 100644 index 0a1fffd..0000000 --- a/tsconfig.app.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "compilerOptions": { - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", - "target": "ES2020", - "useDefineForClassFields": true, - "module": "ESNext", - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "isolatedModules": true, - "moduleDetection": "force", - "noEmit": true, - "jsx": "preserve", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true, - "noUncheckedSideEffectImports": true - }, - "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"] -} diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 1ffef60..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "files": [], - "references": [ - { "path": "./tsconfig.app.json" }, - { "path": "./tsconfig.node.json" } - ] -} diff --git a/tsconfig.node.json b/tsconfig.node.json deleted file mode 100644 index db0becc..0000000 --- a/tsconfig.node.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "compilerOptions": { - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", - "target": "ES2022", - "lib": ["ES2023"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "isolatedModules": true, - "moduleDetection": "force", - "noEmit": true, - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true, - "noUncheckedSideEffectImports": true - }, - "include": ["vite.config.ts"] -} diff --git a/public/v0.0.4.gif b/v0.0.4.gif similarity index 100% rename from public/v0.0.4.gif rename to v0.0.4.gif diff --git a/vite.config.mjs b/vite.config.mjs deleted file mode 100644 index 82ce81b..0000000 --- a/vite.config.mjs +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from 'vite' -import vue from '@vitejs/plugin-vue' - -export default defineConfig({ - base: '/', - plugins: [vue()], -}) diff --git a/public/vite.svg b/vite.svg similarity index 100% rename from public/vite.svg rename to vite.svg