diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index f0726ae..0000000 --- a/.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -# EditorConfig is awesome: https://editorconfig.org/ - -# top-most EditorConfig file -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -max_line_length = 100 diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 1109f8f..0000000 --- a/.eslintignore +++ /dev/null @@ -1,8 +0,0 @@ -node_modules -dist -.husky - -# JS files at the root of the project -*.js -*.cjs -*.mjs diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 3249c5b..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "root": true, - "parser": "@typescript-eslint/parser", - "plugins": ["@typescript-eslint", "prettier", "@typescript-eslint/eslint-plugin"], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "airbnb", - "airbnb/hooks", - "airbnb-typescript", - "prettier" - ], - "settings": { - "import/resolver": { - "typescript": {} - } - }, - "parserOptions": { - "project": ["./tsconfig.json"], - "sourceType": "module", - "ecmaVersion": "latest" - }, - "rules": { - "react/react-in-jsx-scope": 0, - "react/jsx-props-no-spreading": 0, - "no-param-reassign": 0, - "no-console": 2, - "import/no-extraneous-dependencies": 0, - "class-methods-use-this": 0, - "react/require-default-props": 0, - "import/prefer-default-export": 0, - "react/jsx-no-useless-fragment": 1, - "semi": 0, - "jsx-a11y/no-static-element-interactions": 0, - "jsx-a11y/click-events-have-key-events": 0, - "jsx-a11y/anchor-is-valid": 0, - "prettier/prettier": 2, - "react/jsx-no-constructed-context-values": 0, - "react/destructuring-assignment": 0, - "react-hooks/exhaustive-deps": 1, - "@typescript-eslint/naming-convention": 0, - "@typescript-eslint/no-unused-expressions": 0, - "react/function-component-definition": [ - 2, - { - "namedComponents": "arrow-function", - "unnamedComponents": "arrow-function" - } - ], - "@typescript-eslint/no-unused-vars": [ - "warn", - { - "argsIgnorePattern": "^_", - "varsIgnorePattern": "^_", - "caughtErrorsIgnorePattern": "^_" - } - ] - } -} diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index 280d490..0000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Deploy - -on: - push: - branches: - - master - -jobs: - build: - name: Build - runs-on: ubuntu-latest - - steps: - - name: Checkout repo - uses: actions/checkout@v3 - - - name: Setup Node - uses: actions/setup-node@v3 - - - name: Install dependencies - uses: bahmutov/npm-install@v1 - - - name: Build project - run: npm run build - - - name: Upload production-ready build files - uses: actions/upload-artifact@v3 - with: - name: production-files - path: ./dist/client - - deploy: - name: Deploy - needs: build - runs-on: ubuntu-latest - if: github.ref == 'refs/heads/master' - - steps: - - name: Download artifact - uses: actions/download-artifact@v3 - with: - name: production-files - path: ./dist - - - name: Deploy to GitHub Pages - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./dist diff --git a/.gitignore b/.gitignore deleted file mode 100644 index c43823f..0000000 --- a/.gitignore +++ /dev/null @@ -1,34 +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 -.vscode - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? - -.env -.env.local - -node_modules/ -stats.html -stats.json - - diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100755 index 14ccce4..0000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -npm run pre-commit \ No newline at end of file diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 310ae89..0000000 --- a/.prettierignore +++ /dev/null @@ -1,107 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env -.env.test - -# parcel-bundler cache (https://parceljs.org/) -.cache - -# Next.js build output -.next - -# Nuxt.js build / generate output -.nuxt -dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and *not* Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port - -# IDEs -.idea/ diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 4605de7..0000000 --- a/.prettierrc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "bracketSameLine": false, - "singleQuote": true, - "arrowParens": "avoid", - "semi": false, - "trailingComma": "all", - "printWidth": 100, - "plugins": ["@ianvs/prettier-plugin-sort-imports"], - "importOrder": ["", "", "", "^#(.*)$", "", "^[.]"], - "importOrderParserPlugins": ["typescript", "jsx", "decorators-legacy"], - "importOrderTypeScriptVersion": "5.0.0" -} diff --git a/404.html b/404.html new file mode 100644 index 0000000..c043b06 --- /dev/null +++ b/404.html @@ -0,0 +1,18 @@ + + + + + + An error occurred + + + + +
🚂🚃
STATETRAIN
Unlock and maintain tone.js context for all following pages / components
+ + + + + + + \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 932f588..0000000 --- a/README.md +++ /dev/null @@ -1,338 +0,0 @@ -# statetrain 🚂🚃 -## Gain control of Tone.js' transport with a routable React application. -### Written in [TypeScript](https://www.typescriptlang.org/), bundled with [Vite](https://vitejs.dev/). - -For another project, I needed a routable TypeScript-React application with access to a shared [Tone.js](https://tonejs.github.io/) context. To test the code, I built a small metronome, which required a communication layer to and from the imperatively designed Tone.js library. - -#### Features of this toolkit -- Register Tone.js on a user interaction and put it and its transport into a React context. -- Extensible custom hook to retrieve and control Tone-specific actions. -- Web audio portal. -- Schedule a synth metronome on the Tone.js transport and visualize it with a React component. -- Start/stop the global transport via context access. -- Set BPM (on the fly). -- Set time signature (this will stop the transport and recalculate the new tick times). -- Clean, extensible TypeScript code. -- Modern linting & pre-commit checks. - -### Table of Contents - -1. [Startup](#startup) -2. [A few words on the implementation](#tone) - 1. [React](#tone-react) - 2. [Vike](#tone-vike) -3. [Tone Portal](#tone-portal) -4. [The `useTone()` hook](#use-tone) - 1. [React context: `useInternalToneContext()`](#use-tone-internal-context) - 2. [Zustand: `useInternalTransportStore()`](#use-tone-internal-store) - 3. [Returned states and events](#use-tone-returns) -5. [Routing & Rendering: Vike / React](#vike) - 1. [Base URL](#vike-base) - 2. [Prerendering mode](#vike-ssg) - 3. [Page Context](#vike-page-context) -6. [Styling with Uno/Tailwind and TW Styled Components](#uno-tailwind) -7. [Icons: lucide-react](#lucide) -8. [Aliases](#aliases) -9. [Troubleshooting](#troubleshooting) -10. ["Roadmap"](#roadmap) - -## Startup Process - -1. Clone this repo. - -2. Install dependencies: - ```bash - npm install or yarn - ``` - -3. Run the development preview: - ```bash - npm run dev or yarn dev - ``` - -4. Run the production preview: - ```bash - npm run prod or yarn prod - ``` - -5. Build the production package: - ```bash - npm run build or yarn build - ``` - -*TODO: add check/linter scripts* -## A few words on the implementation - -[tone.js](https://tonejs.github.io/) is a JavaScript library that makes it easier to work with the low-level [Web Audio API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API). It provides its own [transport](https://github.com/Tonejs/Tone.js?tab=readme-ov-file#transport), where you can register and accurately schedule events with musical notations like `1m, 8n, etc`. Additionally, tone.js enables complex routing scenarios and audio bus systems to work with various audio sources. - -### ⚛️ The spicy part: React - -Getting an imperative tool like tone.js to work with a modern declarative UI-library can be tricky, especially when it requires [explicit user actions](https://stackoverflow.com/questions/57289003/tone-js-the-audiocontext-was-not-allowed-to-start) to initialize browser API functions, load libraries, and maintain states. See [Tone Portal](#tone-portal) and [useTone()](#use-tone) for how this was achieved. - -### 🔥 The hot part: Vike - -I wanted to use page routing to extend the examples. While I could have used simpler libraries like react-router, I decided to go a step further and implement a fully capable SSR/SSG framework. In my opinion, the one and only is Vike ❤️ - -See more information on the local implementation of Vike [here](#vike). - -## The `` interceptor portal - -It needed some kind of "moderator" for AudioContext, and thus the `TonePortal` was born. It blocks on first page visit the page output, forcing user to click a button, which is linking to load, init tone and put it into the context. - -See also [React context: `useInternalToneContext()`](#use-tone-internal-context) - -## useTone() - a hook to control tone and global states - -The `useTone()` hook is basically our middleware, covering various scenarios and designed to be extended and modified. - -It's a good place to keep your actions separated from the rest of the React code. Simply use the hook to retrieve data and handlers to work with. - -```tsx -const SomeComponent = () => { - const { isPlaying, handlePlay, handleStop } = useTone() - - return ( -
- -

Something is {isPlaying ? 'playing' : 'stopped'}

-
- ) -} -``` - -Under the hood it does: - -```tsx -const useTone = () => { - const { transport, ... } = useInternalToneContext() - const { setIsPlaying, ... } = useInternalTransportStore() - - const handlePlay = useCallback(() => { - transport?.start() // transport changed - setIsPlaying(true) // store changed (mostly UI updates) - }, [setIsPlaying, transport]) - - const handleStop = useCallback(() => { - transport?.stop() // transport changed - setIsPlaying(false) // store changed (mostly UI updates) - }, [setIsPlaying, transport]) - - return { - handlePlay, - handleStop, - ... - } -} -``` -#### Okay, what is `useInternalToneContext()` doing? - -It sets and retrieves the unserialized tone.js instance from a React context, which spans over the whole application and ensures tone.js is accessible before React components get access to it. - -*Do not use `useInternalToneContext()` in your page templates - always use `useTone()`* - -#### Aha, and `useInternalTransportStore()`? - -We use a [React context](https://react.dev/learn/passing-data-deeply-with-context) for utilizing one instance of tone.js and accessing its methods. It feels right that we want to maintain global serialized data provided within the context. Under the hood, [zustand](https://github.com/pmndrs/zustand) manages this for us. - -*Do not use `useInternalTransportStore()` in your page templates - always use `useTone()`* - -### `useTone()` returns the following states and actions - -#### Callbacks -- `handlePlay` - starts the transport -- `handleStop` - stops the transport and resets progress -- `handleChangeBpm` - changes the playback BPM of the transport -- `handleChangeTimeSignature` - changes the time signature of the transport (this will stop the transport by design) - -#### States -- `tone` - tone instance -- `transport` - transport of `tone` -- `bpm` - BPM of the transport -- `timeSignature` - time signature of the transport -- `loopLength` - count of measures before restart -- `isPlaying` - play state of the transport - -#### Setters -- `setMetronome` - clear and reset context metronome -- `setTone` - set context tone instance (should be only set up once) -- `setTransport` - set context transport instance (should be only set up once) - -## Routing & Rendering: vike / vike-react - -With [vike](https://vike.dev/), which is built on top of the Vite bundler, we can activate modern JavaScript features like SSG, SPA, SSR, and/or client-side page routing within the same framework. Similar to [next.js](https://nextjs.org/), but more flexible and not bound to React. Thanks to its design, you can easily adapt it to your workflow. - -This application uses the [vike-react](https://vike.dev/vike-react) plugin on top of vike. - -### Base URL - -For absolute references bypassing vike's page routing system, I created the `APP_CONFIG.viteUrl` to guarantee access to the full URL from the page root and any given `base`. - -In `vite.config.js`, you can set the `base`, which appends this to the URL. In our case, it's `'/statetrain/'`. - -If you only need to output the base URL, you can use the Vite environment variable `${import.meta.env.BASE_URL}`. - -### Prerendering mode is active (SSG) - -To publish to GitHub Pages, the page is built on the server and delivered [prerendered](https://vike.dev/pre-rendering) to the client. To change that on your local machine, you can go to `vite.config.ts` and activate rendering on the server (SSR). - -```ts -// ./vite.config.ts -plugins: [ - ...SomePlugin, - react(), - vike({ - prerender: true, // set to false / remove to enable ssr - }), - ], -``` - -See the full ``vite.config.ts`` here (TODO: link to repo) - -SSR users: [See this implementation guide](https://vike.dev/add) - -#### Vike Page context - Current route - -If you need the currently routed url, you can use the usePageContext provided by [vike-react](https://vike.dev/vike-react): - -```ts -const pageContext = usePageContext() -const { urlPathname } = pageContext -``` - -## Icons: Lucide React - -This application uses the [lucide-react](https://lucide.dev/guide/packages/lucide-react) bundle from the [Lucide Icon Pack](https://lucide.dev/) - -See [all icons](https://lucide.dev/icons/) - -## Styling with Uno/Tailwind and TW Styled Components - -This application uses [uno.css](https://unocss.dev/) for more scalability and custom presets. The [tailwind-preset](https://unocss.dev/presets/wind) is active by default, which means you can rely on the classic Tailwind CSS syntax. - -To reduce "className-cluttering," we use [tailwind-styled-components](https://github.com/MathiasGilson/tailwind-styled-component). - -For example, a simple button: - -```ts -const SimpleButton = tw.button` - p-2 - bg-darkLight - border-darkLightBorder - border-1 - rounded -` -``` - -the properties from the used element are provided. for example getting auto-suggestion and passing ``tw.button``'s type attribute -```tsx -Some Text -``` - -conditional styles in action. - -```tsx -interface LayoutTwProps { - $fullWidth?: boolean // use $ to not pass it to the actual DOM element -} - -export default tw.div` - m-auto - ${p => (p.$fullWidth ? 'w-full' : 'container max-w-screen-lg')} - px-4 - px-lg-0 -` -``` - -See the full uno.config.ts (TODO: link to repo) - -## Aliases - -You will see this absolute import references all over the place. These should be automatically detected when auto-importing via your IDE: - -```ts -import Something from '#components/Something' -``` - -### Revisit & Change Aliases - -We must set and keep it in sync for vite (``vite.config.ts``) and your IDE (``tsconfig.json``) - -``vite.config.ts``: -```ts -...viteConfig, -resolve: { - alias: { - '#pages': path.resolve(__dirname, './pages/'), - '#components': path.resolve(__dirname, './components/'), - '#lib': path.resolve(__dirname, './lib/'), - ... - }, -}, - ``` - -``tsconfig.json``: -```json -...tsConfig, -"paths": { - "#pages/*": ["pages/*"], - "#components/*": ["./components/*"], - "#lib/*": ["./lib/*"], -} -``` - -## Troubleshooting - -### Events must be cleared! - -I encountered issues with improperly unregistering events in React. We **must** clear the event from the transport to avoid overlapping sounds or timing mishaps. - -### Register a React ref for every event you schedule - -As the [docs suggest](https://github.com/Tonejs/Tone.js/wiki/Using-Tone.js-with-React-React-Typescript-or-Vue), one basic way to properly access registered events with React is to store them as refs, which essentially "unbinds" them from React state updates. - -```ts -const tickEventId = useRef() -``` - -All registered tone.js events return a `number`, which is the ID of the event in the internal transport. - - -This example clears and sets a state change on every quarter note of the transport - -```tsx -const tickEventId = useRef() - -const registerTickEvent = useCallback(() => { - // important: do the explicit !== undefined check, because eventID can be 0 ;) - if (tickEventId.current !== undefined) { - tone?.getDraw().cancel() // this clears all "draw" events - transport?.clear(tickEventId.current) // here the actual schedule is cleared - } - - // see time - this is important to use for precision - const tick = transport?.scheduleRepeat(time => { - // getDraw() commonly used to draw state updates synced with nearest animation frame - tone?.getDraw()?.schedule(() => { - handleTick() - }, time) - }, '4n') - tickEventId.current = tick // set new returned id - setCurrentPosition(transportLength) // reset -}, [...deps]) -``` - -**By design, tone.js does not recalculate timings internally if something changes in the transport's time.** For example, if you change the time signature (thus altering loop timing), you need to manually apply the `transport.loopEnd` afterwards, if it differs from tone's defaults, to properly recalculate the tick times. - -Additionally, we must clear all events on the transport and re-register them if timing changes. At least for now! I am currently working on an event bus where all events will be automatically re-registered after timing or other changes. - -## Roadmap / Todos: - -- more documentation (linting, pre-commit, types) -- Template the existing pages and add more tone.js controls and visuals -- Create an effect bus and display it on one of these pages -- Create event bus, where events are automatically re-scheduled after transport time has changed -- Add UI to clear metronome events - - diff --git a/assets/chunks/chunk-ByD2j-fW.js b/assets/chunks/chunk-ByD2j-fW.js new file mode 100644 index 0000000..a80ef49 --- /dev/null +++ b/assets/chunks/chunk-ByD2j-fW.js @@ -0,0 +1,214 @@ +const dr="15.0.4",Pi=(n,t,e)=>({endTime:t,insertTime:e,type:"exponentialRampToValue",value:n}),Li=(n,t,e)=>({endTime:t,insertTime:e,type:"linearRampToValue",value:n}),Bn=(n,t)=>({startTime:t,type:"setValue",value:n}),pr=(n,t,e)=>({duration:e,startTime:t,type:"setValueCurve",values:n}),fr=(n,t,{startTime:e,target:s,timeConstant:i})=>s+(t-s)*Math.exp((e-n)/i),Ye=n=>n.type==="exponentialRampToValue",$s=n=>n.type==="linearRampToValue",we=n=>Ye(n)||$s(n),si=n=>n.type==="setValue",pe=n=>n.type==="setValueCurve",Xs=(n,t,e,s)=>{const i=n[t];return i===void 0?s:we(i)||si(i)?i.value:pe(i)?i.values[i.values.length-1]:fr(e,Xs(n,t-1,i.startTime,s),i)},Wi=(n,t,e,s,i)=>e===void 0?[s.insertTime,i]:we(e)?[e.endTime,e.value]:si(e)?[e.startTime,e.value]:pe(e)?[e.startTime+e.duration,e.values[e.values.length-1]]:[e.startTime,Xs(n,t-1,e.startTime,i)],zn=n=>n.type==="cancelAndHold",Un=n=>n.type==="cancelScheduledValues",ve=n=>zn(n)||Un(n)?n.cancelTime:Ye(n)||$s(n)?n.endTime:n.startTime,ji=(n,t,e,{endTime:s,value:i})=>e===i?i:0e+(n-t)/(s-t)*(i-e),pa=(n,t)=>{const e=Math.floor(t),s=Math.ceil(t);return e===s?n[e]:(1-(t-e))*n[e]+(1-(s-t))*n[s]},fa=(n,{duration:t,startTime:e,values:s})=>{const i=(n-e)/t*(s.length-1);return pa(s,i)},js=n=>n.type==="setTarget";class ma{constructor(t){this._automationEvents=[],this._currenTime=0,this._defaultValue=t}[Symbol.iterator](){return this._automationEvents[Symbol.iterator]()}add(t){const e=ve(t);if(zn(t)||Un(t)){const s=this._automationEvents.findIndex(r=>Un(t)&&pe(r)?r.startTime+r.duration>=e:ve(r)>=e),i=this._automationEvents[s];if(s!==-1&&(this._automationEvents=this._automationEvents.slice(0,s)),zn(t)){const r=this._automationEvents[this._automationEvents.length-1];if(i!==void 0&&we(i)){if(r!==void 0&&js(r))throw new Error("The internal list is malformed.");const o=r===void 0?i.insertTime:pe(r)?r.startTime+r.duration:ve(r),a=r===void 0?this._defaultValue:pe(r)?r.values[r.values.length-1]:r.value,c=Ye(i)?ji(e,o,a,i):Bi(e,o,a,i),h=Ye(i)?Pi(c,e,this._currenTime):Li(c,e,this._currenTime);this._automationEvents.push(h)}if(r!==void 0&&js(r)&&this._automationEvents.push(Bn(this.getValue(e),e)),r!==void 0&&pe(r)&&r.startTime+r.duration>e){const o=e-r.startTime,a=(r.values.length-1)/r.duration,c=Math.max(2,1+Math.ceil(o*a)),h=o/(c-1)*a,l=r.values.slice(0,c);if(h<1)for(let u=1;uve(o)>e),i=s===-1?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[s-1];if(i!==void 0&&pe(i)&&ve(i)+i.duration>e)return!1;const r=Ye(t)?Pi(t.value,t.endTime,this._currenTime):$s(t)?Li(t.value,e,this._currenTime):t;if(s===-1)this._automationEvents.push(r);else{if(pe(t)&&e+t.duration>ve(this._automationEvents[s]))return!1;this._automationEvents.splice(s,0,r)}}return!0}flush(t){const e=this._automationEvents.findIndex(s=>ve(s)>t);if(e>1){const s=this._automationEvents.slice(e-1),i=s[0];js(i)&&s.unshift(Bn(Xs(this._automationEvents,e-2,i.startTime,this._defaultValue),i.startTime)),this._automationEvents=s}}getValue(t){if(this._automationEvents.length===0)return this._defaultValue;const e=this._automationEvents.findIndex(o=>ve(o)>t),s=this._automationEvents[e],i=(e===-1?this._automationEvents.length:e)-1,r=this._automationEvents[i];if(r!==void 0&&js(r)&&(s===void 0||!we(s)||s.insertTime>t))return fr(t,Xs(this._automationEvents,i-1,r.startTime,this._defaultValue),r);if(r!==void 0&&si(r)&&(s===void 0||!we(s)))return r.value;if(r!==void 0&&pe(r)&&(s===void 0||!we(s)||r.startTime+r.duration>t))return t({cancelTime:n,type:"cancelAndHold"}),ga=n=>({cancelTime:n,type:"cancelScheduledValues"}),ya=(n,t)=>({endTime:t,type:"exponentialRampToValue",value:n}),va=(n,t)=>({endTime:t,type:"linearRampToValue",value:n}),wa=(n,t,e)=>({startTime:t,target:n,timeConstant:e,type:"setTarget"}),xa=()=>new DOMException("","AbortError"),ba=n=>(t,e,[s,i,r],o)=>{n(t[i],[e,s,r],a=>a[0]===e&&a[1]===s,o)},Ta=n=>(t,e,s)=>{const i=[];for(let r=0;r(t,e)=>{n.set(t,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:e})},Ke=new WeakSet,mr=new WeakMap,ni=new WeakMap,_r=new WeakMap,ii=new WeakMap,un=new WeakMap,gr=new WeakMap,Gn=new WeakMap,Zn=new WeakMap,Qn=new WeakMap,yr={construct(){return yr}},ka=n=>{try{const t=new Proxy(n,yr);new t}catch{return!1}return!0},zi=/^import(?:(?:[\s]+[\w]+|(?:[\s]+[\w]+[\s]*,)?[\s]*\{[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?(?:[\s]*,[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?)*[\s]*}|(?:[\s]+[\w]+[\s]*,)?[\s]*\*[\s]+as[\s]+[\w]+)[\s]+from)?(?:[\s]*)("([^"\\]|\\.)+"|'([^'\\]|\\.)+')(?:[\s]*);?/,Ui=(n,t)=>{const e=[];let s=n.replace(/^[\s]+/,""),i=s.match(zi);for(;i!==null;){const r=i[1].slice(1,-1),o=i[0].replace(/([\s]+)?;?$/,"").replace(r,new URL(r,t).toString());e.push(o),s=s.slice(i[0].length).replace(/^[\s]+/,""),i=s.match(zi)}return[e.join(";"),s]},Gi=n=>{if(n!==void 0&&!Array.isArray(n))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},Zi=n=>{if(!ka(n))throw new TypeError("The given value for processorCtor should be a constructor.");if(n.prototype===null||typeof n.prototype!="object")throw new TypeError("The given value for processorCtor should have a prototype.")},Aa=(n,t,e,s,i,r,o,a,c,h,l,u,p)=>{let f=0;return(d,m,_={credentials:"omit"})=>{const y=l.get(d);if(y!==void 0&&y.has(m))return Promise.resolve();const T=h.get(d);if(T!==void 0){const g=T.get(m);if(g!==void 0)return g}const S=r(d),C=S.audioWorklet===void 0?i(m).then(([g,w])=>{const[x,v]=Ui(g,w),N=`${x};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${v} +})})(window,'_AWGS')`;return e(N)}).then(()=>{const g=p._AWGS.pop();if(g===void 0)throw new SyntaxError;s(S.currentTime,S.sampleRate,()=>g(class{},void 0,(w,x)=>{if(w.trim()==="")throw t();const v=Zn.get(S);if(v!==void 0){if(v.has(w))throw t();Zi(x),Gi(x.parameterDescriptors),v.set(w,x)}else Zi(x),Gi(x.parameterDescriptors),Zn.set(S,new Map([[w,x]]))},S.sampleRate,void 0,void 0))}):Promise.all([i(m),Promise.resolve(n(u,u))]).then(([[g,w],x])=>{const v=f+1;f=v;const[N,O]=Ui(g,w),M=`${N};((AudioWorkletProcessor,registerProcessor)=>{${O} +})(${x?"AudioWorkletProcessor":"class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}"},(n,p)=>registerProcessor(n,class extends p{${x?"":"__c = (a) => a.forEach(e=>this.__b.add(e.buffer));"}process(i,o,p){${x?"":"i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));"}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${v}',class extends AudioWorkletProcessor{process(){return !1}})`,j=new Blob([M],{type:"application/javascript; charset=utf-8"}),q=URL.createObjectURL(j);return S.audioWorklet.addModule(q,_).then(()=>{if(a(S))return S;const V=o(S);return V.audioWorklet.addModule(q,_).then(()=>V)}).then(V=>{if(c===null)throw new SyntaxError;try{new c(V,`__sac${v}`)}catch{throw new SyntaxError}}).finally(()=>URL.revokeObjectURL(q))});return T===void 0?h.set(d,new Map([[m,C]])):T.set(m,C),C.then(()=>{const g=l.get(d);g===void 0?l.set(d,new Set([m])):g.add(m)}).finally(()=>{const g=h.get(d);g!==void 0&&g.delete(m)}),C}},se=(n,t)=>{const e=n.get(t);if(e===void 0)throw new Error("A value with the given key could not be found.");return e},dn=(n,t)=>{const e=Array.from(n).filter(t);if(e.length>1)throw Error("More than one element was found.");if(e.length===0)throw Error("No element was found.");const[s]=e;return n.delete(s),s},vr=(n,t,e,s)=>{const i=se(n,t),r=dn(i,o=>o[0]===e&&o[1]===s);return i.size===0&&n.delete(t),r},xs=n=>se(gr,n),ts=n=>{if(Ke.has(n))throw new Error("The AudioNode is already stored.");Ke.add(n),xs(n).forEach(t=>t(!0))},wr=n=>"port"in n,bs=n=>{if(!Ke.has(n))throw new Error("The AudioNode is not stored.");Ke.delete(n),xs(n).forEach(t=>t(!1))},$n=(n,t)=>{!wr(n)&&t.every(e=>e.size===0)&&bs(n)},Ca=(n,t,e,s,i,r,o,a,c,h,l,u,p)=>{const f=new WeakMap;return(d,m,_,y,T)=>{const{activeInputs:S,passiveInputs:C}=r(m),{outputs:g}=r(d),w=a(d),x=v=>{const N=c(m),O=c(d);if(v){const D=vr(C,d,_,y);n(S,d,D,!1),!T&&!u(d)&&e(O,N,_,y),p(m)&&ts(m)}else{const D=s(S,d,_,y);t(C,y,D,!1),!T&&!u(d)&&i(O,N,_,y);const k=o(m);if(k===0)l(m)&&$n(m,S);else{const R=f.get(m);R!==void 0&&clearTimeout(R),f.set(m,setTimeout(()=>{l(m)&&$n(m,S)},k*1e3))}}};return h(g,[m,_,y],v=>v[0]===m&&v[1]===_&&v[2]===y,!0)?(w.add(x),l(d)?n(S,d,[_,y,x],!0):t(C,y,[d,_,x],!0),!0):!1}},Da=n=>(t,e,[s,i,r],o)=>{const a=t.get(s);a===void 0?t.set(s,new Set([[i,e,r]])):n(a,[i,e,r],c=>c[0]===i&&c[1]===e,o)},Oa=n=>(t,e)=>{const s=n(t,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});e.connect(s).connect(t.destination);const i=()=>{e.removeEventListener("ended",i),e.disconnect(s),s.disconnect()};e.addEventListener("ended",i)},Na=n=>(t,e)=>{n(t).add(e)},Ea={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},Ma=(n,t,e,s,i,r)=>class extends n{constructor(a,c){const h=i(a),l={...Ea,...c},u=s(h,l),p=r(h)?t():null;super(a,!1,u,p),this._nativeAnalyserNode=u}get fftSize(){return this._nativeAnalyserNode.fftSize}set fftSize(a){this._nativeAnalyserNode.fftSize=a}get frequencyBinCount(){return this._nativeAnalyserNode.frequencyBinCount}get maxDecibels(){return this._nativeAnalyserNode.maxDecibels}set maxDecibels(a){const c=this._nativeAnalyserNode.maxDecibels;if(this._nativeAnalyserNode.maxDecibels=a,!(a>this._nativeAnalyserNode.minDecibels))throw this._nativeAnalyserNode.maxDecibels=c,e()}get minDecibels(){return this._nativeAnalyserNode.minDecibels}set minDecibels(a){const c=this._nativeAnalyserNode.minDecibels;if(this._nativeAnalyserNode.minDecibels=a,!(this._nativeAnalyserNode.maxDecibels>a))throw this._nativeAnalyserNode.minDecibels=c,e()}get smoothingTimeConstant(){return this._nativeAnalyserNode.smoothingTimeConstant}set smoothingTimeConstant(a){this._nativeAnalyserNode.smoothingTimeConstant=a}getByteFrequencyData(a){this._nativeAnalyserNode.getByteFrequencyData(a)}getByteTimeDomainData(a){this._nativeAnalyserNode.getByteTimeDomainData(a)}getFloatFrequencyData(a){this._nativeAnalyserNode.getFloatFrequencyData(a)}getFloatTimeDomainData(a){this._nativeAnalyserNode.getFloatTimeDomainData(a)}},Ot=(n,t)=>n.context===t,Ra=(n,t,e)=>()=>{const s=new WeakMap,i=async(r,o)=>{let a=t(r);if(!Ot(a,o)){const h={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,fftSize:a.fftSize,maxDecibels:a.maxDecibels,minDecibels:a.minDecibels,smoothingTimeConstant:a.smoothingTimeConstant};a=n(o,h)}return s.set(o,a),await e(r,o,a),a};return{render(r,o){const a=s.get(o);return a!==void 0?Promise.resolve(a):i(r,o)}}},Ys=n=>{try{n.copyToChannel(new Float32Array(1),0,-1)}catch{return!1}return!0},ce=()=>new DOMException("","IndexSizeError"),ri=n=>{n.getChannelData=(t=>e=>{try{return t.call(n,e)}catch(s){throw s.code===12?ce():s}})(n.getChannelData)},Ia={numberOfChannels:1},Fa=(n,t,e,s,i,r,o,a)=>{let c=null;return class xr{constructor(l){if(i===null)throw new Error("Missing the native OfflineAudioContext constructor.");const{length:u,numberOfChannels:p,sampleRate:f}={...Ia,...l};c===null&&(c=new i(1,1,44100));const d=s!==null&&t(r,r)?new s({length:u,numberOfChannels:p,sampleRate:f}):c.createBuffer(p,u,f);if(d.numberOfChannels===0)throw e();return typeof d.copyFromChannel!="function"?(o(d),ri(d)):t(Ys,()=>Ys(d))||a(d),n.add(d),d}static[Symbol.hasInstance](l){return l!==null&&typeof l=="object"&&Object.getPrototypeOf(l)===xr.prototype||n.has(l)}}},Ft=-34028234663852886e22,Et=-Ft,me=n=>Ke.has(n),qa={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},Va=(n,t,e,s,i,r,o,a)=>class extends n{constructor(h,l){const u=r(h),p={...qa,...l},f=i(u,p),d=o(u),m=d?t():null;super(h,!1,f,m),this._audioBufferSourceNodeRenderer=m,this._isBufferNullified=!1,this._isBufferSet=p.buffer!==null,this._nativeAudioBufferSourceNode=f,this._onended=null,this._playbackRate=e(this,d,f.playbackRate,Et,Ft)}get buffer(){return this._isBufferNullified?null:this._nativeAudioBufferSourceNode.buffer}set buffer(h){if(this._nativeAudioBufferSourceNode.buffer=h,h!==null){if(this._isBufferSet)throw s();this._isBufferSet=!0}}get loop(){return this._nativeAudioBufferSourceNode.loop}set loop(h){this._nativeAudioBufferSourceNode.loop=h}get loopEnd(){return this._nativeAudioBufferSourceNode.loopEnd}set loopEnd(h){this._nativeAudioBufferSourceNode.loopEnd=h}get loopStart(){return this._nativeAudioBufferSourceNode.loopStart}set loopStart(h){this._nativeAudioBufferSourceNode.loopStart=h}get onended(){return this._onended}set onended(h){const l=typeof h=="function"?a(this,h):null;this._nativeAudioBufferSourceNode.onended=l;const u=this._nativeAudioBufferSourceNode.onended;this._onended=u!==null&&u===l?h:u}get playbackRate(){return this._playbackRate}start(h=0,l=0,u){if(this._nativeAudioBufferSourceNode.start(h,l,u),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.start=u===void 0?[h,l]:[h,l,u]),this.context.state!=="closed"){ts(this);const p=()=>{this._nativeAudioBufferSourceNode.removeEventListener("ended",p),me(this)&&bs(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",p)}}stop(h=0){this._nativeAudioBufferSourceNode.stop(h),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.stop=h)}},Pa=(n,t,e,s,i)=>()=>{const r=new WeakMap;let o=null,a=null;const c=async(h,l)=>{let u=e(h);const p=Ot(u,l);if(!p){const f={buffer:u.buffer,channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,loop:u.loop,loopEnd:u.loopEnd,loopStart:u.loopStart,playbackRate:u.playbackRate.value};u=t(l,f),o!==null&&u.start(...o),a!==null&&u.stop(a)}return r.set(l,u),p?await n(l,h.playbackRate,u.playbackRate):await s(l,h.playbackRate,u.playbackRate),await i(h,l,u),u};return{set start(h){o=h},set stop(h){a=h},render(h,l){const u=r.get(l);return u!==void 0?Promise.resolve(u):c(h,l)}}},La=n=>"playbackRate"in n,Wa=n=>"frequency"in n&&"gain"in n,ja=n=>"offset"in n,Ba=n=>!("frequency"in n)&&"gain"in n,za=n=>"detune"in n&&"frequency"in n,Ua=n=>"pan"in n,Rt=n=>se(mr,n),Ts=n=>se(_r,n),Xn=(n,t)=>{const{activeInputs:e}=Rt(n);e.forEach(i=>i.forEach(([r])=>{t.includes(n)||Xn(r,[...t,n])}));const s=La(n)?[n.playbackRate]:wr(n)?Array.from(n.parameters.values()):Wa(n)?[n.Q,n.detune,n.frequency,n.gain]:ja(n)?[n.offset]:Ba(n)?[n.gain]:za(n)?[n.detune,n.frequency]:Ua(n)?[n.pan]:[];for(const i of s){const r=Ts(i);r!==void 0&&r.activeInputs.forEach(([o])=>Xn(o,t))}me(n)&&bs(n)},br=n=>{Xn(n.destination,[])},Ga=n=>n===void 0||typeof n=="number"||typeof n=="string"&&(n==="balanced"||n==="interactive"||n==="playback"),Za=(n,t,e,s,i,r,o,a,c)=>class extends n{constructor(l={}){if(c===null)throw new Error("Missing the native AudioContext constructor.");let u;try{u=new c(l)}catch(d){throw d.code===12&&d.message==="sampleRate is not in range"?e():d}if(u===null)throw s();if(!Ga(l.latencyHint))throw new TypeError(`The provided value '${l.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(l.sampleRate!==void 0&&u.sampleRate!==l.sampleRate)throw e();super(u,2);const{latencyHint:p}=l,{sampleRate:f}=u;if(this._baseLatency=typeof u.baseLatency=="number"?u.baseLatency:p==="balanced"?512/f:p==="interactive"||p===void 0?256/f:p==="playback"?1024/f:Math.max(2,Math.min(128,Math.round(p*f/128)))*128/f,this._nativeAudioContext=u,c.name==="webkitAudioContext"?(this._nativeGainNode=u.createGain(),this._nativeOscillatorNode=u.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(u.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,u.state==="running"){this._state="suspended";const d=()=>{this._state==="suspended"&&(this._state=null),u.removeEventListener("statechange",d)};u.addEventListener("statechange",d)}}get baseLatency(){return this._baseLatency}get state(){return this._state!==null?this._state:this._nativeAudioContext.state}close(){return this.state==="closed"?this._nativeAudioContext.close().then(()=>{throw t()}):(this._state==="suspended"&&(this._state=null),this._nativeAudioContext.close().then(()=>{this._nativeGainNode!==null&&this._nativeOscillatorNode!==null&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),br(this)}))}createMediaElementSource(l){return new i(this,{mediaElement:l})}createMediaStreamDestination(){return new r(this)}createMediaStreamSource(l){return new o(this,{mediaStream:l})}createMediaStreamTrackSource(l){return new a(this,{mediaStreamTrack:l})}resume(){return this._state==="suspended"?new Promise((l,u)=>{const p=()=>{this._nativeAudioContext.removeEventListener("statechange",p),this._nativeAudioContext.state==="running"?l():this.resume().then(l,u)};this._nativeAudioContext.addEventListener("statechange",p)}):this._nativeAudioContext.resume().catch(l=>{throw l===void 0||l.code===15?t():l})}suspend(){return this._nativeAudioContext.suspend().catch(l=>{throw l===void 0?t():l})}},Qa=(n,t,e,s,i,r,o,a)=>class extends n{constructor(h,l){const u=r(h),p=o(u),f=i(u,l,p),d=p?t(a):null;super(h,!1,f,d),this._isNodeOfNativeOfflineAudioContext=p,this._nativeAudioDestinationNode=f}get channelCount(){return this._nativeAudioDestinationNode.channelCount}set channelCount(h){if(this._isNodeOfNativeOfflineAudioContext)throw s();if(h>this._nativeAudioDestinationNode.maxChannelCount)throw e();this._nativeAudioDestinationNode.channelCount=h}get channelCountMode(){return this._nativeAudioDestinationNode.channelCountMode}set channelCountMode(h){if(this._isNodeOfNativeOfflineAudioContext)throw s();this._nativeAudioDestinationNode.channelCountMode=h}get maxChannelCount(){return this._nativeAudioDestinationNode.maxChannelCount}},$a=n=>{const t=new WeakMap,e=async(s,i)=>{const r=i.destination;return t.set(i,r),await n(s,i,r),r};return{render(s,i){const r=t.get(i);return r!==void 0?Promise.resolve(r):e(s,i)}}},Xa=(n,t,e,s,i,r,o,a)=>(c,h)=>{const l=h.listener,u=()=>{const g=new Float32Array(1),w=t(h,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:9}),x=o(h);let v=!1,N=[0,0,-1,0,1,0],O=[0,0,0];const D=()=>{if(v)return;v=!0;const j=s(h,256,9,0);j.onaudioprocess=({inputBuffer:q})=>{const V=[r(q,g,0),r(q,g,1),r(q,g,2),r(q,g,3),r(q,g,4),r(q,g,5)];V.some((B,Z)=>B!==N[Z])&&(l.setOrientation(...V),N=V);const X=[r(q,g,6),r(q,g,7),r(q,g,8)];X.some((B,Z)=>B!==O[Z])&&(l.setPosition(...X),O=X)},w.connect(j)},k=j=>q=>{q!==N[j]&&(N[j]=q,l.setOrientation(...N))},R=j=>q=>{q!==O[j]&&(O[j]=q,l.setPosition(...O))},M=(j,q,V)=>{const X=e(h,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:q});X.connect(w,0,j),X.start(),Object.defineProperty(X.offset,"defaultValue",{get(){return q}});const B=n({context:c},x,X.offset,Et,Ft);return a(B,"value",Z=>()=>Z.call(B),Z=>G=>{try{Z.call(B,G)}catch(K){if(K.code!==9)throw K}D(),x&&V(G)}),B.cancelAndHoldAtTime=(Z=>x?()=>{throw i()}:(...G)=>{const K=Z.apply(B,G);return D(),K})(B.cancelAndHoldAtTime),B.cancelScheduledValues=(Z=>x?()=>{throw i()}:(...G)=>{const K=Z.apply(B,G);return D(),K})(B.cancelScheduledValues),B.exponentialRampToValueAtTime=(Z=>x?()=>{throw i()}:(...G)=>{const K=Z.apply(B,G);return D(),K})(B.exponentialRampToValueAtTime),B.linearRampToValueAtTime=(Z=>x?()=>{throw i()}:(...G)=>{const K=Z.apply(B,G);return D(),K})(B.linearRampToValueAtTime),B.setTargetAtTime=(Z=>x?()=>{throw i()}:(...G)=>{const K=Z.apply(B,G);return D(),K})(B.setTargetAtTime),B.setValueAtTime=(Z=>x?()=>{throw i()}:(...G)=>{const K=Z.apply(B,G);return D(),K})(B.setValueAtTime),B.setValueCurveAtTime=(Z=>x?()=>{throw i()}:(...G)=>{const K=Z.apply(B,G);return D(),K})(B.setValueCurveAtTime),B};return{forwardX:M(0,0,k(0)),forwardY:M(1,0,k(1)),forwardZ:M(2,-1,k(2)),positionX:M(6,0,R(0)),positionY:M(7,0,R(1)),positionZ:M(8,0,R(2)),upX:M(3,0,k(3)),upY:M(4,1,k(4)),upZ:M(5,0,k(5))}},{forwardX:p,forwardY:f,forwardZ:d,positionX:m,positionY:_,positionZ:y,upX:T,upY:S,upZ:C}=l.forwardX===void 0?u():l;return{get forwardX(){return p},get forwardY(){return f},get forwardZ(){return d},get positionX(){return m},get positionY(){return _},get positionZ(){return y},get upX(){return T},get upY(){return S},get upZ(){return C}}},Hs=n=>"context"in n,Ss=n=>Hs(n[0]),We=(n,t,e,s)=>{for(const i of n)if(e(i)){if(s)return!1;throw Error("The set contains at least one similar element.")}return n.add(t),!0},Qi=(n,t,[e,s],i)=>{We(n,[t,e,s],r=>r[0]===t&&r[1]===e,i)},$i=(n,[t,e,s],i)=>{const r=n.get(t);r===void 0?n.set(t,new Set([[e,s]])):We(r,[e,s],o=>o[0]===e,i)},is=n=>"inputs"in n,Js=(n,t,e,s)=>{if(is(t)){const i=t.inputs[s];return n.connect(i,e,0),[i,e,0]}return n.connect(t,e,s),[t,e,s]},Tr=(n,t,e)=>{for(const s of n)if(s[0]===t&&s[1]===e)return n.delete(s),s;return null},Ya=(n,t,e)=>dn(n,s=>s[0]===t&&s[1]===e),Sr=(n,t)=>{if(!xs(n).delete(t))throw new Error("Missing the expected event listener.")},kr=(n,t,e)=>{const s=se(n,t),i=dn(s,r=>r[0]===e);return s.size===0&&n.delete(t),i},Ks=(n,t,e,s)=>{is(t)?n.disconnect(t.inputs[s],e,0):n.disconnect(t,e,s)},nt=n=>se(ni,n),ms=n=>se(ii,n),qe=n=>Gn.has(n),Gs=n=>!Ke.has(n),Xi=(n,t)=>new Promise(e=>{if(t!==null)e(!0);else{const s=n.createScriptProcessor(256,1,1),i=n.createGain(),r=n.createBuffer(1,2,44100),o=r.getChannelData(0);o[0]=1,o[1]=1;const a=n.createBufferSource();a.buffer=r,a.loop=!0,a.connect(s).connect(n.destination),a.connect(i),a.disconnect(i),s.onaudioprocess=c=>{const h=c.inputBuffer.getChannelData(0);Array.prototype.some.call(h,l=>l===1)?e(!0):e(!1),a.stop(),s.onaudioprocess=null,a.disconnect(s),s.disconnect(n.destination)},a.start()}}),Wn=(n,t)=>{const e=new Map;for(const s of n)for(const i of s){const r=e.get(i);e.set(i,r===void 0?1:r+1)}e.forEach((s,i)=>t(i,s))},tn=n=>"context"in n,Ha=n=>{const t=new Map;n.connect=(e=>(s,i=0,r=0)=>{const o=tn(s)?e(s,i,r):e(s,i),a=t.get(s);return a===void 0?t.set(s,[{input:r,output:i}]):a.every(c=>c.input!==r||c.output!==i)&&a.push({input:r,output:i}),o})(n.connect.bind(n)),n.disconnect=(e=>(s,i,r)=>{if(e.apply(n),s===void 0)t.clear();else if(typeof s=="number")for(const[o,a]of t){const c=a.filter(h=>h.output!==s);c.length===0?t.delete(o):t.set(o,c)}else if(t.has(s))if(i===void 0)t.delete(s);else{const o=t.get(s);if(o!==void 0){const a=o.filter(c=>c.output!==i&&(c.input!==r||r===void 0));a.length===0?t.delete(s):t.set(s,a)}}for(const[o,a]of t)a.forEach(c=>{tn(o)?n.connect(o,c.output,c.input):n.connect(o,c.output)})})(n.disconnect)},Ja=(n,t,e,s)=>{const{activeInputs:i,passiveInputs:r}=Ts(t),{outputs:o}=Rt(n),a=xs(n),c=h=>{const l=nt(n),u=ms(t);if(h){const p=kr(r,n,e);Qi(i,n,p,!1),!s&&!qe(n)&&l.connect(u,e)}else{const p=Ya(i,n,e);$i(r,p,!1),!s&&!qe(n)&&l.disconnect(u,e)}};return We(o,[t,e],h=>h[0]===t&&h[1]===e,!0)?(a.add(c),me(n)?Qi(i,n,[e,c],!0):$i(r,[n,e,c],!0),!0):!1},Ka=(n,t,e,s)=>{const{activeInputs:i,passiveInputs:r}=Rt(t),o=Tr(i[s],n,e);return o===null?[vr(r,n,e,s)[2],!1]:[o[2],!0]},tc=(n,t,e)=>{const{activeInputs:s,passiveInputs:i}=Ts(t),r=Tr(s,n,e);return r===null?[kr(i,n,e)[1],!1]:[r[2],!0]},oi=(n,t,e,s,i)=>{const[r,o]=Ka(n,e,s,i);if(r!==null&&(Sr(n,r),o&&!t&&!qe(n)&&Ks(nt(n),nt(e),s,i)),me(e)){const{activeInputs:a}=Rt(e);$n(e,a)}},ai=(n,t,e,s)=>{const[i,r]=tc(n,e,s);i!==null&&(Sr(n,i),r&&!t&&!qe(n)&&nt(n).disconnect(ms(e),s))},ec=(n,t)=>{const e=Rt(n),s=[];for(const i of e.outputs)Ss(i)?oi(n,t,...i):ai(n,t,...i),s.push(i[0]);return e.outputs.clear(),s},sc=(n,t,e)=>{const s=Rt(n),i=[];for(const r of s.outputs)r[1]===e&&(Ss(r)?oi(n,t,...r):ai(n,t,...r),i.push(r[0]),s.outputs.delete(r));return i},nc=(n,t,e,s,i)=>{const r=Rt(n);return Array.from(r.outputs).filter(o=>o[0]===e&&(s===void 0||o[1]===s)&&(i===void 0||o[2]===i)).map(o=>(Ss(o)?oi(n,t,...o):ai(n,t,...o),r.outputs.delete(o),o[0]))},ic=(n,t,e,s,i,r,o,a,c,h,l,u,p,f,d,m)=>class extends h{constructor(y,T,S,C){super(S),this._context=y,this._nativeAudioNode=S;const g=l(y);u(g)&&e(Xi,()=>Xi(g,m))!==!0&&Ha(S),ni.set(this,S),gr.set(this,new Set),y.state!=="closed"&&T&&ts(this),n(this,C,S)}get channelCount(){return this._nativeAudioNode.channelCount}set channelCount(y){this._nativeAudioNode.channelCount=y}get channelCountMode(){return this._nativeAudioNode.channelCountMode}set channelCountMode(y){this._nativeAudioNode.channelCountMode=y}get channelInterpretation(){return this._nativeAudioNode.channelInterpretation}set channelInterpretation(y){this._nativeAudioNode.channelInterpretation=y}get context(){return this._context}get numberOfInputs(){return this._nativeAudioNode.numberOfInputs}get numberOfOutputs(){return this._nativeAudioNode.numberOfOutputs}connect(y,T=0,S=0){if(T<0||T>=this._nativeAudioNode.numberOfOutputs)throw i();const C=l(this._context),g=d(C);if(p(y)||f(y))throw r();if(Hs(y)){const v=nt(y);try{const O=Js(this._nativeAudioNode,v,T,S),D=Gs(this);(g||D)&&this._nativeAudioNode.disconnect(...O),this.context.state!=="closed"&&!D&&Gs(y)&&ts(y)}catch(O){throw O.code===12?r():O}if(t(this,y,T,S,g)){const O=c([this],y);Wn(O,s(g))}return y}const w=ms(y);if(w.name==="playbackRate"&&w.maxValue===1024)throw o();try{this._nativeAudioNode.connect(w,T),(g||Gs(this))&&this._nativeAudioNode.disconnect(w,T)}catch(v){throw v.code===12?r():v}if(Ja(this,y,T,g)){const v=c([this],y);Wn(v,s(g))}}disconnect(y,T,S){let C;const g=l(this._context),w=d(g);if(y===void 0)C=ec(this,w);else if(typeof y=="number"){if(y<0||y>=this.numberOfOutputs)throw i();C=sc(this,w,y)}else{if(T!==void 0&&(T<0||T>=this.numberOfOutputs)||Hs(y)&&S!==void 0&&(S<0||S>=y.numberOfInputs))throw i();if(C=nc(this,w,y,T,S),C.length===0)throw r()}for(const x of C){const v=c([this],x);Wn(v,a)}}},rc=(n,t,e,s,i,r,o,a,c,h,l,u,p)=>(f,d,m,_=null,y=null)=>{const T=m.value,S=new ma(T),C=d?s(S):null,g={get defaultValue(){return T},get maxValue(){return _===null?m.maxValue:_},get minValue(){return y===null?m.minValue:y},get value(){return m.value},set value(w){m.value=w,g.setValueAtTime(w,f.context.currentTime)},cancelAndHoldAtTime(w){if(typeof m.cancelAndHoldAtTime=="function")C===null&&S.flush(f.context.currentTime),S.add(i(w)),m.cancelAndHoldAtTime(w);else{const x=Array.from(S).pop();C===null&&S.flush(f.context.currentTime),S.add(i(w));const v=Array.from(S).pop();m.cancelScheduledValues(w),x!==v&&v!==void 0&&(v.type==="exponentialRampToValue"?m.exponentialRampToValueAtTime(v.value,v.endTime):v.type==="linearRampToValue"?m.linearRampToValueAtTime(v.value,v.endTime):v.type==="setValue"?m.setValueAtTime(v.value,v.startTime):v.type==="setValueCurve"&&m.setValueCurveAtTime(v.values,v.startTime,v.duration))}return g},cancelScheduledValues(w){return C===null&&S.flush(f.context.currentTime),S.add(r(w)),m.cancelScheduledValues(w),g},exponentialRampToValueAtTime(w,x){if(w===0)throw new RangeError;if(!Number.isFinite(x)||x<0)throw new RangeError;const v=f.context.currentTime;return C===null&&S.flush(v),Array.from(S).length===0&&(S.add(h(T,v)),m.setValueAtTime(T,v)),S.add(o(w,x)),m.exponentialRampToValueAtTime(w,x),g},linearRampToValueAtTime(w,x){const v=f.context.currentTime;return C===null&&S.flush(v),Array.from(S).length===0&&(S.add(h(T,v)),m.setValueAtTime(T,v)),S.add(a(w,x)),m.linearRampToValueAtTime(w,x),g},setTargetAtTime(w,x,v){return C===null&&S.flush(f.context.currentTime),S.add(c(w,x,v)),m.setTargetAtTime(w,x,v),g},setValueAtTime(w,x){return C===null&&S.flush(f.context.currentTime),S.add(h(w,x)),m.setValueAtTime(w,x),g},setValueCurveAtTime(w,x,v){const N=w instanceof Float32Array?w:new Float32Array(w);if(u!==null&&u.name==="webkitAudioContext"){const O=x+v,D=f.context.sampleRate,k=Math.ceil(x*D),R=Math.floor(O*D),M=R-k,j=new Float32Array(M);for(let V=0;V({replay(t){for(const e of n)if(e.type==="exponentialRampToValue"){const{endTime:s,value:i}=e;t.exponentialRampToValueAtTime(i,s)}else if(e.type==="linearRampToValue"){const{endTime:s,value:i}=e;t.linearRampToValueAtTime(i,s)}else if(e.type==="setTarget"){const{startTime:s,target:i,timeConstant:r}=e;t.setTargetAtTime(i,s,r)}else if(e.type==="setValue"){const{startTime:s,value:i}=e;t.setValueAtTime(i,s)}else if(e.type==="setValueCurve"){const{duration:s,startTime:i,values:r}=e;t.setValueCurveAtTime(r,i,s)}else throw new Error("Can't apply an unknown automation.")}});class Ar{constructor(t){this._map=new Map(t)}get size(){return this._map.size}entries(){return this._map.entries()}forEach(t,e=null){return this._map.forEach((s,i)=>t.call(e,s,i,this))}get(t){return this._map.get(t)}has(t){return this._map.has(t)}keys(){return this._map.keys()}values(){return this._map.values()}}const ac={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,parameterData:{},processorOptions:{}},cc=(n,t,e,s,i,r,o,a,c,h,l,u,p,f)=>class extends t{constructor(m,_,y){var T;const S=a(m),C=c(S),g=l({...ac,...y});p(g);const w=Zn.get(S),x=w==null?void 0:w.get(_),v=C||S.state!=="closed"?S:(T=o(S))!==null&&T!==void 0?T:S,N=i(v,C?null:m.baseLatency,h,_,x,g),O=C?s(_,g,x):null;super(m,!0,N,O);const D=[];N.parameters.forEach((R,M)=>{const j=e(this,C,R);D.push([M,j])}),this._nativeAudioWorkletNode=N,this._onprocessorerror=null,this._parameters=new Ar(D),C&&n(S,this);const{activeInputs:k}=r(this);u(N,k)}get onprocessorerror(){return this._onprocessorerror}set onprocessorerror(m){const _=typeof m=="function"?f(this,m):null;this._nativeAudioWorkletNode.onprocessorerror=_;const y=this._nativeAudioWorkletNode.onprocessorerror;this._onprocessorerror=y!==null&&y===_?m:y}get parameters(){return this._parameters===null?this._nativeAudioWorkletNode.parameters:this._parameters}get port(){return this._nativeAudioWorkletNode.port}};function en(n,t,e,s,i){if(typeof n.copyFromChannel=="function")t[e].byteLength===0&&(t[e]=new Float32Array(128)),n.copyFromChannel(t[e],s,i);else{const r=n.getChannelData(s);if(t[e].byteLength===0)t[e]=r.slice(i,i+128);else{const o=new Float32Array(r.buffer,i*Float32Array.BYTES_PER_ELEMENT,128);t[e].set(o)}}}const Cr=(n,t,e,s,i)=>{typeof n.copyToChannel=="function"?t[e].byteLength!==0&&n.copyToChannel(t[e],s,i):t[e].byteLength!==0&&n.getChannelData(s).set(t[e],i)},sn=(n,t)=>{const e=[];for(let s=0;s{const e=se(Qn,n),s=nt(t);return se(e,s)},lc=async(n,t,e,s,i,r,o)=>{const a=t===null?Math.ceil(n.context.length/128)*128:t.length,c=s.channelCount*s.numberOfInputs,h=i.reduce((_,y)=>_+y,0),l=h===0?null:e.createBuffer(h,a,e.sampleRate);if(r===void 0)throw new Error("Missing the processor constructor.");const u=Rt(n),p=await hc(e,n),f=sn(s.numberOfInputs,s.channelCount),d=sn(s.numberOfOutputs,i),m=Array.from(n.parameters.keys()).reduce((_,y)=>({..._,[y]:new Float32Array(128)}),{});for(let _=0;_0&&t!==null)for(let y=0;y{en(t,m,y,c+T,_)});for(let y=0;yu.activeInputs[C].size===0?[]:S),T=o(_/e.sampleRate,e.sampleRate,()=>p.process(y,d,m));if(l!==null)for(let S=0,C=0;S(_,y,T)=>{const S=new WeakMap;let C=null;const g=async(w,x)=>{let v=l(w),N=null;const O=Ot(v,x),D=Array.isArray(y.outputChannelCount)?y.outputChannelCount:Array.from(y.outputChannelCount);if(u===null){const k=D.reduce((q,V)=>q+V,0),R=i(x,{channelCount:Math.max(1,k),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,k)}),M=[];for(let q=0;q{const G=new p(B,Math.ceil(w.context.length/128)*128,x.sampleRate),K=[],Wt=[];for(let it=0;it{const Nt=r(G,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:it.value});return await f(G,it,Nt.offset),Nt})),Y=s(G,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,V+X)});for(let it=0;itd(w,G,it))),m(G)})(),x,y,D,T,h)}const k=await C,R=e(x,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[M,j,q]=N;k!==null&&(R.buffer=k,R.start(0)),R.connect(M);for(let V=0,X=0;Vclass extends d{constructor(g,w){super(g,w),this._nativeContext=g,this._audioWorklet=n===void 0?void 0:{addModule:(x,v)=>n(this,x,v)}}get audioWorklet(){return this._audioWorklet}createAnalyser(){return new t(this)}createBiquadFilter(){return new i(this)}createBuffer(g,w,x){return new e({length:w,numberOfChannels:g,sampleRate:x})}createBufferSource(){return new s(this)}createChannelMerger(g=6){return new r(this,{numberOfInputs:g})}createChannelSplitter(g=6){return new o(this,{numberOfOutputs:g})}createConstantSource(){return new a(this)}createConvolver(){return new c(this)}createDelay(g=1){return new l(this,{maxDelayTime:g})}createDynamicsCompressor(){return new u(this)}createGain(){return new p(this)}createIIRFilter(g,w){return new f(this,{feedback:w,feedforward:g})}createOscillator(){return new m(this)}createPanner(){return new _(this)}createPeriodicWave(g,w,x={disableNormalization:!1}){return new y(this,{...x,imag:w,real:g})}createStereoPanner(){return new T(this)}createWaveShaper(){return new S(this)}decodeAudioData(g,w,x){return h(this._nativeContext,g).then(v=>(typeof w=="function"&&w(v),v),v=>{throw typeof x=="function"&&x(v),v})}},pc={Q:1,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:350,gain:0,type:"lowpass"},fc=(n,t,e,s,i,r,o,a)=>class extends n{constructor(h,l){const u=r(h),p={...pc,...l},f=i(u,p),d=o(u),m=d?e():null;super(h,!1,f,m),this._Q=t(this,d,f.Q,Et,Ft),this._detune=t(this,d,f.detune,1200*Math.log2(Et),-1200*Math.log2(Et)),this._frequency=t(this,d,f.frequency,h.sampleRate/2,0),this._gain=t(this,d,f.gain,40*Math.log10(Et),Ft),this._nativeBiquadFilterNode=f,a(this,1)}get detune(){return this._detune}get frequency(){return this._frequency}get gain(){return this._gain}get Q(){return this._Q}get type(){return this._nativeBiquadFilterNode.type}set type(h){this._nativeBiquadFilterNode.type=h}getFrequencyResponse(h,l,u){try{this._nativeBiquadFilterNode.getFrequencyResponse(h,l,u)}catch(p){throw p.code===11?s():p}if(h.length!==l.length||l.length!==u.length)throw s()}},mc=(n,t,e,s,i)=>()=>{const r=new WeakMap,o=async(a,c)=>{let h=e(a);const l=Ot(h,c);if(!l){const u={Q:h.Q.value,channelCount:h.channelCount,channelCountMode:h.channelCountMode,channelInterpretation:h.channelInterpretation,detune:h.detune.value,frequency:h.frequency.value,gain:h.gain.value,type:h.type};h=t(c,u)}return r.set(c,h),l?(await n(c,a.Q,h.Q),await n(c,a.detune,h.detune),await n(c,a.frequency,h.frequency),await n(c,a.gain,h.gain)):(await s(c,a.Q,h.Q),await s(c,a.detune,h.detune),await s(c,a.frequency,h.frequency),await s(c,a.gain,h.gain)),await i(a,c,h),h};return{render(a,c){const h=r.get(c);return h!==void 0?Promise.resolve(h):o(a,c)}}},_c=(n,t)=>(e,s)=>{const i=t.get(e);if(i!==void 0)return i;const r=n.get(e);if(r!==void 0)return r;try{const o=s();return o instanceof Promise?(n.set(e,o),o.catch(()=>!1).then(a=>(n.delete(e),t.set(e,a),a))):(t.set(e,o),o)}catch{return t.set(e,!1),!1}},gc={channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6},yc=(n,t,e,s,i)=>class extends n{constructor(o,a){const c=s(o),h={...gc,...a},l=e(c,h),u=i(c)?t():null;super(o,!1,l,u)}},vc=(n,t,e)=>()=>{const s=new WeakMap,i=async(r,o)=>{let a=t(r);if(!Ot(a,o)){const h={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfInputs:a.numberOfInputs};a=n(o,h)}return s.set(o,a),await e(r,o,a),a};return{render(r,o){const a=s.get(o);return a!==void 0?Promise.resolve(a):i(r,o)}}},wc={channelCount:6,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:6},xc=(n,t,e,s,i,r)=>class extends n{constructor(a,c){const h=s(a),l=r({...wc,...c}),u=e(h,l),p=i(h)?t():null;super(a,!1,u,p)}},bc=(n,t,e)=>()=>{const s=new WeakMap,i=async(r,o)=>{let a=t(r);if(!Ot(a,o)){const h={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfOutputs:a.numberOfOutputs};a=n(o,h)}return s.set(o,a),await e(r,o,a),a};return{render(r,o){const a=s.get(o);return a!==void 0?Promise.resolve(a):i(r,o)}}},Tc=n=>(t,e,s)=>n(e,t,s),Sc=n=>(t,e,s=0,i=0)=>{const r=t[s];if(r===void 0)throw n();return tn(e)?r.connect(e,0,i):r.connect(e,0)},kc=n=>(t,e)=>{const s=n(t,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),i=t.createBuffer(1,2,44100);return s.buffer=i,s.loop=!0,s.connect(e),s.start(),()=>{s.stop(),s.disconnect(e)}},Ac={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",offset:1},Cc=(n,t,e,s,i,r,o)=>class extends n{constructor(c,h){const l=i(c),u={...Ac,...h},p=s(l,u),f=r(l),d=f?e():null;super(c,!1,p,d),this._constantSourceNodeRenderer=d,this._nativeConstantSourceNode=p,this._offset=t(this,f,p.offset,Et,Ft),this._onended=null}get offset(){return this._offset}get onended(){return this._onended}set onended(c){const h=typeof c=="function"?o(this,c):null;this._nativeConstantSourceNode.onended=h;const l=this._nativeConstantSourceNode.onended;this._onended=l!==null&&l===h?c:l}start(c=0){if(this._nativeConstantSourceNode.start(c),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.start=c),this.context.state!=="closed"){ts(this);const h=()=>{this._nativeConstantSourceNode.removeEventListener("ended",h),me(this)&&bs(this)};this._nativeConstantSourceNode.addEventListener("ended",h)}}stop(c=0){this._nativeConstantSourceNode.stop(c),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.stop=c)}},Dc=(n,t,e,s,i)=>()=>{const r=new WeakMap;let o=null,a=null;const c=async(h,l)=>{let u=e(h);const p=Ot(u,l);if(!p){const f={channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,offset:u.offset.value};u=t(l,f),o!==null&&u.start(o),a!==null&&u.stop(a)}return r.set(l,u),p?await n(l,h.offset,u.offset):await s(l,h.offset,u.offset),await i(h,l,u),u};return{set start(h){o=h},set stop(h){a=h},render(h,l){const u=r.get(l);return u!==void 0?Promise.resolve(u):c(h,l)}}},Oc=n=>t=>(n[0]=t,n[0]),Nc={buffer:null,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",disableNormalization:!1},Ec=(n,t,e,s,i,r)=>class extends n{constructor(a,c){const h=s(a),l={...Nc,...c},u=e(h,l),f=i(h)?t():null;super(a,!1,u,f),this._isBufferNullified=!1,this._nativeConvolverNode=u,l.buffer!==null&&r(this,l.buffer.duration)}get buffer(){return this._isBufferNullified?null:this._nativeConvolverNode.buffer}set buffer(a){if(this._nativeConvolverNode.buffer=a,a===null&&this._nativeConvolverNode.buffer!==null){const c=this._nativeConvolverNode.context;this._nativeConvolverNode.buffer=c.createBuffer(1,1,c.sampleRate),this._isBufferNullified=!0,r(this,0)}else this._isBufferNullified=!1,r(this,this._nativeConvolverNode.buffer===null?0:this._nativeConvolverNode.buffer.duration)}get normalize(){return this._nativeConvolverNode.normalize}set normalize(a){this._nativeConvolverNode.normalize=a}},Mc=(n,t,e)=>()=>{const s=new WeakMap,i=async(r,o)=>{let a=t(r);if(!Ot(a,o)){const h={buffer:a.buffer,channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,disableNormalization:!a.normalize};a=n(o,h)}return s.set(o,a),is(a)?await e(r,o,a.inputs[0]):await e(r,o,a),a};return{render(r,o){const a=s.get(o);return a!==void 0?Promise.resolve(a):i(r,o)}}},Rc=(n,t)=>(e,s,i)=>{if(t===null)throw new Error("Missing the native OfflineAudioContext constructor.");try{return new t(e,s,i)}catch(r){throw r.name==="SyntaxError"?n():r}},Ic=()=>new DOMException("","DataCloneError"),Yi=n=>{const{port1:t,port2:e}=new MessageChannel;return new Promise(s=>{const i=()=>{e.onmessage=null,t.close(),e.close(),s()};e.onmessage=()=>i();try{t.postMessage(n,[n])}catch{}finally{i()}})},Fc=(n,t,e,s,i,r,o,a,c,h,l)=>(u,p)=>{const f=o(u)?u:r(u);if(i.has(p)){const d=e();return Promise.reject(d)}try{i.add(p)}catch{}return t(c,()=>c(f))?f.decodeAudioData(p).then(d=>(Yi(p).catch(()=>{}),t(a,()=>a(d))||l(d),n.add(d),d)):new Promise((d,m)=>{const _=async()=>{try{await Yi(p)}catch{}},y=T=>{m(T),_()};try{f.decodeAudioData(p,T=>{typeof T.copyFromChannel!="function"&&(h(T),ri(T)),n.add(T),_().then(()=>d(T))},T=>{y(T===null?s():T)})}catch(T){y(T)}})},qc=(n,t,e,s,i,r,o,a)=>(c,h)=>{const l=t.get(c);if(l===void 0)throw new Error("Missing the expected cycle count.");const u=r(c.context),p=a(u);if(l===h){if(t.delete(c),!p&&o(c)){const f=s(c),{outputs:d}=e(c);for(const m of d)if(Ss(m)){const _=s(m[0]);n(f,_,m[1],m[2])}else{const _=i(m[0]);f.connect(_,m[1])}}}else t.set(c,l-h)},Vc={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},Pc=(n,t,e,s,i,r,o)=>class extends n{constructor(c,h){const l=i(c),u={...Vc,...h},p=s(l,u),f=r(l),d=f?e(u.maxDelayTime):null;super(c,!1,p,d),this._delayTime=t(this,f,p.delayTime),o(this,u.maxDelayTime)}get delayTime(){return this._delayTime}},Lc=(n,t,e,s,i)=>r=>{const o=new WeakMap,a=async(c,h)=>{let l=e(c);const u=Ot(l,h);if(!u){const p={channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,delayTime:l.delayTime.value,maxDelayTime:r};l=t(h,p)}return o.set(h,l),u?await n(h,c.delayTime,l.delayTime):await s(h,c.delayTime,l.delayTime),await i(c,h,l),l};return{render(c,h){const l=o.get(h);return l!==void 0?Promise.resolve(l):a(c,h)}}},Wc=n=>(t,e,s,i)=>n(t[i],r=>r[0]===e&&r[1]===s),jc=n=>(t,e)=>{n(t).delete(e)},Bc=n=>"delayTime"in n,zc=(n,t,e)=>function s(i,r){const o=Hs(r)?r:e(n,r);if(Bc(o))return[];if(i[0]===o)return[i];if(i.includes(o))return[];const{outputs:a}=t(o);return Array.from(a).map(c=>s([...i,o],c[0])).reduce((c,h)=>c.concat(h),[])},Bs=(n,t,e)=>{const s=t[e];if(s===void 0)throw n();return s},Uc=n=>(t,e=void 0,s=void 0,i=0)=>e===void 0?t.forEach(r=>r.disconnect()):typeof e=="number"?Bs(n,t,e).disconnect():tn(e)?s===void 0?t.forEach(r=>r.disconnect(e)):i===void 0?Bs(n,t,s).disconnect(e,0):Bs(n,t,s).disconnect(e,0,i):s===void 0?t.forEach(r=>r.disconnect(e)):Bs(n,t,s).disconnect(e,0),Gc={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},Zc=(n,t,e,s,i,r,o,a)=>class extends n{constructor(h,l){const u=r(h),p={...Gc,...l},f=s(u,p),d=o(u),m=d?e():null;super(h,!1,f,m),this._attack=t(this,d,f.attack),this._knee=t(this,d,f.knee),this._nativeDynamicsCompressorNode=f,this._ratio=t(this,d,f.ratio),this._release=t(this,d,f.release),this._threshold=t(this,d,f.threshold),a(this,.006)}get attack(){return this._attack}get channelCount(){return this._nativeDynamicsCompressorNode.channelCount}set channelCount(h){const l=this._nativeDynamicsCompressorNode.channelCount;if(this._nativeDynamicsCompressorNode.channelCount=h,h>2)throw this._nativeDynamicsCompressorNode.channelCount=l,i()}get channelCountMode(){return this._nativeDynamicsCompressorNode.channelCountMode}set channelCountMode(h){const l=this._nativeDynamicsCompressorNode.channelCountMode;if(this._nativeDynamicsCompressorNode.channelCountMode=h,h==="max")throw this._nativeDynamicsCompressorNode.channelCountMode=l,i()}get knee(){return this._knee}get ratio(){return this._ratio}get reduction(){return typeof this._nativeDynamicsCompressorNode.reduction.value=="number"?this._nativeDynamicsCompressorNode.reduction.value:this._nativeDynamicsCompressorNode.reduction}get release(){return this._release}get threshold(){return this._threshold}},Qc=(n,t,e,s,i)=>()=>{const r=new WeakMap,o=async(a,c)=>{let h=e(a);const l=Ot(h,c);if(!l){const u={attack:h.attack.value,channelCount:h.channelCount,channelCountMode:h.channelCountMode,channelInterpretation:h.channelInterpretation,knee:h.knee.value,ratio:h.ratio.value,release:h.release.value,threshold:h.threshold.value};h=t(c,u)}return r.set(c,h),l?(await n(c,a.attack,h.attack),await n(c,a.knee,h.knee),await n(c,a.ratio,h.ratio),await n(c,a.release,h.release),await n(c,a.threshold,h.threshold)):(await s(c,a.attack,h.attack),await s(c,a.knee,h.knee),await s(c,a.ratio,h.ratio),await s(c,a.release,h.release),await s(c,a.threshold,h.threshold)),await i(a,c,h),h};return{render(a,c){const h=r.get(c);return h!==void 0?Promise.resolve(h):o(a,c)}}},$c=()=>new DOMException("","EncodingError"),Xc=n=>t=>new Promise((e,s)=>{if(n===null){s(new SyntaxError);return}const i=n.document.head;if(i===null)s(new SyntaxError);else{const r=n.document.createElement("script"),o=new Blob([t],{type:"application/javascript"}),a=URL.createObjectURL(o),c=n.onerror,h=()=>{n.onerror=c,URL.revokeObjectURL(a)};n.onerror=(l,u,p,f,d)=>{if(u===a||u===n.location.href&&p===1&&f===1)return h(),s(d),!1;if(c!==null)return c(l,u,p,f,d)},r.onerror=()=>{h(),s(new SyntaxError)},r.onload=()=>{h(),e()},r.src=a,r.type="module",i.appendChild(r)}}),Yc=n=>class{constructor(e){this._nativeEventTarget=e,this._listeners=new WeakMap}addEventListener(e,s,i){if(s!==null){let r=this._listeners.get(s);r===void 0&&(r=n(this,s),typeof s=="function"&&this._listeners.set(s,r)),this._nativeEventTarget.addEventListener(e,r,i)}}dispatchEvent(e){return this._nativeEventTarget.dispatchEvent(e)}removeEventListener(e,s,i){const r=s===null?void 0:this._listeners.get(s);this._nativeEventTarget.removeEventListener(e,r===void 0?null:r,i)}},Hc=n=>(t,e,s)=>{Object.defineProperties(n,{currentFrame:{configurable:!0,get(){return Math.round(t*e)}},currentTime:{configurable:!0,get(){return t}}});try{return s()}finally{n!==null&&(delete n.currentFrame,delete n.currentTime)}},Jc=n=>async t=>{try{const e=await fetch(t);if(e.ok)return[await e.text(),e.url]}catch{}throw n()},Kc={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},th=(n,t,e,s,i,r)=>class extends n{constructor(a,c){const h=i(a),l={...Kc,...c},u=s(h,l),p=r(h),f=p?e():null;super(a,!1,u,f),this._gain=t(this,p,u.gain,Et,Ft)}get gain(){return this._gain}},eh=(n,t,e,s,i)=>()=>{const r=new WeakMap,o=async(a,c)=>{let h=e(a);const l=Ot(h,c);if(!l){const u={channelCount:h.channelCount,channelCountMode:h.channelCountMode,channelInterpretation:h.channelInterpretation,gain:h.gain.value};h=t(c,u)}return r.set(c,h),l?await n(c,a.gain,h.gain):await s(c,a.gain,h.gain),await i(a,c,h),h};return{render(a,c){const h=r.get(c);return h!==void 0?Promise.resolve(h):o(a,c)}}},sh=(n,t)=>e=>t(n,e),nh=n=>t=>{const e=n(t);if(e.renderer===null)throw new Error("Missing the renderer of the given AudioNode in the audio graph.");return e.renderer},ih=n=>t=>{var e;return(e=n.get(t))!==null&&e!==void 0?e:0},rh=n=>t=>{const e=n(t);if(e.renderer===null)throw new Error("Missing the renderer of the given AudioParam in the audio graph.");return e.renderer},oh=n=>t=>n.get(t),xt=()=>new DOMException("","InvalidStateError"),ah=n=>t=>{const e=n.get(t);if(e===void 0)throw xt();return e},ch=(n,t)=>e=>{let s=n.get(e);if(s!==void 0)return s;if(t===null)throw new Error("Missing the native OfflineAudioContext constructor.");return s=new t(1,1,44100),n.set(e,s),s},hh=n=>t=>{const e=n.get(t);if(e===void 0)throw new Error("The context has no set of AudioWorkletNodes.");return e},pn=()=>new DOMException("","InvalidAccessError"),lh=n=>{n.getFrequencyResponse=(t=>(e,s,i)=>{if(e.length!==s.length||s.length!==i.length)throw pn();return t.call(n,e,s,i)})(n.getFrequencyResponse)},uh={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},dh=(n,t,e,s,i,r)=>class extends n{constructor(a,c){const h=s(a),l=i(h),u={...uh,...c},p=t(h,l?null:a.baseLatency,u),f=l?e(u.feedback,u.feedforward):null;super(a,!1,p,f),lh(p),this._nativeIIRFilterNode=p,r(this,1)}getFrequencyResponse(a,c,h){return this._nativeIIRFilterNode.getFrequencyResponse(a,c,h)}},Dr=(n,t,e,s,i,r,o,a,c,h,l)=>{const u=h.length;let p=a;for(let f=0;f{const i=e instanceof Float64Array?e:new Float64Array(e),r=s instanceof Float64Array?s:new Float64Array(s),o=i.length,a=r.length,c=Math.min(o,a);if(i[0]!==1){for(let d=0;d(r,o)=>{const a=new WeakMap;let c=null;const h=async(l,u)=>{let p=null,f=t(l);const d=Ot(f,u);if(u.createIIRFilter===void 0?p=n(u,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}):d||(f=u.createIIRFilter(o,r)),a.set(u,p===null?f:p),p!==null){if(c===null){if(e===null)throw new Error("Missing the native OfflineAudioContext constructor.");const _=new e(l.context.destination.channelCount,l.context.length,u.sampleRate);c=(async()=>{await s(l,_,_.destination);const y=await i(_);return ph(y,u,r,o)})()}const m=await c;return p.buffer=m,p.start(0),p}return await s(l,u,f),f};return{render(l,u){const p=a.get(u);return p!==void 0?Promise.resolve(p):h(l,u)}}},mh=(n,t,e,s,i,r)=>o=>(a,c)=>{const h=n.get(a);if(h===void 0){if(!o&&r(a)){const l=s(a),{outputs:u}=e(a);for(const p of u)if(Ss(p)){const f=s(p[0]);t(l,f,p[1],p[2])}else{const f=i(p[0]);l.disconnect(f,p[1])}}n.set(a,c)}else n.set(a,h+c)},_h=(n,t)=>e=>{const s=n.get(e);return t(s)||t(e)},gh=(n,t)=>e=>n.has(e)||t(e),yh=(n,t)=>e=>n.has(e)||t(e),vh=(n,t)=>e=>{const s=n.get(e);return t(s)||t(e)},wh=n=>t=>n!==null&&t instanceof n,xh=n=>t=>n!==null&&typeof n.AudioNode=="function"&&t instanceof n.AudioNode,bh=n=>t=>n!==null&&typeof n.AudioParam=="function"&&t instanceof n.AudioParam,Th=(n,t)=>e=>n(e)||t(e),Sh=n=>t=>n!==null&&t instanceof n,kh=n=>n!==null&&n.isSecureContext,Ah=async(n,t,e,s,i,r,o,a,c,h,l,u,p,f,d,m)=>n(t,t)&&n(e,e)&&n(i,i)&&n(r,r)&&n(a,a)&&n(c,c)&&n(h,h)&&n(l,l)&&n(u,u)&&n(p,p)&&n(f,f)?(await Promise.all([n(s,s),n(o,o),n(d,d),n(m,m)])).every(y=>y):!1,Ch=(n,t,e,s)=>class extends n{constructor(r,o){const a=e(r),c=t(a,o);if(s(a))throw TypeError();super(r,!0,c,null),this._nativeMediaElementAudioSourceNode=c}get mediaElement(){return this._nativeMediaElementAudioSourceNode.mediaElement}},Dh={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers"},Oh=(n,t,e,s)=>class extends n{constructor(r,o){const a=e(r);if(s(a))throw new TypeError;const c={...Dh,...o},h=t(a,c);super(r,!1,h,null),this._nativeMediaStreamAudioDestinationNode=h}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}},Nh=(n,t,e,s)=>class extends n{constructor(r,o){const a=e(r),c=t(a,o);if(s(a))throw new TypeError;super(r,!0,c,null),this._nativeMediaStreamAudioSourceNode=c}get mediaStream(){return this._nativeMediaStreamAudioSourceNode.mediaStream}},Eh=(n,t,e)=>class extends n{constructor(i,r){const o=e(i),a=t(o,r);super(i,!0,a,null)}},Mh=(n,t,e,s,i,r)=>class extends e{constructor(a,c){super(a),this._nativeContext=a,un.set(this,a),s(a)&&i.set(a,new Set),this._destination=new n(this,c),this._listener=t(this,a),this._onstatechange=null}get currentTime(){return this._nativeContext.currentTime}get destination(){return this._destination}get listener(){return this._listener}get onstatechange(){return this._onstatechange}set onstatechange(a){const c=typeof a=="function"?r(this,a):null;this._nativeContext.onstatechange=c;const h=this._nativeContext.onstatechange;this._onstatechange=h!==null&&h===c?a:h}get sampleRate(){return this._nativeContext.sampleRate}get state(){return this._nativeContext.state}},_s=n=>{const t=new Uint32Array([1179011410,40,1163280727,544501094,16,131073,44100,176400,1048580,1635017060,4,0]);try{const e=n.decodeAudioData(t.buffer,()=>{});return e===void 0?!1:(e.catch(()=>{}),!0)}catch{}return!1},Rh=(n,t)=>(e,s,i)=>{const r=new Set;return e.connect=(o=>(a,c=0,h=0)=>{const l=r.size===0;if(t(a))return o.call(e,a,c,h),n(r,[a,c,h],u=>u[0]===a&&u[1]===c&&u[2]===h,!0),l&&s(),a;o.call(e,a,c),n(r,[a,c],u=>u[0]===a&&u[1]===c,!0),l&&s()})(e.connect),e.disconnect=(o=>(a,c,h)=>{const l=r.size>0;if(a===void 0)o.apply(e),r.clear();else if(typeof a=="number"){o.call(e,a);for(const p of r)p[1]===a&&r.delete(p)}else{t(a)?o.call(e,a,c,h):o.call(e,a,c);for(const p of r)p[0]===a&&(c===void 0||p[1]===c)&&(h===void 0||p[2]===h)&&r.delete(p)}const u=r.size===0;l&&u&&i()})(e.disconnect),e},rt=(n,t,e)=>{const s=t[e];s!==void 0&&s!==n[e]&&(n[e]=s)},yt=(n,t)=>{rt(n,t,"channelCount"),rt(n,t,"channelCountMode"),rt(n,t,"channelInterpretation")},Hi=n=>typeof n.getFloatTimeDomainData=="function",Ih=n=>{n.getFloatTimeDomainData=t=>{const e=new Uint8Array(t.length);n.getByteTimeDomainData(e);const s=Math.max(e.length,n.fftSize);for(let i=0;i(e,s)=>{const i=e.createAnalyser();if(yt(i,s),!(s.maxDecibels>s.minDecibels))throw t();return rt(i,s,"fftSize"),rt(i,s,"maxDecibels"),rt(i,s,"minDecibels"),rt(i,s,"smoothingTimeConstant"),n(Hi,()=>Hi(i))||Ih(i),i},qh=n=>n===null?null:n.hasOwnProperty("AudioBuffer")?n.AudioBuffer:null,dt=(n,t,e)=>{const s=t[e];s!==void 0&&s!==n[e].value&&(n[e].value=s)},Vh=n=>{n.start=(t=>{let e=!1;return(s=0,i=0,r)=>{if(e)throw xt();t.call(n,s,i,r),e=!0}})(n.start)},ci=n=>{n.start=(t=>(e=0,s=0,i)=>{if(typeof i=="number"&&i<0||s<0||e<0)throw new RangeError("The parameters can't be negative.");t.call(n,e,s,i)})(n.start)},hi=n=>{n.stop=(t=>(e=0)=>{if(e<0)throw new RangeError("The parameter can't be negative.");t.call(n,e)})(n.stop)},Ph=(n,t,e,s,i,r,o,a,c,h,l)=>(u,p)=>{const f=u.createBufferSource();return yt(f,p),dt(f,p,"playbackRate"),rt(f,p,"buffer"),rt(f,p,"loop"),rt(f,p,"loopEnd"),rt(f,p,"loopStart"),t(e,()=>e(u))||Vh(f),t(s,()=>s(u))||c(f),t(i,()=>i(u))||h(f,u),t(r,()=>r(u))||ci(f),t(o,()=>o(u))||l(f,u),t(a,()=>a(u))||hi(f),n(u,f),f},Lh=n=>n===null?null:n.hasOwnProperty("AudioContext")?n.AudioContext:n.hasOwnProperty("webkitAudioContext")?n.webkitAudioContext:null,Wh=(n,t)=>(e,s,i)=>{const r=e.destination;if(r.channelCount!==s)try{r.channelCount=s}catch{}i&&r.channelCountMode!=="explicit"&&(r.channelCountMode="explicit"),r.maxChannelCount===0&&Object.defineProperty(r,"maxChannelCount",{value:s});const o=n(e,{channelCount:s,channelCountMode:r.channelCountMode,channelInterpretation:r.channelInterpretation,gain:1});return t(o,"channelCount",a=>()=>a.call(o),a=>c=>{a.call(o,c);try{r.channelCount=c}catch(h){if(c>r.maxChannelCount)throw h}}),t(o,"channelCountMode",a=>()=>a.call(o),a=>c=>{a.call(o,c),r.channelCountMode=c}),t(o,"channelInterpretation",a=>()=>a.call(o),a=>c=>{a.call(o,c),r.channelInterpretation=c}),Object.defineProperty(o,"maxChannelCount",{get:()=>r.maxChannelCount}),o.connect(r),o},jh=n=>n===null?null:n.hasOwnProperty("AudioWorkletNode")?n.AudioWorkletNode:null,Bh=n=>{const{port1:t}=new MessageChannel;try{t.postMessage(n)}finally{t.close()}},zh=(n,t,e,s,i)=>(r,o,a,c,h,l)=>{if(a!==null)try{const u=new a(r,c,l),p=new Map;let f=null;if(Object.defineProperties(u,{channelCount:{get:()=>l.channelCount,set:()=>{throw n()}},channelCountMode:{get:()=>"explicit",set:()=>{throw n()}},onprocessorerror:{get:()=>f,set:d=>{typeof f=="function"&&u.removeEventListener("processorerror",f),f=typeof d=="function"?d:null,typeof f=="function"&&u.addEventListener("processorerror",f)}}}),u.addEventListener=(d=>(...m)=>{if(m[0]==="processorerror"){const _=typeof m[1]=="function"?m[1]:typeof m[1]=="object"&&m[1]!==null&&typeof m[1].handleEvent=="function"?m[1].handleEvent:null;if(_!==null){const y=p.get(m[1]);y!==void 0?m[1]=y:(m[1]=T=>{T.type==="error"?(Object.defineProperties(T,{type:{value:"processorerror"}}),_(T)):_(new ErrorEvent(m[0],{...T}))},p.set(_,m[1]))}}return d.call(u,"error",m[1],m[2]),d.call(u,...m)})(u.addEventListener),u.removeEventListener=(d=>(...m)=>{if(m[0]==="processorerror"){const _=p.get(m[1]);_!==void 0&&(p.delete(m[1]),m[1]=_)}return d.call(u,"error",m[1],m[2]),d.call(u,m[0],m[1],m[2])})(u.removeEventListener),l.numberOfOutputs!==0){const d=e(r,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return u.connect(d).connect(r.destination),i(u,()=>d.disconnect(),()=>d.connect(r.destination))}return u}catch(u){throw u.code===11?s():u}if(h===void 0)throw s();return Bh(l),t(r,o,h,l)},Or=(n,t)=>n===null?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(n*t))))),Uh=n=>new Promise((t,e)=>{const{port1:s,port2:i}=new MessageChannel;s.onmessage=({data:r})=>{s.close(),i.close(),t(r)},s.onmessageerror=({data:r})=>{s.close(),i.close(),e(r)},i.postMessage(n)}),Gh=async(n,t)=>{const e=await Uh(t);return new n(e)},Zh=(n,t,e,s)=>{let i=Qn.get(n);i===void 0&&(i=new WeakMap,Qn.set(n,i));const r=Gh(e,s);return i.set(t,r),r},Qh=(n,t,e,s,i,r,o,a,c,h,l,u,p)=>(f,d,m,_)=>{if(_.numberOfInputs===0&&_.numberOfOutputs===0)throw c();const y=Array.isArray(_.outputChannelCount)?_.outputChannelCount:Array.from(_.outputChannelCount);if(y.some(E=>E<1))throw c();if(y.length!==_.numberOfOutputs)throw t();if(_.channelCountMode!=="explicit")throw c();const T=_.channelCount*_.numberOfInputs,S=y.reduce((E,z)=>E+z,0),C=m.parameterDescriptors===void 0?0:m.parameterDescriptors.length;if(T+C>6||S>6)throw c();const g=new MessageChannel,w=[],x=[];for(let E=0;E<_.numberOfInputs;E+=1)w.push(o(f,{channelCount:_.channelCount,channelCountMode:_.channelCountMode,channelInterpretation:_.channelInterpretation,gain:1})),x.push(i(f,{channelCount:_.channelCount,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:_.channelCount}));const v=[];if(m.parameterDescriptors!==void 0)for(const{defaultValue:E,maxValue:z,minValue:_t,name:at}of m.parameterDescriptors){const J=r(f,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:_.parameterData[at]!==void 0?_.parameterData[at]:E===void 0?0:E});Object.defineProperties(J.offset,{defaultValue:{get:()=>E===void 0?0:E},maxValue:{get:()=>z===void 0?Et:z},minValue:{get:()=>_t===void 0?Ft:_t}}),v.push(J)}const N=s(f,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,T+C)}),O=Or(d,f.sampleRate),D=a(f,O,T+C,Math.max(1,S)),k=i(f,{channelCount:Math.max(1,S),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,S)}),R=[];for(let E=0;E<_.numberOfOutputs;E+=1)R.push(s(f,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:y[E]}));for(let E=0;E<_.numberOfInputs;E+=1){w[E].connect(x[E]);for(let z=0;z<_.channelCount;z+=1)x[E].connect(N,z,E*_.channelCount+z)}const M=new Ar(m.parameterDescriptors===void 0?[]:m.parameterDescriptors.map(({name:E},z)=>{const _t=v[z];return _t.connect(N,0,T+z),_t.start(0),[E,_t.offset]}));N.connect(D);let j=_.channelInterpretation,q=null;const V=_.numberOfOutputs===0?[D]:R,X={get bufferSize(){return O},get channelCount(){return _.channelCount},set channelCount(E){throw e()},get channelCountMode(){return _.channelCountMode},set channelCountMode(E){throw e()},get channelInterpretation(){return j},set channelInterpretation(E){for(const z of w)z.channelInterpretation=E;j=E},get context(){return D.context},get inputs(){return w},get numberOfInputs(){return _.numberOfInputs},get numberOfOutputs(){return _.numberOfOutputs},get onprocessorerror(){return q},set onprocessorerror(E){typeof q=="function"&&X.removeEventListener("processorerror",q),q=typeof E=="function"?E:null,typeof q=="function"&&X.addEventListener("processorerror",q)},get parameters(){return M},get port(){return g.port2},addEventListener(...E){return D.addEventListener(E[0],E[1],E[2])},connect:n.bind(null,V),disconnect:h.bind(null,V),dispatchEvent(...E){return D.dispatchEvent(E[0])},removeEventListener(...E){return D.removeEventListener(E[0],E[1],E[2])}},B=new Map;g.port1.addEventListener=(E=>(...z)=>{if(z[0]==="message"){const _t=typeof z[1]=="function"?z[1]:typeof z[1]=="object"&&z[1]!==null&&typeof z[1].handleEvent=="function"?z[1].handleEvent:null;if(_t!==null){const at=B.get(z[1]);at!==void 0?z[1]=at:(z[1]=J=>{l(f.currentTime,f.sampleRate,()=>_t(J))},B.set(_t,z[1]))}}return E.call(g.port1,z[0],z[1],z[2])})(g.port1.addEventListener),g.port1.removeEventListener=(E=>(...z)=>{if(z[0]==="message"){const _t=B.get(z[1]);_t!==void 0&&(B.delete(z[1]),z[1]=_t)}return E.call(g.port1,z[0],z[1],z[2])})(g.port1.removeEventListener);let Z=null;Object.defineProperty(g.port1,"onmessage",{get:()=>Z,set:E=>{typeof Z=="function"&&g.port1.removeEventListener("message",Z),Z=typeof E=="function"?E:null,typeof Z=="function"&&(g.port1.addEventListener("message",Z),g.port1.start())}}),m.prototype.port=g.port1;let G=null;Zh(f,X,m,_).then(E=>G=E);const Wt=sn(_.numberOfInputs,_.channelCount),jt=sn(_.numberOfOutputs,y),Y=m.parameterDescriptors===void 0?[]:m.parameterDescriptors.reduce((E,{name:z})=>({...E,[z]:new Float32Array(128)}),{});let it=!0;const Nt=()=>{_.numberOfOutputs>0&&D.disconnect(k);for(let E=0,z=0;E<_.numberOfOutputs;E+=1){const _t=R[E];for(let at=0;at{if(G!==null){const _t=u(X);for(let at=0;at{en(E,Y,J,T+ut,at)});for(let J=0;J<_.numberOfInputs;J+=1)for(let ut=0;ut{if(_t[ye].size>0)return L.set(ye,O/128),Ut;const Ln=L.get(ye);return Ln===void 0?[]:(Ut.every(ua=>ua.every(da=>da===0))&&(Ln===1?L.delete(ye):L.set(ye,Ln-1)),Ut)});it=l(f.currentTime+at/f.sampleRate,f.sampleRate,()=>G.process(J,jt,Y));for(let Ut=0,ye=0;Ut<_.numberOfOutputs;Ut+=1){for(let ps=0;psD.connect(Re).connect(f.destination),Qe=()=>{D.disconnect(Re),Re.disconnect()},ha=()=>{if(it){Qe(),_.numberOfOutputs>0&&D.connect(k);for(let E=0,z=0;E<_.numberOfOutputs;E+=1){const _t=R[E];for(let at=0;at{it&&(Ze(),Nt()),Me=!1};return Ze(),p(X,ha,la)},Nr=(n,t)=>{const e=n.createBiquadFilter();return yt(e,t),dt(e,t,"Q"),dt(e,t,"detune"),dt(e,t,"frequency"),dt(e,t,"gain"),rt(e,t,"type"),e},$h=(n,t)=>(e,s)=>{const i=e.createChannelMerger(s.numberOfInputs);return n!==null&&n.name==="webkitAudioContext"&&t(e,i),yt(i,s),i},Xh=n=>{const t=n.numberOfOutputs;Object.defineProperty(n,"channelCount",{get:()=>t,set:e=>{if(e!==t)throw xt()}}),Object.defineProperty(n,"channelCountMode",{get:()=>"explicit",set:e=>{if(e!=="explicit")throw xt()}}),Object.defineProperty(n,"channelInterpretation",{get:()=>"discrete",set:e=>{if(e!=="discrete")throw xt()}})},ks=(n,t)=>{const e=n.createChannelSplitter(t.numberOfOutputs);return yt(e,t),Xh(e),e},Yh=(n,t,e,s,i)=>(r,o)=>{if(r.createConstantSource===void 0)return e(r,o);const a=r.createConstantSource();return yt(a,o),dt(a,o,"offset"),t(s,()=>s(r))||ci(a),t(i,()=>i(r))||hi(a),n(r,a),a},rs=(n,t)=>(n.connect=t.connect.bind(t),n.disconnect=t.disconnect.bind(t),n),Hh=(n,t,e,s)=>(i,{offset:r,...o})=>{const a=i.createBuffer(1,2,44100),c=t(i,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),h=e(i,{...o,gain:r}),l=a.getChannelData(0);l[0]=1,l[1]=1,c.buffer=a,c.loop=!0;const u={get bufferSize(){},get channelCount(){return h.channelCount},set channelCount(d){h.channelCount=d},get channelCountMode(){return h.channelCountMode},set channelCountMode(d){h.channelCountMode=d},get channelInterpretation(){return h.channelInterpretation},set channelInterpretation(d){h.channelInterpretation=d},get context(){return h.context},get inputs(){return[]},get numberOfInputs(){return c.numberOfInputs},get numberOfOutputs(){return h.numberOfOutputs},get offset(){return h.gain},get onended(){return c.onended},set onended(d){c.onended=d},addEventListener(...d){return c.addEventListener(d[0],d[1],d[2])},dispatchEvent(...d){return c.dispatchEvent(d[0])},removeEventListener(...d){return c.removeEventListener(d[0],d[1],d[2])},start(d=0){c.start.call(c,d)},stop(d=0){c.stop.call(c,d)}},p=()=>c.connect(h),f=()=>c.disconnect(h);return n(i,c),s(rs(u,h),p,f)},Jh=(n,t)=>(e,s)=>{const i=e.createConvolver();if(yt(i,s),s.disableNormalization===i.normalize&&(i.normalize=!s.disableNormalization),rt(i,s,"buffer"),s.channelCount>2||(t(i,"channelCount",r=>()=>r.call(i),r=>o=>{if(o>2)throw n();return r.call(i,o)}),s.channelCountMode==="max"))throw n();return t(i,"channelCountMode",r=>()=>r.call(i),r=>o=>{if(o==="max")throw n();return r.call(i,o)}),i},Er=(n,t)=>{const e=n.createDelay(t.maxDelayTime);return yt(e,t),dt(e,t,"delayTime"),e},Kh=n=>(t,e)=>{const s=t.createDynamicsCompressor();if(yt(s,e),e.channelCount>2||e.channelCountMode==="max")throw n();return dt(s,e,"attack"),dt(s,e,"knee"),dt(s,e,"ratio"),dt(s,e,"release"),dt(s,e,"threshold"),s},Pt=(n,t)=>{const e=n.createGain();return yt(e,t),dt(e,t,"gain"),e},tl=n=>(t,e,s)=>{if(t.createIIRFilter===void 0)return n(t,e,s);const i=t.createIIRFilter(s.feedforward,s.feedback);return yt(i,s),i};function el(n,t){const e=t[0]*t[0]+t[1]*t[1];return[(n[0]*t[0]+n[1]*t[1])/e,(n[1]*t[0]-n[0]*t[1])/e]}function sl(n,t){return[n[0]*t[0]-n[1]*t[1],n[0]*t[1]+n[1]*t[0]]}function Ji(n,t){let e=[0,0];for(let s=n.length-1;s>=0;s-=1)e=sl(e,t),e[0]+=n[s];return e}const nl=(n,t,e,s)=>(i,r,{channelCount:o,channelCountMode:a,channelInterpretation:c,feedback:h,feedforward:l})=>{const u=Or(r,i.sampleRate),p=h instanceof Float64Array?h:new Float64Array(h),f=l instanceof Float64Array?l:new Float64Array(l),d=p.length,m=f.length,_=Math.min(d,m);if(d===0||d>20)throw s();if(p[0]===0)throw t();if(m===0||m>20)throw s();if(f[0]===0)throw t();if(p[0]!==1){for(let v=0;v{const N=v.inputBuffer,O=v.outputBuffer,D=N.numberOfChannels;for(let k=0;kn.createMediaElementSource(t.mediaElement),rl=(n,t)=>{const e=n.createMediaStreamDestination();return yt(e,t),e.numberOfOutputs===1&&Object.defineProperty(e,"numberOfOutputs",{get:()=>0}),e},ol=(n,{mediaStream:t})=>{const e=t.getAudioTracks();e.sort((r,o)=>r.ido.id?1:0);const s=e.slice(0,1),i=n.createMediaStreamSource(new MediaStream(s));return Object.defineProperty(i,"mediaStream",{value:t}),i},al=(n,t)=>(e,{mediaStreamTrack:s})=>{if(typeof e.createMediaStreamTrackSource=="function")return e.createMediaStreamTrackSource(s);const i=new MediaStream([s]),r=e.createMediaStreamSource(i);if(s.kind!=="audio")throw n();if(t(e))throw new TypeError;return r},cl=n=>n===null?null:n.hasOwnProperty("OfflineAudioContext")?n.OfflineAudioContext:n.hasOwnProperty("webkitOfflineAudioContext")?n.webkitOfflineAudioContext:null,hl=(n,t,e,s,i,r)=>(o,a)=>{const c=o.createOscillator();return yt(c,a),dt(c,a,"detune"),dt(c,a,"frequency"),a.periodicWave!==void 0?c.setPeriodicWave(a.periodicWave):rt(c,a,"type"),t(e,()=>e(o))||ci(c),t(s,()=>s(o))||r(c,o),t(i,()=>i(o))||hi(c),n(o,c),c},ll=n=>(t,e)=>{const s=t.createPanner();return s.orientationX===void 0?n(t,e):(yt(s,e),dt(s,e,"orientationX"),dt(s,e,"orientationY"),dt(s,e,"orientationZ"),dt(s,e,"positionX"),dt(s,e,"positionY"),dt(s,e,"positionZ"),rt(s,e,"coneInnerAngle"),rt(s,e,"coneOuterAngle"),rt(s,e,"coneOuterGain"),rt(s,e,"distanceModel"),rt(s,e,"maxDistance"),rt(s,e,"panningModel"),rt(s,e,"refDistance"),rt(s,e,"rolloffFactor"),s)},ul=(n,t,e,s,i,r,o,a,c,h)=>(l,{coneInnerAngle:u,coneOuterAngle:p,coneOuterGain:f,distanceModel:d,maxDistance:m,orientationX:_,orientationY:y,orientationZ:T,panningModel:S,positionX:C,positionY:g,positionZ:w,refDistance:x,rolloffFactor:v,...N})=>{const O=l.createPanner();if(N.channelCount>2||N.channelCountMode==="max")throw o();yt(O,N);const D={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},k=e(l,{...D,channelInterpretation:"speakers",numberOfInputs:6}),R=s(l,{...N,gain:1}),M=s(l,{...D,gain:1}),j=s(l,{...D,gain:0}),q=s(l,{...D,gain:0}),V=s(l,{...D,gain:0}),X=s(l,{...D,gain:0}),B=s(l,{...D,gain:0}),Z=i(l,256,6,1),G=r(l,{...D,curve:new Float32Array([1,1]),oversample:"none"});let K=[_,y,T],Wt=[C,g,w];const jt=new Float32Array(1);Z.onaudioprocess=({inputBuffer:L})=>{const Me=[c(L,jt,0),c(L,jt,1),c(L,jt,2)];Me.some((Ze,Qe)=>Ze!==K[Qe])&&(O.setOrientation(...Me),K=Me);const Re=[c(L,jt,3),c(L,jt,4),c(L,jt,5)];Re.some((Ze,Qe)=>Ze!==Wt[Qe])&&(O.setPosition(...Re),Wt=Re)},Object.defineProperty(j.gain,"defaultValue",{get:()=>0}),Object.defineProperty(q.gain,"defaultValue",{get:()=>0}),Object.defineProperty(V.gain,"defaultValue",{get:()=>0}),Object.defineProperty(X.gain,"defaultValue",{get:()=>0}),Object.defineProperty(B.gain,"defaultValue",{get:()=>0});const Y={get bufferSize(){},get channelCount(){return O.channelCount},set channelCount(L){if(L>2)throw o();R.channelCount=L,O.channelCount=L},get channelCountMode(){return O.channelCountMode},set channelCountMode(L){if(L==="max")throw o();R.channelCountMode=L,O.channelCountMode=L},get channelInterpretation(){return O.channelInterpretation},set channelInterpretation(L){R.channelInterpretation=L,O.channelInterpretation=L},get coneInnerAngle(){return O.coneInnerAngle},set coneInnerAngle(L){O.coneInnerAngle=L},get coneOuterAngle(){return O.coneOuterAngle},set coneOuterAngle(L){O.coneOuterAngle=L},get coneOuterGain(){return O.coneOuterGain},set coneOuterGain(L){if(L<0||L>1)throw t();O.coneOuterGain=L},get context(){return O.context},get distanceModel(){return O.distanceModel},set distanceModel(L){O.distanceModel=L},get inputs(){return[R]},get maxDistance(){return O.maxDistance},set maxDistance(L){if(L<0)throw new RangeError;O.maxDistance=L},get numberOfInputs(){return O.numberOfInputs},get numberOfOutputs(){return O.numberOfOutputs},get orientationX(){return M.gain},get orientationY(){return j.gain},get orientationZ(){return q.gain},get panningModel(){return O.panningModel},set panningModel(L){O.panningModel=L},get positionX(){return V.gain},get positionY(){return X.gain},get positionZ(){return B.gain},get refDistance(){return O.refDistance},set refDistance(L){if(L<0)throw new RangeError;O.refDistance=L},get rolloffFactor(){return O.rolloffFactor},set rolloffFactor(L){if(L<0)throw new RangeError;O.rolloffFactor=L},addEventListener(...L){return R.addEventListener(L[0],L[1],L[2])},dispatchEvent(...L){return R.dispatchEvent(L[0])},removeEventListener(...L){return R.removeEventListener(L[0],L[1],L[2])}};u!==Y.coneInnerAngle&&(Y.coneInnerAngle=u),p!==Y.coneOuterAngle&&(Y.coneOuterAngle=p),f!==Y.coneOuterGain&&(Y.coneOuterGain=f),d!==Y.distanceModel&&(Y.distanceModel=d),m!==Y.maxDistance&&(Y.maxDistance=m),_!==Y.orientationX.value&&(Y.orientationX.value=_),y!==Y.orientationY.value&&(Y.orientationY.value=y),T!==Y.orientationZ.value&&(Y.orientationZ.value=T),S!==Y.panningModel&&(Y.panningModel=S),C!==Y.positionX.value&&(Y.positionX.value=C),g!==Y.positionY.value&&(Y.positionY.value=g),w!==Y.positionZ.value&&(Y.positionZ.value=w),x!==Y.refDistance&&(Y.refDistance=x),v!==Y.rolloffFactor&&(Y.rolloffFactor=v),(K[0]!==1||K[1]!==0||K[2]!==0)&&O.setOrientation(...K),(Wt[0]!==0||Wt[1]!==0||Wt[2]!==0)&&O.setPosition(...Wt);const it=()=>{R.connect(O),n(R,G,0,0),G.connect(M).connect(k,0,0),G.connect(j).connect(k,0,1),G.connect(q).connect(k,0,2),G.connect(V).connect(k,0,3),G.connect(X).connect(k,0,4),G.connect(B).connect(k,0,5),k.connect(Z).connect(l.destination)},Nt=()=>{R.disconnect(O),a(R,G,0,0),G.disconnect(M),M.disconnect(k),G.disconnect(j),j.disconnect(k),G.disconnect(q),q.disconnect(k),G.disconnect(V),V.disconnect(k),G.disconnect(X),X.disconnect(k),G.disconnect(B),B.disconnect(k),k.disconnect(Z),Z.disconnect(l.destination)};return h(rs(Y,O),it,Nt)},dl=n=>(t,{disableNormalization:e,imag:s,real:i})=>{const r=s instanceof Float32Array?s:new Float32Array(s),o=i instanceof Float32Array?i:new Float32Array(i),a=t.createPeriodicWave(o,r,{disableNormalization:e});if(Array.from(s).length<2)throw n();return a},As=(n,t,e,s)=>n.createScriptProcessor(t,e,s),pl=(n,t)=>(e,s)=>{const i=s.channelCountMode;if(i==="clamped-max")throw t();if(e.createStereoPanner===void 0)return n(e,s);const r=e.createStereoPanner();return yt(r,s),dt(r,s,"pan"),Object.defineProperty(r,"channelCountMode",{get:()=>i,set:o=>{if(o!==i)throw t()}}),r},fl=(n,t,e,s,i,r)=>{const a=new Float32Array([1,1]),c=Math.PI/2,h={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},l={...h,oversample:"none"},u=(d,m,_,y)=>{const T=new Float32Array(16385),S=new Float32Array(16385);for(let N=0;N<16385;N+=1){const O=N/16384*c;T[N]=Math.cos(O),S[N]=Math.sin(O)}const C=e(d,{...h,gain:0}),g=s(d,{...l,curve:T}),w=s(d,{...l,curve:a}),x=e(d,{...h,gain:0}),v=s(d,{...l,curve:S});return{connectGraph(){m.connect(C),m.connect(w.inputs===void 0?w:w.inputs[0]),m.connect(x),w.connect(_),_.connect(g.inputs===void 0?g:g.inputs[0]),_.connect(v.inputs===void 0?v:v.inputs[0]),g.connect(C.gain),v.connect(x.gain),C.connect(y,0,0),x.connect(y,0,1)},disconnectGraph(){m.disconnect(C),m.disconnect(w.inputs===void 0?w:w.inputs[0]),m.disconnect(x),w.disconnect(_),_.disconnect(g.inputs===void 0?g:g.inputs[0]),_.disconnect(v.inputs===void 0?v:v.inputs[0]),g.disconnect(C.gain),v.disconnect(x.gain),C.disconnect(y,0,0),x.disconnect(y,0,1)}}},p=(d,m,_,y)=>{const T=new Float32Array(16385),S=new Float32Array(16385),C=new Float32Array(16385),g=new Float32Array(16385),w=Math.floor(16385/2);for(let V=0;V<16385;V+=1)if(V>w){const X=(V-w)/(16384-w)*c;T[V]=Math.cos(X),S[V]=Math.sin(X),C[V]=0,g[V]=1}else{const X=V/(16384-w)*c;T[V]=1,S[V]=0,C[V]=Math.cos(X),g[V]=Math.sin(X)}const x=t(d,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),v=e(d,{...h,gain:0}),N=s(d,{...l,curve:T}),O=e(d,{...h,gain:0}),D=s(d,{...l,curve:S}),k=s(d,{...l,curve:a}),R=e(d,{...h,gain:0}),M=s(d,{...l,curve:C}),j=e(d,{...h,gain:0}),q=s(d,{...l,curve:g});return{connectGraph(){m.connect(x),m.connect(k.inputs===void 0?k:k.inputs[0]),x.connect(v,0),x.connect(O,0),x.connect(R,1),x.connect(j,1),k.connect(_),_.connect(N.inputs===void 0?N:N.inputs[0]),_.connect(D.inputs===void 0?D:D.inputs[0]),_.connect(M.inputs===void 0?M:M.inputs[0]),_.connect(q.inputs===void 0?q:q.inputs[0]),N.connect(v.gain),D.connect(O.gain),M.connect(R.gain),q.connect(j.gain),v.connect(y,0,0),R.connect(y,0,0),O.connect(y,0,1),j.connect(y,0,1)},disconnectGraph(){m.disconnect(x),m.disconnect(k.inputs===void 0?k:k.inputs[0]),x.disconnect(v,0),x.disconnect(O,0),x.disconnect(R,1),x.disconnect(j,1),k.disconnect(_),_.disconnect(N.inputs===void 0?N:N.inputs[0]),_.disconnect(D.inputs===void 0?D:D.inputs[0]),_.disconnect(M.inputs===void 0?M:M.inputs[0]),_.disconnect(q.inputs===void 0?q:q.inputs[0]),N.disconnect(v.gain),D.disconnect(O.gain),M.disconnect(R.gain),q.disconnect(j.gain),v.disconnect(y,0,0),R.disconnect(y,0,0),O.disconnect(y,0,1),j.disconnect(y,0,1)}}},f=(d,m,_,y,T)=>{if(m===1)return u(d,_,y,T);if(m===2)return p(d,_,y,T);throw i()};return(d,{channelCount:m,channelCountMode:_,pan:y,...T})=>{if(_==="max")throw i();const S=n(d,{...T,channelCount:1,channelCountMode:_,numberOfInputs:2}),C=e(d,{...T,channelCount:m,channelCountMode:_,gain:1}),g=e(d,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:y});let{connectGraph:w,disconnectGraph:x}=f(d,m,C,g,S);Object.defineProperty(g.gain,"defaultValue",{get:()=>0}),Object.defineProperty(g.gain,"maxValue",{get:()=>1}),Object.defineProperty(g.gain,"minValue",{get:()=>-1});const v={get bufferSize(){},get channelCount(){return C.channelCount},set channelCount(k){C.channelCount!==k&&(N&&x(),{connectGraph:w,disconnectGraph:x}=f(d,k,C,g,S),N&&w()),C.channelCount=k},get channelCountMode(){return C.channelCountMode},set channelCountMode(k){if(k==="clamped-max"||k==="max")throw i();C.channelCountMode=k},get channelInterpretation(){return C.channelInterpretation},set channelInterpretation(k){C.channelInterpretation=k},get context(){return C.context},get inputs(){return[C]},get numberOfInputs(){return C.numberOfInputs},get numberOfOutputs(){return C.numberOfOutputs},get pan(){return g.gain},addEventListener(...k){return C.addEventListener(k[0],k[1],k[2])},dispatchEvent(...k){return C.dispatchEvent(k[0])},removeEventListener(...k){return C.removeEventListener(k[0],k[1],k[2])}};let N=!1;const O=()=>{w(),N=!0},D=()=>{x(),N=!1};return r(rs(v,S),O,D)}},ml=(n,t,e,s,i,r,o)=>(a,c)=>{const h=a.createWaveShaper();if(r!==null&&r.name==="webkitAudioContext"&&a.createGain().gain.automationRate===void 0)return e(a,c);yt(h,c);const l=c.curve===null||c.curve instanceof Float32Array?c.curve:new Float32Array(c.curve);if(l!==null&&l.length<2)throw t();rt(h,{curve:l},"curve"),rt(h,c,"oversample");let u=null,p=!1;return o(h,"curve",m=>()=>m.call(h),m=>_=>(m.call(h,_),p&&(s(_)&&u===null?u=n(a,h):!s(_)&&u!==null&&(u(),u=null)),_)),i(h,()=>{p=!0,s(h.curve)&&(u=n(a,h))},()=>{p=!1,u!==null&&(u(),u=null)})},_l=(n,t,e,s,i)=>(r,{curve:o,oversample:a,...c})=>{const h=r.createWaveShaper(),l=r.createWaveShaper();yt(h,c),yt(l,c);const u=e(r,{...c,gain:1}),p=e(r,{...c,gain:-1}),f=e(r,{...c,gain:1}),d=e(r,{...c,gain:-1});let m=null,_=!1,y=null;const T={get bufferSize(){},get channelCount(){return h.channelCount},set channelCount(g){u.channelCount=g,p.channelCount=g,h.channelCount=g,f.channelCount=g,l.channelCount=g,d.channelCount=g},get channelCountMode(){return h.channelCountMode},set channelCountMode(g){u.channelCountMode=g,p.channelCountMode=g,h.channelCountMode=g,f.channelCountMode=g,l.channelCountMode=g,d.channelCountMode=g},get channelInterpretation(){return h.channelInterpretation},set channelInterpretation(g){u.channelInterpretation=g,p.channelInterpretation=g,h.channelInterpretation=g,f.channelInterpretation=g,l.channelInterpretation=g,d.channelInterpretation=g},get context(){return h.context},get curve(){return y},set curve(g){if(g!==null&&g.length<2)throw t();if(g===null)h.curve=g,l.curve=g;else{const w=g.length,x=new Float32Array(w+2-w%2),v=new Float32Array(w+2-w%2);x[0]=g[0],v[0]=-g[w-1];const N=Math.ceil((w+1)/2),O=(w+1)/2-1;for(let D=1;D{u.connect(h).connect(f),u.connect(p).connect(l).connect(d).connect(f),_=!0,s(y)&&(m=n(r,u))},C=()=>{u.disconnect(h),h.disconnect(f),u.disconnect(p),p.disconnect(l),l.disconnect(d),d.disconnect(f),_=!1,m!==null&&(m(),m=null)};return i(rs(T,f),S,C)},It=()=>new DOMException("","NotSupportedError"),gl={numberOfChannels:1},yl=(n,t,e,s,i)=>class extends n{constructor(o,a,c){let h;if(typeof o=="number"&&a!==void 0&&c!==void 0)h={length:a,numberOfChannels:o,sampleRate:c};else if(typeof o=="object")h=o;else throw new Error("The given parameters are not valid.");const{length:l,numberOfChannels:u,sampleRate:p}={...gl,...h},f=s(u,l,p);t(_s,()=>_s(f))||f.addEventListener("statechange",(()=>{let d=0;const m=_=>{this._state==="running"&&(d>0?(f.removeEventListener("statechange",m),_.stopImmediatePropagation(),this._waitForThePromiseToSettle(_)):d+=1)};return m})()),super(f,u),this._length=l,this._nativeOfflineAudioContext=f,this._state=null}get length(){return this._nativeOfflineAudioContext.length===void 0?this._length:this._nativeOfflineAudioContext.length}get state(){return this._state===null?this._nativeOfflineAudioContext.state:this._state}startRendering(){return this._state==="running"?Promise.reject(e()):(this._state="running",i(this.destination,this._nativeOfflineAudioContext).finally(()=>{this._state=null,br(this)}))}_waitForThePromiseToSettle(o){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(o):setTimeout(()=>this._waitForThePromiseToSettle(o))}},vl={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},wl=(n,t,e,s,i,r,o)=>class extends n{constructor(c,h){const l=i(c),u={...vl,...h},p=e(l,u),f=r(l),d=f?s():null,m=c.sampleRate/2;super(c,!1,p,d),this._detune=t(this,f,p.detune,153600,-153600),this._frequency=t(this,f,p.frequency,m,-m),this._nativeOscillatorNode=p,this._onended=null,this._oscillatorNodeRenderer=d,this._oscillatorNodeRenderer!==null&&u.periodicWave!==void 0&&(this._oscillatorNodeRenderer.periodicWave=u.periodicWave)}get detune(){return this._detune}get frequency(){return this._frequency}get onended(){return this._onended}set onended(c){const h=typeof c=="function"?o(this,c):null;this._nativeOscillatorNode.onended=h;const l=this._nativeOscillatorNode.onended;this._onended=l!==null&&l===h?c:l}get type(){return this._nativeOscillatorNode.type}set type(c){this._nativeOscillatorNode.type=c,this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=null)}setPeriodicWave(c){this._nativeOscillatorNode.setPeriodicWave(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=c)}start(c=0){if(this._nativeOscillatorNode.start(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.start=c),this.context.state!=="closed"){ts(this);const h=()=>{this._nativeOscillatorNode.removeEventListener("ended",h),me(this)&&bs(this)};this._nativeOscillatorNode.addEventListener("ended",h)}}stop(c=0){this._nativeOscillatorNode.stop(c),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.stop=c)}},xl=(n,t,e,s,i)=>()=>{const r=new WeakMap;let o=null,a=null,c=null;const h=async(l,u)=>{let p=e(l);const f=Ot(p,u);if(!f){const d={channelCount:p.channelCount,channelCountMode:p.channelCountMode,channelInterpretation:p.channelInterpretation,detune:p.detune.value,frequency:p.frequency.value,periodicWave:o===null?void 0:o,type:p.type};p=t(u,d),a!==null&&p.start(a),c!==null&&p.stop(c)}return r.set(u,p),f?(await n(u,l.detune,p.detune),await n(u,l.frequency,p.frequency)):(await s(u,l.detune,p.detune),await s(u,l.frequency,p.frequency)),await i(l,u,p),p};return{set periodicWave(l){o=l},set start(l){a=l},set stop(l){c=l},render(l,u){const p=r.get(u);return p!==void 0?Promise.resolve(p):h(l,u)}}},bl={channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:1,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1},Tl=(n,t,e,s,i,r,o)=>class extends n{constructor(c,h){const l=i(c),u={...bl,...h},p=e(l,u),f=r(l),d=f?s():null;super(c,!1,p,d),this._nativePannerNode=p,this._orientationX=t(this,f,p.orientationX,Et,Ft),this._orientationY=t(this,f,p.orientationY,Et,Ft),this._orientationZ=t(this,f,p.orientationZ,Et,Ft),this._positionX=t(this,f,p.positionX,Et,Ft),this._positionY=t(this,f,p.positionY,Et,Ft),this._positionZ=t(this,f,p.positionZ,Et,Ft),o(this,1)}get coneInnerAngle(){return this._nativePannerNode.coneInnerAngle}set coneInnerAngle(c){this._nativePannerNode.coneInnerAngle=c}get coneOuterAngle(){return this._nativePannerNode.coneOuterAngle}set coneOuterAngle(c){this._nativePannerNode.coneOuterAngle=c}get coneOuterGain(){return this._nativePannerNode.coneOuterGain}set coneOuterGain(c){this._nativePannerNode.coneOuterGain=c}get distanceModel(){return this._nativePannerNode.distanceModel}set distanceModel(c){this._nativePannerNode.distanceModel=c}get maxDistance(){return this._nativePannerNode.maxDistance}set maxDistance(c){this._nativePannerNode.maxDistance=c}get orientationX(){return this._orientationX}get orientationY(){return this._orientationY}get orientationZ(){return this._orientationZ}get panningModel(){return this._nativePannerNode.panningModel}set panningModel(c){this._nativePannerNode.panningModel=c}get positionX(){return this._positionX}get positionY(){return this._positionY}get positionZ(){return this._positionZ}get refDistance(){return this._nativePannerNode.refDistance}set refDistance(c){this._nativePannerNode.refDistance=c}get rolloffFactor(){return this._nativePannerNode.rolloffFactor}set rolloffFactor(c){this._nativePannerNode.rolloffFactor=c}},Sl=(n,t,e,s,i,r,o,a,c,h)=>()=>{const l=new WeakMap;let u=null;const p=async(f,d)=>{let m=null,_=r(f);const y={channelCount:_.channelCount,channelCountMode:_.channelCountMode,channelInterpretation:_.channelInterpretation},T={...y,coneInnerAngle:_.coneInnerAngle,coneOuterAngle:_.coneOuterAngle,coneOuterGain:_.coneOuterGain,distanceModel:_.distanceModel,maxDistance:_.maxDistance,panningModel:_.panningModel,refDistance:_.refDistance,rolloffFactor:_.rolloffFactor},S=Ot(_,d);if("bufferSize"in _)m=s(d,{...y,gain:1});else if(!S){const C={...T,orientationX:_.orientationX.value,orientationY:_.orientationY.value,orientationZ:_.orientationZ.value,positionX:_.positionX.value,positionY:_.positionY.value,positionZ:_.positionZ.value};_=i(d,C)}if(l.set(d,m===null?_:m),m!==null){if(u===null){if(o===null)throw new Error("Missing the native OfflineAudioContext constructor.");const D=new o(6,f.context.length,d.sampleRate),k=t(D,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6});k.connect(D.destination),u=(async()=>{const R=await Promise.all([f.orientationX,f.orientationY,f.orientationZ,f.positionX,f.positionY,f.positionZ].map(async(M,j)=>{const q=e(D,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:j===0?1:0});return await a(D,M,q.offset),q}));for(let M=0;M<6;M+=1)R[M].connect(k,0,M),R[M].start(0);return h(D)})()}const C=await u,g=s(d,{...y,gain:1});await c(f,d,g);const w=[];for(let D=0;DM!==x[j])||R.some((M,j)=>M!==v[j])){x=k,v=R;const M=D/d.sampleRate;N.gain.setValueAtTime(0,M),N=s(d,{...y,gain:0}),O=i(d,{...T,orientationX:x[0],orientationY:x[1],orientationZ:x[2],positionX:v[0],positionY:v[1],positionZ:v[2]}),N.gain.setValueAtTime(1,M),g.connect(N).connect(O.inputs[0]),O.connect(m)}}return m}return S?(await n(d,f.orientationX,_.orientationX),await n(d,f.orientationY,_.orientationY),await n(d,f.orientationZ,_.orientationZ),await n(d,f.positionX,_.positionX),await n(d,f.positionY,_.positionY),await n(d,f.positionZ,_.positionZ)):(await a(d,f.orientationX,_.orientationX),await a(d,f.orientationY,_.orientationY),await a(d,f.orientationZ,_.orientationZ),await a(d,f.positionX,_.positionX),await a(d,f.positionY,_.positionY),await a(d,f.positionZ,_.positionZ)),is(_)?await c(f,d,_.inputs[0]):await c(f,d,_),_};return{render(f,d){const m=l.get(d);return m!==void 0?Promise.resolve(m):p(f,d)}}},kl={disableNormalization:!1},Al=(n,t,e,s)=>class Mr{constructor(r,o){const a=t(r),c=s({...kl,...o}),h=n(a,c);return e.add(h),h}static[Symbol.hasInstance](r){return r!==null&&typeof r=="object"&&Object.getPrototypeOf(r)===Mr.prototype||e.has(r)}},Cl=(n,t)=>(e,s,i)=>(n(s).replay(i),t(s,e,i)),Dl=(n,t,e)=>async(s,i,r)=>{const o=n(s);await Promise.all(o.activeInputs.map((a,c)=>Array.from(a).map(async([h,l])=>{const p=await t(h).render(h,i),f=s.context.destination;!e(h)&&(s!==f||!e(s))&&p.connect(r,l,c)})).reduce((a,c)=>[...a,...c],[]))},Ol=(n,t,e)=>async(s,i,r)=>{const o=t(s);await Promise.all(Array.from(o.activeInputs).map(async([a,c])=>{const l=await n(a).render(a,i);e(a)||l.connect(r,c)}))},Nl=(n,t,e,s)=>i=>n(_s,()=>_s(i))?Promise.resolve(n(s,s)).then(r=>{if(!r){const o=e(i,512,0,1);i.oncomplete=()=>{o.onaudioprocess=null,o.disconnect()},o.onaudioprocess=()=>i.currentTime,o.connect(i.destination)}return i.startRendering()}):new Promise(r=>{const o=t(i,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});i.oncomplete=a=>{o.disconnect(),r(a.renderedBuffer)},o.connect(i.destination),i.startRendering()}),El=n=>(t,e)=>{n.set(t,e)},Ml=n=>(t,e)=>n.set(t,e),Rl=(n,t,e,s,i,r,o,a)=>(c,h)=>e(c).render(c,h).then(()=>Promise.all(Array.from(s(h)).map(l=>e(l).render(l,h)))).then(()=>i(h)).then(l=>(typeof l.copyFromChannel!="function"?(o(l),ri(l)):t(r,()=>r(l))||a(l),n.add(l),l)),Il={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},Fl=(n,t,e,s,i,r)=>class extends n{constructor(a,c){const h=i(a),l={...Il,...c},u=e(h,l),p=r(h),f=p?s():null;super(a,!1,u,f),this._pan=t(this,p,u.pan)}get pan(){return this._pan}},ql=(n,t,e,s,i)=>()=>{const r=new WeakMap,o=async(a,c)=>{let h=e(a);const l=Ot(h,c);if(!l){const u={channelCount:h.channelCount,channelCountMode:h.channelCountMode,channelInterpretation:h.channelInterpretation,pan:h.pan.value};h=t(c,u)}return r.set(c,h),l?await n(c,a.pan,h.pan):await s(c,a.pan,h.pan),is(h)?await i(a,c,h.inputs[0]):await i(a,c,h),h};return{render(a,c){const h=r.get(c);return h!==void 0?Promise.resolve(h):o(a,c)}}},Vl=n=>()=>{if(n===null)return!1;try{new n({length:1,sampleRate:44100})}catch{return!1}return!0},Pl=n=>()=>{if(n===null)return!1;const e=new n(1,1,44100).createBuffer(1,1,44100);if(e.copyToChannel===void 0)return!0;const s=new Float32Array(2);try{e.copyFromChannel(s,0,0)}catch{return!1}return!0},Ll=n=>()=>{if(n===null)return!1;if(n.prototype!==void 0&&n.prototype.close!==void 0)return!0;const t=new n,e=t.close!==void 0;try{t.close()}catch{}return e},Wl=n=>()=>{if(n===null)return Promise.resolve(!1);const t=new n(1,1,44100);return new Promise(e=>{let s=!0;const i=o=>{s&&(s=!1,t.startRendering(),e(o instanceof TypeError))};let r;try{r=t.decodeAudioData(null,()=>{},i)}catch(o){i(o)}r!==void 0&&r.catch(i)})},jl=n=>()=>{if(n===null)return!1;let t;try{t=new n({latencyHint:"balanced"})}catch{return!1}return t.close(),!0},Bl=n=>()=>{if(n===null)return!1;const e=new n(1,1,44100).createGain(),s=e.connect(e)===e;return e.disconnect(e),s},zl=(n,t)=>async()=>{if(n===null)return!0;if(t===null)return!1;const e=new Blob(['let c,p;class A extends AudioWorkletProcessor{constructor(){super();this.port.onmessage=(e)=>{p=e.data;p.onmessage=()=>{p.postMessage(c);p.close()};this.port.postMessage(0)}}process(){c=1}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),s=new MessageChannel,i=new t(1,128,44100),r=URL.createObjectURL(e);let o=!1;try{await i.audioWorklet.addModule(r);const a=new n(i,"a",{numberOfOutputs:0}),c=i.createOscillator();await new Promise(h=>{a.port.onmessage=()=>h(),a.port.postMessage(s.port2,[s.port2])}),a.port.onmessage=()=>o=!0,c.connect(a),c.start(0),await i.startRendering(),o=await new Promise(h=>{s.port1.onmessage=({data:l})=>h(l===1),s.port1.postMessage(0)})}catch{}finally{s.port1.close(),URL.revokeObjectURL(r)}return o},Ul=(n,t)=>async()=>{if(n===null)return!0;if(t===null)return!1;const e=new Blob(['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),s=new t(1,128,44100),i=URL.createObjectURL(e);let r=!1,o=!1;try{await s.audioWorklet.addModule(i);const a=new n(s,"a",{numberOfOutputs:0}),c=s.createOscillator();a.port.onmessage=()=>r=!0,a.onprocessorerror=()=>o=!0,c.connect(a),c.start(0),await s.startRendering(),await new Promise(h=>setTimeout(h))}catch{}finally{URL.revokeObjectURL(i)}return r&&!o},Gl=n=>()=>{if(n===null)return!1;const e=new n(1,1,44100).createChannelMerger();if(e.channelCountMode==="max")return!0;try{e.channelCount=2}catch{return!0}return!1},Zl=n=>()=>{if(n===null)return!1;const t=new n(1,1,44100);return t.createConstantSource===void 0?!0:t.createConstantSource().offset.maxValue!==Number.POSITIVE_INFINITY},Ql=n=>()=>{if(n===null)return!1;const t=new n(1,1,44100),e=t.createConvolver();e.buffer=t.createBuffer(1,1,t.sampleRate);try{e.buffer=t.createBuffer(1,1,t.sampleRate)}catch{return!1}return!0},$l=n=>()=>{if(n===null)return!1;const e=new n(1,1,44100).createConvolver();try{e.channelCount=1}catch{return!1}return!0},Xl=n=>()=>n!==null&&n.hasOwnProperty("isSecureContext"),Yl=n=>()=>{if(n===null)return!1;const t=new n;try{return t.createMediaStreamSource(new MediaStream),!1}catch{return!0}finally{t.close()}},Hl=(n,t)=>()=>{if(t===null)return Promise.resolve(!1);const e=new t(1,1,44100),s=n(e,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return new Promise(i=>{e.oncomplete=()=>{s.disconnect(),i(e.currentTime!==0)},e.startRendering()})},Jl=n=>()=>{if(n===null)return Promise.resolve(!1);const t=new n(1,1,44100);if(t.createStereoPanner===void 0||t.createConstantSource===void 0)return Promise.resolve(!0);const e=t.createConstantSource(),s=t.createStereoPanner();return e.channelCount=1,e.offset.value=1,s.channelCount=1,e.start(),e.connect(s).connect(t.destination),t.startRendering().then(i=>i.getChannelData(0)[0]!==1)},Kl=()=>new DOMException("","UnknownError"),tu={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},eu=(n,t,e,s,i,r,o)=>class extends n{constructor(c,h){const l=i(c),u={...tu,...h},p=e(l,u),d=r(l)?s():null;super(c,!0,p,d),this._isCurveNullified=!1,this._nativeWaveShaperNode=p,o(this,1)}get curve(){return this._isCurveNullified?null:this._nativeWaveShaperNode.curve}set curve(c){if(c===null)this._isCurveNullified=!0,this._nativeWaveShaperNode.curve=new Float32Array([0,0]);else{if(c.length<2)throw t();this._isCurveNullified=!1,this._nativeWaveShaperNode.curve=c}}get oversample(){return this._nativeWaveShaperNode.oversample}set oversample(c){this._nativeWaveShaperNode.oversample=c}},su=(n,t,e)=>()=>{const s=new WeakMap,i=async(r,o)=>{let a=t(r);if(!Ot(a,o)){const h={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,curve:a.curve,oversample:a.oversample};a=n(o,h)}return s.set(o,a),is(a)?await e(r,o,a.inputs[0]):await e(r,o,a),a};return{render(r,o){const a=s.get(o);return a!==void 0?Promise.resolve(a):i(r,o)}}},nu=()=>typeof window>"u"?null:window,iu=(n,t)=>e=>{e.copyFromChannel=(s,i,r=0)=>{const o=n(r),a=n(i);if(a>=e.numberOfChannels)throw t();const c=e.length,h=e.getChannelData(a),l=s.length;for(let u=o<0?-o:0;u+o{const o=n(r),a=n(i);if(a>=e.numberOfChannels)throw t();const c=e.length,h=e.getChannelData(a),l=s.length;for(let u=o<0?-o:0;u+ot=>{t.copyFromChannel=(e=>(s,i,r=0)=>{const o=n(r),a=n(i);if(o(s,i,r=0)=>{const o=n(r),a=n(i);if(o(t,e)=>{const s=e.createBuffer(1,1,44100);t.buffer===null&&(t.buffer=s),n(t,"buffer",i=>()=>{const r=i.call(t);return r===s?null:r},i=>r=>i.call(t,r===null?s:r))},au=(n,t)=>(e,s)=>{s.channelCount=1,s.channelCountMode="explicit",Object.defineProperty(s,"channelCount",{get:()=>1,set:()=>{throw n()}}),Object.defineProperty(s,"channelCountMode",{get:()=>"explicit",set:()=>{throw n()}});const i=e.createBufferSource();t(s,()=>{const a=s.numberOfInputs;for(let c=0;ci.disconnect(s))},Rr=(n,t,e)=>n.copyFromChannel===void 0?n.getChannelData(e)[0]:(n.copyFromChannel(t,e),t[0]),Ir=n=>{if(n===null)return!1;const t=n.length;return t%2!==0?n[Math.floor(t/2)]!==0:n[t/2-1]+n[t/2]!==0},Cs=(n,t,e,s)=>{let i=n;for(;!i.hasOwnProperty(t);)i=Object.getPrototypeOf(i);const{get:r,set:o}=Object.getOwnPropertyDescriptor(i,t);Object.defineProperty(n,t,{get:e(r),set:s(o)})},cu=n=>({...n,outputChannelCount:n.outputChannelCount!==void 0?n.outputChannelCount:n.numberOfInputs===1&&n.numberOfOutputs===1?[n.channelCount]:Array.from({length:n.numberOfOutputs},()=>1)}),hu=n=>({...n,channelCount:n.numberOfOutputs}),lu=n=>{const{imag:t,real:e}=n;return t===void 0?e===void 0?{...n,imag:[0,0],real:[0,0]}:{...n,imag:Array.from(e,()=>0),real:e}:e===void 0?{...n,imag:t,real:Array.from(t,()=>0)}:{...n,imag:t,real:e}},Fr=(n,t,e)=>{try{n.setValueAtTime(t,e)}catch(s){if(s.code!==9)throw s;Fr(n,t,e+1e-7)}},uu=n=>{const t=n.createBufferSource();t.start();try{t.start()}catch{return!0}return!1},du=n=>{const t=n.createBufferSource(),e=n.createBuffer(1,1,44100);t.buffer=e;try{t.start(0,1)}catch{return!1}return!0},pu=n=>{const t=n.createBufferSource();t.start();try{t.stop()}catch{return!1}return!0},li=n=>{const t=n.createOscillator();try{t.start(-1)}catch(e){return e instanceof RangeError}return!1},qr=n=>{const t=n.createBuffer(1,1,44100),e=n.createBufferSource();e.buffer=t,e.start(),e.stop();try{return e.stop(),!0}catch{return!1}},ui=n=>{const t=n.createOscillator();try{t.stop(-1)}catch(e){return e instanceof RangeError}return!1},fu=n=>{const{port1:t,port2:e}=new MessageChannel;try{t.postMessage(n)}finally{t.close(),e.close()}},mu=()=>{try{new DOMException}catch{return!1}return!0},_u=()=>new Promise(n=>{const t=new ArrayBuffer(0),{port1:e,port2:s}=new MessageChannel;e.onmessage=({data:i})=>n(i!==null),s.postMessage(t,[t])}),gu=n=>{n.start=(t=>(e=0,s=0,i)=>{const r=n.buffer,o=r===null?s:Math.min(r.duration,s);r!==null&&o>r.duration-.5/n.context.sampleRate?t.call(n,e,0,0):t.call(n,e,o,i)})(n.start)},Vr=(n,t)=>{const e=t.createGain();n.connect(e);const s=(i=>()=>{i.call(n,e),n.removeEventListener("ended",s)})(n.disconnect);n.addEventListener("ended",s),rs(n,e),n.stop=(i=>{let r=!1;return(o=0)=>{if(r)try{i.call(n,o)}catch{e.gain.setValueAtTime(0,o)}else i.call(n,o),r=!0}})(n.stop)},os=(n,t)=>e=>{const s={value:n};return Object.defineProperties(e,{currentTarget:s,target:s}),typeof t=="function"?t.call(n,e):t.handleEvent.call(n,e)},yu=ba(We),vu=Da(We),wu=Wc(dn),Pr=new WeakMap,xu=ih(Pr),Kt=_c(new Map,new WeakMap),ne=nu(),Lr=Fh(Kt,ce),di=nh(Rt),At=Dl(Rt,di,qe),bu=Ra(Lr,nt,At),st=ah(un),wt=cl(ne),tt=Sh(wt),Wr=new WeakMap,jr=Yc(os),xe=Lh(ne),pi=wh(xe),fi=xh(ne),Br=bh(ne),es=jh(ne),ft=ic(Ta(mr),Ca(yu,vu,Js,wu,Ks,Rt,xu,xs,nt,We,me,qe,Gs),Kt,mh(Gn,Ks,Rt,nt,ms,me),ce,pn,It,qc(Js,Gn,Rt,nt,ms,st,me,tt),zc(Wr,Rt,se),jr,st,pi,fi,Br,tt,es),Tu=Ma(ft,bu,ce,Lr,st,tt),mi=new WeakSet,Ki=qh(ne),zr=Oc(new Uint32Array(1)),_i=iu(zr,ce),gi=ru(zr),Ur=Fa(mi,Kt,It,Ki,wt,Vl(Ki),_i,gi),fn=Oa(Pt),Gr=Ol(di,Ts,qe),he=Tc(Gr),as=Ph(fn,Kt,uu,du,pu,li,qr,ui,gu,ou(Cs),Vr),le=Cl(rh(Ts),Gr),Su=Pa(he,as,nt,le,At),ie=rc(Sa(_r),Wr,ii,oc,_a,ga,ya,va,wa,Bn,pr,xe,Fr),ku=Va(ft,Su,ie,xt,as,st,tt,os),Au=Qa(ft,$a,ce,xt,Wh(Pt,Cs),st,tt,At),Cu=mc(he,Nr,nt,le,At),je=Ml(Pr),Du=fc(ft,ie,Cu,pn,Nr,st,tt,je),Oe=Rh(We,fi),Ou=au(xt,Oe),Ne=$h(xe,Ou),Nu=vc(Ne,nt,At),Eu=yc(ft,Nu,Ne,st,tt),Mu=bc(ks,nt,At),Ru=xc(ft,Mu,ks,st,tt,hu),Iu=Hh(fn,as,Pt,Oe),cs=Yh(fn,Kt,Iu,li,ui),Fu=Dc(he,cs,nt,le,At),qu=Cc(ft,ie,Fu,cs,st,tt,os),Zr=Jh(It,Cs),Vu=Mc(Zr,nt,At),Pu=Ec(ft,Vu,Zr,st,tt,je),Lu=Lc(he,Er,nt,le,At),Wu=Pc(ft,ie,Lu,Er,st,tt,je),Qr=Kh(It),ju=Qc(he,Qr,nt,le,At),Bu=Zc(ft,ie,ju,Qr,It,st,tt,je),zu=eh(he,Pt,nt,le,At),Uu=th(ft,ie,zu,Pt,st,tt),Gu=nl(pn,xt,As,It),mn=Nl(Kt,Pt,As,Hl(Pt,wt)),Zu=fh(as,nt,wt,At,mn),Qu=tl(Gu),$u=dh(ft,Qu,Zu,st,tt,je),Xu=Xa(ie,Ne,cs,As,It,Rr,tt,Cs),$r=new WeakMap,Yu=Mh(Au,Xu,jr,tt,$r,os),Xr=hl(fn,Kt,li,qr,ui,Vr),Hu=xl(he,Xr,nt,le,At),Ju=wl(ft,ie,Xr,Hu,st,tt,os),Yr=kc(as),Ku=_l(Yr,xt,Pt,Ir,Oe),_n=ml(Yr,xt,Ku,Ir,Oe,xe,Cs),td=ul(Js,xt,Ne,Pt,As,_n,It,Ks,Rr,Oe),Hr=ll(td),ed=Sl(he,Ne,cs,Pt,Hr,nt,wt,le,At,mn),sd=Tl(ft,ie,Hr,ed,st,tt,je),nd=dl(ce),id=Al(nd,st,new WeakSet,lu),rd=fl(Ne,ks,Pt,_n,It,Oe),Jr=pl(rd,It),od=ql(he,Jr,nt,le,At),ad=Fl(ft,ie,Jr,od,st,tt),cd=su(_n,nt,At),hd=eu(ft,xt,_n,cd,st,tt,je),Kr=kh(ne),yi=Hc(ne),to=new WeakMap,ld=ch(to,wt),ud=Kr?Aa(Kt,It,Xc(ne),yi,Jc(xa),st,ld,tt,es,new WeakMap,new WeakMap,Ul(es,wt),ne):void 0,dd=Th(pi,tt),pd=Fc(mi,Kt,Ic,$c,new WeakSet,st,dd,Ys,_s,_i,gi),eo=dc(ud,Tu,Ur,ku,Du,Eu,Ru,qu,Pu,pd,Wu,Bu,Uu,$u,Yu,Ju,sd,id,ad,hd),fd=Ch(ft,il,st,tt),md=Oh(ft,rl,st,tt),_d=Nh(ft,ol,st,tt),gd=al(xt,tt),yd=Eh(ft,gd,st),vd=Za(eo,xt,It,Kl,fd,md,_d,yd,xe),vi=hh($r),wd=Na(vi),so=Sc(ce),xd=jc(vi),no=Uc(ce),io=new WeakMap,bd=sh(io,se),Td=Qh(so,ce,xt,Ne,ks,cs,Pt,As,It,no,yi,bd,Oe),Sd=zh(xt,Td,Pt,It,Oe),kd=uc(he,so,as,Ne,ks,cs,Pt,xd,no,yi,nt,es,wt,le,At,mn),Ad=oh(to),Cd=El(io),tr=Kr?cc(wd,ft,ie,kd,Sd,Rt,Ad,st,tt,es,cu,Cd,fu,os):void 0,Dd=Rc(It,wt),Od=Rl(mi,Kt,di,vi,mn,Ys,_i,gi),Nd=yl(eo,Kt,xt,Dd,Od),Ed=_h(un,pi),Md=gh(ni,fi),Rd=yh(ii,Br),Id=vh(un,tt),Yp=()=>Ah(Kt,Pl(wt),Ll(xe),Wl(wt),jl(xe),Bl(wt),zl(es,wt),Gl(wt),Zl(wt),Ql(wt),$l(wt),mu,Xl(ne),Yl(xe),Jl(wt),_u);function Bt(n){return n===void 0}function Q(n){return n!==void 0}function Fd(n){return typeof n=="function"}function Yt(n){return typeof n=="number"}function be(n){return Object.prototype.toString.call(n)==="[object Object]"&&n.constructor===Object}function ro(n){return typeof n=="boolean"}function Ct(n){return Array.isArray(n)}function oe(n){return typeof n=="string"}function zs(n){return oe(n)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(n)}function I(n,t){if(!n)throw new Error(t)}function Tt(n,t,e=1/0){if(!(t<=n&&n<=e))throw new RangeError(`Value must be within [${t}, ${e}], got: ${n}`)}function wi(n){!n.isOffline&&n.state!=="running"&&hs('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}let oo=!1,er=!1;function Yn(n){oo=n}function ao(n){Bt(n)&&oo&&!er&&(er=!0,hs("Events scheduled inside of scheduled callbacks should use the passed in scheduling time. See https://github.com/Tonejs/Tone.js/wiki/Accurate-Timing"))}let xi=console;function qd(n){xi=n}function co(...n){xi.log(...n)}function hs(...n){xi.warn(...n)}const Hp=Object.freeze(Object.defineProperty({__proto__:null,assert:I,assertContextRunning:wi,assertRange:Tt,assertUsedScheduleTime:ao,enterScheduledCallback:Yn,log:co,setLogger:qd,warn:hs},Symbol.toStringTag,{value:"Module"}));function Vd(n){return new vd(n)}function Pd(n,t,e){return new Nd(n,t,e)}const Mt=typeof self=="object"?self:null,Ld=Mt&&(Mt.hasOwnProperty("AudioContext")||Mt.hasOwnProperty("webkitAudioContext"));function Wd(n,t,e){return I(Q(tr),"AudioWorkletNode only works in a secure context (https or localhost)"),new(n instanceof(Mt==null?void 0:Mt.BaseAudioContext)?Mt==null?void 0:Mt.AudioWorkletNode:tr)(n,t,e)}function re(n,t,e,s){var i=arguments.length,r=i<3?t:s===null?s=Object.getOwnPropertyDescriptor(t,e):s,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,s);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(i<3?o(r):i>3?o(t,e,r):o(t,e))||r);return i>3&&r&&Object.defineProperty(t,e,r),r}function et(n,t,e,s){function i(r){return r instanceof e?r:new e(function(o){o(r)})}return new(e||(e=Promise))(function(r,o){function a(l){try{h(s.next(l))}catch(u){o(u)}}function c(l){try{h(s.throw(l))}catch(u){o(u)}}function h(l){l.done?r(l.value):i(l.value).then(a,c)}h((s=s.apply(n,t||[])).next())})}class jd{constructor(t,e,s,i){this._callback=t,this._type=e,this._minimumUpdateInterval=Math.max(128/(i||44100),.001),this.updateInterval=s,this._createClock()}_createWorker(){const t=new Blob([` + // the initial timeout time + let timeoutTime = ${(this._updateInterval*1e3).toFixed(1)}; + // onmessage callback + self.onmessage = function(msg){ + timeoutTime = parseInt(msg.data); + }; + // the tick function which posts a message + // and schedules a new tick + function tick(){ + setTimeout(tick, timeoutTime); + self.postMessage('tick'); + } + // call tick initially + tick(); + `],{type:"text/javascript"}),e=URL.createObjectURL(t),s=new Worker(e);s.onmessage=this._callback.bind(this),this._worker=s}_createTimeout(){this._timeout=setTimeout(()=>{this._createTimeout(),this._callback()},this._updateInterval*1e3)}_createClock(){if(this._type==="worker")try{this._createWorker()}catch{this._type="timeout",this._createClock()}else this._type==="timeout"&&this._createTimeout()}_disposeClock(){this._timeout&&clearTimeout(this._timeout),this._worker&&(this._worker.terminate(),this._worker.onmessage=null)}get updateInterval(){return this._updateInterval}set updateInterval(t){var e;this._updateInterval=Math.max(t,this._minimumUpdateInterval),this._type==="worker"&&((e=this._worker)===null||e===void 0||e.postMessage(this._updateInterval*1e3))}get type(){return this._type}set type(t){this._disposeClock(),this._type=t,this._createClock()}dispose(){this._disposeClock()}}function Ve(n){return Rd(n)}function Te(n){return Md(n)}function Zs(n){return Id(n)}function Xe(n){return Ed(n)}function Bd(n){return n instanceof Ur}function zd(n,t){return n==="value"||Ve(t)||Te(t)||Bd(t)}function Qt(n,...t){if(!t.length)return n;const e=t.shift();if(be(n)&&be(e))for(const s in e)zd(s,e[s])?n[s]=e[s]:be(e[s])?(n[s]||Object.assign(n,{[s]:{}}),Qt(n[s],e[s])):Object.assign(n,{[s]:e[s]});return Qt(n,...t)}function Ud(n,t){return n.length===t.length&&n.every((e,s)=>t[s]===e)}function b(n,t,e=[],s){const i={},r=Array.from(t);if(be(r[0])&&s&&!Reflect.has(r[0],s)&&(Object.keys(r[0]).some(a=>Reflect.has(n,a))||(Qt(i,{[s]:r[0]}),e.splice(e.indexOf(s),1),r.shift())),r.length===1&&be(r[0]))Qt(i,r[0]);else for(let o=0;o{Reflect.has(n,e)&&delete n[e]}),n}/** + * Tone.js + * @author Yotam Mann + * @license http://opensource.org/licenses/MIT MIT License + * @copyright 2014-2024 Yotam Mann + */class _e{constructor(){this.debug=!1,this._wasDisposed=!1}static getDefaults(){return{}}log(...t){(this.debug||Mt&&this.toString()===Mt.TONE_DEBUG_CLASS)&&co(this,...t)}dispose(){return this._wasDisposed=!0,this}get disposed(){return this._wasDisposed}toString(){return this.name}}_e.version=dr;const bi=1e-6;function ss(n,t){return n>t+bi}function Hn(n,t){return ss(n,t)||te(n,t)}function nn(n,t){return n+bithis.memory){const e=this.length-this.memory;this._timeline.splice(0,e)}return this}remove(t){const e=this._timeline.indexOf(t);return e!==-1&&this._timeline.splice(e,1),this}get(t,e="time"){const s=this._search(t,e);return s!==-1?this._timeline[s]:null}peek(){return this._timeline[0]}shift(){return this._timeline.shift()}getAfter(t,e="time"){const s=this._search(t,e);return s+10&&this._timeline[e-1].time=0?this._timeline[s-1]:null}cancel(t){if(this._timeline.length>1){let e=this._search(t);if(e>=0)if(te(this._timeline[e].time,t)){for(let s=e;s>=0&&te(this._timeline[s].time,t);s--)e=s;this._timeline=this._timeline.slice(0,e)}else this._timeline=this._timeline.slice(0,e+1);else this._timeline=[]}else this._timeline.length===1&&Hn(this._timeline[0].time,t)&&(this._timeline=[]);return this}cancelBefore(t){const e=this._search(t);return e>=0&&(this._timeline=this._timeline.slice(e+1)),this}previousEvent(t){const e=this._timeline.indexOf(t);return e>0?this._timeline[e-1]:null}_search(t,e="time"){if(this._timeline.length===0)return-1;let s=0;const i=this._timeline.length;let r=i;if(i>0&&this._timeline[i-1][e]<=t)return i-1;for(;s=0&&this._timeline[s].time>=t;)s--;return this._iterate(e,s+1),this}forEachAtTime(t,e){const s=this._search(t);if(s!==-1&&te(this._timeline[s].time,t)){let i=s;for(let r=s;r>=0&&te(this._timeline[r].time,t);r--)i=r;this._iterate(r=>{e(r)},i,s)}return this}dispose(){return super.dispose(),this._timeline=[],this}}const ho=[];function gn(n){ho.push(n)}function Zd(n){ho.forEach(t=>t(n))}const lo=[];function yn(n){lo.push(n)}function Qd(n){lo.forEach(t=>t(n))}class Ds extends _e{constructor(){super(...arguments),this.name="Emitter"}on(t,e){return t.split(/\W+/).forEach(i=>{Bt(this._events)&&(this._events={}),this._events.hasOwnProperty(i)||(this._events[i]=[]),this._events[i].push(e)}),this}once(t,e){const s=(...i)=>{e(...i),this.off(t,s)};return this.on(t,s),this}off(t,e){return t.split(/\W+/).forEach(i=>{if(Bt(this._events)&&(this._events={}),this._events.hasOwnProperty(i))if(Bt(e))this._events[i]=[];else{const r=this._events[i];for(let o=r.length-1;o>=0;o--)r[o]===e&&r.splice(o,1)}}),this}emit(t,...e){if(this._events&&this._events.hasOwnProperty(t)){const s=this._events[t].slice(0);for(let i=0,r=s.length;i{const s=Object.getOwnPropertyDescriptor(Ds.prototype,e);Object.defineProperty(t.prototype,e,s)})}dispose(){return super.dispose(),this._events=void 0,this}}class uo extends Ds{constructor(){super(...arguments),this.isOffline=!1}toJSON(){return{}}}class Os extends uo{constructor(){var t,e;super(),this.name="Context",this._constants=new Map,this._timeouts=new $t,this._timeoutIds=0,this._initialized=!1,this._closeStarted=!1,this.isOffline=!1,this._workletPromise=null;const s=b(Os.getDefaults(),arguments,["context"]);s.context?(this._context=s.context,this._latencyHint=((t=arguments[0])===null||t===void 0?void 0:t.latencyHint)||""):(this._context=Vd({latencyHint:s.latencyHint}),this._latencyHint=s.latencyHint),this._ticker=new jd(this.emit.bind(this,"tick"),s.clockSource,s.updateInterval,this._context.sampleRate),this.on("tick",this._timeoutLoop.bind(this)),this._context.onstatechange=()=>{this.emit("statechange",this.state)},this[!((e=arguments[0])===null||e===void 0)&&e.hasOwnProperty("updateInterval")?"_lookAhead":"lookAhead"]=s.lookAhead}static getDefaults(){return{clockSource:"worker",latencyHint:"interactive",lookAhead:.1,updateInterval:.05}}initialize(){return this._initialized||(Zd(this),this._initialized=!0),this}createAnalyser(){return this._context.createAnalyser()}createOscillator(){return this._context.createOscillator()}createBufferSource(){return this._context.createBufferSource()}createBiquadFilter(){return this._context.createBiquadFilter()}createBuffer(t,e,s){return this._context.createBuffer(t,e,s)}createChannelMerger(t){return this._context.createChannelMerger(t)}createChannelSplitter(t){return this._context.createChannelSplitter(t)}createConstantSource(){return this._context.createConstantSource()}createConvolver(){return this._context.createConvolver()}createDelay(t){return this._context.createDelay(t)}createDynamicsCompressor(){return this._context.createDynamicsCompressor()}createGain(){return this._context.createGain()}createIIRFilter(t,e){return this._context.createIIRFilter(t,e)}createPanner(){return this._context.createPanner()}createPeriodicWave(t,e,s){return this._context.createPeriodicWave(t,e,s)}createStereoPanner(){return this._context.createStereoPanner()}createWaveShaper(){return this._context.createWaveShaper()}createMediaStreamSource(t){return I(Xe(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamSource(t)}createMediaElementSource(t){return I(Xe(this._context),"Not available if OfflineAudioContext"),this._context.createMediaElementSource(t)}createMediaStreamDestination(){return I(Xe(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamDestination()}decodeAudioData(t){return this._context.decodeAudioData(t)}get currentTime(){return this._context.currentTime}get state(){return this._context.state}get sampleRate(){return this._context.sampleRate}get listener(){return this.initialize(),this._listener}set listener(t){I(!this._initialized,"The listener cannot be set after initialization."),this._listener=t}get transport(){return this.initialize(),this._transport}set transport(t){I(!this._initialized,"The transport cannot be set after initialization."),this._transport=t}get draw(){return this.initialize(),this._draw}set draw(t){I(!this._initialized,"Draw cannot be set after initialization."),this._draw=t}get destination(){return this.initialize(),this._destination}set destination(t){I(!this._initialized,"The destination cannot be set after initialization."),this._destination=t}createAudioWorkletNode(t,e){return Wd(this.rawContext,t,e)}addAudioWorkletModule(t){return et(this,void 0,void 0,function*(){I(Q(this.rawContext.audioWorklet),"AudioWorkletNode is only available in a secure context (https or localhost)"),this._workletPromise||(this._workletPromise=this.rawContext.audioWorklet.addModule(t)),yield this._workletPromise})}workletsAreReady(){return et(this,void 0,void 0,function*(){(yield this._workletPromise)?this._workletPromise:Promise.resolve()})}get updateInterval(){return this._ticker.updateInterval}set updateInterval(t){this._ticker.updateInterval=t}get clockSource(){return this._ticker.type}set clockSource(t){this._ticker.type=t}get lookAhead(){return this._lookAhead}set lookAhead(t){this._lookAhead=t,this.updateInterval=t?t/2:.01}get latencyHint(){return this._latencyHint}get rawContext(){return this._context}now(){return this._context.currentTime+this._lookAhead}immediate(){return this._context.currentTime}resume(){return Xe(this._context)?this._context.resume():Promise.resolve()}close(){return et(this,void 0,void 0,function*(){Xe(this._context)&&this.state!=="closed"&&!this._closeStarted&&(this._closeStarted=!0,yield this._context.close()),this._initialized&&Qd(this)})}getConstant(t){if(this._constants.has(t))return this._constants.get(t);{const e=this._context.createBuffer(1,128,this._context.sampleRate),s=e.getChannelData(0);for(let r=0;rthis._constants[t].disconnect()),this.close(),this}_timeoutLoop(){const t=this.now();let e=this._timeouts.peek();for(;this._timeouts.length&&e&&e.time<=t;)e.callback(),this._timeouts.shift(),e=this._timeouts.peek()}setTimeout(t,e){this._timeoutIds++;const s=this.now();return this._timeouts.add({callback:t,id:this._timeoutIds,time:s+e}),this._timeoutIds}clearTimeout(t){return this._timeouts.forEach(e=>{e.id===t&&this._timeouts.remove(e)}),this}clearInterval(t){return this.clearTimeout(t)}setInterval(t,e){const s=++this._timeoutIds,i=()=>{const r=this.now();this._timeouts.add({callback:()=>{t(),i()},id:s,time:r+e})};return i(),s}}class $d extends uo{constructor(){super(...arguments),this.lookAhead=0,this.latencyHint=0,this.isOffline=!1}createAnalyser(){return{}}createOscillator(){return{}}createBufferSource(){return{}}createBiquadFilter(){return{}}createBuffer(t,e,s){return{}}createChannelMerger(t){return{}}createChannelSplitter(t){return{}}createConstantSource(){return{}}createConvolver(){return{}}createDelay(t){return{}}createDynamicsCompressor(){return{}}createGain(){return{}}createIIRFilter(t,e){return{}}createPanner(){return{}}createPeriodicWave(t,e,s){return{}}createStereoPanner(){return{}}createWaveShaper(){return{}}createMediaStreamSource(t){return{}}createMediaElementSource(t){return{}}createMediaStreamDestination(){return{}}decodeAudioData(t){return Promise.resolve({})}createAudioWorkletNode(t,e){return{}}get rawContext(){return{}}addAudioWorkletModule(t){return et(this,void 0,void 0,function*(){return Promise.resolve()})}resume(){return Promise.resolve()}setTimeout(t,e){return 0}clearTimeout(t){return this}setInterval(t,e){return 0}clearInterval(t){return this}getConstant(t){return{}}get currentTime(){return 0}get state(){return{}}get sampleRate(){return 0}get listener(){return{}}get transport(){return{}}get draw(){return{}}set draw(t){}get destination(){return{}}set destination(t){}now(){return 0}immediate(){return 0}}function P(n,t){Ct(t)?t.forEach(e=>P(n,e)):Object.defineProperty(n,t,{enumerable:!0,writable:!1})}function Ns(n,t){Ct(t)?t.forEach(e=>Ns(n,e)):Object.defineProperty(n,t,{writable:!0})}const $=()=>{};class H extends _e{constructor(){super(),this.name="ToneAudioBuffer",this.onload=$;const t=b(H.getDefaults(),arguments,["url","onload","onerror"]);this.reverse=t.reverse,this.onload=t.onload,oe(t.url)?this.load(t.url).catch(t.onerror):t.url&&this.set(t.url)}static getDefaults(){return{onerror:$,onload:$,reverse:!1}}get sampleRate(){return this._buffer?this._buffer.sampleRate:ot().sampleRate}set(t){return t instanceof H?t.loaded?this._buffer=t.get():t.onload=()=>{this.set(t),this.onload(this)}:this._buffer=t,this._reversed&&this._reverse(),this}get(){return this._buffer}load(t){return et(this,void 0,void 0,function*(){const e=H.load(t).then(s=>{this.set(s),this.onload(this)});H.downloads.push(e);try{yield e}finally{const s=H.downloads.indexOf(e);H.downloads.splice(s,1)}return this})}dispose(){return super.dispose(),this._buffer=void 0,this}fromArray(t){const e=Ct(t)&&t[0].length>0,s=e?t.length:1,i=e?t[0].length:t.length,r=ot(),o=r.createBuffer(s,i,r.sampleRate),a=!e&&s===1?[t]:t;for(let c=0;ci/s),this.fromArray(e)}return this}toArray(t){if(Yt(t))return this.getChannelData(t);if(this.numberOfChannels===1)return this.toArray(0);{const e=[];for(let s=0;s0}get duration(){return this._buffer?this._buffer.duration:0}get length(){return this._buffer?this._buffer.length:0}get numberOfChannels(){return this._buffer?this._buffer.numberOfChannels:0}get reverse(){return this._reversed}set reverse(t){this._reversed!==t&&(this._reversed=t,this._reverse())}static fromArray(t){return new H().fromArray(t)}static fromUrl(t){return et(this,void 0,void 0,function*(){return yield new H().load(t)})}static load(t){return et(this,void 0,void 0,function*(){const e=t.match(/\[([^\]\[]+\|.+)\]$/);if(e){const c=e[1].split("|");let h=c[0];for(const l of c)if(H.supportsType(l)){h=l;break}t=t.replace(e[0],h)}const s=H.baseUrl===""||H.baseUrl.endsWith("/")?H.baseUrl:H.baseUrl+"/",i=document.createElement("a");i.href=s+t,i.pathname=(i.pathname+i.hash).split("/").map(encodeURIComponent).join("/");const r=yield fetch(i.href);if(!r.ok)throw new Error(`could not load url: ${t}`);const o=yield r.arrayBuffer();return yield ot().decodeAudioData(o)})}static supportsType(t){const e=t.split("."),s=e[e.length-1];return document.createElement("audio").canPlayType("audio/"+s)!==""}static loaded(){return et(this,void 0,void 0,function*(){for(yield Promise.resolve();H.downloads.length;)yield H.downloads[0]})}}H.baseUrl="";H.downloads=[];class Es extends Os{constructor(){super({clockSource:"offline",context:Zs(arguments[0])?arguments[0]:Pd(arguments[0],arguments[1]*arguments[2],arguments[2]),lookAhead:0,updateInterval:Zs(arguments[0])?128/arguments[0].sampleRate:128/arguments[2]}),this.name="OfflineContext",this._currentTime=0,this.isOffline=!0,this._duration=Zs(arguments[0])?arguments[0].length/arguments[0].sampleRate:arguments[1]}now(){return this._currentTime}get currentTime(){return this._currentTime}_renderClock(t){return et(this,void 0,void 0,function*(){let e=0;for(;this._duration-this._currentTime>=0;){this.emit("tick"),this._currentTime+=128/this.sampleRate,e++;const s=Math.floor(this.sampleRate/128);t&&e%s===0&&(yield new Promise(i=>setTimeout(i,1)))}})}render(){return et(this,arguments,void 0,function*(t=!0){yield this.workletsAreReady(),yield this._renderClock(t);const e=yield this._context.startRendering();return new H(e)})}close(){return Promise.resolve()}}const po=new $d;let Ie=po;function ot(){return Ie===po&&Ld&&Jn(new Os),Ie}function Jn(n,t=!1){t&&Ie.dispose(),Xe(n)?Ie=new Os(n):Zs(n)?Ie=new Es(n):Ie=n}function Jp(){return Ie.resume()}if(Mt&&!Mt.TONE_SILENCE_LOGGING){const t=` * Tone.js v${dr} * `;console.log(`%c${t}`,"background: #000; color: #fff")}function gs(n){return Math.pow(10,n/20)}function vn(n){return 20*(Math.log(n)/Math.LN10)}function ys(n){return Math.pow(2,n/12)}let wn=440;function Xd(){return wn}function Yd(n){wn=n}function Fe(n){return Math.round(fo(n))}function fo(n){return 69+12*Math.log2(n/wn)}function mo(n){return wn*Math.pow(2,(n-69)/12)}class Ti extends _e{constructor(t,e,s){super(),this.defaultUnits="s",this._val=e,this._units=s,this.context=t,this._expressions=this._getExpressions()}_getExpressions(){return{hz:{method:t=>this._frequencyToUnits(parseFloat(t)),regexp:/^(\d+(?:\.\d+)?)hz$/i},i:{method:t=>this._ticksToUnits(parseInt(t,10)),regexp:/^(\d+)i$/i},m:{method:t=>this._beatsToUnits(parseInt(t,10)*this._getTimeSignature()),regexp:/^(\d+)m$/i},n:{method:(t,e)=>{const s=parseInt(t,10),i=e==="."?1.5:1;return s===1?this._beatsToUnits(this._getTimeSignature())*i:this._beatsToUnits(4/s)*i},regexp:/^(\d+)n(\.?)$/i},number:{method:t=>this._expressions[this.defaultUnits].method.call(this,t),regexp:/^(\d+(?:\.\d+)?)$/},s:{method:t=>this._secondsToUnits(parseFloat(t)),regexp:/^(\d+(?:\.\d+)?)s$/},samples:{method:t=>parseInt(t,10)/this.context.sampleRate,regexp:/^(\d+)samples$/},t:{method:t=>{const e=parseInt(t,10);return this._beatsToUnits(8/(Math.floor(e)*3))},regexp:/^(\d+)t$/i},tr:{method:(t,e,s)=>{let i=0;return t&&t!=="0"&&(i+=this._beatsToUnits(this._getTimeSignature()*parseFloat(t))),e&&e!=="0"&&(i+=this._beatsToUnits(parseFloat(e))),s&&s!=="0"&&(i+=this._beatsToUnits(parseFloat(s)/4)),i},regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?$/}}}valueOf(){if(this._val instanceof Ti&&this.fromType(this._val),Bt(this._val))return this._noArg();if(oe(this._val)&&Bt(this._units)){for(const t in this._expressions)if(this._expressions[t].regexp.test(this._val.trim())){this._units=t;break}}else if(be(this._val)){let t=0;for(const e in this._val)if(Q(this._val[e])){const s=this._val[e],i=new this.constructor(this.context,e).valueOf()*s;t+=i}return t}if(Q(this._units)){const t=this._expressions[this._units],e=this._val.toString().trim().match(t.regexp);return e?t.method.apply(this,e.slice(1)):t.method.call(this,this._val)}else return oe(this._val)?parseFloat(this._val):this._val}_frequencyToUnits(t){return 1/t}_beatsToUnits(t){return 60/this._getBpm()*t}_secondsToUnits(t){return t}_ticksToUnits(t){return t*this._beatsToUnits(1)/this._getPPQ()}_noArg(){return this._now()}_getBpm(){return this.context.transport.bpm.value}_getTimeSignature(){return this.context.transport.timeSignature}_getPPQ(){return this.context.transport.PPQ}fromType(t){switch(this._units=void 0,this.defaultUnits){case"s":this._val=t.toSeconds();break;case"i":this._val=t.toTicks();break;case"hz":this._val=t.toFrequency();break;case"midi":this._val=t.toMidi();break}return this}toFrequency(){return 1/this.toSeconds()}toSamples(){return this.toSeconds()*this.context.sampleRate}toMilliseconds(){return this.toSeconds()*1e3}}class Gt extends Ti{constructor(){super(...arguments),this.name="TimeClass"}_getExpressions(){return Object.assign(super._getExpressions(),{now:{method:t=>this._now()+new this.constructor(this.context,t).valueOf(),regexp:/^\+(.+)/},quantize:{method:t=>{const e=new Gt(this.context,t).valueOf();return this._secondsToUnits(this.context.transport.nextSubdivision(e))},regexp:/^@(.+)/}})}quantize(t,e=1){const s=new this.constructor(this.context,t).valueOf(),i=this.valueOf(),a=Math.round(i/s)*s-i;return i+a*e}toNotation(){const t=this.toSeconds(),e=["1m"];for(let r=1;r<9;r++){const o=Math.pow(2,r);e.push(o+"n."),e.push(o+"n"),e.push(o+"t")}e.push("0");let s=e[0],i=new Gt(this.context,e[0]).toSeconds();return e.forEach(r=>{const o=new Gt(this.context,r).toSeconds();Math.abs(o-t)3&&(i=parseFloat(parseFloat(r).toFixed(3))),[s,e,i].join(":")}toTicks(){const t=this._beatsToUnits(1);return this.valueOf()/t*this._getPPQ()}toSeconds(){return this.valueOf()}toMidi(){return Fe(this.toFrequency())}_now(){return this.context.now()}}function Kp(n,t){return new Gt(ot(),n,t)}class qt extends Gt{constructor(){super(...arguments),this.name="Frequency",this.defaultUnits="hz"}static get A4(){return Xd()}static set A4(t){Yd(t)}_getExpressions(){return Object.assign({},super._getExpressions(),{midi:{regexp:/^(\d+(?:\.\d+)?midi)/,method(t){return this.defaultUnits==="midi"?t:qt.mtof(t)}},note:{regexp:/^([a-g]{1}(?:b|#|##|x|bb|###|#x|x#|bbb)?)(-?[0-9]+)/i,method(t,e){const i=Hd[t.toLowerCase()]+(parseInt(e,10)+1)*12;return this.defaultUnits==="midi"?i:qt.mtof(i)}},tr:{regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?/,method(t,e,s){let i=1;return t&&t!=="0"&&(i*=this._beatsToUnits(this._getTimeSignature()*parseFloat(t))),e&&e!=="0"&&(i*=this._beatsToUnits(parseFloat(e))),s&&s!=="0"&&(i*=this._beatsToUnits(parseFloat(s)/4)),i}}})}transpose(t){return new qt(this.context,this.valueOf()*ys(t))}harmonize(t){return t.map(e=>this.transpose(e))}toMidi(){return Fe(this.valueOf())}toNote(){const t=this.toFrequency(),e=Math.log2(t/qt.A4);let s=Math.round(12*e)+57;const i=Math.floor(s/12);return i<0&&(s+=-12*i),Jd[s%12]+i.toString()}toSeconds(){return 1/super.toSeconds()}toTicks(){const t=this._beatsToUnits(1),e=this.valueOf()/t;return Math.floor(e*this._getPPQ())}_noArg(){return 0}_frequencyToUnits(t){return t}_ticksToUnits(t){return 1/(t*60/(this._getBpm()*this._getPPQ()))}_beatsToUnits(t){return 1/super._beatsToUnits(t)}_secondsToUnits(t){return 1/t}static mtof(t){return mo(t)}static ftom(t){return Fe(t)}}const Hd={cbbb:-3,cbb:-2,cb:-1,c:0,"c#":1,cx:2,"c##":2,"c###":3,"cx#":3,"c#x":3,dbbb:-1,dbb:0,db:1,d:2,"d#":3,dx:4,"d##":4,"d###":5,"dx#":5,"d#x":5,ebbb:1,ebb:2,eb:3,e:4,"e#":5,ex:6,"e##":6,"e###":7,"ex#":7,"e#x":7,fbbb:2,fbb:3,fb:4,f:5,"f#":6,fx:7,"f##":7,"f###":8,"fx#":8,"f#x":8,gbbb:4,gbb:5,gb:6,g:7,"g#":8,gx:9,"g##":9,"g###":10,"gx#":10,"g#x":10,abbb:6,abb:7,ab:8,a:9,"a#":10,ax:11,"a##":11,"a###":12,"ax#":12,"a#x":12,bbbb:8,bbb:9,bb:10,b:11,"b#":12,bx:13,"b##":13,"b###":14,"bx#":14,"b#x":14},Jd=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"];function tf(n,t){return new qt(ot(),n,t)}class gt extends Gt{constructor(){super(...arguments),this.name="TransportTime"}_now(){return this.context.transport.seconds}}function ef(n,t){return new gt(ot(),n,t)}class bt extends _e{constructor(){super();const t=b(bt.getDefaults(),arguments,["context"]);this.defaultContext?this.context=this.defaultContext:this.context=t.context}static getDefaults(){return{context:ot()}}now(){return this.context.currentTime+this.context.lookAhead}immediate(){return this.context.currentTime}get sampleTime(){return 1/this.context.sampleRate}get blockTime(){return 128/this.context.sampleRate}toSeconds(t){return ao(t),new Gt(this.context,t).toSeconds()}toFrequency(t){return new qt(this.context,t).toFrequency()}toTicks(t){return new gt(this.context,t).toTicks()}_getPartialProperties(t){const e=this.get();return Object.keys(e).forEach(s=>{Bt(t[s])&&delete e[s]}),e}get(){const t=Gd(this);return Object.keys(t).forEach(e=>{if(Reflect.has(this,e)){const s=this[e];Q(s)&&Q(s.value)&&Q(s.setValueAtTime)?t[e]=s.value:s instanceof bt?t[e]=s._getPartialProperties(t[e]):Ct(s)||Yt(s)||oe(s)||ro(s)?t[e]=s:delete t[e]}}),t}set(t){return Object.keys(t).forEach(e=>{Reflect.has(this,e)&&Q(this[e])&&(this[e]&&Q(this[e].value)&&Q(this[e].setValueAtTime)?this[e].value!==t[e]&&(this[e].value=t[e]):this[e]instanceof bt?this[e].set(t[e]):this[e]=t[e])}),this}}class Ms extends $t{constructor(t="stopped"){super(),this.name="StateTimeline",this._initial=t,this.setStateAtTime(this._initial,0)}getValueAtTime(t){const e=this.get(t);return e!==null?e.state:this._initial}setStateAtTime(t,e,s){return Tt(e,0),this.add(Object.assign({},s,{state:t,time:e})),this}getLastState(t,e){const s=this._search(e);for(let i=s;i>=0;i--){const r=this._timeline[i];if(r.state===t)return r}}getNextState(t,e){const s=this._search(e);if(s!==-1)for(let i=s;i0,"timeConstant must be a number greater than 0");const r=this.toSeconds(e);return this._assertRange(i),I(isFinite(i)&&isFinite(r),`Invalid argument(s) to setTargetAtTime: ${JSON.stringify(t)}, ${JSON.stringify(e)}`),this._events.add({constant:s,time:r,type:"setTargetAtTime",value:i}),this.log(this.units,"setTargetAtTime",t,r,s),this._param.setTargetAtTime(i,r,s),this}setValueCurveAtTime(t,e,s,i=1){s=this.toSeconds(s),e=this.toSeconds(e);const r=this._fromType(t[0])*i;this.setValueAtTime(this._toType(r),e);const o=s/(t.length-1);for(let a=1;a{i.type==="cancelScheduledValues"?t.cancelScheduledValues(i.time):i.type==="setTargetAtTime"?t.setTargetAtTime(i.value,i.time,i.constant):t[i.type](i.value,i.time)}),this}setParam(t){I(this._swappable,"The Param must be assigned as 'swappable' in the constructor");const e=this.input;return e.disconnect(this._param),this.apply(t),this._param=t,e.connect(this._param),this}dispose(){return super.dispose(),this._events.dispose(),this}get defaultValue(){return this._toType(this._param.defaultValue)}_exponentialApproach(t,e,s,i,r){return s+(e-s)*Math.exp(-(r-t)/i)}_linearInterpolate(t,e,s,i,r){return e+(i-e)*((r-t)/(s-t))}_exponentialInterpolate(t,e,s,i,r){return e*Math.pow(i/e,(r-t)/(s-t))}}class A extends bt{constructor(){super(...arguments),this._internalChannels=[]}get numberOfInputs(){return Q(this.input)?Ve(this.input)||this.input instanceof U?1:this.input.numberOfInputs:0}get numberOfOutputs(){return Q(this.output)?this.output.numberOfOutputs:0}_isAudioNode(t){return Q(t)&&(t instanceof A||Te(t))}_getInternalNodes(){const t=this._internalChannels.slice(0);return this._isAudioNode(this.input)&&t.push(this.input),this._isAudioNode(this.output)&&this.input!==this.output&&t.push(this.output),t}_setChannelProperties(t){this._getInternalNodes().forEach(s=>{s.channelCount=t.channelCount,s.channelCountMode=t.channelCountMode,s.channelInterpretation=t.channelInterpretation})}_getChannelProperties(){const t=this._getInternalNodes();I(t.length>0,"ToneAudioNode does not have any internal nodes");const e=t[0];return{channelCount:e.channelCount,channelCountMode:e.channelCountMode,channelInterpretation:e.channelInterpretation}}get channelCount(){return this._getChannelProperties().channelCount}set channelCount(t){const e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelCount:t}))}get channelCountMode(){return this._getChannelProperties().channelCountMode}set channelCountMode(t){const e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelCountMode:t}))}get channelInterpretation(){return this._getChannelProperties().channelInterpretation}set channelInterpretation(t){const e=this._getChannelProperties();this._setChannelProperties(Object.assign(e,{channelInterpretation:t}))}connect(t,e=0,s=0){return Lt(this,t,e,s),this}toDestination(){return this.connect(this.context.destination),this}toMaster(){return hs("toMaster() has been renamed toDestination()"),this.toDestination()}disconnect(t,e=0,s=0){return _o(this,t,e,s),this}chain(...t){return Ht(this,...t),this}fan(...t){return t.forEach(e=>this.connect(e)),this}dispose(){return super.dispose(),Q(this.input)&&(this.input instanceof A?this.input.dispose():Te(this.input)&&this.input.disconnect()),Q(this.output)&&(this.output instanceof A?this.output.dispose():Te(this.output)&&this.output.disconnect()),this._internalChannels=[],this}}function Ht(...n){const t=n.shift();n.reduce((e,s)=>(e instanceof A?e.connect(s):Te(e)&&Lt(e,s),s),t)}function Lt(n,t,e=0,s=0){for(I(Q(n),"Cannot connect from undefined node"),I(Q(t),"Cannot connect to undefined node"),(t instanceof A||Te(t))&&I(t.numberOfInputs>0,"Cannot connect to node with no inputs"),I(n.numberOfOutputs>0,"Cannot connect from node with no outputs");t instanceof A||t instanceof U;)Q(t.input)&&(t=t.input);for(;n instanceof A;)Q(n.output)&&(n=n.output);Ve(t)?n.connect(t,e):n.connect(t,e,s)}function _o(n,t,e=0,s=0){if(Q(t))for(;t instanceof A;)t=t.input;for(;!Te(n);)Q(n.output)&&(n=n.output);Ve(t)?n.disconnect(t,e):Te(t)?n.disconnect(t,e,s):n.disconnect()}function sf(...n){const t=n.pop();Q(t)&&n.forEach(e=>Lt(e,t))}class F extends A{constructor(){const t=b(F.getDefaults(),arguments,["gain","units"]);super(t),this.name="Gain",this._gainNode=this.context.createGain(),this.input=this._gainNode,this.output=this._gainNode,this.gain=new U({context:this.context,convert:t.convert,param:this._gainNode.gain,units:t.units,value:t.gain,minValue:t.minValue,maxValue:t.maxValue}),P(this,"gain")}static getDefaults(){return Object.assign(A.getDefaults(),{convert:!0,gain:1,units:"gain"})}dispose(){return super.dispose(),this._gainNode.disconnect(),this.gain.dispose(),this}}class ns extends A{constructor(t){super(t),this.onended=$,this._startTime=-1,this._stopTime=-1,this._timeout=-1,this.output=new F({context:this.context,gain:0}),this._gainNode=this.output,this.getStateAtTime=function(e){const s=this.toSeconds(e);return this._startTime!==-1&&s>=this._startTime&&(this._stopTime===-1||s<=this._stopTime)?"started":"stopped"},this._fadeIn=t.fadeIn,this._fadeOut=t.fadeOut,this._curve=t.curve,this.onended=t.onended}static getDefaults(){return Object.assign(A.getDefaults(),{curve:"linear",fadeIn:0,fadeOut:0,onended:$})}_startGain(t,e=1){I(this._startTime===-1,"Source cannot be started more than once");const s=this.toSeconds(this._fadeIn);return this._startTime=t+s,this._startTime=Math.max(this._startTime,this.context.currentTime),s>0?(this._gainNode.gain.setValueAtTime(0,t),this._curve==="linear"?this._gainNode.gain.linearRampToValueAtTime(e,t+s):this._gainNode.gain.exponentialApproachValueAtTime(e,t,s)):this._gainNode.gain.setValueAtTime(e,t),this}stop(t){return this.log("stop",t),this._stopGain(this.toSeconds(t)),this}_stopGain(t){I(this._startTime!==-1,"'start' must be called before 'stop'"),this.cancelStop();const e=this.toSeconds(this._fadeOut);return this._stopTime=this.toSeconds(t)+e,this._stopTime=Math.max(this._stopTime,this.now()),e>0?this._curve==="linear"?this._gainNode.gain.linearRampTo(0,e,t):this._gainNode.gain.targetRampTo(0,e,t):(this._gainNode.gain.cancelAndHoldAtTime(t),this._gainNode.gain.setValueAtTime(0,t)),this.context.clearTimeout(this._timeout),this._timeout=this.context.setTimeout(()=>{const s=this._curve==="exponential"?e*2:0;this._stopSource(this.now()+s),this._onended()},this._stopTime-this.context.currentTime),this}_onended(){if(this.onended!==$&&(this.onended(this),this.onended=$,!this.context.isOffline)){const t=()=>this.dispose();typeof window.requestIdleCallback<"u"?window.requestIdleCallback(t):setTimeout(t,1e3)}}get state(){return this.getStateAtTime(this.now())}cancelStop(){return this.log("cancelStop"),I(this._startTime!==-1,"Source is not started"),this._gainNode.gain.cancelScheduledValues(this._startTime+this.sampleTime),this.context.clearTimeout(this._timeout),this._stopTime=-1,this}dispose(){return super.dispose(),this._gainNode.dispose(),this.onended=$,this}}class xn extends ns{constructor(){const t=b(xn.getDefaults(),arguments,["offset"]);super(t),this.name="ToneConstantSource",this._source=this.context.createConstantSource(),Lt(this._source,this._gainNode),this.offset=new U({context:this.context,convert:t.convert,param:this._source.offset,units:t.units,value:t.offset,minValue:t.minValue,maxValue:t.maxValue})}static getDefaults(){return Object.assign(ns.getDefaults(),{convert:!0,offset:1,units:"number"})}start(t){const e=this.toSeconds(t);return this.log("start",e),this._startGain(e),this._source.start(e),this}_stopSource(t){this._source.stop(t)}dispose(){return super.dispose(),this.state==="started"&&this.stop(),this._source.disconnect(),this.offset.dispose(),this}}class W extends A{constructor(){const t=b(W.getDefaults(),arguments,["value","units"]);super(t),this.name="Signal",this.override=!0,this.output=this._constantSource=new xn({context:this.context,convert:t.convert,offset:t.value,units:t.units,minValue:t.minValue,maxValue:t.maxValue}),this._constantSource.start(0),this.input=this._param=this._constantSource.offset}static getDefaults(){return Object.assign(A.getDefaults(),{convert:!0,units:"number",value:0})}connect(t,e=0,s=0){return bn(this,t,e,s),this}dispose(){return super.dispose(),this._param.dispose(),this._constantSource.dispose(),this}setValueAtTime(t,e){return this._param.setValueAtTime(t,e),this}getValueAtTime(t){return this._param.getValueAtTime(t)}setRampPoint(t){return this._param.setRampPoint(t),this}linearRampToValueAtTime(t,e){return this._param.linearRampToValueAtTime(t,e),this}exponentialRampToValueAtTime(t,e){return this._param.exponentialRampToValueAtTime(t,e),this}exponentialRampTo(t,e,s){return this._param.exponentialRampTo(t,e,s),this}linearRampTo(t,e,s){return this._param.linearRampTo(t,e,s),this}targetRampTo(t,e,s){return this._param.targetRampTo(t,e,s),this}exponentialApproachValueAtTime(t,e,s){return this._param.exponentialApproachValueAtTime(t,e,s),this}setTargetAtTime(t,e,s){return this._param.setTargetAtTime(t,e,s),this}setValueCurveAtTime(t,e,s,i){return this._param.setValueCurveAtTime(t,e,s,i),this}cancelScheduledValues(t){return this._param.cancelScheduledValues(t),this}cancelAndHoldAtTime(t){return this._param.cancelAndHoldAtTime(t),this}rampTo(t,e,s){return this._param.rampTo(t,e,s),this}get value(){return this._param.value}set value(t){this._param.value=t}get convert(){return this._param.convert}set convert(t){this._param.convert=t}get units(){return this._param.units}get overridden(){return this._param.overridden}set overridden(t){this._param.overridden=t}get maxValue(){return this._param.maxValue}get minValue(){return this._param.minValue}apply(t){return this._param.apply(t),this}}function bn(n,t,e,s){(t instanceof U||Ve(t)||t instanceof W&&t.override)&&(t.cancelScheduledValues(0),t.setValueAtTime(0,0),t instanceof W&&(t.overridden=!0)),Lt(n,t,e,s)}class Si extends U{constructor(){const t=b(Si.getDefaults(),arguments,["value"]);super(t),this.name="TickParam",this._events=new $t(1/0),this._multiplier=1,this._multiplier=t.multiplier,this._events.cancel(0),this._events.add({ticks:0,time:0,type:"setValueAtTime",value:this._fromType(t.value)}),this.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(U.getDefaults(),{multiplier:1,units:"hertz",value:1})}setTargetAtTime(t,e,s){e=this.toSeconds(e),this.setRampPoint(e);const i=this._fromType(t),r=this._events.get(e),o=Math.round(Math.max(1/s,1));for(let a=0;a<=o;a++){const c=s*a+e,h=this._exponentialApproach(r.time,r.value,i,s,c);this.linearRampToValueAtTime(this._toType(h),c)}return this}setValueAtTime(t,e){const s=this.toSeconds(e);super.setValueAtTime(t,e);const i=this._events.get(s),r=this._events.previousEvent(i),o=this._getTicksUntilEvent(r,s);return i.ticks=Math.max(o,0),this}linearRampToValueAtTime(t,e){const s=this.toSeconds(e);super.linearRampToValueAtTime(t,e);const i=this._events.get(s),r=this._events.previousEvent(i),o=this._getTicksUntilEvent(r,s);return i.ticks=Math.max(o,0),this}exponentialRampToValueAtTime(t,e){e=this.toSeconds(e);const s=this._fromType(t),i=this._events.get(e),r=Math.round(Math.max((e-i.time)*10,1)),o=(e-i.time)/r;for(let a=0;a<=r;a++){const c=o*a+i.time,h=this._exponentialInterpolate(i.time,i.value,e,s,c);this.linearRampToValueAtTime(this._toType(h),c)}return this}_getTicksUntilEvent(t,e){if(t===null)t={ticks:0,time:0,type:"setValueAtTime",value:0};else if(Bt(t.ticks)){const o=this._events.previousEvent(t);t.ticks=this._getTicksUntilEvent(o,t.time)}const s=this._fromType(this.getValueAtTime(t.time));let i=this._fromType(this.getValueAtTime(e));const r=this._events.get(e);return r&&r.time===e&&r.type==="setValueAtTime"&&(i=this._fromType(this.getValueAtTime(e-this.sampleTime))),.5*(e-t.time)*(s+i)+t.ticks}getTicksAtTime(t){const e=this.toSeconds(t),s=this._events.get(e);return Math.max(this._getTicksUntilEvent(s,e),0)}getDurationOfTicks(t,e){const s=this.toSeconds(e),i=this.getTicksAtTime(e);return this.getTimeOfTick(i+t)-s}getTimeOfTick(t){const e=this._events.get(t,"ticks"),s=this._events.getAfter(t,"ticks");if(e&&e.ticks===t)return e.time;if(e&&s&&s.type==="linearRampToValueAtTime"&&e.value!==s.value){const i=this._fromType(this.getValueAtTime(e.time)),o=(this._fromType(this.getValueAtTime(s.time))-i)/(s.time-e.time),a=Math.sqrt(Math.pow(i,2)-2*o*(e.ticks-t)),c=(-i+a)/o,h=(-i-a)/o;return(c>0?c:h)+e.time}else return e?e.value===0?1/0:e.time+(t-e.ticks)/e.value:t/this._initialValue}ticksToTime(t,e){return this.getDurationOfTicks(t,e)}timeToTicks(t,e){const s=this.toSeconds(e),i=this.toSeconds(t),r=this.getTicksAtTime(s);return this.getTicksAtTime(s+i)-r}_fromType(t){return this.units==="bpm"&&this.multiplier?1/(60/t/this.multiplier):super._fromType(t)}_toType(t){return this.units==="bpm"&&this.multiplier?t/this.multiplier*60:super._toType(t)}get multiplier(){return this._multiplier}set multiplier(t){const e=this.value;this._multiplier=t,this.cancelScheduledValues(0),this.setValueAtTime(e,0)}}class ki extends W{constructor(){const t=b(ki.getDefaults(),arguments,["value"]);super(t),this.name="TickSignal",this.input=this._param=new Si({context:this.context,convert:t.convert,multiplier:t.multiplier,param:this._constantSource.offset,units:t.units,value:t.value})}static getDefaults(){return Object.assign(W.getDefaults(),{multiplier:1,units:"hertz",value:1})}ticksToTime(t,e){return this._param.ticksToTime(t,e)}timeToTicks(t,e){return this._param.timeToTicks(t,e)}getTimeOfTick(t){return this._param.getTimeOfTick(t)}getDurationOfTicks(t,e){return this._param.getDurationOfTicks(t,e)}getTicksAtTime(t){return this._param.getTicksAtTime(t)}get multiplier(){return this._param.multiplier}set multiplier(t){this._param.multiplier=t}dispose(){return super.dispose(),this._param.dispose(),this}}class Ai extends bt{constructor(){const t=b(Ai.getDefaults(),arguments,["frequency"]);super(t),this.name="TickSource",this._state=new Ms,this._tickOffset=new $t,this._ticksAtTime=new $t,this._secondsAtTime=new $t,this.frequency=new ki({context:this.context,units:t.units,value:t.frequency}),P(this,"frequency"),this._state.setStateAtTime("stopped",0),this.setTicksAtTime(0,0)}static getDefaults(){return Object.assign({frequency:1,units:"hertz"},bt.getDefaults())}get state(){return this.getStateAtTime(this.now())}start(t,e){const s=this.toSeconds(t);return this._state.getValueAtTime(s)!=="started"&&(this._state.setStateAtTime("started",s),Q(e)&&this.setTicksAtTime(e,s),this._ticksAtTime.cancel(s),this._secondsAtTime.cancel(s)),this}stop(t){const e=this.toSeconds(t);if(this._state.getValueAtTime(e)==="stopped"){const s=this._state.get(e);s&&s.time>0&&(this._tickOffset.cancel(s.time),this._state.cancel(s.time))}return this._state.cancel(e),this._state.setStateAtTime("stopped",e),this.setTicksAtTime(0,e),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e),this}pause(t){const e=this.toSeconds(t);return this._state.getValueAtTime(e)==="started"&&(this._state.setStateAtTime("paused",e),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e)),this}cancel(t){return t=this.toSeconds(t),this._state.cancel(t),this._tickOffset.cancel(t),this._ticksAtTime.cancel(t),this._secondsAtTime.cancel(t),this}getTicksAtTime(t){const e=this.toSeconds(t),s=this._state.getLastState("stopped",e),i=this._ticksAtTime.get(e),r={state:"paused",time:e};this._state.add(r);let o=i||s,a=i?i.ticks:0,c=null;return this._state.forEachBetween(o.time,e+this.sampleTime,h=>{let l=o.time;const u=this._tickOffset.get(h.time);u&&u.time>=o.time&&(a=u.ticks,l=u.time),o.state==="started"&&h.state!=="started"&&(a+=this.frequency.getTicksAtTime(h.time)-this.frequency.getTicksAtTime(l),h.time!==r.time&&(c={state:h.state,time:h.time,ticks:a})),o=h}),this._state.remove(r),c&&this._ticksAtTime.add(c),a}get ticks(){return this.getTicksAtTime(this.now())}set ticks(t){this.setTicksAtTime(t,this.now())}get seconds(){return this.getSecondsAtTime(this.now())}set seconds(t){const e=this.now(),s=this.frequency.timeToTicks(t,e);this.setTicksAtTime(s,e)}getSecondsAtTime(t){t=this.toSeconds(t);const e=this._state.getLastState("stopped",t),s={state:"paused",time:t};this._state.add(s);const i=this._secondsAtTime.get(t);let r=i||e,o=i?i.seconds:0,a=null;return this._state.forEachBetween(r.time,t+this.sampleTime,c=>{let h=r.time;const l=this._tickOffset.get(c.time);l&&l.time>=r.time&&(o=l.seconds,h=l.time),r.state==="started"&&c.state!=="started"&&(o+=c.time-h,c.time!==s.time&&(a={state:c.state,time:c.time,seconds:o})),r=c}),this._state.remove(s),a&&this._secondsAtTime.add(a),o}setTicksAtTime(t,e){return e=this.toSeconds(e),this._tickOffset.cancel(e),this._tickOffset.add({seconds:this.frequency.getDurationOfTicks(t,e),ticks:t,time:e}),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e),this}getStateAtTime(t){return t=this.toSeconds(t),this._state.getValueAtTime(t)}getTimeOfTick(t,e=this.now()){const s=this._tickOffset.get(e),i=this._state.get(e),r=Math.max(s.time,i.time),o=this.frequency.getTicksAtTime(r)+t-s.ticks;return this.frequency.getTimeOfTick(o)}forEachTickBetween(t,e,s){let i=this._state.get(t);this._state.forEachBetween(t,e,o=>{i&&i.state==="started"&&o.state!=="started"&&this.forEachTickBetween(Math.max(i.time,t),o.time-this.sampleTime,s),i=o});let r=null;if(i&&i.state==="started"){const o=Math.max(i.time,t),a=this.frequency.getTicksAtTime(o),c=this.frequency.getTicksAtTime(i.time),h=a-c;let l=Math.ceil(h)-h;l=te(l,1)?0:l;let u=this.frequency.getTimeOfTick(a+l);for(;u{switch(s.state){case"started":const i=this._tickSource.getTicksAtTime(s.time);this.emit("start",s.time,i);break;case"stopped":s.time!==0&&this.emit("stop",s.time);break;case"paused":this.emit("pause",s.time);break}}),this._tickSource.forEachTickBetween(t,e,(s,i)=>{this.callback(s,i)}))}getStateAtTime(t){const e=this.toSeconds(t);return this._state.getValueAtTime(e)}dispose(){return super.dispose(),this.context.off("tick",this._boundLoop),this._tickSource.dispose(),this._state.dispose(),this}}Ds.mixin(Rs);class Xt extends A{constructor(){const t=b(Xt.getDefaults(),arguments,["delayTime","maxDelay"]);super(t),this.name="Delay";const e=this.toSeconds(t.maxDelay);this._maxDelay=Math.max(e,this.toSeconds(t.delayTime)),this._delayNode=this.input=this.output=this.context.createDelay(e),this.delayTime=new U({context:this.context,param:this._delayNode.delayTime,units:"time",value:t.delayTime,minValue:0,maxValue:this.maxDelay}),P(this,"delayTime")}static getDefaults(){return Object.assign(A.getDefaults(),{delayTime:0,maxDelay:1})}get maxDelay(){return this._maxDelay}dispose(){return super.dispose(),this._delayNode.disconnect(),this.delayTime.dispose(),this}}class Ee extends A{constructor(){const t=b(Ee.getDefaults(),arguments,["volume"]);super(t),this.name="Volume",this.input=this.output=new F({context:this.context,gain:t.volume,units:"decibels"}),this.volume=this.output.gain,P(this,"volume"),this._unmutedVolume=t.volume,this.mute=t.mute}static getDefaults(){return Object.assign(A.getDefaults(),{mute:!1,volume:0})}get mute(){return this.volume.value===-1/0}set mute(t){!this.mute&&t?(this._unmutedVolume=this.volume.value,this.volume.value=-1/0):this.mute&&!t&&(this.volume.value=this._unmutedVolume)}dispose(){return super.dispose(),this.input.dispose(),this.volume.dispose(),this}}class Ci extends A{constructor(){const t=b(Ci.getDefaults(),arguments);super(t),this.name="Destination",this.input=new Ee({context:this.context}),this.output=new F({context:this.context}),this.volume=this.input.volume,Ht(this.input,this.output,this.context.rawContext.destination),this.mute=t.mute,this._internalChannels=[this.input,this.context.rawContext.destination,this.output]}static getDefaults(){return Object.assign(A.getDefaults(),{mute:!1,volume:0})}get mute(){return this.input.mute}set mute(t){this.input.mute=t}chain(...t){return this.input.disconnect(),t.unshift(this.input),t.push(this.output),Ht(...t),this}get maxChannelCount(){return this.context.rawContext.destination.maxChannelCount}dispose(){return super.dispose(),this.volume.dispose(),this}}gn(n=>{n.destination=new Ci({context:n})});yn(n=>{n.destination.dispose()});class Kd extends A{constructor(){super(...arguments),this.name="Listener",this.positionX=new U({context:this.context,param:this.context.rawContext.listener.positionX}),this.positionY=new U({context:this.context,param:this.context.rawContext.listener.positionY}),this.positionZ=new U({context:this.context,param:this.context.rawContext.listener.positionZ}),this.forwardX=new U({context:this.context,param:this.context.rawContext.listener.forwardX}),this.forwardY=new U({context:this.context,param:this.context.rawContext.listener.forwardY}),this.forwardZ=new U({context:this.context,param:this.context.rawContext.listener.forwardZ}),this.upX=new U({context:this.context,param:this.context.rawContext.listener.upX}),this.upY=new U({context:this.context,param:this.context.rawContext.listener.upY}),this.upZ=new U({context:this.context,param:this.context.rawContext.listener.upZ})}static getDefaults(){return Object.assign(A.getDefaults(),{positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:-1,upX:0,upY:1,upZ:0})}dispose(){return super.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this.forwardX.dispose(),this.forwardY.dispose(),this.forwardZ.dispose(),this.upX.dispose(),this.upY.dispose(),this.upZ.dispose(),this}}gn(n=>{n.listener=new Kd({context:n})});yn(n=>{n.listener.dispose()});function nf(n,t){return et(this,arguments,void 0,function*(e,s,i=2,r=ot().sampleRate){const o=ot(),a=new Es(i,s,r);Jn(a),yield e(a);const c=a.render();Jn(o);const h=yield c;return new H(h)})}class Is extends _e{constructor(){super(),this.name="ToneAudioBuffers",this._buffers=new Map,this._loadingCount=0;const t=b(Is.getDefaults(),arguments,["urls","onload","baseUrl"],"urls");this.baseUrl=t.baseUrl,Object.keys(t.urls).forEach(e=>{this._loadingCount++;const s=t.urls[e];this.add(e,s,this._bufferLoaded.bind(this,t.onload),t.onerror)})}static getDefaults(){return{baseUrl:"",onerror:$,onload:$,urls:{}}}has(t){return this._buffers.has(t.toString())}get(t){return I(this.has(t),`ToneAudioBuffers has no buffer named: ${t}`),this._buffers.get(t.toString())}_bufferLoaded(t){this._loadingCount--,this._loadingCount===0&&t&&t()}get loaded(){return Array.from(this._buffers).every(([t,e])=>e.loaded)}add(t,e,s=$,i=$){return oe(e)?(this.baseUrl&&e.trim().substring(0,11).toLowerCase()==="data:audio/"&&(this.baseUrl=""),this._buffers.set(t.toString(),new H(this.baseUrl+e,s,i))):this._buffers.set(t.toString(),new H(e,s,i)),this}dispose(){return super.dispose(),this._buffers.forEach(t=>t.dispose()),this._buffers.clear(),this}}class vs extends qt{constructor(){super(...arguments),this.name="MidiClass",this.defaultUnits="midi"}_frequencyToUnits(t){return Fe(super._frequencyToUnits(t))}_ticksToUnits(t){return Fe(super._ticksToUnits(t))}_beatsToUnits(t){return Fe(super._beatsToUnits(t))}_secondsToUnits(t){return Fe(super._secondsToUnits(t))}toMidi(){return this.valueOf()}toFrequency(){return mo(this.toMidi())}transpose(t){return new vs(this.context,this.toMidi()+t)}}function rf(n,t){return new vs(ot(),n,t)}class ct extends gt{constructor(){super(...arguments),this.name="Ticks",this.defaultUnits="i"}_now(){return this.context.transport.ticks}_beatsToUnits(t){return this._getPPQ()*t}_secondsToUnits(t){return Math.floor(t/(60/this._getBpm())*this._getPPQ())}_ticksToUnits(t){return t}toTicks(){return this.valueOf()}toSeconds(){return this.valueOf()/this._getPPQ()*(60/this._getBpm())}}function of(n,t){return new ct(ot(),n,t)}class tp extends bt{constructor(){super(...arguments),this.name="Draw",this.expiration=.25,this.anticipation=.008,this._events=new $t,this._boundDrawLoop=this._drawLoop.bind(this),this._animationFrame=-1}schedule(t,e){return this._events.add({callback:t,time:this.toSeconds(e)}),this._events.length===1&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop)),this}cancel(t){return this._events.cancel(this.toSeconds(t)),this}_drawLoop(){const t=this.context.currentTime;for(;this._events.length&&this._events.peek().time-this.anticipation<=t;){const e=this._events.shift();e&&t-e.time<=this.expiration&&e.callback()}this._events.length>0&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop))}dispose(){return super.dispose(),this._events.dispose(),cancelAnimationFrame(this._animationFrame),this}}gn(n=>{n.draw=new tp({context:n})});yn(n=>{n.draw.dispose()});class ep extends _e{constructor(){super(...arguments),this.name="IntervalTimeline",this._root=null,this._length=0}add(t){I(Q(t.time),"Events must have a time property"),I(Q(t.duration),"Events must have a duration parameter"),t.time=t.time.valueOf();let e=new sp(t.time,t.time+t.duration,t);for(this._root===null?this._root=e:this._root.insert(e),this._length++;e!==null;)e.updateHeight(),e.updateMax(),this._rebalance(e),e=e.parent;return this}remove(t){if(this._root!==null){const e=[];this._root.search(t.time,e);for(const s of e)if(s.event===t){this._removeNode(s),this._length--;break}}return this}get length(){return this._length}cancel(t){return this.forEachFrom(t,e=>this.remove(e)),this}_setRoot(t){this._root=t,this._root!==null&&(this._root.parent=null)}_replaceNodeInParent(t,e){t.parent!==null?(t.isLeftChild()?t.parent.left=e:t.parent.right=e,this._rebalance(t.parent)):this._setRoot(e)}_removeNode(t){if(t.left===null&&t.right===null)this._replaceNodeInParent(t,null);else if(t.right===null)this._replaceNodeInParent(t,t.left);else if(t.left===null)this._replaceNodeInParent(t,t.right);else{const e=t.getBalance();let s,i=null;if(e>0)if(t.left.right===null)s=t.left,s.right=t.right,i=s;else{for(s=t.left.right;s.right!==null;)s=s.right;s.parent&&(s.parent.right=s.left,i=s.parent,s.left=t.left,s.right=t.right)}else if(t.right.left===null)s=t.right,s.left=t.left,i=s;else{for(s=t.right.left;s.left!==null;)s=s.left;s.parent&&(s.parent.left=s.right,i=s.parent,s.left=t.left,s.right=t.right)}t.parent!==null?t.isLeftChild()?t.parent.left=s:t.parent.right=s:this._setRoot(s),i&&this._rebalance(i)}t.dispose()}_rotateLeft(t){const e=t.parent,s=t.isLeftChild(),i=t.right;i&&(t.right=i.left,i.left=t),e!==null?s?e.left=i:e.right=i:this._setRoot(i)}_rotateRight(t){const e=t.parent,s=t.isLeftChild(),i=t.left;i&&(t.left=i.right,i.right=t),e!==null?s?e.left=i:e.right=i:this._setRoot(i)}_rebalance(t){const e=t.getBalance();e>1&&t.left?t.left.getBalance()<0?this._rotateLeft(t.left):this._rotateRight(t):e<-1&&t.right&&(t.right.getBalance()>0?this._rotateRight(t.right):this._rotateLeft(t))}get(t){if(this._root!==null){const e=[];if(this._root.search(t,e),e.length>0){let s=e[0];for(let i=1;is.low&&(s=e[i]);return s.event}}return null}forEach(t){if(this._root!==null){const e=[];this._root.traverse(s=>e.push(s)),e.forEach(s=>{s.event&&t(s.event)})}return this}forEachAtTime(t,e){if(this._root!==null){const s=[];this._root.search(t,s),s.forEach(i=>{i.event&&e(i.event)})}return this}forEachFrom(t,e){if(this._root!==null){const s=[];this._root.searchAfter(t,s),s.forEach(i=>{i.event&&e(i.event)})}return this}dispose(){return super.dispose(),this._root!==null&&this._root.traverse(t=>t.dispose()),this._root=null,this}}class sp{constructor(t,e,s){this._left=null,this._right=null,this.parent=null,this.height=0,this.event=s,this.low=t,this.high=e,this.max=this.high}insert(t){t.low<=this.low?this.left===null?this.left=t:this.left.insert(t):this.right===null?this.right=t:this.right.insert(t)}search(t,e){t>this.max||(this.left!==null&&this.left.search(t,e),this.low<=t&&this.high>t&&e.push(this),!(this.low>t)&&this.right!==null&&this.right.search(t,e))}searchAfter(t,e){this.low>=t&&(e.push(this),this.left!==null&&this.left.searchAfter(t,e)),this.right!==null&&this.right.searchAfter(t,e)}traverse(t){t(this),this.left!==null&&this.left.traverse(t),this.right!==null&&this.right.traverse(t)}updateHeight(){this.left!==null&&this.right!==null?this.height=Math.max(this.left.height,this.right.height)+1:this.right!==null?this.height=this.right.height+1:this.left!==null?this.height=this.left.height+1:this.height=0}updateMax(){this.max=this.high,this.left!==null&&(this.max=Math.max(this.max,this.left.max)),this.right!==null&&(this.max=Math.max(this.max,this.right.max))}getBalance(){let t=0;return this.left!==null&&this.right!==null?t=this.left.height-this.right.height:this.left!==null?t=this.left.height+1:this.right!==null&&(t=-(this.right.height+1)),t}isLeftChild(){return this.parent!==null&&this.parent.left===this}get left(){return this._left}set left(t){this._left=t,t!==null&&(t.parent=this),this.updateHeight(),this.updateMax()}get right(){return this._right}set right(t){this._right=t,t!==null&&(t.parent=this),this.updateHeight(),this.updateMax()}dispose(){this.parent=null,this._left=null,this._right=null,this.event=null}}const af=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));class np extends _e{constructor(t){super(),this.name="TimelineValue",this._timeline=new $t({memory:10}),this._initialValue=t}set(t,e){return this._timeline.add({value:t,time:e}),this}get(t){const e=this._timeline.get(t);return e?e.value:this._initialValue}}class zt extends A{constructor(){super(b(zt.getDefaults(),arguments,["context"]))}connect(t,e=0,s=0){return bn(this,t,e,s),this}}class ue extends zt{constructor(){const t=b(ue.getDefaults(),arguments,["mapping","length"]);super(t),this.name="WaveShaper",this._shaper=this.context.createWaveShaper(),this.input=this._shaper,this.output=this._shaper,Ct(t.mapping)||t.mapping instanceof Float32Array?this.curve=Float32Array.from(t.mapping):Fd(t.mapping)&&this.setMap(t.mapping,t.length)}static getDefaults(){return Object.assign(W.getDefaults(),{length:1024})}setMap(t,e=1024){const s=new Float32Array(e);for(let i=0,r=e;is.includes(t));I(e,"oversampling must be either 'none', '2x', or '4x'"),this._shaper.oversample=t}dispose(){return super.dispose(),this._shaper.disconnect(),this}}class Fs extends zt{constructor(){const t=b(Fs.getDefaults(),arguments,["value"]);super(t),this.name="Pow",this._exponentScaler=this.input=this.output=new ue({context:this.context,mapping:this._expFunc(t.value),length:8192}),this._exponent=t.value}static getDefaults(){return Object.assign(zt.getDefaults(),{value:1})}_expFunc(t){return e=>Math.pow(Math.abs(e),t)}get value(){return this._exponent}set value(t){this._exponent=t,this._exponentScaler.setMap(this._expFunc(this._exponent))}dispose(){return super.dispose(),this._exponentScaler.dispose(),this}}class ke{constructor(t,e){this.id=ke._eventId++,this._remainderTime=0;const s=Object.assign(ke.getDefaults(),e);this.transport=t,this.callback=s.callback,this._once=s.once,this.time=Math.floor(s.time),this._remainderTime=s.time-this.time}static getDefaults(){return{callback:$,once:!1,time:0}}get floatTime(){return this.time+this._remainderTime}invoke(t){if(this.callback){const e=this.transport.bpm.getDurationOfTicks(1,t);this.callback(t+this._remainderTime*e),this._once&&this.transport.clear(this.id)}}dispose(){return this.callback=void 0,this}}ke._eventId=0;class Di extends ke{constructor(t,e){super(t,e),this._currentId=-1,this._nextId=-1,this._nextTick=this.time,this._boundRestart=this._restart.bind(this);const s=Object.assign(Di.getDefaults(),e);this.duration=s.duration,this._interval=s.interval,this._nextTick=s.time,this.transport.on("start",this._boundRestart),this.transport.on("loopStart",this._boundRestart),this.transport.on("ticks",this._boundRestart),this.context=this.transport.context,this._restart()}static getDefaults(){return Object.assign({},ke.getDefaults(),{duration:1/0,interval:1,once:!1})}invoke(t){this._createEvents(t),super.invoke(t)}_createEvent(){return nn(this._nextTick,this.floatTime+this.duration)?this.transport.scheduleOnce(this.invoke.bind(this),new ct(this.context,this._nextTick).toSeconds()):-1}_createEvents(t){nn(this._nextTick+this._interval,this.floatTime+this.duration)&&(this._nextTick+=this._interval,this._currentId=this._nextId,this._nextId=this.transport.scheduleOnce(this.invoke.bind(this),new ct(this.context,this._nextTick).toSeconds()))}_restart(t){this.transport.clear(this._currentId),this.transport.clear(this._nextId),this._nextTick=this.floatTime;const e=this.transport.getTicksAtTime(t);ss(e,this.time)&&(this._nextTick=this.floatTime+Math.ceil((e-this.floatTime)/this._interval)*this._interval),this._currentId=this._createEvent(),this._nextTick+=this._interval,this._nextId=this._createEvent()}dispose(){return super.dispose(),this.transport.clear(this._currentId),this.transport.clear(this._nextId),this.transport.off("start",this._boundRestart),this.transport.off("loopStart",this._boundRestart),this.transport.off("ticks",this._boundRestart),this}}class Tn extends bt{constructor(){const t=b(Tn.getDefaults(),arguments);super(t),this.name="Transport",this._loop=new np(!1),this._loopStart=0,this._loopEnd=0,this._scheduledEvents={},this._timeline=new $t,this._repeatedEvents=new ep,this._syncedSignals=[],this._swingAmount=0,this._ppq=t.ppq,this._clock=new Rs({callback:this._processTick.bind(this),context:this.context,frequency:0,units:"bpm"}),this._bindClockEvents(),this.bpm=this._clock.frequency,this._clock.frequency.multiplier=t.ppq,this.bpm.setValueAtTime(t.bpm,0),P(this,"bpm"),this._timeSignature=t.timeSignature,this._swingTicks=t.ppq/2}static getDefaults(){return Object.assign(bt.getDefaults(),{bpm:120,loopEnd:"4m",loopStart:0,ppq:192,swing:0,swingSubdivision:"8n",timeSignature:4})}_processTick(t,e){if(this._loop.get(t)&&e>=this._loopEnd&&(this.emit("loopEnd",t),this._clock.setTicksAtTime(this._loopStart,t),e=this._loopStart,this.emit("loopStart",t,this._clock.getSecondsAtTime(t)),this.emit("loop",t)),this._swingAmount>0&&e%this._ppq!==0&&e%(this._swingTicks*2)!==0){const s=e%(this._swingTicks*2)/(this._swingTicks*2),i=Math.sin(s*Math.PI)*this._swingAmount;t+=new ct(this.context,this._swingTicks*2/3).toSeconds()*i}Yn(!0),this._timeline.forEachAtTime(e,s=>s.invoke(t)),Yn(!1)}schedule(t,e){const s=new ke(this,{callback:t,time:new gt(this.context,e).toTicks()});return this._addEvent(s,this._timeline)}scheduleRepeat(t,e,s,i=1/0){const r=new Di(this,{callback:t,duration:new Gt(this.context,i).toTicks(),interval:new Gt(this.context,e).toTicks(),time:new gt(this.context,s).toTicks()});return this._addEvent(r,this._repeatedEvents)}scheduleOnce(t,e){const s=new ke(this,{callback:t,once:!0,time:new gt(this.context,e).toTicks()});return this._addEvent(s,this._timeline)}clear(t){if(this._scheduledEvents.hasOwnProperty(t)){const e=this._scheduledEvents[t.toString()];e.timeline.remove(e.event),e.event.dispose(),delete this._scheduledEvents[t.toString()]}return this}_addEvent(t,e){return this._scheduledEvents[t.id.toString()]={event:t,timeline:e},e.add(t),t.id}cancel(t=0){const e=this.toTicks(t);return this._timeline.forEachFrom(e,s=>this.clear(s.id)),this._repeatedEvents.forEachFrom(e,s=>this.clear(s.id)),this}_bindClockEvents(){this._clock.on("start",(t,e)=>{e=new ct(this.context,e).toSeconds(),this.emit("start",t,e)}),this._clock.on("stop",t=>{this.emit("stop",t)}),this._clock.on("pause",t=>{this.emit("pause",t)})}get state(){return this._clock.getStateAtTime(this.now())}start(t,e){this.context.resume();let s;return Q(e)&&(s=this.toTicks(e)),this._clock.start(t,s),this}stop(t){return this._clock.stop(t),this}pause(t){return this._clock.pause(t),this}toggle(t){return t=this.toSeconds(t),this._clock.getStateAtTime(t)!=="started"?this.start(t):this.stop(t),this}get timeSignature(){return this._timeSignature}set timeSignature(t){Ct(t)&&(t=t[0]/t[1]*4),this._timeSignature=t}get loopStart(){return new Gt(this.context,this._loopStart,"i").toSeconds()}set loopStart(t){this._loopStart=this.toTicks(t)}get loopEnd(){return new Gt(this.context,this._loopEnd,"i").toSeconds()}set loopEnd(t){this._loopEnd=this.toTicks(t)}get loop(){return this._loop.get(this.now())}set loop(t){this._loop.set(t,this.now())}setLoopPoints(t,e){return this.loopStart=t,this.loopEnd=e,this}get swing(){return this._swingAmount}set swing(t){this._swingAmount=t}get swingSubdivision(){return new ct(this.context,this._swingTicks).toNotation()}set swingSubdivision(t){this._swingTicks=this.toTicks(t)}get position(){const t=this.now(),e=this._clock.getTicksAtTime(t);return new ct(this.context,e).toBarsBeatsSixteenths()}set position(t){const e=this.toTicks(t);this.ticks=e}get seconds(){return this._clock.seconds}set seconds(t){const e=this.now(),s=this._clock.frequency.timeToTicks(t,e);this.ticks=s}get progress(){if(this.loop){const t=this.now();return(this._clock.getTicksAtTime(t)-this._loopStart)/(this._loopEnd-this._loopStart)}else return 0}get ticks(){return this._clock.ticks}set ticks(t){if(this._clock.ticks!==t){const e=this.now();if(this.state==="started"){const s=this._clock.getTicksAtTime(e),i=this._clock.frequency.getDurationOfTicks(Math.ceil(s)-s,e),r=e+i;this.emit("stop",r),this._clock.setTicksAtTime(t,r),this.emit("start",r,this._clock.getSecondsAtTime(r))}else this.emit("ticks",e),this._clock.setTicksAtTime(t,e)}}getTicksAtTime(t){return this._clock.getTicksAtTime(t)}getSecondsAtTime(t){return this._clock.getSecondsAtTime(t)}get PPQ(){return this._clock.frequency.multiplier}set PPQ(t){this._clock.frequency.multiplier=t}nextSubdivision(t){if(t=this.toTicks(t),this.state!=="started")return 0;{const e=this.now(),s=this.getTicksAtTime(e),i=t-s%t;return this._clock.nextTickTime(i,e)}}syncSignal(t,e){const s=this.now();let i=this.bpm,r=1/(60/i.getValueAtTime(s)/this.PPQ),o=[];if(t.units==="time"){const c=.015625/r,h=new F(c),l=new Fs(-1),u=new F(c);i.chain(h,l,u),i=u,r=1/r,o=[h,l,u]}e||(t.getValueAtTime(s)!==0?e=t.getValueAtTime(s)/r:e=0);const a=new F(e);return i.connect(a),a.connect(t._param),o.push(a),this._syncedSignals.push({initial:t.value,nodes:o,signal:t}),t.value=0,this}unsyncSignal(t){for(let e=this._syncedSignals.length-1;e>=0;e--){const s=this._syncedSignals[e];s.signal===t&&(s.nodes.forEach(i=>i.dispose()),s.signal.value=s.initial,this._syncedSignals.splice(e,1))}return this}dispose(){return super.dispose(),this._clock.dispose(),Ns(this,"bpm"),this._timeline.dispose(),this._repeatedEvents.dispose(),this}}Ds.mixin(Tn);gn(n=>{n.transport=new Tn({context:n})});yn(n=>{n.transport.dispose()});class pt extends A{constructor(t){super(t),this.input=void 0,this._state=new Ms("stopped"),this._synced=!1,this._scheduled=[],this._syncedStart=$,this._syncedStop=$,this._state.memory=100,this._state.increasing=!0,this._volume=this.output=new Ee({context:this.context,mute:t.mute,volume:t.volume}),this.volume=this._volume.volume,P(this,"volume"),this.onstop=t.onstop}static getDefaults(){return Object.assign(A.getDefaults(),{mute:!1,onstop:$,volume:0})}get state(){return this._synced?this.context.transport.state==="started"?this._state.getValueAtTime(this.context.transport.seconds):"stopped":this._state.getValueAtTime(this.now())}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}_clampToCurrentTime(t){return this._synced?t:Math.max(t,this.context.currentTime)}start(t,e,s){let i=Bt(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t);if(i=this._clampToCurrentTime(i),!this._synced&&this._state.getValueAtTime(i)==="started")I(ss(i,this._state.get(i).time),"Start time must be strictly greater than previous start time"),this._state.cancel(i),this._state.setStateAtTime("started",i),this.log("restart",i),this.restart(i,e,s);else if(this.log("start",i),this._state.setStateAtTime("started",i),this._synced){const r=this._state.get(i);r&&(r.offset=this.toSeconds(ee(e,0)),r.duration=s?this.toSeconds(s):void 0);const o=this.context.transport.schedule(a=>{this._start(a,e,s)},i);this._scheduled.push(o),this.context.transport.state==="started"&&this.context.transport.getSecondsAtTime(this.immediate())>i&&this._syncedStart(this.now(),this.context.transport.seconds)}else wi(this.context),this._start(i,e,s);return this}stop(t){let e=Bt(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t);if(e=this._clampToCurrentTime(e),this._state.getValueAtTime(e)==="started"||Q(this._state.getNextState("started",e))){if(this.log("stop",e),!this._synced)this._stop(e);else{const s=this.context.transport.schedule(this._stop.bind(this),e);this._scheduled.push(s)}this._state.cancel(e),this._state.setStateAtTime("stopped",e)}return this}restart(t,e,s){return t=this.toSeconds(t),this._state.getValueAtTime(t)==="started"&&(this._state.cancel(t),this._restart(t,e,s)),this}sync(){return this._synced||(this._synced=!0,this._syncedStart=(t,e)=>{if(ss(e,0)){const s=this._state.get(e);if(s&&s.state==="started"&&s.time!==e){const i=e-this.toSeconds(s.time);let r;s.duration&&(r=this.toSeconds(s.duration)-i),this._start(t,this.toSeconds(s.offset)+i,r)}}},this._syncedStop=t=>{const e=this.context.transport.getSecondsAtTime(Math.max(t-this.sampleTime,0));this._state.getValueAtTime(e)==="started"&&this._stop(t)},this.context.transport.on("start",this._syncedStart),this.context.transport.on("loopStart",this._syncedStart),this.context.transport.on("stop",this._syncedStop),this.context.transport.on("pause",this._syncedStop),this.context.transport.on("loopEnd",this._syncedStop)),this}unsync(){return this._synced&&(this.context.transport.off("stop",this._syncedStop),this.context.transport.off("pause",this._syncedStop),this.context.transport.off("loopEnd",this._syncedStop),this.context.transport.off("start",this._syncedStart),this.context.transport.off("loopStart",this._syncedStart)),this._synced=!1,this._scheduled.forEach(t=>this.context.transport.clear(t)),this._scheduled=[],this._state.cancel(0),this._stop(0),this}dispose(){return super.dispose(),this.onstop=$,this.unsync(),this._volume.dispose(),this._state.dispose(),this}}class ze extends ns{constructor(){const t=b(ze.getDefaults(),arguments,["url","onload"]);super(t),this.name="ToneBufferSource",this._source=this.context.createBufferSource(),this._internalChannels=[this._source],this._sourceStarted=!1,this._sourceStopped=!1,Lt(this._source,this._gainNode),this._source.onended=()=>this._stopSource(),this.playbackRate=new U({context:this.context,param:this._source.playbackRate,units:"positive",value:t.playbackRate}),this.loop=t.loop,this.loopStart=t.loopStart,this.loopEnd=t.loopEnd,this._buffer=new H(t.url,t.onload,t.onerror),this._internalChannels.push(this._source)}static getDefaults(){return Object.assign(ns.getDefaults(),{url:new H,loop:!1,loopEnd:0,loopStart:0,onload:$,onerror:$,playbackRate:1})}get fadeIn(){return this._fadeIn}set fadeIn(t){this._fadeIn=t}get fadeOut(){return this._fadeOut}set fadeOut(t){this._fadeOut=t}get curve(){return this._curve}set curve(t){this._curve=t}start(t,e,s,i=1){I(this.buffer.loaded,"buffer is either not set or not loaded");const r=this.toSeconds(t);this._startGain(r,i),this.loop?e=ee(e,this.loopStart):e=ee(e,0);let o=Math.max(this.toSeconds(e),0);if(this.loop){const a=this.toSeconds(this.loopEnd)||this.buffer.duration,c=this.toSeconds(this.loopStart),h=a-c;Hn(o,a)&&(o=(o-c)%h+c),te(o,this.buffer.duration)&&(o=0)}if(this._source.buffer=this.buffer.get(),this._source.loopEnd=this.toSeconds(this.loopEnd)||this.buffer.duration,nn(o,this.buffer.duration)&&(this._sourceStarted=!0,this._source.start(r,o)),Q(s)){let a=this.toSeconds(s);a=Math.max(a,0),this.stop(r+a)}return this}_stopSource(t){!this._sourceStopped&&this._sourceStarted&&(this._sourceStopped=!0,this._source.stop(this.toSeconds(t)),this._onended())}get loopStart(){return this._source.loopStart}set loopStart(t){this._source.loopStart=this.toSeconds(t)}get loopEnd(){return this._source.loopEnd}set loopEnd(t){this._source.loopEnd=this.toSeconds(t)}get buffer(){return this._buffer}set buffer(t){this._buffer.set(t)}get loop(){return this._source.loop}set loop(t){this._source.loop=t,this._sourceStarted&&this.cancelStop()}dispose(){return super.dispose(),this._source.onended=null,this._source.disconnect(),this._buffer.dispose(),this.playbackRate.dispose(),this}}class Pe extends pt{constructor(){const t=b(Pe.getDefaults(),arguments,["type"]);super(t),this.name="Noise",this._source=null,this._playbackRate=t.playbackRate,this.type=t.type,this._fadeIn=t.fadeIn,this._fadeOut=t.fadeOut}static getDefaults(){return Object.assign(pt.getDefaults(),{fadeIn:0,fadeOut:0,playbackRate:1,type:"white"})}get type(){return this._type}set type(t){if(I(t in sr,"Noise: invalid type: "+t),this._type!==t&&(this._type=t,this.state==="started")){const e=this.now();this._stop(e),this._start(e)}}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t,this._source&&(this._source.playbackRate.value=t)}_start(t){const e=sr[this._type];this._source=new ze({url:e,context:this.context,fadeIn:this._fadeIn,fadeOut:this._fadeOut,loop:!0,onended:()=>this.onstop(this),playbackRate:this._playbackRate}).connect(this.output),this._source.start(this.toSeconds(t),Math.random()*(e.duration-.001))}_stop(t){this._source&&(this._source.stop(this.toSeconds(t)),this._source=null)}get fadeIn(){return this._fadeIn}set fadeIn(t){this._fadeIn=t,this._source&&(this._source.fadeIn=this._fadeIn)}get fadeOut(){return this._fadeOut}set fadeOut(t){this._fadeOut=t,this._source&&(this._source.fadeOut=this._fadeOut)}_restart(t){this._stop(t),this._start(t)}dispose(){return super.dispose(),this._source&&this._source.disconnect(),this}}const $e=44100*5,jn=2,de={brown:null,pink:null,white:null},sr={get brown(){if(!de.brown){const n=[];for(let t=0;tr.label===t||r.deviceId===t),!this._device&&e.length>0&&(this._device=e[0]),I(Q(this._device),`No matching device ${t}`));const s={audio:{echoCancellation:!1,sampleRate:this.context.sampleRate,noiseSuppression:!1,mozNoiseSuppression:!1}};this._device&&(s.audio.deviceId=this._device.deviceId);const i=yield navigator.mediaDevices.getUserMedia(s);if(!this._stream){this._stream=i;const r=this.context.createMediaStreamSource(i);Lt(r,this.output),this._mediaStream=r}return this})}close(){return this._stream&&this._mediaStream&&(this._stream.getAudioTracks().forEach(t=>{t.stop()}),this._stream=void 0,this._mediaStream.disconnect(),this._mediaStream=void 0),this._device=void 0,this}static enumerateDevices(){return et(this,void 0,void 0,function*(){return(yield navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind==="audioinput")})}get state(){return this._stream&&this._stream.active?"started":"stopped"}get deviceId(){if(this._device)return this._device.deviceId}get groupId(){if(this._device)return this._device.groupId}get label(){if(this._device)return this._device.label}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}dispose(){return super.dispose(),this.close(),this._volume.dispose(),this.volume.dispose(),this}static get supported(){return Q(navigator.mediaDevices)&&Q(navigator.mediaDevices.getUserMedia)}}function Ue(n,t){return et(this,void 0,void 0,function*(){const e=t/n.context.sampleRate,s=new Es(1,e,n.context.sampleRate);return new n.constructor(Object.assign(n.get(),{frequency:2/e,detune:0,context:s})).toDestination().start(0),(yield s.render()).getChannelData(0)})}class Sn extends ns{constructor(){const t=b(Sn.getDefaults(),arguments,["frequency","type"]);super(t),this.name="ToneOscillatorNode",this._oscillator=this.context.createOscillator(),this._internalChannels=[this._oscillator],Lt(this._oscillator,this._gainNode),this.type=t.type,this.frequency=new U({context:this.context,param:this._oscillator.frequency,units:"frequency",value:t.frequency}),this.detune=new U({context:this.context,param:this._oscillator.detune,units:"cents",value:t.detune}),P(this,["frequency","detune"])}static getDefaults(){return Object.assign(ns.getDefaults(),{detune:0,frequency:440,type:"sine"})}start(t){const e=this.toSeconds(t);return this.log("start",e),this._startGain(e),this._oscillator.start(e),this}_stopSource(t){this._oscillator.stop(t)}setPeriodicWave(t){return this._oscillator.setPeriodicWave(t),this}get type(){return this._oscillator.type}set type(t){this._oscillator.type=t}dispose(){return super.dispose(),this.state==="started"&&this.stop(),this._oscillator.disconnect(),this.frequency.dispose(),this.detune.dispose(),this}}class ht extends pt{constructor(){const t=b(ht.getDefaults(),arguments,["frequency","type"]);super(t),this.name="Oscillator",this._oscillator=null,this.frequency=new W({context:this.context,units:"frequency",value:t.frequency}),P(this,"frequency"),this.detune=new W({context:this.context,units:"cents",value:t.detune}),P(this,"detune"),this._partials=t.partials,this._partialCount=t.partialCount,this._type=t.type,t.partialCount&&t.type!=="custom"&&(this._type=this.baseType+t.partialCount.toString()),this.phase=t.phase}static getDefaults(){return Object.assign(pt.getDefaults(),{detune:0,frequency:440,partialCount:0,partials:[],phase:0,type:"sine"})}_start(t){const e=this.toSeconds(t),s=new Sn({context:this.context,onended:()=>this.onstop(this)});this._oscillator=s,this._wave?this._oscillator.setPeriodicWave(this._wave):this._oscillator.type=this._type,this._oscillator.connect(this.output),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.start(e)}_stop(t){const e=this.toSeconds(t);this._oscillator&&this._oscillator.stop(e)}_restart(t){const e=this.toSeconds(t);return this.log("restart",e),this._oscillator&&this._oscillator.cancelStop(),this._state.cancel(e),this}syncFrequency(){return this.context.transport.syncSignal(this.frequency),this}unsyncFrequency(){return this.context.transport.unsyncSignal(this.frequency),this}_getCachedPeriodicWave(){if(this._type==="custom")return ht._periodicWaveCache.find(e=>e.phase===this._phase&&Ud(e.partials,this._partials));{const t=ht._periodicWaveCache.find(e=>e.type===this._type&&e.phase===this._phase);return this._partialCount=t?t.partialCount:this._partialCount,t}}get type(){return this._type}set type(t){this._type=t;const e=["sine","square","sawtooth","triangle"].indexOf(t)!==-1;if(this._phase===0&&e)this._wave=void 0,this._partialCount=0,this._oscillator!==null&&(this._oscillator.type=t);else{const s=this._getCachedPeriodicWave();if(Q(s)){const{partials:i,wave:r}=s;this._wave=r,this._partials=i,this._oscillator!==null&&this._oscillator.setPeriodicWave(this._wave)}else{const[i,r]=this._getRealImaginary(t,this._phase),o=this.context.createPeriodicWave(i,r);this._wave=o,this._oscillator!==null&&this._oscillator.setPeriodicWave(this._wave),ht._periodicWaveCache.push({imag:r,partialCount:this._partialCount,partials:this._partials,phase:this._phase,real:i,type:this._type,wave:this._wave}),ht._periodicWaveCache.length>100&&ht._periodicWaveCache.shift()}}}get baseType(){return this._type.replace(this.partialCount.toString(),"")}set baseType(t){this.partialCount&&this._type!=="custom"&&t!=="custom"?this.type=t+this.partialCount:this.type=t}get partialCount(){return this._partialCount}set partialCount(t){Tt(t,0);let e=this._type;const s=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(this._type);if(s&&(e=s[1]),this._type!=="custom")t===0?this.type=e:this.type=e+t.toString();else{const i=new Float32Array(t);this._partials.forEach((r,o)=>i[o]=r),this._partials=Array.from(i),this.type=this._type}}_getRealImaginary(t,e){let i=2048;const r=new Float32Array(i),o=new Float32Array(i);let a=1;if(t==="custom"){if(a=this._partials.length+1,this._partialCount=this._partials.length,i=a,this._partials.length===0)return[r,o]}else{const c=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(t);c?(a=parseInt(c[2],10)+1,this._partialCount=parseInt(c[2],10),t=c[1],a=Math.max(a,2),i=a):this._partialCount=0,this._partials=[]}for(let c=1;c>1&1?-1:1):l=0,this._partials[c-1]=l;break;case"custom":l=this._partials[c-1];break;default:throw new TypeError("Oscillator: invalid type: "+t)}l!==0?(r[c]=-l*Math.sin(e*c),o[c]=l*Math.cos(e*c)):(r[c]=0,o[c]=0)}return[r,o]}_inverseFFT(t,e,s){let i=0;const r=t.length;for(let o=0;o(t+1)/2}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}}class lt extends W{constructor(){const t=b(lt.getDefaults(),arguments,["value"]);super(t),this.name="Multiply",this.override=!1,this._mult=this.input=this.output=new F({context:this.context,minValue:t.minValue,maxValue:t.maxValue}),this.factor=this._param=this._mult.gain,this.factor.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(W.getDefaults(),{value:0})}dispose(){return super.dispose(),this._mult.dispose(),this}}class kn extends pt{constructor(){const t=b(kn.getDefaults(),arguments,["frequency","type","modulationType"]);super(t),this.name="AMOscillator",this._modulationScale=new Oi({context:this.context}),this._modulationNode=new F({context:this.context}),this._carrier=new ht({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase,type:t.type}),this.frequency=this._carrier.frequency,this.detune=this._carrier.detune,this._modulator=new ht({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new lt({context:this.context,units:"positive",value:t.harmonicity}),this.frequency.chain(this.harmonicity,this._modulator.frequency),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),P(this,["frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(ht.getDefaults(),{harmonicity:1,modulationType:"square"})}_start(t){this._modulator.start(t),this._carrier.start(t)}_stop(t){this._modulator.stop(t),this._carrier.stop(t)}_restart(t){this._modulator.restart(t),this._carrier.restart(t)}get type(){return this._carrier.type}set type(t){this._carrier.type=t}get baseType(){return this._carrier.baseType}set baseType(t){this._carrier.baseType=t}get partialCount(){return this._carrier.partialCount}set partialCount(t){this._carrier.partialCount=t}get modulationType(){return this._modulator.type}set modulationType(t){this._modulator.type=t}get phase(){return this._carrier.phase}set phase(t){this._carrier.phase=t,this._modulator.phase=t}get partials(){return this._carrier.partials}set partials(t){this._carrier.partials=t}asArray(){return et(this,arguments,void 0,function*(t=1024){return Ue(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this._modulationScale.dispose(),this}}class qs extends pt{constructor(){const t=b(qs.getDefaults(),arguments,["frequency","type","modulationType"]);super(t),this.name="FMOscillator",this._modulationNode=new F({context:this.context,gain:0}),this._carrier=new ht({context:this.context,detune:t.detune,frequency:0,onstop:()=>this.onstop(this),phase:t.phase,type:t.type}),this.detune=this._carrier.detune,this.frequency=new W({context:this.context,units:"frequency",value:t.frequency}),this._modulator=new ht({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new lt({context:this.context,units:"positive",value:t.harmonicity}),this.modulationIndex=new lt({context:this.context,units:"positive",value:t.modulationIndex}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this.detune.connect(this._modulator.detune),P(this,["modulationIndex","frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(ht.getDefaults(),{harmonicity:1,modulationIndex:2,modulationType:"square"})}_start(t){this._modulator.start(t),this._carrier.start(t)}_stop(t){this._modulator.stop(t),this._carrier.stop(t)}_restart(t){return this._modulator.restart(t),this._carrier.restart(t),this}get type(){return this._carrier.type}set type(t){this._carrier.type=t}get baseType(){return this._carrier.baseType}set baseType(t){this._carrier.baseType=t}get partialCount(){return this._carrier.partialCount}set partialCount(t){this._carrier.partialCount=t}get modulationType(){return this._modulator.type}set modulationType(t){this._modulator.type=t}get phase(){return this._carrier.phase}set phase(t){this._carrier.phase=t,this._modulator.phase=t}get partials(){return this._carrier.partials}set partials(t){this._carrier.partials=t}asArray(){return et(this,arguments,void 0,function*(t=1024){return Ue(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this.modulationIndex.dispose(),this}}class Vs extends pt{constructor(){const t=b(Vs.getDefaults(),arguments,["frequency","width"]);super(t),this.name="PulseOscillator",this._widthGate=new F({context:this.context,gain:0}),this._thresh=new ue({context:this.context,mapping:e=>e<=0?-1:1}),this.width=new W({context:this.context,units:"audioRange",value:t.width}),this._triangle=new ht({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase,type:"triangle"}),this.frequency=this._triangle.frequency,this.detune=this._triangle.detune,this._triangle.chain(this._thresh,this.output),this.width.chain(this._widthGate,this._thresh),P(this,["width","frequency","detune"])}static getDefaults(){return Object.assign(pt.getDefaults(),{detune:0,frequency:440,phase:0,type:"pulse",width:.2})}_start(t){t=this.toSeconds(t),this._triangle.start(t),this._widthGate.gain.setValueAtTime(1,t)}_stop(t){t=this.toSeconds(t),this._triangle.stop(t),this._widthGate.gain.cancelScheduledValues(t),this._widthGate.gain.setValueAtTime(0,t)}_restart(t){this._triangle.restart(t),this._widthGate.gain.cancelScheduledValues(t),this._widthGate.gain.setValueAtTime(1,t)}get phase(){return this._triangle.phase}set phase(t){this._triangle.phase=t}get type(){return"pulse"}get baseType(){return"pulse"}get partials(){return[]}get partialCount(){return 0}set carrierType(t){this._triangle.type=t}asArray(){return et(this,arguments,void 0,function*(t=1024){return Ue(this,t)})}dispose(){return super.dispose(),this._triangle.dispose(),this.width.dispose(),this._widthGate.dispose(),this._thresh.dispose(),this}}class An extends pt{constructor(){const t=b(An.getDefaults(),arguments,["frequency","type","spread"]);super(t),this.name="FatOscillator",this._oscillators=[],this.frequency=new W({context:this.context,units:"frequency",value:t.frequency}),this.detune=new W({context:this.context,units:"cents",value:t.detune}),this._spread=t.spread,this._type=t.type,this._phase=t.phase,this._partials=t.partials,this._partialCount=t.partialCount,this.count=t.count,P(this,["frequency","detune"])}static getDefaults(){return Object.assign(ht.getDefaults(),{count:3,spread:20,type:"sawtooth"})}_start(t){t=this.toSeconds(t),this._forEach(e=>e.start(t))}_stop(t){t=this.toSeconds(t),this._forEach(e=>e.stop(t))}_restart(t){this._forEach(e=>e.restart(t))}_forEach(t){for(let e=0;ee.type=t)}get spread(){return this._spread}set spread(t){if(this._spread=t,this._oscillators.length>1){const e=-t/2,s=t/(this._oscillators.length-1);this._forEach((i,r)=>i.detune.value=e+s*r)}}get count(){return this._oscillators.length}set count(t){if(Tt(t,1),this._oscillators.length!==t){this._forEach(e=>e.dispose()),this._oscillators=[];for(let e=0;ethis.onstop(this):$});this.type==="custom"&&(s.partials=this._partials),this.frequency.connect(s.frequency),this.detune.connect(s.detune),s.detune.overridden=!1,s.connect(this.output),this._oscillators[e]=s}this.spread=this._spread,this.state==="started"&&this._forEach(e=>e.start())}}get phase(){return this._phase}set phase(t){this._phase=t,this._forEach((e,s)=>e.phase=this._phase+s/this.count*360)}get baseType(){return this._oscillators[0].baseType}set baseType(t){this._forEach(e=>e.baseType=t),this._type=this._oscillators[0].type}get partials(){return this._oscillators[0].partials}set partials(t){this._partials=t,this._partialCount=this._partials.length,t.length&&(this._type="custom",this._forEach(e=>e.partials=t))}get partialCount(){return this._oscillators[0].partialCount}set partialCount(t){this._partialCount=t,this._forEach(e=>e.partialCount=t),this._type=this._oscillators[0].type}asArray(){return et(this,arguments,void 0,function*(t=1024){return Ue(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this._forEach(t=>t.dispose()),this}}class Cn extends pt{constructor(){const t=b(Cn.getDefaults(),arguments,["frequency","modulationFrequency"]);super(t),this.name="PWMOscillator",this.sourceType="pwm",this._scale=new lt({context:this.context,value:2}),this._pulse=new Vs({context:this.context,frequency:t.modulationFrequency}),this._pulse.carrierType="sine",this.modulationFrequency=this._pulse.frequency,this._modulator=new ht({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase}),this.frequency=this._modulator.frequency,this.detune=this._modulator.detune,this._modulator.chain(this._scale,this._pulse.width),this._pulse.connect(this.output),P(this,["modulationFrequency","frequency","detune"])}static getDefaults(){return Object.assign(pt.getDefaults(),{detune:0,frequency:440,modulationFrequency:.4,phase:0,type:"pwm"})}_start(t){t=this.toSeconds(t),this._modulator.start(t),this._pulse.start(t)}_stop(t){t=this.toSeconds(t),this._modulator.stop(t),this._pulse.stop(t)}_restart(t){this._modulator.restart(t),this._pulse.restart(t)}get type(){return"pwm"}get baseType(){return"pwm"}get partials(){return[]}get partialCount(){return 0}get phase(){return this._modulator.phase}set phase(t){this._modulator.phase=t}asArray(){return et(this,arguments,void 0,function*(t=1024){return Ue(this,t)})}dispose(){return super.dispose(),this._pulse.dispose(),this._scale.dispose(),this._modulator.dispose(),this}}const nr={am:kn,fat:An,fm:qs,oscillator:ht,pulse:Vs,pwm:Cn};class Ae extends pt{constructor(){const t=b(Ae.getDefaults(),arguments,["frequency","type"]);super(t),this.name="OmniOscillator",this.frequency=new W({context:this.context,units:"frequency",value:t.frequency}),this.detune=new W({context:this.context,units:"cents",value:t.detune}),P(this,["frequency","detune"]),this.set(t)}static getDefaults(){return Object.assign(ht.getDefaults(),qs.getDefaults(),kn.getDefaults(),An.getDefaults(),Vs.getDefaults(),Cn.getDefaults())}_start(t){this._oscillator.start(t)}_stop(t){this._oscillator.stop(t)}_restart(t){return this._oscillator.restart(t),this}get type(){let t="";return["am","fm","fat"].some(e=>this._sourceType===e)&&(t=this._sourceType),t+this._oscillator.type}set type(t){t.substr(0,2)==="fm"?(this._createNewOscillator("fm"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(2)):t.substr(0,2)==="am"?(this._createNewOscillator("am"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(2)):t.substr(0,3)==="fat"?(this._createNewOscillator("fat"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(3)):t==="pwm"?(this._createNewOscillator("pwm"),this._oscillator=this._oscillator):t==="pulse"?this._createNewOscillator("pulse"):(this._createNewOscillator("oscillator"),this._oscillator=this._oscillator,this._oscillator.type=t)}get partials(){return this._oscillator.partials}set partials(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&(this._oscillator.partials=t)}get partialCount(){return this._oscillator.partialCount}set partialCount(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&(this._oscillator.partialCount=t)}set(t){return Reflect.has(t,"type")&&t.type&&(this.type=t.type),super.set(t),this}_createNewOscillator(t){if(t!==this._sourceType){this._sourceType=t;const e=nr[t],s=this.now();if(this._oscillator){const i=this._oscillator;i.stop(s),this.context.setTimeout(()=>i.dispose(),this.blockTime)}this._oscillator=new e({context:this.context}),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.connect(this.output),this._oscillator.onstop=()=>this.onstop(this),this.state==="started"&&this._oscillator.start(s)}}get phase(){return this._oscillator.phase}set phase(t){this._oscillator.phase=t}get sourceType(){return this._sourceType}set sourceType(t){let e="sine";this._oscillator.type!=="pwm"&&this._oscillator.type!=="pulse"&&(e=this._oscillator.type),t==="fm"?this.type="fm"+e:t==="am"?this.type="am"+e:t==="fat"?this.type="fat"+e:t==="oscillator"?this.type=e:t==="pulse"?this.type="pulse":t==="pwm"&&(this.type="pwm")}_getOscType(t,e){return t instanceof nr[e]}get baseType(){return this._oscillator.baseType}set baseType(t){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&t!=="pulse"&&t!=="pwm"&&(this._oscillator.baseType=t)}get width(){if(this._getOscType(this._oscillator,"pulse"))return this._oscillator.width}get count(){if(this._getOscType(this._oscillator,"fat"))return this._oscillator.count}set count(t){this._getOscType(this._oscillator,"fat")&&Yt(t)&&(this._oscillator.count=t)}get spread(){if(this._getOscType(this._oscillator,"fat"))return this._oscillator.spread}set spread(t){this._getOscType(this._oscillator,"fat")&&Yt(t)&&(this._oscillator.spread=t)}get modulationType(){if(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))return this._oscillator.modulationType}set modulationType(t){(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))&&oe(t)&&(this._oscillator.modulationType=t)}get modulationIndex(){if(this._getOscType(this._oscillator,"fm"))return this._oscillator.modulationIndex}get harmonicity(){if(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))return this._oscillator.harmonicity}get modulationFrequency(){if(this._getOscType(this._oscillator,"pwm"))return this._oscillator.modulationFrequency}asArray(){return et(this,arguments,void 0,function*(t=1024){return Ue(this,t)})}dispose(){return super.dispose(),this.detune.dispose(),this.frequency.dispose(),this._oscillator.dispose(),this}}class ls extends W{constructor(){super(b(ls.getDefaults(),arguments,["value"])),this.override=!1,this.name="Add",this._sum=new F({context:this.context}),this.input=this._sum,this.output=this._sum,this.addend=this._param,Ht(this._constantSource,this._sum)}static getDefaults(){return Object.assign(W.getDefaults(),{value:0})}dispose(){return super.dispose(),this._sum.dispose(),this}}class Ce extends zt{constructor(){const t=b(Ce.getDefaults(),arguments,["min","max"]);super(t),this.name="Scale",this._mult=this.input=new lt({context:this.context,value:t.max-t.min}),this._add=this.output=new ls({context:this.context,value:t.min}),this._min=t.min,this._max=t.max,this.input.connect(this.output)}static getDefaults(){return Object.assign(zt.getDefaults(),{max:1,min:0})}get min(){return this._min}set min(t){this._min=t,this._setRange()}get max(){return this._max}set max(t){this._max=t,this._setRange()}_setRange(){this._add.value=this._min,this._mult.value=this._max-this._min}dispose(){return super.dispose(),this._add.dispose(),this._mult.dispose(),this}}class Ni extends zt{constructor(){super(b(Ni.getDefaults(),arguments)),this.name="Zero",this._gain=new F({context:this.context}),this.output=this._gain,this.input=void 0,Lt(this.context.getConstant(0),this._gain)}dispose(){return super.dispose(),_o(this.context.getConstant(0),this._gain),this}}class Vt extends A{constructor(){const t=b(Vt.getDefaults(),arguments,["frequency","min","max"]);super(t),this.name="LFO",this._stoppedValue=0,this._units="number",this.convert=!0,this._fromType=U.prototype._fromType,this._toType=U.prototype._toType,this._is=U.prototype._is,this._clampValue=U.prototype._clampValue,this._oscillator=new ht(t),this.frequency=this._oscillator.frequency,this._amplitudeGain=new F({context:this.context,gain:t.amplitude,units:"normalRange"}),this.amplitude=this._amplitudeGain.gain,this._stoppedSignal=new W({context:this.context,units:"audioRange",value:0}),this._zeros=new Ni({context:this.context}),this._a2g=new Oi({context:this.context}),this._scaler=this.output=new Ce({context:this.context,max:t.max,min:t.min}),this.units=t.units,this.min=t.min,this.max=t.max,this._oscillator.chain(this._amplitudeGain,this._a2g,this._scaler),this._zeros.connect(this._a2g),this._stoppedSignal.connect(this._a2g),P(this,["amplitude","frequency"]),this.phase=t.phase}static getDefaults(){return Object.assign(ht.getDefaults(),{amplitude:1,frequency:"4n",max:1,min:0,type:"sine",units:"number"})}start(t){return t=this.toSeconds(t),this._stoppedSignal.setValueAtTime(0,t),this._oscillator.start(t),this}stop(t){return t=this.toSeconds(t),this._stoppedSignal.setValueAtTime(this._stoppedValue,t),this._oscillator.stop(t),this}sync(){return this._oscillator.sync(),this._oscillator.syncFrequency(),this}unsync(){return this._oscillator.unsync(),this._oscillator.unsyncFrequency(),this}_setStoppedValue(){this._stoppedValue=this._oscillator.getInitialValue(),this._stoppedSignal.value=this._stoppedValue}get min(){return this._toType(this._scaler.min)}set min(t){t=this._fromType(t),this._scaler.min=t}get max(){return this._toType(this._scaler.max)}set max(t){t=this._fromType(t),this._scaler.max=t}get type(){return this._oscillator.type}set type(t){this._oscillator.type=t,this._setStoppedValue()}get partials(){return this._oscillator.partials}set partials(t){this._oscillator.partials=t,this._setStoppedValue()}get phase(){return this._oscillator.phase}set phase(t){this._oscillator.phase=t,this._setStoppedValue()}get units(){return this._units}set units(t){const e=this.min,s=this.max;this._units=t,this.min=e,this.max=s}get state(){return this._oscillator.state}connect(t,e,s){return(t instanceof U||t instanceof W)&&(this.convert=t.convert,this.units=t.units),bn(this,t,e,s),this}dispose(){return super.dispose(),this._oscillator.dispose(),this._stoppedSignal.dispose(),this._zeros.dispose(),this._scaler.dispose(),this._a2g.dispose(),this._amplitudeGain.dispose(),this.amplitude.dispose(),this}}function go(n,t=1/0){const e=new WeakMap;return function(s,i){Reflect.defineProperty(s,i,{configurable:!0,enumerable:!0,get:function(){return e.get(this)},set:function(r){Tt(r,n,t),e.set(this,r)}})}}function ge(n,t=1/0){const e=new WeakMap;return function(s,i){Reflect.defineProperty(s,i,{configurable:!0,enumerable:!0,get:function(){return e.get(this)},set:function(r){Tt(this.toSeconds(r),n,t),e.set(this,r)}})}}class Ps extends pt{constructor(){const t=b(Ps.getDefaults(),arguments,["url","onload"]);super(t),this.name="Player",this._activeSources=new Set,this._buffer=new H({onload:this._onload.bind(this,t.onload),onerror:t.onerror,reverse:t.reverse,url:t.url}),this.autostart=t.autostart,this._loop=t.loop,this._loopStart=t.loopStart,this._loopEnd=t.loopEnd,this._playbackRate=t.playbackRate,this.fadeIn=t.fadeIn,this.fadeOut=t.fadeOut}static getDefaults(){return Object.assign(pt.getDefaults(),{autostart:!1,fadeIn:0,fadeOut:0,loop:!1,loopEnd:0,loopStart:0,onload:$,onerror:$,playbackRate:1,reverse:!1})}load(t){return et(this,void 0,void 0,function*(){return yield this._buffer.load(t),this._onload(),this})}_onload(t=$){t(),this.autostart&&this.start()}_onSourceEnd(t){this.onstop(this),this._activeSources.delete(t),this._activeSources.size===0&&!this._synced&&this._state.getValueAtTime(this.now())==="started"&&(this._state.cancel(this.now()),this._state.setStateAtTime("stopped",this.now()))}start(t,e,s){return super.start(t,e,s),this}_start(t,e,s){this._loop?e=ee(e,this._loopStart):e=ee(e,0);const i=this.toSeconds(e),r=s;s=ee(s,Math.max(this._buffer.duration-i,0));let o=this.toSeconds(s);o=o/this._playbackRate,t=this.toSeconds(t);const a=new ze({url:this._buffer,context:this.context,fadeIn:this.fadeIn,fadeOut:this.fadeOut,loop:this._loop,loopEnd:this._loopEnd,loopStart:this._loopStart,onended:this._onSourceEnd.bind(this),playbackRate:this._playbackRate}).connect(this.output);!this._loop&&!this._synced&&(this._state.cancel(t+o),this._state.setStateAtTime("stopped",t+o,{implicitEnd:!0})),this._activeSources.add(a),this._loop&&Bt(r)?a.start(t,i):a.start(t,i,o-this.toSeconds(this.fadeOut))}_stop(t){const e=this.toSeconds(t);this._activeSources.forEach(s=>s.stop(e))}restart(t,e,s){return super.restart(t,e,s),this}_restart(t,e,s){var i;(i=[...this._activeSources].pop())===null||i===void 0||i.stop(t),this._start(t,e,s)}seek(t,e){const s=this.toSeconds(e);if(this._state.getValueAtTime(s)==="started"){const i=this.toSeconds(t);this._stop(s),this._start(s,i)}return this}setLoopPoints(t,e){return this.loopStart=t,this.loopEnd=e,this}get loopStart(){return this._loopStart}set loopStart(t){this._loopStart=t,this.buffer.loaded&&Tt(this.toSeconds(t),0,this.buffer.duration),this._activeSources.forEach(e=>{e.loopStart=t})}get loopEnd(){return this._loopEnd}set loopEnd(t){this._loopEnd=t,this.buffer.loaded&&Tt(this.toSeconds(t),0,this.buffer.duration),this._activeSources.forEach(e=>{e.loopEnd=t})}get buffer(){return this._buffer}set buffer(t){this._buffer.set(t)}get loop(){return this._loop}set loop(t){if(this._loop!==t&&(this._loop=t,this._activeSources.forEach(e=>{e.loop=t}),t)){const e=this._state.getNextState("stopped",this.now());e&&this._state.cancel(e.time)}}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t;const e=this.now(),s=this._state.getNextState("stopped",e);s&&s.implicitEnd&&(this._state.cancel(s.time),this._activeSources.forEach(i=>i.cancelStop())),this._activeSources.forEach(i=>{i.playbackRate.setValueAtTime(t,e)})}get reverse(){return this._buffer.reverse}set reverse(t){this._buffer.reverse=t}get loaded(){return this._buffer.loaded}dispose(){return super.dispose(),this._activeSources.forEach(t=>t.dispose()),this._activeSources.clear(),this._buffer.dispose(),this}}re([ge(0)],Ps.prototype,"fadeIn",void 0);re([ge(0)],Ps.prototype,"fadeOut",void 0);class yo extends A{constructor(){const t=b(yo.getDefaults(),arguments,["urls","onload"],"urls");super(t),this.name="Players",this.input=void 0,this._players=new Map,this._volume=this.output=new Ee({context:this.context,volume:t.volume}),this.volume=this._volume.volume,P(this,"volume"),this._buffers=new Is({urls:t.urls,onload:t.onload,baseUrl:t.baseUrl,onerror:t.onerror}),this.mute=t.mute,this._fadeIn=t.fadeIn,this._fadeOut=t.fadeOut}static getDefaults(){return Object.assign(pt.getDefaults(),{baseUrl:"",fadeIn:0,fadeOut:0,mute:!1,onload:$,onerror:$,urls:{},volume:0})}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}get fadeIn(){return this._fadeIn}set fadeIn(t){this._fadeIn=t,this._players.forEach(e=>{e.fadeIn=t})}get fadeOut(){return this._fadeOut}set fadeOut(t){this._fadeOut=t,this._players.forEach(e=>{e.fadeOut=t})}get state(){return Array.from(this._players).some(([e,s])=>s.state==="started")?"started":"stopped"}has(t){return this._buffers.has(t)}player(t){if(I(this.has(t),`No Player with the name ${t} exists on this object`),!this._players.has(t)){const e=new Ps({context:this.context,fadeIn:this._fadeIn,fadeOut:this._fadeOut,url:this._buffers.get(t)}).connect(this.output);this._players.set(t,e)}return this._players.get(t)}get loaded(){return this._buffers.loaded}add(t,e,s){return I(!this._buffers.has(t),"A buffer with that name already exists on this object"),this._buffers.add(t,e,s),this}stopAll(t){return this._players.forEach(e=>e.stop(t)),this}dispose(){return super.dispose(),this._volume.dispose(),this.volume.dispose(),this._players.forEach(t=>t.dispose()),this._buffers.dispose(),this}}class vo extends pt{constructor(){const t=b(vo.getDefaults(),arguments,["url","onload"]);super(t),this.name="GrainPlayer",this._loopStart=0,this._loopEnd=0,this._activeSources=[],this.buffer=new H({onload:t.onload,onerror:t.onerror,reverse:t.reverse,url:t.url}),this._clock=new Rs({context:this.context,callback:this._tick.bind(this),frequency:1/t.grainSize}),this._playbackRate=t.playbackRate,this._grainSize=t.grainSize,this._overlap=t.overlap,this.detune=t.detune,this.overlap=t.overlap,this.loop=t.loop,this.playbackRate=t.playbackRate,this.grainSize=t.grainSize,this.loopStart=t.loopStart,this.loopEnd=t.loopEnd,this.reverse=t.reverse,this._clock.on("stop",this._onstop.bind(this))}static getDefaults(){return Object.assign(pt.getDefaults(),{onload:$,onerror:$,overlap:.1,grainSize:.2,playbackRate:1,detune:0,loop:!1,loopStart:0,loopEnd:0,reverse:!1})}_start(t,e,s){e=ee(e,0),e=this.toSeconds(e),t=this.toSeconds(t);const i=1/this._clock.frequency.getValueAtTime(t);this._clock.start(t,e/i),s&&this.stop(t+this.toSeconds(s))}restart(t,e,s){return super.restart(t,e,s),this}_restart(t,e,s){this._stop(t),this._start(t,e,s)}_stop(t){this._clock.stop(t)}_onstop(t){this._activeSources.forEach(e=>{e.fadeOut=0,e.stop(t)}),this.onstop(this)}_tick(t){const e=this._clock.getTicksAtTime(t),s=e*this._grainSize;if(this.log("offset",s),!this.loop&&s>this.buffer.duration){this.stop(t);return}const i=s{const o=this._activeSources.indexOf(r);o!==-1&&this._activeSources.splice(o,1)}}get playbackRate(){return this._playbackRate}set playbackRate(t){Tt(t,.001),this._playbackRate=t,this.grainSize=this._grainSize}get loopStart(){return this._loopStart}set loopStart(t){this.buffer.loaded&&Tt(this.toSeconds(t),0,this.buffer.duration),this._loopStart=this.toSeconds(t)}get loopEnd(){return this._loopEnd}set loopEnd(t){this.buffer.loaded&&Tt(this.toSeconds(t),0,this.buffer.duration),this._loopEnd=this.toSeconds(t)}get reverse(){return this.buffer.reverse}set reverse(t){this.buffer.reverse=t}get grainSize(){return this._grainSize}set grainSize(t){this._grainSize=this.toSeconds(t),this._clock.frequency.setValueAtTime(this._playbackRate/this._grainSize,this.now())}get overlap(){return this._overlap}set overlap(t){const e=this.toSeconds(t);Tt(e,0),this._overlap=e}get loaded(){return this.buffer.loaded}dispose(){return super.dispose(),this.buffer.dispose(),this._clock.dispose(),this._activeSources.forEach(t=>t.dispose()),this}}class ip extends zt{constructor(){super(...arguments),this.name="Abs",this._abs=new ue({context:this.context,mapping:t=>Math.abs(t)<.001?0:Math.abs(t)}),this.input=this._abs,this.output=this._abs}dispose(){return super.dispose(),this._abs.dispose(),this}}class rp extends zt{constructor(){super(...arguments),this.name="GainToAudio",this._norm=new ue({context:this.context,mapping:t=>Math.abs(t)*2-1}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}}class wo extends zt{constructor(){super(...arguments),this.name="Negate",this._multiply=new lt({context:this.context,value:-1}),this.input=this._multiply,this.output=this._multiply}dispose(){return super.dispose(),this._multiply.dispose(),this}}class us extends W{constructor(){super(b(us.getDefaults(),arguments,["value"])),this.override=!1,this.name="Subtract",this._sum=new F({context:this.context}),this.input=this._sum,this.output=this._sum,this._neg=new wo({context:this.context}),this.subtrahend=this._param,Ht(this._constantSource,this._neg,this._sum)}static getDefaults(){return Object.assign(W.getDefaults(),{value:0})}dispose(){return super.dispose(),this._neg.dispose(),this._sum.dispose(),this}}class Ei extends zt{constructor(){super(b(Ei.getDefaults(),arguments)),this.name="GreaterThanZero",this._thresh=this.output=new ue({context:this.context,length:127,mapping:t=>t<=0?0:1}),this._scale=this.input=new lt({context:this.context,value:1e4}),this._scale.connect(this._thresh)}dispose(){return super.dispose(),this._scale.dispose(),this._thresh.dispose(),this}}class Mi extends W{constructor(){const t=b(Mi.getDefaults(),arguments,["value"]);super(t),this.name="GreaterThan",this.override=!1,this._subtract=this.input=new us({context:this.context,value:t.value}),this._gtz=this.output=new Ei({context:this.context}),this.comparator=this._param=this._subtract.subtrahend,P(this,"comparator"),this._subtract.connect(this._gtz)}static getDefaults(){return Object.assign(W.getDefaults(),{value:0})}dispose(){return super.dispose(),this._gtz.dispose(),this._subtract.dispose(),this.comparator.dispose(),this}}class Ri extends Ce{constructor(){const t=b(Ri.getDefaults(),arguments,["min","max","exponent"]);super(t),this.name="ScaleExp",this.input=this._exp=new Fs({context:this.context,value:t.exponent}),this._exp.connect(this._mult)}static getDefaults(){return Object.assign(Ce.getDefaults(),{exponent:1})}get exponent(){return this._exp.value}set exponent(t){this._exp.value=t}dispose(){return super.dispose(),this._exp.dispose(),this}}class cf extends W{constructor(){const t=b(W.getDefaults(),arguments,["value","units"]);super(t),this.name="SyncedSignal",this.override=!1,this._lastVal=t.value,this._synced=this.context.transport.scheduleRepeat(this._onTick.bind(this),"1i"),this._syncedCallback=this._anchorValue.bind(this),this.context.transport.on("start",this._syncedCallback),this.context.transport.on("pause",this._syncedCallback),this.context.transport.on("stop",this._syncedCallback),this._constantSource.disconnect(),this._constantSource.stop(0),this._constantSource=this.output=new xn({context:this.context,offset:t.value,units:t.units}).start(0),this.setValueAtTime(t.value,0)}_onTick(t){const e=super.getValueAtTime(this.context.transport.seconds);this._lastVal!==e&&(this._lastVal=e,this._constantSource.offset.setValueAtTime(e,t))}_anchorValue(t){const e=super.getValueAtTime(this.context.transport.seconds);this._lastVal=e,this._constantSource.offset.cancelAndHoldAtTime(t),this._constantSource.offset.setValueAtTime(e,t)}getValueAtTime(t){const e=new gt(this.context,t).toSeconds();return super.getValueAtTime(e)}setValueAtTime(t,e){const s=new gt(this.context,e).toSeconds();return super.setValueAtTime(t,s),this}linearRampToValueAtTime(t,e){const s=new gt(this.context,e).toSeconds();return super.linearRampToValueAtTime(t,s),this}exponentialRampToValueAtTime(t,e){const s=new gt(this.context,e).toSeconds();return super.exponentialRampToValueAtTime(t,s),this}setTargetAtTime(t,e,s){const i=new gt(this.context,e).toSeconds();return super.setTargetAtTime(t,i,s),this}cancelScheduledValues(t){const e=new gt(this.context,t).toSeconds();return super.cancelScheduledValues(e),this}setValueCurveAtTime(t,e,s,i){const r=new gt(this.context,e).toSeconds();return s=this.toSeconds(s),super.setValueCurveAtTime(t,r,s,i),this}cancelAndHoldAtTime(t){const e=new gt(this.context,t).toSeconds();return super.cancelAndHoldAtTime(e),this}setRampPoint(t){const e=new gt(this.context,t).toSeconds();return super.setRampPoint(e),this}exponentialRampTo(t,e,s){const i=new gt(this.context,s).toSeconds();return super.exponentialRampTo(t,e,i),this}linearRampTo(t,e,s){const i=new gt(this.context,s).toSeconds();return super.linearRampTo(t,e,i),this}targetRampTo(t,e,s){const i=new gt(this.context,s).toSeconds();return super.targetRampTo(t,e,i),this}dispose(){return super.dispose(),this.context.transport.clear(this._synced),this.context.transport.off("start",this._syncedCallback),this.context.transport.off("pause",this._syncedCallback),this.context.transport.off("stop",this._syncedCallback),this._constantSource.dispose(),this}}class Dt extends A{constructor(){const t=b(Dt.getDefaults(),arguments,["attack","decay","sustain","release"]);super(t),this.name="Envelope",this._sig=new W({context:this.context,value:0}),this.output=this._sig,this.input=void 0,this.attack=t.attack,this.decay=t.decay,this.sustain=t.sustain,this.release=t.release,this.attackCurve=t.attackCurve,this.releaseCurve=t.releaseCurve,this.decayCurve=t.decayCurve}static getDefaults(){return Object.assign(A.getDefaults(),{attack:.01,attackCurve:"linear",decay:.1,decayCurve:"exponential",release:1,releaseCurve:"exponential",sustain:.5})}get value(){return this.getValueAtTime(this.now())}_getCurve(t,e){if(oe(t))return t;{let s;for(s in Us)if(Us[s][e]===t)return s;return t}}_setCurve(t,e,s){if(oe(s)&&Reflect.has(Us,s)){const i=Us[s];be(i)?t!=="_decayCurve"&&(this[t]=i[e]):this[t]=i}else if(Ct(s)&&t!=="_decayCurve")this[t]=s;else throw new Error("Envelope: invalid curve: "+s)}get attackCurve(){return this._getCurve(this._attackCurve,"In")}set attackCurve(t){this._setCurve("_attackCurve","In",t)}get releaseCurve(){return this._getCurve(this._releaseCurve,"Out")}set releaseCurve(t){this._setCurve("_releaseCurve","Out",t)}get decayCurve(){return this._getCurve(this._decayCurve,"Out")}set decayCurve(t){this._setCurve("_decayCurve","Out",t)}triggerAttack(t,e=1){this.log("triggerAttack",t,e),t=this.toSeconds(t);let i=this.toSeconds(this.attack);const r=this.toSeconds(this.decay),o=this.getValueAtTime(t);if(o>0){const a=1/i;i=(1-o)/a}if(i0){const s=this.toSeconds(this.release);s{let t,e;const s=[];for(t=0;t<128;t++)s[t]=Math.sin(t/127*(Math.PI/2));const i=[],r=6.4;for(t=0;t<127;t++){e=t/127;const p=Math.sin(e*(Math.PI*2)*r-Math.PI/2)+1;i[t]=p/10+e*.83}i[127]=1;const o=[],a=5;for(t=0;t<128;t++)o[t]=Math.ceil(t/127*a)/a;const c=[];for(t=0;t<128;t++)e=t/127,c[t]=.5*(1-Math.cos(Math.PI*e));const h=[];for(t=0;t<128;t++){e=t/127;const p=Math.pow(e,3)*4+.2,f=Math.cos(p*Math.PI*2*e);h[t]=Math.abs(f*(1-e))}function l(p){const f=new Array(p.length);for(let d=0;dthis._original_triggerRelease(e),this._volume=this.output=new Ee({context:this.context,volume:t.volume}),this.volume=this._volume.volume,P(this,"volume")}static getDefaults(){return Object.assign(A.getDefaults(),{volume:0})}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",0),this.context.transport.on("stop",this._syncedRelease),this.context.transport.on("pause",this._syncedRelease),this.context.transport.on("loopEnd",this._syncedRelease)),this}_syncState(){let t=!1;return this._synced||(this._synced=!0,t=!0),t}_syncMethod(t,e){const s=this["_original_"+t]=this[t];this[t]=(...i)=>{const r=i[e],o=this.context.transport.schedule(a=>{i[e]=a,s.apply(this,i)},r);this._scheduledEvents.push(o)}}unsync(){return this._scheduledEvents.forEach(t=>this.context.transport.clear(t)),this._scheduledEvents=[],this._synced&&(this._synced=!1,this.triggerAttack=this._original_triggerAttack,this.triggerRelease=this._original_triggerRelease,this.context.transport.off("stop",this._syncedRelease),this.context.transport.off("pause",this._syncedRelease),this.context.transport.off("loopEnd",this._syncedRelease)),this}triggerAttackRelease(t,e,s,i){const r=this.toSeconds(s),o=this.toSeconds(e);return this.triggerAttack(t,r,i),this.triggerRelease(r+o),this}dispose(){return super.dispose(),this._volume.dispose(),this.unsync(),this._scheduledEvents=[],this}}class kt extends Jt{constructor(){const t=b(kt.getDefaults(),arguments);super(t),this.portamento=t.portamento,this.onsilence=t.onsilence}static getDefaults(){return Object.assign(Jt.getDefaults(),{detune:0,onsilence:$,portamento:0})}triggerAttack(t,e,s=1){this.log("triggerAttack",t,e,s);const i=this.toSeconds(e);return this._triggerEnvelopeAttack(i,s),this.setNote(t,i),this}triggerRelease(t){this.log("triggerRelease",t);const e=this.toSeconds(t);return this._triggerEnvelopeRelease(e),this}setNote(t,e){const s=this.toSeconds(e),i=t instanceof qt?t.toFrequency():t;if(this.portamento>0&&this.getLevelAtTime(s)>.05){const r=this.toSeconds(this.portamento);this.frequency.exponentialRampTo(i,r,s)}else this.frequency.setValueAtTime(i,s);return this}}re([ge(0)],kt.prototype,"portamento",void 0);class Ls extends Dt{constructor(){super(b(Ls.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="AmplitudeEnvelope",this._gainNode=new F({context:this.context,gain:0}),this.output=this._gainNode,this.input=this._gainNode,this._sig.connect(this._gainNode.gain),this.output=this._gainNode,this.input=this._gainNode}dispose(){return super.dispose(),this._gainNode.dispose(),this}}class Le extends kt{constructor(){const t=b(Le.getDefaults(),arguments);super(t),this.name="Synth",this.oscillator=new Ae(Object.assign({context:this.context,detune:t.detune,onstop:()=>this.onsilence(this)},t.oscillator)),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.envelope=new Ls(Object.assign({context:this.context},t.envelope)),this.oscillator.chain(this.envelope,this.output),P(this,["oscillator","frequency","detune","envelope"])}static getDefaults(){return Object.assign(kt.getDefaults(),{envelope:Object.assign(St(Dt.getDefaults(),Object.keys(A.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.3}),oscillator:Object.assign(St(Ae.getDefaults(),[...Object.keys(pt.getDefaults()),"frequency","detune"]),{type:"triangle"})})}_triggerEnvelopeAttack(t,e){if(this.envelope.triggerAttack(t,e),this.oscillator.start(t),this.envelope.sustain===0){const s=this.toSeconds(this.envelope.attack),i=this.toSeconds(this.envelope.decay);this.oscillator.stop(t+s+i)}}_triggerEnvelopeRelease(t){this.envelope.triggerRelease(t),this.oscillator.stop(t+this.toSeconds(this.envelope.release))}getLevelAtTime(t){return t=this.toSeconds(t),this.envelope.getValueAtTime(t)}dispose(){return super.dispose(),this.oscillator.dispose(),this.envelope.dispose(),this}}class ws extends kt{constructor(){const t=b(ws.getDefaults(),arguments);super(t),this.name="ModulationSynth",this._carrier=new Le({context:this.context,oscillator:t.oscillator,envelope:t.envelope,onsilence:()=>this.onsilence(this),volume:-10}),this._modulator=new Le({context:this.context,oscillator:t.modulation,envelope:t.modulationEnvelope,volume:-10}),this.oscillator=this._carrier.oscillator,this.envelope=this._carrier.envelope,this.modulation=this._modulator.oscillator,this.modulationEnvelope=this._modulator.envelope,this.frequency=new W({context:this.context,units:"frequency"}),this.detune=new W({context:this.context,value:t.detune,units:"cents"}),this.harmonicity=new lt({context:this.context,value:t.harmonicity,minValue:0}),this._modulationNode=new F({context:this.context,gain:0}),P(this,["frequency","harmonicity","oscillator","envelope","modulation","modulationEnvelope","detune"])}static getDefaults(){return Object.assign(kt.getDefaults(),{harmonicity:3,oscillator:Object.assign(St(Ae.getDefaults(),[...Object.keys(pt.getDefaults()),"frequency","detune"]),{type:"sine"}),envelope:Object.assign(St(Dt.getDefaults(),Object.keys(A.getDefaults())),{attack:.01,decay:.01,sustain:1,release:.5}),modulation:Object.assign(St(Ae.getDefaults(),[...Object.keys(pt.getDefaults()),"frequency","detune"]),{type:"square"}),modulationEnvelope:Object.assign(St(Dt.getDefaults(),Object.keys(A.getDefaults())),{attack:.5,decay:0,sustain:1,release:.5})})}_triggerEnvelopeAttack(t,e){this._carrier._triggerEnvelopeAttack(t,e),this._modulator._triggerEnvelopeAttack(t,e)}_triggerEnvelopeRelease(t){return this._carrier._triggerEnvelopeRelease(t),this._modulator._triggerEnvelopeRelease(t),this}getLevelAtTime(t){return t=this.toSeconds(t),this.envelope.getValueAtTime(t)}dispose(){return super.dispose(),this._carrier.dispose(),this._modulator.dispose(),this.frequency.dispose(),this.detune.dispose(),this.harmonicity.dispose(),this._modulationNode.dispose(),this}}class xo extends ws{constructor(){super(b(xo.getDefaults(),arguments)),this.name="AMSynth",this._modulationScale=new Oi({context:this.context}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output)}dispose(){return super.dispose(),this._modulationScale.dispose(),this}}class rn extends A{constructor(){const t=b(rn.getDefaults(),arguments,["frequency","type"]);super(t),this.name="BiquadFilter",this._filter=this.context.createBiquadFilter(),this.input=this.output=this._filter,this.Q=new U({context:this.context,units:"number",value:t.Q,param:this._filter.Q}),this.frequency=new U({context:this.context,units:"frequency",value:t.frequency,param:this._filter.frequency}),this.detune=new U({context:this.context,units:"cents",value:t.detune,param:this._filter.detune}),this.gain=new U({context:this.context,units:"decibels",convert:!1,value:t.gain,param:this._filter.gain}),this.type=t.type}static getDefaults(){return Object.assign(A.getDefaults(),{Q:1,type:"lowpass",frequency:350,detune:0,gain:0})}get type(){return this._filter.type}set type(t){I(["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(t)!==-1,`Invalid filter type: ${t}`),this._filter.type=t}getFrequencyResponse(t=128){const e=new Float32Array(t);for(let o=0;os.type=t)}get rolloff(){return this._rolloff}set rolloff(t){const e=Yt(t)?t:parseInt(t,10),s=[-12,-24,-48,-96];let i=s.indexOf(e);I(i!==-1,`rolloff can only be ${s.join(", ")}`),i+=1,this._rolloff=e,this.input.disconnect(),this._filters.forEach(r=>r.disconnect()),this._filters=new Array(i);for(let r=0;r1);return this._filters.forEach(()=>{e.getFrequencyResponse(t).forEach((r,o)=>s[o]*=r)}),e.dispose(),s}dispose(){return super.dispose(),this._filters.forEach(t=>{t.dispose()}),Ns(this,["detune","frequency","gain","Q"]),this.frequency.dispose(),this.Q.dispose(),this.detune.dispose(),this.gain.dispose(),this}}class on extends Dt{constructor(){const t=b(on.getDefaults(),arguments,["attack","decay","sustain","release"]);super(t),this.name="FrequencyEnvelope",this._octaves=t.octaves,this._baseFrequency=this.toFrequency(t.baseFrequency),this._exponent=this.input=new Fs({context:this.context,value:t.exponent}),this._scale=this.output=new Ce({context:this.context,min:this._baseFrequency,max:this._baseFrequency*Math.pow(2,this._octaves)}),this._sig.chain(this._exponent,this._scale)}static getDefaults(){return Object.assign(Dt.getDefaults(),{baseFrequency:200,exponent:1,octaves:4})}get baseFrequency(){return this._baseFrequency}set baseFrequency(t){const e=this.toFrequency(t);Tt(e,0),this._baseFrequency=e,this._scale.min=this._baseFrequency,this.octaves=this._octaves}get octaves(){return this._octaves}set octaves(t){this._octaves=t,this._scale.max=this._baseFrequency*Math.pow(2,t)}get exponent(){return this._exponent.value}set exponent(t){this._exponent.value=t}dispose(){return super.dispose(),this._exponent.dispose(),this._scale.dispose(),this}}class He extends kt{constructor(){const t=b(He.getDefaults(),arguments);super(t),this.name="MonoSynth",this.oscillator=new Ae(Object.assign(t.oscillator,{context:this.context,detune:t.detune,onstop:()=>this.onsilence(this)})),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.filter=new Zt(Object.assign(t.filter,{context:this.context})),this.filterEnvelope=new on(Object.assign(t.filterEnvelope,{context:this.context})),this.envelope=new Ls(Object.assign(t.envelope,{context:this.context})),this.oscillator.chain(this.filter,this.envelope,this.output),this.filterEnvelope.connect(this.filter.frequency),P(this,["oscillator","frequency","detune","filter","filterEnvelope","envelope"])}static getDefaults(){return Object.assign(kt.getDefaults(),{envelope:Object.assign(St(Dt.getDefaults(),Object.keys(A.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.9}),filter:Object.assign(St(Zt.getDefaults(),Object.keys(A.getDefaults())),{Q:1,rolloff:-12,type:"lowpass"}),filterEnvelope:Object.assign(St(on.getDefaults(),Object.keys(A.getDefaults())),{attack:.6,baseFrequency:200,decay:.2,exponent:2,octaves:3,release:2,sustain:.5}),oscillator:Object.assign(St(Ae.getDefaults(),Object.keys(pt.getDefaults())),{type:"sawtooth"})})}_triggerEnvelopeAttack(t,e=1){if(this.envelope.triggerAttack(t,e),this.filterEnvelope.triggerAttack(t),this.oscillator.start(t),this.envelope.sustain===0){const s=this.toSeconds(this.envelope.attack),i=this.toSeconds(this.envelope.decay);this.oscillator.stop(t+s+i)}}_triggerEnvelopeRelease(t){this.envelope.triggerRelease(t),this.filterEnvelope.triggerRelease(t),this.oscillator.stop(t+this.toSeconds(this.envelope.release))}getLevelAtTime(t){return t=this.toSeconds(t),this.envelope.getValueAtTime(t)}dispose(){return super.dispose(),this.oscillator.dispose(),this.envelope.dispose(),this.filterEnvelope.dispose(),this.filter.dispose(),this}}class bo extends kt{constructor(){const t=b(bo.getDefaults(),arguments);super(t),this.name="DuoSynth",this.voice0=new He(Object.assign(t.voice0,{context:this.context,onsilence:()=>this.onsilence(this)})),this.voice1=new He(Object.assign(t.voice1,{context:this.context})),this.harmonicity=new lt({context:this.context,units:"positive",value:t.harmonicity}),this._vibrato=new Vt({frequency:t.vibratoRate,context:this.context,min:-50,max:50}),this._vibrato.start(),this.vibratoRate=this._vibrato.frequency,this._vibratoGain=new F({context:this.context,units:"normalRange",gain:t.vibratoAmount}),this.vibratoAmount=this._vibratoGain.gain,this.frequency=new W({context:this.context,units:"frequency",value:440}),this.detune=new W({context:this.context,units:"cents",value:t.detune}),this.frequency.connect(this.voice0.frequency),this.frequency.chain(this.harmonicity,this.voice1.frequency),this._vibrato.connect(this._vibratoGain),this._vibratoGain.fan(this.voice0.detune,this.voice1.detune),this.detune.fan(this.voice0.detune,this.voice1.detune),this.voice0.connect(this.output),this.voice1.connect(this.output),P(this,["voice0","voice1","frequency","vibratoAmount","vibratoRate"])}getLevelAtTime(t){return t=this.toSeconds(t),this.voice0.envelope.getValueAtTime(t)+this.voice1.envelope.getValueAtTime(t)}static getDefaults(){return Qt(kt.getDefaults(),{vibratoAmount:.5,vibratoRate:5,harmonicity:1.5,voice0:Qt(St(He.getDefaults(),Object.keys(kt.getDefaults())),{filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}}),voice1:Qt(St(He.getDefaults(),Object.keys(kt.getDefaults())),{filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}})})}_triggerEnvelopeAttack(t,e){this.voice0._triggerEnvelopeAttack(t,e),this.voice1._triggerEnvelopeAttack(t,e)}_triggerEnvelopeRelease(t){return this.voice0._triggerEnvelopeRelease(t),this.voice1._triggerEnvelopeRelease(t),this}dispose(){return super.dispose(),this.voice0.dispose(),this.voice1.dispose(),this.frequency.dispose(),this.detune.dispose(),this._vibrato.dispose(),this.vibratoRate.dispose(),this._vibratoGain.dispose(),this.harmonicity.dispose(),this}}class To extends ws{constructor(){const t=b(To.getDefaults(),arguments);super(t),this.name="FMSynth",this.modulationIndex=new lt({context:this.context,value:t.modulationIndex}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output)}static getDefaults(){return Object.assign(ws.getDefaults(),{modulationIndex:10})}dispose(){return super.dispose(),this.modulationIndex.dispose(),this}}const ir=[1,1.483,1.932,2.546,2.63,3.897];class So extends kt{constructor(){const t=b(So.getDefaults(),arguments);super(t),this.name="MetalSynth",this._oscillators=[],this._freqMultipliers=[],this.detune=new W({context:this.context,units:"cents",value:t.detune}),this.frequency=new W({context:this.context,units:"frequency"}),this._amplitude=new F({context:this.context,gain:0}).connect(this.output),this._highpass=new Zt({Q:0,context:this.context,type:"highpass"}).connect(this._amplitude);for(let e=0;ethis.onsilence(this):$,type:"square"});s.connect(this._highpass),this._oscillators[e]=s;const i=new lt({context:this.context,value:ir[e]});this._freqMultipliers[e]=i,this.frequency.chain(i,s.frequency),this.detune.connect(s.detune)}this._filterFreqScaler=new Ce({context:this.context,max:7e3,min:this.toFrequency(t.resonance)}),this.envelope=new Dt({attack:t.envelope.attack,attackCurve:"linear",context:this.context,decay:t.envelope.decay,release:t.envelope.release,sustain:0}),this.envelope.chain(this._filterFreqScaler,this._highpass.frequency),this.envelope.connect(this._amplitude.gain),this._octaves=t.octaves,this.octaves=t.octaves}static getDefaults(){return Qt(kt.getDefaults(),{envelope:Object.assign(St(Dt.getDefaults(),Object.keys(A.getDefaults())),{attack:.001,decay:1.4,release:.2}),harmonicity:5.1,modulationIndex:32,octaves:1.5,resonance:4e3})}_triggerEnvelopeAttack(t,e=1){return this.envelope.triggerAttack(t,e),this._oscillators.forEach(s=>s.start(t)),this.envelope.sustain===0&&this._oscillators.forEach(s=>{s.stop(t+this.toSeconds(this.envelope.attack)+this.toSeconds(this.envelope.decay))}),this}_triggerEnvelopeRelease(t){return this.envelope.triggerRelease(t),this._oscillators.forEach(e=>e.stop(t+this.toSeconds(this.envelope.release))),this}getLevelAtTime(t){return t=this.toSeconds(t),this.envelope.getValueAtTime(t)}get modulationIndex(){return this._oscillators[0].modulationIndex.value}set modulationIndex(t){this._oscillators.forEach(e=>e.modulationIndex.value=t)}get harmonicity(){return this._oscillators[0].harmonicity.value}set harmonicity(t){this._oscillators.forEach(e=>e.harmonicity.value=t)}get resonance(){return this._filterFreqScaler.min}set resonance(t){this._filterFreqScaler.min=this.toFrequency(t),this.octaves=this._octaves}get octaves(){return this._octaves}set octaves(t){this._octaves=t,this._filterFreqScaler.max=this._filterFreqScaler.min*Math.pow(2,t)}dispose(){return super.dispose(),this._oscillators.forEach(t=>t.dispose()),this._freqMultipliers.forEach(t=>t.dispose()),this.frequency.dispose(),this.detune.dispose(),this._filterFreqScaler.dispose(),this._amplitude.dispose(),this.envelope.dispose(),this._highpass.dispose(),this}}class Dn extends Le{constructor(){const t=b(Dn.getDefaults(),arguments);super(t),this.name="MembraneSynth",this.portamento=0,this.pitchDecay=t.pitchDecay,this.octaves=t.octaves,P(this,["oscillator","envelope"])}static getDefaults(){return Qt(kt.getDefaults(),Le.getDefaults(),{envelope:{attack:.001,attackCurve:"exponential",decay:.4,release:1.4,sustain:.01},octaves:10,oscillator:{type:"sine"},pitchDecay:.05})}setNote(t,e){const s=this.toSeconds(e),i=this.toFrequency(t instanceof qt?t.toFrequency():t),r=i*this.octaves;return this.oscillator.frequency.setValueAtTime(r,s),this.oscillator.frequency.exponentialRampToValueAtTime(i,s+this.toSeconds(this.pitchDecay)),this}dispose(){return super.dispose(),this}}re([go(0)],Dn.prototype,"octaves",void 0);re([ge(0)],Dn.prototype,"pitchDecay",void 0);class ko extends Jt{constructor(){const t=b(ko.getDefaults(),arguments);super(t),this.name="NoiseSynth",this.noise=new Pe(Object.assign({context:this.context},t.noise)),this.envelope=new Ls(Object.assign({context:this.context},t.envelope)),this.noise.chain(this.envelope,this.output)}static getDefaults(){return Object.assign(Jt.getDefaults(),{envelope:Object.assign(St(Dt.getDefaults(),Object.keys(A.getDefaults())),{decay:.1,sustain:0}),noise:Object.assign(St(Pe.getDefaults(),Object.keys(pt.getDefaults())),{type:"white"})})}triggerAttack(t,e=1){return t=this.toSeconds(t),this.envelope.triggerAttack(t,e),this.noise.start(t),this.envelope.sustain===0&&this.noise.stop(t+this.toSeconds(this.envelope.attack)+this.toSeconds(this.envelope.decay)),this}triggerRelease(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this.noise.stop(t+this.toSeconds(this.envelope.release)),this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",0),this._syncMethod("triggerRelease",0)),this}triggerAttackRelease(t,e,s=1){return e=this.toSeconds(e),t=this.toSeconds(t),this.triggerAttack(e,s),this.triggerRelease(e+t),this}dispose(){return super.dispose(),this.noise.dispose(),this.envelope.dispose(),this}}const Ii=new Set;function Fi(n){Ii.add(n)}function Ao(n,t){const e=`registerProcessor("${n}", ${t})`;Ii.add(e)}function op(){return Array.from(Ii).join(` +`)}class Kn extends A{constructor(t){super(t),this.name="ToneAudioWorklet",this.workletOptions={},this.onprocessorerror=$;const e=URL.createObjectURL(new Blob([op()],{type:"text/javascript"})),s=this._audioWorkletName();this._dummyGain=this.context.createGain(),this._dummyParam=this._dummyGain.gain,this.context.addAudioWorkletModule(e).then(()=>{this.disposed||(this._worklet=this.context.createAudioWorkletNode(s,this.workletOptions),this._worklet.onprocessorerror=this.onprocessorerror.bind(this),this.onReady(this._worklet))})}dispose(){return super.dispose(),this._dummyGain.disconnect(),this._worklet&&(this._worklet.port.postMessage("dispose"),this._worklet.disconnect()),this}}const ap=` + /** + * The base AudioWorkletProcessor for use in Tone.js. Works with the {@link ToneAudioWorklet}. + */ + class ToneAudioWorkletProcessor extends AudioWorkletProcessor { + + constructor(options) { + + super(options); + /** + * If the processor was disposed or not. Keep alive until it's disposed. + */ + this.disposed = false; + /** + * The number of samples in the processing block + */ + this.blockSize = 128; + /** + * the sample rate + */ + this.sampleRate = sampleRate; + + this.port.onmessage = (event) => { + // when it receives a dispose + if (event.data === "dispose") { + this.disposed = true; + } + }; + } + } +`;Fi(ap);const cp=` + /** + * Abstract class for a single input/output processor. + * has a 'generate' function which processes one sample at a time + */ + class SingleIOProcessor extends ToneAudioWorkletProcessor { + + constructor(options) { + super(Object.assign(options, { + numberOfInputs: 1, + numberOfOutputs: 1 + })); + /** + * Holds the name of the parameter and a single value of that + * parameter at the current sample + * @type { [name: string]: number } + */ + this.params = {} + } + + /** + * Generate an output sample from the input sample and parameters + * @abstract + * @param input number + * @param channel number + * @param parameters { [name: string]: number } + * @returns number + */ + generate(){} + + /** + * Update the private params object with the + * values of the parameters at the given index + * @param parameters { [name: string]: Float32Array }, + * @param index number + */ + updateParams(parameters, index) { + for (const paramName in parameters) { + const param = parameters[paramName]; + if (param.length > 1) { + this.params[paramName] = parameters[paramName][index]; + } else { + this.params[paramName] = parameters[paramName][0]; + } + } + } + + /** + * Process a single frame of the audio + * @param inputs Float32Array[][] + * @param outputs Float32Array[][] + */ + process(inputs, outputs, parameters) { + const input = inputs[0]; + const output = outputs[0]; + // get the parameter values + const channelCount = Math.max(input && input.length || 0, output.length); + for (let sample = 0; sample < this.blockSize; sample++) { + this.updateParams(parameters, sample); + for (let channel = 0; channel < channelCount; channel++) { + const inputSample = input && input.length ? input[channel][sample] : 0; + output[channel][sample] = this.generate(inputSample, channel, this.params); + } + } + return !this.disposed; + } + }; +`;Fi(cp);const hp=` + /** + * A multichannel buffer for use within an AudioWorkletProcessor as a delay line + */ + class DelayLine { + + constructor(size, channels) { + this.buffer = []; + this.writeHead = [] + this.size = size; + + // create the empty channels + for (let i = 0; i < channels; i++) { + this.buffer[i] = new Float32Array(this.size); + this.writeHead[i] = 0; + } + } + + /** + * Push a value onto the end + * @param channel number + * @param value number + */ + push(channel, value) { + this.writeHead[channel] += 1; + if (this.writeHead[channel] > this.size) { + this.writeHead[channel] = 0; + } + this.buffer[channel][this.writeHead[channel]] = value; + } + + /** + * Get the recorded value of the channel given the delay + * @param channel number + * @param delay number delay samples + */ + get(channel, delay) { + let readHead = this.writeHead[channel] - Math.floor(delay); + if (readHead < 0) { + readHead += this.size; + } + return this.buffer[channel][readHead]; + } + } +`;Fi(hp);const Co="feedback-comb-filter",lp=` + class FeedbackCombFilterWorklet extends SingleIOProcessor { + + constructor(options) { + super(options); + this.delayLine = new DelayLine(this.sampleRate, options.channelCount || 2); + } + + static get parameterDescriptors() { + return [{ + name: "delayTime", + defaultValue: 0.1, + minValue: 0, + maxValue: 1, + automationRate: "k-rate" + }, { + name: "feedback", + defaultValue: 0.5, + minValue: 0, + maxValue: 0.9999, + automationRate: "k-rate" + }]; + } + + generate(input, channel, parameters) { + const delayedSample = this.delayLine.get(channel, parameters.delayTime * this.sampleRate); + this.delayLine.push(channel, input + delayedSample * parameters.feedback); + return delayedSample; + } + } +`;Ao(Co,lp);class On extends Kn{constructor(){const t=b(On.getDefaults(),arguments,["delayTime","resonance"]);super(t),this.name="FeedbackCombFilter",this.input=new F({context:this.context}),this.output=new F({context:this.context}),this.delayTime=new U({context:this.context,value:t.delayTime,units:"time",minValue:0,maxValue:1,param:this._dummyParam,swappable:!0}),this.resonance=new U({context:this.context,value:t.resonance,units:"normalRange",param:this._dummyParam,swappable:!0}),P(this,["resonance","delayTime"])}_audioWorkletName(){return Co}static getDefaults(){return Object.assign(A.getDefaults(),{delayTime:.1,resonance:.5})}onReady(t){Ht(this.input,t,this.output);const e=t.parameters.get("delayTime");this.delayTime.setParam(e);const s=t.parameters.get("feedback");this.resonance.setParam(s)}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.delayTime.dispose(),this.resonance.dispose(),this}}class Nn extends A{constructor(){const t=b(Nn.getDefaults(),arguments,["frequency","type"]);super(t),this.name="OnePoleFilter",this._frequency=t.frequency,this._type=t.type,this.input=new F({context:this.context}),this.output=new F({context:this.context}),this._createFilter()}static getDefaults(){return Object.assign(A.getDefaults(),{frequency:880,type:"lowpass"})}_createFilter(){const t=this._filter,e=this.toFrequency(this._frequency),s=1/(2*Math.PI*e);if(this._type==="lowpass"){const i=1/(s*this.context.sampleRate),r=i-1;this._filter=this.context.createIIRFilter([i,0],[1,r])}else{const i=1/(s*this.context.sampleRate)-1;this._filter=this.context.createIIRFilter([1,-1],[1,i])}this.input.chain(this._filter,this.output),t&&this.context.setTimeout(()=>{this.disposed||(this.input.disconnect(t),t.disconnect())},this.blockTime)}get frequency(){return this._frequency}set frequency(t){this._frequency=t,this._createFilter()}get type(){return this._type}set type(t){this._type=t,this._createFilter()}getFrequencyResponse(t=128){const e=new Float32Array(t);for(let r=0;rthis.releaseAll(i),I(!Yt(t.voice),"DEPRECATED: The polyphony count is no longer the first argument.");const e=t.voice.getDefaults();this.options=Object.assign(e,t.options),this.voice=t.voice,this.maxPolyphony=t.maxPolyphony,this._dummyVoice=this._getNextAvailableVoice();const s=this._voices.indexOf(this._dummyVoice);this._voices.splice(s,1),this._gcTimeout=this.context.setInterval(this._collectGarbage.bind(this),1)}static getDefaults(){return Object.assign(Jt.getDefaults(),{maxPolyphony:32,options:{},voice:Le})}get activeVoices(){return this._activeVoices.length}_makeVoiceAvailable(t){this._availableVoices.push(t);const e=this._activeVoices.findIndex(s=>s.voice===t);this._activeVoices.splice(e,1)}_getNextAvailableVoice(){if(this._availableVoices.length)return this._availableVoices.shift();if(this._voices.lengthMath.ceil(this._averageActiveVoices+1)){const t=this._availableVoices.shift(),e=this._voices.indexOf(t);this._voices.splice(e,1),this.context.isOffline||t.dispose()}}_triggerAttack(t,e,s){t.forEach(i=>{const r=new vs(this.context,i).toMidi(),o=this._getNextAvailableVoice();o&&(o.triggerAttack(i,e,s),this._activeVoices.push({midi:r,voice:o,released:!1}),this.log("triggerAttack",i,e))})}_triggerRelease(t,e){t.forEach(s=>{const i=new vs(this.context,s).toMidi(),r=this._activeVoices.find(({midi:o,released:a})=>o===i&&!a);r&&(r.voice.triggerRelease(e),r.released=!0,this.log("triggerRelease",s,e))})}_scheduleEvent(t,e,s,i){I(!this.disposed,"Synth was already disposed"),s<=this.now()?t==="attack"?this._triggerAttack(e,s,i):this._triggerRelease(e,s):this.context.setTimeout(()=>{this.disposed||this._scheduleEvent(t,e,s,i)},s-this.now())}triggerAttack(t,e,s){Array.isArray(t)||(t=[t]);const i=this.toSeconds(e);return this._scheduleEvent("attack",t,i,s),this}triggerRelease(t,e){Array.isArray(t)||(t=[t]);const s=this.toSeconds(e);return this._scheduleEvent("release",t,s),this}triggerAttackRelease(t,e,s,i){const r=this.toSeconds(s);if(this.triggerAttack(t,r,i),Ct(e)){I(Ct(t),"If the duration is an array, the notes must also be an array"),t=t;for(let o=0;o0,"The duration must be greater than 0"),this.triggerRelease(t[o],r+c)}}else{const o=this.toSeconds(e);I(o>0,"The duration must be greater than 0"),this.triggerRelease(t,r+o)}return this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1),this.context.transport.on("stop",this._syncedRelease),this.context.transport.on("pause",this._syncedRelease),this.context.transport.on("loopEnd",this._syncedRelease)),this}set(t){const e=St(t,["onsilence","context"]);return this.options=Qt(this.options,e),this._voices.forEach(s=>s.set(e)),this._dummyVoice.set(e),this}get(){return this._dummyVoice.get()}releaseAll(t){const e=this.toSeconds(t);return this._activeVoices.forEach(({voice:s})=>{s.triggerRelease(e)}),this}dispose(){return super.dispose(),this._dummyVoice.dispose(),this._voices.forEach(t=>t.dispose()),this._activeVoices=[],this._availableVoices=[],this.context.clearInterval(this._gcTimeout),this}}class Mn extends Jt{constructor(){const t=b(Mn.getDefaults(),arguments,["urls","onload","baseUrl"],"urls");super(t),this.name="Sampler",this._activeSources=new Map;const e={};Object.keys(t.urls).forEach(s=>{const i=parseInt(s,10);if(I(zs(s)||Yt(i)&&isFinite(i),`url key is neither a note or midi pitch: ${s}`),zs(s)){const r=new qt(this.context,s).toMidi();e[r]=t.urls[s]}else Yt(i)&&isFinite(i)&&(e[i]=t.urls[i])}),this._buffers=new Is({urls:e,onload:t.onload,baseUrl:t.baseUrl,onerror:t.onerror}),this.attack=t.attack,this.release=t.release,this.curve=t.curve,this._buffers.loaded&&Promise.resolve().then(t.onload)}static getDefaults(){return Object.assign(Jt.getDefaults(),{attack:0,baseUrl:"",curve:"exponential",onload:$,onerror:$,release:.1,urls:{}})}_findClosest(t){let s=0;for(;s<96;){if(this._buffers.has(t+s))return-s;if(this._buffers.has(t-s))return s;s++}throw new Error(`No available buffers for note: ${t}`)}triggerAttack(t,e,s=1){return this.log("triggerAttack",t,e,s),Array.isArray(t)||(t=[t]),t.forEach(i=>{const r=fo(new qt(this.context,i).toFrequency()),o=Math.round(r),a=r-o,c=this._findClosest(o),h=o-c,l=this._buffers.get(h),u=ys(c+a),p=new ze({url:l,context:this.context,curve:this.curve,fadeIn:this.attack,fadeOut:this.release,playbackRate:u}).connect(this.output);p.start(e,0,l.duration/u,s),Ct(this._activeSources.get(o))||this._activeSources.set(o,[]),this._activeSources.get(o).push(p),p.onended=()=>{if(this._activeSources&&this._activeSources.has(o)){const f=this._activeSources.get(o),d=f.indexOf(p);d!==-1&&f.splice(d,1)}}}),this}triggerRelease(t,e){return this.log("triggerRelease",t,e),Array.isArray(t)||(t=[t]),t.forEach(s=>{const i=new qt(this.context,s).toMidi();if(this._activeSources.has(i)&&this._activeSources.get(i).length){const r=this._activeSources.get(i);e=this.toSeconds(e),r.forEach(o=>{o.stop(e)}),this._activeSources.set(i,[])}}),this}releaseAll(t){const e=this.toSeconds(t);return this._activeSources.forEach(s=>{for(;s.length;)s.shift().stop(e)}),this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1)),this}triggerAttackRelease(t,e,s,i=1){const r=this.toSeconds(s);return this.triggerAttack(t,r,i),Ct(e)?(I(Ct(t),"notes must be an array when duration is array"),t.forEach((o,a)=>{const c=e[Math.min(a,e.length-1)];this.triggerRelease(o,r+this.toSeconds(c))})):this.triggerRelease(t,r+this.toSeconds(e)),this}add(t,e,s){if(I(zs(t)||isFinite(t),`note must be a pitch or midi: ${t}`),zs(t)){const i=new qt(this.context,t).toMidi();this._buffers.add(i,e,s)}else this._buffers.add(t,e,s);return this}get loaded(){return this._buffers.loaded}dispose(){return super.dispose(),this._buffers.dispose(),this._activeSources.forEach(t=>{t.forEach(e=>e.dispose())}),this._activeSources.clear(),this}}re([ge(0)],Mn.prototype,"attack",void 0);re([ge(0)],Mn.prototype,"release",void 0);class fe extends bt{constructor(){const t=b(fe.getDefaults(),arguments,["callback","value"]);super(t),this.name="ToneEvent",this._state=new Ms("stopped"),this._startOffset=0,this._loop=t.loop,this.callback=t.callback,this.value=t.value,this._loopStart=this.toTicks(t.loopStart),this._loopEnd=this.toTicks(t.loopEnd),this._playbackRate=t.playbackRate,this._probability=t.probability,this._humanize=t.humanize,this.mute=t.mute,this._playbackRate=t.playbackRate,this._state.increasing=!0,this._rescheduleEvents()}static getDefaults(){return Object.assign(bt.getDefaults(),{callback:$,humanize:!1,loop:!1,loopEnd:"1m",loopStart:0,mute:!1,playbackRate:1,probability:1,value:null})}_rescheduleEvents(t=-1){this._state.forEachFrom(t,e=>{let s;if(e.state==="started"){e.id!==-1&&this.context.transport.clear(e.id);const i=e.time+Math.round(this.startOffset/this._playbackRate);if(this._loop===!0||Yt(this._loop)&&this._loop>1){s=1/0,Yt(this._loop)&&(s=this._loop*this._getLoopDuration());const r=this._state.getAfter(i);r!==null&&(s=Math.min(s,r.time-i)),s!==1/0&&(s=new ct(this.context,s));const o=new ct(this.context,this._getLoopDuration());e.id=this.context.transport.scheduleRepeat(this._tick.bind(this),o,new ct(this.context,i),s)}else e.id=this.context.transport.schedule(this._tick.bind(this),new ct(this.context,i))}})}get state(){return this._state.getValueAtTime(this.context.transport.ticks)}get startOffset(){return this._startOffset}set startOffset(t){this._startOffset=t}get probability(){return this._probability}set probability(t){this._probability=t}get humanize(){return this._humanize}set humanize(t){this._humanize=t}start(t){const e=this.toTicks(t);return this._state.getValueAtTime(e)==="stopped"&&(this._state.add({id:-1,state:"started",time:e}),this._rescheduleEvents(e)),this}stop(t){this.cancel(t);const e=this.toTicks(t);if(this._state.getValueAtTime(e)==="started"){this._state.setStateAtTime("stopped",e,{id:-1});const s=this._state.getBefore(e);let i=e;s!==null&&(i=s.time),this._rescheduleEvents(i)}return this}cancel(t){t=ee(t,-1/0);const e=this.toTicks(t);return this._state.forEachFrom(e,s=>{this.context.transport.clear(s.id)}),this._state.cancel(e),this}_tick(t){const e=this.context.transport.getTicksAtTime(t);if(!this.mute&&this._state.getValueAtTime(e)==="started"){if(this.probability<1&&Math.random()>this.probability)return;if(this.humanize){let s=.02;ro(this.humanize)||(s=this.toSeconds(this.humanize)),t+=(Math.random()*2-1)*s}this.callback(t,this.value)}}_getLoopDuration(){return(this._loopEnd-this._loopStart)/this._playbackRate}get loop(){return this._loop}set loop(t){this._loop=t,this._rescheduleEvents()}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t,this._rescheduleEvents()}get loopEnd(){return new ct(this.context,this._loopEnd).toSeconds()}set loopEnd(t){this._loopEnd=this.toTicks(t),this._loop&&this._rescheduleEvents()}get loopStart(){return new ct(this.context,this._loopStart).toSeconds()}set loopStart(t){this._loopStart=this.toTicks(t),this._loop&&this._rescheduleEvents()}get progress(){if(this._loop){const t=this.context.transport.ticks,e=this._state.get(t);if(e!==null&&e.state==="started"){const s=this._getLoopDuration();return(t-e.time)%s/s}else return 0}else return 0}dispose(){return super.dispose(),this.cancel(),this._state.dispose(),this}}class an extends bt{constructor(){const t=b(an.getDefaults(),arguments,["callback","interval"]);super(t),this.name="Loop",this._event=new fe({context:this.context,callback:this._tick.bind(this),loop:!0,loopEnd:t.interval,playbackRate:t.playbackRate,probability:t.probability,humanize:t.humanize}),this.callback=t.callback,this.iterations=t.iterations}static getDefaults(){return Object.assign(bt.getDefaults(),{interval:"4n",callback:$,playbackRate:1,iterations:1/0,probability:1,mute:!1,humanize:!1})}start(t){return this._event.start(t),this}stop(t){return this._event.stop(t),this}cancel(t){return this._event.cancel(t),this}_tick(t){this.callback(t)}get state(){return this._event.state}get progress(){return this._event.progress}get interval(){return this._event.loopEnd}set interval(t){this._event.loopEnd=t}get playbackRate(){return this._event.playbackRate}set playbackRate(t){this._event.playbackRate=t}get humanize(){return this._event.humanize}set humanize(t){this._event.humanize=t}get probability(){return this._event.probability}set probability(t){this._event.probability=t}get mute(){return this._event.mute}set mute(t){this._event.mute=t}get iterations(){return this._event.loop===!0?1/0:this._event.loop}set iterations(t){t===1/0?this._event.loop=!0:this._event.loop=t}dispose(){return super.dispose(),this._event.dispose(),this}}class cn extends fe{constructor(){const t=b(cn.getDefaults(),arguments,["callback","events"]);super(t),this.name="Part",this._state=new Ms("stopped"),this._events=new Set,this._state.increasing=!0,t.events.forEach(e=>{Ct(e)?this.add(e[0],e[1]):this.add(e)})}static getDefaults(){return Object.assign(fe.getDefaults(),{events:[]})}start(t,e){const s=this.toTicks(t);if(this._state.getValueAtTime(s)!=="started"){e=ee(e,this._loop?this._loopStart:0),this._loop?e=ee(e,this._loopStart):e=ee(e,0);const i=this.toTicks(e);this._state.add({id:-1,offset:i,state:"started",time:s}),this._forEach(r=>{this._startNote(r,s,i)})}return this}_startNote(t,e,s){e-=s,this._loop?t.startOffset>=this._loopStart&&t.startOffset=s&&(t.loop=!1,t.start(new ct(this.context,e))):t.startOffset>=s&&t.start(new ct(this.context,e))}get startOffset(){return this._startOffset}set startOffset(t){this._startOffset=t,this._forEach(e=>{e.startOffset+=this._startOffset})}stop(t){const e=this.toTicks(t);return this._state.cancel(e),this._state.setStateAtTime("stopped",e),this._forEach(s=>{s.stop(t)}),this}at(t,e){const s=new gt(this.context,t).toTicks(),i=new ct(this.context,1).toSeconds(),r=this._events.values();let o=r.next();for(;!o.done;){const a=o.value;if(Math.abs(s-a.startOffset){e.state==="started"?this._startNote(t,e.time,e.offset):t.stop(new ct(this.context,e.time))})}remove(t,e){return be(t)&&t.hasOwnProperty("time")&&(e=t,t=e.time),t=this.toTicks(t),this._events.forEach(s=>{s.startOffset===t&&(Bt(e)||Q(e)&&s.value===e)&&(this._events.delete(s),s.dispose())}),this}clear(){return this._forEach(t=>t.dispose()),this._events.clear(),this}cancel(t){return this._forEach(e=>e.cancel(t)),this._state.cancel(this.toTicks(t)),this}_forEach(t){return this._events&&this._events.forEach(e=>{e instanceof cn?e._forEach(t):t(e)}),this}_setAll(t,e){this._forEach(s=>{s[t]=e})}_tick(t,e){this.mute||this.callback(t,e)}_testLoopBoundries(t){this._loop&&(t.startOffset=this._loopEnd)?t.cancel(0):t.state==="stopped"&&this._restartEvent(t)}get probability(){return this._probability}set probability(t){this._probability=t,this._setAll("probability",t)}get humanize(){return this._humanize}set humanize(t){this._humanize=t,this._setAll("humanize",t)}get loop(){return this._loop}set loop(t){this._loop=t,this._forEach(e=>{e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.loop=t,this._testLoopBoundries(e)})}get loopEnd(){return new ct(this.context,this._loopEnd).toSeconds()}set loopEnd(t){this._loopEnd=this.toTicks(t),this._loop&&this._forEach(e=>{e.loopEnd=t,this._testLoopBoundries(e)})}get loopStart(){return new ct(this.context,this._loopStart).toSeconds()}set loopStart(t){this._loopStart=this.toTicks(t),this._loop&&this._forEach(e=>{e.loopStart=this.loopStart,this._testLoopBoundries(e)})}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t,this._setAll("playbackRate",t)}get length(){return this._events.size}dispose(){return super.dispose(),this.clear(),this}}function*up(n){let t=0;for(;t=0;)t=Be(t,0,n-1),yield t,t--}function*fs(n,t){for(;;)yield*t(n)}function*rr(n,t){let e=t?0:n-1;for(;;)e=Be(e,0,n-1),yield e,t?(e++,e>=n-1&&(t=!1)):(e--,e<=0&&(t=!0))}function*pp(n){let t=0,e=0;for(;t=0;)t=Be(t,0,n-1),yield t,e++,t+=e%2?-2:1}function*mp(n){for(;;)yield Math.floor(Math.random()*n)}function*_p(n){const t=[];for(let e=0;e0;){const e=t.splice(Math.floor(t.length*Math.random()),1);yield Be(e[0],0,n-1)}}function*gp(n){let t=Math.floor(Math.random()*n);for(;;)t===0?t++:t===n-1||Math.random()<.5?t--:t++,yield t}function*or(n,t="up",e=0){switch(I(n>=1,"The number of values must be at least one"),t){case"up":yield*fs(n,up);case"down":yield*fs(n,dp);case"upDown":yield*rr(n,!0);case"downUp":yield*rr(n,!1);case"alternateUp":yield*fs(n,pp);case"alternateDown":yield*fs(n,fp);case"random":yield*mp(n);case"randomOnce":yield*fs(n,_p);case"randomWalk":yield*gp(n)}}class No extends an{constructor(){const t=b(No.getDefaults(),arguments,["callback","values","pattern"]);super(t),this.name="Pattern",this.callback=t.callback,this._values=t.values,this._pattern=or(t.values.length,t.pattern),this._type=t.pattern}static getDefaults(){return Object.assign(an.getDefaults(),{pattern:"up",values:[],callback:$})}_tick(t){const e=this._pattern.next();this._index=e.value,this._value=this._values[e.value],this.callback(t,this._value)}get values(){return this._values}set values(t){this._values=t,this.pattern=this._type}get value(){return this._value}get index(){return this._index}get pattern(){return this._type}set pattern(t){this._type=t,this._pattern=or(this._values.length,this._type)}}class Eo extends fe{constructor(){const t=b(Eo.getDefaults(),arguments,["callback","events","subdivision"]);super(t),this.name="Sequence",this._part=new cn({callback:this._seqCallback.bind(this),context:this.context}),this._events=[],this._eventsArray=[],this._subdivision=this.toTicks(t.subdivision),this.events=t.events,this.loop=t.loop,this.loopStart=t.loopStart,this.loopEnd=t.loopEnd,this.playbackRate=t.playbackRate,this.probability=t.probability,this.humanize=t.humanize,this.mute=t.mute,this.playbackRate=t.playbackRate}static getDefaults(){return Object.assign(St(fe.getDefaults(),["value"]),{events:[],loop:!0,loopEnd:0,loopStart:0,subdivision:"8n"})}_seqCallback(t,e){e!==null&&!this.mute&&this.callback(t,e)}get events(){return this._events}set events(t){this.clear(),this._eventsArray=t,this._events=this._createSequence(this._eventsArray),this._eventsUpdated()}start(t,e){return this._part.start(t,e&&this._indexTime(e)),this}stop(t){return this._part.stop(t),this}get subdivision(){return new ct(this.context,this._subdivision).toSeconds()}_createSequence(t){return new Proxy(t,{get:(e,s)=>e[s],set:(e,s,i)=>(oe(s)&&isFinite(parseInt(s,10))&&Ct(i)?e[s]=this._createSequence(i):e[s]=i,this._eventsUpdated(),!0)})}_eventsUpdated(){this._part.clear(),this._rescheduleSequence(this._eventsArray,this._subdivision,this.startOffset),this.loopEnd=this.loopEnd}_rescheduleSequence(t,e,s){t.forEach((i,r)=>{const o=r*e+s;if(Ct(i))this._rescheduleSequence(i,e/i.length,o);else{const a=new ct(this.context,o,"i").toSeconds();this._part.add(a,i)}})}_indexTime(t){return new ct(this.context,t*this._subdivision+this.startOffset).toSeconds()}clear(){return this._part.clear(),this}dispose(){return super.dispose(),this._part.dispose(),this}get loop(){return this._part.loop}set loop(t){this._part.loop=t}get loopStart(){return this._loopStart}set loopStart(t){this._loopStart=t,this._part.loopStart=this._indexTime(t)}get loopEnd(){return this._loopEnd}set loopEnd(t){this._loopEnd=t,t===0?this._part.loopEnd=this._indexTime(this._eventsArray.length):this._part.loopEnd=this._indexTime(t)}get startOffset(){return this._part.startOffset}set startOffset(t){this._part.startOffset=t}get playbackRate(){return this._part.playbackRate}set playbackRate(t){this._part.playbackRate=t}get probability(){return this._part.probability}set probability(t){this._part.probability=t}get progress(){return this._part.progress}get humanize(){return this._part.humanize}set humanize(t){this._part.humanize=t}get length(){return this._part.length}}class Ws extends A{constructor(){const t=b(Ws.getDefaults(),arguments,["fade"]);super(t),this.name="CrossFade",this._panner=this.context.createStereoPanner(),this._split=this.context.createChannelSplitter(2),this._g2a=new rp({context:this.context}),this.a=new F({context:this.context,gain:0}),this.b=new F({context:this.context,gain:0}),this.output=new F({context:this.context}),this._internalChannels=[this.a,this.b],this.fade=new W({context:this.context,units:"normalRange",value:t.fade}),P(this,"fade"),this.context.getConstant(1).connect(this._panner),this._panner.connect(this._split),this._panner.channelCount=1,this._panner.channelCountMode="explicit",Lt(this._split,this.a.gain,0),Lt(this._split,this.b.gain,1),this.fade.chain(this._g2a,this._panner.pan),this.a.connect(this.output),this.b.connect(this.output)}static getDefaults(){return Object.assign(A.getDefaults(),{fade:.5})}dispose(){return super.dispose(),this.a.dispose(),this.b.dispose(),this.output.dispose(),this.fade.dispose(),this._g2a.dispose(),this._panner.disconnect(),this._split.disconnect(),this}}class vt extends A{constructor(t){super(t),this.name="Effect",this._dryWet=new Ws({context:this.context}),this.wet=this._dryWet.fade,this.effectSend=new F({context:this.context}),this.effectReturn=new F({context:this.context}),this.input=new F({context:this.context}),this.output=this._dryWet,this.input.fan(this._dryWet.a,this.effectSend),this.effectReturn.connect(this._dryWet.b),this.wet.setValueAtTime(t.wet,0),this._internalChannels=[this.effectReturn,this.effectSend],P(this,"wet")}static getDefaults(){return Object.assign(A.getDefaults(),{wet:1})}connectEffect(t){return this._internalChannels.push(t),this.effectSend.chain(t,this.effectReturn),this}dispose(){return super.dispose(),this._dryWet.dispose(),this.effectSend.dispose(),this.effectReturn.dispose(),this.wet.dispose(),this}}class hn extends vt{constructor(t){super(t),this.name="LFOEffect",this._lfo=new Vt({context:this.context,frequency:t.frequency,amplitude:t.depth}),this.depth=this._lfo.amplitude,this.frequency=this._lfo.frequency,this.type=t.type,P(this,["frequency","depth"])}static getDefaults(){return Object.assign(vt.getDefaults(),{frequency:1,type:"sine",depth:1})}start(t){return this._lfo.start(t),this}stop(t){return this._lfo.stop(t),this}sync(){return this._lfo.sync(),this}unsync(){return this._lfo.unsync(),this}get type(){return this._lfo.type}set type(t){this._lfo.type=t}dispose(){return super.dispose(),this._lfo.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class Mo extends hn{constructor(){const t=b(Mo.getDefaults(),arguments,["frequency","baseFrequency","octaves"]);super(t),this.name="AutoFilter",this.filter=new Zt(Object.assign(t.filter,{context:this.context})),this.connectEffect(this.filter),this._lfo.connect(this.filter.frequency),this.octaves=t.octaves,this.baseFrequency=t.baseFrequency}static getDefaults(){return Object.assign(hn.getDefaults(),{baseFrequency:200,octaves:2.6,filter:{type:"lowpass",rolloff:-12,Q:1}})}get baseFrequency(){return this._lfo.min}set baseFrequency(t){this._lfo.min=this.toFrequency(t),this.octaves=this._octaves}get octaves(){return this._octaves}set octaves(t){this._octaves=t,this._lfo.max=this._lfo.min*Math.pow(2,t)}dispose(){return super.dispose(),this.filter.dispose(),this}}class Rn extends A{constructor(){const t=b(Rn.getDefaults(),arguments,["pan"]);super(t),this.name="Panner",this._panner=this.context.createStereoPanner(),this.input=this._panner,this.output=this._panner,this.pan=new U({context:this.context,param:this._panner.pan,value:t.pan,minValue:-1,maxValue:1}),this._panner.channelCount=t.channelCount,this._panner.channelCountMode="explicit",P(this,"pan")}static getDefaults(){return Object.assign(A.getDefaults(),{pan:0,channelCount:1})}dispose(){return super.dispose(),this._panner.disconnect(),this.pan.dispose(),this}}class Ro extends hn{constructor(){const t=b(Ro.getDefaults(),arguments,["frequency"]);super(t),this.name="AutoPanner",this._panner=new Rn({context:this.context,channelCount:t.channelCount}),this.connectEffect(this._panner),this._lfo.connect(this._panner.pan),this._lfo.min=-1,this._lfo.max=1}static getDefaults(){return Object.assign(hn.getDefaults(),{channelCount:1})}dispose(){return super.dispose(),this._panner.dispose(),this}}class In extends A{constructor(){const t=b(In.getDefaults(),arguments,["smoothing"]);super(t),this.name="Follower",this._abs=this.input=new ip({context:this.context}),this._lowpass=this.output=new Nn({context:this.context,frequency:1/this.toSeconds(t.smoothing),type:"lowpass"}),this._abs.connect(this._lowpass),this._smoothing=t.smoothing}static getDefaults(){return Object.assign(A.getDefaults(),{smoothing:.05})}get smoothing(){return this._smoothing}set smoothing(t){this._smoothing=t,this._lowpass.frequency=1/this.toSeconds(this.smoothing)}dispose(){return super.dispose(),this._abs.dispose(),this._lowpass.dispose(),this}}class Io extends vt{constructor(){const t=b(Io.getDefaults(),arguments,["baseFrequency","octaves","sensitivity"]);super(t),this.name="AutoWah",this._follower=new In({context:this.context,smoothing:t.follower}),this._sweepRange=new Ri({context:this.context,min:0,max:1,exponent:.5}),this._baseFrequency=this.toFrequency(t.baseFrequency),this._octaves=t.octaves,this._inputBoost=new F({context:this.context}),this._bandpass=new Zt({context:this.context,rolloff:-48,frequency:0,Q:t.Q}),this._peaking=new Zt({context:this.context,type:"peaking"}),this._peaking.gain.value=t.gain,this.gain=this._peaking.gain,this.Q=this._bandpass.Q,this.effectSend.chain(this._inputBoost,this._follower,this._sweepRange),this._sweepRange.connect(this._bandpass.frequency),this._sweepRange.connect(this._peaking.frequency),this.effectSend.chain(this._bandpass,this._peaking,this.effectReturn),this._setSweepRange(),this.sensitivity=t.sensitivity,P(this,["gain","Q"])}static getDefaults(){return Object.assign(vt.getDefaults(),{baseFrequency:100,octaves:6,sensitivity:0,Q:2,gain:2,follower:.2})}get octaves(){return this._octaves}set octaves(t){this._octaves=t,this._setSweepRange()}get follower(){return this._follower.smoothing}set follower(t){this._follower.smoothing=t}get baseFrequency(){return this._baseFrequency}set baseFrequency(t){this._baseFrequency=this.toFrequency(t),this._setSweepRange()}get sensitivity(){return vn(1/this._inputBoost.gain.value)}set sensitivity(t){this._inputBoost.gain.value=1/gs(t)}_setSweepRange(){this._sweepRange.min=this._baseFrequency,this._sweepRange.max=Math.min(this._baseFrequency*Math.pow(2,this._octaves),this.context.sampleRate/2)}dispose(){return super.dispose(),this._follower.dispose(),this._sweepRange.dispose(),this._bandpass.dispose(),this._peaking.dispose(),this._inputBoost.dispose(),this}}const Fo="bit-crusher",yp=` + class BitCrusherWorklet extends SingleIOProcessor { + + static get parameterDescriptors() { + return [{ + name: "bits", + defaultValue: 12, + minValue: 1, + maxValue: 16, + automationRate: 'k-rate' + }]; + } + + generate(input, _channel, parameters) { + const step = Math.pow(0.5, parameters.bits - 1); + const val = step * Math.floor(input / step + 0.5); + return val; + } + } +`;Ao(Fo,yp);class qo extends vt{constructor(){const t=b(qo.getDefaults(),arguments,["bits"]);super(t),this.name="BitCrusher",this._bitCrusherWorklet=new qi({context:this.context,bits:t.bits}),this.connectEffect(this._bitCrusherWorklet),this.bits=this._bitCrusherWorklet.bits}static getDefaults(){return Object.assign(vt.getDefaults(),{bits:4})}dispose(){return super.dispose(),this._bitCrusherWorklet.dispose(),this}}class qi extends Kn{constructor(){const t=b(qi.getDefaults(),arguments);super(t),this.name="BitCrusherWorklet",this.input=new F({context:this.context}),this.output=new F({context:this.context}),this.bits=new U({context:this.context,value:t.bits,units:"positive",minValue:1,maxValue:16,param:this._dummyParam,swappable:!0})}static getDefaults(){return Object.assign(Kn.getDefaults(),{bits:12})}_audioWorkletName(){return Fo}onReady(t){Ht(this.input,t,this.output);const e=t.parameters.get("bits");this.bits.setParam(e)}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.bits.dispose(),this}}class Vo extends vt{constructor(){const t=b(Vo.getDefaults(),arguments,["order"]);super(t),this.name="Chebyshev",this._shaper=new ue({context:this.context,length:4096}),this._order=t.order,this.connectEffect(this._shaper),this.order=t.order,this.oversample=t.oversample}static getDefaults(){return Object.assign(vt.getDefaults(),{order:1,oversample:"none"})}_getCoefficient(t,e,s){return s.has(e)||(e===0?s.set(e,0):e===1?s.set(e,t):s.set(e,2*t*this._getCoefficient(t,e-1,s)-this._getCoefficient(t,e-2,s))),s.get(e)}get order(){return this._order}set order(t){I(Number.isInteger(t),"'order' must be an integer"),this._order=t,this._shaper.setMap(e=>this._getCoefficient(e,t,new Map))}get oversample(){return this._shaper.oversample}set oversample(t){this._shaper.oversample=t}dispose(){return super.dispose(),this._shaper.dispose(),this}}class ds extends A{constructor(){const t=b(ds.getDefaults(),arguments,["channels"]);super(t),this.name="Split",this._splitter=this.input=this.output=this.context.createChannelSplitter(t.channels),this._internalChannels=[this._splitter]}static getDefaults(){return Object.assign(A.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._splitter.disconnect(),this}}class Ge extends A{constructor(){const t=b(Ge.getDefaults(),arguments,["channels"]);super(t),this.name="Merge",this._merger=this.output=this.input=this.context.createChannelMerger(t.channels)}static getDefaults(){return Object.assign(A.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}}class ae extends A{constructor(t){super(t),this.name="StereoEffect",this.input=new F({context:this.context}),this.input.channelCount=2,this.input.channelCountMode="explicit",this._dryWet=this.output=new Ws({context:this.context,fade:t.wet}),this.wet=this._dryWet.fade,this._split=new ds({context:this.context,channels:2}),this._merge=new Ge({context:this.context,channels:2}),this.input.connect(this._split),this.input.connect(this._dryWet.a),this._merge.connect(this._dryWet.b),P(this,["wet"])}connectEffectLeft(...t){this._split.connect(t[0],0,0),Ht(...t),Lt(t[t.length-1],this._merge,0,0)}connectEffectRight(...t){this._split.connect(t[0],1,0),Ht(...t),Lt(t[t.length-1],this._merge,0,1)}static getDefaults(){return Object.assign(A.getDefaults(),{wet:1})}dispose(){return super.dispose(),this._dryWet.dispose(),this._split.dispose(),this._merge.dispose(),this}}class ti extends ae{constructor(t){super(t),this.feedback=new W({context:this.context,value:t.feedback,units:"normalRange"}),this._feedbackL=new F({context:this.context}),this._feedbackR=new F({context:this.context}),this._feedbackSplit=new ds({context:this.context,channels:2}),this._feedbackMerge=new Ge({context:this.context,channels:2}),this._merge.connect(this._feedbackSplit),this._feedbackMerge.connect(this._split),this._feedbackSplit.connect(this._feedbackL,0,0),this._feedbackL.connect(this._feedbackMerge,0,0),this._feedbackSplit.connect(this._feedbackR,1,0),this._feedbackR.connect(this._feedbackMerge,0,1),this.feedback.fan(this._feedbackL.gain,this._feedbackR.gain),P(this,["feedback"])}static getDefaults(){return Object.assign(ae.getDefaults(),{feedback:.5})}dispose(){return super.dispose(),this.feedback.dispose(),this._feedbackL.dispose(),this._feedbackR.dispose(),this._feedbackSplit.dispose(),this._feedbackMerge.dispose(),this}}class Po extends ti{constructor(){const t=b(Po.getDefaults(),arguments,["frequency","delayTime","depth"]);super(t),this.name="Chorus",this._depth=t.depth,this._delayTime=t.delayTime/1e3,this._lfoL=new Vt({context:this.context,frequency:t.frequency,min:0,max:1}),this._lfoR=new Vt({context:this.context,frequency:t.frequency,min:0,max:1,phase:180}),this._delayNodeL=new Xt({context:this.context}),this._delayNodeR=new Xt({context:this.context}),this.frequency=this._lfoL.frequency,P(this,["frequency"]),this._lfoL.frequency.connect(this._lfoR.frequency),this.connectEffectLeft(this._delayNodeL),this.connectEffectRight(this._delayNodeR),this._lfoL.connect(this._delayNodeL.delayTime),this._lfoR.connect(this._delayNodeR.delayTime),this.depth=this._depth,this.type=t.type,this.spread=t.spread}static getDefaults(){return Object.assign(ti.getDefaults(),{frequency:1.5,delayTime:3.5,depth:.7,type:"sine",spread:180,feedback:0,wet:.5})}get depth(){return this._depth}set depth(t){this._depth=t;const e=this._delayTime*t;this._lfoL.min=Math.max(this._delayTime-e,0),this._lfoL.max=this._delayTime+e,this._lfoR.min=Math.max(this._delayTime-e,0),this._lfoR.max=this._delayTime+e}get delayTime(){return this._delayTime*1e3}set delayTime(t){this._delayTime=t/1e3,this.depth=this._depth}get type(){return this._lfoL.type}set type(t){this._lfoL.type=t,this._lfoR.type=t}get spread(){return this._lfoR.phase-this._lfoL.phase}set spread(t){this._lfoL.phase=90-t/2,this._lfoR.phase=t/2+90}start(t){return this._lfoL.start(t),this._lfoR.start(t),this}stop(t){return this._lfoL.stop(t),this._lfoR.stop(t),this}sync(){return this._lfoL.sync(),this._lfoR.sync(),this}unsync(){return this._lfoL.unsync(),this._lfoR.unsync(),this}dispose(){return super.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._delayNodeL.dispose(),this._delayNodeR.dispose(),this.frequency.dispose(),this}}class Lo extends vt{constructor(){const t=b(Lo.getDefaults(),arguments,["distortion"]);super(t),this.name="Distortion",this._shaper=new ue({context:this.context,length:4096}),this._distortion=t.distortion,this.connectEffect(this._shaper),this.distortion=t.distortion,this.oversample=t.oversample}static getDefaults(){return Object.assign(vt.getDefaults(),{distortion:.4,oversample:"none"})}get distortion(){return this._distortion}set distortion(t){this._distortion=t;const e=t*100,s=Math.PI/180;this._shaper.setMap(i=>Math.abs(i)<.001?0:(3+e)*i*20*s/(Math.PI+e*Math.abs(i)))}get oversample(){return this._shaper.oversample}set oversample(t){this._shaper.oversample=t}dispose(){return super.dispose(),this._shaper.dispose(),this}}class ln extends vt{constructor(t){super(t),this.name="FeedbackEffect",this._feedbackGain=new F({context:this.context,gain:t.feedback,units:"normalRange"}),this.feedback=this._feedbackGain.gain,P(this,"feedback"),this.effectReturn.chain(this._feedbackGain,this.effectSend)}static getDefaults(){return Object.assign(vt.getDefaults(),{feedback:.125})}dispose(){return super.dispose(),this._feedbackGain.dispose(),this.feedback.dispose(),this}}class Wo extends ln{constructor(){const t=b(Wo.getDefaults(),arguments,["delayTime","feedback"]);super(t),this.name="FeedbackDelay",this._delayNode=new Xt({context:this.context,delayTime:t.delayTime,maxDelay:t.maxDelay}),this.delayTime=this._delayNode.delayTime,this.connectEffect(this._delayNode),P(this,"delayTime")}static getDefaults(){return Object.assign(ln.getDefaults(),{delayTime:.25,maxDelay:1})}dispose(){return super.dispose(),this._delayNode.dispose(),this.delayTime.dispose(),this}}class vp extends A{constructor(t){super(t),this.name="PhaseShiftAllpass",this.input=new F({context:this.context}),this.output=new F({context:this.context}),this.offset90=new F({context:this.context});const e=[.6923878,.9360654322959,.988229522686,.9987488452737],s=[.4021921162426,.856171088242,.9722909545651,.9952884791278];this._bank0=this._createAllPassFilterBank(e),this._bank1=this._createAllPassFilterBank(s),this._oneSampleDelay=this.context.createIIRFilter([0,1],[1,0]),Ht(this.input,...this._bank0,this._oneSampleDelay,this.output),Ht(this.input,...this._bank1,this.offset90)}_createAllPassFilterBank(t){return t.map(s=>{const i=[[s*s,0,-1],[1,0,-(s*s)]];return this.context.createIIRFilter(i[0],i[1])})}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.offset90.dispose(),this._bank0.forEach(t=>t.disconnect()),this._bank1.forEach(t=>t.disconnect()),this._oneSampleDelay.disconnect(),this}}class jo extends vt{constructor(){const t=b(jo.getDefaults(),arguments,["frequency"]);super(t),this.name="FrequencyShifter",this.frequency=new W({context:this.context,units:"frequency",value:t.frequency,minValue:-this.context.sampleRate/2,maxValue:this.context.sampleRate/2}),this._sine=new Sn({context:this.context,type:"sine"}),this._cosine=new ht({context:this.context,phase:-90,type:"sine"}),this._sineMultiply=new lt({context:this.context}),this._cosineMultiply=new lt({context:this.context}),this._negate=new wo({context:this.context}),this._add=new ls({context:this.context}),this._phaseShifter=new vp({context:this.context}),this.effectSend.connect(this._phaseShifter),this.frequency.fan(this._sine.frequency,this._cosine.frequency),this._phaseShifter.offset90.connect(this._cosineMultiply),this._cosine.connect(this._cosineMultiply.factor),this._phaseShifter.connect(this._sineMultiply),this._sine.connect(this._sineMultiply.factor),this._sineMultiply.connect(this._negate),this._cosineMultiply.connect(this._add),this._negate.connect(this._add.addend),this._add.connect(this.effectReturn);const e=this.immediate();this._sine.start(e),this._cosine.start(e)}static getDefaults(){return Object.assign(vt.getDefaults(),{frequency:0})}dispose(){return super.dispose(),this.frequency.dispose(),this._add.dispose(),this._cosine.dispose(),this._cosineMultiply.dispose(),this._negate.dispose(),this._phaseShifter.dispose(),this._sine.dispose(),this._sineMultiply.dispose(),this}}const ar=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100],cr=[225,556,441,341];class Bo extends ae{constructor(){const t=b(Bo.getDefaults(),arguments,["roomSize","dampening"]);super(t),this.name="Freeverb",this._combFilters=[],this._allpassFiltersL=[],this._allpassFiltersR=[],this.roomSize=new W({context:this.context,value:t.roomSize,units:"normalRange"}),this._allpassFiltersL=cr.map(e=>{const s=this.context.createBiquadFilter();return s.type="allpass",s.frequency.value=e,s}),this._allpassFiltersR=cr.map(e=>{const s=this.context.createBiquadFilter();return s.type="allpass",s.frequency.value=e,s}),this._combFilters=ar.map((e,s)=>{const i=new En({context:this.context,dampening:t.dampening,delayTime:e});return se.dampening=t)}dispose(){return super.dispose(),this._allpassFiltersL.forEach(t=>t.disconnect()),this._allpassFiltersR.forEach(t=>t.disconnect()),this._combFilters.forEach(t=>t.dispose()),this.roomSize.dispose(),this}}const hr=[1687/25e3,1601/25e3,2053/25e3,2251/25e3],wp=[.773,.802,.753,.733],xp=[347,113,37];class zo extends ae{constructor(){const t=b(zo.getDefaults(),arguments,["roomSize"]);super(t),this.name="JCReverb",this._allpassFilters=[],this._feedbackCombFilters=[],this.roomSize=new W({context:this.context,value:t.roomSize,units:"normalRange"}),this._scaleRoomSize=new Ce({context:this.context,min:-.733,max:.197}),this._allpassFilters=xp.map(e=>{const s=this.context.createBiquadFilter();return s.type="allpass",s.frequency.value=e,s}),this._feedbackCombFilters=hr.map((e,s)=>{const i=new On({context:this.context,delayTime:e});return this._scaleRoomSize.connect(i.resonance),i.resonance.value=wp[s],st.disconnect()),this._feedbackCombFilters.forEach(t=>t.dispose()),this.roomSize.dispose(),this._scaleRoomSize.dispose(),this}}class lr extends ti{constructor(t){super(t),this._feedbackL.disconnect(),this._feedbackL.connect(this._feedbackMerge,0,1),this._feedbackR.disconnect(),this._feedbackR.connect(this._feedbackMerge,0,0),P(this,["feedback"])}}class Uo extends lr{constructor(){const t=b(Uo.getDefaults(),arguments,["delayTime","feedback"]);super(t),this.name="PingPongDelay",this._leftDelay=new Xt({context:this.context,maxDelay:t.maxDelay}),this._rightDelay=new Xt({context:this.context,maxDelay:t.maxDelay}),this._rightPreDelay=new Xt({context:this.context,maxDelay:t.maxDelay}),this.delayTime=new W({context:this.context,units:"time",value:t.delayTime}),this.connectEffectLeft(this._leftDelay),this.connectEffectRight(this._rightPreDelay,this._rightDelay),this.delayTime.fan(this._leftDelay.delayTime,this._rightDelay.delayTime,this._rightPreDelay.delayTime),this._feedbackL.disconnect(),this._feedbackL.connect(this._rightDelay),P(this,["delayTime"])}static getDefaults(){return Object.assign(lr.getDefaults(),{delayTime:.25,maxDelay:1})}dispose(){return super.dispose(),this._leftDelay.dispose(),this._rightDelay.dispose(),this._rightPreDelay.dispose(),this.delayTime.dispose(),this}}class Go extends ln{constructor(){const t=b(Go.getDefaults(),arguments,["pitch"]);super(t),this.name="PitchShift",this._frequency=new W({context:this.context}),this._delayA=new Xt({maxDelay:1,context:this.context}),this._lfoA=new Vt({context:this.context,min:0,max:.1,type:"sawtooth"}).connect(this._delayA.delayTime),this._delayB=new Xt({maxDelay:1,context:this.context}),this._lfoB=new Vt({context:this.context,min:0,max:.1,type:"sawtooth",phase:180}).connect(this._delayB.delayTime),this._crossFade=new Ws({context:this.context}),this._crossFadeLFO=new Vt({context:this.context,min:0,max:1,type:"triangle",phase:90}).connect(this._crossFade.fade),this._feedbackDelay=new Xt({delayTime:t.delayTime,context:this.context}),this.delayTime=this._feedbackDelay.delayTime,P(this,"delayTime"),this._pitch=t.pitch,this._windowSize=t.windowSize,this._delayA.connect(this._crossFade.a),this._delayB.connect(this._crossFade.b),this._frequency.fan(this._lfoA.frequency,this._lfoB.frequency,this._crossFadeLFO.frequency),this.effectSend.fan(this._delayA,this._delayB),this._crossFade.chain(this._feedbackDelay,this.effectReturn);const e=this.now();this._lfoA.start(e),this._lfoB.start(e),this._crossFadeLFO.start(e),this.windowSize=this._windowSize}static getDefaults(){return Object.assign(ln.getDefaults(),{pitch:0,windowSize:.1,delayTime:0,feedback:0})}get pitch(){return this._pitch}set pitch(t){this._pitch=t;let e=0;t<0?(this._lfoA.min=0,this._lfoA.max=this._windowSize,this._lfoB.min=0,this._lfoB.max=this._windowSize,e=ys(t-1)+1):(this._lfoA.min=this._windowSize,this._lfoA.max=0,this._lfoB.min=this._windowSize,this._lfoB.max=0,e=ys(t)-1),this._frequency.value=e*(1.2/this._windowSize)}get windowSize(){return this._windowSize}set windowSize(t){this._windowSize=this.toSeconds(t),this.pitch=this._pitch}dispose(){return super.dispose(),this._frequency.dispose(),this._delayA.dispose(),this._delayB.dispose(),this._lfoA.dispose(),this._lfoB.dispose(),this._crossFade.dispose(),this._crossFadeLFO.dispose(),this._feedbackDelay.dispose(),this}}class Zo extends ae{constructor(){const t=b(Zo.getDefaults(),arguments,["frequency","octaves","baseFrequency"]);super(t),this.name="Phaser",this._lfoL=new Vt({context:this.context,frequency:t.frequency,min:0,max:1}),this._lfoR=new Vt({context:this.context,frequency:t.frequency,min:0,max:1,phase:180}),this._baseFrequency=this.toFrequency(t.baseFrequency),this._octaves=t.octaves,this.Q=new W({context:this.context,value:t.Q,units:"positive"}),this._filtersL=this._makeFilters(t.stages,this._lfoL),this._filtersR=this._makeFilters(t.stages,this._lfoR),this.frequency=this._lfoL.frequency,this.frequency.value=t.frequency,this.connectEffectLeft(...this._filtersL),this.connectEffectRight(...this._filtersR),this._lfoL.frequency.connect(this._lfoR.frequency),this.baseFrequency=t.baseFrequency,this.octaves=t.octaves,this._lfoL.start(),this._lfoR.start(),P(this,["frequency","Q"])}static getDefaults(){return Object.assign(ae.getDefaults(),{frequency:.5,octaves:3,stages:10,Q:10,baseFrequency:350})}_makeFilters(t,e){const s=[];for(let i=0;it.disconnect()),this._filtersR.forEach(t=>t.disconnect()),this.frequency.dispose(),this}}class Qo extends vt{constructor(){const t=b(Qo.getDefaults(),arguments,["decay"]);super(t),this.name="Reverb",this._convolver=this.context.createConvolver(),this.ready=Promise.resolve(),this._decay=t.decay,this._preDelay=t.preDelay,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(vt.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(t){t=this.toSeconds(t),Tt(t,.001),this._decay=t,this.generate()}get preDelay(){return this._preDelay}set preDelay(t){t=this.toSeconds(t),Tt(t,0),this._preDelay=t,this.generate()}generate(){return et(this,void 0,void 0,function*(){const t=this.ready,e=new Es(2,this._decay+this._preDelay,this.context.sampleRate),s=new Pe({context:e}),i=new Pe({context:e}),r=new Ge({context:e});s.connect(r,0,0),i.connect(r,0,1);const o=new F({context:e}).toDestination();r.connect(o),s.start(0),i.start(0),o.gain.setValueAtTime(0,0),o.gain.setValueAtTime(1,this._preDelay),o.gain.exponentialApproachValueAtTime(0,this._preDelay,this.decay);const a=e.render();return this.ready=a.then($),yield t,this._convolver.buffer=(yield a).get(),this})}dispose(){return super.dispose(),this._convolver.disconnect(),this}}class Fn extends A{constructor(){super(b(Fn.getDefaults(),arguments)),this.name="MidSideSplit",this._split=this.input=new ds({channels:2,context:this.context}),this._midAdd=new ls({context:this.context}),this.mid=new lt({context:this.context,value:Math.SQRT1_2}),this._sideSubtract=new us({context:this.context}),this.side=new lt({context:this.context,value:Math.SQRT1_2}),this._split.connect(this._midAdd,0),this._split.connect(this._midAdd.addend,1),this._split.connect(this._sideSubtract,0),this._split.connect(this._sideSubtract.subtrahend,1),this._midAdd.connect(this.mid),this._sideSubtract.connect(this.side)}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._midAdd.dispose(),this._sideSubtract.dispose(),this._split.dispose(),this}}class qn extends A{constructor(){super(b(qn.getDefaults(),arguments)),this.name="MidSideMerge",this.mid=new F({context:this.context}),this.side=new F({context:this.context}),this._left=new ls({context:this.context}),this._leftMult=new lt({context:this.context,value:Math.SQRT1_2}),this._right=new us({context:this.context}),this._rightMult=new lt({context:this.context,value:Math.SQRT1_2}),this._merge=this.output=new Ge({context:this.context}),this.mid.fan(this._left),this.side.connect(this._left.addend),this.mid.connect(this._right),this.side.connect(this._right.subtrahend),this._left.connect(this._leftMult),this._right.connect(this._rightMult),this._leftMult.connect(this._merge,0,0),this._rightMult.connect(this._merge,0,1)}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._leftMult.dispose(),this._rightMult.dispose(),this._left.dispose(),this._right.dispose(),this}}class ur extends vt{constructor(t){super(t),this.name="MidSideEffect",this._midSideMerge=new qn({context:this.context}),this._midSideSplit=new Fn({context:this.context}),this._midSend=this._midSideSplit.mid,this._sideSend=this._midSideSplit.side,this._midReturn=this._midSideMerge.mid,this._sideReturn=this._midSideMerge.side,this.effectSend.connect(this._midSideSplit),this._midSideMerge.connect(this.effectReturn)}connectEffectMid(...t){this._midSend.chain(...t,this._midReturn)}connectEffectSide(...t){this._sideSend.chain(...t,this._sideReturn)}dispose(){return super.dispose(),this._midSideSplit.dispose(),this._midSideMerge.dispose(),this._midSend.dispose(),this._sideSend.dispose(),this._midReturn.dispose(),this._sideReturn.dispose(),this}}class $o extends ur{constructor(){const t=b($o.getDefaults(),arguments,["width"]);super(t),this.name="StereoWidener",this.width=new W({context:this.context,value:t.width,units:"normalRange"}),P(this,["width"]),this._twoTimesWidthMid=new lt({context:this.context,value:2}),this._twoTimesWidthSide=new lt({context:this.context,value:2}),this._midMult=new lt({context:this.context}),this._twoTimesWidthMid.connect(this._midMult.factor),this.connectEffectMid(this._midMult),this._oneMinusWidth=new us({context:this.context}),this._oneMinusWidth.connect(this._twoTimesWidthMid),Lt(this.context.getConstant(1),this._oneMinusWidth),this.width.connect(this._oneMinusWidth.subtrahend),this._sideMult=new lt({context:this.context}),this.width.connect(this._twoTimesWidthSide),this._twoTimesWidthSide.connect(this._sideMult.factor),this.connectEffectSide(this._sideMult)}static getDefaults(){return Object.assign(ur.getDefaults(),{width:.5})}dispose(){return super.dispose(),this.width.dispose(),this._midMult.dispose(),this._sideMult.dispose(),this._twoTimesWidthMid.dispose(),this._twoTimesWidthSide.dispose(),this._oneMinusWidth.dispose(),this}}class Xo extends ae{constructor(){const t=b(Xo.getDefaults(),arguments,["frequency","depth"]);super(t),this.name="Tremolo",this._lfoL=new Vt({context:this.context,type:t.type,min:1,max:0}),this._lfoR=new Vt({context:this.context,type:t.type,min:1,max:0}),this._amplitudeL=new F({context:this.context}),this._amplitudeR=new F({context:this.context}),this.frequency=new W({context:this.context,value:t.frequency,units:"frequency"}),this.depth=new W({context:this.context,value:t.depth,units:"normalRange"}),P(this,["frequency","depth"]),this.connectEffectLeft(this._amplitudeL),this.connectEffectRight(this._amplitudeR),this._lfoL.connect(this._amplitudeL.gain),this._lfoR.connect(this._amplitudeR.gain),this.frequency.fan(this._lfoL.frequency,this._lfoR.frequency),this.depth.fan(this._lfoR.amplitude,this._lfoL.amplitude),this.spread=t.spread}static getDefaults(){return Object.assign(ae.getDefaults(),{frequency:10,type:"sine",depth:.5,spread:180})}start(t){return this._lfoL.start(t),this._lfoR.start(t),this}stop(t){return this._lfoL.stop(t),this._lfoR.stop(t),this}sync(){return this._lfoL.sync(),this._lfoR.sync(),this.context.transport.syncSignal(this.frequency),this}unsync(){return this._lfoL.unsync(),this._lfoR.unsync(),this.context.transport.unsyncSignal(this.frequency),this}get type(){return this._lfoL.type}set type(t){this._lfoL.type=t,this._lfoR.type=t}get spread(){return this._lfoR.phase-this._lfoL.phase}set spread(t){this._lfoL.phase=90-t/2,this._lfoR.phase=t/2+90}dispose(){return super.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._amplitudeL.dispose(),this._amplitudeR.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class Yo extends vt{constructor(){const t=b(Yo.getDefaults(),arguments,["frequency","depth"]);super(t),this.name="Vibrato",this._delayNode=new Xt({context:this.context,delayTime:0,maxDelay:t.maxDelay}),this._lfo=new Vt({context:this.context,type:t.type,min:0,max:t.maxDelay,frequency:t.frequency,phase:-90}).start().connect(this._delayNode.delayTime),this.frequency=this._lfo.frequency,this.depth=this._lfo.amplitude,this.depth.value=t.depth,P(this,["frequency","depth"]),this.effectSend.chain(this._delayNode,this.effectReturn)}static getDefaults(){return Object.assign(vt.getDefaults(),{maxDelay:.005,frequency:5,depth:.1,type:"sine"})}get type(){return this._lfo.type}set type(t){this._lfo.type=t}dispose(){return super.dispose(),this._delayNode.dispose(),this._lfo.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class Vn extends A{constructor(){const t=b(Vn.getDefaults(),arguments,["type","size"]);super(t),this.name="Analyser",this._analysers=[],this._buffers=[],this.input=this.output=this._gain=new F({context:this.context}),this._split=new ds({context:this.context,channels:t.channels}),this.input.connect(this._split),Tt(t.channels,1);for(let e=0;e{const s=this._buffers[e];this._type==="fft"?t.getFloatFrequencyData(s):this._type==="waveform"&&t.getFloatTimeDomainData(s)}),this.channels===1?this._buffers[0]:this._buffers}get size(){return this._analysers[0].frequencyBinCount}set size(t){this._analysers.forEach((e,s)=>{e.fftSize=t*2,this._buffers[s]=new Float32Array(t)})}get channels(){return this._analysers.length}get type(){return this._type}set type(t){I(t==="waveform"||t==="fft",`Analyser: invalid type: ${t}`),this._type=t}get smoothing(){return this._analysers[0].smoothingTimeConstant}set smoothing(t){this._analysers.forEach(e=>e.smoothingTimeConstant=t)}dispose(){return super.dispose(),this._analysers.forEach(t=>t.disconnect()),this._split.dispose(),this._gain.dispose(),this}}class De extends A{constructor(){super(b(De.getDefaults(),arguments)),this.name="MeterBase",this.input=this.output=this._analyser=new Vn({context:this.context,size:256,type:"waveform"})}dispose(){return super.dispose(),this._analyser.dispose(),this}}class Ho extends De{constructor(){const t=b(Ho.getDefaults(),arguments,["smoothing"]);super(t),this.name="Meter",this.input=this.output=this._analyser=new Vn({context:this.context,size:256,type:"waveform",channels:t.channelCount}),this.smoothing=t.smoothing,this.normalRange=t.normalRange,this._rms=new Array(t.channelCount),this._rms.fill(0)}static getDefaults(){return Object.assign(De.getDefaults(),{smoothing:.8,normalRange:!1,channelCount:1})}getLevel(){return hs("'getLevel' has been changed to 'getValue'"),this.getValue()}getValue(){const t=this._analyser.getValue(),s=(this.channels===1?[t]:t).map((i,r)=>{const o=i.reduce((c,h)=>c+h*h,0),a=Math.sqrt(o/i.length);return this._rms[r]=Math.max(a,this._rms[r]*this.smoothing),this.normalRange?this._rms[r]:vn(this._rms[r])});return this.channels===1?s[0]:s}get channels(){return this._analyser.channels}dispose(){return super.dispose(),this._analyser.dispose(),this}}class Jo extends De{constructor(){const t=b(Jo.getDefaults(),arguments,["size"]);super(t),this.name="FFT",this.normalRange=t.normalRange,this._analyser.type="fft",this.size=t.size}static getDefaults(){return Object.assign(A.getDefaults(),{normalRange:!1,size:1024,smoothing:.8})}getValue(){return this._analyser.getValue().map(e=>this.normalRange?gs(e):e)}get size(){return this._analyser.size}set size(t){this._analyser.size=t}get smoothing(){return this._analyser.smoothing}set smoothing(t){this._analyser.smoothing=t}getFrequencyOfIndex(t){return I(0<=t&&te._updateSolo())}get muted(){return this.input.gain.value===0}_addSolo(){mt._soloed.has(this.context)||mt._soloed.set(this.context,new Set),mt._soloed.get(this.context).add(this)}_removeSolo(){mt._soloed.has(this.context)&&mt._soloed.get(this.context).delete(this)}_isSoloed(){return mt._soloed.has(this.context)&&mt._soloed.get(this.context).has(this)}_noSolos(){return!mt._soloed.has(this.context)||mt._soloed.has(this.context)&&mt._soloed.get(this.context).size===0}_updateSolo(){this._isSoloed()?this.input.gain.value=1:this._noSolos()?this.input.gain.value=1:this.input.gain.value=0}dispose(){return super.dispose(),mt._allSolos.get(this.context).delete(this),this._removeSolo(),this}}mt._allSolos=new Map;mt._soloed=new Map;class Vi extends A{constructor(){const t=b(Vi.getDefaults(),arguments,["pan","volume"]);super(t),this.name="PanVol",this._panner=this.input=new Rn({context:this.context,pan:t.pan,channelCount:t.channelCount}),this.pan=this._panner.pan,this._volume=this.output=new Ee({context:this.context,volume:t.volume}),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=t.mute,P(this,["pan","volume"])}static getDefaults(){return Object.assign(A.getDefaults(),{mute:!1,pan:0,volume:0,channelCount:1})}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}dispose(){return super.dispose(),this._panner.dispose(),this.pan.dispose(),this._volume.dispose(),this.volume.dispose(),this}}class Je extends A{constructor(){const t=b(Je.getDefaults(),arguments,["volume","pan"]);super(t),this.name="Channel",this._solo=this.input=new mt({solo:t.solo,context:this.context}),this._panVol=this.output=new Vi({context:this.context,pan:t.pan,volume:t.volume,mute:t.mute,channelCount:t.channelCount}),this.pan=this._panVol.pan,this.volume=this._panVol.volume,this._solo.connect(this._panVol),P(this,["pan","volume"])}static getDefaults(){return Object.assign(A.getDefaults(),{pan:0,volume:0,mute:!1,solo:!1,channelCount:1})}get solo(){return this._solo.solo}set solo(t){this._solo.solo=t}get muted(){return this._solo.muted||this.mute}get mute(){return this._panVol.mute}set mute(t){this._panVol.mute=t}_getBus(t){return Je.buses.has(t)||Je.buses.set(t,new F({context:this.context})),Je.buses.get(t)}send(t,e=0){const s=this._getBus(t),i=new F({context:this.context,units:"decibels",gain:e});return this.connect(i),i.connect(s),i}receive(t){return this._getBus(t).connect(this),this}dispose(){return super.dispose(),this._panVol.dispose(),this.pan.dispose(),this.volume.dispose(),this._solo.dispose(),this}}Je.buses=new Map;class ea extends A{constructor(){super(b(ea.getDefaults(),arguments)),this.name="Mono",this.input=new F({context:this.context}),this._merge=this.output=new Ge({channels:2,context:this.context}),this.input.connect(this._merge,0,0),this.input.connect(this._merge,0,1)}dispose(){return super.dispose(),this._merge.dispose(),this.input.dispose(),this}}class Pn extends A{constructor(){const t=b(Pn.getDefaults(),arguments,["lowFrequency","highFrequency"]);super(t),this.name="MultibandSplit",this.input=new F({context:this.context}),this.output=void 0,this.low=new Zt({context:this.context,frequency:0,type:"lowpass"}),this._lowMidFilter=new Zt({context:this.context,frequency:0,type:"highpass"}),this.mid=new Zt({context:this.context,frequency:0,type:"lowpass"}),this.high=new Zt({context:this.context,frequency:0,type:"highpass"}),this._internalChannels=[this.low,this.mid,this.high],this.lowFrequency=new W({context:this.context,units:"frequency",value:t.lowFrequency}),this.highFrequency=new W({context:this.context,units:"frequency",value:t.highFrequency}),this.Q=new W({context:this.context,units:"positive",value:t.Q}),this.input.fan(this.low,this.high),this.input.chain(this._lowMidFilter,this.mid),this.lowFrequency.fan(this.low.frequency,this._lowMidFilter.frequency),this.highFrequency.fan(this.mid.frequency,this.high.frequency),this.Q.connect(this.low.Q),this.Q.connect(this._lowMidFilter.Q),this.Q.connect(this.mid.Q),this.Q.connect(this.high.Q),P(this,["high","mid","low","highFrequency","lowFrequency"])}static getDefaults(){return Object.assign(A.getDefaults(),{Q:1,highFrequency:2500,lowFrequency:400})}dispose(){return super.dispose(),Ns(this,["high","mid","low","highFrequency","lowFrequency"]),this.low.dispose(),this._lowMidFilter.dispose(),this.mid.dispose(),this.high.dispose(),this.lowFrequency.dispose(),this.highFrequency.dispose(),this.Q.dispose(),this}}class sa extends A{constructor(){const t=b(sa.getDefaults(),arguments,["positionX","positionY","positionZ"]);super(t),this.name="Panner3D",this._panner=this.input=this.output=this.context.createPanner(),this.panningModel=t.panningModel,this.maxDistance=t.maxDistance,this.distanceModel=t.distanceModel,this.coneOuterGain=t.coneOuterGain,this.coneOuterAngle=t.coneOuterAngle,this.coneInnerAngle=t.coneInnerAngle,this.refDistance=t.refDistance,this.rolloffFactor=t.rolloffFactor,this.positionX=new U({context:this.context,param:this._panner.positionX,value:t.positionX}),this.positionY=new U({context:this.context,param:this._panner.positionY,value:t.positionY}),this.positionZ=new U({context:this.context,param:this._panner.positionZ,value:t.positionZ}),this.orientationX=new U({context:this.context,param:this._panner.orientationX,value:t.orientationX}),this.orientationY=new U({context:this.context,param:this._panner.orientationY,value:t.orientationY}),this.orientationZ=new U({context:this.context,param:this._panner.orientationZ,value:t.orientationZ})}static getDefaults(){return Object.assign(A.getDefaults(),{coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:0,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1})}setPosition(t,e,s){return this.positionX.value=t,this.positionY.value=e,this.positionZ.value=s,this}setOrientation(t,e,s){return this.orientationX.value=t,this.orientationY.value=e,this.orientationZ.value=s,this}get panningModel(){return this._panner.panningModel}set panningModel(t){this._panner.panningModel=t}get refDistance(){return this._panner.refDistance}set refDistance(t){this._panner.refDistance=t}get rolloffFactor(){return this._panner.rolloffFactor}set rolloffFactor(t){this._panner.rolloffFactor=t}get distanceModel(){return this._panner.distanceModel}set distanceModel(t){this._panner.distanceModel=t}get coneInnerAngle(){return this._panner.coneInnerAngle}set coneInnerAngle(t){this._panner.coneInnerAngle=t}get coneOuterAngle(){return this._panner.coneOuterAngle}set coneOuterAngle(t){this._panner.coneOuterAngle=t}get coneOuterGain(){return this._panner.coneOuterGain}set coneOuterGain(t){this._panner.coneOuterGain=t}get maxDistance(){return this._panner.maxDistance}set maxDistance(t){this._panner.maxDistance=t}dispose(){return super.dispose(),this._panner.disconnect(),this.orientationX.dispose(),this.orientationY.dispose(),this.orientationZ.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this}}class ei extends A{constructor(){const t=b(ei.getDefaults(),arguments);super(t),this.name="Recorder",this.input=new F({context:this.context}),I(ei.supported,"Media Recorder API is not available"),this._stream=this.context.createMediaStreamDestination(),this.input.connect(this._stream),this._recorder=new MediaRecorder(this._stream.stream,{mimeType:t.mimeType})}static getDefaults(){return A.getDefaults()}get mimeType(){return this._recorder.mimeType}static get supported(){return Mt!==null&&Reflect.has(Mt,"MediaRecorder")}get state(){return this._recorder.state==="inactive"?"stopped":this._recorder.state==="paused"?"paused":"started"}start(){return et(this,void 0,void 0,function*(){I(this.state!=="started","Recorder is already started");const t=new Promise(e=>{const s=()=>{this._recorder.removeEventListener("start",s,!1),e()};this._recorder.addEventListener("start",s,!1)});return this._recorder.start(),yield t})}stop(){return et(this,void 0,void 0,function*(){I(this.state!=="stopped","Recorder is not started");const t=new Promise(e=>{const s=i=>{this._recorder.removeEventListener("dataavailable",s,!1),e(i.data)};this._recorder.addEventListener("dataavailable",s,!1)});return this._recorder.stop(),yield t})}pause(){return I(this.state==="started","Recorder must be started"),this._recorder.pause(),this}dispose(){return super.dispose(),this.input.dispose(),this._stream.disconnect(),this}}class Se extends A{constructor(){const t=b(Se.getDefaults(),arguments,["threshold","ratio"]);super(t),this.name="Compressor",this._compressor=this.context.createDynamicsCompressor(),this.input=this._compressor,this.output=this._compressor,this.threshold=new U({minValue:this._compressor.threshold.minValue,maxValue:this._compressor.threshold.maxValue,context:this.context,convert:!1,param:this._compressor.threshold,units:"decibels",value:t.threshold}),this.attack=new U({minValue:this._compressor.attack.minValue,maxValue:this._compressor.attack.maxValue,context:this.context,param:this._compressor.attack,units:"time",value:t.attack}),this.release=new U({minValue:this._compressor.release.minValue,maxValue:this._compressor.release.maxValue,context:this.context,param:this._compressor.release,units:"time",value:t.release}),this.knee=new U({minValue:this._compressor.knee.minValue,maxValue:this._compressor.knee.maxValue,context:this.context,convert:!1,param:this._compressor.knee,units:"decibels",value:t.knee}),this.ratio=new U({minValue:this._compressor.ratio.minValue,maxValue:this._compressor.ratio.maxValue,context:this.context,convert:!1,param:this._compressor.ratio,units:"positive",value:t.ratio}),P(this,["knee","release","attack","ratio","threshold"])}static getDefaults(){return Object.assign(A.getDefaults(),{attack:.003,knee:30,ratio:12,release:.25,threshold:-24})}get reduction(){return this._compressor.reduction}dispose(){return super.dispose(),this._compressor.disconnect(),this.attack.dispose(),this.release.dispose(),this.threshold.dispose(),this.ratio.dispose(),this.knee.dispose(),this}}class na extends A{constructor(){const t=b(na.getDefaults(),arguments,["threshold","smoothing"]);super(t),this.name="Gate",this._follower=new In({context:this.context,smoothing:t.smoothing}),this._gt=new Mi({context:this.context,value:gs(t.threshold)}),this.input=new F({context:this.context}),this._gate=this.output=new F({context:this.context}),this.input.connect(this._gate),this.input.chain(this._follower,this._gt,this._gate.gain)}static getDefaults(){return Object.assign(A.getDefaults(),{smoothing:.1,threshold:-40})}get threshold(){return vn(this._gt.value)}set threshold(t){this._gt.value=gs(t)}get smoothing(){return this._follower.smoothing}set smoothing(t){this._follower.smoothing=t}dispose(){return super.dispose(),this.input.dispose(),this._follower.dispose(),this._gt.dispose(),this._gate.dispose(),this}}class ia extends A{constructor(){const t=b(ia.getDefaults(),arguments,["threshold"]);super(t),this.name="Limiter",this._compressor=this.input=this.output=new Se({context:this.context,ratio:20,attack:.003,release:.01,threshold:t.threshold}),this.threshold=this._compressor.threshold,P(this,"threshold")}static getDefaults(){return Object.assign(A.getDefaults(),{threshold:-12})}get reduction(){return this._compressor.reduction}dispose(){return super.dispose(),this._compressor.dispose(),this.threshold.dispose(),this}}class ra extends A{constructor(){const t=b(ra.getDefaults(),arguments);super(t),this.name="MidSideCompressor",this._midSideSplit=this.input=new Fn({context:this.context}),this._midSideMerge=this.output=new qn({context:this.context}),this.mid=new Se(Object.assign(t.mid,{context:this.context})),this.side=new Se(Object.assign(t.side,{context:this.context})),this._midSideSplit.mid.chain(this.mid,this._midSideMerge.mid),this._midSideSplit.side.chain(this.side,this._midSideMerge.side),P(this,["mid","side"])}static getDefaults(){return Object.assign(A.getDefaults(),{mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},side:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10}})}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._midSideSplit.dispose(),this._midSideMerge.dispose(),this}}class oa extends A{constructor(){const t=b(oa.getDefaults(),arguments);super(t),this.name="MultibandCompressor",this._splitter=this.input=new Pn({context:this.context,lowFrequency:t.lowFrequency,highFrequency:t.highFrequency}),this.lowFrequency=this._splitter.lowFrequency,this.highFrequency=this._splitter.highFrequency,this.output=new F({context:this.context}),this.low=new Se(Object.assign(t.low,{context:this.context})),this.mid=new Se(Object.assign(t.mid,{context:this.context})),this.high=new Se(Object.assign(t.high,{context:this.context})),this._splitter.low.chain(this.low,this.output),this._splitter.mid.chain(this.mid,this.output),this._splitter.high.chain(this.high,this.output),P(this,["high","mid","low","highFrequency","lowFrequency"])}static getDefaults(){return Object.assign(A.getDefaults(),{lowFrequency:250,highFrequency:2e3,low:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10},mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},high:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16}})}dispose(){return super.dispose(),this._splitter.dispose(),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this.output.dispose(),this}}class aa extends A{constructor(){const t=b(aa.getDefaults(),arguments,["low","mid","high"]);super(t),this.name="EQ3",this.output=new F({context:this.context}),this._internalChannels=[],this.input=this._multibandSplit=new Pn({context:this.context,highFrequency:t.highFrequency,lowFrequency:t.lowFrequency}),this._lowGain=new F({context:this.context,gain:t.low,units:"decibels"}),this._midGain=new F({context:this.context,gain:t.mid,units:"decibels"}),this._highGain=new F({context:this.context,gain:t.high,units:"decibels"}),this.low=this._lowGain.gain,this.mid=this._midGain.gain,this.high=this._highGain.gain,this.Q=this._multibandSplit.Q,this.lowFrequency=this._multibandSplit.lowFrequency,this.highFrequency=this._multibandSplit.highFrequency,this._multibandSplit.low.chain(this._lowGain,this.output),this._multibandSplit.mid.chain(this._midGain,this.output),this._multibandSplit.high.chain(this._highGain,this.output),P(this,["low","mid","high","lowFrequency","highFrequency"]),this._internalChannels=[this._multibandSplit]}static getDefaults(){return Object.assign(A.getDefaults(),{high:0,highFrequency:2500,low:0,lowFrequency:400,mid:0})}dispose(){return super.dispose(),Ns(this,["low","mid","high","lowFrequency","highFrequency"]),this._multibandSplit.dispose(),this.lowFrequency.dispose(),this.highFrequency.dispose(),this._lowGain.dispose(),this._midGain.dispose(),this._highGain.dispose(),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this.Q.dispose(),this}}class ca extends A{constructor(){const t=b(ca.getDefaults(),arguments,["url","onload"]);super(t),this.name="Convolver",this._convolver=this.context.createConvolver(),this._buffer=new H(t.url,e=>{this.buffer=e,t.onload()}),this.input=new F({context:this.context}),this.output=new F({context:this.context}),this._buffer.loaded&&(this.buffer=this._buffer),this.normalize=t.normalize,this.input.chain(this._convolver,this.output)}static getDefaults(){return Object.assign(A.getDefaults(),{normalize:!0,onload:$})}load(t){return et(this,void 0,void 0,function*(){this.buffer=yield this._buffer.load(t)})}get buffer(){return this._buffer.length?this._buffer:null}set buffer(t){t&&this._buffer.set(t),this._convolver.buffer&&(this.input.disconnect(),this._convolver.disconnect(),this._convolver=this.context.createConvolver(),this.input.chain(this._convolver,this.output));const e=this._buffer.get();this._convolver.buffer=e||null}get normalize(){return this._convolver.normalize}set normalize(t){this._convolver.normalize=t}dispose(){return super.dispose(),this._buffer.dispose(),this._convolver.disconnect(),this}}function hf(){return ot().now()}function lf(){return ot().immediate()}const uf=ot().transport;function df(){return ot().transport}const pf=ot().destination,ff=ot().destination;function mf(){return ot().destination}const _f=ot().listener;function gf(){return ot().listener}const yf=ot().draw;function vf(){return ot().draw}const wf=ot();function xf(){return H.loaded()}const bf=H,Tf=Is,Sf=ze;export{kn as AMOscillator,xo as AMSynth,ip as Abs,ls as Add,Ls as AmplitudeEnvelope,Vn as Analyser,Oi as AudioToGain,Mo as AutoFilter,Ro as AutoPanner,Io as AutoWah,uo as BaseContext,rn as BiquadFilter,qo as BitCrusher,bf as Buffer,Sf as BufferSource,Tf as Buffers,Je as Channel,Vo as Chebyshev,Po as Chorus,Rs as Clock,Se as Compressor,Os as Context,ca as Convolver,Ws as CrossFade,Ko as DCMeter,Xt as Delay,pf as Destination,Lo as Distortion,yf as Draw,bo as DuoSynth,aa as EQ3,Ds as Emitter,Dt as Envelope,Jo as FFT,qs as FMOscillator,To as FMSynth,An as FatOscillator,On as FeedbackCombFilter,Wo as FeedbackDelay,Zt as Filter,In as Follower,Bo as Freeverb,tf as Frequency,qt as FrequencyClass,on as FrequencyEnvelope,jo as FrequencyShifter,F as Gain,rp as GainToAudio,na as Gate,vo as GrainPlayer,Mi as GreaterThan,Ei as GreaterThanZero,ep as IntervalTimeline,zo as JCReverb,Vt as LFO,ia as Limiter,_f as Listener,an as Loop,En as LowpassCombFilter,ff as Master,Dn as MembraneSynth,Ge as Merge,So as MetalSynth,Ho as Meter,ra as MidSideCompressor,qn as MidSideMerge,Fn as MidSideSplit,rf as Midi,vs as MidiClass,ea as Mono,He as MonoSynth,oa as MultibandCompressor,Pn as MultibandSplit,lt as Multiply,wo as Negate,Pe as Noise,ko as NoiseSynth,nf as Offline,Es as OfflineContext,Ae as OmniOscillator,Nn as OnePoleFilter,ht as Oscillator,Cn as PWMOscillator,Vi as PanVol,Rn as Panner,sa as Panner3D,U as Param,cn as Part,No as Pattern,Zo as Phaser,Uo as PingPongDelay,Go as PitchShift,Ps as Player,yo as Players,Do as PluckSynth,Oo as PolySynth,Fs as Pow,Vs as PulseOscillator,ei as Recorder,Qo as Reverb,Mn as Sampler,Ce as Scale,Ri as ScaleExp,Eo as Sequence,W as Signal,mt as Solo,ds as Split,Ms as StateTimeline,$o as StereoWidener,us as Subtract,cf as SyncedSignal,Le as Synth,of as Ticks,ct as TicksClass,Kp as Time,Gt as TimeClass,$t as Timeline,H as ToneAudioBuffer,Is as ToneAudioBuffers,A as ToneAudioNode,ze as ToneBufferSource,fe as ToneEvent,Sn as ToneOscillatorNode,uf as Transport,ef as TransportTime,gt as TransportTimeClass,Xo as Tremolo,af as Unit,Qs as UserMedia,Yo as Vibrato,Ee as Volume,ue as WaveShaper,ta as Waveform,Ni as Zero,Lt as connect,Ht as connectSeries,bn as connectSignal,wf as context,gs as dbToGain,Hp as debug,ee as defaultArg,_o as disconnect,sf as fanIn,Fe as ftom,vn as gainToDb,ot as getContext,mf as getDestination,vf as getDraw,gf as getListener,df as getTransport,lf as immediate,ys as intervalToFrequencyRatio,Ct as isArray,ro as isBoolean,Q as isDefined,Fd as isFunction,zs as isNote,Yt as isNumber,be as isObject,oe as isString,Bt as isUndef,xf as loaded,mo as mtof,hf as now,b as optionsFromArguments,Jn as setContext,Jp as start,Yp as supported,dr as version}; diff --git a/assets/chunks/chunk-CwsG006u.js b/assets/chunks/chunk-CwsG006u.js new file mode 100644 index 0000000..0ae75be --- /dev/null +++ b/assets/chunks/chunk-CwsG006u.js @@ -0,0 +1,135 @@ +import{_ as Ed}from"./chunk-DZeubO4x.js";function sc(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u}var Wl={},ac={exports:{}},Xe={},cc={exports:{}},q={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Ba;function Cd(){if(Ba)return q;Ba=1;var u=Symbol.for("react.element"),p=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),g=Symbol.for("react.strict_mode"),y=Symbol.for("react.profiler"),C=Symbol.for("react.provider"),k=Symbol.for("react.context"),w=Symbol.for("react.forward_ref"),_=Symbol.for("react.suspense"),L=Symbol.for("react.memo"),T=Symbol.for("react.lazy"),z=Symbol.iterator;function M(c){return c===null||typeof c!="object"?null:(c=z&&c[z]||c["@@iterator"],typeof c=="function"?c:null)}var B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},W=Object.assign,j={};function O(c,S,U){this.props=c,this.context=S,this.refs=j,this.updater=U||B}O.prototype.isReactComponent={},O.prototype.setState=function(c,S){if(typeof c!="object"&&typeof c!="function"&&c!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,c,S,"setState")},O.prototype.forceUpdate=function(c){this.updater.enqueueForceUpdate(this,c,"forceUpdate")};function he(){}he.prototype=O.prototype;function oe(c,S,U){this.props=c,this.context=S,this.refs=j,this.updater=U||B}var Ne=oe.prototype=new he;Ne.constructor=oe,W(Ne,O.prototype),Ne.isPureReactComponent=!0;var ce=Array.isArray,Me=Object.prototype.hasOwnProperty,ie={current:null},ve={key:!0,ref:!0,__self:!0,__source:!0};function ze(c,S,U){var G,Z={},se=null,ne=null;if(S!=null)for(G in S.ref!==void 0&&(ne=S.ref),S.key!==void 0&&(se=""+S.key),S)Me.call(S,G)&&!ve.hasOwnProperty(G)&&(Z[G]=S[G]);var ue=arguments.length-2;if(ue===1)Z.children=U;else if(1>>1,U=R[S];if(0>>1;Sy(se,c))ney(ue,se)?(R[S]=ue,R[ne]=c,S=ne):(R[S]=se,R[Z]=c,S=Z);else if(ney(ue,c))R[S]=ue,R[ne]=c,S=ne;else break e}}return V}function y(R,V){var c=R.sortIndex-V.sortIndex;return c!==0?c:R.id-V.id}if(typeof performance=="object"&&typeof performance.now=="function"){var C=performance;u.unstable_now=function(){return C.now()}}else{var k=Date,w=k.now();u.unstable_now=function(){return k.now()-w}}var _=[],L=[],T=1,z=null,M=3,B=!1,W=!1,j=!1,O=typeof setTimeout=="function"?setTimeout:null,he=typeof clearTimeout=="function"?clearTimeout:null,oe=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Ne(R){for(var V=s(L);V!==null;){if(V.callback===null)g(L);else if(V.startTime<=R)g(L),V.sortIndex=V.expirationTime,p(_,V);else break;V=s(L)}}function ce(R){if(j=!1,Ne(R),!W)if(s(_)!==null)W=!0,Ce(Me);else{var V=s(L);V!==null&&fe(ce,V.startTime-R)}}function Me(R,V){W=!1,j&&(j=!1,he(ze),ze=-1),B=!0;var c=M;try{for(Ne(V),z=s(_);z!==null&&(!(z.expirationTime>V)||R&&!ct());){var S=z.callback;if(typeof S=="function"){z.callback=null,M=z.priorityLevel;var U=S(z.expirationTime<=V);V=u.unstable_now(),typeof U=="function"?z.callback=U:z===s(_)&&g(_),Ne(V)}else g(_);z=s(_)}if(z!==null)var G=!0;else{var Z=s(L);Z!==null&&fe(ce,Z.startTime-V),G=!1}return G}finally{z=null,M=c,B=!1}}var ie=!1,ve=null,ze=-1,nt=5,Ze=-1;function ct(){return!(u.unstable_now()-ZeR||125S?(R.sortIndex=c,p(L,R),s(_)===null&&R===s(L)&&(j?(he(ze),ze=-1):j=!0,fe(ce,c-S))):(R.sortIndex=U,p(_,R),W||B||(W=!0,Ce(Me))),R},u.unstable_shouldYield=ct,u.unstable_wrapCallback=function(R){var V=M;return function(){var c=M;M=V;try{return R.apply(this,arguments)}finally{M=c}}}}(Ui)),Ui}var Qa;function Pd(){return Qa||(Qa=1,Fi.exports=_d()),Fi.exports}/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Ga;function Nd(){if(Ga)return Xe;Ga=1;var u=Y,p=Pd();function s(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),_=Object.prototype.hasOwnProperty,L=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,T={},z={};function M(e){return _.call(z,e)?!0:_.call(T,e)?!1:L.test(e)?z[e]=!0:(T[e]=!0,!1)}function B(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function W(e,t,n,r){if(t===null||typeof t>"u"||B(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function j(e,t,n,r,l,o,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var O={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){O[e]=new j(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];O[t]=new j(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){O[e]=new j(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){O[e]=new j(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){O[e]=new j(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){O[e]=new j(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){O[e]=new j(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){O[e]=new j(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){O[e]=new j(e,5,!1,e.toLowerCase(),null,!1,!1)});var he=/[\-:]([a-z])/g;function oe(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(he,oe);O[t]=new j(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(he,oe);O[t]=new j(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(he,oe);O[t]=new j(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){O[e]=new j(e,1,!1,e.toLowerCase(),null,!1,!1)}),O.xlinkHref=new j("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){O[e]=new j(e,1,!1,e.toLowerCase(),null,!0,!0)});function Ne(e,t,n,r){var l=O.hasOwnProperty(t)?O[t]:null;(l!==null?l.type!==0:r||!(2a||l[i]!==o[a]){var f=` +`+l[i].replace(" at new "," at ");return e.displayName&&f.includes("")&&(f=f.replace("",e.displayName)),f}while(1<=i&&0<=a);break}}}finally{G=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?U(e):""}function se(e){switch(e.tag){case 5:return U(e.type);case 16:return U("Lazy");case 13:return U("Suspense");case 19:return U("SuspenseList");case 0:case 2:case 15:return e=Z(e.type,!1),e;case 11:return e=Z(e.type.render,!1),e;case 1:return e=Z(e.type,!0),e;default:return""}}function ne(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ve:return"Fragment";case ie:return"Portal";case nt:return"Profiler";case ze:return"StrictMode";case Oe:return"Suspense";case De:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case ct:return(e.displayName||"Context")+".Consumer";case Ze:return(e._context.displayName||"Context")+".Provider";case b:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case qe:return t=e.displayName||null,t!==null?t:ne(e.type)||"Memo";case Ce:t=e._payload,e=e._init;try{return ne(e(t))}catch{}}return null}function ue(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ne(t);case 8:return t===ze?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function re(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Be(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function _c(e){var t=Be(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(i){r=""+i,o.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Rr(e){e._valueTracker||(e._valueTracker=_c(e))}function Yi(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Be(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Lr(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Hl(e,t){var n=t.checked;return c({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Xi(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=re(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Zi(e,t){t=t.checked,t!=null&&Ne(e,"checked",t,!1)}function Ql(e,t){Zi(e,t);var n=re(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Gl(e,t.type,n):t.hasOwnProperty("defaultValue")&&Gl(e,t.type,re(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function qi(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Gl(e,t,n){(t!=="number"||Lr(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var $n=Array.isArray;function hn(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=Mr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Wn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Vn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Pc=["Webkit","ms","Moz","O"];Object.keys(Vn).forEach(function(e){Pc.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Vn[t]=Vn[e]})});function ru(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Vn.hasOwnProperty(e)&&Vn[e]?(""+t).trim():t+"px"}function lu(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=ru(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Nc=c({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Xl(e,t){if(t){if(Nc[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(s(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(s(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(s(61))}if(t.style!=null&&typeof t.style!="object")throw Error(s(62))}}function Zl(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var ql=null;function Jl(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var bl=null,vn=null,gn=null;function ou(e){if(e=cr(e)){if(typeof bl!="function")throw Error(s(280));var t=e.stateNode;t&&(t=tl(t),bl(e.stateNode,e.type,t))}}function iu(e){vn?gn?gn.push(e):gn=[e]:vn=e}function uu(){if(vn){var e=vn,t=gn;if(gn=vn=null,ou(e),t)for(e=0;e>>=0,e===0?32:31-(Fc(e)/Uc|0)|0}var Ar=64,Fr=4194304;function Gn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ur(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,o=e.pingedLanes,i=n&268435455;if(i!==0){var a=i&~l;a!==0?r=Gn(a):(o&=i,o!==0&&(r=Gn(o)))}else i=n&~l,i!==0?r=Gn(i):o!==0&&(r=Gn(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&l)&&(l=r&-r,o=t&-t,l>=o||l===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Kn(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-ft(t),e[t]=n}function Bc(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=tr),Ou=" ",Du=!1;function Au(e,t){switch(e){case"keyup":return yf.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Fu(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Sn=!1;function Sf(e,t){switch(e){case"compositionend":return Fu(t);case"keypress":return t.which!==32?null:(Du=!0,Ou);case"textInput":return e=t.data,e===Ou&&Du?null:e;default:return null}}function kf(e,t){if(Sn)return e==="compositionend"||!yo&&Au(e,t)?(e=Tu(),Hr=fo=At=null,Sn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Qu(n)}}function Ku(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ku(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Yu(){for(var e=window,t=Lr();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Lr(e.document)}return t}function ko(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Rf(e){var t=Yu(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Ku(n.ownerDocument.documentElement,n)){if(r!==null&&ko(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,o=Math.min(r.start,l);r=r.end===void 0?o:Math.min(r.end,l),!e.extend&&o>r&&(l=r,r=o,o=l),l=Gu(n,o);var i=Gu(n,r);l&&i&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,kn=null,xo=null,or=null,Eo=!1;function Xu(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Eo||kn==null||kn!==Lr(r)||(r=kn,"selectionStart"in r&&ko(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),or&&lr(or,r)||(or=r,r=Jr(xo,"onSelect"),0Pn||(e.current=Oo[Pn],Oo[Pn]=null,Pn--)}function ae(e,t){Pn++,Oo[Pn]=e.current,e.current=t}var Wt={},Ae=$t(Wt),He=$t(!1),tn=Wt;function Nn(e,t){var n=e.type.contextTypes;if(!n)return Wt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},o;for(o in n)l[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function Qe(e){return e=e.childContextTypes,e!=null}function nl(){pe(He),pe(Ae)}function cs(e,t,n){if(Ae.current!==Wt)throw Error(s(168));ae(Ae,t),ae(He,n)}function fs(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(s(108,ue(e)||"Unknown",l));return c({},n,r)}function rl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Wt,tn=Ae.current,ae(Ae,e),ae(He,He.current),!0}function ds(e,t,n){var r=e.stateNode;if(!r)throw Error(s(169));n?(e=fs(e,t,tn),r.__reactInternalMemoizedMergedChildContext=e,pe(He),pe(Ae),ae(Ae,e)):pe(He),ae(He,n)}var Pt=null,ll=!1,Do=!1;function ps(e){Pt===null?Pt=[e]:Pt.push(e)}function Vf(e){ll=!0,ps(e)}function Vt(){if(!Do&&Pt!==null){Do=!0;var e=0,t=le;try{var n=Pt;for(le=1;e>=i,l-=i,Nt=1<<32-ft(t)+l|n<K?(Le=Q,Q=null):Le=Q.sibling;var te=x(m,Q,h[K],N);if(te===null){Q===null&&(Q=Le);break}e&&Q&&te.alternate===null&&t(m,Q),d=o(te,d,K),H===null?$=te:H.sibling=te,H=te,Q=Le}if(K===h.length)return n(m,Q),ge&&rn(m,K),$;if(Q===null){for(;KK?(Le=Q,Q=null):Le=Q.sibling;var qt=x(m,Q,te.value,N);if(qt===null){Q===null&&(Q=Le);break}e&&Q&&qt.alternate===null&&t(m,Q),d=o(qt,d,K),H===null?$=qt:H.sibling=qt,H=qt,Q=Le}if(te.done)return n(m,Q),ge&&rn(m,K),$;if(Q===null){for(;!te.done;K++,te=h.next())te=P(m,te.value,N),te!==null&&(d=o(te,d,K),H===null?$=te:H.sibling=te,H=te);return ge&&rn(m,K),$}for(Q=r(m,Q);!te.done;K++,te=h.next())te=I(Q,m,K,te.value,N),te!==null&&(e&&te.alternate!==null&&Q.delete(te.key===null?K:te.key),d=o(te,d,K),H===null?$=te:H.sibling=te,H=te);return e&&Q.forEach(function(xd){return t(m,xd)}),ge&&rn(m,K),$}function xe(m,d,h,N){if(typeof h=="object"&&h!==null&&h.type===ve&&h.key===null&&(h=h.props.children),typeof h=="object"&&h!==null){switch(h.$$typeof){case Me:e:{for(var $=h.key,H=d;H!==null;){if(H.key===$){if($=h.type,$===ve){if(H.tag===7){n(m,H.sibling),d=l(H,h.props.children),d.return=m,m=d;break e}}else if(H.elementType===$||typeof $=="object"&&$!==null&&$.$$typeof===Ce&&Ns($)===H.type){n(m,H.sibling),d=l(H,h.props),d.ref=fr(m,H,h),d.return=m,m=d;break e}n(m,H);break}else t(m,H);H=H.sibling}h.type===ve?(d=dn(h.props.children,m.mode,N,h.key),d.return=m,m=d):(N=Ml(h.type,h.key,h.props,null,m.mode,N),N.ref=fr(m,d,h),N.return=m,m=N)}return i(m);case ie:e:{for(H=h.key;d!==null;){if(d.key===H)if(d.tag===4&&d.stateNode.containerInfo===h.containerInfo&&d.stateNode.implementation===h.implementation){n(m,d.sibling),d=l(d,h.children||[]),d.return=m,m=d;break e}else{n(m,d);break}else t(m,d);d=d.sibling}d=ji(h,m.mode,N),d.return=m,m=d}return i(m);case Ce:return H=h._init,xe(m,d,H(h._payload),N)}if($n(h))return A(m,d,h,N);if(V(h))return F(m,d,h,N);pl(m,h)}return typeof h=="string"&&h!==""||typeof h=="number"?(h=""+h,d!==null&&d.tag===6?(n(m,d.sibling),d=l(d,h),d.return=m,m=d):(n(m,d),d=Mi(h,m.mode,N),d.return=m,m=d),i(m)):n(m,d)}return xe}var jn=zs(!0),Ts=zs(!1),dr={},kt=$t(dr),pr=$t(dr),mr=$t(dr);function on(e){if(e===dr)throw Error(s(174));return e}function Zo(e,t){switch(ae(mr,t),ae(pr,e),ae(kt,dr),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Yl(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Yl(t,e)}pe(kt),ae(kt,t)}function In(){pe(kt),pe(pr),pe(mr)}function Rs(e){on(mr.current);var t=on(kt.current),n=Yl(t,e.type);t!==n&&(ae(pr,e),ae(kt,n))}function qo(e){pr.current===e&&(pe(kt),pe(pr))}var ye=$t(0);function ml(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Jo=[];function bo(){for(var e=0;en?n:4,e(!0);var r=ei.transition;ei.transition={};try{e(!1),t()}finally{le=n,ei.transition=r}}function Ys(){return it().memoizedState}function Gf(e,t,n){var r=Yt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Xs(e))Zs(t,n);else if(n=ws(e,t,n,r),n!==null){var l=Ve();gt(n,e,r,l),qs(n,t,r)}}function Kf(e,t,n){var r=Yt(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Xs(e))Zs(t,l);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,a=o(i,n);if(l.hasEagerState=!0,l.eagerState=a,dt(a,i)){var f=t.interleaved;f===null?(l.next=l,Go(t)):(l.next=f.next,f.next=l),t.interleaved=l;return}}catch{}finally{}n=ws(e,t,l,r),n!==null&&(l=Ve(),gt(n,e,r,l),qs(n,t,r))}}function Xs(e){var t=e.alternate;return e===we||t!==null&&t===we}function Zs(e,t){hr=vl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function qs(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,io(e,n)}}var wl={readContext:ot,useCallback:Fe,useContext:Fe,useEffect:Fe,useImperativeHandle:Fe,useInsertionEffect:Fe,useLayoutEffect:Fe,useMemo:Fe,useReducer:Fe,useRef:Fe,useState:Fe,useDebugValue:Fe,useDeferredValue:Fe,useTransition:Fe,useMutableSource:Fe,useSyncExternalStore:Fe,useId:Fe,unstable_isNewReconciler:!1},Yf={readContext:ot,useCallback:function(e,t){return xt().memoizedState=[e,t===void 0?null:t],e},useContext:ot,useEffect:$s,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,gl(4194308,4,Bs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return gl(4194308,4,e,t)},useInsertionEffect:function(e,t){return gl(4,2,e,t)},useMemo:function(e,t){var n=xt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=xt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Gf.bind(null,we,e),[r.memoizedState,e]},useRef:function(e){var t=xt();return e={current:e},t.memoizedState=e},useState:Fs,useDebugValue:ui,useDeferredValue:function(e){return xt().memoizedState=e},useTransition:function(){var e=Fs(!1),t=e[0];return e=Qf.bind(null,e[1]),xt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=we,l=xt();if(ge){if(n===void 0)throw Error(s(407));n=n()}else{if(n=t(),Re===null)throw Error(s(349));un&30||js(r,t,n)}l.memoizedState=n;var o={value:n,getSnapshot:t};return l.queue=o,$s(Os.bind(null,r,o,e),[e]),r.flags|=2048,yr(9,Is.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=xt(),t=Re.identifierPrefix;if(ge){var n=zt,r=Nt;n=(r&~(1<<32-ft(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=vr++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[St]=t,e[ar]=r,ma(e,t,!1,!1),t.stateNode=e;e:{switch(i=Zl(n,r),n){case"dialog":de("cancel",e),de("close",e),l=r;break;case"iframe":case"object":case"embed":de("load",e),l=r;break;case"video":case"audio":for(l=0;lFn&&(t.flags|=128,r=!0,wr(o,!1),t.lanes=4194304)}else{if(!r)if(e=ml(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),wr(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!ge)return Ue(t),null}else 2*ke()-o.renderingStartTime>Fn&&n!==1073741824&&(t.flags|=128,r=!0,wr(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(n=o.last,n!==null?n.sibling=i:t.child=i,o.last=i)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=ke(),t.sibling=null,n=ye.current,ae(ye,r?n&1|2:n&1),t):(Ue(t),null);case 22:case 23:return Ti(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?tt&1073741824&&(Ue(t),t.subtreeFlags&6&&(t.flags|=8192)):Ue(t),null;case 24:return null;case 25:return null}throw Error(s(156,t.tag))}function nd(e,t){switch(Fo(t),t.tag){case 1:return Qe(t.type)&&nl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return In(),pe(He),pe(Ae),bo(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return qo(t),null;case 13:if(pe(ye),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(s(340));Rn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return pe(ye),null;case 4:return In(),null;case 10:return Ho(t.type._context),null;case 22:case 23:return Ti(),null;case 24:return null;default:return null}}var xl=!1,$e=!1,rd=typeof WeakSet=="function"?WeakSet:Set,D=null;function Dn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Se(e,t,r)}else n.current=null}function gi(e,t,n){try{n()}catch(r){Se(e,t,r)}}var ga=!1;function ld(e,t){if(To=Vr,e=Yu(),ko(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,a=-1,f=-1,v=0,E=0,P=e,x=null;t:for(;;){for(var I;P!==n||l!==0&&P.nodeType!==3||(a=i+l),P!==o||r!==0&&P.nodeType!==3||(f=i+r),P.nodeType===3&&(i+=P.nodeValue.length),(I=P.firstChild)!==null;)x=P,P=I;for(;;){if(P===e)break t;if(x===n&&++v===l&&(a=i),x===o&&++E===r&&(f=i),(I=P.nextSibling)!==null)break;P=x,x=P.parentNode}P=I}n=a===-1||f===-1?null:{start:a,end:f}}else n=null}n=n||{start:0,end:0}}else n=null;for(Ro={focusedElem:e,selectionRange:n},Vr=!1,D=t;D!==null;)if(t=D,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,D=e;else for(;D!==null;){t=D;try{var A=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(A!==null){var F=A.memoizedProps,xe=A.memoizedState,m=t.stateNode,d=m.getSnapshotBeforeUpdate(t.elementType===t.type?F:mt(t.type,F),xe);m.__reactInternalSnapshotBeforeUpdate=d}break;case 3:var h=t.stateNode.containerInfo;h.nodeType===1?h.textContent="":h.nodeType===9&&h.documentElement&&h.removeChild(h.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(s(163))}}catch(N){Se(t,t.return,N)}if(e=t.sibling,e!==null){e.return=t.return,D=e;break}D=t.return}return A=ga,ga=!1,A}function Sr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var o=l.destroy;l.destroy=void 0,o!==void 0&&gi(t,n,o)}l=l.next}while(l!==r)}}function El(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function yi(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function ya(e){var t=e.alternate;t!==null&&(e.alternate=null,ya(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[St],delete t[ar],delete t[Io],delete t[$f],delete t[Wf])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function wa(e){return e.tag===5||e.tag===3||e.tag===4}function Sa(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||wa(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function wi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=el));else if(r!==4&&(e=e.child,e!==null))for(wi(e,t,n),e=e.sibling;e!==null;)wi(e,t,n),e=e.sibling}function Si(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Si(e,t,n),e=e.sibling;e!==null;)Si(e,t,n),e=e.sibling}var je=null,ht=!1;function Qt(e,t,n){for(n=n.child;n!==null;)ka(e,t,n),n=n.sibling}function ka(e,t,n){if(wt&&typeof wt.onCommitFiberUnmount=="function")try{wt.onCommitFiberUnmount(Dr,n)}catch{}switch(n.tag){case 5:$e||Dn(n,t);case 6:var r=je,l=ht;je=null,Qt(e,t,n),je=r,ht=l,je!==null&&(ht?(e=je,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):je.removeChild(n.stateNode));break;case 18:je!==null&&(ht?(e=je,n=n.stateNode,e.nodeType===8?jo(e.parentNode,n):e.nodeType===1&&jo(e,n),Jn(e)):jo(je,n.stateNode));break;case 4:r=je,l=ht,je=n.stateNode.containerInfo,ht=!0,Qt(e,t,n),je=r,ht=l;break;case 0:case 11:case 14:case 15:if(!$e&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var o=l,i=o.destroy;o=o.tag,i!==void 0&&(o&2||o&4)&&gi(n,t,i),l=l.next}while(l!==r)}Qt(e,t,n);break;case 1:if(!$e&&(Dn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){Se(n,t,a)}Qt(e,t,n);break;case 21:Qt(e,t,n);break;case 22:n.mode&1?($e=(r=$e)||n.memoizedState!==null,Qt(e,t,n),$e=r):Qt(e,t,n);break;default:Qt(e,t,n)}}function xa(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new rd),t.forEach(function(r){var l=pd.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function vt(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=i),r&=~o}if(r=l,r=ke()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*id(r/1960))-r,10e?16:e,Kt===null)var r=!1;else{if(e=Kt,Kt=null,zl=0,ee&6)throw Error(s(331));var l=ee;for(ee|=4,D=e.current;D!==null;){var o=D,i=o.child;if(D.flags&16){var a=o.deletions;if(a!==null){for(var f=0;fke()-Ei?cn(e,0):xi|=n),Ye(e,t)}function Oa(e,t){t===0&&(e.mode&1?(t=Fr,Fr<<=1,!(Fr&130023424)&&(Fr=4194304)):t=1);var n=Ve();e=Tt(e,t),e!==null&&(Kn(e,t,n),Ye(e,n))}function dd(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Oa(e,n)}function pd(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(s(314))}r!==null&&r.delete(t),Oa(e,n)}var Da;Da=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||He.current)Ge=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Ge=!1,ed(e,t,n);Ge=!!(e.flags&131072)}else Ge=!1,ge&&t.flags&1048576&&ms(t,il,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;kl(e,t),e=t.pendingProps;var l=Nn(t,Ae.current);Mn(t,n),l=ni(null,t,r,e,l,n);var o=ri();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Qe(r)?(o=!0,rl(t)):o=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Ko(t),l.updater=dl,t.stateNode=l,l._reactInternals=t,Xo(t,r,e,n),t=fi(null,t,r,!0,o,n)):(t.tag=0,ge&&o&&Ao(t),We(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(kl(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=hd(r),e=mt(r,e),l){case 0:t=ci(null,t,r,e,n);break e;case 1:t=sa(null,t,r,e,n);break e;case 11:t=ra(null,t,r,e,n);break e;case 14:t=la(null,t,r,mt(r.type,e),n);break e}throw Error(s(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:mt(r,l),ci(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:mt(r,l),sa(e,t,r,l,n);case 3:e:{if(aa(t),e===null)throw Error(s(387));r=t.pendingProps,o=t.memoizedState,l=o.element,Ss(e,t),fl(t,r,null,n);var i=t.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){l=On(Error(s(423)),t),t=ca(e,t,r,n,l);break e}else if(r!==l){l=On(Error(s(424)),t),t=ca(e,t,r,n,l);break e}else for(et=Ut(t.stateNode.containerInfo.firstChild),be=t,ge=!0,pt=null,n=Ts(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Rn(),r===l){t=Lt(e,t,n);break e}We(e,t,r,n)}t=t.child}return t;case 5:return Rs(t),e===null&&$o(t),r=t.type,l=t.pendingProps,o=e!==null?e.memoizedProps:null,i=l.children,Lo(r,l)?i=null:o!==null&&Lo(r,o)&&(t.flags|=32),ua(e,t),We(e,t,i,n),t.child;case 6:return e===null&&$o(t),null;case 13:return fa(e,t,n);case 4:return Zo(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=jn(t,null,r,n):We(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:mt(r,l),ra(e,t,r,l,n);case 7:return We(e,t,t.pendingProps,n),t.child;case 8:return We(e,t,t.pendingProps.children,n),t.child;case 12:return We(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,o=t.memoizedProps,i=l.value,ae(sl,r._currentValue),r._currentValue=i,o!==null)if(dt(o.value,i)){if(o.children===l.children&&!He.current){t=Lt(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var a=o.dependencies;if(a!==null){i=o.child;for(var f=a.firstContext;f!==null;){if(f.context===r){if(o.tag===1){f=Rt(-1,n&-n),f.tag=2;var v=o.updateQueue;if(v!==null){v=v.shared;var E=v.pending;E===null?f.next=f:(f.next=E.next,E.next=f),v.pending=f}}o.lanes|=n,f=o.alternate,f!==null&&(f.lanes|=n),Qo(o.return,n,t),a.lanes|=n;break}f=f.next}}else if(o.tag===10)i=o.type===t.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(s(341));i.lanes|=n,a=i.alternate,a!==null&&(a.lanes|=n),Qo(i,n,t),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===t){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}We(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,Mn(t,n),l=ot(l),r=r(l),t.flags|=1,We(e,t,r,n),t.child;case 14:return r=t.type,l=mt(r,t.pendingProps),l=mt(r.type,l),la(e,t,r,l,n);case 15:return oa(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:mt(r,l),kl(e,t),t.tag=1,Qe(r)?(e=!0,rl(t)):e=!1,Mn(t,n),_s(t,r,l),Xo(t,r,l,n),fi(null,t,r,!0,e,n);case 19:return pa(e,t,n);case 22:return ia(e,t,n)}throw Error(s(156,t.tag))};function Aa(e,t){return hu(e,t)}function md(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function st(e,t,n,r){return new md(e,t,n,r)}function Li(e){return e=e.prototype,!(!e||!e.isReactComponent)}function hd(e){if(typeof e=="function")return Li(e)?1:0;if(e!=null){if(e=e.$$typeof,e===b)return 11;if(e===qe)return 14}return 2}function Zt(e,t){var n=e.alternate;return n===null?(n=st(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ml(e,t,n,r,l,o){var i=2;if(r=e,typeof e=="function")Li(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case ve:return dn(n.children,l,o,t);case ze:i=8,l|=8;break;case nt:return e=st(12,n,t,l|2),e.elementType=nt,e.lanes=o,e;case Oe:return e=st(13,n,t,l),e.elementType=Oe,e.lanes=o,e;case De:return e=st(19,n,t,l),e.elementType=De,e.lanes=o,e;case fe:return jl(n,l,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Ze:i=10;break e;case ct:i=9;break e;case b:i=11;break e;case qe:i=14;break e;case Ce:i=16,r=null;break e}throw Error(s(130,e==null?e:typeof e,""))}return t=st(i,n,t,l),t.elementType=e,t.type=r,t.lanes=o,t}function dn(e,t,n,r){return e=st(7,e,r,t),e.lanes=n,e}function jl(e,t,n,r){return e=st(22,e,r,t),e.elementType=fe,e.lanes=n,e.stateNode={isHidden:!1},e}function Mi(e,t,n){return e=st(6,e,null,t),e.lanes=n,e}function ji(e,t,n){return t=st(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function vd(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=oo(0),this.expirationTimes=oo(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=oo(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Ii(e,t,n,r,l,o,i,a,f){return e=new vd(e,t,n,a,f),t===1?(t=1,o===!0&&(t|=8)):t=0,o=st(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ko(o),e}function gd(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(fc)}catch(u){console.error(u)}}fc(),ac.exports=Nd();var zd=ac.exports,Ka=zd;Wl.createRoot=Ka.createRoot,Wl.hydrateRoot=Ka.hydrateRoot;function Td(u){return u instanceof Function||typeof u=="function"}function $i(u,p){var y;const s=(y=p.configEntries[u])==null?void 0:y[0];if(!s)return;const g=s.configValue;if(typeof g=="string")return g;if(!g)return null;if(Td(g)){const C=g(p);if(typeof C!="string")throw new Error(s.configDefinedAt+" should return a string");return C}else throw new Error(s.configDefinedAt+" should be a string or a function returning a string")}function Rd(u,p){const s=globalThis[Ya]=globalThis[Ya]||{};return s[u]=s[u]||p}const Ya="_vike_react",dc=Rd("PageContextProvider.ts",{reactContext:Ct.createContext(void 0)});function Ld({pageContext:u,children:p}){const{reactContext:s}=dc;return Ct.createElement(s.Provider,{value:u},p)}function Md(){const{reactContext:u}=dc;return Y.useContext(u)}function jd(u){const{Page:p}=u;let s=p?Ct.createElement(p,null):null;return[...u.config.Layout||[],...u.config.Wrapper||[]].forEach(g=>{s=Ct.createElement(g,null,s)}),s=Ct.createElement(Ld,{pageContext:u},s),u.config.reactStrictMode!==!1&&(s=Ct.createElement(Ct.StrictMode,null,s)),s}let _r;const Yp=u=>{var y,C,k,w;(C=(y=u.config).onBeforeRenderClient)==null||C.call(y,u);const p=jd(u),s=(_,L)=>{},g=document.getElementById("root");if(g.innerHTML!==""&&u.isHydration)_r=Wl.hydrateRoot(g,p,{onUncaughtError:s});else{if(!_r)_r=Wl.createRoot(g,{onUncaughtError:s});else{const _=$i("title",u)||"",L=$i("lang",u)||"en",T=$i("favicon",u);_!==void 0&&(document.title=_),L!==void 0&&(document.documentElement.lang=L),T!==void 0&&Id(T)}_r.render(p)}u.page=p,u.root=_r,(w=(k=u.config).onAfterRenderClient)==null||w.call(k,u)};function Id(u){let p=document.querySelector("link[rel~='icon']");if(!u){p&&document.head.removeChild(p);return}p||(p=document.createElement("link"),p.rel="icon",document.head.appendChild(p)),p.href=u}var pc={exports:{}},Pr={};/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Xa;function Od(){if(Xa)return Pr;Xa=1;var u=Y,p=Symbol.for("react.element"),s=Symbol.for("react.fragment"),g=Object.prototype.hasOwnProperty,y=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,C={key:!0,ref:!0,__self:!0,__source:!0};function k(w,_,L){var T,z={},M=null,B=null;L!==void 0&&(M=""+L),_.key!==void 0&&(M=""+_.key),_.ref!==void 0&&(B=_.ref);for(T in _)g.call(_,T)&&!C.hasOwnProperty(T)&&(z[T]=_[T]);if(w&&w.defaultProps)for(T in _=w.defaultProps,_)z[T]===void 0&&(z[T]=_[T]);return{$$typeof:p,type:w,key:M,ref:B,props:z,_owner:y.current}}return Pr.Fragment=s,Pr.jsx=k,Pr.jsxs=k,Pr}pc.exports=Od();var X=pc.exports;/** + * @license lucide-react v0.367.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var Dd={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v0.367.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ad=u=>u.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();/** + * @license lucide-react v0.367.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Tr=(u,p)=>{const s=Y.forwardRef(({color:g="currentColor",size:y=24,strokeWidth:C=2,absoluteStrokeWidth:k,className:w="",children:_,...L},T)=>Y.createElement("svg",{ref:T,...Dd,width:y,height:y,stroke:g,strokeWidth:k?Number(C)*24/Number(y):C,className:["lucide",`lucide-${Ad(u)}`,w].join(" "),...L},[...p.map(([z,M])=>Y.createElement(z,M)),...Array.isArray(_)?_:[_]]));return s.displayName=`${u}`,s};/** + * @license lucide-react v0.367.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Za=Tr("CircleDashed",[["path",{d:"M10.1 2.182a10 10 0 0 1 3.8 0",key:"5ilxe3"}],["path",{d:"M13.9 21.818a10 10 0 0 1-3.8 0",key:"11zvb9"}],["path",{d:"M17.609 3.721a10 10 0 0 1 2.69 2.7",key:"1iw5b2"}],["path",{d:"M2.182 13.9a10 10 0 0 1 0-3.8",key:"c0bmvh"}],["path",{d:"M20.279 17.609a10 10 0 0 1-2.7 2.69",key:"1ruxm7"}],["path",{d:"M21.818 10.1a10 10 0 0 1 0 3.8",key:"qkgqxc"}],["path",{d:"M3.721 6.391a10 10 0 0 1 2.7-2.69",key:"1mcia2"}],["path",{d:"M6.391 20.279a10 10 0 0 1-2.69-2.7",key:"1fvljs"}]]);/** + * @license lucide-react v0.367.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Fd=Tr("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/** + * @license lucide-react v0.367.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ud=Tr("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/** + * @license lucide-react v0.367.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const qa=Tr("Smile",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]]);/** + * @license lucide-react v0.367.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const $d=Tr("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]),mc=({children:u,label:p="Button",icon:s,link:g,noGutter:y,disabled:C,onClick:k,ref:w,className:_})=>{const L=Y.useMemo(()=>`flex items-center ${y?"p-0":"px-4 py-2"} rounded-sm gap-2 ${_}`,[_,y]);return g?X.jsxs("a",{href:g,onClick:k,className:`${L}`,ref:w,"aria-label":p,children:[s,u]}):X.jsxs("button",{type:"button",disabled:C,onClick:k,className:`${L}`,ref:w,"aria-label":p,children:[s,u]})};function Wd(){for(var u=0,p,s,g="";uu&&(p=0,g=s,s=new Map)}return{get:function(k){var w=s.get(k);if(w!==void 0)return w;if((w=g.get(k))!==void 0)return y(k,w),w},set:function(k,w){s.has(k)?s.set(k,w):y(k,w)}}}var gc="!";function Yd(u){var p=u.separator||":",s=p.length===1,g=p[0],y=p.length;return function(k){for(var w=[],_=0,L=0,T,z=0;zL?T-L:void 0;return{modifiers:w,hasImportantModifier:W,baseClassName:j,maybePostfixModifierPosition:O}}}function Xd(u){if(u.length<=1)return u;var p=[],s=[];return u.forEach(function(g){var y=g[0]==="[";y?(p.push.apply(p,s.sort().concat([g])),s=[]):s.push(g)}),p.push.apply(p,s.sort()),p}function Zd(u){return{cache:Kd(u.cacheSize),splitModifiers:Yd(u),...Vd(u)}}var qd=/\s+/;function Jd(u,p){var s=p.splitModifiers,g=p.getClassGroupId,y=p.getConflictingClassGroupIds,C=new Set;return u.trim().split(qd).map(function(k){var w=s(k),_=w.modifiers,L=w.hasImportantModifier,T=w.baseClassName,z=w.maybePostfixModifierPosition,M=g(z?T.substring(0,z):T),B=!!z;if(!M){if(!z)return{isTailwindClass:!1,originalClassName:k};if(M=g(T),!M)return{isTailwindClass:!1,originalClassName:k};B=!1}var W=Xd(_).join(":"),j=L?W+gc:W;return{isTailwindClass:!0,modifierId:j,classGroupId:M,originalClassName:k,hasPostfixModifier:B}}).reverse().filter(function(k){if(!k.isTailwindClass)return!0;var w=k.modifierId,_=k.classGroupId,L=k.hasPostfixModifier,T=w+_;return C.has(T)?!1:(C.add(T),y(_,L).forEach(function(z){return C.add(w+z)}),!0)}).reverse().map(function(k){return k.originalClassName}).join(" ")}function bd(){for(var u=arguments.length,p=new Array(u),s=0;su.reduce((s,g,y)=>s.concat(g||[],p[y]||[]),[]),yp=(u,p="")=>{let s=u.join(" ").trim().replace(/\n/g," ").replace(/\s{2,}/g," ").split(" ").filter(y=>y!==","),g=p?p.split(" "):[];return mp(...s.concat(g).filter(y=>y!==" "))},wp=([u])=>u.charAt(0)!=="$",Wi=u=>u[Sc]===!0,kc=u=>(p,...s)=>{let g=(y=[])=>{let C=Ct.forwardRef((k,w)=>{let{$as:_=u,style:L={},...T}=k,z=Wi(u)?u:_,M=y?y.reduce((W,j)=>Object.assign(W,typeof j=="function"?j(k):j),{}):{},B=Wi(z)?T:Object.fromEntries(Object.entries(T).filter(wp));return Ct.createElement(z,{...B,style:{...M,...L},ref:w,className:yp(gp(p,s.map(W=>W({...T,$as:_}))),T.className),...Wi(u)?{$as:_}:{}})});return C[Sc]=!0,typeof u!="string"?C.displayName=u.displayName||u.name||"tw.Component":C.displayName="tw."+u,C.withStyle=k=>g(y.concat(k)),C};return g()},Sp=vp.reduce((u,p)=>({...u,[p]:kc(p)}),{}),kp=Object.assign(kc,Sp),Vl=kp;const xp=Vl.div` + p-2 + bg-darkLight + border-darkLightBorder + border-1 + rounded +`,Ep=Vl.div` + m-auto + ${u=>u.$fullWidth?"w-full":"container max-w-screen-lg"} + px-4 + px-lg-0 +`,tc=Vl.button` + bg-dark + border-1 + border-darkLightBorder + px-2 + flex + text-center + items-center + w-10 + font-bold + justify-center + h-full + ${u=>u.$pos==="left"?"rounded-s-lg":"rounded-e-lg"} +`,Cp=Vl.input` + bg-darkLight + border-x-0 + border-1 + border-darkLightBorder + text-center + text-light + text-sm + flex + items-center + justify-center + font-bold + w-full + min-w-10 + h-full +`,nc=({onIncrease:u,onDecrease:p,value:s,label:g})=>X.jsxs("div",{className:"flex justify-between items-center gap-2 items-stretch flex-1",children:[X.jsx("div",{className:"whitespace-nowrap text-sm flex flex-col items-center justify-center",children:g}),X.jsxs("div",{className:"relative flex items-center max-w-24",children:[X.jsx(tc,{$pos:"left",type:"button",onClick:p,"aria-label":"Decrement",children:"-"}),X.jsx(Cp,{type:"text",value:s,readOnly:!0}),X.jsx(tc,{$pos:"right",type:"button",onClick:u,"aria-label":"Increment",children:"+"})]})]}),at={bpm:{default:130,min:60,max:240},loop:{default:!0},timeSignature:{default:4,min:2,max:8},loopLength:{default:4,min:1,max:8},isPlaying:!1},_p=({tone:u,transport:p})=>{const s=Y.useRef(null),g=Y.useRef(null),y=Y.useCallback(()=>{!u||!p||(s.current!==null&&(p.clear(s.current),s.current=null),g.current!=null&&(p.clear(g.current),g.current=null))},[u,p]);return{setMetronome:Y.useCallback(()=>{if(!u||!p)return;y();const k=new u.Synth().toDestination(),w=p.scheduleRepeat(T=>{k.triggerAttackRelease("C5","64n",T)},"1m");s.current=w;const _=new u.Synth().toDestination(),L=p.scheduleRepeat(T=>{_.triggerAttackRelease("C4","64n",T)},"4n");g.current=L},[y,u,p])}},xc=Y.createContext(void 0),Pp=({children:u})=>{const[p,s]=Y.useState(),[g,y]=Y.useState(),{setMetronome:C}=_p({tone:p,transport:g}),k=Y.useMemo(()=>({tone:p,setTone:s,transport:g,setTransport:y,setMetronome:C}),[C,p,g]);return X.jsx(xc.Provider,{value:k,children:u})},Np=()=>{const u=Y.useContext(xc),p=u==null?void 0:u.tone,s=u==null?void 0:u.setTone,g=u==null?void 0:u.transport,y=u==null?void 0:u.setTransport,C=u==null?void 0:u.setMetronome;if(!u)throw new Error("tone must be used within the ToneContextProvider");return{tone:p,setTone:s,transport:g,setTransport:y,setMetronome:C}};var zp={BASE_SERVER:"/statetrain/",BASE_ASSETS:"/statetrain/",BASE_URL:"/statetrain/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const rc=u=>{let p;const s=new Set,g=(T,z)=>{const M=typeof T=="function"?T(p):T;if(!Object.is(M,p)){const B=p;p=z??(typeof M!="object"||M===null)?M:Object.assign({},p,M),s.forEach(W=>W(p,B))}},y=()=>p,_={setState:g,getState:y,getInitialState:()=>L,subscribe:T=>(s.add(T),()=>s.delete(T)),destroy:()=>{(zp?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),s.clear()}},L=p=u(g,y,_);return _},Tp=u=>u?rc(u):rc;var Ec={exports:{}},Vi={},Bi={exports:{}},Hi={};/** + * @license React + * use-sync-external-store-shim.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var lc;function Rp(){if(lc)return Hi;lc=1;var u=Y;function p(z,M){return z===M&&(z!==0||1/z===1/M)||z!==z&&M!==M}var s=typeof Object.is=="function"?Object.is:p,g=u.useState,y=u.useEffect,C=u.useLayoutEffect,k=u.useDebugValue;function w(z,M){var B=M(),W=g({inst:{value:B,getSnapshot:M}}),j=W[0].inst,O=W[1];return C(function(){j.value=B,j.getSnapshot=M,_(j)&&O({inst:j})},[z,B,M]),y(function(){return _(j)&&O({inst:j}),z(function(){_(j)&&O({inst:j})})},[z]),k(B),B}function _(z){var M=z.getSnapshot;z=z.value;try{var B=M();return!s(z,B)}catch{return!0}}function L(z,M){return M()}var T=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?L:w;return Hi.useSyncExternalStore=u.useSyncExternalStore!==void 0?u.useSyncExternalStore:T,Hi}var oc;function Lp(){return oc||(oc=1,Bi.exports=Rp()),Bi.exports}/** + * @license React + * use-sync-external-store-shim/with-selector.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var ic;function Mp(){if(ic)return Vi;ic=1;var u=Y,p=Lp();function s(L,T){return L===T&&(L!==0||1/L===1/T)||L!==L&&T!==T}var g=typeof Object.is=="function"?Object.is:s,y=p.useSyncExternalStore,C=u.useRef,k=u.useEffect,w=u.useMemo,_=u.useDebugValue;return Vi.useSyncExternalStoreWithSelector=function(L,T,z,M,B){var W=C(null);if(W.current===null){var j={hasValue:!1,value:null};W.current=j}else j=W.current;W=w(function(){function he(ie){if(!oe){if(oe=!0,Ne=ie,ie=M(ie),B!==void 0&&j.hasValue){var ve=j.value;if(B(ve,ie))return ce=ve}return ce=ie}if(ve=ce,g(Ne,ie))return ve;var ze=M(ie);return B!==void 0&&B(ve,ze)?ve:(Ne=ie,ce=ze)}var oe=!1,Ne,ce,Me=z===void 0?null:z;return[function(){return he(T())},Me===null?void 0:function(){return he(Me())}]},[T,z,M,B]);var O=y(L,W[0],W[1]);return k(function(){j.hasValue=!0,j.value=O},[O]),_(O),O},Vi}Ec.exports=Mp();var jp=Ec.exports;const Ip=sc(jp);var Cc={BASE_SERVER:"/statetrain/",BASE_ASSETS:"/statetrain/",BASE_URL:"/statetrain/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const{useDebugValue:Op}=Ct,{useSyncExternalStoreWithSelector:Dp}=Ip;let uc=!1;const Ap=u=>u;function Fp(u,p=Ap,s){(Cc?"production":void 0)!=="production"&&s&&!uc&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),uc=!0);const g=Dp(u.subscribe,u.getState,u.getServerState||u.getInitialState,p,s);return Op(g),g}const Up=u=>{(Cc?"production":void 0)!=="production"&&typeof u!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const p=typeof u=="function"?Tp(u):u,s=(g,y)=>Fp(p,g,y);return Object.assign(s,p),s},$p=u=>Up,Wp=$p()(u=>({bpm:at.bpm.default,setBpm:p=>u(()=>({bpm:p})),timeSignature:at.timeSignature.default,setTimeSignature:p=>u(()=>({timeSignature:p})),loopLength:at.loopLength.default,setLoopLength:p=>u(()=>({loopLength:p})),isPlaying:at.isPlaying,setIsPlaying:p=>u(()=>({isPlaying:p}))})),Bl=()=>{const{transport:u,tone:p,setMetronome:s,setTone:g,setTransport:y}=Np(),{setIsPlaying:C,setBpm:k,setTimeSignature:w,isPlaying:_,loopLength:L,bpm:T,timeSignature:z}=Wp(),M=Y.useCallback(()=>{u==null||u.start(),C(!0)},[C,u]),B=Y.useCallback(()=>{u==null||u.stop(),C(!1)},[C,u]),W=Y.useCallback(O=>{O&&O<=at.bpm.max&&O>=at.bpm.min&&u&&(u.bpm.value=O,k(O))},[k,u]),j=Y.useCallback(O=>{u&&s&&O&&O<=at.timeSignature.max&&O>=at.timeSignature.min&&(_&&B(),u.timeSignature=O,u.loopEnd=`${L}m`,w(O),s())},[B,_,L,s,w,u]);return{transport:u,tone:p,isPlaying:_,loopLength:L,bpm:T,timeSignature:z,setTransport:y,setTone:g,setMetronome:s,handlePlay:M,handleStop:B,handleChangeBpm:W,handleChangeTimeSignature:j}},Vp=()=>{const{bpm:u,timeSignature:p,handleChangeBpm:s,handleChangeTimeSignature:g}=Bl();return X.jsxs("div",{className:"flex flex-col items-stretch justify-between gap-1",children:[X.jsx(nc,{label:"Global BPM",value:u,onIncrease:()=>s(u+1),onDecrease:()=>s(u-1)}),X.jsx(nc,{label:"Time Signature",value:`${p}/4`,onIncrease:()=>g(p+1),onDecrease:()=>g(p-1)})]})},Bp=Y.memo(({currentPosition:u,setCurrentPosition:p,transportLength:s})=>{const{transport:g,tone:y,loopLength:C,isPlaying:k,timeSignature:w}=Bl(),_=Y.useRef(),L=Y.useMemo(()=>Array.from({length:C},(W,j)=>j),[C]),T=Y.useMemo(()=>Array.from({length:w},(W,j)=>j),[w]),z=Y.useCallback(()=>{p(W=>(W+1)%(C*w))},[C,p,w]),M=Y.useCallback(()=>{_.current!==void 0&&(y==null||y.getDraw().cancel(),g==null||g.clear(_.current))},[y,g]),B=Y.useCallback(()=>{M();const W=g==null?void 0:g.scheduleRepeat(j=>{var O;(O=y==null?void 0:y.getDraw())==null||O.schedule(()=>{z()},j)},"4n");p(s),_.current=W},[M,z,p,y,g,s]);return Y.useEffect(()=>{s&&(p(s),B())},[s,B,p]),X.jsx("div",{className:"flex flex-col items-stretch justify-between",children:L.map(W=>X.jsx("div",{className:"flex gap-1",children:T.map(j=>{const O=u===W*w+j,he=W===0&&j===0,oe=O&&j===0;return X.jsxs("div",{className:"w-3 h-3 flex items-center justify-center",children:[k&&X.jsxs(X.Fragment,{children:[X.jsx(Za,{strokeWidth:3,className:`text-errorDark ${O||oe?"hidden":"block"}`}),X.jsx(Fd,{strokeWidth:3,className:`text-warningLight ${O&&!oe?"block":"hidden"}`}),X.jsx(qa,{strokeWidth:4,className:`text-white ${oe?"block":"hidden"}`})]}),!k&&he&&X.jsx(qa,{strokeWidth:3,className:"text-white"}),!k&&!he&&X.jsx(Za,{strokeWidth:3,className:"text-errorDark"})]},j)})},W))})}),Hp=()=>{const[u,p]=Y.useState(0),{isPlaying:s,loopLength:g,timeSignature:y,handlePlay:C,handleStop:k,setMetronome:w}=Bl(),_=Y.useMemo(()=>g*y-1,[g,y]),L=Y.useCallback(()=>{s?(k(),p(_)):C()},[C,k,s,_]);return Y.useEffect(()=>{w==null||w()},[w]),X.jsx(Ep,{className:"mt-10 flex",children:X.jsxs(xp,{className:"inline-flex gap-2 items-stretch h-20",children:[X.jsx(Vp,{}),X.jsx(mc,{icon:s?X.jsx($d,{className:"w-10 h-10"}):X.jsx(Ud,{className:"w-10 h-10"}),className:` ${s?"bg-warningDark":" bg-successDark"}`,onClick:L}),X.jsx(Bp,{transportLength:_,currentPosition:u,setCurrentPosition:p})]})})},Qp=u=>{u.loop=at.loop.default,u.loopEnd=`${at.loopLength.default}m`,u.bpm.value=at.bpm.default,u.timeSignature=at.timeSignature.default},Gp=({children:u})=>{const{tone:p,setTone:s,setTransport:g}=Bl(),y=Y.useMemo(()=>p&&X.jsx(Y.Suspense,{children:u}),[u,p]),C=Y.useCallback(async()=>{if(!s||!g)return;const k=await Ed(()=>import("./chunk-ByD2j-fW.js"),[]),w=k.getTransport();Qp(w),s(k),g(w)},[s,g]);return y||X.jsx("div",{className:"flex justify-center",children:X.jsxs("div",{className:"mt-16 p-3",children:[X.jsx("div",{className:"text-5xl text-center mb-6",children:"🚂🚃"}),X.jsx("div",{className:"text-4xl text-center font-black mb-6",children:"STATETRAIN"}),X.jsx(mc,{className:"bg-successDark text-white w-full justify-center",onClick:C,children:"Initialize Tone.js / AudioContext"}),X.jsx("div",{className:"text-sm mt-4 text-gray",children:"Unlock and maintain tone.js context for all following pages / components"})]})})},Xp=({children:u})=>X.jsx(Pp,{children:X.jsxs(Gp,{children:[X.jsx(Hp,{}),u]})}),Zp=({href:u,children:p,label:s,className:g="",button:y})=>{const C=Md(),{urlPathname:k}=C,w=u.replace(/^\/|\/$/g,""),_=k.replace(/^\/|\/$/g,""),L=w.startsWith("#"),T=Y.useMemo(()=>!!(w.startsWith("http")||w.startsWith("mailto")),[w]),z=Y.useMemo(()=>w===""?_===w:_.startsWith(w),[w,_]),M=Y.useMemo(()=>{const W="transition-colors text-primary duration-200 ease-in-out inline-block hover:underline underline";return y?`${z?"bg-primary pointer-events-none":"bg-warningLight bg-opacity-50 hover:bg-opacity-75"} p-3 ${g} ${W} `:`${z?"text-warningLight ":""} ${g} ${W}`},[y,g,z]),B=Y.useMemo(()=>`${T?"":"/statetrain/"}${u}`,[u,T]);return X.jsx("a",{href:L?u:B,className:M,target:T?"_blank":"_self",rel:T?"noreferrer":"","aria-label":s||"",children:p})};export{Xp as A,mc as B,Vl as F,Ep as L,Ud as P,$d as S,Zp as a,X as j,Yp as o,Y as r,Bl as u}; diff --git a/assets/chunks/chunk-DZeubO4x.js b/assets/chunks/chunk-DZeubO4x.js new file mode 100644 index 0000000..2ab0076 --- /dev/null +++ b/assets/chunks/chunk-DZeubO4x.js @@ -0,0 +1 @@ +const f="modulepreload",h=function(i){return"/statetrain/"+i},c={},E=function(a,s,v){let l=Promise.resolve();if(s&&s.length>0){document.getElementsByTagName("link");const e=document.querySelector("meta[property=csp-nonce]"),n=(e==null?void 0:e.nonce)||(e==null?void 0:e.getAttribute("nonce"));l=Promise.all(s.map(t=>{if(t=h(t),t in c)return;c[t]=!0;const o=t.endsWith(".css"),u=o?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${t}"]${u}`))return;const r=document.createElement("link");if(r.rel=o?"stylesheet":f,o||(r.as="script",r.crossOrigin=""),r.href=t,n&&r.setAttribute("nonce",n),document.head.appendChild(r),o)return new Promise((d,m)=>{r.addEventListener("load",d),r.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${t}`)))})}))}return l.then(()=>a()).catch(e=>{const n=new Event("vite:preloadError",{cancelable:!0});if(n.payload=e,window.dispatchEvent(n),!n.defaultPrevented)throw e})};export{E as _}; diff --git a/assets/chunks/chunk-DzAPp0u_.js b/assets/chunks/chunk-DzAPp0u_.js new file mode 100644 index 0000000..054f803 --- /dev/null +++ b/assets/chunks/chunk-DzAPp0u_.js @@ -0,0 +1,4 @@ +import{F as i,u as r,r as c,j as a,B as u,S as h,P as x}from"./chunk-CwsG006u.js";const k=i.h4` + text-2xl + text-light +`,m=({className:l,...n})=>{const{isPlaying:s,handlePlay:t,handleStop:e}=r(),o=c.useCallback(()=>{s?e():t()},[t,e,s]);return a.jsx(u,{className:`${s?"bg-warningDark":"bg-successDark animate-pulse"} ${l}`,onClick:o,icon:s?a.jsx(h,{className:"w-3 h-3",strokeWidth:4}):a.jsx(x,{className:"w-3 h-3",strokeWidth:4}),...n,children:s?"Stop":"Play"})};export{k as H,m as I}; diff --git a/assets/entries/entry-client-routing.Dx8Er3j6.js b/assets/entries/entry-client-routing.Dx8Er3j6.js new file mode 100644 index 0000000..fd95c19 --- /dev/null +++ b/assets/entries/entry-client-routing.Dx8Er3j6.js @@ -0,0 +1,4 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/entries/pages_error.OPXz8eTI.js","assets/chunks/chunk-CwsG006u.js","assets/chunks/chunk-DZeubO4x.js","assets/static/Link.CTy-J1Wx.css","assets/entries/pages_index.bLHpNDwf.js","assets/chunks/chunk-DzAPp0u_.js","assets/entries/pages_second-page.BRRyZT6a.js"])))=>i.map(i=>d[i]); +import{_ as me}from"../chunks/chunk-DZeubO4x.js";function Ie(e){return Array.from(new Set(e))}const bn="0.4.179",Ae={projectName:"Vike",projectVersion:bn},Ke=`_${Ae.projectName.toLowerCase()}`;function k(e,t){const n=wn();return n[e]=n[e]||t}function wn(){return globalThis[Ke]=globalThis[Ke]||{}}const p=new Proxy({},{get:(e,t)=>n=>t!=="code"?n:`\`${n}\``}),A=k("assertPackageInstances.ts",{instances:[],alreadyLogged:new Set}),Sn="The client runtime of Server Routing as well as the client runtime of Client Routing are both being loaded. Make sure they aren't loaded both at the same time for a given page. See https://vike.dev/client-runtimes-conflict",St="Two vike client runtime instances are being loaded. Make sure your client-side bundles don't include vike twice. (In order to reduce the size of your client-side JavaScript bundles.)";function vt(){{const e=Ie(A.instances);Rn(e.length<=1,`vike@${p.bold(e[0])} and vike@${p.bold(e[1])} loaded but only one version should be loaded`)}A.checkSingleInstance&&A.instances.length>1&&Re(!1,St,{onlyOnce:!0,showStackTrace:!0})}function vn(e){Re(A.isClientRouting!==!1,Sn,{onlyOnce:!0,showStackTrace:!0}),Re(A.isClientRouting===void 0,St,{onlyOnce:!0,showStackTrace:!0}),A.isClientRouting=!0,A.checkSingleInstance=!0,vt()}function Pn(){A.instances.push(Ae.projectVersion),vt()}function Rn(e,t){if(e)return;const n=`[vike][Wrong Usage] ${t}`;throw new Error(n)}function Re(e,t,{onlyOnce:n,showStackTrace:r}){if(e)return;const i=`[vike][Warning] ${t}`;if(n){const{alreadyLogged:o}=A,a=n===!0?i:n;if(o.has(a))return;o.add(a)}console.warn(r?new Error(i):i)}function En(){return!(typeof process>"u"||!process.cwd||!process.versions||typeof process.versions.node>"u"||!process.release||process.release.name!=="node")}function fe(e,t){const n=new Error(e);return En()&&(n.stack=Cn(n.stack,t)),n}function Cn(e,t){if(!e)return e;const n=$n(e);let r=0;return n.filter(o=>o.includes(" (internal/")||o.includes(" (node:internal")?!1:r{if(!t)return null;const l=typeof t=="string"?t:JSON.stringify(t);return p.dim(`Debug info (for Vike maintainers; you can ignore this): ${l}`)})();let i=[`You stumbled upon a Vike bug. Go to ${p.blue("https://github.com/vikejs/vike/issues/new")} and copy-paste this error. A maintainer will fix the bug (usually under 24 hours).`,n].filter(Boolean).join(" ");i=Q(i),i=ge(i,"Bug"),i=Z(i,!0);const o=fe(i,de);throw(a=x.onBeforeLog)==null||a.call(x),o}function d(e,t,{showStackTrace:n}={}){var i;if(e)return;n=n||x.alwaysShowStackTrace,t=Q(t),t=ge(t,"Wrong Usage"),t=Z(t);const r=fe(t,de);throw n&&x.showStackTraceList.add(r),(i=x.onBeforeLog)==null||i.call(x),r}function Pt(e){return e=Q(e),e=ge(e,"Error"),e=Z(e),fe(e,de)}function O(e,t,{onlyOnce:n,showStackTrace:r}){var i;if(!e){if(r=r||x.alwaysShowStackTrace,t=Q(t),t=ge(t,"Warning"),t=Z(t),n){const{alreadyLogged:o}=x,a=n===!0?t:n;if(o.has(a))return;o.add(a)}if((i=x.onBeforeLog)==null||i.call(x),r){const o=fe(t,de);x.showStackTraceList.add(o),x.logger(o,"warn")}else x.logger(t,"warn")}}function xn(e,t,{onlyOnce:n}){var r;if(t=Q(t),t=Z(t),n){const{alreadyLogged:i}=x,o=t;if(i.has(o))return;i.add(o)}(r=x.onBeforeLog)==null||r.call(x),x.logger(t,"info")}function ge(e,t){let n=`[${t}]`;const r=t==="Warning"?"yellow":"red";return n=p.bold(p[r](n)),`${n}${e}`}function Q(e){return e.startsWith("[")?e:` ${e}`}function Z(e,t=!1){return`${t?Tn:On}${e}`}function B(){return typeof window<"u"&&typeof window.scrollY=="number"}const Rt=k("utils/assertRouterType.ts",{});function ee(){Fn(kn()),Rt.isClientRouting=!0}function kn(){return Rt.isClientRouting!==!1}function Fn(e){d(B(),`${p.cyan("import { something } from 'vike/client/router'")} is forbidden on the server-side`,{showStackTrace:!0}),O(e,"You shouldn't `import { something } from 'vike/client/router'` when using Server Routing. The 'vike/client/router' utilities work only with Client Routing. In particular, don't `import { navigate }` nor `import { prefetch }` as they unnecessarily bloat your client-side bundle sizes.",{showStackTrace:!0,onlyOnce:!0})}function j(e,t,n){return typeof e=="string"?qe(e.split(""),t,n).join(""):qe(e,t,n)}function qe(e,t,n){const r=[];let i=t>=0?t:e.length+t;s(i>=0&&i<=e.length);let o=n>=0?n:e.length+n;for(s(o>=0&&o<=e.length);!(i===o||(i===e.length&&(i=0),i===o));){const a=e[i];s(a!==void 0),r.push(a),i++}return r}function je(e){return Et(e)||e.startsWith("/")||e.startsWith(".")||e.startsWith("?")||e.startsWith("#")||e===""}function In(e,t){s(t.includes(" but ")),d(typeof e=="string",`${t} should be a string`),!je(e)&&(!e.startsWith("/")&&!e.includes(":")?d(!1,`${t} is ${p.cyan(e)} and it should be /${p.cyan(e)} instead (URL pathnames should start with a leading slash)`):d(!1,`${t} isn't a valid URL`))}function te(e,t){s(je(e)),s(t.startsWith("/"));const[n,...r]=e.split("#");s(n!==void 0);const i=["",...r].join("#")||null;s(i===null||i.startsWith("#"));const o=i===null?"":Ee(i.slice(1)),[a,...l]=n.split("?");s(a!==void 0);const u=["",...l].join("?")||null;s(u===null||u.startsWith("?"));const c={},f={};Array.from(new URLSearchParams(u||"")).forEach(([m,v])=>{c[m]=v,f[m]=[...f.hasOwnProperty(m)?f[m]:[],v]});const{origin:g,pathname:y}=jn(a,t);s(g===null||g===Ee(g)),s(y.startsWith("/")),s(g===null||e.startsWith(g));const h=a.slice((g||"").length);Nn(e,g,h,u,i);let{pathname:R,hasBaseServer:$}=Hn(y,t);return R=An(R),s(R.startsWith("/")),{origin:g,pathname:R,pathnameOriginal:h,hasBaseServer:$,search:c,searchAll:f,searchOriginal:u,hash:o,hashOriginal:i}}function Ee(e){try{return decodeURIComponent(e)}catch{}try{return decodeURI(e)}catch{}return e}function An(e){return e=e.replace(/\s+$/,""),e=e.split("/").map(t=>Ee(t).split("/").join("%2F")).join("/"),e}function jn(e,t){var n;s(!e.includes("?")&&!e.includes("#"));{const{origin:r,pathname:i}=Xe(e);if(r)return{origin:r,pathname:i};s(i===e)}if(e.startsWith("/"))return{origin:null,pathname:e};{const r=typeof window<"u"?(n=window==null?void 0:window.document)==null?void 0:n.baseURI:void 0;let i;return r?i=Xe(r.split("?")[0]).pathname:i=t,{origin:null,pathname:Ln(e,i)}}}function Xe(e){if(Et(e)){const[t,n,r,...i]=e.split("/"),o=[t,n,r].join("/"),a=["",...i].join("/")||"/";return{origin:o,pathname:a}}else return s(!Bn(e)),{pathname:e,origin:null}}function Ln(e,t){const n=t.split("/"),r=e.split("/");let i=t.endsWith("/");e.startsWith(".")&&n.pop();for(const a in r){const l=r[a];l==""&&a==="0"||l!="."&&(l==".."?n.pop():(i=!1,n.push(l)))}let o=n.join("/");return i&&!o.endsWith("/")&&(o+="/"),o.startsWith("/")||(o="/"+o),o}function Wn(e){s(e.startsWith("/")),s(!e.includes("?")),s(!e.includes("#"))}function Hn(e,t){Wn(e),s(Le(t));let n=e;if(s(n.startsWith("/")),s(t.startsWith("/")),t==="/")return{pathname:e,hasBaseServer:!0};let r=t;return t.endsWith("/")&&n===j(t,0,-1)&&(r=j(t,0,-1),s(n===r)),n.startsWith(r)?(s(n.startsWith("/")||n.startsWith("http")),s(n.startsWith(r)),n=n.slice(r.length),n.startsWith("/")||(n="/"+n),s(n.startsWith("/")),{pathname:n,hasBaseServer:!0}):{pathname:e,hasBaseServer:!1}}function Le(e){return e.startsWith("/")}function Nn(e,t,n,r,i){const o=Dn(t,n,r,i);s(e===o)}function Dn(e,t,n,r){return`${e||""}${t}${n||""}${r||""}`}function Bn(e){return/^[a-z][a-z0-9\+\-]*:/i.test(e)}function Et(e){return/^[a-z][a-z0-9\+\-]*:\/\//i.test(e)}function w(e,t){t&&Object.defineProperties(e,Object.getOwnPropertyDescriptors(t))}function V(e){return e instanceof Function||typeof e=="function"}function le(e){return(t,n)=>{const r=e(t),i=e(n);return r===i?0:r>i?-1:1}}function Vn(e){return(t,n)=>{const r=e(t),i=e(n);return r===i?0:r{const r=e(t),i=e(n);if(s([!0,!1,null].includes(r)),s([!0,!1,null].includes(i)),r===i)return 0;if(r===!0||i===!1)return-1;if(i===!0||r===!1)return 1;s(!1)}}function zn(e){return W(t=>{const n=e(t);return n===null?null:!n})}function G(e){return Array.isArray(e)}function Un(e){return G(e)&&e.every(t=>typeof t=="string")}function Gn(e){return T(e)&&Object.values(e).every(t=>typeof t=="string")}function S(e,t,n){if(!T(e))return!1;if(!(t in e))return n==="undefined";if(n===void 0)return!0;const r=e[t];return n==="undefined"?r===void 0:n==="array"?G(r):n==="object"?T(r):n==="string[]"?Un(r):n==="string{}"?Gn(r):n==="function"?V(r):G(n)?typeof r=="string"&&n.includes(r):n==="null"?r===null:n==="true"?r===!0:n==="false"?r===!1:typeof r===n}function D(e){return typeof e!="object"||e===null?!1:Object.getPrototypeOf(e)===null?!0:e.constructor.name==="Object"}function Mn(e,t){return e.toLowerCase()t.toLowerCase()?1:0}const Jn=e=>e!=null;function Qe(e){return"["+e.map(t=>"'"+t+"'").join(", ")+"]"}function Ct(e){const t=n=>`Not a posix path: ${n}`;s(e!==null,t("null")),s(typeof e=="string",t(`typeof path === ${JSON.stringify(typeof e)}`)),s(e!=="",t("(empty string)")),s(e),s(!e.includes("\\"),t(e))}function be(e,t){const n=Object.getOwnPropertyDescriptor(e,t);return!!n&&!("value"in n)&&!!n.get}function Yn(e){return typeof e=="object"&&e!==null&&"then"in e&&V(e.then)}function Kn(e){return[null,void 0].includes(e)?String(e):["boolean","number","string"].includes(typeof e)?JSON.stringify(e):null}function qn(e){return e.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")}function re(e,t,n){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(e,t,{...r,enumerable:n})}function we(e,t,{get:n,...r}){Object.defineProperty(e,t,{...r,get:n})}const Xn=["clientRouting"];function Qn(e){Xn.forEach(t=>{if(s(e.fileExports),!(t in e.fileExports))return;const n=`The value of \`${t}\` is only allowed to be \`true\`.`;d(e.fileExports[t]!==!1,`${e.filePath} has \`export { ${t} }\` with the value \`false\` which is prohibited: remove \`export { ${t} }\` instead. (${n})`),d(e.fileExports[t]===!0,`${e.filePath} has \`export { ${t} }\` with a forbidden value. ${n}`)})}const _t=["render","clientRouting","prerender","doNotPrerender"];function Zn(e,t){d(!_t.includes(e),`${t} has \`export default { ${e} }\` which is prohibited, use \`export { ${e} }\` instead.`)}function er(e){const t=".page.",n=j(e.split(t),0,-1).join(t);return s(!n.includes("\\")),n}function M(e){Ct(e)}function tr(e,t){if(t.length>0){const r=t.filter(i=>i.isErrorPage);return r.length===0?null:(d(r.length===1,"Only one error page can be defined"),r[0].pageId)}const n=Ie(e.map(({pageId:r})=>r).filter(r=>ne(r)));if(d(n.length<=1,`Only one _error.page.js is allowed, but found several: ${n.join(" ")}`),n.length>0){const r=n[0];return s(r),r}return null}function ne(e,t){return s(!e.includes("\\")),e.includes("/_error")}function nr(e,t){if(t.length>0){const n=t.find(r=>r.pageId===e);return s(n),!!n.isErrorPage}else return ne(e)}const $t=["js","ts","cjs","cts","mjs","mts"],rr=["jsx","tsx","cjsx","ctsx","mjsx","mtsx"],Ot=["vue","svelte","marko","md","mdx"],ir=[...$t,...rr,...Ot];function Tt(e){const t=ir.some(n=>e.endsWith("."+n));return or(e)&&s(t),t}function or(e){const t=/\.(c|m)?(j|t)s$/.test(e),n=$t.some(r=>e.endsWith("."+r));return s(t===n),t}function sr(e){return Ot.some(t=>e.endsWith("."+t))}const ar=[".page",".page.server",".page.route",".page.client",".css"];function lr(e){if(Ct(e),e.endsWith(".css"))return".css";s(Tt(e),e);const n=e.split("/").slice(-1)[0].split("."),r=n.slice(-3)[0],i=n.slice(-2)[0];if(i==="page")return".page";if(s(r==="page",e),i==="server")return".page.server";if(i==="client")return".page.client";if(i==="route")return".page.route";s(!1,e)}function xt(e){const t=o=>i.pageId===o||i.isDefaultPageFile&&(Ze(i.filePath)||ur(o,i.filePath)),n=lr(e),i={filePath:e,fileType:n,isEnv:o=>{if(s(n!==".page.route"),o==="CLIENT_ONLY")return n===".page.client"||n===".css";if(o==="SERVER_ONLY")return n===".page.server";if(o==="CLIENT_AND_SERVER")return n===".page";s(!1)},isRelevant:t,isDefaultPageFile:Ce(e),isRendererPageFile:n!==".css"&&Ce(e)&&Ze(e),isErrorPageFile:ne(e),pageId:er(e)};return i}function Ce(e){return M(e),ne(e)?!1:e.includes("/_default")}function Ze(e){return M(e),e.includes("/renderer/")}function ur(e,t){M(e),M(t),s(!e.endsWith("/")),s(!t.endsWith("/")),s(Ce(t));const n=j(t.split("/"),0,-1).filter(r=>r!=="_default").join("/");return e.startsWith(n)}function cr(e,t){if(!e)return null;let[n,...r]=e;if(!n||r.length===0&&["*","default",t].includes(n))return null;s(n!=="*");let i="",o="";return n==="default"?i="export default":(i="export",r=[n,...r]),r.forEach(l=>{i=`${i} { ${l}`,o=` }${o}`}),i+o}function fr(e,t,n){return`${_e(e,t)} at ${q(n,t)}`}function kt(e,t,n){return n?`${_e(e,t)} at ${q(n,t)}`:`${_e(e,t)} internally`}function _e(e,t){return`${e} ${p.cyan(t)} defined`}function q(e,t){let n;return G(e)?n=e:n=[e],s(n.length>=1),n.map(i=>{const{filePathToShowToUser:o,fileExportPathToShowToUser:a}=i;let l=o;const u=cr(a,t);return u&&(l=`${l} > ${p.cyan(u)}`),l}).join(" / ")}const dr=[{is:e=>e===void 0,match:e=>e==="!undefined",serialize:()=>"!undefined",deserialize:()=>{}},{is:e=>e===1/0,match:e=>e==="!Infinity",serialize:()=>"!Infinity",deserialize:()=>1/0},{is:e=>e===-1/0,match:e=>e==="!-Infinity",serialize:()=>"!-Infinity",deserialize:()=>-1/0},{is:e=>typeof e=="number"&&isNaN(e),match:e=>e==="!NaN",serialize:()=>"!NaN",deserialize:()=>NaN},{is:e=>e instanceof Date,match:e=>e.startsWith("!Date:"),serialize:e=>"!Date:"+e.toISOString(),deserialize:e=>new Date(e.slice(6))},{is:e=>typeof e=="bigint",match:e=>e.startsWith("!BigInt:"),serialize:e=>"!BigInt:"+e.toString(),deserialize:e=>{if(typeof BigInt>"u")throw new Error("Your JavaScript environement does not support BigInt. Consider adding a polyfill.");return BigInt(e.slice(8))}},{is:e=>e instanceof RegExp,match:e=>e.startsWith("!RegExp:"),serialize:e=>"!RegExp:"+e.toString(),deserialize:e=>{e=e.slice(8);const t=e.match(/\/(.*)\/(.*)?/),n=t[1],r=t[2];return new RegExp(n,r)}},{is:e=>e instanceof Map,match:e=>e.startsWith("!Map:"),serialize:(e,t)=>"!Map:"+t(Array.from(e.entries())),deserialize:(e,t)=>new Map(t(e.slice(5)))},{is:e=>e instanceof Set,match:e=>e.startsWith("!Set:"),serialize:(e,t)=>"!Set:"+t(Array.from(e.values())),deserialize:(e,t)=>new Set(t(e.slice(5)))},{is:e=>typeof e=="string"&&e.startsWith("!"),match:e=>e.startsWith("!"),serialize:e=>"!"+e,deserialize:e=>e.slice(1)}];function We(e){const t=JSON.parse(e);return He(t)}function He(e){return typeof e=="string"?gr(e):(typeof e=="object"&&e!==null&&Object.entries(e).forEach(([t,n])=>{e[t]=He(n)}),e)}function gr(e){for(const{match:t,deserialize:n}of dr)if(t(e))return n(e,We);return e}const hr=["$$registrations","_rerender_only"],pr=[".md",".mdx"];function yr(e,t,n){const r=Object.keys(e).filter(c=>!hr.includes(c)),i=c=>c==="default"||c===n,o=r.filter(i),a=r.filter(c=>!i(c));if(o.length===1&&a.length===0)return;const l=p.code("export default"),u=p.code(`export { ${n} }`);o.length===0&&d(!1,`${t} should have a ${u} or ${l}`),o.length===2&&O(!1,`${t} is ambiguous: remove ${l} or ${u}`,{onlyOnce:!0}),s(o.length===1),s(a.length>0),pr.some(c=>t.endsWith(c))||a.forEach(c=>{O(!1,`${t} unexpected ${p.cyan(`export { ${c} }`)}`,{onlyOnce:!0})})}function $e(e){return wr(e)}function mr(e,t){const n=e.map(i=>{const o=$e(i.configValuesSerialized),{pageId:a,isErrorPage:l,routeFilesystem:u,loadConfigValuesAll:c}=i;return br(o),{pageId:a,isErrorPage:l,routeFilesystem:u,configValues:o,loadConfigValuesAll:c}}),r={configValues:{}};{const i=$e(t.configValuesSerialized);Object.assign(r.configValues,i)}return{pageConfigs:n,pageConfigGlobal:r}}function br(e){const t="route",n=e[t];if(!n)return;const{value:r,definedAtData:i}=n,o=typeof r;s(i);const a=fr("Config",t,i);d(o==="string"||V(r),`${a} has an invalid type '${o}': it should be a string or a function instead, see https://vike.dev/route`)}function wr(e){const t={};return Object.entries(e).forEach(([r,i])=>{let o;if(i.type==="cumulative"){const{valueSerialized:a,...l}=i;o={value:a.map((c,f)=>{const{value:g,sideExports:y}=et(c,r,()=>{const h=i.definedAtData[f];return s(h),h});return n(y),g}),...l}}else{const{valueSerialized:a,...l}=i,{value:u,sideExports:c}=et(a,r,()=>(s(i.type!=="computed"),i.definedAtData));n(c),o={value:u,...l}}t[r]=o}),t;function n(r){r.forEach(i=>{const{configName:o,configValue:a}=i;t[o]||(t[o]=a)})}}function et(e,t,n){if(e.type==="js-serialized"){let{value:r}=e;return r=He(r),{value:r,sideExports:[]}}if(e.type==="pointer-import"){const{value:r}=e;return{value:r,sideExports:[]}}if(e.type==="plus-file"){const r=n(),{exportValues:i}=e;yr(i,r.filePathToShowToUser,t);let o,a=!1;const l=[];return Object.entries(i).forEach(([u,c])=>{u!=="default"&&u!==t?l.push({configName:u,configValue:{type:"standard",value:c,definedAtData:{filePathToShowToUser:r.filePathToShowToUser,fileExportPathToShowToUser:[u]}}}):(o=c,s(!a),a=!0)}),s(a),{value:o,sideExports:l}}s(!1)}function Sr(e){s(S(e,"pageFilesLazy","object")),s(S(e,"pageFilesEager","object")),s(S(e,"pageFilesExportNamesLazy","object")),s(S(e,"pageFilesExportNamesEager","object")),s(S(e.pageFilesLazy,".page")),s(S(e.pageFilesLazy,".page.client")||S(e.pageFilesLazy,".page.server")),s(S(e,"pageFilesList","string[]")),s(S(e,"pageConfigsSerialized")),s(S(e,"pageConfigGlobalSerialized"));const{pageConfigsSerialized:t,pageConfigGlobalSerialized:n}=e;vr(t),Pr(n);const{pageConfigs:r,pageConfigGlobal:i}=mr(t,n),o={};ie(e.pageFilesLazy).forEach(({filePath:l,pageFile:u,globValue:c})=>{u=o[l]=o[l]??u;const f=c;tt(f),u.loadFile=async()=>{"fileExports"in u||(u.fileExports=await f(),Qn(u))}}),ie(e.pageFilesExportNamesLazy).forEach(({filePath:l,pageFile:u,globValue:c})=>{u=o[l]=o[l]??u;const f=c;tt(f),u.loadExportNames=async()=>{if(!("exportNames"in u)){const g=await f();s(S(g,"exportNames","string[]"),u.filePath),u.exportNames=g.exportNames}}}),ie(e.pageFilesEager).forEach(({filePath:l,pageFile:u,globValue:c})=>{u=o[l]=o[l]??u;const f=c;s(T(f)),u.fileExports=f}),ie(e.pageFilesExportNamesEager).forEach(({filePath:l,pageFile:u,globValue:c})=>{u=o[l]=o[l]??u;const f=c;s(T(f)),s(S(f,"exportNames","string[]"),u.filePath),u.exportNames=f.exportNames}),e.pageFilesList.forEach(l=>{o[l]=o[l]??xt(l)});const a=Object.values(o);return a.forEach(({filePath:l})=>{s(!l.includes("\\"))}),{pageFiles:a,pageConfigs:r,pageConfigGlobal:i}}function ie(e){const t=[];return Object.entries(e).forEach(([n,r])=>{s(ar.includes(n)),s(T(r)),Object.entries(r).forEach(([i,o])=>{const a=xt(i);s(a.fileType===n),t.push({filePath:i,pageFile:a,globValue:o})})}),t}function tt(e){s(V(e))}function vr(e){s(G(e)),e.forEach(t=>{s(T(t)),s(S(t,"pageId","string")),s(S(t,"routeFilesystem")),s(S(t,"configValuesSerialized"))})}function Pr(e){s(S(e,"configValuesSerialized"))}const Y=k("setPageFiles.ts",{});function Rr(e){const{pageFiles:t,pageConfigs:n,pageConfigGlobal:r}=Sr(e);Y.pageFilesAll=t,Y.pageConfigs=n,Y.pageConfigGlobal=r}async function Er(e,t){s(!Y.pageFilesGetter),s(t===void 0);const{pageFilesAll:n,pageConfigs:r,pageConfigGlobal:i}=Y;s(n&&r&&i);const o=Cr(n,r);return{pageFilesAll:n,allPageIds:o,pageConfigs:r,pageConfigGlobal:i}}function Cr(e,t){const n=e.filter(({isDefaultPageFile:o})=>!o).map(({pageId:o})=>o),r=Ie(n),i=t.map(o=>o.pageId);return[...r,...i]}function Ne(e,t){return It(e,t,!0)}function Ft(e,t){return It(e,t,!1)}function It(e,t,n){const r=n?"CLIENT_ONLY":"SERVER_ONLY",i=e.filter(h=>h.isRelevant(t)&&h.fileType!==".page.route").sort(_r(n,t)),o=h=>{const R=i.filter(m=>m.pageId===t&&m.isEnv(h?"CLIENT_AND_SERVER":r));d(R.length<=1,`Merge the following files into a single file: ${R.map(m=>m.filePath).join(" ")}`);const $=R[0];return s($===void 0||!$.isDefaultPageFile),$},a=o(!1),l=o(!0),u=h=>i.filter(R=>R.isRendererPageFile&&R.isEnv(h?"CLIENT_AND_SERVER":r))[0],c=u(!1),f=u(!0),g=i.filter(h=>h.isDefaultPageFile&&!h.isRendererPageFile&&(h.isEnv(r)||h.isEnv("CLIENT_AND_SERVER")));return[a,l,...g,c,f].filter(Jn)}function _r(e,t){const n=e?"CLIENT_ONLY":"SERVER_ONLY",r=-1,i=1,o=0;return(a,l)=>{if(!a.isDefaultPageFile&&l.isDefaultPageFile)return r;if(!l.isDefaultPageFile&&a.isDefaultPageFile)return i;{const u=a.isRendererPageFile,c=l.isRendererPageFile;if(!u&&c)return r;if(!c&&u)return i;s(u===c)}{const u=nt(t,a.filePath),c=nt(t,l.filePath);if(ur.pageId===e);return s(t.length>0),s(n),n}function jt(e){if(!e||G(e))return null;const{filePathToShowToUser:t}=e;return s(t),t}function $r(e){const t=jt(e);return s(t),t}function Or(e,t){const n={},r={},i={};e.forEach(y=>{Tr(y).forEach(({exportName:R,exportValue:$,isFromDefaultExport:m})=>{s(R!=="default"),i[R]=i[R]??[],i[R].push({exportValue:$,exportSource:`${y.filePath} > ${m?`\`export default { ${R} }\``:`\`export { ${R} }\``}`,filePath:y.filePath,_filePath:y.filePath,_fileType:y.fileType,_isFromDefaultExport:m})})});const o={},a={},l=(y,h)=>{o[h]=y,a[h]??(a[h]=[]),a[h].push(y)},u={configsStandard:{},configsCumulative:{},configsComputed:{}};t&&Object.entries(t.configValues).forEach(([y,h])=>{const{value:R}=h,$=jt(h.definedAtData),m=kt("Config",y,h.definedAtData);if(r[y]=r[y]??R,n[y]=n[y]??[],s(n[y].length===0),n[y].push({configValue:R,configDefinedAt:m,configDefinedByFile:$}),h.type==="standard"){const P={type:"configsStandard",value:h.value,definedAt:q(h.definedAtData,y)};l(P,y),u.configsStandard[y]=P}if(h.type==="cumulative"){const P={type:"configsCumulative",values:h.value.map((F,b)=>{const C=h.definedAtData[b];s(C);const E=q(C,y);return{value:F,definedAt:E}})};l(P,y),u.configsCumulative[y]=P}if(h.type==="computed"){const P={type:"configsComputed",value:h.value};l(P,y),u.configsComputed[y]=P}const v=y;i[v]=i[v]??[],i[v].push({exportValue:R,exportSource:m,filePath:$,_filePath:$,_fileType:null,_isFromDefaultExport:null})});const c=xr(),f={};return Object.entries(i).forEach(([y,h])=>{h.forEach(({exportValue:R,_fileType:$,_isFromDefaultExport:m})=>{f[y]=f[y]??R,$===".page"&&!m&&(y in c||(c[y]=R))})}),s(!("default"in f)),s(!("default"in i)),{from:u,source:o,sources:a,config:r,configEntries:n,exports:f,exportsAll:i,pageExports:c}}function Tr(e){const{filePath:t,fileExports:n}=e;s(n),s(Tt(t));const r=[];return Object.entries(n).sort(zn(([i])=>i==="default")).forEach(([i,o])=>{let a=i==="default";if(a)if(sr(t))i="Page";else{d(T(o),`The ${p.cyan("export default")} of ${t} should be an object.`),Object.entries(o).forEach(([l,u])=>{Zn(l,t),r.push({exportName:l,exportValue:u,isFromDefaultExport:a})});return}r.push({exportName:i,exportValue:o,isFromDefaultExport:a})}),r.forEach(({exportName:i,isFromDefaultExport:o})=>{s(!(o&&_t.includes(i)))}),r}function xr(){return new Proxy({},{get(...e){return B()||O(!1,"`pageContext.pageExports` is outdated. Use `pageContext.exports` instead, see https://vike.dev/exports",{onlyOnce:!0,showStackTrace:!0}),Reflect.get(...e)}})}const De={},Lt={},kr={},he={},Fr=[],Wt={},Ir=[{pageId:"/pages/_error",isErrorPage:!0,routeFilesystem:void 0,loadConfigValuesAll:()=>me(()=>import("./pages_error.OPXz8eTI.js"),__vite__mapDeps([0,1,2,3])),configValuesSerialized:{clientEntryLoaded:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:!0}},clientRouting:{type:"standard",definedAtData:{filePathToShowToUser:"/pages/+config.ts",fileExportPathToShowToUser:["default","clientRouting"]},valueSerialized:{type:"js-serialized",value:!0}}}},{pageId:"/pages/index",isErrorPage:void 0,routeFilesystem:{routeString:"/",definedBy:"/pages/index/"},loadConfigValuesAll:()=>me(()=>import("./pages_index.bLHpNDwf.js"),__vite__mapDeps([4,1,2,3,5])),configValuesSerialized:{clientEntryLoaded:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:!0}},clientRouting:{type:"standard",definedAtData:{filePathToShowToUser:"/pages/+config.ts",fileExportPathToShowToUser:["default","clientRouting"]},valueSerialized:{type:"js-serialized",value:!0}}}},{pageId:"/pages/second-page",isErrorPage:void 0,routeFilesystem:{routeString:"/second-page",definedBy:"/pages/second-page/"},loadConfigValuesAll:()=>me(()=>import("./pages_second-page.BRRyZT6a.js"),__vite__mapDeps([6,1,2,3,5])),configValuesSerialized:{clientEntryLoaded:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:!0}},clientRouting:{type:"standard",definedAtData:{filePathToShowToUser:"/pages/+config.ts",fileExportPathToShowToUser:["default","clientRouting"]},valueSerialized:{type:"js-serialized",value:!0}}}}],Ar={configValuesSerialized:{}},jr=Object.assign({}),Lr={...jr};De[".page"]=Lr;const Wr=Object.assign({}),Hr={...Wr};he[".page"]=Hr;const Nr=Object.assign({}),Dr={...Nr};he[".page.server"]=Dr;const Br=Object.assign({}),Vr={...Br};Lt[".page.route"]=Vr;const zr=Object.assign({}),Ur={...zr};De[".page.client"]=Ur;const Gr=Object.assign({}),Mr={...Gr};he[".page.client"]=Mr;const Jr=Object.assign({}),Yr={...Jr};Wt[".page.server"]=Yr;const Kr=Object.freeze(Object.defineProperty({__proto__:null,neverLoaded:Wt,pageConfigGlobalSerialized:Ar,pageConfigsSerialized:Ir,pageFilesEager:Lt,pageFilesExportNamesEager:he,pageFilesExportNamesLazy:kr,pageFilesLazy:De,pageFilesList:Fr},Symbol.toStringTag,{value:"Module"}));Rr(Kr);function Ht(){s(B())}function qr(){Ht(),ee()}function Xr(){Ht()}function rt(e){const t=e/1e3;if(t<120){const n=it(t);return`${n} second${ot(n)}`}{const n=t/60,r=it(n);return`${r} minute${ot(r)}`}}function it(e){let t=e.toFixed(1);return t.endsWith(".0")&&(t=t.slice(0,-2)),t}function ot(e){return e==="1"?"":"s"}const Oe=k("utils/executeHook.ts",{userHookErrors:new WeakMap,pageContext:null});function N(e,t,n){const{hookName:r,hookFilePath:i,hookTimeout:{error:o,warning:a}}=t;let l,u;const c=new Promise((h,R)=>{l=$=>{f(),h($)},u=$=>{f(),R($)}}),f=()=>{g&&clearTimeout(g),y&&clearTimeout(y)},g=st(a)&&setTimeout(()=>{O(!1,`The ${r}() hook defined by ${i} is slow: it's taking more than ${rt(a)} (https://vike.dev/hooksTimeout)`,{onlyOnce:!1})},a),y=st(o)&&setTimeout(()=>{const h=Pt(`The ${r}() hook defined by ${i} timed out: it didn't finish after ${rt(o)} (https://vike.dev/hooksTimeout)`);u(h)},o);return(async()=>{try{Qr(n);const h=await e();l(h)}catch(h){T(h)&&Oe.userHookErrors.set(h,{hookName:r,hookFilePath:i}),u(h)}})(),c}function st(e){return!!e&&e!==1/0}function Qr(e){Oe.pageContext=e,Promise.resolve().then(()=>{Oe.pageContext=null})}function Be(e){const t=window.location.href,{searchOriginal:n,hashOriginal:r,pathname:i}=te(t,"/");let o;return e!=null&&e.withoutHash?o=`${i}${n||""}`:o=`${i}${n||""}${r||""}`,s(o.startsWith("/")),o}function Zr(e){return typeof e=="string"&&/^[a-z0-9\$_]+$/i.test(e)?`.${e}`:`[${JSON.stringify(e)}]`}Xr();function ei(){var r,i,o,a;const e=!!((i=(r=window.__REACT_DEVTOOLS_GLOBAL_HOOK__)==null?void 0:r.renderers)!=null&&i.size),t=!!((a=(o=window.__REACT_DEVTOOLS_GLOBAL_HOOK__)==null?void 0:o.rendererInterfaces)!=null&&a.size),n=!!window.__vite_plugin_react_preamble_installed__;return e||t||n}function at(e,t){return!T(e)||!T(t)?!1:e.message===t.message}function ue(e){window.location.href=e}function ti(e){return new Promise(t=>setTimeout(t,e))}function ni(e,t){let n=!1;return()=>{n||(n=!0,setTimeout(()=>{n=!1,e()},t))}}function Nt(e){window.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&e()})}function ri(e){window.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()})}function ii(e){return!e.startsWith("/")&&!e.startsWith(".")&&!e.startsWith("?")&&e!==""}qr();function Dt(){let e=window.history.state;e||(e={_isVikeEnhanced:!0});let t=!1;"timestamp"in e||(t=!0,e.timestamp=Ue()),"scrollPosition"in e||(t=!0,e.scrollPosition=ze()),"triggeredBy"in e||(e.triggeredBy="browser"),Bt(e),t&&Ge(e)}function Ve(){const e=window.history.state||{};return Bt(e),e}function ze(){return{x:window.scrollX,y:window.scrollY}}function Ue(){return new Date().getTime()}function lt(){const e=ze(),t=Ve();Ge({...t,scrollPosition:e})}function oi(e,t){if(t)Ge(Ve(),e);else{const n=Ue();si({timestamp:n,scrollPosition:null,triggeredBy:"vike",_isVikeEnhanced:!0},e)}}function Bt(e){if(s(T(e)),"timestamp"in e){const{timestamp:t}=e;s(typeof t=="number")}if("scrollPosition"in e){const{scrollPosition:t}=e;t!==null&&s(S(t,"x","number")&&S(t,"y","number"))}}function Ge(e,t){const n=t??null;window.history.replaceState(e,"",n)}function si(e,t){window.history.pushState(e,"",t)}function ai(){const e=window.history.pushState.bind(window.history);window.history.pushState=(t={},...n)=>{d(t==null||T(t),"history.pushState(state) argument state must be an object");const r=li(t)?t:{_isVikeEnhanced:!0,scrollPosition:ze(),timestamp:Ue(),triggeredBy:"user",...t};return e(r,...n)}}function li(e){return T(e)&&"_isVikeEnhanced"in e}function ui(){const e="vike_pageContext",t=document.getElementById(e);d(t,`Couldn't find #${e} (which Vike automatically injects in the HTML): make sure it exists (i.e. don't remove it and make sure your HTML isn't malformed)`);const n=t.textContent;s(n);const r=We(n);return s(S(r,"_pageId","string")),s(S(r,"routeParams","string{}")),r}async function ci(e,t){const r=Ft(e,t).filter(o=>o.fileType===".page.server");return await Promise.all(r.map(async o=>{o.exportNames||(s(o.loadExportNames,t),await o.loadExportNames())})),{hasOnBeforeRenderServerSideOnlyHook:r.some(({exportNames:o})=>(s(o),o.includes("onBeforeRender")))}}function fi(e,t,n){const{value:r,definedAtData:i}=e;return n&&di(r,n,t,i),e}function J(e,t,n){const r=e.configValues[t];return r?fi(r,t,n):null}function di(e,t,n,r){s(e!==null);const i=typeof e;if(i===t)return;const o=Kn(e),a=o!==null?`value ${p.cyan(o)}`:`type ${p.cyan(i)}`,u=`${kt("Config",n,r)} has an invalid ${a}: it should be a ${p.cyan(t)} instead`;d(!1,u)}const gi=k("getHook.ts",{isPrerendering:!1});function L(e,t){if(!(t in e.exports))return null;const{hooksTimeout:n}=e.config,r=pi(n,t),i=e.exports[t],o=e.exportsAll[t][0];if(s(o.exportValue===i),i===null)return null;const a=o.filePath;return s(a),s(!a.endsWith(" ")),Vt(i,{hookName:t,hookFilePath:a}),{hookFn:i,hookName:t,hookFilePath:a,hookTimeout:r}}function hi(e,t){const n=e.configValues[t];if(!n)return null;const r=n.value;if(!r)return null;const i=$r(n.definedAtData);s(i),Vt(r,{hookName:t,hookFilePath:i});const o=pe(t);return{hookFn:r,hookName:t,hookFilePath:i,hookTimeout:o}}function Se(e,t){L(e,t)}function Vt(e,{hookName:t,hookFilePath:n}){s(t&&n),s(!t.endsWith(")")),d(V(e),`Hook ${t}() defined by ${n} should be a function`)}function pi(e,t){const n=yi(e);if(n===!1)return{error:!1,warning:!1};const r=n[t],i=pe(t);return(r==null?void 0:r.error)!==void 0&&(i.error=r.error),(r==null?void 0:r.warning)!==void 0&&(i.warning=r.warning),i}function yi(e){if(e===void 0)return{};if(e===!1)return!1;d(T(e),`Setting ${p.cyan("hooksTimeout")} should be ${p.cyan("false")} or an object`);const t={};return Object.entries(e).forEach(([n,r])=>{if(r===!1){t[n]={error:!1,warning:!1};return}d(T(r),`Setting ${p.cyan(`hooksTimeout.${n}`)} should be ${p.cyan("false")} or an object`);const[i,o]=["error","warning"].map(a=>{const l=r[a];if(l===void 0||l===!1)return l;const u=`Setting ${p.cyan(`hooksTimeout.${n}.${a}`)} should be`;return d(typeof l=="number",`${u} ${p.cyan("false")} or a number`),d(l>0,`${u} a positive number`),l});t[n]={error:i,warning:o}}),t}function pe(e){return e==="onBeforeRoute"?{error:5*1e3,warning:1*1e3}:gi.isPrerendering?{error:2*60*1e3,warning:30*1e3}:(s(!e.toLowerCase().includes("prerender")),{error:30*1e3,warning:4*1e3})}function mi(e){let t=Object.getOwnPropertyDescriptors(e);for(const n of Object.keys(e))delete e[n];t=Object.fromEntries(Object.entries(t).sort(([n],[r])=>Mn(n,r))),Object.defineProperties(e,t)}function bi(e){wi(e),Si(e)}function wi(e){nr(e._pageId,e._pageConfigs)&&s(S(e,"is404","boolean"))}function Si(e){if(e.is404===void 0||e.is404===null)return;const t=e.pageProps||{};if(!T(t)){O(!1,"pageContext.pageProps should be an object",{showStackTrace:!0,onlyOnce:!0});return}t.is404=t.is404||e.is404,e.pageProps=t}const vi="not-serializable",oe=k("getPageContextProxyForUser.ts",{});function Pi(e){return s([!0,!1].includes(e._hasPageContextFromServer)),s([!0,!1].includes(e._hasPageContextFromClient)),new Proxy(e,{get(t,n){const r=e[n],i=Zr(n);return d(r!==vi,`pageContext${i} couldn't be serialized and, therefore, is missing on the client-side. Check the server logs for more information.`),Ri(e,n,i),r}})}function Ri(e,t,n){if(_i(t)||t in e||Ci(t)||!e._hasPageContextFromServer)return;const r=`pageContext${n} isn't defined on the client-side, see https://vike.dev/passToClient#error`;e._hasPageContextFromClient?O(!1,r,{onlyOnce:!1,showStackTrace:!0}):d(!1,r)}const Ei=["then","toJSON"];function Ci(e){return!!(Ei.includes(e)||typeof e=="symbol"||typeof e!="string"||e.startsWith("__v_"))}function _i(e){return oe.prev===e||oe.prev==="__v_raw"?!0:(oe.prev=e,window.setTimeout(()=>{oe.prev=void 0},0),!1)}function Me(e,t){{const i=e;s([!0,!1].includes(i.isHydration)),s([!0,!1,null].includes(i.isBackwardNavigation))}s("config"in e),s("configEntries"in e),s("exports"in e),s("exportsAll"in e),s("pageExports"in e),s(T(e.pageExports));const n=e.exports.Page;w(e,{Page:n}),$i(e),mi(e);const r=Pi(e);return bi(e),r}function $i(e){Object.entries(e).forEach(([t,n])=>{delete e[t],e[t]=n})}const ut=["urlPathname","urlParsed"],Oi=["Page","pageExports","exports"];function Ti(e){[...Oi,...ut].forEach(n=>{n in e&&(ut.includes(n)?(s(n.startsWith("url")),O(!1,`pageContext.${n} is already available in the browser when using Client Routing; adding '${n}' to passToClient has no effect`,{onlyOnce:!0})):O(!1,`pageContext.${n} is a built-in that cannot be overriden; adding '${n}' to passToClient has no effect`,{onlyOnce:!0}),delete e[n])})}const xi="/";function ki(e,t,n){const{pathnameOriginal:r,searchOriginal:i,hashOriginal:o}=te(e,xi);e.startsWith("/")&&s(e===`${r}${i||""}${o||""}`,{url:e});const a=r.endsWith("/");let l;return l=r+(a?"":"/")+"index",s(l),l=l+t,`${l}${i||""}${o||""}`}const Fi=".pageContext.json";function Ii(e){return ki(e,Fi)}function zt(e,{hookName:t,hookFilePath:n}){if(e==null)return;s(!t.endsWith(")"));const r=`The ${p.cyan("pageContext")} object provided by the ${t}() hook defined by ${n}`;d(T(e),`${r} should be an object (but it's ${p.cyan(`typeof pageContext === ${JSON.stringify(typeof e)}`)} instead)`),d(!("_objectCreatedByVike"in e),`${r} shouldn't be the whole ${p.cyan("pageContext")} object, see https://vike.dev/pageContext-manipulation#do-not-return-entire-pagecontext`),O(!("_pageId"in e),`${r} sets ${p.cyan("pageContext._pageId")} which means that Vike's routing is overriden. This is an experimental feature: make sure to contact a vike maintainer before using this.`,{onlyOnce:!0}),d(!("is404"in e),`${r} sets ${p.cyan("pageContext.is404")} which is forbidden, use ${p.cyan("throw render()")} instead, see https://vike.dev/render`)}function Ai(e,t,n){s(!n.endsWith(" "));const r=[],i=Object.keys(e);for(const o of i)t.includes(o)||r.push(o);d(r.length===0,[n,"returned an object with following unknown keys:",Qe(r)+".","Only following keys are allowed:",Qe(t)+"."].join(" "))}function ji(e,t){if(e==null)return;const n=`The onBeforeRender() hook defined by ${t}`;d(D(e),`${n} should return a plain JavaScript object, ${p.cyan("undefined")}, or ${p.cyan("null")}`),Ai(e,["pageContext"],n),e.pageContext&&zt(e.pageContext,{hookName:"onBeforeRender",hookFilePath:t})}function Li(e,t){if(!D(e))return!1;for(const n of Object.keys(e))if(!t.includes(n))return!1;return!0}function Wi(e,t,n=r=>r){if(s(e.length>0),e.length===1)return n(e[0]);const r=e.slice(0,e.length-1),i=e[e.length-1];return r.map(n).join(", ")+`, ${t} `+n(i)}B()&&ee();const Ut="The guard() hook defined by";async function Hi(e,t){let n;if(e._pageFilesAll.length>0?(s(e._pageConfigs.length===0),n=Ni(e._pageId,e._pageFilesAll)):n=L(e,"guard"),!n)return;const r=n.hookFn;let i=e;const o=t(e);o&&(i=o);const a=await N(()=>r(i),n,e);d(a===void 0,`${Ut} ${n.hookFilePath} returns a value, but guard() shouldn't return any value`)}function Ni(e,t){const n=t.find(u=>u.pageId===e&&u.fileType===".page.route");if(!n)return null;const{filePath:r,fileExports:i}=n;s(i);const o=i.guard;if(!o)return null;const a=r,l=pe("guard");return d(V(o),`${Ut} ${a} should be a function`),{hookFn:o,hookName:"guard",hookFilePath:a,hookTimeout:l}}function Di(e){const t=new Error("AbortRender");return w(t,{_pageContextAbort:e,[Gt]:!0}),t}const Gt="_isAbortError";function ct(e){return typeof e=="object"&&e!==null&&Gt in e}function Bi(e){return e._urlRewrite||e._urlRedirect||e.abortStatusCode?(s(S(e,"_abortCall","string")),!0):!1}function Vi(e){zi(e);const t={_urlRewrite:null};return e.forEach(n=>{Object.assign(t,n)}),t}function zi(e){const t=[];e.forEach(n=>{const r=n._urlRewrite;{const i=t.indexOf(r);if(i!==-1){const o=[...t.slice(i),r].map(a=>`render('${a}')`).join(" => ");d(!1,`Infinite loop of render() calls: ${o}`)}}t.push(r)})}function Ui(e,t){const n=[e>0&&p.cyan("throw render('/some-url')"),t>0&&p.cyan("throw redirect('/some-url')")].filter(Boolean).join(" and ");d(e+t<=7,`Maximum chain length of 7 ${n} exceeded. Did you define an infinite loop of ${n}?`)}const Gi="_pageContextInitIsPassedToClient",Mt="_isServerSideError",Jt=k("router/getPageContext.ts",{});function Mi(){const e=ui();return d(!("urlOriginal"in e),"Adding 'urlOriginal' to passToClient is forbidden"),qt(e),w(e,{_hasPageContextFromServer:!0}),e}async function Ji(e){const t={isHydration:!0,_hasPageContextFromClient:!1,_hasPageContextFromServer:!0};for(const n of["data","onBeforeRender"]){const r={};if(w(r,e),w(r,t),Kt(n,r)){const i=await Yt(n,r);Object.assign(t,i)}}return t}async function ft(e,t){const n={isHydration:!1,_hasPageContextFromClient:!1},r={};w(r,e),w(r,n);let i=!1;if(!t&&await Ki(r)){const o=await qi(e);if("is404ServerSideRouted"in o)return{is404ServerSideRouted:!0};const{pageContextFromServer:a}=o;i=!0,s(!(Mt in a)),s(!("serverSideError"in a)),w(n,a)}for(const o of["guard","data","onBeforeRender"]){const a={};if(w(a,{_hasPageContextFromServer:i}),w(a,e),w(a,n),o==="guard")!t&&!i&&await Hi(a,l=>Me(l));else if(s(o==="data"||o==="onBeforeRender"),Kt(o,a)||!i){const l=await Yt(o,a);w(n,l)}else s(i)}return w(n,{_hasPageContextFromServer:i}),{pageContextFromHooks:n}}async function Yt(e,t){const n=L(t,e);if(!n)return null;const r=Me(t),i=await N(()=>n.hookFn(r),n,t),o={};if(e==="onBeforeRender"){ji(i,n.hookFilePath);const a=i==null?void 0:i.pageContext;a&&(w(o,{_hasPageContextFromClient:!0}),w(o,a))}else{s(e==="data");const a={data:i};i&&w(o,{_hasPageContextFromClient:!0}),w(o,a)}return o}function Yi(e){e[Gi]&&(Jt.pageContextInitIsPassedToClient=!0)}async function Ki(e){return!!Jt.pageContextInitIsPassedToClient||await dt("data",e)||await dt("onBeforeRender",e)}async function dt(e,t){var n;if(t._pageConfigs.length>0){const r=At(t._pageId,t._pageConfigs),i=((n=J(r,`${e}Env`))==null?void 0:n.value)??{};return s(T(i)),!!i.server&&!i.client}else{if(e==="data")return!1;s(e==="onBeforeRender");const{hasOnBeforeRenderServerSideOnlyHook:r}=await ci(t._pageFilesAll,t._pageId);return r}}function Kt(e,t){var n;if(t._pageConfigs.length>0){const r=At(t._pageId,t._pageConfigs),i=((n=J(r,`${e}Env`))==null?void 0:n.value)??{};return s(T(i)),!!i.client&&!i.server}else return!1}async function qi(e){const t=Ii(e._urlRewrite??e.urlOriginal),n=await fetch(t);{const o=n.headers.get("content-type"),a="application/json",l=o&&o.includes(a);if(!l&&n.status===404)return ue(e.urlOriginal),{is404ServerSideRouted:!0};d(l,`Wrong Content-Type for ${t}: it should be ${a} but it's ${o} instead. Make sure to properly use pageContext.httpResponse.headers, see https://vike.dev/renderPage`)}const r=await n.text(),i=We(r);if(s(T(i)),Bi(i))throw Di(i);if("serverSideError"in i||Mt in i)throw Pt("pageContext couldn't be fetched from server: an error occurred on the server-side (see your server logs)");return s(S(i,"_pageId","string")),qt(i),{pageContextFromServer:i}}function qt(e){Yi(e),Ti(e)}function Xi(e){s(typeof e.urlOriginal=="string"),en(e);const t={};return we(t,"urlPathname",{get:Qt,enumerable:!0,configurable:!0}),we(t,"url",{get:Qi,enumerable:!1,configurable:!0}),we(t,"urlParsed",{get:Zi,enumerable:!0,configurable:!0}),t}function Xt(e){let t=e._urlHandler;t||(t=i=>i);let n=e.urlLogical??e._urlRewrite??e.urlOriginal;n=t(n);const r=e._baseServer;return s(n&&typeof n=="string"),s(r.startsWith("/")),te(n,r)}function Qt(){const{pathname:e}=Xt(this),t=e;return s(t.startsWith("/")),t}function Qi(){return O(!1,"`pageContext.url` is outdated. Use `pageContext.urlPathname`, `pageContext.urlParsed`, or `pageContext.urlOriginal` instead. (See https://vike.dev/migration/0.4.23 for more information.)",{onlyOnce:!0,showStackTrace:!0}),Qt.call(this)}function Zi(){const e=Xt(this),{origin:t,pathname:n,pathnameOriginal:r,search:i,searchAll:o,searchOriginal:a,hash:l,hashOriginal:u}=e,c=B(),f=y=>{O(c,`pageContext.urlParsed.${y} isn't available on the server-side (HTTP requests don't include the URL hash)`,{onlyOnce:!0,showStackTrace:!0})},g={origin:t,pathname:n,pathnameOriginal:r,search:i,searchAll:o,searchOriginal:a,get hash(){return f("hash"),l},get hashOriginal(){return f("hashOriginal"),u},get hashString(){return O(!1,"pageContext.urlParsed.hashString has been renamed to pageContext.urlParsed.hashOriginal",{onlyOnce:!0,showStackTrace:!0}),f("hashString"),u},get searchString(){return O(!1,"pageContext.urlParsed.searchString has been renamed to pageContext.urlParsed.searchOriginal",{onlyOnce:!0,showStackTrace:!0}),a}};return re(g,"hashString",!1),re(g,"searchString",!1),c||(re(g,"hash",!1),re(g,"hashOriginal",!1)),g}function Zt(e){s(typeof e.urlOriginal=="string"),s(typeof e.urlPathname=="string"),s(D(e.urlParsed)),s(e.urlPathname===e.urlParsed.pathname),en(e)}function en(e){"urlPathname"in e?(s(typeof e.urlPathname=="string"),s(be(e,"urlPathname")),s(be(e,"urlParsed")),s(be(e,"url"))):(s(!("urlParsed"in e)),s(!("url"in e)))}function eo(e,t){const r=t.filter(({filesystemRoot:o})=>e.startsWith(o)).sort(le(({filesystemRoot:o})=>o.length))[0];let i;if(r){const{filesystemRoot:o,urlRoot:a}=r,l={pageId:e,filesystemRoot:o,urlRoot:a};s(a.startsWith("/")&&e.startsWith("/")&&o.startsWith("/"),l),s(e.startsWith(o),l),o!=="/"?(s(!o.endsWith("/"),l),i=j(e,o.length,0)):i=e,s(i.startsWith("/"),l),i=a+(a.endsWith("/")?"":"/")+j(i,1,0)}else i=e;return s(i.startsWith("/")),i=i.split("/").filter(o=>o!=="pages"&&o!=="src"&&o!=="index").join("/"),s(!i.includes(".page.")),s(!i.endsWith(".")),i.endsWith("/index")&&(i=j(i,0,-6)),i===""&&(i="/"),s(i.startsWith("/")),s(!i.endsWith("/")||i==="/"),i}async function to(e,t,n){Zt(t);let r=e(t);if(tn(r,`The Route Function ${n}`),r=await r,r===!1)return null;if(r===!0&&(r={}),d(D(r),`The Route Function ${n} should return a boolean or a plain JavaScript object (but it's ${p.cyan(`typeof result === ${JSON.stringify(typeof r)}`)} instead)`),"match"in r){const{match:a}=r;if(d(typeof a=="boolean",`The ${p.cyan("match")} value returned by the Route Function ${n} should be a boolean.`),!a)return null}let i=null;"precedence"in r&&(i=r.precedence,d(typeof i=="number",`The ${p.cyan("precedence")} value returned by the Route Function ${n} should be a number.`)),nn(r,`The ${p.cyan("routeParams")} object returned by the Route Function ${n} should`);const o=r.routeParams||{};return d(!("pageContext"in r),`Providing ${p.cyan("pageContext")} in Route Functions is prohibited, see https://vike.dev/route-function#cannot-provide-pagecontext`),s(D(o)),Object.keys(r).forEach(a=>{d(a==="match"||a==="routeParams"||a==="precedence",`The Route Function ${n} returned an object with an unknown property ${p.cyan(a)} (the known properties are ${p.cyan("match")}, ${p.cyan("routeParams")}, and ${p.cyan("precedence")})`)}),{precedence:i,routeParams:o}}function tn(e,t){O(!Yn(e),`${t} returned a promise, but asynchronous routing is deprecated and will be removed in the next major release, see https://vike.dev/route-function#async`,{onlyOnce:!0})}function gt(){const e=p.cyan("iKnowThePerformanceRisksOfAsyncRouteFunctions");O(!1,`${e} is deprecated and will be removed in the next major release`,{onlyOnce:!0})}function nn(e,t){s(t.endsWith(" should")),S(e,"routeParams")&&(s(t.endsWith(" should")),d(S(e,"routeParams","string{}"),`${t} be an object holding string values.`))}async function no(e,t,n,r){await Promise.all(e.filter(l=>l.fileType===".page.route").map(l=>{var u;return(u=l.loadFile)==null?void 0:u.call(l)}));const{onBeforeRouteHook:i,filesystemRoots:o}=io(e,t,n);return{pageRoutes:ro(o,e,t,r),onBeforeRouteHook:i}}function ro(e,t,n,r){const i=[];if(n.length>0){s(e===null);const o=!0;n.filter(a=>!a.isErrorPage).forEach(a=>{const l=a.pageId;let u=null;{const c="route",f=J(a,c);if(f){const g=f.value;s(f.definedAtData);const y=q(f.definedAtData,c);typeof g=="string"?u={pageId:l,comesFromV1PageConfig:o,routeString:g,routeDefinedAtString:y,routeType:"STRING"}:(s(V(g)),J(a,"iKnowThePerformanceRisksOfAsyncRouteFunctions","boolean")&>(),u={pageId:l,comesFromV1PageConfig:o,routeFunction:g,routeDefinedAtString:y,routeType:"FUNCTION"})}}if(!u){const{routeFilesystem:c}=a;s(c);const{routeString:f,definedBy:g}=c;s(c.routeString.startsWith("/")),u={pageId:l,routeFilesystemDefinedBy:g,comesFromV1PageConfig:o,routeString:f,routeDefinedAtString:null,routeType:"FILESYSTEM"}}s(u),i.push(u)})}if(n.length===0){s(e);const o=!1;r.filter(a=>!ne(a)).forEach(a=>{const l=t.find(u=>u.pageId===a&&u.fileType===".page.route");if(!l||!("default"in l.fileExports)){const u=eo(a,e);s(u.startsWith("/")),s(!u.endsWith("/")||u==="/"),i.push({pageId:a,comesFromV1PageConfig:o,routeString:u,routeDefinedAtString:null,routeFilesystemDefinedBy:`${a}.page.*`,routeType:"FILESYSTEM"})}else{const{filePath:u,fileExports:c}=l;if(s(c.default),S(c,"default","string")){const f=c.default;d(f.startsWith("/"),`A Route String should start with a leading slash '/' but ${u} has \`export default '${f}'\`. Make sure to \`export default '/${f}'\` instead.`),i.push({pageId:a,comesFromV1PageConfig:o,routeString:f,routeDefinedAtString:u,routeType:"STRING"});return}if(S(c,"default","function")){const f=c.default;"iKnowThePerformanceRisksOfAsyncRouteFunctions"in c&>(),i.push({pageId:a,comesFromV1PageConfig:o,routeFunction:f,routeDefinedAtString:u,routeType:"FUNCTION"});return}d(!1,`The default export of ${u} should be a string or a function.`)}})}return i}function io(e,t,n){if(t.length>0)return{onBeforeRouteHook:hi(n,"onBeforeRoute"),filesystemRoots:null};let r=null;const i=[];return e.filter(o=>o.fileType===".page.route"&&o.isDefaultPageFile).forEach(({filePath:o,fileExports:a})=>{if(s(a),"onBeforeRoute"in a){d(S(a,"onBeforeRoute","function"),`\`export { onBeforeRoute }\` of ${o} should be a function.`);const{onBeforeRoute:l}=a,u="onBeforeRoute";r={hookFilePath:o,hookFn:l,hookName:u,hookTimeout:pe(u)}}"filesystemRoutingRoot"in a&&(d(S(a,"filesystemRoutingRoot","string"),`\`export { filesystemRoutingRoot }\` of ${o} should be a string.`),d(S(a,"filesystemRoutingRoot","string"),`\`export { filesystemRoutingRoot }\` of ${o} is \`'${a.filesystemRoutingRoot}'\` but it should start with a leading slash \`/\`.`),i.push({filesystemRoot:oo(o),urlRoot:a.filesystemRoutingRoot}))}),{onBeforeRouteHook:r,filesystemRoots:i}}function oo(e){s(e.startsWith("/")),s(!e.endsWith("/"));const t=e.split("/"),n=j(t,0,-1).join("/")||"/";return s(n.startsWith("/")),s(!n.endsWith("/")||n==="/"),n}function rn(){const e="/statetrain/";return s(so(e)),e}function so(e){return e.startsWith("/")}const ve=k("createPageContext.ts",{});async function on(e){ve.pageFilesData||(ve.pageFilesData=await Er());const{pageFilesAll:t,allPageIds:n,pageConfigs:r,pageConfigGlobal:i}=ve.pageFilesData,{pageRoutes:o,onBeforeRouteHook:a}=await no(t,r,i,n),l=rn();s(Le(l));const u={urlOriginal:e,_objectCreatedByVike:!0,_urlHandler:null,_urlRewrite:null,_baseServer:l,_pageFilesAll:t,_pageConfigs:r,_pageConfigGlobal:i,_allPageIds:n,_pageRoutes:o,_onBeforeRouteHook:a},c=Xi(u);return w(u,c),u}function sn(e,t){const n=e.filter(i=>i.pageId===t);return s(n.length<=1),n[0]??null}async function ao(e,t){if("isAllLoaded"in e&&!t)return e;const n=await e.loadConfigValuesAll(),r=$e(n.configValuesSerialized);return Object.assign(e.configValues,r),w(e,{isAllLoaded:!0}),e}const an="__whileFetchingAssets";async function Te(e,t,n){const r=Ne(t,e),i=sn(n,e);let o;const a=!1;try{o=(await Promise.all([i&&ao(i,a),...r.map(f=>{var g;return(g=f.loadFile)==null?void 0:g.call(f)})]))[0]}catch(c){throw lo(c)&&Object.assign(c,{[an]:!0}),c}const l=Or(r,o),u={};return w(u,l),w(u,{_pageFilesLoaded:r}),u}function Je(e){return e?e[an]===!0:!1}function lo(e){return e instanceof Error?["Failed to fetch dynamically imported module","error loading dynamically imported module","Importing a module script failed","error resolving module specifier","failed to resolve module"].some(n=>e.message.toLowerCase().includes(n.toLowerCase())):!1}function ln(e){const t=e.getAttribute("href");return!!(t===null||t===""||ii(t)||co(e)||fo(t)||!go(t)||!je(t)||!uo(e))}function uo(e){if(ho()){const n=e.getAttribute("data-vike-link");return n!==null&&n!=="false"}else return!0}function co(e){const t=e.getAttribute("target"),n=e.getAttribute("rel");return t==="_blank"||t==="_external"||n==="external"||e.hasAttribute("download")}function fo(e){if(e.startsWith("#"))return!0;const t=n=>n.split("#")[0];return!!(e.includes("#")&&t(e)===t(window.location.href))}function go(e){const t=rn();s(Le(t));const{hasBaseServer:n}=te(e,t);return n}function ho(){return!!window._disableAutomaticLinkInterception}function po(e,t){let n=yo(e,t);return{prefetchStaticAssets:n}}function yo(e,t){{const n=mo(t);if(n!==null)return n}if("prefetchLinks"in e.exports&&d(!1,"`export { prefetchLinks }` is deprecated, use `export { prefetchStaticAssets }` instead."),"prefetchStaticAssets"in e.exports){const{prefetchStaticAssets:n}=e.exports;if(n===!1)return!1;if(n==="hover")return"hover";if(n==="viewport")return"viewport";const r="prefetchStaticAssets value should be false, 'hover', or 'viewport'";d(D(n),r);const i=Object.keys(n);d(i.length===1&&i[0]==="when",r);const{when:o}=n;if(o==="HOVER"||o==="VIEWPORT"){const a=o.toLowerCase();return O(!1,`prefetchStaticAssets value \`{ when: '${o}' }\` is outdated: set prefetchStaticAssets to '${a}' instead`,{onlyOnce:!0}),a}d(!1,r)}return"hover"}function mo(e){const t=e.getAttribute("data-prefetch-static-assets"),n=e.getAttribute("data-prefetch");if(t===null&&n===null)return null;const r="The attribute data-prefetch is outdated, use data-prefetch-static-assets instead.";if(t){if(d(n===null,r),t==="hover"||t==="viewport")return t;if(t==="false")return!1;d(!1,`data-prefetch-static-assets has value "${t}" but it should instead be "false", "hover", or "viewport"`)}if(n){if(s(!t),O(!1,r,{onlyOnce:!0}),n==="true")return"viewport";if(n==="false")return"hover";d(!1,`data-prefetch has value "${n}" but it should instead be "true" or "false"`)}s(!1)}const un=new Map;function bo(e){const t=cn(e);return un.has(t)}function wo(e){const t=cn(e);un.set(t,!0)}function cn(e){return te(e,"/").pathname}function K(e){return e.fileType===".css"?[]:e.exportNames?e.exportNames:(s(e.fileExports,e.filePath),Object.keys(e.fileExports))}function So({pageFilesClientSide:e,pageFilesServerSide:t,pageId:n}){return{isHtmlOnly:r(),isClientRouting:o()};function r(){return t.some(l=>l.pageId===n&&l.fileType===".page")?(i(),!1):!(!t.some(l=>l.pageId===n&&l.fileType===".page.server")||e.some(l=>l.pageId===n&&l.fileType===".page.client"&&K(l).includes("render")))}function i(){const a=e.some(l=>K(l).includes("render"));d(a,["No client-side `render()` hook found.","See https://vike.dev/render-modes for more information.",["Loaded client-side page files (none of them `export { render }`):",...e.map((l,u)=>` (${u+1}): ${l.filePath}`)].join(` +`)].join(" "))}function o(){return e.some(l=>K(l).includes("clientRouting"))}}function vo({pageFilesClientSide:e,pageFilesServerSide:t,isHtmlOnly:n,isClientRouting:r}){let i=[];const o=t.filter(l=>!e.includes(l)),a=[];if(a.push(...e.map(l=>({id:l.filePath,onlyAssets:!1,eagerlyImported:!1}))),a.push(...o.map(l=>({id:l.filePath,onlyAssets:!0,eagerlyImported:!1}))),n)i=e.map(l=>l.filePath);else{const l=Po(r);a.push({id:l,onlyAssets:!1,eagerlyImported:!1}),i=[l]}return{clientEntries:i,clientDependencies:a}}function Po(e){return e?"@@vike/dist/esm/client/client-routing-runtime/entry.js":"@@vike/dist/esm/client/server-routing-runtime/entry.js"}function Ro(e,t){let n=Ne(e,t);const r=Ft(e,t),{isHtmlOnly:i,isClientRouting:o}=So({pageFilesClientSide:n,pageFilesServerSide:r,pageId:t});i&&(n=n.filter(u=>u.isEnv("CLIENT_ONLY")&&!K(u).includes("render")),n=Co(n));const{clientEntries:a,clientDependencies:l}=vo({pageFilesClientSide:n,pageFilesServerSide:r,isHtmlOnly:i,isClientRouting:o});return{isHtmlOnly:i,isClientRouting:o,clientEntries:a,clientDependencies:l,pageFilesClientSide:n,pageFilesServerSide:r}}async function Eo(e,t,{sharedPageFilesAlreadyLoaded:n}){const r=Ne(e,t);await Promise.all(r.map(async i=>{var o;s(i.isEnv("CLIENT_ONLY")||i.isEnv("CLIENT_AND_SERVER")),!(n&&i.isEnv("CLIENT_AND_SERVER"))&&await((o=i.loadExportNames)==null?void 0:o.call(i))}))}function Co(e){const t=[];for(const n of e)if(t.push(n),K(n).includes("overrideDefaultPages"))break;return t}function _o(e,t,n){var r,i;if(e){const o=((r=J(e,"clientRouting","boolean"))==null?void 0:r.value)??!1;return{clientEntryLoaded:((i=J(e,"clientEntryLoaded","boolean"))==null?void 0:i.value)??!1,isClientRouting:o}}else{const{isHtmlOnly:o,isClientRouting:a}=Ro(t,n);return{clientEntryLoaded:!o,isClientRouting:a}}}async function fn(e,t){await Eo(t._pageFilesAll,e,{sharedPageFilesAlreadyLoaded:!1});const n=sn(t._pageConfigs,e),{clientEntryLoaded:r,isClientRouting:i}=_o(n,t._pageFilesAll,e);return r&&i}const dn="@",xe=":";function $o(e,t="Invalid"){let n=`${t} Route String ${H(e)}`;d(e!=="",`${n} (empty string): set it to ${H("/")} instead`),d(["/","*"].includes(e[0]),`${n}: it should start with ${H("/")} or ${H("*")}`),d(!e.includes("**"),`${n}: set it to ${H(e.split("**").join("*"))} instead`)}function ke(e,t){$o(e);const n=gn(e),r=n.map(g=>g.param?"[^/]+":g.glob?".*":qn(g.static)).map(g=>`(${g})`).join(""),i=new RegExp(`^${r}/?$`),o=t.match(i);if(!o)return null;const a={},[l,...u]=o;let c=0;const f=n.filter(g=>g.glob).length>1;return n.forEach((g,y)=>{let h=u[y];if(g.param&&(a[g.param]=h),g.glob){const R=`*${f?++c:""}`;a[R]=h}}),{routeParams:a}}function gn(e){const t=[],n=i=>{const o=t[t.length-1];o!=null&&o.static?o.static+=i:t.push({static:i})},r=e.split("/");return r.forEach((i,o)=>{o!==0&&n("/"),Oo(i)?(O(!i.startsWith(xe),`Outdated Route String ${H(e)}, use ${H(e.split(xe).join(dn))} instead`,{onlyOnce:!0}),t.push({param:i.slice(1)})):i==="*"&&o===r.length-1&&e!=="*"&&e!=="/*"?t.push({glob:!0}):i.split("*").forEach((a,l)=>{l!==0&&t.push({glob:!0}),a!==""&&n(a)})}),t}function se(e){const t=gn(e),n=l=>(l==null?void 0:l.split("/").filter(Boolean).length)||0;let r=0;for(const l of t){if(!l.static)break;r+=n(l.static)}const i=t.map(l=>n(l.static)).reduce((l,u)=>l+u,0),o=t.filter(l=>l.param).length,a=t.filter(l=>l.glob).length;return{numberOfStaticPartsBeginning:r,numberOfStaticParts:i,numberOfParams:o,numberOfGlobs:a}}function Oo(e){return e.startsWith(dn)||e.startsWith(xe)}function ht(e){const n=ke(e,e);return s(n),Object.keys(n.routeParams).length===0}function H(e){return B()?`'${e}'`:(e===""&&(e="''"),p.cyan(e))}function To(e){e.sort(xo).sort(W(t=>t.routeType==="FUNCTION"&&!!t.precedence&&t.precedence<0)).sort(W(t=>t.routeType==="STRING"&&ht(t.routeString)===!1)).sort(W(t=>t.routeType==="FUNCTION"&&!t.precedence)).sort(W(t=>t.routeType==="STRING"&&ht(t.routeString)===!0)).sort(W(t=>t.routeType==="FILESYSTEM")).sort(W(t=>t.routeType==="FUNCTION"&&!!t.precedence&&t.precedence>0))}function xo(e,t){{const n=e.precedence??0,r=t.precedence??0;if(n!==r)return n>r?-1:1}if(!t.routeString||!e.routeString)return 0;{const r=le(i=>se(i).numberOfStaticPartsBeginning)(e.routeString,t.routeString);if(r!==0)return r}{const r=le(i=>se(i).numberOfStaticParts)(e.routeString,t.routeString);if(r!==0)return r}{const r=Vn(i=>se(i).numberOfGlobs)(e.routeString,t.routeString);if(r!==0)return r}{const r=le(i=>se(i).numberOfParams)(e.routeString,t.routeString);if(r!==0)return r}return 0}async function ko(e){const t={};if(!e._onBeforeRouteHook)return null;const n=await Fo(e._onBeforeRouteHook,e);return n&&(w(t,n),S(t,"_pageId","string")||S(t,"_pageId","null"))?(S(t,"routeParams")?s(S(t,"routeParams","object")):w(t,{routeParams:{}}),w(t,{_routingProvidedByOnBeforeRouteHook:!0,_debugRouteMatches:"CUSTOM_ROUTING"}),t):(w(t,{_routingProvidedByOnBeforeRouteHook:!1}),t)}async function Fo(e,t){let n=e.hookFn(t);tn(n,`The onBeforeRoute() hook ${e.hookFilePath}`),n=await N(()=>n,e,t);const r=`The onBeforeRoute() hook defined by ${e.hookFilePath}`;if(d(n==null||Li(n,["pageContext"])&&S(n,"pageContext"),`${r} should return ${p.cyan("null")}, ${p.cyan("undefined")}, or a plain JavaScript object ${p.cyan("{ pageContext: { /* ... */ } }")}`),n==null)return null;if(d(S(n,"pageContext","object"),`${r} returned ${p.cyan("{ pageContext }")} but pageContext should be a plain JavaScript object.`),S(n.pageContext,"_pageId")&&!S(n.pageContext,"_pageId","null")){const a=`${r} returned ${p.cyan("{ pageContext: { _pageId } }")} but ${p.cyan("_pageId")} should be`;d(S(n.pageContext,"_pageId","string"),`${a} a string or null`),d(t._allPageIds.includes(n.pageContext._pageId),`${a} ${Wi(t._allPageIds.map(l=>p.cyan(l)),"or")}`)}S(n.pageContext,"routeParams")&&nn(n.pageContext,`${r} returned ${p.cyan("{ pageContext: { routeParams } }")} but routeParams should`);const i=a=>`${r} returned ${p.cyan(`{ pageContext: { ${a} } }`)} which is deprecated. Return ${p.cyan("{ pageContext: { urlLogical } }")} instead.`;S(n.pageContext,"url")&&(O(!1,i("url"),{onlyOnce:!0}),n.pageContext.urlLogical=n.pageContext.url,delete n.pageContext.url),S(n.pageContext,"urlOriginal")&&(O(!1,i("urlOriginal"),{onlyOnce:!0}),n.pageContext.urlLogical=n.pageContext.urlOriginal,delete n.pageContext.urlOriginal),S(n.pageContext,"urlLogical")&&In(n.pageContext.urlLogical,`${r} returned ${p.cyan("{ pageContext: { urlLogical } }")} but ${p.cyan("urlLogical")}`),zt(n.pageContext,{hookFilePath:e.hookFilePath,hookName:"onBeforeRoute"});const o={};return w(o,n.pageContext),o}var ae;function pt(...e){var t;ae||(ae=(t=globalThis.__brillout_debug_createDebugger)==null?void 0:t.call(globalThis,"vike:routing")),ae&&ae(...e)}B()&&ee();async function hn(e){pt("Pages routes:",e._pageRoutes),Zt(e);const t={},n=await ko(e);if(n){if(n._routingProvidedByOnBeforeRouteHook)return s(n._pageId),n;w(t,n)}const r={};w(r,e),w(r,n);const i=r._allPageIds;d(i.length>0,"No page found. You must create at least one page."),s(r._pageFilesAll.length>0||r._pageConfigs.length>0);const{urlPathname:o}=r;s(o.startsWith("/"));const a=[];await Promise.all(r._pageRoutes.map(async u=>{const{pageId:c,routeType:f}=u;if(u.routeType==="FILESYSTEM"){const{routeString:g}=u,y=ke(g,o);if(y){const{routeParams:h}=y;a.push({pageId:c,routeParams:h,routeString:g,routeType:f})}return}if(u.routeType==="STRING"){const{routeString:g}=u,y=ke(g,o);if(y){const{routeParams:h}=y;s(f==="STRING"),a.push({pageId:c,routeString:g,routeParams:h,routeType:f})}return}if(u.routeType==="FUNCTION"){const{routeFunction:g,routeDefinedAtString:y}=u,h=await to(g,r,y);if(h){const{routeParams:R,precedence:$}=h;a.push({pageId:c,precedence:$,routeParams:R,routeType:f})}return}s(!1)})),To(a);const l=a[0]??null;if(pt(`Route matches for URL ${p.cyan(o)} (in precedence order):`,a),w(t,{_debugRouteMatches:a}),w(t,{_routeMatch:l}),!l)return w(t,{_pageId:null,routeParams:{}}),t;{const{routeParams:u}=l;s(D(u)),w(t,{_pageId:l.pageId,routeParams:l.routeParams})}return t}ee();const yt=k("prefetch.ts",{linkPrefetchHandlerAdded:new WeakMap});async function Io(e,t){try{await Te(e,t._pageFilesAll,t._pageConfigs)}catch(n){if(Je(n))Fe(n,!0);else throw n}}function Ao(e){wo(e.urlPathname),[...document.getElementsByTagName("A")].forEach(n=>{if(yt.linkPrefetchHandlerAdded.has(n))return;yt.linkPrefetchHandlerAdded.set(n,!0);const r=n.getAttribute("href");if(ln(n)||(s(r),bo(r)))return;const{prefetchStaticAssets:i}=po(e,n);if(i&&(i==="hover"&&(n.addEventListener("mouseover",()=>{Pe(r)}),n.addEventListener("touchstart",()=>{Pe(r)},{passive:!0})),i==="viewport")){const o=new IntersectionObserver(a=>{a.forEach(l=>{l.isIntersecting&&(Pe(r),o.disconnect())})});o.observe(n)}})}async function Pe(e){const t=await on(e);let n;try{n=await hn(t)}catch{return}n!=null&&n._pageId&&await fn(n._pageId,t)&&await Io(n._pageId,t)}async function jo(e,t){const n=Me(e);let r=null,i;r=L(e,"render"),i="render";{const l=L(e,"onRenderClient");l&&(r=l,i="onRenderClient")}if(!r){const l=Lo(e);if(s(l),e._pageConfigs.length>0)d(!1,`No onRenderClient() hook defined for URL '${l}', but it's needed, see https://vike.dev/onRenderClient`);else{const u=e._pageFilesLoaded.filter(f=>f.fileType===".page.client");let c;u.length===0?c="No file `*.page.client.*` found for URL "+l:c="One of the following files should export a render() hook: "+u.map(f=>f.filePath).join(" "),d(!1,c)}}s(r);const o=r.hookFn;s(i);const a=await N(()=>o(n),r,e);d(a===void 0,`The ${i}() hook defined by ${r.hookFilePath} isn't allowed to return a value`)}function Lo(e){let t;try{t=e.urlPathname??e.urlOriginal}catch{}return t=t??window.location.href,t}function pn(e){if(e&&"x"in e){yn(e);return}e!=null&&e.preserveScroll||Wo()}function Wo(){const e=Ho();if(!e||e==="top")yn({x:0,y:0});else{const t=document.getElementById(e)||document.getElementsByName(e)[0];t&&t.scrollIntoView()}}function yn(e){const t=()=>window.scrollTo(e.x,e.y),n=()=>window.scrollX===e.x&&window.scrollY===e.y;n()||(t(),!n()&&requestAnimationFrame(()=>{t(),!n()&&setTimeout(async()=>{if(t(),n())return;const r=new Date().getTime();for(;;)if(await ti(10),t(),n()||new Date().getTime()-r>100)return},0)}))}function Ho(){let{hash:e}=window.location;return e===""?null:(s(e.startsWith("#")),e=e.slice(1),e)}function No(){window.addEventListener("scroll",ni(lt,Math.ceil(1e3/3)),{passive:!0}),Nt(lt)}const U=k("onBrowserHistoryNavigation.ts",{previousState:ce()});function Do(){window.addEventListener("popstate",async()=>{const e=ce(),t=e.historyState.scrollPosition||void 0,n=e.historyState.triggeredBy==="user",r=e.urlWithoutHash===U.previousState.urlWithoutHash,i=!e.historyState.timestamp||!U.previousState.historyState.timestamp?null:e.historyState.timestampmn.initialRenderIsDone&&Ye())}function zo(){mn.initialRenderIsDone=!0}function Ye(){"scrollRestoration"in window.history&&(window.history.scrollRestoration="manual")}function mt(){"scrollRestoration"in window.history&&(window.history.scrollRestoration="auto")}const _=k("renderPageClientSide.ts",{renderCounter:0});async function X(e){const{scrollTarget:t,urlOriginal:n=Be(),overwriteLastHistoryEntry:r=!1,isBackwardNavigation:i,pageContextsFromRewrite:o=[],redirectCount:a=0,isUserLandPushStateNavigation:l,isClientSideNavigation:u=!0}=e,{isRenderOutdated:c,setHydrationCanBeAborted:f,isHydrationRender:g}=Go();if(s(u===!g),Ui(o.length,a),_.clientRoutingIsDisabled){ue(n);return}await y();return;async function y(){var F;const m=async b=>{await R({err:b})},v=await h();if(c())return;if(_.isFirstRenderDone){const{previousPageContext:b}=_;if(s(b),Se(b,"onPageTransitionStart"),!_.isTransitioning){_.isTransitioning=!0;const C=L(b,"onPageTransitionStart");if(C){const E=C,{hookFn:z}=E;try{await N(()=>z(v),E,v)}catch(I){await m(I);return}if(c())return}}}let P;if(g)P=Mi();else{let b;try{b=await hn(v)}catch(z){await m(z);return}if(c())return;let C;if(!b._pageId)C=!1;else if(C=await fn(b._pageId,v),c())return;if(!C){ue(n);return}s(S(b,"_pageId","string"));const E=b._pageId&&((F=_.previousPageContext)==null?void 0:F._pageId)&&b._pageId===_.previousPageContext._pageId;if(l&&E)return;P=b}s(!("urlOriginal"in P)),w(v,P);try{w(v,await Te(v._pageId,v._pageFilesAll,v._pageConfigs))}catch(b){if(bt(b,v,g))return;await m(b);return}if(!c()&&(v.exports.hydrationCanBeAborted?f():O(!ei(),"You seem to be using React; we recommend setting hydrationCanBeAborted to true, see https://vike.dev/hydrationCanBeAborted",{onlyOnce:!0}),!c()))if(g){s(S(v,"_hasPageContextFromServer","true"));let b;try{b=await Ji(v)}catch(C){await m(C);return}if(c())return;s(!("urlOriginal"in b)),w(v,b),await $(v)}else{let b;try{b=await ft(v,!1)}catch(E){await m(E);return}if(c()||"is404ServerSideRouted"in b)return;const C=b.pageContextFromHooks;s(!("urlOriginal"in C)),w(v,C),await $(v)}}async function h(){const m=await on(n);w(m,{isBackwardNavigation:i,isClientSideNavigation:u});{const v=Vi(o);s(!("urlOriginal"in v)),w(m,v)}return m}async function R(m){const v=E=>{at(E,m.err)||console.error(E)};if("err"in m){const{err:E}=m;s(E),ct(E)||console.error(E)}const P=await h();if(c())return;if(m.pageContextError&&w(P,m.pageContextError),"err"in m){const{err:E}=m;if(s(!("errorWhileRendering"in P)),P.errorWhileRendering=E,ct(E)){const I=E._pageContextAbort;if(I._urlRewrite){await X({...e,scrollTarget:void 0,pageContextsFromRewrite:[...o,I]});return}if(I._urlRedirect){const ye=I._urlRedirect.url;if(ye.startsWith("http")){window.location.href=ye;return}else await X({...e,scrollTarget:void 0,urlOriginal:ye,overwriteLastHistoryEntry:!1,isBackwardNavigation:!1,redirectCount:a+1});return}s(I.abortStatusCode),s(!("urlOriginal"in I)),w(P,I),I.abortStatusCode===404&&w(P,{is404:!0})}else w(P,{is404:!1})}const F=tr(P._pageFilesAll,P._pageConfigs);if(!F)throw new Error("No error page defined.");w(P,{_pageId:F});try{w(P,await Te(P._pageId,P._pageFilesAll,P._pageConfigs))}catch(E){if(bt(E,P,g))return;v(E);return}if(c())return;let b;try{b=await ft(P,!0)}catch(E){v(E);return}if(c()||"is404ServerSideRouted"in b)return;const C=b.pageContextFromHooks;s(C),s(!("urlOriginal"in C)),w(P,C),await $(P,m)}async function $(m,v){const P=async b=>{v?at(b,v.err)||console.error(b):await R({err:b})};if(_.onRenderClientPromise&&(await _.onRenderClientPromise,s(_.onRenderClientPromise===void 0),c()))return;Uo(n,r),_.previousPageContext=m,s(_.onRenderClientPromise===void 0),_.onRenderClientPromise=(async()=>{let b;try{await jo(m,!0)}catch(C){b=C}return _.onRenderClientPromise=void 0,_.isFirstRenderDone=!0,b})();const F=await _.onRenderClientPromise;if(s(_.onRenderClientPromise===void 0),!(F&&(await P(F),!v))){if(Ao(m),g&&!F){Se(m,"onHydrationEnd");const b=L(m,"onHydrationEnd");if(b){const{hookFn:C}=b;try{await N(()=>C(m),b,m)}catch(E){if(await P(E),!v)return}if(c(!0))return}}if(!c(!0)){if(_.isTransitioning){_.isTransitioning=void 0;const{previousPageContext:b}=_;s(b),Se(b,"onPageTransitionEnd");const C=L(b,"onPageTransitionEnd");if(C){const{hookFn:E}=C;try{await N(()=>E(m),C,m)}catch(z){if(await P(z),!v)return}if(c(!0))return}}pn(t),Ye(),zo()}}}}function Uo(e,t){Be()!==e&&(Ye(),oi(e,t),Bo())}function bt(e,t,n){if(!Je(e))return!1;if(n)throw Fe(e,!1),e;return Fe(e,!0),ue(t.urlOriginal),!0}function Fe(e,t){s(Je(e)),_.clientRoutingIsDisabled=!0,t&&console.log(e),xn(!1,["Failed to fetch static asset.","This usually happens when a new frontend is deployed.","Falling back to Server Routing.","(The next page navigation will use Server Routing instead of Client Routing.)"].filter(Boolean).join(" "),{onlyOnce:!0})}function Go(){const e=++_.renderCounter;s(e>=1);let t=!1;return{isRenderOutdated:i=>e===1&&!t&&!i?!1:e!==_.renderCounter,setHydrationCanBeAborted:()=>{t=!0},isHydrationRender:e===1}}function wt(){return _.renderCounter}function Mo(){document.addEventListener("click",Jo)}async function Jo(e){if(!Yo(e))return;const t=Ko(e.target);if(!t)return;const n=t.getAttribute("href");if(ln(t))return;s(n),e.preventDefault();let r;{const i=t.getAttribute("keep-scroll-position");i!==null&&(r={preserveScroll:i!=="false"})}await X({scrollTarget:r,urlOriginal:n,isBackwardNavigation:!1})}function Yo(e){return e.button===0&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey}function Ko(e){for(;e.tagName!=="A";){const{parentNode:t}=e;if(!t)return null;e=t}return e}async function qo(){Qo();const e=Xo();Mo(),await e}function Xo(){s(wt()===0);const e=X({scrollTarget:{preserveScroll:!0},isBackwardNavigation:null,isClientSideNavigation:!1});return s(wt()===1),e}function Qo(){Vo(),Dt(),No(),ai(),Do()}ee();vn();qo(); diff --git a/assets/entries/pages_error.OPXz8eTI.js b/assets/entries/pages_error.OPXz8eTI.js new file mode 100644 index 0000000..ce41021 --- /dev/null +++ b/assets/entries/pages_error.OPXz8eTI.js @@ -0,0 +1 @@ +import{j as e,L as r,a as o,o as i,A as l}from"../chunks/chunk-CwsG006u.js";import"../chunks/chunk-DZeubO4x.js";const n=({is404:t,errorInfo:a})=>e.jsxs(r,{className:"mt-20",children:[t?e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"text-xl mb-4",children:"404 Page Not Found"}),e.jsx("p",{children:"This page could not be found."}),e.jsx("p",{children:a})]}):e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"text-xl mb-4",children:"500 Internal Server Error"}),e.jsx("p",{children:"Something went wrong."})]}),e.jsx(o,{href:"",children:"Go back to home page"})]}),d=Object.freeze(Object.defineProperty({__proto__:null,default:n},Symbol.toStringTag,{value:"Module"})),u={onBeforeRenderEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},dataEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},hydrationCanBeAborted:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/config",fileExportPathToShowToUser:["default","hydrationCanBeAborted"]},valueSerialized:{type:"js-serialized",value:!0}},onRenderClient:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/renderer/onRenderClient",fileExportPathToShowToUser:[]},valueSerialized:{type:"pointer-import",value:i}},Layout:{type:"cumulative",definedAtData:[{filePathToShowToUser:"/components/App.tsx",fileExportPathToShowToUser:[]}],valueSerialized:[{type:"pointer-import",value:l}]},Page:{type:"standard",definedAtData:{filePathToShowToUser:"/pages/_error/+Page.tsx",fileExportPathToShowToUser:[]},valueSerialized:{type:"plus-file",exportValues:d}},title:{type:"standard",definedAtData:{filePathToShowToUser:"/pages/_error/+config.ts",fileExportPathToShowToUser:["default","title"]},valueSerialized:{type:"js-serialized",value:"An error occurred"}}};export{u as configValuesSerialized}; diff --git a/assets/entries/pages_index.bLHpNDwf.js b/assets/entries/pages_index.bLHpNDwf.js new file mode 100644 index 0000000..0ea7f9f --- /dev/null +++ b/assets/entries/pages_index.bLHpNDwf.js @@ -0,0 +1 @@ +import{j as e,L as t,a,o,A as i}from"../chunks/chunk-CwsG006u.js";import{H as r,I as l}from"../chunks/chunk-DzAPp0u_.js";import"../chunks/chunk-DZeubO4x.js";const n=()=>e.jsxs(t,{className:"mt-10",children:[e.jsx(r,{className:"mb-5",children:"🏡 This is the start page layout :)"}),e.jsx("p",{children:"For a side project I needed a routable typescript react application with access to a shared tone.js context. To test my code I build a small metronome implementation which needs kind of a communication layer to and from tone.js"}),e.jsx("p",{className:"mb-3",children:"We can control tone JS from here"}),e.jsx(l,{className:"mb-3"}),e.jsxs("p",{children:["or after transitioning to a ",e.jsx(a,{href:"second-page/",children:"alternative page"})," of the application"]})]}),s=Object.freeze(Object.defineProperty({__proto__:null,default:n},Symbol.toStringTag,{value:"Module"})),u={onBeforeRenderEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},dataEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},hydrationCanBeAborted:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/config",fileExportPathToShowToUser:["default","hydrationCanBeAborted"]},valueSerialized:{type:"js-serialized",value:!0}},onRenderClient:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/renderer/onRenderClient",fileExportPathToShowToUser:[]},valueSerialized:{type:"pointer-import",value:o}},Layout:{type:"cumulative",definedAtData:[{filePathToShowToUser:"/components/App.tsx",fileExportPathToShowToUser:[]}],valueSerialized:[{type:"pointer-import",value:i}]},Page:{type:"standard",definedAtData:{filePathToShowToUser:"/pages/index/+Page.tsx",fileExportPathToShowToUser:[]},valueSerialized:{type:"plus-file",exportValues:s}},title:{type:"standard",definedAtData:{filePathToShowToUser:"/pages/index/+config.ts",fileExportPathToShowToUser:["default","title"]},valueSerialized:{type:"js-serialized",value:"Welcome | statetrain"}}};export{u as configValuesSerialized}; diff --git a/assets/entries/pages_second-page.BRRyZT6a.js b/assets/entries/pages_second-page.BRRyZT6a.js new file mode 100644 index 0000000..548038e --- /dev/null +++ b/assets/entries/pages_second-page.BRRyZT6a.js @@ -0,0 +1 @@ +import{j as e,L as t,a,o,A as i}from"../chunks/chunk-CwsG006u.js";import{H as r,I as l}from"../chunks/chunk-DzAPp0u_.js";import"../chunks/chunk-DZeubO4x.js";const n=()=>e.jsxs(t,{className:"mt-10",children:[e.jsx(r,{className:"mb-5",children:"💫 This is the alternative page layout :)"}),e.jsx("p",{className:"mb-3",children:"We can now control tone.js from here"}),e.jsx(l,{className:"mb-3"}),e.jsxs("p",{children:["or after transitioning to the ",e.jsx(a,{href:"",children:"start page"})," of the app"]})]}),s=Object.freeze(Object.defineProperty({__proto__:null,default:n},Symbol.toStringTag,{value:"Module"})),f={onBeforeRenderEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},dataEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},hydrationCanBeAborted:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/config",fileExportPathToShowToUser:["default","hydrationCanBeAborted"]},valueSerialized:{type:"js-serialized",value:!0}},onRenderClient:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/renderer/onRenderClient",fileExportPathToShowToUser:[]},valueSerialized:{type:"pointer-import",value:o}},Layout:{type:"cumulative",definedAtData:[{filePathToShowToUser:"/components/App.tsx",fileExportPathToShowToUser:[]}],valueSerialized:[{type:"pointer-import",value:i}]},Page:{type:"standard",definedAtData:{filePathToShowToUser:"/pages/second-page/+Page.tsx",fileExportPathToShowToUser:[]},valueSerialized:{type:"plus-file",exportValues:s}},title:{type:"standard",definedAtData:{filePathToShowToUser:"/pages/second-page/+config.ts",fileExportPathToShowToUser:["default","title"]},valueSerialized:{type:"js-serialized",value:"Alternative Page | statetrain"}}};export{f as configValuesSerialized}; diff --git a/assets/static/Link.CTy-J1Wx.css b/assets/static/Link.CTy-J1Wx.css new file mode 100644 index 0000000..3dd669a --- /dev/null +++ b/assets/static/Link.CTy-J1Wx.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:var(--un-default-border-color, #e5e7eb)}:before,:after{--un-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }body,html{background-color:#020617;color:#e2e8f0;font-family:Helvetica Neue,Arial,Tahoma,sans-serif;font-size:16px}:root{--color-inherit: inherit;--color-current: currentColor;--color-transparent: transparent;--color-black: #000;--color-white: #fff;--color-gray: #94a3b8;--color-light: #e2e8f0;--color-dark: #020617;--color-darkLight: #0f172a;--color-darkLightBorder: #1e293b;--color-grayDark: #475569;--color-grayLight: #cbd5e1;--color-primary: #38bdf8;--color-successDark: #047857;--color-successLight: #6ee7b7;--color-warningDark: #b45309;--color-warningLight: #fcd34d;--color-errorDark: #b91c1c;--color-errorLight: #fca5a5;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 16px;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-size-6xl: 3.75rem;--font-size-7xl: 4.5rem;--font-size-8xl: 6rem;--font-size-9xl: 8rem;--font-size-small: 14px;--font-size-micro: 10px}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.relative{position:relative}.m-auto{margin:auto}.my{margin-top:1rem;margin-bottom:1rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mt-10{margin-top:2.5rem}.mt-16{margin-top:4rem}.mt-20{margin-top:5rem}.mt-4{margin-top:1rem}.block{display:block}.inline-block{display:inline-block}.hidden{display:none}.h-10{height:2.5rem}.h-20{height:5rem}.h-3{height:.75rem}.h-full{height:100%}.max-w-24{max-width:6rem}.min-w-10{min-width:2.5rem}.w-10{width:2.5rem}.w-3{width:.75rem}.w-full{width:100%}.max-w-screen-lg{max-width:1024px}.flex{display:flex}.inline-flex{display:inline-flex}.flex-1{flex:1 1 0%}.flex-col{flex-direction:column}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.whitespace-nowrap{white-space:nowrap}.border-1{border-width:1px}.border-x-0{border-left-width:0px;border-right-width:0px}.border-darkLightBorder{--un-border-opacity:1;border-color:rgb(30 41 59 / var(--un-border-opacity))}.rounded{border-radius:.25rem}.rounded-sm{border-radius:.125rem}.rounded-e-lg{border-start-end-radius:.5rem;border-end-end-radius:.5rem}.rounded-s-lg{border-end-start-radius:.5rem;border-start-start-radius:.5rem}.bg-dark{--un-bg-opacity:1;background-color:rgb(2 6 23 / var(--un-bg-opacity))}.bg-darkLight{--un-bg-opacity:1;background-color:rgb(15 23 42 / var(--un-bg-opacity))}.bg-primary{--un-bg-opacity:1;background-color:rgb(56 189 248 / var(--un-bg-opacity))}.bg-successDark{--un-bg-opacity:1;background-color:rgb(4 120 87 / var(--un-bg-opacity))}.bg-warningDark{--un-bg-opacity:1;background-color:rgb(180 83 9 / var(--un-bg-opacity))}.bg-warningLight{--un-bg-opacity:1;background-color:rgb(252 211 77 / var(--un-bg-opacity))}.bg-opacity-50{--un-bg-opacity:.5}.hover\:bg-opacity-75:hover{--un-bg-opacity:.75}.p-0{padding:0}.p-2{padding:.5rem}.p-3{padding:.75rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-errorDark{--un-text-opacity:1;color:rgb(185 28 28 / var(--un-text-opacity))}.text-gray{--un-text-opacity:1;color:rgb(148 163 184 / var(--un-text-opacity))}.text-light{--un-text-opacity:1;color:rgb(226 232 240 / var(--un-text-opacity))}.text-primary{--un-text-opacity:1;color:rgb(56 189 248 / var(--un-text-opacity))}.text-warningLight{--un-text-opacity:1;color:rgb(252 211 77 / var(--un-text-opacity))}.text-white{--un-text-opacity:1;color:rgb(255 255 255 / var(--un-text-opacity))}.font-black{font-weight:900}.font-bold{font-weight:700}.underline,.hover\:underline:hover{text-decoration-line:underline}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)} diff --git a/components/App.tsx b/components/App.tsx deleted file mode 100644 index c0cbf9f..0000000 --- a/components/App.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { ReactNode } from 'react' - -import '#components/styles.css' -import '@unocss/reset/tailwind.css' -import 'virtual:uno.css' - -import TransportControl from '#components/TransportControls' -import ToneContextProvider from '#tone/context/ToneContextProvider' -import TonePortal from '#tone/TonePortal' - -const App = ({ children }: { children: ReactNode }) => ( - - - - {children} - - -) - -export default App diff --git a/components/InlinePlayButton.tsx b/components/InlinePlayButton.tsx deleted file mode 100644 index 593ed56..0000000 --- a/components/InlinePlayButton.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { Play, Square } from 'lucide-react' -import React, { useCallback } from 'react' - -import Button from '#components/common/Button' -import useTone from '#tone/useTone' - -type InlinePlayButtonProps = React.HTMLAttributes & { - className?: string -} - -const InlinePlayButton = ({ className, ...props }: InlinePlayButtonProps) => { - const { isPlaying, handlePlay, handleStop } = useTone() - - const handlePlayButtonClick = useCallback(() => { - if (isPlaying) { - handleStop() - } else { - handlePlay() - } - }, [handlePlay, handleStop, isPlaying]) - - return ( - - ) -} - -export default InlinePlayButton diff --git a/components/TransportControls/TransportSettings.tsx b/components/TransportControls/TransportSettings.tsx deleted file mode 100644 index ed3d1aa..0000000 --- a/components/TransportControls/TransportSettings.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import NumberInput from '#components/form/NumberInput' -import useTone from '#tone/useTone' - -const TransportSettings = () => { - const { bpm, timeSignature, handleChangeBpm, handleChangeTimeSignature } = useTone() - - return ( -
- handleChangeBpm(bpm + 1)} - onDecrease={() => handleChangeBpm(bpm - 1)} - /> - handleChangeTimeSignature(timeSignature + 1)} - onDecrease={() => handleChangeTimeSignature(timeSignature - 1)} - /> -
- ) -} - -export default TransportSettings diff --git a/components/TransportControls/TransportVisualizer.tsx b/components/TransportControls/TransportVisualizer.tsx deleted file mode 100644 index f1f0281..0000000 --- a/components/TransportControls/TransportVisualizer.tsx +++ /dev/null @@ -1,95 +0,0 @@ -import { CircleDashed, CircleX, Smile } from 'lucide-react' -import { memo, useCallback, useEffect, useMemo, useRef } from 'react' - -import useTone from '#tone/useTone' - -const TransportVisualizer = memo( - ({ - currentPosition, - setCurrentPosition, - transportLength, - }: { - currentPosition: number - transportLength: number - setCurrentPosition: React.Dispatch> - }) => { - const { transport, tone, loopLength, isPlaying, timeSignature } = useTone() - - const tickEventId = useRef() - - const measures = useMemo(() => Array.from({ length: loopLength }, (_, i) => i), [loopLength]) - const ticks = useMemo(() => Array.from({ length: timeSignature }, (_, i) => i), [timeSignature]) - - const handleTick = useCallback(() => { - setCurrentPosition(prev => (prev + 1) % (loopLength * timeSignature)) - }, [loopLength, setCurrentPosition, timeSignature]) - - const clearTickEvent = useCallback(() => { - if (tickEventId.current !== undefined) { - tone?.getDraw().cancel() - transport?.clear(tickEventId.current) - } - }, [tone, transport]) - - const registerTickEvent = useCallback(() => { - clearTickEvent() - - const tick = transport?.scheduleRepeat(time => { - tone?.getDraw()?.schedule(() => { - handleTick() - }, time) - }, '4n') - setCurrentPosition(transportLength) - tickEventId.current = tick - }, [clearTickEvent, handleTick, setCurrentPosition, tone, transport, transportLength]) - - // on Change of transportLength -> reset - useEffect(() => { - if (transportLength) { - setCurrentPosition(transportLength) - registerTickEvent() - } - }, [transportLength, registerTickEvent, setCurrentPosition]) - - return ( -
- {measures.map(measure => ( -
- {ticks.map(tick => { - const isCurrentTick = currentPosition === measure * timeSignature + tick - const isFirstTick = measure === 0 && tick === 0 - const isFirstMeasure = isCurrentTick && tick === 0 - - return ( -
- {isPlaying && ( - <> - - - - - )} - {!isPlaying && isFirstTick && } - {!isPlaying && !isFirstTick && ( - - )} -
- ) - })} -
- ))} -
- ) - }, -) - -export default TransportVisualizer diff --git a/components/TransportControls/index.tsx b/components/TransportControls/index.tsx deleted file mode 100644 index 64a7c54..0000000 --- a/components/TransportControls/index.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { Play, Square } from 'lucide-react' -import { useCallback, useEffect, useMemo, useState } from 'react' - -import Button from '#components/common/Button' -import ElementContainer from '#components/common/ElementContainer' -import Layout from '#components/common/Layout' -import TransportSettings from '#components/TransportControls/TransportSettings' -import TransportVisualizer from '#components/TransportControls/TransportVisualizer' -import useTone from '#tone/useTone' - -const TransportControl = () => { - const [currentPosition, setCurrentPosition] = useState(0) - const { isPlaying, loopLength, timeSignature, handlePlay, handleStop, setMetronome } = useTone() - - // calculate the total length of the transport loop - const modifiedLoopAndSignature = useMemo( - () => loopLength * timeSignature - 1, - [loopLength, timeSignature], - ) - - const handlePlayButtonClick = useCallback(() => { - if (isPlaying) { - handleStop() - setCurrentPosition(modifiedLoopAndSignature) - } else { - handlePlay() - } - }, [handlePlay, handleStop, isPlaying, modifiedLoopAndSignature]) - - // setup metronome on mount - todo: overthink placement - useEffect(() => { - setMetronome?.() - }, [setMetronome]) - - return ( - - - - - ) -} - -export default Button diff --git a/components/common/ElementContainer.tsx b/components/common/ElementContainer.tsx deleted file mode 100644 index c0972bf..0000000 --- a/components/common/ElementContainer.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import tw from 'tailwind-styled-components' - -const ElementContainer = tw.div` - p-2 - bg-darkLight - border-darkLightBorder - border-1 - rounded -` - -export default ElementContainer diff --git a/components/common/H2Headline.tsx b/components/common/H2Headline.tsx deleted file mode 100644 index c38449a..0000000 --- a/components/common/H2Headline.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import tw from 'tailwind-styled-components' - -const H2Headline = tw.h2` - text-4xl - md:text-5xl - font-bold - text-light -` - -export default H2Headline diff --git a/components/common/H3Headline.tsx b/components/common/H3Headline.tsx deleted file mode 100644 index d7f891e..0000000 --- a/components/common/H3Headline.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import tw from 'tailwind-styled-components' - -const H3Headline = tw.h3` -text-3xl -md:font-light -text-gray -` - -export default H3Headline diff --git a/components/common/H4Headline.tsx b/components/common/H4Headline.tsx deleted file mode 100644 index 1f9d22e..0000000 --- a/components/common/H4Headline.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import tw from 'tailwind-styled-components' - -const H4Headline = tw.h4` - text-2xl - text-light -` - -export default H4Headline diff --git a/components/common/H5Headline.tsx b/components/common/H5Headline.tsx deleted file mode 100644 index c40335e..0000000 --- a/components/common/H5Headline.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import tw from 'tailwind-styled-components' - -const H5Headline = tw.h5` - text-xl - font-medium - text-gray -` - -export default H5Headline diff --git a/components/common/H6Headline.tsx b/components/common/H6Headline.tsx deleted file mode 100644 index c847d4f..0000000 --- a/components/common/H6Headline.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import tw from 'tailwind-styled-components' - -const H6Headline = tw.h6` - text-lg - font-medium - text-light -` - -export default H6Headline diff --git a/components/common/Layout.tsx b/components/common/Layout.tsx deleted file mode 100644 index 75a5915..0000000 --- a/components/common/Layout.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import tw from 'tailwind-styled-components' - -interface LayoutTwProps { - $fullWidth?: boolean -} - -export default tw.div` - m-auto - ${p => (p.$fullWidth ? 'w-full' : 'container max-w-screen-lg')} - px-4 - px-lg-0 -` diff --git a/components/common/Link.tsx b/components/common/Link.tsx deleted file mode 100644 index 2d2ed94..0000000 --- a/components/common/Link.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import { useMemo } from 'react' -import { usePageContext } from 'vike-react/usePageContext' - -interface LinkProps { - href: string - label?: string - children?: React.ReactNode | React.ReactNode[] - className?: string - button?: boolean -} - -const Link = ({ href, children, label, className = '', button }: LinkProps) => { - const pageContext = usePageContext() - const { urlPathname } = pageContext - - // clean up href and pathname - const hrefWithoutSlashes = href.replace(/^\/|\/$/g, '') - const pathnameWithoutSlashes = urlPathname.replace(/^\/|\/$/g, '') - - const isAnchorLink = hrefWithoutSlashes.startsWith('#') - - const isExternal = useMemo(() => { - if (hrefWithoutSlashes.startsWith('http') || hrefWithoutSlashes.startsWith('mailto')) { - return true - } - - return false - }, [hrefWithoutSlashes]) - - const isActive = useMemo( - () => - hrefWithoutSlashes === '' - ? pathnameWithoutSlashes === hrefWithoutSlashes - : pathnameWithoutSlashes.startsWith(hrefWithoutSlashes), - [hrefWithoutSlashes, pathnameWithoutSlashes], - ) - - const generatedClassName = useMemo(() => { - const staticClassName = - 'transition-colors text-primary duration-200 ease-in-out inline-block hover:underline underline' - - if (button) { - return `${ - isActive - ? 'bg-primary pointer-events-none' - : 'bg-warningLight bg-opacity-50 hover:bg-opacity-75' - } p-3 ${className} ${staticClassName} ` - } - - return `${isActive ? 'text-warningLight ' : ''} ${className} ${staticClassName}` - }, [button, className, isActive]) - - const linkCheckedExternal = useMemo( - () => `${!isExternal ? `${import.meta.env.BASE_URL}` : ''}${href}`, - [href, isExternal], - ) - - return ( - - {children} - - ) -} - -export default Link diff --git a/components/form/NumberInput.tsx b/components/form/NumberInput.tsx deleted file mode 100644 index fd66bcc..0000000 --- a/components/form/NumberInput.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { ReactNode } from 'react' -import tw from 'tailwind-styled-components' - -interface StyledToggleButtonProps { - $pos: 'left' | 'right' -} - -const StyledToggleButton = tw.button` - bg-dark - border-1 - border-darkLightBorder - px-2 - flex - text-center - items-center - w-10 - font-bold - justify-center - h-full - ${p => (p.$pos === 'left' ? 'rounded-s-lg' : 'rounded-e-lg')} -` - -const StyledNumberInput = tw.input` - bg-darkLight - border-x-0 - border-1 - border-darkLightBorder - text-center - text-light - text-sm - flex - items-center - justify-center - font-bold - w-full - min-w-10 - h-full -` - -interface NumberInputProps { - onDecrease: () => void - onIncrease: () => void - value: number | string - label: ReactNode -} - -const NumberInput = ({ onIncrease, onDecrease, value, label }: NumberInputProps) => ( -
-
- {label} -
-
- - - - - - - + - -
-
-) - -export default NumberInput diff --git a/components/styles.css b/components/styles.css deleted file mode 100644 index 45faa94..0000000 --- a/components/styles.css +++ /dev/null @@ -1 +0,0 @@ -/* silence is golden */ diff --git a/public/favicon/android-icon-144x144.png b/favicon/android-icon-144x144.png similarity index 100% rename from public/favicon/android-icon-144x144.png rename to favicon/android-icon-144x144.png diff --git a/public/favicon/android-icon-192x192.png b/favicon/android-icon-192x192.png similarity index 100% rename from public/favicon/android-icon-192x192.png rename to favicon/android-icon-192x192.png diff --git a/public/favicon/android-icon-36x36.png b/favicon/android-icon-36x36.png similarity index 100% rename from public/favicon/android-icon-36x36.png rename to favicon/android-icon-36x36.png diff --git a/public/favicon/android-icon-48x48.png b/favicon/android-icon-48x48.png similarity index 100% rename from public/favicon/android-icon-48x48.png rename to favicon/android-icon-48x48.png diff --git a/public/favicon/android-icon-72x72.png b/favicon/android-icon-72x72.png similarity index 100% rename from public/favicon/android-icon-72x72.png rename to favicon/android-icon-72x72.png diff --git a/public/favicon/android-icon-96x96.png b/favicon/android-icon-96x96.png similarity index 100% rename from public/favicon/android-icon-96x96.png rename to favicon/android-icon-96x96.png diff --git a/public/favicon/apple-icon-114x114.png b/favicon/apple-icon-114x114.png similarity index 100% rename from public/favicon/apple-icon-114x114.png rename to favicon/apple-icon-114x114.png diff --git a/public/favicon/apple-icon-120x120.png b/favicon/apple-icon-120x120.png similarity index 100% rename from public/favicon/apple-icon-120x120.png rename to favicon/apple-icon-120x120.png diff --git a/public/favicon/apple-icon-144x144.png b/favicon/apple-icon-144x144.png similarity index 100% rename from public/favicon/apple-icon-144x144.png rename to favicon/apple-icon-144x144.png diff --git a/public/favicon/apple-icon-152x152.png b/favicon/apple-icon-152x152.png similarity index 100% rename from public/favicon/apple-icon-152x152.png rename to favicon/apple-icon-152x152.png diff --git a/public/favicon/apple-icon-180x180.png b/favicon/apple-icon-180x180.png similarity index 100% rename from public/favicon/apple-icon-180x180.png rename to favicon/apple-icon-180x180.png diff --git a/public/favicon/apple-icon-57x57.png b/favicon/apple-icon-57x57.png similarity index 100% rename from public/favicon/apple-icon-57x57.png rename to favicon/apple-icon-57x57.png diff --git a/public/favicon/apple-icon-60x60.png b/favicon/apple-icon-60x60.png similarity index 100% rename from public/favicon/apple-icon-60x60.png rename to favicon/apple-icon-60x60.png diff --git a/public/favicon/apple-icon-72x72.png b/favicon/apple-icon-72x72.png similarity index 100% rename from public/favicon/apple-icon-72x72.png rename to favicon/apple-icon-72x72.png diff --git a/public/favicon/apple-icon-76x76.png b/favicon/apple-icon-76x76.png similarity index 100% rename from public/favicon/apple-icon-76x76.png rename to favicon/apple-icon-76x76.png diff --git a/public/favicon/apple-icon-precomposed.png b/favicon/apple-icon-precomposed.png similarity index 100% rename from public/favicon/apple-icon-precomposed.png rename to favicon/apple-icon-precomposed.png diff --git a/public/favicon/apple-icon.png b/favicon/apple-icon.png similarity index 100% rename from public/favicon/apple-icon.png rename to favicon/apple-icon.png diff --git a/public/favicon/browserconfig.xml b/favicon/browserconfig.xml similarity index 100% rename from public/favicon/browserconfig.xml rename to favicon/browserconfig.xml diff --git a/public/favicon/favicon-16x16.png b/favicon/favicon-16x16.png similarity index 100% rename from public/favicon/favicon-16x16.png rename to favicon/favicon-16x16.png diff --git a/public/favicon/favicon-32x32.png b/favicon/favicon-32x32.png similarity index 100% rename from public/favicon/favicon-32x32.png rename to favicon/favicon-32x32.png diff --git a/public/favicon/favicon-96x96.png b/favicon/favicon-96x96.png similarity index 100% rename from public/favicon/favicon-96x96.png rename to favicon/favicon-96x96.png diff --git a/public/favicon/favicon.ico b/favicon/favicon.ico similarity index 100% rename from public/favicon/favicon.ico rename to favicon/favicon.ico diff --git a/public/favicon/ms-icon-144x144.png b/favicon/ms-icon-144x144.png similarity index 100% rename from public/favicon/ms-icon-144x144.png rename to favicon/ms-icon-144x144.png diff --git a/public/favicon/ms-icon-150x150.png b/favicon/ms-icon-150x150.png similarity index 100% rename from public/favicon/ms-icon-150x150.png rename to favicon/ms-icon-150x150.png diff --git a/public/favicon/ms-icon-310x310.png b/favicon/ms-icon-310x310.png similarity index 100% rename from public/favicon/ms-icon-310x310.png rename to favicon/ms-icon-310x310.png diff --git a/public/favicon/ms-icon-70x70.png b/favicon/ms-icon-70x70.png similarity index 100% rename from public/favicon/ms-icon-70x70.png rename to favicon/ms-icon-70x70.png diff --git a/index.html b/index.html new file mode 100644 index 0000000..6c12a47 --- /dev/null +++ b/index.html @@ -0,0 +1,19 @@ + + + + + + Welcome | statetrain + + + + +
🚂🚃
STATETRAIN
Unlock and maintain tone.js context for all following pages / components
+ + + + + + + + \ No newline at end of file diff --git a/index.pageContext.json b/index.pageContext.json new file mode 100644 index 0000000..3b15f37 --- /dev/null +++ b/index.pageContext.json @@ -0,0 +1 @@ +{"abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","_pageId":"/pages/index","routeParams":{},"data":"!undefined"} \ No newline at end of file diff --git a/lib/constants.ts b/lib/constants.ts deleted file mode 100644 index c727ade..0000000 --- a/lib/constants.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { TransportConfigType } from '#lib/types' - -export const APP_CONFIG = { - // if you are using a cdn or a subdirectory, you can set it here accordingly - viteUrl: `${ - import.meta.env.PROD ? 'http://localhost:4248' : 'http://localhost:5247' - }${import.meta.env.BASE_URL.slice(0, -1)}`, -} - -export const TRANSPORT_CONFIG: TransportConfigType = { - bpm: { - default: 130, - min: 60, - max: 240, - }, - loop: { - default: true, - }, - timeSignature: { - default: 4, - min: 2, - max: 8, - }, - loopLength: { - default: 4, - min: 1, - max: 8, - }, - isPlaying: false, -} diff --git a/lib/tone/TonePortal.tsx b/lib/tone/TonePortal.tsx deleted file mode 100644 index 626487b..0000000 --- a/lib/tone/TonePortal.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { ReactNode, Suspense, useCallback, useMemo } from 'react' - -import Button from '#components/common/Button' -import useTone from '#tone/useTone' -import { setTransportDefaults } from '#tone/utils' - -/** - * This Portal is placed before tone.js is initialized and must be submitted before user can enter any of page-routed contents. - * It initializes Tone.js and provides the Tone.js context to all following pages / components. - */ -const TonePortal = ({ children }: { children: ReactNode }) => { - const { tone, setTone, setTransport } = useTone() - - // only after tone is initialized, the children are rendered - const toneMemo = useMemo(() => tone && {children}, [children, tone]) - - const handleClick = useCallback(async () => { - if (!setTone || !setTransport) return - - // async import - const toneModule = await import('tone') - - // get transport once & setting defaults - const toneTransport = toneModule.getTransport() - setTransportDefaults(toneTransport) - - // feed context - setTone(toneModule) - setTransport(toneTransport) - }, [setTone, setTransport]) - - return ( - toneMemo || ( -
-
-
🚂🚃
-
STATETRAIN
- -
- Unlock and maintain tone.js context for all following pages / components -
-
-
- ) - ) -} - -export default TonePortal diff --git a/lib/tone/context/ToneContextProvider.tsx b/lib/tone/context/ToneContextProvider.tsx deleted file mode 100644 index 9f38639..0000000 --- a/lib/tone/context/ToneContextProvider.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { createContext, ReactNode, useMemo, useState } from 'react' - -import { ToneType, TransportType } from '#lib/types' -import useInternalContextMetronome from '#tone/hooks/useInternalContextMetronome' - -export interface ToneContextGetter { - tone: ToneType | undefined - transport: TransportType | undefined -} - -export interface ToneContextSetter { - setTone: React.Dispatch> - setTransport: React.Dispatch> - setMetronome: () => void -} - -export type ToneContextValues = ToneContextGetter & ToneContextSetter - -export const ToneContext = createContext(undefined) - -const ToneContextProvider = ({ children }: { children: ReactNode }) => { - const [tone, setTone] = useState() - const [transport, setTransport] = useState() - - // we init and provide a internal hook here for the global metronome - const { setMetronome } = useInternalContextMetronome({ tone, transport }) - - const toneContextValue = useMemo( - () => ({ tone, setTone, transport, setTransport, setMetronome }), - [setMetronome, tone, transport], - ) - - return {children} -} - -export default ToneContextProvider diff --git a/lib/tone/hooks/useInternalContextMetronome.tsx b/lib/tone/hooks/useInternalContextMetronome.tsx deleted file mode 100644 index ec16050..0000000 --- a/lib/tone/hooks/useInternalContextMetronome.tsx +++ /dev/null @@ -1,54 +0,0 @@ -/** - * INTERNAL HOOK - * DO NOT IMPORT DIRECTLY - use useTone() - */ -import { useCallback, useRef } from 'react' - -import { ToneType, TransportType } from '#lib/types' - -const useInternalContextMetronome = ({ - tone, - transport, -}: { - tone?: ToneType - transport?: TransportType -}) => { - const metronomeMeasure = useRef(null) - const metronomeQuarterTick = useRef(null) - - const clearMetronome = useCallback(() => { - if (!tone || !transport) return - - if (metronomeMeasure.current !== null) { - transport.clear(metronomeMeasure.current) - metronomeMeasure.current = null - } - if (metronomeQuarterTick.current != null) { - transport.clear(metronomeQuarterTick.current) - metronomeQuarterTick.current = null - } - }, [tone, transport]) - - const setMetronome = useCallback(() => { - if (!tone || !transport) return - clearMetronome() - - const synth = new tone.Synth().toDestination() - const measure = transport.scheduleRepeat(time => { - synth.triggerAttackRelease('C5', '64n', time) - }, '1m') - metronomeMeasure.current = measure - - const synth2 = new tone.Synth().toDestination() - const quarter = transport.scheduleRepeat(time => { - synth2.triggerAttackRelease('C4', '64n', time) - }, '4n') - metronomeQuarterTick.current = quarter - }, [clearMetronome, tone, transport]) - - return { - setMetronome, - } as const -} - -export default useInternalContextMetronome diff --git a/lib/tone/hooks/useInternalToneContext.ts b/lib/tone/hooks/useInternalToneContext.ts deleted file mode 100644 index 79e062d..0000000 --- a/lib/tone/hooks/useInternalToneContext.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * INTERNAL HOOK - * DO NOT IMPORT DIRECTLY - use useTone() - */ -import { useContext } from 'react' - -import { ToneContext } from '#tone/context/ToneContextProvider' - -/** - * @private - * do not import directly - use useTone.ts - */ -const useInternalToneContext = () => { - const context = useContext(ToneContext) - const tone = context?.tone - const setTone = context?.setTone - const transport = context?.transport - const setTransport = context?.setTransport - const setMetronome = context?.setMetronome - - if (!context) { - throw new Error('tone must be used within the ToneContextProvider') - } - - return { tone, setTone, transport, setTransport, setMetronome } -} - -export default useInternalToneContext diff --git a/lib/tone/hooks/useInternalTransportStore.ts b/lib/tone/hooks/useInternalTransportStore.ts deleted file mode 100644 index 18d15de..0000000 --- a/lib/tone/hooks/useInternalTransportStore.ts +++ /dev/null @@ -1,40 +0,0 @@ -/** - * INTERNAL HOOK - * DO NOT IMPORT DIRECTLY - use useTone() - */ -import { create } from 'zustand' - -import { TRANSPORT_CONFIG } from '#lib/constants' - -export interface TransportStoreGetter { - bpm: number - timeSignature: number - loopLength: number - isPlaying: boolean -} - -export interface TransportStoreSetter { - setBpm: (payload: number | undefined) => void - setTimeSignature: (payload: number | undefined) => void - setLoopLength: (payload: number | undefined) => void - setIsPlaying: (payload: boolean | undefined) => void -} - -export type TransportStoreValues = TransportStoreGetter & TransportStoreSetter - -/** - * @private - * do not import directly - use useTone.ts - */ -const useInternalTransportStore = create()(set => ({ - bpm: TRANSPORT_CONFIG.bpm.default, - setBpm: payload => set(() => ({ bpm: payload })), - timeSignature: TRANSPORT_CONFIG.timeSignature.default, - setTimeSignature: payload => set(() => ({ timeSignature: payload })), - loopLength: TRANSPORT_CONFIG.loopLength.default, - setLoopLength: payload => set(() => ({ loopLength: payload })), - isPlaying: TRANSPORT_CONFIG.isPlaying, - setIsPlaying: payload => set(() => ({ isPlaying: payload })), -})) - -export default useInternalTransportStore diff --git a/lib/tone/useTone.ts b/lib/tone/useTone.ts deleted file mode 100644 index bdd1f9b..0000000 --- a/lib/tone/useTone.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { useCallback } from 'react' - -import { TRANSPORT_CONFIG } from '#lib/constants' -import { ToneContextValues } from '#tone/context/ToneContextProvider' -import useInternalToneContext from '#tone/hooks/useInternalToneContext' -import useInternalTransportStore, { - TransportStoreGetter, -} from '#tone/hooks/useInternalTransportStore' - -interface UseToneCallbacks { - handlePlay: () => void - handleStop: () => void - handleChangeBpm: (value: number) => void - handleChangeTimeSignature: (value: number) => void -} - -// intersection of tone context member functions and Zustand getters (setters are only used internally in this hook) -type UseToneValues = UseToneCallbacks & ToneContextValues & TransportStoreGetter - -/** - * Custom hook for managing tone and transport settings. - * Mainly retriving data from the ToneContext (tone, transport) and TransportStore (serialized data like bpm, isPlaying, etc). - * @returns An object containing various tone and transport settings and functions. - */ -const useTone = () => { - // the one and only invoke of useToneContext + useTransportStore - const { transport, tone, setMetronome, setTone, setTransport } = useInternalToneContext() - const { setIsPlaying, setBpm, setTimeSignature, isPlaying, loopLength, bpm, timeSignature } = - useInternalTransportStore() - - /** starts the transport and sets UI state */ - const handlePlay = useCallback(() => { - transport?.start() - setIsPlaying(true) - }, [setIsPlaying, transport]) - - /** stops the transport and sets UI state */ - const handleStop = useCallback(() => { - transport?.stop() - setIsPlaying(false) - }, [setIsPlaying, transport]) - - /** change transport bpm and sets UI state */ - const handleChangeBpm = useCallback( - (value: number) => { - if (value && value <= TRANSPORT_CONFIG.bpm.max && value >= TRANSPORT_CONFIG.bpm.min) { - if (transport) { - transport.bpm.value = value - setBpm(value) - } - } - }, - [setBpm, transport], - ) - - /** stop transport, set signature, recalculate and sets UI state */ - const handleChangeTimeSignature = useCallback( - (value: number) => { - if ( - transport && - setMetronome && - value && - value <= TRANSPORT_CONFIG.timeSignature.max && - value >= TRANSPORT_CONFIG.timeSignature.min - ) { - if (isPlaying) { - handleStop() - } - - transport.timeSignature = value - transport.loopEnd = `${loopLength}m` - setTimeSignature(value) - setMetronome() - } - }, - [handleStop, isPlaying, loopLength, setMetronome, setTimeSignature, transport], - ) - - return { - transport, - tone, - isPlaying, - loopLength, - bpm, - timeSignature, - setTransport, - setTone, - setMetronome, - handlePlay, - handleStop, - handleChangeBpm, - handleChangeTimeSignature, - } as UseToneValues -} - -export default useTone diff --git a/lib/tone/utils.ts b/lib/tone/utils.ts deleted file mode 100644 index 57d16c3..0000000 --- a/lib/tone/utils.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { TRANSPORT_CONFIG } from '#lib/constants' -import { TransportType } from '#lib/types' - -export const setTransportDefaults = (transport: TransportType) => { - transport.loop = TRANSPORT_CONFIG.loop.default - transport.loopEnd = `${TRANSPORT_CONFIG.loopLength.default}m` - transport.bpm.value = TRANSPORT_CONFIG.bpm.default - transport.timeSignature = TRANSPORT_CONFIG.timeSignature.default -} diff --git a/lib/types.d.ts b/lib/types.d.ts deleted file mode 100644 index da29c5b..0000000 --- a/lib/types.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -// type definitions for the whole app - -import * as Tone from 'tone' -import { TransportClass } from 'tone/build/esm/core/clock/Transport' - -// convinient types for the Tone.js context -export type ToneType = typeof Tone -export type TransportType = TransportClass - -export type TransportConfigType = { - bpm: { - default: number - min: number - max: number - } - loop: { - default: boolean - } - timeSignature: { - default: number - min: number - max: number - } - loopLength: { - default: number - min: number - max: number - } - isPlaying: boolean -} diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 51d2d4c..0000000 --- a/package-lock.json +++ /dev/null @@ -1,5543 +0,0 @@ -{ - "name": "richard-unterberg.github.io.git", - "version": "1.1.1", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "requires": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "@antfu/install-pkg": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.1.1.tgz", - "integrity": "sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==", - "dev": true, - "requires": { - "execa": "^5.1.1", - "find-up": "^5.0.0" - }, - "dependencies": { - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "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 - }, - "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 - }, - "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, - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "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 - }, - "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 - } - } - }, - "@antfu/utils": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.7.tgz", - "integrity": "sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==", - "dev": true - }, - "@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", - "dev": true, - "requires": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" - } - }, - "@babel/compat-data": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", - "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", - "dev": true - }, - "@babel/core": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.3.tgz", - "integrity": "sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.1", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.1", - "@babel/parser": "^7.24.1", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz", - "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==", - "dev": true, - "requires": { - "@babel/types": "^7.24.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.4.tgz", - "integrity": "sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.24.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dev": true, - "requires": { - "@babel/types": "^7.23.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", - "dev": true, - "requires": { - "@babel/types": "^7.24.0" - } - }, - "@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", - "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==" - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" - }, - "@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz", - "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==", - "dev": true, - "requires": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0" - } - }, - "@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - } - }, - "@babel/parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", - "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==" - }, - "@babel/plugin-syntax-jsx": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", - "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", - "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", - "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-simple-access": "^7.22.5" - } - }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz", - "integrity": "sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==", - "requires": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==" - } - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz", - "integrity": "sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==" - } - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.4.tgz", - "integrity": "sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.24.4", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-typescript": "^7.24.1" - } - }, - "@babel/preset-typescript": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.1.tgz", - "integrity": "sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-syntax-jsx": "^7.24.1", - "@babel/plugin-transform-modules-commonjs": "^7.24.1", - "@babel/plugin-transform-typescript": "^7.24.1" - } - }, - "@babel/runtime": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", - "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.14.0" - } - }, - "@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" - } - }, - "@babel/traverse": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", - "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.24.1", - "@babel/generator": "^7.24.1", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.1", - "@babel/types": "^7.24.0", - "debug": "^4.3.1", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, - "@brillout/import": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@brillout/import/-/import-0.2.3.tgz", - "integrity": "sha512-1T8WlD75eeFSMrptGy8jiLHmfHgMmSjWvLOIUvHmSVZt+6k0eQqYUoK4KbmE4T9pVLIfxvZSOm2D68VEqKRHRw==" - }, - "@brillout/json-serializer": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/@brillout/json-serializer/-/json-serializer-0.5.10.tgz", - "integrity": "sha512-3bh/MS5pudu3H9l3a0KAE1RBfy/L95JWAEo8b2mPBN3H98wzCHYzgjQb9xRl58y+Kc7FgkjApgCFJV+zR06P5Q==" - }, - "@brillout/picocolors": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/@brillout/picocolors/-/picocolors-1.0.13.tgz", - "integrity": "sha512-LblvMKItHbvkaIMI+Awsk1EEjmReE8E8Mgjtj3Pdn/qBvwQ6e+ts5uEqG6iTrK6JWndcxrQgSe664KfoteN6fA==" - }, - "@brillout/require-shim": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@brillout/require-shim/-/require-shim-0.1.2.tgz", - "integrity": "sha512-3I4LRHnVZXoSAsEoni5mosq9l6eiJED58d9V954W4CIZ88AUfYBanWGBGbJG3NztaRTpFHEA6wB3Hn93BmmJdg==" - }, - "@brillout/vite-plugin-server-entry": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/@brillout/vite-plugin-server-entry/-/vite-plugin-server-entry-0.4.7.tgz", - "integrity": "sha512-G/wHFx/JdFUA9kPSPDT0nIJH1wmgIwUIY27RL4N6EaHeaXgN4zSCBZTNvvKHyojvMxMw825m4vE0VksHXLyOng==", - "requires": { - "@brillout/import": "^0.2.3" - } - }, - "@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", - "optional": true - }, - "@esbuild/android-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", - "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", - "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", - "optional": true - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "dev": true - }, - "@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "dev": true - }, - "@ianvs/prettier-plugin-sort-imports": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@ianvs/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.2.1.tgz", - "integrity": "sha512-NKN1LVFWUDGDGr3vt+6Ey3qPeN/163uR1pOPAlkWpgvAqgxQ6kSdUf1F0it8aHUtKRUzEGcK38Wxd07O61d7+Q==", - "dev": true, - "requires": { - "@babel/core": "^7.24.0", - "@babel/generator": "^7.23.6", - "@babel/parser": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0", - "semver": "^7.5.2" - } - }, - "@iconify/types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", - "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", - "dev": true - }, - "@iconify/utils": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.1.22.tgz", - "integrity": "sha512-6UHVzTVXmvO8uS6xFF+L/QTSpTzA/JZxtgU+KYGFyDYMEObZ1bu/b5l+zNJjHy+0leWjHI+C0pXlzGvv3oXZMA==", - "dev": true, - "requires": { - "@antfu/install-pkg": "^0.1.1", - "@antfu/utils": "^0.7.5", - "@iconify/types": "^2.0.0", - "debug": "^4.3.4", - "kolorist": "^1.8.0", - "local-pkg": "^0.5.0", - "mlly": "^1.5.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "requires": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" - }, - "@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", - "dev": true - }, - "@polka/url": { - "version": "1.0.0-next.25", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", - "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==" - }, - "@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", - "dev": true, - "requires": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - } - }, - "@rollup/rollup-android-arm-eabi": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz", - "integrity": "sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-android-arm64": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.1.tgz", - "integrity": "sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==", - "dev": true, - "optional": true - }, - "@rollup/rollup-darwin-arm64": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.1.tgz", - "integrity": "sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-darwin-x64": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.1.tgz", - "integrity": "sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.1.tgz", - "integrity": "sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm-musleabihf": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.1.tgz", - "integrity": "sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm64-gnu": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.1.tgz", - "integrity": "sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm64-musl": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.1.tgz", - "integrity": "sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.1.tgz", - "integrity": "sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.1.tgz", - "integrity": "sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-s390x-gnu": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.1.tgz", - "integrity": "sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-x64-gnu": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz", - "integrity": "sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-x64-musl": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz", - "integrity": "sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-arm64-msvc": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.1.tgz", - "integrity": "sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-ia32-msvc": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.1.tgz", - "integrity": "sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-x64-msvc": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz", - "integrity": "sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==", - "dev": true, - "optional": true - }, - "@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "requires": { - "@babel/types": "^7.20.7" - } - }, - "@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "@types/node": { - "version": "20.12.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", - "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", - "dev": true, - "requires": { - "undici-types": "~5.26.4" - } - }, - "@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", - "dev": true - }, - "@types/react": { - "version": "18.2.75", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.75.tgz", - "integrity": "sha512-+DNnF7yc5y0bHkBTiLKqXFe+L4B3nvOphiMY3tuA5X10esmjqk7smyBZzbGTy2vsiy/Bnzj8yFIBL8xhRacoOg==", - "dev": true, - "requires": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "@types/react-dom": { - "version": "18.2.24", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.24.tgz", - "integrity": "sha512-cN6upcKd8zkGy4HU9F1+/s98Hrp6D4MOcippK4PoE8OZRngohHZpbJn1GsaDLz87MqvHNoT13nHvNqM9ocRHZg==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", - "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/type-utils": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - } - }, - "@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", - "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - } - }, - "@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - } - }, - "@typescript-eslint/utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "semver": "^7.5.4" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" - } - }, - "@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "@unocss/astro": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/astro/-/astro-0.59.2.tgz", - "integrity": "sha512-vchGjdGxwDELAWJX6Ql5FCg+eDsJmT4Pn752h4oCy6cZHq/0i4p+CovT/Rb8AkfCpCW+DtdjKRRhfAnmKjJquQ==", - "dev": true, - "requires": { - "@unocss/core": "0.59.2", - "@unocss/reset": "0.59.2", - "@unocss/vite": "0.59.2" - } - }, - "@unocss/cli": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/cli/-/cli-0.59.2.tgz", - "integrity": "sha512-B7DjC49obmf9LXDxlAcy+K4ItYYgjHUALv+PVzPRcFml2H1DqSSWmOAHmbr12a81MWXXRlS1s7Z24LKqX6vFKg==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.3.0", - "@rollup/pluginutils": "^5.1.0", - "@unocss/config": "0.59.2", - "@unocss/core": "0.59.2", - "@unocss/preset-uno": "0.59.2", - "cac": "^6.7.14", - "chokidar": "^3.6.0", - "colorette": "^2.0.20", - "consola": "^3.2.3", - "fast-glob": "^3.3.2", - "magic-string": "^0.30.9", - "pathe": "^1.1.2", - "perfect-debounce": "^1.0.0" - } - }, - "@unocss/config": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/config/-/config-0.59.2.tgz", - "integrity": "sha512-KknR9kcid1w/8IuujZ8msE5pU930GD5e2v84H9Ftcv308yfuj+j/0zQ/ORtG8qMx+97p7uFy3xspzI2yoRYRpQ==", - "dev": true, - "requires": { - "@unocss/core": "0.59.2", - "unconfig": "^0.3.12" - } - }, - "@unocss/core": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/core/-/core-0.59.2.tgz", - "integrity": "sha512-0NtauY7v5bG0UIcvIABWnD2ssD5b9UcFkyw4iRIsT9NvR0e7QqGIOvZEg5XN0j25o50GtxlotMmTAAiaazHZ0Q==", - "dev": true - }, - "@unocss/extractor-arbitrary-variants": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/extractor-arbitrary-variants/-/extractor-arbitrary-variants-0.59.2.tgz", - "integrity": "sha512-v+1cdybFmi7sRUG8/B2vSVaBi/CgViithbiwjTjzeKETA5Cw/pWgk1Rf/MDu4jfux4MZ0+mLULm20HSUg0oXdg==", - "dev": true, - "requires": { - "@unocss/core": "0.59.2" - } - }, - "@unocss/inspector": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/inspector/-/inspector-0.59.2.tgz", - "integrity": "sha512-9BbtPrxYZVazODkNM5pZJ0j0XXIxdWxwG7PigyqJCBJbtUyM35jEZRQPNKAeGAlcnxoZE6UAJneG1M+BgFZt/w==", - "dev": true, - "requires": { - "@unocss/core": "0.59.2", - "@unocss/rule-utils": "0.59.2", - "gzip-size": "^6.0.0", - "sirv": "^2.0.4" - } - }, - "@unocss/postcss": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/postcss/-/postcss-0.59.2.tgz", - "integrity": "sha512-9pRixhnL9B1sdhzY7zlhnBXc8nVNwDCT4nMQRgSdWNvT76dImVv1N3609veIrCfLEHQJi52Juo//trSNLjUzZQ==", - "dev": true, - "requires": { - "@unocss/config": "0.59.2", - "@unocss/core": "0.59.2", - "@unocss/rule-utils": "0.59.2", - "css-tree": "^2.3.1", - "fast-glob": "^3.3.2", - "magic-string": "^0.30.9", - "postcss": "^8.4.38" - } - }, - "@unocss/preset-attributify": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/preset-attributify/-/preset-attributify-0.59.2.tgz", - "integrity": "sha512-iQsKoQAaEwosqe9199rhlZqUeRZ3A39QKqLNxLRf+zkiIQaL0yHlsTYVg9VjbiEb8A1JDi7nHDgZNRBJRyb3nQ==", - "dev": true, - "requires": { - "@unocss/core": "0.59.2" - } - }, - "@unocss/preset-icons": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/preset-icons/-/preset-icons-0.59.2.tgz", - "integrity": "sha512-Qg/zXqzlt0qLdC7DmDVilX0gdgiM1IPqy+fZ8sAfWy3CtAfMIg4rSHn3qELZdExGvp0WfnkLC+q0t7AwyVyQPw==", - "dev": true, - "requires": { - "@iconify/utils": "^2.1.22", - "@unocss/core": "0.59.2", - "ofetch": "^1.3.4" - } - }, - "@unocss/preset-mini": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/preset-mini/-/preset-mini-0.59.2.tgz", - "integrity": "sha512-OFFPNyuuQcPJU4lIE1nQXnmH6uOuinA0+bCAjyB6/1Bj7LCLJGPqdviud/to6cLT90PUsKTIG2TTEQisO3CWAQ==", - "dev": true, - "requires": { - "@unocss/core": "0.59.2", - "@unocss/extractor-arbitrary-variants": "0.59.2", - "@unocss/rule-utils": "0.59.2" - } - }, - "@unocss/preset-tagify": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/preset-tagify/-/preset-tagify-0.59.2.tgz", - "integrity": "sha512-/dhu5G3P0084wn+gxqaLpChv8EyXh9q070uYUxdzNjmZgZ0JDZaeSrcfiyzLJO5RoYCyJNAsp32mBK+//N3XPg==", - "dev": true, - "requires": { - "@unocss/core": "0.59.2" - } - }, - "@unocss/preset-typography": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/preset-typography/-/preset-typography-0.59.2.tgz", - "integrity": "sha512-02NSGlEhxSDYl58ZiorP4EUiFI5z+j9ez5XjF+FKrZwK2J/L3/DRXcW00n9ERhtc44H6RP2Laj3X7sH8ggJ37A==", - "dev": true, - "requires": { - "@unocss/core": "0.59.2", - "@unocss/preset-mini": "0.59.2" - } - }, - "@unocss/preset-uno": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/preset-uno/-/preset-uno-0.59.2.tgz", - "integrity": "sha512-+decQShFqTz00w6rpNRQZEZm8PV1MHHs0thUNaooBUF+pISNhJlXJisE2rz4V7KVCCMgZZTRtyPZxmblGVXbJg==", - "dev": true, - "requires": { - "@unocss/core": "0.59.2", - "@unocss/preset-mini": "0.59.2", - "@unocss/preset-wind": "0.59.2", - "@unocss/rule-utils": "0.59.2" - } - }, - "@unocss/preset-web-fonts": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/preset-web-fonts/-/preset-web-fonts-0.59.2.tgz", - "integrity": "sha512-F7NTjDnmmWlu/NlFjtFR92PnONGax1geXFQFb/dh7QlEBZiVe/qzHRtKLtsYaOGSPr5CSamo0LORx4wug7gjIA==", - "dev": true, - "requires": { - "@unocss/core": "0.59.2", - "ofetch": "^1.3.4" - } - }, - "@unocss/preset-wind": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/preset-wind/-/preset-wind-0.59.2.tgz", - "integrity": "sha512-LbdsxU8M90guqV4e7K1weDp3wWcSwzcSmxkogSI/R818SJgnocv4eNzeIR5/mbZu8y8ENtEiE8rEYL1jA6L2GQ==", - "dev": true, - "requires": { - "@unocss/core": "0.59.2", - "@unocss/preset-mini": "0.59.2", - "@unocss/rule-utils": "0.59.2" - } - }, - "@unocss/reset": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/reset/-/reset-0.59.2.tgz", - "integrity": "sha512-xEo2ogs42FlNUca3BiPesGg9/FevJ6cmkxnzzbwlqIEeZjiCH6o+nGdNNUbi6p+gto2P9v4L8ZOeMFYQCwpFzg==", - "dev": true - }, - "@unocss/rule-utils": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/rule-utils/-/rule-utils-0.59.2.tgz", - "integrity": "sha512-2F1Q1pCfeG65GxPEhGQDZXXoZk38fX4o5LOYf35XkknhjQmkaeK76szVYXLDoyK30n9EiwXqoc0MdKrGjeCMUA==", - "dev": true, - "requires": { - "@unocss/core": "^0.59.2", - "magic-string": "^0.30.9" - } - }, - "@unocss/scope": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/scope/-/scope-0.59.2.tgz", - "integrity": "sha512-V6ZS+QonrmqRfZ1/oYmEusASBjbbO+eeL+Fau3bh8IZyPq2HkngJvLNwcyQUPk3/pH18anuzBktSYP0BD2GsKA==", - "dev": true - }, - "@unocss/transformer-attributify-jsx": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/transformer-attributify-jsx/-/transformer-attributify-jsx-0.59.2.tgz", - "integrity": "sha512-mqcA02tkgeEdMH99K3YJFwHhyT/qvM/0+amfZ3nYlNAiiyCumdb980fSdUvx/cTyXmnocD6tG+UPnx2kD3zdQg==", - "dev": true, - "requires": { - "@unocss/core": "0.59.2" - } - }, - "@unocss/transformer-attributify-jsx-babel": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/transformer-attributify-jsx-babel/-/transformer-attributify-jsx-babel-0.59.2.tgz", - "integrity": "sha512-tFFncKR9WkGs8asi00lboVbQ/GjHWrE3YBY1GCrSZpeW+XOpGkkEEo03ncVW2c2s0ie4Zl5T7UWcRzFY8gyITQ==", - "dev": true, - "requires": { - "@babel/core": "^7.24.4", - "@babel/plugin-syntax-jsx": "^7.24.1", - "@babel/preset-typescript": "^7.24.1", - "@unocss/core": "0.59.2" - }, - "dependencies": { - "@babel/core": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", - "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.4", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.4", - "@babel/parser": "^7.24.4", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - } - }, - "@babel/generator": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", - "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", - "dev": true, - "requires": { - "@babel/types": "^7.24.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - } - }, - "@babel/helpers": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", - "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", - "dev": true, - "requires": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0" - } - }, - "@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", - "dev": true - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "@unocss/transformer-compile-class": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/transformer-compile-class/-/transformer-compile-class-0.59.2.tgz", - "integrity": "sha512-yXKoAJU0QcRx3c2XAalHgcVculIPDRCanBm5A3XZPp35eKhcni3VedzUQY6RYFfoETOgQ5x0SV73Ttbj/zvZBQ==", - "dev": true, - "requires": { - "@unocss/core": "0.59.2" - } - }, - "@unocss/transformer-directives": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/transformer-directives/-/transformer-directives-0.59.2.tgz", - "integrity": "sha512-FiLcBtwUIUNFpE2SxeUeslJGShHimOJyk30+m2BP+Af7QsxcamWb8/w7YKRMz5MAmE6ZnzAzx/ZAdrK540ho0A==", - "dev": true, - "requires": { - "@unocss/core": "0.59.2", - "@unocss/rule-utils": "0.59.2", - "css-tree": "^2.3.1" - } - }, - "@unocss/transformer-variant-group": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/transformer-variant-group/-/transformer-variant-group-0.59.2.tgz", - "integrity": "sha512-nlEI5ts2YVKvL0dFaIozFIefPUTDZhYCNS6Oie5DPVXDTVufkh9OinLiCo/2ggytkY/VZL00wJm6Iknrp7HL7Q==", - "dev": true, - "requires": { - "@unocss/core": "0.59.2" - } - }, - "@unocss/vite": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/@unocss/vite/-/vite-0.59.2.tgz", - "integrity": "sha512-cCATFcyoHKr/5c/ccnwhtYoUA42v+SXp2xmpR4hgE0U4WFgGqIYOx5pzWap73DbywQJuU0hklq7lgvO9b+L/sQ==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.3.0", - "@rollup/pluginutils": "^5.1.0", - "@unocss/config": "0.59.2", - "@unocss/core": "0.59.2", - "@unocss/inspector": "0.59.2", - "@unocss/scope": "0.59.2", - "@unocss/transformer-directives": "0.59.2", - "chokidar": "^3.6.0", - "fast-glob": "^3.3.2", - "magic-string": "^0.30.9" - } - }, - "@vitejs/plugin-react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", - "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", - "requires": { - "@babel/core": "^7.24.5", - "@babel/plugin-transform-react-jsx-self": "^7.24.5", - "@babel/plugin-transform-react-jsx-source": "^7.24.1", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.2" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", - "requires": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" - } - }, - "@babel/compat-data": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", - "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==" - }, - "@babel/core": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", - "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helpers": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - } - }, - "@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", - "requires": { - "@babel/types": "^7.24.7", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", - "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", - "requires": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", - "requires": { - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-function-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", - "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", - "requires": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", - "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", - "requires": { - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", - "requires": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", - "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", - "requires": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" - } - }, - "@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", - "requires": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", - "requires": { - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==" - }, - "@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==" - }, - "@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==" - }, - "@babel/helpers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", - "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", - "requires": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "requires": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - } - }, - "@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==" - }, - "@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", - "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", - "debug": "^4.3.1", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", - "requires": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - } - } - }, - "acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==" - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-escapes": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", - "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", - "dev": true - }, - "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 - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dev": true, - "requires": { - "dequal": "^2.0.3" - } - }, - "array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dev": true, - "requires": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - } - }, - "array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - } - }, - "array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - } - }, - "array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.toreversed": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", - "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.tosorted": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", - "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", - "dev": true, - "requires": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.1.0", - "es-shim-unscopables": "^1.0.2" - } - }, - "arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - } - }, - "ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true - }, - "automation-events": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/automation-events/-/automation-events-7.0.6.tgz", - "integrity": "sha512-3tFP+Xrk0u0JWdGEvJGtW9oUdWOnX1v6RwFapgIwanBvn21yCzgBMe+FlAPW+3kIQsxIDV9mFw//BzrGXOJQ5A==", - "requires": { - "@babel/runtime": "^7.24.7", - "tslib": "^2.6.3" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", - "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", - "requires": { - "regenerator-runtime": "^0.14.0" - } - }, - "tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - } - } - }, - "available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "requires": { - "possible-typed-array-names": "^1.0.0" - } - }, - "axe-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", - "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", - "dev": true - }, - "axobject-query": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", - "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", - "dev": true, - "requires": { - "dequal": "^2.0.3" - } - }, - "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 - }, - "binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true - }, - "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, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "requires": { - "fill-range": "^7.1.1" - } - }, - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==" - }, - "call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001600", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", - "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dev": true, - "requires": { - "restore-cursor": "^4.0.0" - } - }, - "cli-truncate": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", - "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", - "dev": true, - "requires": { - "slice-ansi": "^5.0.0", - "string-width": "^7.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true - }, - "consola": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", - "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", - "dev": true - }, - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, - "requires": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - } - }, - "csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "dev": true - }, - "damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true - }, - "data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - } - }, - "data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - } - }, - "data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "dev": true, - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - } - }, - "define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "defu": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", - "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", - "dev": true - }, - "dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true - }, - "destr": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz", - "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==" - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.717", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.717.tgz", - "integrity": "sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==" - }, - "emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true - }, - "enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "es-abstract": { - "version": "1.23.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.2.tgz", - "integrity": "sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.5", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - } - }, - "es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.4" - } - }, - "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 - }, - "es-iterator-helpers": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz", - "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.1.2" - } - }, - "es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==" - }, - "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, - "requires": { - "es-errors": "^1.3.0" - } - }, - "es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - } - }, - "es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "requires": { - "hasown": "^2.0.0" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "requires": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - }, - "dependencies": { - "@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "dev": true, - "optional": true - } - } - }, - "escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==" - }, - "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==" - }, - "eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "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, - "requires": { - "color-convert": "^2.0.1" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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, - "requires": { - "color-name": "~1.1.4" - } - }, - "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 - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "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 - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "eslint-config-airbnb": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz", - "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==", - "dev": true, - "requires": { - "eslint-config-airbnb-base": "^15.0.0", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5" - } - }, - "eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "dev": true, - "requires": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "eslint-config-airbnb-typescript": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.1.0.tgz", - "integrity": "sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==", - "dev": true, - "requires": { - "eslint-config-airbnb-base": "^15.0.0" - } - }, - "eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "dev": true - }, - "eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-import-resolver-typescript": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", - "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", - "dev": true, - "requires": { - "debug": "^4.3.4", - "enhanced-resolve": "^5.12.0", - "eslint-module-utils": "^2.7.4", - "fast-glob": "^3.3.1", - "get-tsconfig": "^4.5.0", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3" - } - }, - "eslint-module-utils": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", - "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", - "dev": true, - "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", - "dev": true, - "requires": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", - "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.23.2", - "aria-query": "^5.3.0", - "array-includes": "^3.1.7", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "=4.7.0", - "axobject-query": "^3.2.1", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "es-iterator-helpers": "^1.0.15", - "hasown": "^2.0.0", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "eslint-plugin-prettier": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", - "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", - "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.6" - } - }, - "eslint-plugin-react": { - "version": "7.34.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", - "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", - "dev": true, - "requires": { - "array-includes": "^3.1.7", - "array.prototype.findlast": "^1.2.4", - "array.prototype.flatmap": "^1.3.2", - "array.prototype.toreversed": "^1.1.2", - "array.prototype.tosorted": "^1.1.3", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.17", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7", - "object.hasown": "^1.1.3", - "object.values": "^1.1.7", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.10" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "dev": true - }, - "eslint-plugin-react-refresh": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.6.tgz", - "integrity": "sha512-NjGXdm7zgcKRkKMua34qVO9doI7VOxZ6ancSvBELJSSoX97jyndXcSoa8XBh69JoB31dNz3EEzlMcizZl7LaMA==", - "dev": true - }, - "eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - }, - "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "requires": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - } - }, - "esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "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==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true - }, - "execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true - }, - "fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "requires": { - "reusify": "^1.0.4" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, - "requires": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "optional": true - }, - "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 - }, - "function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" - }, - "get-east-asian-width": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - }, - "get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "dev": true, - "requires": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - } - }, - "get-tsconfig": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz", - "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==", - "dev": true, - "requires": { - "resolve-pkg-maps": "^1.0.0" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "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 - }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "dev": true, - "requires": { - "duplexer": "^0.1.2" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "requires": { - "es-define-property": "^1.0.0" - } - }, - "has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.3" - } - }, - "hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "requires": { - "function-bind": "^1.1.2" - } - }, - "human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true - }, - "husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", - "dev": true - }, - "ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "dev": true, - "requires": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - } - }, - "is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - } - }, - "is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, - "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "requires": { - "hasown": "^2.0.0" - } - }, - "is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", - "dev": true, - "requires": { - "is-typed-array": "^1.1.13" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" - }, - "is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true - }, - "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "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 - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true - }, - "is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "dev": true, - "requires": { - "call-bind": "^1.0.7" - } - }, - "is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", - "dev": true, - "requires": { - "which-typed-array": "^1.1.14" - } - }, - "is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" - } - }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "isbot-fast": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/isbot-fast/-/isbot-fast-1.2.0.tgz", - "integrity": "sha512-twjuQzy2gKMDVfKGQyQqrx6Uy4opu/fiVUTTpdqtFsd7OQijIp5oXvb27n5EemYXaijh5fomndJt/SPRLsEdSg==" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", - "dev": true, - "requires": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" - } - }, - "jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" - }, - "jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true - }, - "jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dev": true, - "requires": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - } - }, - "keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "kolorist": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", - "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", - "dev": true - }, - "language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", - "dev": true - }, - "language-tags": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", - "dev": true, - "requires": { - "language-subtag-registry": "^0.3.20" - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", - "dev": true - }, - "lint-staged": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.2.tgz", - "integrity": "sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==", - "dev": true, - "requires": { - "chalk": "5.3.0", - "commander": "11.1.0", - "debug": "4.3.4", - "execa": "8.0.1", - "lilconfig": "3.0.0", - "listr2": "8.0.1", - "micromatch": "4.0.5", - "pidtree": "0.6.0", - "string-argv": "0.3.2", - "yaml": "2.3.4" - }, - "dependencies": { - "chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true - } - } - }, - "listr2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.0.1.tgz", - "integrity": "sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==", - "dev": true, - "requires": { - "cli-truncate": "^4.0.0", - "colorette": "^2.0.20", - "eventemitter3": "^5.0.1", - "log-update": "^6.0.0", - "rfdc": "^1.3.0", - "wrap-ansi": "^9.0.0" - } - }, - "local-pkg": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", - "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", - "dev": true, - "requires": { - "mlly": "^1.4.2", - "pkg-types": "^1.0.3" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "log-update": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz", - "integrity": "sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==", - "dev": true, - "requires": { - "ansi-escapes": "^6.2.0", - "cli-cursor": "^4.0.0", - "slice-ansi": "^7.0.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", - "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", - "dev": true, - "requires": { - "get-east-asian-width": "^1.0.0" - } - }, - "slice-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", - "dev": true, - "requires": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" - } - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "lucide-react": { - "version": "0.367.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.367.0.tgz", - "integrity": "sha512-3FWiBaJiqMrx5a1sjH3CVdPqWnw/Z/PTVeeTDmOeILSs+8Ah+VhCd4FQMeHo6Z0WxHcm9piIOtilQwvceiCCKQ==" - }, - "magic-string": { - "version": "0.30.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.9.tgz", - "integrity": "sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==", - "dev": true, - "requires": { - "@jridgewell/sourcemap-codec": "^1.4.15" - } - }, - "mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true - }, - "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 - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true - }, - "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "mlly": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.6.1.tgz", - "integrity": "sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==", - "dev": true, - "requires": { - "acorn": "^8.11.3", - "pathe": "^1.1.2", - "pkg-types": "^1.0.3", - "ufo": "^1.3.2" - } - }, - "mrmime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node-fetch-native": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.4.tgz", - "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==", - "dev": true - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "requires": { - "path-key": "^4.0.0" - }, - "dependencies": { - "path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true - } - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, - "object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - } - }, - "object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - } - }, - "object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - } - }, - "object.hasown": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", - "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", - "dev": true, - "requires": { - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - } - }, - "object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - } - }, - "ofetch": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.3.4.tgz", - "integrity": "sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==", - "dev": true, - "requires": { - "destr": "^2.0.3", - "node-fetch-native": "^1.6.3", - "ufo": "^1.5.3" - } - }, - "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, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "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 - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pathe": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", - "dev": true - }, - "perfect-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", - "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", - "dev": true - }, - "pkg-types": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", - "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", - "dev": true, - "requires": { - "jsonc-parser": "^3.2.0", - "mlly": "^1.2.0", - "pathe": "^1.1.0" - } - }, - "possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "dev": true - }, - "postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "dev": true, - "requires": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", - "dev": true - }, - "prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "requires": { - "fast-diff": "^1.1.2" - } - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "requires": { - "loose-envify": "^1.1.0" - } - }, - "react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "requires": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "react-refresh": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", - "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==" - }, - "react-streaming": { - "version": "0.3.42", - "resolved": "https://registry.npmjs.org/react-streaming/-/react-streaming-0.3.42.tgz", - "integrity": "sha512-HiJYIB9RgSB0iC7PuJLRn/a4qGo92ZkWooLdpLRbo5lRJwC9xriVTKZ8xz5EXiS/43O3wvnefrV8dS8oDtll9w==", - "requires": { - "@brillout/import": "^0.2.3", - "@brillout/json-serializer": "^0.5.1", - "@brillout/picocolors": "^1.0.11", - "isbot-fast": "1.2.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "reflect.getprototypeof": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", - "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.1", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" - } - }, - "regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, - "regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "dev": true, - "requires": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - } - }, - "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true - }, - "restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "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 - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "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 - } - } - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "rfdc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", - "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rollup": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.1.tgz", - "integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==", - "dev": true, - "requires": { - "@rollup/rollup-android-arm-eabi": "4.18.1", - "@rollup/rollup-android-arm64": "4.18.1", - "@rollup/rollup-darwin-arm64": "4.18.1", - "@rollup/rollup-darwin-x64": "4.18.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.18.1", - "@rollup/rollup-linux-arm-musleabihf": "4.18.1", - "@rollup/rollup-linux-arm64-gnu": "4.18.1", - "@rollup/rollup-linux-arm64-musl": "4.18.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.18.1", - "@rollup/rollup-linux-riscv64-gnu": "4.18.1", - "@rollup/rollup-linux-s390x-gnu": "4.18.1", - "@rollup/rollup-linux-x64-gnu": "4.18.1", - "@rollup/rollup-linux-x64-musl": "4.18.1", - "@rollup/rollup-win32-arm64-msvc": "4.18.1", - "@rollup/rollup-win32-ia32-msvc": "4.18.1", - "@rollup/rollup-win32-x64-msvc": "4.18.1", - "@types/estree": "1.0.5", - "fsevents": "~2.3.2" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - } - }, - "safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", - "dev": true, - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - } - }, - "scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "requires": { - "loose-envify": "^1.1.0" - } - }, - "semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - } - }, - "set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - } - }, - "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, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "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 - }, - "side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - } - }, - "signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true - }, - "sirv": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", - "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", - "requires": { - "@polka/url": "^1.0.0-next.24", - "mrmime": "^2.0.0", - "totalist": "^3.0.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "standardized-audio-context": { - "version": "25.3.73", - "resolved": "https://registry.npmjs.org/standardized-audio-context/-/standardized-audio-context-25.3.73.tgz", - "integrity": "sha512-PiFIweBipW18uz0rNrXs8A7MzdCcVcEHiqf0B5RzwBIgp0eSb3Cj11HcWidrgR0XYeEogokcMsIbrVjy63mhoA==", - "requires": { - "@babel/runtime": "^7.24.7", - "automation-events": "^7.0.6", - "tslib": "^2.6.3" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", - "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", - "requires": { - "regenerator-runtime": "^0.14.0" - } - }, - "tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - } - } - }, - "string-argv": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", - "dev": true - }, - "string-width": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", - "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", - "dev": true, - "requires": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "string.prototype.matchall": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", - "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "regexp.prototype.flags": "^1.5.2", - "set-function-name": "^2.0.2", - "side-channel": "^1.0.6" - } - }, - "string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - } - }, - "string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - } - }, - "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, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "synckit": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", - "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", - "dev": true, - "requires": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" - } - }, - "tailwind-merge": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz", - "integrity": "sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==" - }, - "tailwind-styled-components": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tailwind-styled-components/-/tailwind-styled-components-2.2.0.tgz", - "integrity": "sha512-Ogemwk0p69aU8WE/ooJZHjqstdJgT5R6HGU6TFz2uSnveSEtvW+C6aWOjGCvCr5H/bREv0IbbQ4yODknRrLBRQ==", - "requires": { - "tailwind-merge": "^1.3.0" - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "tone": { - "version": "15.0.4", - "resolved": "https://registry.npmjs.org/tone/-/tone-15.0.4.tgz", - "integrity": "sha512-Fr2xATgdkNhzwMZhrU0DXpkXQyambq73hjHRrBiC0Wkc6aPYRdmkySE9kRFAW878zgMiD+Lqvn/uNHt/7hbdnQ==", - "requires": { - "standardized-audio-context": "^25.3.70", - "tslib": "^2.3.1" - } - }, - "totalist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==" - }, - "ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", - "dev": true - }, - "tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - } - }, - "typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - } - }, - "typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - } - }, - "typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" - } - }, - "typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "dev": true - }, - "ufo": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", - "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", - "dev": true - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "unconfig": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/unconfig/-/unconfig-0.3.12.tgz", - "integrity": "sha512-oDtfWDC0TMYFuwdt7E7CaqYZGqq1wAiC12PRTFe/93IkgNi+wVlF/LCjcD/bgNkGoopb0RsU363Ge3YXy7NGSw==", - "dev": true, - "requires": { - "@antfu/utils": "^0.7.7", - "defu": "^6.1.4", - "jiti": "^1.21.0", - "mlly": "^1.6.1" - } - }, - "undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "unocss": { - "version": "0.59.2", - "resolved": "https://registry.npmjs.org/unocss/-/unocss-0.59.2.tgz", - "integrity": "sha512-9puB1L+VxpCAgeidkd67otmA0pbqNPxBPT/8l6gncF0i2RE0WkKITlMflP0PhLNpOdHUfUWb9Cdj1aVnjRnXFA==", - "dev": true, - "requires": { - "@unocss/astro": "0.59.2", - "@unocss/cli": "0.59.2", - "@unocss/core": "0.59.2", - "@unocss/extractor-arbitrary-variants": "0.59.2", - "@unocss/postcss": "0.59.2", - "@unocss/preset-attributify": "0.59.2", - "@unocss/preset-icons": "0.59.2", - "@unocss/preset-mini": "0.59.2", - "@unocss/preset-tagify": "0.59.2", - "@unocss/preset-typography": "0.59.2", - "@unocss/preset-uno": "0.59.2", - "@unocss/preset-web-fonts": "0.59.2", - "@unocss/preset-wind": "0.59.2", - "@unocss/reset": "0.59.2", - "@unocss/transformer-attributify-jsx": "0.59.2", - "@unocss/transformer-attributify-jsx-babel": "0.59.2", - "@unocss/transformer-compile-class": "0.59.2", - "@unocss/transformer-directives": "0.59.2", - "@unocss/transformer-variant-group": "0.59.2", - "@unocss/vite": "0.59.2" - } - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==" - }, - "vike": { - "version": "0.4.179", - "resolved": "https://registry.npmjs.org/vike/-/vike-0.4.179.tgz", - "integrity": "sha512-Uie4cUCUa4DULy5O5s4tHvQcbySTRGpNFkIxctBY6nXB/DgkJaQVx+o/nSBcK+np43WXbAciNGt6VX/qfIoUvw==", - "requires": { - "@brillout/import": "^0.2.3", - "@brillout/json-serializer": "^0.5.10", - "@brillout/picocolors": "^1.0.13", - "@brillout/require-shim": "^0.1.2", - "@brillout/vite-plugin-server-entry": "^0.4.5", - "acorn": "^8.0.0", - "cac": "^6.0.0", - "es-module-lexer": "^1.0.0", - "esbuild": "^0.19.0", - "fast-glob": "^3.0.0", - "semver": "^7.6.2", - "sirv": "^2.0.0", - "source-map-support": "^0.5.0" - }, - "dependencies": { - "@brillout/json-serializer": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/@brillout/json-serializer/-/json-serializer-0.5.10.tgz", - "integrity": "sha512-3bh/MS5pudu3H9l3a0KAE1RBfy/L95JWAEo8b2mPBN3H98wzCHYzgjQb9xRl58y+Kc7FgkjApgCFJV+zR06P5Q==" - }, - "@esbuild/darwin-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", - "optional": true - }, - "esbuild": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", - "requires": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" - } - }, - "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==" - } - } - }, - "vike-react": { - "version": "0.4.17", - "resolved": "https://registry.npmjs.org/vike-react/-/vike-react-0.4.17.tgz", - "integrity": "sha512-kUhJr7DmxwQy4NEK0ghDLXEqjprmai8gLut5721s57o1OUQWwq3sjiVsi1rSc2h2gN4BmZctXDjIYjPbwDIy9g==", - "dev": true, - "requires": { - "react-streaming": "^0.3.41" - } - }, - "vite": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz", - "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", - "dev": true, - "requires": { - "esbuild": "^0.21.3", - "fsevents": "~2.3.3", - "postcss": "^8.4.39", - "rollup": "^4.13.0" - }, - "dependencies": { - "picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true - }, - "postcss": { - "version": "8.4.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", - "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", - "dev": true, - "requires": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" - } - } - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", - "dev": true, - "requires": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", - "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", - "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" - } - }, - "which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, - "requires": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - } - }, - "which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - } - }, - "word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true - }, - "wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", - "dev": true, - "requires": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "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 - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, - "zustand": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.4.tgz", - "integrity": "sha512-/BPMyLKJPtFEvVL0E9E9BTUM63MNyhPGlvxk1XjrfWTUlV+BR8jufjsovHzrtR6YNcBEcL7cMHovL1n9xHawEg==", - "requires": { - "use-sync-external-store": "1.2.0" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index f90d270..0000000 --- a/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "richard-unterberg.github.io.git", - "license": "MIT", - "author": "Richard Unterberg ", - "repository": { - "type": "git", - "url": "https://github.com/richard-unterberg/unterberg.dev.git" - }, - "private": true, - "version": "1.1.1", - "type": "module", - "scripts": { - "prepare": "husky install", - "pre-commit": "lint-staged", - "lint": "eslint **/*.{ts,tsx} --fix", - "prettier": "prettier **/*.{ts,tsx} --write", - "dev": "vite --host", - "prod": "vite build && vite preview --host", - "build": "tsc && vite build", - "preview": "vite preview" - }, - "lint-staged": { - "**/*.{ts,tsx}": [ - "prettier --write", - "eslint --fix", - "bash -c tsc --noEmit" - ] - }, - "dependencies": { - "@vitejs/plugin-react": "^4.3.1", - "dotenv": "^16.4.1", - "lucide-react": "^0.367.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-streaming": "^0.3.42", - "tailwind-styled-components": "^2.2.0", - "tone": "^15.0.4", - "vike": "^0.4.179", - "zustand": "^4.5.4" - }, - "devDependencies": { - "@ianvs/prettier-plugin-sort-imports": "^4.1.1", - "@types/node": "^20.10.4", - "@types/react": "^18.2.45", - "@types/react-dom": "^18.2.18", - "@typescript-eslint/eslint-plugin": "^6.16.0", - "@typescript-eslint/parser": "^6.16.0", - "eslint": "^8.57.0", - "eslint-config-airbnb": "^19.0.4", - "eslint-config-airbnb-typescript": "^17.1.0", - "eslint-config-prettier": "^9.1.0", - "eslint-import-resolver-typescript": "^3.6.1", - "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jsx-a11y": "^6.8.0", - "eslint-plugin-prettier": "^5.0.1", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.5", - "husky": "^8.0.3", - "lint-staged": "^15.2.0", - "prettier": "^3.1.1", - "typescript": "^5.3.3", - "unocss": "^0.59.1", - "vike-react": "^0.4.17", - "vite": "^5.3.3" - } -} diff --git a/pages/+config.ts b/pages/+config.ts deleted file mode 100644 index 8d63748..0000000 --- a/pages/+config.ts +++ /dev/null @@ -1,19 +0,0 @@ -import vikeReact from 'vike-react/config' -import { Config } from 'vike/types' - -import App from '#components/App' -import HeadDefault from '#pages/HeadDefault' - -// Default configs (can be overridden by pages) -export default { - Head: HeadDefault, - Layout: App, // invoke the app component instead special layout - // https://vike.dev/stream - stream: true, - // https://vike.dev/ssr - this line can be removed since `true` is the default - ssr: true, - // https://vike.dev/clientRouting - clientRouting: true, - // https://vike.dev/extends - extends: vikeReact, -} satisfies Config diff --git a/pages/Favicon.tsx b/pages/Favicon.tsx deleted file mode 100644 index 96f0905..0000000 --- a/pages/Favicon.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import { APP_CONFIG } from '#lib/constants' - -const Favicon = () => ( - <> - - - - - - - - - - - - - - - - -) - -export default Favicon diff --git a/pages/HeadDefault.tsx b/pages/HeadDefault.tsx deleted file mode 100644 index c974b6b..0000000 --- a/pages/HeadDefault.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { APP_CONFIG } from '#lib/constants' -import Favicon from '#pages/Favicon' - -const Head = () => ( - <> - - - - - - - - -) - -export default Head diff --git a/pages/_error/+Page.tsx b/pages/_error/+Page.tsx deleted file mode 100644 index ad6cee0..0000000 --- a/pages/_error/+Page.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import Layout from '#components/common/Layout' -import Link from '#components/common/Link' - -const ErrorPage = ({ is404, errorInfo }: { is404: boolean; errorInfo?: string }) => ( - - {is404 ? ( - <> -

404 Page Not Found

-

This page could not be found.

-

{errorInfo}

- - ) : ( - <> -

500 Internal Server Error

-

Something went wrong.

- - )} - Go back to home page -
-) - -export default ErrorPage diff --git a/pages/_error/+config.ts b/pages/_error/+config.ts deleted file mode 100644 index 12d5d3b..0000000 --- a/pages/_error/+config.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { Config } from 'vike/types' - -export default { - title: 'An error occurred', -} satisfies Config diff --git a/pages/index/+Page.tsx b/pages/index/+Page.tsx deleted file mode 100644 index 5af6972..0000000 --- a/pages/index/+Page.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import H4Headline from '#components/common/H4Headline' -import Layout from '#components/common/Layout' -import Link from '#components/common/Link' -import InlinePlayButton from '#components/InlinePlayButton' - -const StartPage = () => ( - - 🏡 This is the start page layout :) -

- For a side project I needed a routable typescript react application with access to a shared - tone.js context. To test my code I build a small metronome implementation which needs kind of - a communication layer to and from tone.js -

-

We can control tone JS from here

- -

- or after transitioning to a alternative page of the - application -

-
-) -export default StartPage diff --git a/pages/index/+config.ts b/pages/index/+config.ts deleted file mode 100644 index f176196..0000000 --- a/pages/index/+config.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { Config } from 'vike/types' - -export default { - title: 'Welcome | statetrain', -} satisfies Config diff --git a/pages/second-page/+Page.tsx b/pages/second-page/+Page.tsx deleted file mode 100644 index e535aa0..0000000 --- a/pages/second-page/+Page.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import H4Headline from '#components/common/H4Headline' -import Layout from '#components/common/Layout' -import Link from '#components/common/Link' -import InlinePlayButton from '#components/InlinePlayButton' - -// todo: the current implementation must be oursourced to a separate file out of the page context -const StartPage = () => ( - - 💫 This is the alternative page layout :) -

We can now control tone.js from here

- -

- or after transitioning to the start page of the app -

-
-) -export default StartPage diff --git a/pages/second-page/+config.ts b/pages/second-page/+config.ts deleted file mode 100644 index f85fc5e..0000000 --- a/pages/second-page/+config.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { Config } from 'vike/types' - -export default { - title: 'Alternative Page | statetrain', -} satisfies Config diff --git a/second-page/index.html b/second-page/index.html new file mode 100644 index 0000000..8ca350e --- /dev/null +++ b/second-page/index.html @@ -0,0 +1,19 @@ + + + + + + Alternative Page | statetrain + + + + +
🚂🚃
STATETRAIN
Unlock and maintain tone.js context for all following pages / components
+ + + + + + + + \ No newline at end of file diff --git a/second-page/index.pageContext.json b/second-page/index.pageContext.json new file mode 100644 index 0000000..866e7f9 --- /dev/null +++ b/second-page/index.pageContext.json @@ -0,0 +1 @@ +{"abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","_pageId":"/pages/second-page","routeParams":{},"data":"!undefined"} \ No newline at end of file diff --git a/public/site.webmanifest b/site.webmanifest similarity index 100% rename from public/site.webmanifest rename to site.webmanifest diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index bd003f3..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "compilerOptions": { - "strict": true, - "allowJs": true, - "checkJs": true, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "sourceMap": true, - "module": "ESNext", - "noEmit": true, - "moduleResolution": "node", - "target": "ES2020", - "lib": ["DOM", "DOM.Iterable", "ESNext"], - "types": ["vite/client", "vike-react"], - "jsx": "preserve", - "jsxImportSource": "react", - "baseUrl": ".", - "paths": { - "#tone/*": ["lib/tone/*"], - "#renderer/*": ["renderer/*"], - "#pages/*": ["pages/*"], - "#components/*": ["./components/*"], - "#lib/*": ["./lib/*"], - "#src/*": ["./src/*"], - "#root/*": ["./*"] - } - }, - "exclude": [ - "dist", - "*.js", - "*.cjs", - "**/*.js", - "**/*.cjs", - "**/*.mjs", - "node_modules", - "public", - "dist" - ] -} diff --git a/uno.config.ts b/uno.config.ts deleted file mode 100644 index 85b9abe..0000000 --- a/uno.config.ts +++ /dev/null @@ -1,84 +0,0 @@ -// uno.config.ts -import { colors } from '@unocss/preset-wind' -import { defineConfig, presetUno } from 'unocss' - -export default defineConfig({ - presets: [presetUno()], - content: { - // needed for uno css to properly parse the content - pipeline: { - include: [ - // the default - /\.(vue|svelte|[jt]sx|mdx?|astro|elm|php|phtml|html)($|\?)/, - // include js/ts files - 'src/**/*.{js,ts}', - ], - }, - }, - theme: { - colors: { - transparent: 'transparent', - current: 'currentColor', - black: '#000', - white: '#fff', - dark: colors.slate[950], // '#020617' - darkLight: colors.slate[900], - darkLightBorder: colors.slate[800], - grayDark: colors.slate[600], - gray: colors.slate[400], - grayLight: colors.slate[300], - light: colors.slate[200], - primary: colors.sky[400], - successDark: colors.emerald[700], - successLight: colors.emerald[300], - warningDark: colors.amber[700], - warningLight: colors.amber[300], - errorDark: colors.red[700], - errorLight: colors.red[300], - }, - fontSize: { - base: ['16px', '24px'], - small: ['14px', '20px'], - micro: ['10px', '12px'], - }, - fontFamily: { - sans: 'Helvetica Neue, Arial, Tahoma, sans-serif', - }, - }, - preflights: [ - { - // outputs the css variables for colors and font sizes - getCSS: ({ theme }) => { - let cssVariables = '' - - if (theme.colors) { - Object.keys(theme.colors).forEach(color => { - if (typeof theme.colors?.[color] === 'string') { - cssVariables += `--color-${color}: ${theme.colors?.[color]};\n` - } - }) - } - - if (theme.fontSize) { - Object.keys(theme.fontSize).forEach(size => { - if (Array.isArray(theme.fontSize?.[size])) { - cssVariables += `--font-size-${size}: ${theme.fontSize?.[size][0]};\n` - } - }) - } - - return ` - body, html { - background-color: ${theme.colors?.dark}; - color: ${theme.colors?.light}; - font-family: ${theme.fontFamily?.sans}; - font-size: ${theme.fontSize?.base[0]}; - } - :root { - ${cssVariables} - } - ` - }, - }, - ], -}) diff --git a/vite.config.ts b/vite.config.ts deleted file mode 100644 index ee4f2ca..0000000 --- a/vite.config.ts +++ /dev/null @@ -1,48 +0,0 @@ -import path from 'path' -import react from '@vitejs/plugin-react' -import UnoCSS from 'unocss/vite' -import vike from 'vike/plugin' -import { defineConfig } from 'vite' - -import 'dotenv/config' - -export default defineConfig({ - base: '/statetrain/', - plugins: [ - UnoCSS(), - react(), - vike({ - // https://vike.dev/prerender - prerender: true, - trailingSlash: true, - }), - ], - build: { - cssMinify: 'esbuild', - minify: true, - }, - optimizeDeps: { - include: ['react/jsx-runtime', 'react', 'react-dom'], - }, - server: { - port: 5247, - }, - preview: { - port: 4248, - }, - ssr: { - noExternal: ['tailwind-styled-components'], - }, - resolve: { - alias: { - '#tone': path.resolve(__dirname, './lib/tone/'), - '#renderer': path.resolve(__dirname, './renderer/'), - '#pages': path.resolve(__dirname, './pages/'), - '#components': path.resolve(__dirname, './components/'), - '#lib': path.resolve(__dirname, './lib/'), - '#src': path.resolve(__dirname, './src/'), - '#root': __dirname, - $public: path.resolve(__dirname, './public'), - }, - }, -})