diff --git a/.eslintrc.json b/.eslintrc.json index cf237947..3a3cd1c7 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -14,5 +14,6 @@ "rules": { "no-unused-vars": ["warn", { "destructuredArrayIgnorePattern": ".", "ignoreRestSiblings": false }], "import/no-extraneous-dependencies": ["error", {"devDependencies": true}] - } + }, + "files": ["**/*.mjs", "**/*.js"] } diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 67acc93a..9a853c78 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -22,10 +22,10 @@ jobs: url: ${{ steps.deployment.outputs.page_url }} steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 with: - version: 8.11.0 - - uses: actions/setup-node@v3 + version: 9.12.2 + - uses: actions/setup-node@v4 with: node-version: 20 cache: "pnpm" @@ -39,11 +39,11 @@ jobs: uses: actions/configure-pages@v2 - name: Upload artifact - uses: actions/upload-pages-artifact@v1 + uses: actions/upload-pages-artifact@v3 with: # Upload entire repository path: "./website/dist" - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v1 + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 94e64513..180f8752 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,10 +11,10 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 with: - version: 8.11.0 - - uses: actions/setup-node@v3 + version: 9.12.2 + - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: 'pnpm' diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index adb883e5..7d8170cf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -138,6 +138,18 @@ pnpm --filter "./packages/**" publish --access public To manually publish a single package, increase the version in the `package.json`, then run `pnpm publish`. Important: Always publish with `pnpm`, as `npm` does not support overriding main files in `publishConfig`, which is done in all the packages. + +## useful commands +```sh +#regenerate the test snapshots (ex: when updating or creating new pattern functions) +pnpm snapshot + +#start the OSC server +pnpm run osc + +#build the standalone version +pnpm tauri build +``` ## Have Fun Remember to have fun, and that this project is driven by the passion of volunteers! diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..19d9bb39 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,86 @@ +import _import from 'eslint-plugin-import'; +import { fixupPluginRules } from '@eslint/compat'; +import globals from 'globals'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import js from '@eslint/js'; +import { FlatCompat } from '@eslint/eslintrc'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all, +}); + +export default [ + { + ignores: [ + '**/krill-parser.js', + '**/krill.pegjs', + '**/.eslintrc.json', + '**/server.js', + '**/tidal-sniffer.js', + '**/*.jsx', + '**/tunejs.js', + 'out/**/*', + '**/postcss.config.js', + '**/postcss.config.cjs', + '**/tailwind.config.js', + '**/tailwind.config.cjs', + '**/vite.config.js', + '**/dist/**/*', + '!**/*.mjs', + '**/*.tsx', + '**/*.ts', + '**/*.json', + '**/dev-dist', + '**/dist', + 'src-tauri/target/**/*', + '**/reverbGen.mjs', + '**/hydra.mjs', + '**/jsdoc-synonyms.js', + 'packages/hs2js/src/hs2js.mjs', + '**/samples', + ], + }, + ...compat.extends('eslint:recommended').map((config) => ({ + ...config, + files: ['**/*.mjs', '**/*.js'], + })), + { + files: ['**/*.mjs', '**/*.js'], + + plugins: { + import: fixupPluginRules(_import), + }, + + languageOptions: { + globals: { + ...globals.node, + ...globals.browser, + }, + + ecmaVersion: 'latest', + sourceType: 'module', + }, + + rules: { + 'no-unused-vars': [ + 'warn', + { + destructuredArrayIgnorePattern: '.', + ignoreRestSiblings: false, + }, + ], + + 'import/no-extraneous-dependencies': [ + 'error', + { + devDependencies: true, + }, + ], + }, + }, +]; diff --git a/examples/codemirror-repl/package.json b/examples/codemirror-repl/package.json index ec178d48..e0ce35b8 100644 --- a/examples/codemirror-repl/package.json +++ b/examples/codemirror-repl/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" }, "dependencies": { "@strudel/codemirror": "workspace:*", diff --git a/examples/headless-repl/package.json b/examples/headless-repl/package.json index 5c1fa162..0a294179 100644 --- a/examples/headless-repl/package.json +++ b/examples/headless-repl/package.json @@ -10,7 +10,7 @@ "preview": "vite preview" }, "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" }, "dependencies": { "@strudel/web": "workspace:*" diff --git a/examples/minimal-repl/package.json b/examples/minimal-repl/package.json index c8d6d888..8f904c61 100644 --- a/examples/minimal-repl/package.json +++ b/examples/minimal-repl/package.json @@ -10,7 +10,7 @@ "preview": "vite preview" }, "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" }, "dependencies": { "@strudel/core": "workspace:*", diff --git a/examples/superdough/package.json b/examples/superdough/package.json index 288554d2..eb5d8e9f 100644 --- a/examples/superdough/package.json +++ b/examples/superdough/package.json @@ -12,6 +12,6 @@ "superdough": "workspace:*" }, "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/examples/tidal-repl/package.json b/examples/tidal-repl/package.json index f1e1337c..4da2f086 100644 --- a/examples/tidal-repl/package.json +++ b/examples/tidal-repl/package.json @@ -31,6 +31,6 @@ "hs2js": "workspace:*" }, "devDependencies": { - "vite": "^5.0.8" + "vite": "^6.0.11" } } diff --git a/package.json b/package.json index 250ca22c..9068b2ca 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "osc": "cd packages/osc && npm run server", "jsdoc": "jsdoc packages/ -c jsdoc/jsdoc.config.json", "jsdoc-json": "jsdoc packages/ --template ./node_modules/jsdoc-json --destination doc.json -c jsdoc/jsdoc.config.json", - "lint": "eslint . --ext mjs,js --quiet", + "lint": "eslint . --quiet", "codeformat": "prettier --write .", "format-check": "prettier --check .", "report-undocumented": "npm run jsdoc-json && node jsdoc/undocumented.mjs > undocumented.json", @@ -55,19 +55,21 @@ "@strudel/xen": "workspace:*" }, "devDependencies": { - "@tauri-apps/cli": "^1.5.9", - "@vitest/ui": "^2.1.3", - "acorn": "^8.13.0", - "dependency-tree": "^10.0.9", - "eslint": "^8.56.0", + "@eslint/compat": "^1.2.5", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "^9.19.0", + "@tauri-apps/cli": "^2.2.7", + "@vitest/ui": "^3.0.4", + "acorn": "^8.14.0", + "dependency-tree": "^11.0.1", + "eslint": "^9.19.0", "eslint-plugin-import": "^2.31.0", "events": "^3.3.0", - "jsdoc": "^4.0.3", + "globals": "^15.14.0", + "jsdoc": "^4.0.4", "jsdoc-json": "^2.0.2", - "jsdoc-to-markdown": "^8.0.0", - "lerna": "^8.1.8", - "prettier": "^3.3.3", - "rollup-plugin-visualizer": "^5.12.0", - "vitest": "^2.1.3" + "lerna": "^8.1.9", + "prettier": "^3.4.2", + "vitest": "^3.0.4" } } diff --git a/packages/codemirror/package.json b/packages/codemirror/package.json index 5ef5e73b..44326b7c 100644 --- a/packages/codemirror/package.json +++ b/packages/codemirror/package.json @@ -32,26 +32,24 @@ }, "homepage": "https://github.com/tidalcycles/strudel#readme", "dependencies": { - "@codemirror/autocomplete": "^6.11.1", - "@codemirror/commands": "^6.3.3", - "@codemirror/lang-javascript": "^6.2.1", - "@codemirror/language": "^6.10.0", - "@codemirror/search": "^6.5.5", - "@codemirror/state": "^6.4.0", - "@codemirror/view": "^6.23.0", - "@lezer/highlight": "^1.2.0", - "@nanostores/persistent": "^0.9.1", - "@replit/codemirror-emacs": "^6.0.1", - "@replit/codemirror-vim": "^6.1.0", + "@codemirror/autocomplete": "^6.18.4", + "@codemirror/commands": "^6.8.0", + "@codemirror/lang-javascript": "^6.2.2", + "@codemirror/language": "^6.10.8", + "@codemirror/search": "^6.5.8", + "@codemirror/state": "^6.5.1", + "@codemirror/view": "^6.36.2", + "@lezer/highlight": "^1.2.1", + "@nanostores/persistent": "^0.10.2", + "@replit/codemirror-emacs": "^6.1.0", + "@replit/codemirror-vim": "^6.2.1", "@replit/codemirror-vscode-keymap": "^6.0.2", "@strudel/core": "workspace:*", "@strudel/draw": "workspace:*", "@strudel/transpiler": "workspace:*", - "@uiw/codemirror-themes": "^4.21.21", - "@uiw/codemirror-themes-all": "^4.21.21", - "nanostores": "^0.9.5" + "nanostores": "^0.11.3" }, "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/packages/codemirror/themes.mjs b/packages/codemirror/themes.mjs index f25cf9ce..47d6c3c1 100644 --- a/packages/codemirror/themes.mjs +++ b/packages/codemirror/themes.mjs @@ -1,42 +1,41 @@ -import { - abcdef, - androidstudio, - atomone, - aura, - bespin, - darcula, - dracula, - duotoneDark, - eclipse, - githubDark, - gruvboxDark, - materialDark, - nord, - okaidia, - solarizedDark, - sublime, - tokyoNight, - tokyoNightStorm, - vscodeDark, - xcodeDark, - bbedit, - duotoneLight, - githubLight, - gruvboxLight, - materialLight, - noctisLilac, - solarizedLight, - tokyoNightDay, - xcodeLight, -} from '@uiw/codemirror-themes-all'; +import strudelTheme, { settings as strudelThemeSettings } from './themes/strudel-theme.mjs'; +import bluescreen, { settings as bluescreenSettings } from './themes/bluescreen.mjs'; +import blackscreen, { settings as blackscreenSettings } from './themes/blackscreen.mjs'; +import whitescreen, { settings as whitescreenSettings } from './themes/whitescreen.mjs'; +import teletext, { settings as teletextSettings } from './themes/teletext.mjs'; +import algoboy, { settings as algoboySettings } from './themes/algoboy.mjs'; +import terminal, { settings as terminalSettings } from './themes/terminal.mjs'; +import abcdef, { settings as abcdefSettings } from './themes/abcdef.mjs'; +import androidstudio, { settings as androidstudioSettings } from './themes/androidstudio.mjs'; +import atomone, { settings as atomOneSettings } from './themes/atomone.mjs'; +import aura, { settings as auraSettings } from './themes/aura.mjs'; +import bespin, { settings as bespinSettings } from './themes/bespin.mjs'; +import darcula, { settings as darculaSettings } from './themes/darcula.mjs'; +import dracula, { settings as draculaSettings } from './themes/dracula.mjs'; +import duotoneDark, { settings as duotoneDarkSettings } from './themes/duotoneDark.mjs'; +import duotoneLight, { settings as duotoneLightSettings } from './themes/duotoneLight.mjs'; +import eclipse, { settings as eclipseSettings } from './themes/eclipse.mjs'; +import githubDark, { settings as githubDarkSettings } from './themes/githubDark.mjs'; +import githubLight, { settings as githubLightSettings } from './themes/githubLight.mjs'; +import gruvboxDark, { settings as gruvboxDarkSettings } from './themes/gruvboxDark.mjs'; +import gruvboxLight, { settings as gruvboxLightSettings } from './themes/gruvboxLight.mjs'; +import materialDark, { settings as materialDarkSettings } from './themes/materialDark.mjs'; +import materialLight, { settings as materialLightSettings } from './themes/materialLight.mjs'; +import nord, { settings as nordSettings } from './themes/nord.mjs'; +import monokai, { settings as monokaiSettings } from './themes/monokai.mjs'; +import solarizedDark, { settings as solarizedDarkSettings } from './themes/solarizedDark.mjs'; +import solarizedLight, { settings as solarizedLightSettings } from './themes/solarizedLight.mjs'; +import sublime, { settings as sublimeSettings } from './themes/sublime.mjs'; +import tokyoNight, { settings as tokyoNightSettings } from './themes/tokyoNight.mjs'; +import tokyoNightStorm, { settings as tokyoNightStormSettings } from './themes/tokioNightStorm.mjs'; +import tokyoNightDay, { settings as tokyoNightDaySettings } from './themes/tokyoNightDay.mjs'; +import vscodeDark, { settings as vscodeDarkSettings } from './themes/vscodeDark.mjs'; +import vscodeLight, { settings as vscodeLightSettings } from './themes/vscodeLight.mjs'; +// import xcodeDark, { settings as xcodeDarkSettings } from './themes/xcodeDark.mjs'; +import xcodeLight, { settings as xcodeLightSettings } from './themes/xcodeLight.mjs'; +import bbedit, { settings as bbeditSettings } from './themes/bbedit.mjs'; +import noctisLilac, { settings as noctisLilacSettings } from './themes/noctisLilac.mjs'; -import strudelTheme from './themes/strudel-theme'; -import bluescreen, { settings as bluescreenSettings } from './themes/bluescreen'; -import blackscreen, { settings as blackscreenSettings } from './themes/blackscreen'; -import whitescreen, { settings as whitescreenSettings } from './themes/whitescreen'; -import teletext, { settings as teletextSettings } from './themes/teletext'; -import algoboy, { settings as algoboySettings } from './themes/algoboy'; -import terminal, { settings as terminalSettings } from './themes/terminal'; import { setTheme } from '@strudel/draw'; export const themes = { @@ -46,395 +45,78 @@ export const themes = { whitescreen, teletext, algoboy, - terminal, - abcdef, - androidstudio, atomone, aura, - bespin, darcula, dracula, + // todo: optimize + // bespin, + //abcdef, + androidstudio, duotoneDark, - eclipse, githubDark, gruvboxDark, materialDark, nord, - okaidia, + monokai, solarizedDark, sublime, tokyoNight, tokyoNightStorm, vscodeDark, - xcodeDark, + //xcodeDark, + // LIGHT bbedit, - duotoneLight, + //duotoneLight, + eclipse, githubLight, gruvboxLight, materialLight, + vscodeLight, noctisLilac, solarizedLight, tokyoNightDay, xcodeLight, }; -// lineBackground is background with 50% opacity, to make sure the selection below is visible - export const settings = { - strudelTheme: { - background: '#222', - lineBackground: '#22222299', - foreground: '#fff', - // foreground: '#75baff', - caret: '#ffcc00', - selection: 'rgba(128, 203, 196, 0.5)', - selectionMatch: '#036dd626', - // lineHighlight: '#8a91991a', // original - lineHighlight: '#00000050', - gutterBackground: 'transparent', - // gutterForeground: '#8a919966', - gutterForeground: '#8a919966', - }, + strudelTheme: strudelThemeSettings, bluescreen: bluescreenSettings, blackscreen: blackscreenSettings, whitescreen: whitescreenSettings, teletext: teletextSettings, algoboy: algoboySettings, terminal: terminalSettings, - abcdef: { - background: '#0f0f0f', - lineBackground: '#0f0f0f99', - foreground: '#defdef', - caret: '#00FF00', - selection: '#515151', - selectionMatch: '#515151', - gutterBackground: '#555', - gutterForeground: '#FFFFFF', - lineHighlight: '#314151', - }, - androidstudio: { - background: '#282b2e', - lineBackground: '#282b2e99', - foreground: '#a9b7c6', - caret: '#00FF00', - selection: '#343739', - selectionMatch: '#343739', - lineHighlight: '#343739', - }, - atomone: { - background: '#272C35', - lineBackground: '#272C3599', - foreground: '#9d9b97', - caret: '#797977', - selection: '#ffffff30', - selectionMatch: '#2B323D', - gutterBackground: '#272C35', - gutterForeground: '#465063', - gutterBorder: 'transparent', - lineHighlight: '#2B323D', - }, - aura: { - background: '#21202e', - lineBackground: '#21202e99', - foreground: '#edecee', - caret: '#a277ff', - selection: '#3d375e7f', - selectionMatch: '#3d375e7f', - gutterBackground: '#21202e', - gutterForeground: '#edecee', - gutterBorder: 'transparent', - lineHighlight: '#a394f033', - }, - bbedit: { - light: true, - background: '#FFFFFF', - lineBackground: '#FFFFFF99', - foreground: '#000000', - caret: '#FBAC52', - selection: '#FFD420', - selectionMatch: '#FFD420', - gutterBackground: '#f5f5f5', - gutterForeground: '#4D4D4C', - gutterBorder: 'transparent', - lineHighlight: '#00000012', - }, - bespin: { - background: '#28211c', - lineBackground: '#28211c99', - foreground: '#9d9b97', - caret: '#797977', - selection: '#36312e', - selectionMatch: '#4f382b', - gutterBackground: '#28211c', - gutterForeground: '#666666', - lineHighlight: 'rgba(255, 255, 255, 0.1)', - }, - darcula: { - background: '#2B2B2B', - lineBackground: '#2B2B2B99', - foreground: '#f8f8f2', - caret: '#FFFFFF', - selection: 'rgba(255, 255, 255, 0.1)', - selectionMatch: 'rgba(255, 255, 255, 0.2)', - gutterBackground: 'rgba(255, 255, 255, 0.1)', - gutterForeground: '#999', - gutterBorder: 'transparent', - lineHighlight: 'rgba(255, 255, 255, 0.1)', - }, - dracula: { - background: '#282a36', - lineBackground: '#282a3699', - foreground: '#f8f8f2', - caret: '#f8f8f0', - selection: 'rgba(255, 255, 255, 0.1)', - selectionMatch: 'rgba(255, 255, 255, 0.2)', - gutterBackground: '#282a36', - gutterForeground: '#6D8A88', - gutterBorder: 'transparent', - lineHighlight: 'rgba(255, 255, 255, 0.1)', - }, - duotoneLight: { - light: true, - background: '#faf8f5', - lineBackground: '#faf8f599', - foreground: '#b29762', - caret: '#93abdc', - selection: '#e3dcce', - selectionMatch: '#e3dcce', - gutterBackground: '#faf8f5', - gutterForeground: '#cdc4b1', - gutterBorder: 'transparent', - lineHighlight: '#EFEFEF', - }, - duotoneDark: { - background: '#2a2734', - lineBackground: '#2a273499', - foreground: '#6c6783', - caret: '#ffad5c', - selection: 'rgba(255, 255, 255, 0.1)', - gutterBackground: '#2a2734', - gutterForeground: '#545167', - lineHighlight: '#36334280', - }, - eclipse: { - light: true, - background: '#fff', - lineBackground: '#ffffff99', - foreground: '#000', - caret: '#FFFFFF', - selection: '#d7d4f0', - selectionMatch: '#d7d4f0', - gutterBackground: '#f7f7f7', - gutterForeground: '#999', - lineHighlight: '#e8f2ff', - gutterBorder: 'transparent', - }, - githubLight: { - light: true, - background: '#fff', - lineBackground: '#ffffff99', - foreground: '#24292e', - selection: '#BBDFFF', - selectionMatch: '#BBDFFF', - gutterBackground: '#fff', - gutterForeground: '#6e7781', - }, - githubDark: { - background: '#0d1117', - lineBackground: '#0d111799', - foreground: '#c9d1d9', - caret: '#c9d1d9', - selection: '#003d73', - selectionMatch: '#003d73', - lineHighlight: '#36334280', - }, - gruvboxDark: { - background: '#282828', - lineBackground: '#28282899', - foreground: '#ebdbb2', - caret: '#ebdbb2', - selection: '#bdae93', - selectionMatch: '#bdae93', - lineHighlight: '#3c3836', - gutterBackground: '#282828', - gutterForeground: '#7c6f64', - }, - gruvboxLight: { - light: true, - background: '#fbf1c7', - lineBackground: '#fbf1c799', - foreground: '#3c3836', - caret: '#af3a03', - selection: '#ebdbb2', - selectionMatch: '#bdae93', - lineHighlight: '#ebdbb2', - gutterBackground: '#ebdbb2', - gutterForeground: '#665c54', - gutterBorder: 'transparent', - }, - materialDark: { - background: '#2e3235', - lineBackground: '#2e323599', - foreground: '#bdbdbd', - caret: '#a0a4ae', - selection: '#d7d4f0', - selectionMatch: '#d7d4f0', - gutterBackground: '#2e3235', - gutterForeground: '#999', - gutterActiveForeground: '#4f5b66', - lineHighlight: '#545b61', - }, - materialLight: { - light: true, - background: '#FAFAFA', - lineBackground: '#FAFAFA99', - foreground: '#90A4AE', - caret: '#272727', - selection: '#80CBC440', - selectionMatch: '#FAFAFA', - gutterBackground: '#FAFAFA', - gutterForeground: '#90A4AE', - gutterBorder: 'transparent', - lineHighlight: '#CCD7DA50', - }, - noctisLilac: { - light: true, - background: '#f2f1f8', - lineBackground: '#f2f1f899', - foreground: '#0c006b', - caret: '#5c49e9', - selection: '#d5d1f2', - selectionMatch: '#d5d1f2', - gutterBackground: '#f2f1f8', - gutterForeground: '#0c006b70', - lineHighlight: '#e1def3', - }, - nord: { - background: '#2e3440', - lineBackground: '#2e344099', - foreground: '#FFFFFF', - caret: '#FFFFFF', - selection: '#3b4252', - selectionMatch: '#e5e9f0', - gutterBackground: '#2e3440', - gutterForeground: '#4c566a', - gutterActiveForeground: '#d8dee9', - lineHighlight: '#4c566a', - }, - okaidia: { - background: '#272822', - lineBackground: '#27282299', - foreground: '#FFFFFF', - caret: '#FFFFFF', - selection: '#49483E', - selectionMatch: '#49483E', - gutterBackground: '#272822', - gutterForeground: '#FFFFFF70', - lineHighlight: '#00000059', - }, - solarizedLight: { - light: true, - background: '#fdf6e3', - lineBackground: '#fdf6e399', - foreground: '#657b83', - caret: '#586e75', - selection: '#dfd9c8', - selectionMatch: '#dfd9c8', - gutterBackground: '#00000010', - gutterForeground: '#657b83', - lineHighlight: '#dfd9c8', - }, - solarizedDark: { - background: '#002b36', - lineBackground: '#002b3699', - foreground: '#93a1a1', - caret: '#839496', - selection: '#173541', - selectionMatch: '#aafe661a', - gutterBackground: '#00252f', - gutterForeground: '#839496', - lineHighlight: '#173541', - }, - sublime: { - background: '#303841', - lineBackground: '#30384199', - foreground: '#FFFFFF', - caret: '#FBAC52', - selection: '#4C5964', - selectionMatch: '#3A546E', - gutterBackground: '#303841', - gutterForeground: '#FFFFFF70', - lineHighlight: '#00000059', - }, - tokyoNightDay: { - light: true, - background: '#e1e2e7', - lineBackground: '#e1e2e799', - foreground: '#3760bf', - caret: '#3760bf', - selection: '#99a7df', - selectionMatch: '#99a7df', - gutterBackground: '#e1e2e7', - gutterForeground: '#3760bf', - gutterBorder: 'transparent', - lineHighlight: '#5f5faf11', - }, - tokyoNightStorm: { - background: '#24283b', - lineBackground: '#24283b99', - foreground: '#7982a9', - caret: '#c0caf5', - selection: '#6f7bb630', - selectionMatch: '#1f2335', - gutterBackground: '#24283b', - gutterForeground: '#7982a9', - gutterBorder: 'transparent', - lineHighlight: '#292e42', - }, - tokyoNight: { - background: '#1a1b26', - lineBackground: '#1a1b2699', - foreground: '#787c99', - caret: '#c0caf5', - selection: '#515c7e40', - selectionMatch: '#16161e', - gutterBackground: '#1a1b26', - gutterForeground: '#787c99', - gutterBorder: 'transparent', - lineHighlight: '#1e202e', - }, - vscodeDark: { - background: '#1e1e1e', - lineBackground: '#1e1e1e99', - foreground: '#9cdcfe', - caret: '#c6c6c6', - selection: '#6199ff2f', - selectionMatch: '#72a1ff59', - lineHighlight: '#ffffff0f', - gutterBackground: '#1e1e1e', - gutterForeground: '#838383', - gutterActiveForeground: '#fff', - }, - xcodeLight: { - light: true, - background: '#fff', - lineBackground: '#ffffff99', - foreground: '#3D3D3D', - selection: '#BBDFFF', - selectionMatch: '#BBDFFF', - gutterBackground: '#fff', - gutterForeground: '#AFAFAF', - lineHighlight: '#EDF4FF', - }, - xcodeDark: { - background: '#292A30', - lineBackground: '#292A3099', - foreground: '#CECFD0', - caret: '#fff', - selection: '#727377', - selectionMatch: '#727377', - lineHighlight: '#2F3239', - }, + abcdef: abcdefSettings, + androidstudio: androidstudioSettings, + atomone: atomOneSettings, + aura: auraSettings, + bbedit: bbeditSettings, + bespin: bespinSettings, + darcula: darculaSettings, + dracula: draculaSettings, + duotoneLight: duotoneLightSettings, + duotoneDark: duotoneDarkSettings, + eclipse: eclipseSettings, + githubLight: githubLightSettings, + githubDark: githubDarkSettings, + gruvboxDark: gruvboxDarkSettings, + gruvboxLight: gruvboxLightSettings, + materialDark: materialDarkSettings, + materialLight: materialLightSettings, + noctisLilac: noctisLilacSettings, + nord: nordSettings, + monokai: monokaiSettings, + solarizedLight: solarizedLightSettings, + solarizedDark: solarizedDarkSettings, + sublime: sublimeSettings, + tokyoNight: tokyoNightSettings, + tokyoNightStorm: tokyoNightStormSettings, + vscodeDark: vscodeDarkSettings, + vscodeLight: vscodeLightSettings, + xcodeLight: xcodeLightSettings, + //xcodeDark: xcodeDarkSettings, + tokyoNightDay: tokyoNightDaySettings, }; function getColors(str) { diff --git a/packages/codemirror/themes/abcdef.mjs b/packages/codemirror/themes/abcdef.mjs new file mode 100644 index 00000000..917823b9 --- /dev/null +++ b/packages/codemirror/themes/abcdef.mjs @@ -0,0 +1,55 @@ +/** + * @name abcdef + * @author codemirror.net + * https://codemirror.net/5/theme/abcdef.css + */ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#0f0f0f', + lineBackground: '#0f0f0f99', + foreground: '#defdef', + caret: '#00FF00', + selection: '#515151', + selectionMatch: '#515151', + gutterBackground: '#555', + gutterForeground: '#FFFFFF', + lineHighlight: '#314151', +}; + +export default createTheme({ + theme: 'dark', + settings: { + background: '#0f0f0f', + foreground: '#defdef', + caret: '#00FF00', + selection: '#515151', + selectionMatch: '#515151', + // gutterBackground: '#555', + gutterBackground: 'transparent', + /* gutterForeground: '#FFFFFF', */ + gutterForeground: '#7a7b7c', + lineHighlight: '#0a6bcb3d', + }, + styles: [ + { tag: t.labelName, color: 'inherit' }, + { tag: t.keyword, color: 'darkgoldenrod', fontWeight: 'bold' }, + { tag: t.atom, color: '#77F' }, + { tag: t.comment, color: '#7a7b7c', fontStyle: 'italic' }, + { tag: t.number, color: 'violet' }, + { tag: t.definition(t.variableName), color: '#fffabc' }, + { tag: t.variableName, color: '#abcdef' }, + { tag: t.function(t.variableName), color: '#fffabc' }, + { tag: t.typeName, color: '#FFDD44' }, + { tag: t.tagName, color: '#def' }, + { tag: t.string, color: '#2b4' }, + { tag: t.meta, color: '#C9F' }, + // { tag: t.qualifier, color: '#FFF700' }, + // { tag: t.builtin, color: '#30aabc' }, + { tag: t.bracket, color: '#8a8a8a' }, + { tag: t.attributeName, color: '#DDFF00' }, + { tag: t.heading, color: 'aquamarine', fontWeight: 'bold' }, + { tag: t.link, color: 'blueviolet', fontWeight: 'bold' }, + ], +}); diff --git a/packages/codemirror/themes/algoboy.mjs b/packages/codemirror/themes/algoboy.mjs index 5c6a91b8..30812d12 100644 --- a/packages/codemirror/themes/algoboy.mjs +++ b/packages/codemirror/themes/algoboy.mjs @@ -1,42 +1,60 @@ import { tags as t } from '@lezer/highlight'; -import { createTheme } from '@uiw/codemirror-themes'; +import { createTheme } from './theme-helper.mjs'; + +const palettes = { + // https://www.deviantart.com/advancedfan2020/art/Game-Boy-Palette-Set-Color-HEX-Part-09-920495662 + 'Central Florida A': ['#FFF630', '#B3AC22', '#666213', '#191905'], + 'Central Florida B': ['#38CEBA', '#279082', '#16524A', '#061513'], + 'Central Florida C': ['#FF8836', '#B35F26', '#663616', '#190E05'], + 'Central Florida D': ['#E07070', '#9D4E4E', '#5A2D2D', '#160B0B'], + 'Central Florida E': ['#7AA4CB', '#55738E', '#314251', '#0C1014'], + 'Feminine Energy A': ['#DC5686', '#9A415E', '#582536', '#16090D'], + 'Feminine Energy B': ['#D0463C', '#92312A', '#531c18', '#150706'], + 'Feminine Energy C': ['#D86918', '#974A11', '#562A0A', '#160A02'], + 'Feminine Energy D': ['#EFC54F', '#A78A36', '#604F20', '#181408'], + 'Feminine Energy E': ['#866399', '#5e456b', '#36283d', '#0d0a0f'], + 'Sour Watermelon A': ['#993366', '#6B2447', '#3D1429', '#0F050A'], + 'Sour Watermelon B': ['#996666', '#6B4747', '#3D2929', '#0F0A0A'], + 'Sour Watermelon C': ['#999966', '#686B47', '#3d3d29', '#0f0f0A'], + 'Sour Watermelon D': ['#99cc66', '#6b8f47', '#3d5229', '#0f140a'], + 'Sour Watermelon E': ['#99ff66', '#6bb347', '#3d6629', '#0f190a'], + //https://www.deviantart.com/advancedfan2020/art/Game-Boy-Palette-Set-Color-HEX-Part-02-920073260 + 'Peri Peaceful A': ['#909BE9', '#656DA3', '#3A3E5D', '#0e0f17'], + 'Peri Peaceful B': ['#68628d', '#494563', '#2a2738', '#0a0a0e'], // pretty dim + 'Peri Peaceful E': ['#b5a0a9', '#7f7076', '#484044', '#121011'], + 'Hichem Palette B': ['#4fa3a5', '#377273', '#204142', '#081010'], + 'Hichem Palette C': ['#Fe6f9b', '#b24e6d', '#662c3e', '#190b0f'], + 'Hichem Palette D': ['#ffbb5a', '#b3833f', '#664b24', '#191309'], + 'JSR2 A': ['#E0EFC0', '#9da786', '#5a604d', '#161813'], +}; +const palette = palettes['Sour Watermelon B']; export const settings = { - background: '#9bbc0f', - foreground: '#0f380f', // whats that? - caret: '#0f380f', - selection: '#306230', - selectionMatch: '#ffffff26', - lineHighlight: '#8bac0f', - lineBackground: '#9bbc0f50', + background: palette[3], + foreground: palette[1], + caret: palette[0], + selection: palette[0], + selectionMatch: palette[1], + lineHighlight: palette[3], + lineBackground: palette[3] + '90', //lineBackground: 'transparent', gutterBackground: 'transparent', - gutterForeground: '#0f380f', - light: true, + gutterForeground: palette[0], + light: false, // customStyle: '.cm-line { line-height: 1 }', }; export default createTheme({ - theme: 'light', + theme: 'dark', settings, styles: [ - { tag: t.labelName, color: 'inherit' }, - { tag: t.keyword, color: 'inherit' }, - { tag: t.operator, color: 'inherit' }, - { tag: t.special(t.variableName), color: 'inherit' }, - { tag: t.typeName, color: 'inherit' }, - { tag: t.atom, color: 'inherit' }, - { tag: t.number, color: 'inherit' }, - { tag: t.definition(t.variableName), color: 'inherit' }, - { tag: t.string, color: 'inherit' }, - { tag: t.special(t.string), color: 'inherit' }, - { tag: t.comment, color: 'inherit' }, - { tag: t.variableName, color: 'inherit' }, - { tag: t.tagName, color: 'inherit' }, - { tag: t.bracket, color: 'inherit' }, - { tag: t.meta, color: 'inherit' }, - { tag: t.attributeName, color: 'inherit' }, - { tag: t.propertyName, color: 'inherit' }, - { tag: t.className, color: 'inherit' }, - { tag: t.invalid, color: 'inherit' }, - { tag: [t.unit, t.punctuation], color: 'inherit' }, + { tag: t.comment, color: palette[2] }, + { tag: t.string, color: palette[1] }, + { tag: [t.atom, t.number], color: palette[1] }, + { tag: [t.meta, t.labelName, t.variableName], color: palette[0] }, + { + tag: [t.keyword, t.tagName, t.arithmeticOperator], + color: palette[1], + }, + { tag: [t.function(t.variableName), t.propertyName], color: palette[0] }, + { tag: t.atom, color: palette[1] }, ], }); diff --git a/packages/codemirror/themes/androidstudio.mjs b/packages/codemirror/themes/androidstudio.mjs new file mode 100644 index 00000000..097f7951 --- /dev/null +++ b/packages/codemirror/themes/androidstudio.mjs @@ -0,0 +1,43 @@ +/** + * @name androidstudio + */ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#282b2e', + lineBackground: '#282b2e99', + foreground: '#a9b7c6', + caret: '#00FF00', + selection: '#343739', + selectionMatch: '#343739', + lineHighlight: '#343739', +}; + +export default createTheme({ + theme: 'dark', + settings: { + background: '#282b2e', + foreground: '#a9b7c6', + caret: '#00FF00', + selection: '#4e5254', + selectionMatch: '#4e5254', + gutterForeground: '#cccccc50', + lineHighlight: '#7f85891f', + }, + styles: [ + { tag: t.labelName, color: 'inherit' }, + { tag: [t.keyword, t.deleted, t.className], color: '#a9b7c6' }, + { tag: [t.number, t.literal], color: '#6897bb' }, + //{ tag: [t.link, t.variableName], color: '#629755' }, + { tag: [t.link, t.variableName], color: '#a9b7c6' }, + { tag: [t.comment, t.quote], color: 'grey' }, + { tag: [t.meta, t.documentMeta], color: '#bbb529' }, + //{ tag: [t.string, t.propertyName, t.attributeValue], color: '#6a8759' }, + { tag: [t.propertyName, t.attributeValue], color: '#a9b7c6' }, + { tag: [t.string], color: '#6a8759' }, + { tag: [t.heading, t.typeName], color: '#ffc66d' }, + { tag: [t.attributeName], color: '#a9b7c6' }, + { tag: [t.emphasis], fontStyle: 'italic' }, + ], +}); diff --git a/packages/codemirror/themes/atomone.mjs b/packages/codemirror/themes/atomone.mjs new file mode 100644 index 00000000..85951d15 --- /dev/null +++ b/packages/codemirror/themes/atomone.mjs @@ -0,0 +1,49 @@ +/** + * @name Atom One + * Atom One dark syntax theme + * + * https://github.com/atom/one-dark-syntax + */ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#272C35', + lineBackground: '#272C3599', + foreground: 'hsl(220, 14%, 71%)', + caret: '#797977', + selection: '#ffffff30', + selectionMatch: '#2B323D', + gutterBackground: '#272C35', + gutterForeground: '#465063', + gutterBorder: 'transparent', + lineHighlight: '#2B323D', +}; + +export default createTheme({ + theme: 'dark', + settings: { + background: '#272C35', + foreground: '#9d9b97', + caret: '#797977', + selection: '#3d4c64', + selectionMatch: '#3d4c64', + gutterBackground: '#272C35', + gutterForeground: '#465063', + gutterBorder: 'transparent', + lineHighlight: '#2e3f5940', + }, + styles: [ + { + tag: [t.function(t.variableName), t.function(t.propertyName), t.url, t.processingInstruction], + color: 'hsl(207, 82%, 66%)', + }, + { tag: [t.tagName, t.heading], color: '#e06c75' }, + { tag: t.comment, color: '#54636D' }, + { tag: [t.variableName, t.propertyName, t.labelName], color: 'hsl(220, 14%, 71%)' }, + { tag: [t.attributeName, t.number], color: 'hsl( 29, 54%, 61%)' }, + { tag: t.className, color: 'hsl( 39, 67%, 69%)' }, + { tag: t.keyword, color: 'hsl(286, 60%, 67%)' }, + { tag: [t.string, t.regexp, t.special(t.propertyName)], color: '#98c379' }, + ], +}); diff --git a/packages/codemirror/themes/aura.mjs b/packages/codemirror/themes/aura.mjs new file mode 100644 index 00000000..b42a5839 --- /dev/null +++ b/packages/codemirror/themes/aura.mjs @@ -0,0 +1,51 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#21202e', + lineBackground: '#21202e99', + foreground: '#edecee', + caret: '#a277ff', + selection: '#3d375e7f', + selectionMatch: '#3d375e7f', + gutterBackground: '#21202e', + gutterForeground: '#edecee', + gutterBorder: 'transparent', + lineHighlight: '#a394f033', +}; +export default createTheme({ + theme: 'dark', + settings: { + background: '#21202e', + foreground: '#edecee', + caret: '#a277ff', + selection: '#5a51898f', + selectionMatch: '#5a51898f', + gutterBackground: '#21202e', + gutterForeground: '#edecee', + gutterBorder: 'transparent', + lineHighlight: '#a394f033', + }, + styles: [ + { tag: t.keyword, color: '#a277ff' }, + { tag: [t.name, t.deleted, t.character, t.macroName], color: '#edecee' }, + { tag: [t.propertyName], color: '#ffca85' }, + { tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)], color: '#61ffca' }, + { tag: [t.function(t.variableName), t.labelName], color: '#ffca85' }, + { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#61ffca' }, + { tag: [t.definition(t.name), t.separator], color: '#edecee' }, + { tag: [t.className], color: '#82e2ff' }, + { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#61ffca' }, + { tag: [t.typeName], color: '#82e2ff' }, + { tag: [t.operator, t.operatorKeyword], color: '#a277ff' }, + { tag: [t.url, t.escape, t.regexp, t.link], color: '#61ffca' }, + { tag: [t.meta, t.comment], color: '#6d6d6d' }, + { tag: t.strong, fontWeight: 'bold' }, + { tag: t.emphasis, fontStyle: 'italic' }, + { tag: t.link, textDecoration: 'underline' }, + { tag: t.heading, fontWeight: 'bold', color: '#a277ff' }, + { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#edecee' }, + { tag: t.invalid, color: '#ff6767' }, + { tag: t.strikethrough, textDecoration: 'line-through' }, + ], +}); diff --git a/packages/codemirror/themes/bbedit.mjs b/packages/codemirror/themes/bbedit.mjs new file mode 100644 index 00000000..535bf9ea --- /dev/null +++ b/packages/codemirror/themes/bbedit.mjs @@ -0,0 +1,46 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + light: true, + background: '#FFFFFF', + lineBackground: '#FFFFFF99', + foreground: '#000000', + caret: '#FBAC52', + selection: '#FFD420', + selectionMatch: '#FFD420', + gutterBackground: '#f5f5f5', + gutterForeground: '#4D4D4C', + gutterBorder: 'transparent', + lineHighlight: '#00000012', +}; + +export default createTheme({ + theme: 'light', + settings: { + background: '#FFFFFF', + foreground: '#000000', + caret: '#FBAC52', + selection: '#FFD420', + selectionMatch: '#FFD420', + gutterBackground: '#f5f5f5', + gutterForeground: '#4D4D4C', + gutterBorder: 'transparent', + lineHighlight: '#00000012', + }, + styles: [ + { tag: [t.meta, t.comment], color: '#804000' }, + { tag: [t.keyword, t.strong], color: '#0000FF' }, + { tag: [t.number], color: '#FF0080' }, + { tag: [t.string], color: '#FF0080' }, + { tag: [t.variableName], color: '#006600' }, + { tag: [t.escape], color: '#33CC33' }, + { tag: [t.tagName], color: '#1C02FF' }, + { tag: [t.heading], color: '#0C07FF' }, + { tag: [t.quote], color: '#000000' }, + { tag: [t.list], color: '#B90690' }, + { tag: [t.documentMeta], color: '#888888' }, + { tag: [t.function(t.variableName)], color: '#0000A2' }, + { tag: [t.definition(t.typeName), t.typeName], color: '#6D79DE' }, + ], +}); diff --git a/packages/codemirror/themes/bespin.mjs b/packages/codemirror/themes/bespin.mjs new file mode 100644 index 00000000..41af821b --- /dev/null +++ b/packages/codemirror/themes/bespin.mjs @@ -0,0 +1,39 @@ +// this is different from https://thememirror.net/bespin +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#28211c', + lineBackground: '#28211c99', + foreground: '#9d9b97', + caret: '#797977', + selection: '#36312e', + selectionMatch: '#4f382b', + gutterBackground: '#28211c', + gutterForeground: '#666666', + lineHighlight: 'rgba(255, 255, 255, 0.1)', +}; +export default createTheme({ + theme: 'dark', + settings: { + background: '#28211c', + foreground: '#9d9b97', + caret: '#797977', + selection: '#4f382b', + selectionMatch: '#4f382b', + gutterBackground: '#28211c', + gutterForeground: '#666666', + lineHighlight: '#ffffff1a', + }, + styles: [ + { tag: [t.atom, t.number, t.link, t.bool], color: '#9b859d' }, + { tag: t.comment, color: '#937121' }, + { tag: [t.keyword, t.tagName], color: '#cf6a4c' }, + { tag: t.string, color: '#f9ee98' }, + { tag: t.bracket, color: '#9d9b97' }, + { tag: [t.variableName], color: '#5ea6ea' }, + { tag: t.definition(t.variableName), color: '#cf7d34' }, + { tag: [t.function(t.variableName), t.className], color: '#cf7d34' }, + { tag: [t.propertyName, t.attributeName], color: '#54be0d' }, + ], +}); diff --git a/packages/codemirror/themes/blackscreen.mjs b/packages/codemirror/themes/blackscreen.mjs index ca67ea9a..2c45df11 100644 --- a/packages/codemirror/themes/blackscreen.mjs +++ b/packages/codemirror/themes/blackscreen.mjs @@ -1,5 +1,5 @@ import { tags as t } from '@lezer/highlight'; -import { createTheme } from '@uiw/codemirror-themes'; +import { createTheme } from './theme-helper.mjs'; export const settings = { background: 'black', foreground: 'white', // whats that? diff --git a/packages/codemirror/themes/bluescreen.mjs b/packages/codemirror/themes/bluescreen.mjs index 4f5dff2f..97d165c9 100644 --- a/packages/codemirror/themes/bluescreen.mjs +++ b/packages/codemirror/themes/bluescreen.mjs @@ -1,5 +1,5 @@ import { tags as t } from '@lezer/highlight'; -import { createTheme } from '@uiw/codemirror-themes'; +import { createTheme } from './theme-helper.mjs'; export const settings = { background: '#051DB5', lineBackground: '#051DB550', diff --git a/packages/codemirror/themes/darcula.mjs b/packages/codemirror/themes/darcula.mjs new file mode 100644 index 00000000..176acbfe --- /dev/null +++ b/packages/codemirror/themes/darcula.mjs @@ -0,0 +1,48 @@ +/** + * @name darcula + * @author darcula + * Name: IntelliJ IDEA darcula theme + * From IntelliJ IDEA by JetBrains + */ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; +export const settings = { + background: '#242424', + lineBackground: '#24242499', + foreground: '#f8f8f2', + caret: '#FFFFFF', + selection: 'rgba(255, 255, 255, 0.1)', + selectionMatch: 'rgba(255, 255, 255, 0.2)', + gutterBackground: 'rgba(255, 255, 255, 0.1)', + gutterForeground: '#999', + gutterBorder: 'transparent', + lineHighlight: 'rgba(255, 255, 255, 0.1)', +}; + +export default createTheme({ + theme: 'dark', + settings: { + background: '#242424', + foreground: '#f8f8f2', + caret: '#FFFFFF', + selection: 'rgba(255, 255, 255, 0.1)', + selectionMatch: 'rgba(255, 255, 255, 0.2)', + gutterBackground: 'transparent', + gutterForeground: '#999', + gutterBorder: 'transparent', + lineHighlight: 'rgba(255, 255, 255, 0.1)', + }, + styles: [ + { tag: t.labelName, color: '#CCCCCC' }, + { tag: [t.atom, t.number], color: '#7A9EC2' }, + { tag: [t.comment], color: '#707070' }, + { tag: [t.string], color: '#6A8759' }, + { tag: [t.variableName, t.operator], color: '#CCCCCC' }, + { tag: [t.function(t.variableName), t.propertyName], color: '#FFC66D' }, + { tag: [t.meta, t.className], color: '#FFC66D' }, + { tag: [t.propertyName], color: '#FFC66D' }, + { tag: [t.keyword], color: '#CC7832' }, + { tag: [t.tagName], color: '#ff79c6' }, + { tag: [t.typeName], color: '#ffb86c' }, + ], +}); diff --git a/packages/codemirror/themes/dracula.mjs b/packages/codemirror/themes/dracula.mjs new file mode 100644 index 00000000..10147eda --- /dev/null +++ b/packages/codemirror/themes/dracula.mjs @@ -0,0 +1,51 @@ +/** + * @name dracula + * @author dracula + * Michael Kaminsky (http://github.com/mkaminsky11) + * Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme) + */ +// this is different from https://thememirror.net/dracula +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#282a36', + lineBackground: '#282a3699', + foreground: '#f8f8f2', + caret: '#f8f8f0', + selection: 'rgba(255, 255, 255, 0.1)', + selectionMatch: 'rgba(255, 255, 255, 0.2)', + gutterBackground: '#282a36', + gutterForeground: '#6272a4', + gutterBorder: 'transparent', + lineHighlight: 'rgba(255, 255, 255, 0.1)', +}; + +const purple = '#BD93F9'; + +export default createTheme({ + theme: 'dark', + settings: { + background: '#282a36', + foreground: '#f8f8f2', + caret: '#f8f8f0', + selection: 'rgba(255, 255, 255, 0.1)', + selectionMatch: 'rgba(255, 255, 255, 0.2)', + gutterBackground: '#282a36', + gutterForeground: '#6272a4', + gutterBorder: 'transparent', + lineHighlight: 'rgba(255, 255, 255, 0.1)', + }, + styles: [ + { tag: t.comment, color: '#6272a4' }, + { tag: t.string, color: '#f1fa8c' }, + { tag: [t.atom, t.number], color: purple }, + { tag: [t.meta, t.labelName, t.variableName], color: '#f8f8f2' }, + { + tag: [t.keyword, t.tagName, t.arithmeticOperator], + color: '#ff79c6', + }, + { tag: [t.function(t.variableName), t.propertyName], color: '#50fa7b' }, + { tag: t.atom, color: '#bd93f9' }, + ], +}); diff --git a/packages/codemirror/themes/duotoneDark.mjs b/packages/codemirror/themes/duotoneDark.mjs new file mode 100644 index 00000000..057302cb --- /dev/null +++ b/packages/codemirror/themes/duotoneDark.mjs @@ -0,0 +1,42 @@ +/** + * @name duotone + * @author Bram de Haan + * by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes) + */ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#2a2734', + lineBackground: '#2a273499', + foreground: '#eeebff', + caret: '#ffad5c', + selection: 'rgba(255, 255, 255, 0.1)', + gutterBackground: '#2a2734', + gutterForeground: '#545167', + lineHighlight: '#36334280', +}; + +export default createTheme({ + theme: 'dark', + settings: { + background: '#2a2734', + foreground: '#6c6783', + caret: '#ffad5c', + selection: '#9a86fd', + selectionMatch: '#9a86fd', + gutterBackground: '#2a2734', + gutterForeground: '#545167', + lineHighlight: '#36334280', + }, + styles: [ + { tag: [t.comment, t.bracket, t.operator], color: '#6c6783' }, + { tag: [t.atom, t.number, t.keyword, t.link, t.attributeName, t.quote], color: '#ffcc99' }, + { tag: [t.emphasis, t.heading, t.tagName, t.propertyName, t.className, t.variableName], color: '#eeebff' }, + { tag: [t.typeName, t.url], color: '#eeebff' }, + { tag: t.string, color: '#ffb870' }, + /* { tag: [t.propertyName], color: '#9a86fd' }, */ + { tag: [t.propertyName], color: '#eeebff' }, + { tag: t.labelName, color: '#eeebff' }, + ], +}); diff --git a/packages/codemirror/themes/duotoneLight.mjs b/packages/codemirror/themes/duotoneLight.mjs new file mode 100644 index 00000000..f7b0214b --- /dev/null +++ b/packages/codemirror/themes/duotoneLight.mjs @@ -0,0 +1,45 @@ +/** + * @name duotone + * @author Bram de Haan + * by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes) + */ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + light: true, + background: '#faf8f5', + lineBackground: '#faf8f599', + foreground: '#b29762', + caret: '#93abdc', + selection: '#e3dcce', + selectionMatch: '#e3dcce', + gutterBackground: '#faf8f5', + gutterForeground: '#cdc4b1', + gutterBorder: 'transparent', + lineHighlight: '#EFEFEF', +}; + +export default createTheme({ + theme: 'light', + settings: { + background: '#faf8f5', + foreground: '#b29762', + caret: '#93abdc', + selection: '#e3dcce', + selectionMatch: '#e3dcce', + gutterBackground: '#faf8f5', + gutterForeground: '#cdc4b1', + gutterBorder: 'transparent', + lineHighlight: '#ddceb154', + }, + styles: [ + { tag: [t.comment, t.bracket], color: '#b6ad9a' }, + { tag: [t.atom, t.number, t.keyword, t.link, t.attributeName, t.quote], color: '#063289' }, + { tag: [t.emphasis, t.heading, t.tagName, t.propertyName, t.variableName], color: '#2d2006' }, + { tag: [t.typeName, t.url, t.string], color: '#896724' }, + { tag: [t.operator, t.string], color: '#1659df' }, + { tag: [t.propertyName], color: '#b29762' }, + { tag: [t.unit, t.punctuation], color: '#063289' }, + ], +}); diff --git a/packages/codemirror/themes/eclipse.mjs b/packages/codemirror/themes/eclipse.mjs new file mode 100644 index 00000000..8082b59d --- /dev/null +++ b/packages/codemirror/themes/eclipse.mjs @@ -0,0 +1,46 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + light: true, + background: '#fff', + lineBackground: '#ffffff99', + foreground: '#000', + caret: '#FFFFFF', + selection: '#d7d4f0', + selectionMatch: '#d7d4f0', + gutterBackground: '#f7f7f7', + gutterForeground: '#999', + lineHighlight: '#e8f2ff', + gutterBorder: 'transparent', +}; + +export default createTheme({ + theme: 'light', + settings: { + background: '#fff', + foreground: '#000', + caret: '#FFFFFF', + selection: '#d7d4f0', + selectionMatch: '#d7d4f0', + gutterBackground: '#f7f7f7', + gutterForeground: '#999', + lineHighlight: '#006fff1c', + gutterBorder: 'transparent', + }, + styles: [ + { tag: [t.comment], color: '#3F7F5F' }, + { tag: [t.documentMeta], color: '#FF1717' }, + { tag: t.keyword, color: '#7F0055', fontWeight: 'bold' }, + { tag: t.atom, color: '#00f' }, + { tag: t.number, color: '#164' }, + { tag: t.propertyName, color: '#164' }, + { tag: [t.variableName, t.definition(t.variableName)], color: '#0000C0' }, + { tag: t.function(t.variableName), color: '#0000C0' }, + { tag: t.string, color: '#2A00FF' }, + { tag: t.operator, color: 'black' }, + { tag: t.tagName, color: '#170' }, + { tag: t.attributeName, color: '#00c' }, + { tag: t.link, color: '#219' }, + ], +}); diff --git a/packages/codemirror/themes/githubDark.mjs b/packages/codemirror/themes/githubDark.mjs new file mode 100644 index 00000000..5187dcc2 --- /dev/null +++ b/packages/codemirror/themes/githubDark.mjs @@ -0,0 +1,45 @@ +/** + * @name github + */ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#0d1117', + lineBackground: '#0d111799', + foreground: '#c9d1d9', + caret: '#c9d1d9', + selection: '#003d73', + selectionMatch: '#003d73', + lineHighlight: '#36334280', +}; + +export default createTheme({ + theme: 'dark', + settings: { + background: '#0d1117', + foreground: '#c9d1d9', + caret: '#c9d1d9', + selection: '#003d73', + selectionMatch: '#003d73', + lineHighlight: '#36334280', + }, + styles: [ + { tag: t.labelName, color: '#d2a8ff' }, + { tag: [t.standard(t.tagName), t.tagName], color: '#7ee787' }, + { tag: [t.comment, t.bracket], color: '#8b949e' }, + { tag: [t.className, t.propertyName], color: '#d2a8ff' }, + { tag: [t.variableName, t.attributeName], color: '#d2a8ff' }, + { tag: [t.number, t.operator], color: '#79c0ff' }, + { tag: [t.keyword, t.typeName, t.typeOperator, t.typeName], color: '#ff7b72' }, + { tag: [t.string, t.meta, t.regexp], color: '#a5d6ff' }, + { tag: [t.name, t.quote], color: '#7ee787' }, + { tag: [t.heading, t.strong], color: '#d2a8ff', fontWeight: 'bold' }, + { tag: [t.emphasis], color: '#d2a8ff', fontStyle: 'italic' }, + { tag: [t.deleted], color: '#ffdcd7', backgroundColor: 'ffeef0' }, + { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#ffab70' }, + { tag: t.link, textDecoration: 'underline' }, + { tag: t.strikethrough, textDecoration: 'line-through' }, + { tag: t.invalid, color: '#f97583' }, + ], +}); diff --git a/packages/codemirror/themes/githubLight.mjs b/packages/codemirror/themes/githubLight.mjs new file mode 100644 index 00000000..382c7ac6 --- /dev/null +++ b/packages/codemirror/themes/githubLight.mjs @@ -0,0 +1,45 @@ +/** + * @name github + */ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + light: true, + background: '#fff', + lineBackground: '#ffffff99', + foreground: '#24292e', + selection: '#BBDFFF', + selectionMatch: '#BBDFFF', + gutterBackground: '#fff', + gutterForeground: '#6e7781', +}; + +export default createTheme({ + theme: 'light', + settings: { + background: '#fff', + foreground: '#24292e', + selection: '#BBDFFF', + selectionMatch: '#BBDFFF', + gutterBackground: '#fff', + gutterForeground: '#6e7781', + }, + styles: [ + { tag: [t.standard(t.tagName), t.tagName], color: '#116329' }, + { tag: [t.comment, t.bracket], color: '#6a737d' }, + { tag: [t.className, t.propertyName], color: '#6f42c1' }, + { tag: [t.variableName, t.attributeName, t.number, t.operator], color: '#005cc5' }, + { tag: [t.keyword, t.typeName, t.typeOperator, t.typeName], color: '#d73a49' }, + { tag: [t.string, t.meta, t.regexp], color: '#032f62' }, + { tag: [t.name, t.quote], color: '#22863a' }, + { tag: [t.heading, t.strong], color: '#24292e', fontWeight: 'bold' }, + { tag: [t.emphasis], color: '#24292e', fontStyle: 'italic' }, + { tag: [t.deleted], color: '#b31d28', backgroundColor: 'ffeef0' }, + { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#e36209' }, + { tag: [t.url, t.escape, t.regexp, t.link], color: '#032f62' }, + { tag: t.link, textDecoration: 'underline' }, + { tag: t.strikethrough, textDecoration: 'line-through' }, + { tag: t.invalid, color: '#cb2431' }, + ], +}); diff --git a/packages/codemirror/themes/gruvboxDark.mjs b/packages/codemirror/themes/gruvboxDark.mjs new file mode 100644 index 00000000..31d7e42c --- /dev/null +++ b/packages/codemirror/themes/gruvboxDark.mjs @@ -0,0 +1,83 @@ +/** + * @name gruvbox-dark + * @author morhetz + * Name: Gruvbox + * From github.com/codemirror/codemirror5/blob/master/theme/gruvbox-dark.css + */ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#282828', + lineBackground: '#28282899', + foreground: '#ebdbb2', + caret: '#ebdbb2', + selection: '#bdae93', + selectionMatch: '#bdae93', + lineHighlight: '#3c3836', + gutterBackground: '#282828', + gutterForeground: '#7c6f64', +}; + +export default createTheme({ + theme: 'dark', + settings: { + background: '#282828', + foreground: '#ebdbb2', + caret: '#ebdbb2', + selection: '#b99d555c', + selectionMatch: '#b99d555c', + lineHighlight: '#baa1602b', + gutterBackground: '#282828', + gutterForeground: '#7c6f64', + }, + styles: [ + { tag: t.keyword, color: '#fb4934' }, + { tag: [t.name, t.deleted, t.character, t.propertyName, t.macroName], color: '#8ec07c' }, + { tag: [t.variableName], color: '#83a598' }, + { tag: [t.function(t.variableName)], color: '#8ec07c', fontStyle: 'bold' }, + { tag: [t.labelName], color: '#ebdbb2' }, + { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#d3869b' }, + { tag: [t.definition(t.name), t.separator], color: '#ebdbb2' }, + { tag: [t.brace], color: '#ebdbb2' }, + { tag: [t.annotation], color: '#fb4934d' }, + { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#d3869b' }, + { tag: [t.typeName, t.className], color: '#fabd2f' }, + { tag: [t.operatorKeyword], color: '#fb4934' }, + { + tag: [t.tagName], + color: '#8ec07c', + fontStyle: 'bold', + }, + { tag: [t.squareBracket], color: '#fe8019' }, + { tag: [t.angleBracket], color: '#83a598' }, + { tag: [t.attributeName], color: '#8ec07c' }, + { tag: [t.regexp], color: '#8ec07c' }, + { tag: [t.quote], color: '#928374' }, + { tag: [t.string], color: '#ebdbb2' }, + { + tag: t.link, + color: '#a89984', + textDecoration: 'underline', + textUnderlinePosition: 'under', + }, + { tag: [t.url, t.escape, t.special(t.string)], color: '#d3869b' }, + { tag: [t.meta], color: '#fabd2f' }, + { tag: [t.comment], color: '#928374', fontStyle: 'italic' }, + { tag: t.strong, fontWeight: 'bold', color: '#fe8019' }, + { tag: t.emphasis, fontStyle: 'italic', color: '#b8bb26' }, + { tag: t.strikethrough, textDecoration: 'line-through' }, + { tag: t.heading, fontWeight: 'bold', color: '#b8bb26' }, + { tag: [t.heading1, t.heading2], fontWeight: 'bold', color: '#b8bb26' }, + { + tag: [t.heading3, t.heading4], + fontWeight: 'bold', + color: '#fabd2f', + }, + { tag: [t.heading5, t.heading6], color: '#fabd2f' }, + { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#d3869b' }, + { tag: [t.processingInstruction, t.inserted], color: '#83a598' }, + { tag: [t.contentSeparator], color: '#fb4934' }, + { tag: t.invalid, color: '#fe8019', borderBottom: `1px dotted #fb4934d` }, + ], +}); diff --git a/packages/codemirror/themes/gruvboxLight.mjs b/packages/codemirror/themes/gruvboxLight.mjs new file mode 100644 index 00000000..ffb4d716 --- /dev/null +++ b/packages/codemirror/themes/gruvboxLight.mjs @@ -0,0 +1,131 @@ +/** + * @name gruvbox-light + * @author morhetz + * Name: Gruvbox + * From github.com/codemirror/codemirror5/blob/master/theme/gruvbox-light.css + */ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + light: true, + background: '#fbf1c7', + lineBackground: '#fbf1c799', + foreground: '#3c3836', + caret: '#af3a03', + selection: '#ebdbb2', + selectionMatch: '#bdae93', + lineHighlight: '#ebdbb2', + gutterBackground: '#ebdbb2', + gutterForeground: '#665c54', + gutterBorder: 'transparent', +}; + +export default createTheme({ + theme: 'light', + settings: { + background: '#fbf1c7', + foreground: '#3c3836', + caret: '#af3a03', + selection: '#bdae9391', + selectionMatch: '#bdae9391', + lineHighlight: '#a37f2238', + gutterBackground: '#ebdbb2', + gutterForeground: '#665c54', + gutterBorder: 'transparent', + }, + styles: [ + { tag: t.keyword, color: '#9d0006' }, + { + tag: [t.name, t.deleted, t.character, t.propertyName, t.macroName], + color: '#427b58', + }, + { tag: [t.variableName], color: '#076678' }, + { tag: [t.function(t.variableName)], color: '#79740e', fontStyle: 'bold' }, + { tag: [t.labelName], color: '#3c3836' }, + { + tag: [t.color, t.constant(t.name), t.standard(t.name)], + color: '#8f3f71', + }, + { tag: [t.definition(t.name), t.separator], color: '#3c3836' }, + { tag: [t.brace], color: '#3c3836' }, + { + tag: [t.annotation], + color: '#9d0006', + }, + { + tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], + color: '#8f3f71', + }, + { + tag: [t.typeName, t.className], + color: '#b57614', + }, + { + tag: [t.operator, t.operatorKeyword], + color: '#9d0006', + }, + { + tag: [t.tagName], + color: '#427b58', + fontStyle: 'bold', + }, + { + tag: [t.squareBracket], + color: '#af3a03', + }, + { + tag: [t.angleBracket], + color: '#076678', + }, + { + tag: [t.attributeName], + color: '#427b58', + }, + { + tag: [t.regexp], + color: '#427b58', + }, + { + tag: [t.quote], + color: '#928374', + }, + { tag: [t.string], color: '#3c3836' }, + { + tag: t.link, + color: '#7c6f64', + textDecoration: 'underline', + textUnderlinePosition: 'under', + }, + { + tag: [t.url, t.escape, t.special(t.string)], + color: '#8f3f71', + }, + { tag: [t.meta], color: '#b57614' }, + { tag: [t.comment], color: '#928374', fontStyle: 'italic' }, + { tag: t.strong, fontWeight: 'bold', color: '#af3a03' }, + { tag: t.emphasis, fontStyle: 'italic', color: '#79740e' }, + { tag: t.strikethrough, textDecoration: 'line-through' }, + { tag: t.heading, fontWeight: 'bold', color: '#79740e' }, + { tag: [t.heading1, t.heading2], fontWeight: 'bold', color: '#79740e' }, + { + tag: [t.heading3, t.heading4], + fontWeight: 'bold', + color: '#b57614', + }, + { + tag: [t.heading5, t.heading6], + color: '#b57614', + }, + { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#8f3f71' }, + { + tag: [t.processingInstruction, t.inserted], + color: '#076678', + }, + { + tag: [t.contentSeparator], + color: '#9d0006', + }, + { tag: t.invalid, color: '#af3a03', borderBottom: `1px dotted #9d0006` }, + ], +}); diff --git a/packages/codemirror/themes/materialDark.mjs b/packages/codemirror/themes/materialDark.mjs new file mode 100644 index 00000000..f1341288 --- /dev/null +++ b/packages/codemirror/themes/materialDark.mjs @@ -0,0 +1,77 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#212121', + lineBackground: '#21212199', + foreground: '#bdbdbd', + caret: '#a0a4ae', + selection: '#d7d4f0', + selectionMatch: '#d7d4f0', + gutterBackground: '#212121', + gutterForeground: '#999', + gutterActiveForeground: '#4f5b66', + lineHighlight: '#111111', +}; + +export default createTheme({ + theme: 'dark', + settings: { + background: '#212121', + foreground: '#bdbdbd', + caret: '#a0a4ae', + selection: '#d7d4f063', + selectionMatch: '#d7d4f063', + gutterBackground: '#212121', + gutterForeground: '#999', + gutterActiveForeground: '#4f5b66', + lineHighlight: '#333333', + }, + styles: [ + { tag: t.keyword, color: '#cf6edf' }, + { tag: [t.name, t.deleted, t.character, t.macroName], color: '#56c8d8' }, + { tag: [t.propertyName], color: '#82AAFF' }, + { tag: [t.variableName], color: '#bdbdbd' }, + { tag: [t.function(t.variableName)], color: '#82AAFF' }, + { tag: [t.labelName], color: '#cf6edf' }, + { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#facf4e' }, + { tag: [t.definition(t.name), t.separator], color: '#56c8d8' }, + { tag: [t.brace], color: '#cf6edf' }, + { tag: [t.annotation], color: '#f07178' }, + { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#f07178' }, + { tag: [t.typeName, t.className], color: '#f07178' }, + { tag: [t.operator, t.operatorKeyword], color: '#82AAFF' }, + { tag: [t.tagName], color: '#99d066' }, + { tag: [t.squareBracket], color: '#f07178' }, + { tag: [t.angleBracket], color: '#606f7a' }, + { tag: [t.attributeName], color: '#bdbdbd' }, + { tag: [t.regexp], color: '#f07178' }, + { tag: [t.quote], color: '#6abf69' }, + { tag: [t.string], color: '#99d066' }, + { + tag: t.link, + color: '#56c8d8', + textDecoration: 'underline', + textUnderlinePosition: 'under', + }, + { tag: [t.url, t.escape, t.special(t.string)], color: '#facf4e' }, + { tag: [t.meta], color: '#707d8b' }, + { tag: [t.comment], color: '#707d8b', fontStyle: 'italic' }, + { tag: t.monospace, color: '#bdbdbd' }, + { tag: t.strong, fontWeight: 'bold', color: '#f07178' }, + { tag: t.emphasis, fontStyle: 'italic', color: '#99d066' }, + { tag: t.strikethrough, textDecoration: 'line-through' }, + { tag: t.heading, fontWeight: 'bold', color: '#facf4e' }, + { tag: t.heading1, fontWeight: 'bold', color: '#facf4e' }, + { + tag: [t.heading2, t.heading3, t.heading4], + fontWeight: 'bold', + color: '#facf4e', + }, + { tag: [t.heading5, t.heading6], color: '#facf4e' }, + { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#56c8d8' }, + { tag: [t.processingInstruction, t.inserted], color: '#f07178' }, + { tag: [t.contentSeparator], color: '#56c8d8' }, + { tag: t.invalid, color: '#606f7a', borderBottom: `1px dotted #f07178` }, + ], +}); diff --git a/packages/codemirror/themes/materialLight.mjs b/packages/codemirror/themes/materialLight.mjs new file mode 100644 index 00000000..d2598c64 --- /dev/null +++ b/packages/codemirror/themes/materialLight.mjs @@ -0,0 +1,52 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + light: true, + background: '#FAFAFA', + lineBackground: '#FAFAFA99', + foreground: '#90A4AE', + caret: '#272727', + selection: '#80CBC440', + selectionMatch: '#FAFAFA', + gutterBackground: '#FAFAFA', + gutterForeground: '#90A4AE', + gutterBorder: 'transparent', + lineHighlight: '#CCD7DA50', +}; +export default createTheme({ + theme: 'light', + settings: { + background: '#FAFAFA', + foreground: '#90A4AE', + caret: '#272727', + selection: '#80CBC440', + selectionMatch: '#80CBC440', + gutterBackground: '#FAFAFA', + gutterForeground: '#90A4AE', + gutterBorder: 'transparent', + lineHighlight: '#CCD7DA50', + }, + styles: [ + { tag: t.keyword, color: '#39ADB5' }, + { tag: [t.name, t.deleted, t.character, t.macroName], color: '#90A4AE' }, + { tag: [t.propertyName], color: '#6182B8' }, + { tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)], color: '#91B859' }, + { tag: [t.function(t.variableName), t.labelName], color: '#6182B8' }, + { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#39ADB5' }, + { tag: [t.definition(t.name), t.separator], color: '#90A4AE' }, + { tag: [t.className], color: '#E2931D' }, + { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#F76D47' }, + { tag: [t.typeName], color: '#E2931D', fontStyle: '#E2931D' }, + { tag: [t.operator, t.operatorKeyword], color: '#39ADB5' }, + { tag: [t.url, t.escape, t.regexp, t.link], color: '#91B859' }, + { tag: [t.meta, t.comment], color: '#90A4AE' }, + { tag: t.strong, fontWeight: 'bold' }, + { tag: t.emphasis, fontStyle: 'italic' }, + { tag: t.link, textDecoration: 'underline' }, + { tag: t.heading, fontWeight: 'bold', color: '#39ADB5' }, + { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#90A4AE' }, + { tag: t.invalid, color: '#E5393570' }, + { tag: t.strikethrough, textDecoration: 'line-through' }, + ], +}); diff --git a/packages/codemirror/themes/monokai.mjs b/packages/codemirror/themes/monokai.mjs new file mode 100644 index 00000000..294b946b --- /dev/null +++ b/packages/codemirror/themes/monokai.mjs @@ -0,0 +1,45 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#272822', + lineBackground: '#27282299', + foreground: '#FFFFFF', + caret: '#FFFFFF', + selection: '#49483E', + selectionMatch: '#49483E', + gutterBackground: '#272822', + gutterForeground: '#FFFFFF70', + lineHighlight: '#00000059', +}; + +export default createTheme({ + theme: 'dark', + settings: { + background: '#272822', + foreground: '#FFFFFF', + caret: '#FFFFFF', + selection: '#49483E', + selectionMatch: '#49483E', + gutterBackground: '#272822', + gutterForeground: '#FFFFFF70', + lineHighlight: '#0000003b', + }, + styles: [ + { tag: t.labelName, color: '#bababa' }, + { tag: [t.comment, t.documentMeta], color: '#8292a2' }, + { tag: [t.number, t.bool, t.null, t.atom], color: '#ae81ff' }, + { tag: [t.attributeValue, t.className, t.name], color: '#e6db74' }, + { tag: [t.propertyName, t.attributeName], color: '#a6e22e' }, + { tag: [t.variableName], color: '#9effff' }, + { tag: [t.squareBracket], color: '#bababa' }, + { tag: [t.string, t.special(t.brace)], color: '#e6db74' }, + { tag: [t.regexp, t.className, t.typeName, t.definition(t.typeName)], color: '#66d9ef' }, + { + tag: [t.definition(t.variableName), t.definition(t.propertyName), t.function(t.variableName)], + color: '#a6e22e', + }, + // { tag: t.keyword, color: '#f92672' }, + { tag: [t.keyword, t.definitionKeyword, t.modifier, t.tagName, t.angleBracket], color: '#f92672' }, + ], +}); diff --git a/packages/codemirror/themes/noctisLilac.mjs b/packages/codemirror/themes/noctisLilac.mjs new file mode 100644 index 00000000..b11c6b40 --- /dev/null +++ b/packages/codemirror/themes/noctisLilac.mjs @@ -0,0 +1,50 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + light: true, + background: '#f2f1f8', + lineBackground: '#f2f1f899', + foreground: '#0c006b', + caret: '#5c49e9', + selection: '#d5d1f2', + selectionMatch: '#d5d1f2', + gutterBackground: '#f2f1f8', + gutterForeground: '#0c006b70', + lineHighlight: '#e1def3', +}; + +export default createTheme({ + theme: 'light', + settings: { + background: '#f2f1f8', + foreground: '#0c006b', + caret: '#5c49e9', + selection: '#d5d1f2', + selectionMatch: '#d5d1f2', + gutterBackground: '#f2f1f8', + gutterForeground: '#0c006b70', + lineHighlight: '#16067911', + }, + styles: [ + { tag: t.comment, color: '#9995b7' }, + { + tag: t.keyword, + color: '#ff5792', + fontWeight: 'bold', + }, + { tag: [t.definitionKeyword, t.modifier], color: '#ff5792' }, + { tag: [t.className, t.tagName, t.definition(t.typeName)], color: '#0094f0' }, + { tag: [t.number, t.bool, t.null, t.special(t.brace)], color: '#5842ff' }, + { tag: [t.definition(t.propertyName), t.function(t.variableName)], color: '#0095a8' }, + { tag: t.typeName, color: '#b3694d' }, + { tag: [t.propertyName, t.variableName], color: '#fa8900' }, + { tag: t.operator, color: '#ff5792' }, + { tag: t.self, color: '#e64100' }, + { tag: [t.string, t.regexp], color: '#00b368' }, + { tag: [t.paren, t.bracket], color: '#0431fa' }, + { tag: t.labelName, color: '#00bdd6' }, + { tag: t.attributeName, color: '#e64100' }, + { tag: t.angleBracket, color: '#9995b7' }, + ], +}); diff --git a/packages/codemirror/themes/nord.mjs b/packages/codemirror/themes/nord.mjs new file mode 100644 index 00000000..ce96bca5 --- /dev/null +++ b/packages/codemirror/themes/nord.mjs @@ -0,0 +1,78 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#2e3440', + lineBackground: '#2e344099', + foreground: '#FFFFFF', + caret: '#FFFFFF', + selection: '#3b4252', + selectionMatch: '#e5e9f0', + gutterBackground: '#2e3440', + gutterForeground: '#4c566a', + gutterActiveForeground: '#d8dee9', + lineHighlight: '#4c566a', +}; + +// Colors from https://www.nordtheme.com/docs/colors-and-palettes +export default createTheme({ + theme: 'dark', + settings: { + background: '#2e3440', + foreground: '#FFFFFF', + caret: '#FFFFFF', + selection: '#00000073', + selectionMatch: '#00000073', + gutterBackground: '#2e3440', + gutterForeground: '#4c566a', + gutterActiveForeground: '#d8dee9', + lineHighlight: '#4c566a29', + }, + styles: [ + { tag: t.keyword, color: '#5e81ac' }, + { tag: [t.name, t.deleted, t.character, t.propertyName, t.macroName], color: '#88c0d0' }, + { tag: [t.variableName], color: '#8fbcbb' }, + { tag: [t.function(t.variableName)], color: '#8fbcbb' }, + { tag: [t.labelName], color: '#81a1c1' }, + { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#5e81ac' }, + { tag: [t.definition(t.name), t.separator], color: '#a3be8c' }, + { tag: [t.brace], color: '#8fbcbb' }, + { tag: [t.annotation], color: '#d30102' }, + { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#b48ead' }, + { tag: [t.typeName, t.className], color: '#ebcb8b' }, + { tag: [t.operator, t.operatorKeyword], color: '#a3be8c' }, + { tag: [t.tagName], color: '#b48ead' }, + { tag: [t.squareBracket], color: '#bf616a' }, + { tag: [t.angleBracket], color: '#d08770' }, + { tag: [t.attributeName], color: '#ebcb8b' }, + { tag: [t.regexp], color: '#5e81ac' }, + { tag: [t.quote], color: '#b48ead' }, + { tag: [t.string], color: '#a3be8c' }, + { + tag: t.link, + color: '#a3be8c', + textDecoration: 'underline', + textUnderlinePosition: 'under', + }, + { tag: [t.url, t.escape, t.special(t.string)], color: '#8fbcbb' }, + { tag: [t.meta], color: '#88c0d0' }, + { tag: [t.monospace], color: '#d8dee9', fontStyle: 'italic' }, + { tag: [t.comment], color: '#4c566a', fontStyle: 'italic' }, + { tag: t.strong, fontWeight: 'bold', color: '#5e81ac' }, + { tag: t.emphasis, fontStyle: 'italic', color: '#5e81ac' }, + { tag: t.strikethrough, textDecoration: 'line-through' }, + { tag: t.heading, fontWeight: 'bold', color: '#5e81ac' }, + { tag: t.special(t.heading1), fontWeight: 'bold', color: '#5e81ac' }, + { tag: t.heading1, fontWeight: 'bold', color: '#5e81ac' }, + { + tag: [t.heading2, t.heading3, t.heading4], + fontWeight: 'bold', + color: '#5e81ac', + }, + { tag: [t.heading5, t.heading6], color: '#5e81ac' }, + { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#d08770' }, + { tag: [t.processingInstruction, t.inserted], color: '#8fbcbb' }, + { tag: [t.contentSeparator], color: '#ebcb8b' }, + { tag: t.invalid, color: '#434c5e', borderBottom: `1px dotted #d30102` }, + ], +}); diff --git a/packages/codemirror/themes/solarizedDark.mjs b/packages/codemirror/themes/solarizedDark.mjs new file mode 100644 index 00000000..c6b645f7 --- /dev/null +++ b/packages/codemirror/themes/solarizedDark.mjs @@ -0,0 +1,79 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#002b36', + lineBackground: '#002b3699', + foreground: '#93a1a1', + caret: '#839496', + selection: '#173541', + selectionMatch: '#aafe661a', + gutterBackground: '#00252f', + gutterForeground: '#839496', + lineHighlight: '#173541', +}; + +const c = { + background: '#002B36', + foreground: '#839496', + selection: '#004454AA', + selectionMatch: '#005A6FAA', + cursor: '#D30102', + dropdownBackground: '#00212B', + dropdownBorder: '#2AA19899', + activeLine: '#00cafe11', + matchingBracket: '#073642', + keyword: '#859900', + storage: '#93A1A1', + variable: '#268BD2', + parameter: '#268BD2', + function: '#268BD2', + string: '#2AA198', + constant: '#CB4B16', + type: '#859900', + class: '#268BD2', + number: '#D33682', + comment: '#586E75', + heading: '#268BD2', + invalid: '#DC322F', + regexp: '#DC322F', + tag: '#268BD2', +}; + +export default createTheme({ + theme: 'dark', + settings: { + background: c.background, + foreground: c.foreground, + caret: c.cursor, + selection: c.selection, + selectionMatch: c.selection, + gutterBackground: c.background, + gutterForeground: c.foreground, + gutterBorder: 'transparent', + lineHighlight: c.activeLine, + }, + styles: [ + { tag: t.keyword, color: c.keyword }, + { tag: [t.name, t.deleted, t.character, t.macroName], color: c.variable }, + { tag: [t.propertyName], color: c.function }, + { tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)], color: c.string }, + { tag: [t.function(t.variableName), t.labelName], color: c.function }, + { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: c.constant }, + { tag: [t.definition(t.name), t.separator], color: c.variable }, + { tag: [t.className], color: c.class }, + { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: c.number }, + { tag: [t.typeName], color: c.type, fontStyle: c.type }, + { tag: [t.operator, t.operatorKeyword], color: c.keyword }, + { tag: [t.url, t.escape, t.regexp, t.link], color: c.regexp }, + { tag: [t.meta, t.comment], color: c.comment }, + { tag: t.tagName, color: c.tag }, + { tag: t.strong, fontWeight: 'bold' }, + { tag: t.emphasis, fontStyle: 'italic' }, + { tag: t.link, textDecoration: 'underline' }, + { tag: t.heading, fontWeight: 'bold', color: c.heading }, + { tag: [t.atom, t.bool, t.special(t.variableName)], color: c.variable }, + { tag: t.invalid, color: c.invalid }, + { tag: t.strikethrough, textDecoration: 'line-through' }, + ], +}); diff --git a/packages/codemirror/themes/solarizedLight.mjs b/packages/codemirror/themes/solarizedLight.mjs new file mode 100644 index 00000000..b6828ff6 --- /dev/null +++ b/packages/codemirror/themes/solarizedLight.mjs @@ -0,0 +1,82 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +// this is slightly different from https://thememirror.net/solarized-light + +export const settings = { + light: true, + background: '#fdf6e3', + lineBackground: '#fdf6e399', + foreground: '#657b83', + caret: '#586e75', + selection: '#dfd9c8', + selectionMatch: '#dfd9c8', + gutterBackground: '#00000010', + gutterForeground: '#657b83', + lineHighlight: '#dfd9c8', +}; + +const c = { + background: '#FDF6E3', + foreground: '#657B83', + selection: '#EEE8D5', + selectionMatch: '#EEE8D5', + cursor: '#657B83', + dropdownBackground: '#EEE8D5', + dropdownBorder: '#D3AF86', + activeLine: '#3d392d11', + matchingBracket: '#EEE8D5', + keyword: '#859900', + storage: '#586E75', + variable: '#268BD2', + parameter: '#268BD2', + function: '#268BD2', + string: '#2AA198', + constant: '#CB4B16', + type: '#859900', + class: '#268BD2', + number: '#D33682', + comment: '#93A1A1', + heading: '#268BD2', + invalid: '#DC322F', + regexp: '#DC322F', + tag: '#268BD2', +}; + +export default createTheme({ + theme: 'light', + settings: { + background: c.background, + foreground: c.foreground, + caret: c.cursor, + selection: c.selection, + selectionMatch: c.selectionMatch, + gutterBackground: c.background, + gutterForeground: c.foreground, + gutterBorder: 'transparent', + lineHighlight: c.activeLine, + }, + styles: [ + { tag: t.keyword, color: c.keyword }, + { tag: [t.name, t.deleted, t.character, t.macroName], color: c.variable }, + { tag: [t.propertyName], color: c.function }, + { tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)], color: c.string }, + { tag: [t.function(t.variableName), t.labelName], color: c.function }, + { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: c.constant }, + { tag: [t.definition(t.name), t.separator], color: c.variable }, + { tag: [t.className], color: c.class }, + { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: c.number }, + { tag: [t.typeName], color: c.type, fontStyle: c.type }, + { tag: [t.operator, t.operatorKeyword], color: c.keyword }, + { tag: [t.url, t.escape, t.regexp, t.link], color: c.regexp }, + { tag: [t.meta, t.comment], color: c.comment }, + { tag: t.tagName, color: c.tag }, + { tag: t.strong, fontWeight: 'bold' }, + { tag: t.emphasis, fontStyle: 'italic' }, + { tag: t.link, textDecoration: 'underline' }, + { tag: t.heading, fontWeight: 'bold', color: c.heading }, + { tag: [t.atom, t.bool, t.special(t.variableName)], color: c.variable }, + { tag: t.invalid, color: c.invalid }, + { tag: t.strikethrough, textDecoration: 'line-through' }, + ], +}); diff --git a/packages/codemirror/themes/strudel-theme.mjs b/packages/codemirror/themes/strudel-theme.mjs index 4ec3ab92..7fd6bb65 100644 --- a/packages/codemirror/themes/strudel-theme.mjs +++ b/packages/codemirror/themes/strudel-theme.mjs @@ -1,19 +1,24 @@ import { tags as t } from '@lezer/highlight'; -import { createTheme } from '@uiw/codemirror-themes'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#222', + lineBackground: '#22222299', + foreground: '#fff', + // foreground: '#75baff', + caret: '#ffcc00', + selection: 'rgba(128, 203, 196, 0.5)', + selectionMatch: '#036dd626', + // lineHighlight: '#8a91991a', // original + lineHighlight: '#00000050', + gutterBackground: 'transparent', + // gutterForeground: '#8a919966', + gutterForeground: '#8a919966', +}; + export default createTheme({ theme: 'dark', - settings: { - background: '#222', - foreground: '#75baff', // whats that? - caret: '#ffcc00', - selection: 'rgba(128, 203, 196, 0.5)', - selectionMatch: '#036dd626', - // lineHighlight: '#8a91991a', // original - lineHighlight: '#00000050', - gutterBackground: 'transparent', - // gutterForeground: '#8a919966', - gutterForeground: '#8a919966', - }, + settings, styles: [ { tag: t.labelName, color: '#89ddff' }, { tag: t.keyword, color: '#c792ea' }, diff --git a/packages/codemirror/themes/sublime.mjs b/packages/codemirror/themes/sublime.mjs new file mode 100644 index 00000000..068b9bac --- /dev/null +++ b/packages/codemirror/themes/sublime.mjs @@ -0,0 +1,43 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#303841', + lineBackground: '#30384199', + foreground: '#FFFFFF', + caret: '#FBAC52', + selection: '#4C5964', + selectionMatch: '#3A546E', + gutterBackground: '#303841', + gutterForeground: '#FFFFFF70', + lineHighlight: '#00000059', +}; + +export default createTheme({ + theme: 'dark', + settings: { + background: '#303841', + foreground: '#FFFFFF', + caret: '#FBAC52', + selection: '#4C5964', + selectionMatch: '#3A546E', + gutterBackground: '#303841', + gutterForeground: '#FFFFFF70', + lineHighlight: '#00000059', + }, + styles: [ + { tag: t.labelName, color: '#A2A9B5' }, + { tag: [t.meta, t.comment], color: '#A2A9B5' }, + { tag: [t.attributeName, t.keyword], color: '#B78FBA' }, + { tag: t.function(t.variableName), color: '#5AB0B0' }, + { tag: [t.string, t.regexp, t.attributeValue], color: '#99C592' }, + { tag: t.operator, color: '#f47954' }, + // { tag: t.moduleKeyword, color: 'red' }, + { tag: [t.tagName, t.modifier], color: '#E35F63' }, + { tag: [t.number, t.definition(t.tagName), t.className, t.definition(t.variableName)], color: '#fbac52' }, + { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#E35F63' }, + { tag: t.variableName, color: '#539ac4' }, + { tag: [t.propertyName, t.typeName], color: '#629ccd' }, + { tag: t.propertyName, color: '#36b7b5' }, + ], +}); diff --git a/packages/codemirror/themes/teletext.mjs b/packages/codemirror/themes/teletext.mjs index 630329c1..7857cb13 100644 --- a/packages/codemirror/themes/teletext.mjs +++ b/packages/codemirror/themes/teletext.mjs @@ -1,5 +1,5 @@ import { tags as t } from '@lezer/highlight'; -import { createTheme } from '@uiw/codemirror-themes'; +import { createTheme } from './theme-helper.mjs'; let colorA = '#6edee4'; //let colorB = 'magenta'; diff --git a/packages/codemirror/themes/terminal.mjs b/packages/codemirror/themes/terminal.mjs index a5b4506f..b07bdb8d 100644 --- a/packages/codemirror/themes/terminal.mjs +++ b/packages/codemirror/themes/terminal.mjs @@ -1,5 +1,5 @@ import { tags as t } from '@lezer/highlight'; -import { createTheme } from '@uiw/codemirror-themes'; +import { createTheme } from './theme-helper.mjs'; export const settings = { background: 'black', foreground: '#41FF00', // whats that? diff --git a/packages/codemirror/themes/theme-helper.mjs b/packages/codemirror/themes/theme-helper.mjs new file mode 100644 index 00000000..ee9bad8e --- /dev/null +++ b/packages/codemirror/themes/theme-helper.mjs @@ -0,0 +1,42 @@ +import { EditorView } from '@codemirror/view'; +import { syntaxHighlighting } from '@codemirror/language'; +import { HighlightStyle } from '@codemirror/language'; + +export const createTheme = ({ theme, settings, styles }) => { + const _theme = EditorView.theme( + { + '&': { + color: settings.foreground, + backgroundColor: settings.background, + }, + '.cm-gutters': { + backgroundColor: settings.gutterBackground, + color: settings.gutterForeground, + //borderRightColor: settings.gutterBorder + }, + '.cm-content': { + caretColor: settings.caret, + }, + '.cm-cursor, .cm-dropCursor': { + borderLeftColor: settings.caret, + }, + '.cm-activeLineGutter': { + // color: settings.gutterActiveForeground + backgroundColor: settings.lineHighlight, + }, + '.cm-activeLine': { + backgroundColor: settings.lineHighlight, + }, + '&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection': + { + background: settings.selection + ' !important', + }, + '& .cm-selectionMatch': { + backgroundColor: settings.selectionMatch, + }, + }, + { dark: theme === 'dark' }, + ); + const highlightStyle = HighlightStyle.define(styles); + return [_theme, syntaxHighlighting(highlightStyle)]; +}; diff --git a/packages/codemirror/themes/tokioNightStorm.mjs b/packages/codemirror/themes/tokioNightStorm.mjs new file mode 100644 index 00000000..be973d52 --- /dev/null +++ b/packages/codemirror/themes/tokioNightStorm.mjs @@ -0,0 +1,52 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#24283b', + lineBackground: '#24283b99', + foreground: '#7982a9', + caret: '#c0caf5', + selection: '#6f7bb630', + selectionMatch: '#1f2335', + gutterBackground: '#24283b', + gutterForeground: '#7982a9', + gutterBorder: 'transparent', + lineHighlight: '#292e42', +}; + +export default createTheme({ + theme: 'dark', + settings: { + background: '#24283b', + foreground: '#7982a9', + caret: '#c0caf5', + selection: '#6f7bb630', + selectionMatch: '#343b5f', + gutterBackground: '#24283b', + gutterForeground: '#7982a9', + gutterBorder: 'transparent', + lineHighlight: '#292e427a', + }, + styles: [ + { tag: t.keyword, color: '#bb9af7' }, + { tag: [t.name, t.deleted, t.character, t.macroName], color: '#c0caf5' }, + { tag: [t.propertyName], color: '#7aa2f7' }, + { tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)], color: '#9ece6a' }, + { tag: [t.function(t.variableName), t.labelName], color: '#7aa2f7' }, + { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#bb9af7' }, + { tag: [t.definition(t.name), t.separator], color: '#c0caf5' }, + { tag: [t.className], color: '#c0caf5' }, + { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#ff9e64' }, + { tag: [t.typeName], color: '#2ac3de', fontStyle: '#2ac3de' }, + { tag: [t.operator, t.operatorKeyword], color: '#bb9af7' }, + { tag: [t.url, t.escape, t.regexp, t.link], color: '#b4f9f8' }, + { tag: [t.meta, t.comment], color: '#565f89' }, + { tag: t.strong, fontWeight: 'bold' }, + { tag: t.emphasis, fontStyle: 'italic' }, + { tag: t.link, textDecoration: 'underline' }, + { tag: t.heading, fontWeight: 'bold', color: '#89ddff' }, + { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#c0caf5' }, + { tag: t.invalid, color: '#ff5370' }, + { tag: t.strikethrough, textDecoration: 'line-through' }, + ], +}); diff --git a/packages/codemirror/themes/tokyoNight.mjs b/packages/codemirror/themes/tokyoNight.mjs new file mode 100644 index 00000000..c325b4ad --- /dev/null +++ b/packages/codemirror/themes/tokyoNight.mjs @@ -0,0 +1,52 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#1a1b26', + lineBackground: '#1a1b2699', + foreground: '#787c99', + caret: '#c0caf5', + selection: '#515c7e40', + selectionMatch: '#16161e', + gutterBackground: '#1a1b26', + gutterForeground: '#787c99', + gutterBorder: 'transparent', + lineHighlight: '#1e202e', +}; + +export default createTheme({ + theme: 'dark', + settings: { + background: '#1a1b26', + foreground: '#787c99', + caret: '#c0caf5', + selection: '#515c7e40', + selectionMatch: '#16161e', + gutterBackground: '#1a1b26', + gutterForeground: '#787c99', + gutterBorder: 'transparent', + lineHighlight: '#474b6611', + }, + styles: [ + { tag: t.keyword, color: '#bb9af7' }, + { tag: [t.name, t.deleted, t.character, t.macroName], color: '#c0caf5' }, + { tag: [t.propertyName], color: '#7aa2f7' }, + { tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)], color: '#9ece6a' }, + { tag: [t.function(t.variableName), t.labelName], color: '#7aa2f7' }, + { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#bb9af7' }, + { tag: [t.definition(t.name), t.separator], color: '#c0caf5' }, + { tag: [t.className], color: '#c0caf5' }, + { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#ff9e64' }, + { tag: [t.typeName], color: '#0db9d7' }, + { tag: [t.operator, t.operatorKeyword], color: '#bb9af7' }, + { tag: [t.url, t.escape, t.regexp, t.link], color: '#b4f9f8' }, + { tag: [t.meta, t.comment], color: '#444b6a' }, + { tag: t.strong, fontWeight: 'bold' }, + { tag: t.emphasis, fontStyle: 'italic' }, + { tag: t.link, textDecoration: 'underline' }, + { tag: t.heading, fontWeight: 'bold', color: '#89ddff' }, + { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#c0caf5' }, + { tag: t.invalid, color: '#ff5370' }, + { tag: t.strikethrough, textDecoration: 'line-through' }, + ], +}); diff --git a/packages/codemirror/themes/tokyoNightDay.mjs b/packages/codemirror/themes/tokyoNightDay.mjs new file mode 100644 index 00000000..1cd58a41 --- /dev/null +++ b/packages/codemirror/themes/tokyoNightDay.mjs @@ -0,0 +1,53 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + light: true, + background: '#e1e2e7', + lineBackground: '#e1e2e799', + foreground: '#3760bf', + caret: '#3760bf', + selection: '#99a7df', + selectionMatch: '#99a7df', + gutterBackground: '#e1e2e7', + gutterForeground: '#3760bf', + gutterBorder: 'transparent', + lineHighlight: '#5f5faf11', +}; + +export default createTheme({ + theme: 'light', + settings: { + background: '#e1e2e7', + foreground: '#3760bf', + caret: '#3760bf', + selection: '#99a7df', + selectionMatch: '#99a7df', + gutterBackground: '#e1e2e7', + gutterForeground: '#3760bf', + gutterBorder: 'transparent', + lineHighlight: '#5f5faf11', + }, + styles: [ + { tag: t.keyword, color: '#007197' }, + { tag: [t.name, t.deleted, t.character, t.macroName], color: '#3760bf' }, + { tag: [t.propertyName], color: '#3760bf' }, + { tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)], color: '#587539' }, + { tag: [t.function(t.variableName), t.labelName], color: '#3760bf' }, + { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#3760bf' }, + { tag: [t.definition(t.name), t.separator], color: '#3760bf' }, + { tag: [t.className], color: '#3760bf' }, + { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#b15c00' }, + { tag: [t.typeName], color: '#007197', fontStyle: '#007197' }, + { tag: [t.operator, t.operatorKeyword], color: '#007197' }, + { tag: [t.url, t.escape, t.regexp, t.link], color: '#587539' }, + { tag: [t.meta, t.comment], color: '#848cb5' }, + { tag: t.strong, fontWeight: 'bold' }, + { tag: t.emphasis, fontStyle: 'italic' }, + { tag: t.link, textDecoration: 'underline' }, + { tag: t.heading, fontWeight: 'bold', color: '#b15c00' }, + { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#3760bf' }, + { tag: t.invalid, color: '#f52a65' }, + { tag: t.strikethrough, textDecoration: 'line-through' }, + ], +}); diff --git a/packages/codemirror/themes/vscodeDark.mjs b/packages/codemirror/themes/vscodeDark.mjs new file mode 100644 index 00000000..703790fd --- /dev/null +++ b/packages/codemirror/themes/vscodeDark.mjs @@ -0,0 +1,80 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#1e1e1e', + lineBackground: '#1e1e1e99', + foreground: '#fff', + caret: '#c6c6c6', + selection: '#6199ff2f', + selectionMatch: '#72a1ff59', + lineHighlight: '#ffffff0f', + gutterBackground: '#1e1e1e', + gutterForeground: '#838383', + gutterActiveForeground: '#fff', +}; + +export default createTheme({ + theme: 'dark', + settings: { + background: '#1e1e1e', + foreground: '#fff', + caret: '#c6c6c6', + selection: '#6199ff2f', + selectionMatch: '#72a1ff59', + lineHighlight: '#ffffff0f', + gutterBackground: '#1e1e1e', + gutterForeground: '#838383', + gutterActiveForeground: '#fff', + fontFamily: 'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace', + }, + styles: [ + { + tag: [ + t.keyword, + t.operatorKeyword, + t.modifier, + t.color, + t.constant(t.name), + t.standard(t.name), + t.standard(t.tagName), + t.special(t.brace), + t.atom, + t.bool, + t.special(t.variableName), + ], + color: '#569cd6', + }, + { tag: [t.controlKeyword, t.moduleKeyword], color: '#c586c0' }, + { + tag: [ + t.name, + t.deleted, + t.character, + t.macroName, + t.propertyName, + t.variableName, + t.labelName, + t.definition(t.name), + ], + color: '#9cdcfe', + }, + { tag: t.heading, fontWeight: 'bold', color: '#9cdcfe' }, + { + tag: [t.typeName, t.className, t.tagName, t.number, t.changed, t.annotation, t.self, t.namespace], + color: '#4ec9b0', + }, + { tag: [t.function(t.variableName), t.function(t.propertyName)], color: '#dcdcaa' }, + { tag: [t.number], color: '#b5cea8' }, + { tag: [t.operator, t.punctuation, t.separator, t.url, t.escape, t.regexp], color: '#d4d4d4' }, + { tag: [t.regexp], color: '#d16969' }, + { tag: [t.special(t.string), t.processingInstruction, t.string, t.inserted], color: '#ce9178' }, + { tag: [t.angleBracket], color: '#808080' }, + { tag: t.strong, fontWeight: 'bold' }, + { tag: t.emphasis, fontStyle: 'italic' }, + { tag: t.strikethrough, textDecoration: 'line-through' }, + { tag: [t.meta, t.comment], color: '#6a9955' }, + { tag: t.link, color: '#6a9955', textDecoration: 'underline' }, + { tag: t.invalid, color: '#ff0000' }, + ], +}); diff --git a/packages/codemirror/themes/vscodeLight.mjs b/packages/codemirror/themes/vscodeLight.mjs new file mode 100644 index 00000000..9a734511 --- /dev/null +++ b/packages/codemirror/themes/vscodeLight.mjs @@ -0,0 +1,81 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#ffffff', + lineBackground: '#ffffff50', + foreground: '#383a42', + caret: '#000', + selection: '#add6ff', + selectionMatch: '#a8ac94', + lineHighlight: '#99999926', + gutterBackground: '#fff', + gutterForeground: '#237893', + gutterActiveForeground: '#0b216f', + fontFamily: 'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace', +}; + +export default createTheme({ + theme: 'light', + settings: { + background: '#ffffff', + foreground: '#383a42', + caret: '#000', + selection: '#add6ff', + selectionMatch: '#a8ac94', + lineHighlight: '#99999926', + gutterBackground: '#fff', + gutterForeground: '#237893', + gutterActiveForeground: '#0b216f', + fontFamily: 'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace', + }, + styles: [ + { + tag: [ + t.keyword, + t.operatorKeyword, + t.modifier, + t.color, + t.constant(t.name), + t.standard(t.name), + t.standard(t.tagName), + t.special(t.brace), + t.atom, + t.bool, + t.special(t.variableName), + ], + color: '#0000ff', + }, + { tag: [t.moduleKeyword, t.controlKeyword], color: '#af00db' }, + { + tag: [ + t.name, + t.deleted, + t.character, + t.macroName, + t.propertyName, + t.variableName, + t.labelName, + t.definition(t.name), + ], + color: '#0070c1', + }, + { tag: t.heading, fontWeight: 'bold', color: '#0070c1' }, + { + tag: [t.typeName, t.className, t.tagName, t.number, t.changed, t.annotation, t.self, t.namespace], + color: '#267f99', + }, + { tag: [t.function(t.variableName), t.function(t.propertyName)], color: '#795e26' }, + { tag: [t.number], color: '#098658' }, + { tag: [t.operator, t.punctuation, t.separator, t.url, t.escape, t.regexp], color: '#383a42' }, + { tag: [t.regexp], color: '#af00db' }, + { tag: [t.special(t.string), t.processingInstruction, t.string, t.inserted], color: '#a31515' }, + { tag: [t.angleBracket], color: '#383a42' }, + { tag: t.strong, fontWeight: 'bold' }, + { tag: t.emphasis, fontStyle: 'italic' }, + { tag: t.strikethrough, textDecoration: 'line-through' }, + { tag: [t.meta, t.comment], color: '#008000' }, + { tag: t.link, color: '#4078f2', textDecoration: 'underline' }, + { tag: t.invalid, color: '#e45649' }, + ], +}); diff --git a/packages/codemirror/themes/whitescreen.mjs b/packages/codemirror/themes/whitescreen.mjs index ff860537..a2937c38 100644 --- a/packages/codemirror/themes/whitescreen.mjs +++ b/packages/codemirror/themes/whitescreen.mjs @@ -1,5 +1,5 @@ import { tags as t } from '@lezer/highlight'; -import { createTheme } from '@uiw/codemirror-themes'; +import { createTheme } from './theme-helper.mjs'; export const settings = { background: 'white', foreground: 'black', // whats that? diff --git a/packages/codemirror/themes/xcodeDark.mjs b/packages/codemirror/themes/xcodeDark.mjs new file mode 100644 index 00000000..41440cfd --- /dev/null +++ b/packages/codemirror/themes/xcodeDark.mjs @@ -0,0 +1,34 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + background: '#292A30', + lineBackground: '#292A3099', + foreground: '#CECFD0', + caret: '#fff', + selection: '#727377', + selectionMatch: '#727377', + lineHighlight: '#2F3239', +}; + +export default createTheme({ + theme: 'dark', + settings: { + background: '#292A30', + foreground: '#CECFD0', + caret: '#fff', + selection: '#727377', + selectionMatch: '#727377', + lineHighlight: '#ffffff0f', + }, + styles: [ + { tag: [t.comment, t.quote], color: '#7F8C98' }, + { tag: [t.keyword], color: '#FF7AB2', fontWeight: 'bold' }, + { tag: [t.string, t.meta], color: '#FF8170' }, + { tag: [t.typeName], color: '#DABAFF' }, + { tag: [t.definition(t.variableName)], color: '#6BDFFF' }, + { tag: [t.name], color: '#6BAA9F' }, + { tag: [t.variableName], color: '#ACF2E4' }, + { tag: [t.regexp, t.link], color: '#FF8170' }, + ], +}); diff --git a/packages/codemirror/themes/xcodeLight.mjs b/packages/codemirror/themes/xcodeLight.mjs new file mode 100644 index 00000000..8977c133 --- /dev/null +++ b/packages/codemirror/themes/xcodeLight.mjs @@ -0,0 +1,38 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; + +export const settings = { + light: true, + background: '#fff', + lineBackground: '#ffffff99', + foreground: '#3D3D3D', + selection: '#BBDFFF', + selectionMatch: '#BBDFFF', + gutterBackground: '#fff', + gutterForeground: '#AFAFAF', + lineHighlight: '#EDF4FF', +}; + +export default createTheme({ + theme: 'light', + settings: { + background: '#fff', + foreground: '#3D3D3D', + selection: '#BBDFFF', + selectionMatch: '#BBDFFF', + gutterBackground: '#fff', + gutterForeground: '#AFAFAF', + lineHighlight: '#d5e6ff69', + }, + styles: [ + { tag: [t.comment, t.quote], color: '#707F8D' }, + { tag: [t.typeName, t.typeOperator], color: '#aa0d91' }, + { tag: [t.keyword], color: '#aa0d91', fontWeight: 'bold' }, + { tag: [t.string, t.meta], color: '#D23423' }, + { tag: [t.name], color: '#032f62' }, + { tag: [t.typeName], color: '#522BB2' }, + { tag: [t.variableName], color: '#23575C' }, + { tag: [t.definition(t.variableName)], color: '#327A9E' }, + { tag: [t.regexp, t.link], color: '#0e0eff' }, + ], +}); diff --git a/packages/codemirror/widget.mjs b/packages/codemirror/widget.mjs index 72b4ec65..42d3b151 100644 --- a/packages/codemirror/widget.mjs +++ b/packages/codemirror/widget.mjs @@ -133,3 +133,10 @@ registerWidget('_pitchwheel', (id, options = {}, pat) => { const ctx = getCanvasWidget(id, options).getContext('2d'); return pat.pitchwheel({ ...options, ctx, id }); }); + +registerWidget('_spectrum', (id, options = {}, pat) => { + let _size = options.size || 200; + options = { width: _size, height: _size, ...options, size: _size / 5 }; + const ctx = getCanvasWidget(id, options).getContext('2d'); + return pat.spectrum({ ...options, ctx, id }); +}); diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index 5a275294..3d3530d5 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -47,12 +47,16 @@ export function createParam(names) { return func; } +// maps control alias names to the "main" control name +const controlAlias = new Map(); + export function registerControl(names, ...aliases) { const name = Array.isArray(names) ? names[0] : names; let bag = {}; bag[name] = createParam(names); aliases.forEach((alias) => { bag[alias] = bag[name]; + controlAlias.set(alias, name); Pattern.prototype[alias] = Pattern.prototype[name]; }); return bag; @@ -1614,3 +1618,26 @@ export const ar = register('ar', (t, pat) => { const [attack, release = attack] = t; return pat.set({ attack, release }); }); + +export const getControlName = (alias) => { + if (controlAlias.has(alias)) { + return controlAlias.get(alias); + } + return alias; +}; + +/** + * Sets properties in a batch. + * + * @name as + * @param {Array} mapping the control names that are set + * @example + * "c:.5 a:1 f:.25 e:.8".as("note:clip") + */ +export const as = register('as', (mapping, pat) => { + return pat.fmap((v) => { + v = Array.isArray(v) ? v : [v]; + v = Object.fromEntries(mapping.map((prop, i) => [getControlName(prop), v[i]])); + return v; + }); +}); diff --git a/packages/core/package.json b/packages/core/package.json index 20356d39..9123259a 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -31,11 +31,11 @@ }, "homepage": "https://strudel.cc", "dependencies": { - "fraction.js": "^4.3.7" + "fraction.js": "^5.2.1" }, "gitHead": "0e26d4e741500f5bae35b023608f062a794905c2", "devDependencies": { - "vite": "^5.0.10", - "vitest": "^2.1.3" + "vite": "^6.0.11", + "vitest": "^3.0.4" } } diff --git a/packages/core/pattern.mjs b/packages/core/pattern.mjs index f3f19f87..72d3b100 100644 --- a/packages/core/pattern.mjs +++ b/packages/core/pattern.mjs @@ -1023,6 +1023,7 @@ function _composeOp(a, b, func) { div: [numeralArgs((a, b) => a / b)], mod: [numeralArgs(_mod)], pow: [numeralArgs(Math.pow)], + log2: [numeralArgs(Math.log2)], band: [numeralArgs((a, b) => a & b)], bor: [numeralArgs((a, b) => a | b)], bxor: [numeralArgs((a, b) => a ^ b)], @@ -1491,6 +1492,14 @@ function _sequenceCount(x) { export const mask = curry((a, b) => reify(b).mask(a)); export const struct = curry((a, b) => reify(b).struct(a)); export const superimpose = curry((a, b) => reify(b).superimpose(...a)); +export const withValue = curry((a, b) => reify(b).withValue(a)); + +export const bind = curry((a, b) => reify(b).bind(a)); +export const innerBind = curry((a, b) => reify(b).innerBind(a)); +export const outerBind = curry((a, b) => reify(b).outerBind(a)); +export const squeezeBind = curry((a, b) => reify(b).squeezeBind(a)); +export const stepBind = curry((a, b) => reify(b).stepBind(a)); +export const polyBind = curry((a, b) => reify(b).polyBind(a)); // operators export const set = curry((a, b) => reify(b).set(a)); @@ -2539,6 +2548,10 @@ Pattern.prototype.stepJoin = function () { return new Pattern(q, first_t); }; +Pattern.prototype.stepBind = function (func) { + return this.fmap(func).stepJoin(); +}; + export function _retime(timedHaps) { const occupied_perc = timedHaps.filter((t, pat) => pat.hasTactus).reduce((a, b) => a.add(b), Fraction(0)); const occupied_tactus = removeUndefineds(timedHaps.map((t, pat) => pat.tactus)).reduce( @@ -3100,3 +3113,25 @@ export let xfade = (a, pos, b) => { Pattern.prototype.xfade = function (pos, b) { return xfade(this, pos, b); }; + +/** + * creates a structure pattern from divisions of a cycle + * especially useful for creating rhythms + * @name beat + * @example + * s("bd").beat("0,7,10", 16) + * @example + * s("sd").beat("4,12", 16) + */ +const __beat = (join) => (t, div, pat) => { + t = Fraction(t).mod(div); + div = Fraction(div); + const b = t.div(div); + const e = t.add(1).div(div); + return join(pat.fmap((x) => pure(x)._compress(b, e))); +}; + +export const { beat } = register( + ['beat'], + __beat((x) => x.innerJoin()), +); diff --git a/packages/core/repl.mjs b/packages/core/repl.mjs index 560c9d33..e703909f 100644 --- a/packages/core/repl.mjs +++ b/packages/core/repl.mjs @@ -63,11 +63,13 @@ export function repl({ let pPatterns = {}; let anonymousIndex = 0; let allTransform; + let eachTransform; const hush = function () { pPatterns = {}; anonymousIndex = 0; allTransform = undefined; + eachTransform = undefined; return silence; }; @@ -84,15 +86,42 @@ export function repl({ const toggle = () => scheduler.toggle(); const setCps = (cps) => scheduler.setCps(cps); const setCpm = (cpm) => scheduler.setCps(cpm / 60); + + // TODO - not documented as jsdoc examples as the test framework doesn't simulate enough context for `each` and `all`.. + + /** Applies a function to all the running patterns. Note that the patterns are groups together into a single `stack` before the function is applied. This is probably what you want, but see `each` for + * a version that applies the function to each pattern separately. + * ``` + * $: sound("bd - cp sd") + * $: sound("hh*8") + * all(fast("<2 3>")) + * ``` + * ``` + * $: sound("bd - cp sd") + * $: sound("hh*8") + * all(x => x.pianoroll()) + * ``` + */ const all = function (transform) { allTransform = transform; return silence; }; + /** Applies a function to each of the running patterns separately. This is intended for future use with upcoming 'stepwise' features. See `all` for a version that applies the function to all the patterns stacked together into a single pattern. + * ``` + * $: sound("bd - cp sd") + * $: sound("hh*8") + * each(fast("<2 3>")) + * ``` + */ + const each = function (transform) { + eachTransform = transform; + return silence; + }; // set pattern methods that use this repl via closure const injectPatternMethods = () => { Pattern.prototype.p = function (id) { - if (id.startsWith('_') || id.endsWith('_')) { + if (typeof id === 'string' && (id.startsWith('_') || id.endsWith('_'))) { // allows muting a pattern x with x_ or _x return silence; } @@ -131,6 +160,7 @@ export function repl({ }); return evalScope({ all, + each, hush, cpm, setCps, @@ -153,11 +183,15 @@ export function repl({ let { pattern, meta } = await _evaluate(code, transpiler, transpilerOptions); if (Object.keys(pPatterns).length) { let patterns = Object.values(pPatterns); - if (allTransform) { - patterns = patterns.map(allTransform); + if (eachTransform) { + // Explicit lambda so only element (not index and array) are passed + patterns = patterns.map((x) => eachTransform(x)); } pattern = stack(...patterns); - } else if (allTransform) { + } else if (eachTransform) { + pattern = eachTransform(pattern); + } + if (allTransform) { pattern = allTransform(pattern); } if (!isPattern(pattern)) { diff --git a/packages/core/signal.mjs b/packages/core/signal.mjs index 215eac2f..319ab1cc 100644 --- a/packages/core/signal.mjs +++ b/packages/core/signal.mjs @@ -5,9 +5,10 @@ This program is free software: you can redistribute it and/or modify it under th */ import { Hap } from './hap.mjs'; -import { Pattern, fastcat, reify, silence, stack, register } from './pattern.mjs'; +import { Pattern, fastcat, pure, register, reify, silence, stack } from './pattern.mjs'; import Fraction from './fraction.mjs'; -import { id, _mod } from './util.mjs'; + +import { id, keyAlias, getCurrentKeyboardState } from './util.mjs'; export function steady(value) { // A continuous value @@ -159,6 +160,37 @@ const timeToRands = (t, n) => timeToRandsPrime(timeToIntSeed(t), n); */ export const run = (n) => saw.range(0, n).floor().segment(n); +/** + * Creates a pattern from a binary number. + * + * @name binary + * @param {number} n - input number to convert to binary + * @example + * "hh".s().struct(binary(5)) + * // "hh".s().struct("1 0 1") + */ +export const binary = (n) => { + const nBits = reify(n).log2(0).floor().add(1); + return binaryN(n, nBits); +}; + +/** + * Creates a pattern from a binary number, padded to n bits long. + * + * @name binaryN + * @param {number} n - input number to convert to binary + * @param {number} nBits - pattern length, defaults to 16 + * @example + * "hh".s().struct(binaryN(55532, 16)) + * // "hh".s().struct("1 1 0 1 1 0 0 0 1 1 1 0 1 1 0 0") + */ +export const binaryN = (n, nBits = 16) => { + nBits = reify(nBits); + // Shift and mask, putting msb on the right-side + const bitPos = run(nBits).mul(-1).add(nBits.sub(1)); + return reify(n).segment(nBits).brshift(bitPos).band(pure(1)); +}; + export const randrun = (n) => { return signal((t) => { // Without adding 0.5, the first cycle is always 0,1,2,3,... @@ -639,3 +671,48 @@ export const never = register('never', function (_, pat) { export const always = register('always', function (func, pat) { return func(pat); }); + +//keyname: string | Array +//keyname reference: https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values +export function _keyDown(keyname) { + if (Array.isArray(keyname) === false) { + keyname = [keyname]; + } + const keyState = getCurrentKeyboardState(); + return keyname.every((x) => { + const keyName = keyAlias.get(x) ?? x; + return keyState[keyName]; + }); +} + +/** + * + * Do something on a keypress, or array of keypresses + * [Key name reference](https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values) + * + * @name whenKey + * @memberof Pattern + * @returns Pattern + * @example + * s("bd(5,8)").whenKey("Control:j", x => x.segment(16).color("red")).whenKey("Control:i", x => x.fast(2).color("blue")) + */ + +export const whenKey = register('whenKey', function (input, func, pat) { + return pat.when(_keyDown(input), func); +}); + +/** + * + * returns true when a key or array of keys is held + * [Key name reference](https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values) + * + * @name keyDown + * @memberof Pattern + * @returns Pattern + * @example + * keyDown("Control:j").pick([s("bd(5,8)"), s("cp(3,8)")]) + */ + +export const keyDown = register('keyDown', function (pat) { + return pat.fmap(_keyDown); +}); diff --git a/packages/core/test/controls.test.mjs b/packages/core/test/controls.test.mjs index 3b926685..9dcbd830 100644 --- a/packages/core/test/controls.test.mjs +++ b/packages/core/test/controls.test.mjs @@ -4,7 +4,7 @@ Copyright (C) 2023 Strudel contributors - see . */ -import { s, pan } from '../controls.mjs'; +import { s, pan, getControlName } from '../controls.mjs'; import { mini } from '../../mini/mini.mjs'; import { describe, it, expect } from 'vitest'; import Fraction from '../fraction.mjs'; @@ -39,4 +39,8 @@ describe('controls', () => { it('combines tactus of the pattern for .mix as lcm', () => { expect(s(mini('bd cp mt').set.mix(pan(mini('1 2 3 4')))).tactus).toEqual(Fraction(12)); }); + it('finds control name by alias', () => { + expect(getControlName('lpf')).toEqual('cutoff'); + expect(getControlName('cutoff')).toEqual('cutoff'); + }); }); diff --git a/packages/core/test/pattern.test.mjs b/packages/core/test/pattern.test.mjs index 31ec4868..7e6d8fd8 100644 --- a/packages/core/test/pattern.test.mjs +++ b/packages/core/test/pattern.test.mjs @@ -46,6 +46,7 @@ import { rev, time, run, + binaryN, pick, stackLeft, stackRight, @@ -958,6 +959,18 @@ describe('Pattern', () => { expect(run(4).firstCycle()).toStrictEqual(sequence(0, 1, 2, 3).firstCycle()); }); }); + describe('binaryN', () => { + it('Can make a binary pattern from a decimal', () => { + expect(binaryN(55532).firstCycle()).toStrictEqual( + sequence(1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0).firstCycle(), + ); + }); + it('Can make a binary pattern from patterned inputs', () => { + expect(binaryN(pure(0x1337), pure(14)).firstCycle()).toStrictEqual( + sequence(0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1).firstCycle(), + ); + }); + }); describe('ribbon', () => { it('Can ribbon', () => { expect(cat(0, 1, 2, 3, 4, 5, 6, 7).ribbon(2, 4).fast(4).firstCycle()).toStrictEqual( diff --git a/packages/core/util.mjs b/packages/core/util.mjs index bc844057..b7b1e841 100644 --- a/packages/core/util.mjs +++ b/packages/core/util.mjs @@ -434,6 +434,38 @@ function getUnixTimeSeconds() { return Date.now() * 0.001; } +export const keyAlias = new Map([ + ['control', 'Control'], + ['ctrl', 'Control'], + ['alt', 'Alt'], + ['shift', 'Shift'], + ['down', 'ArrowDown'], + ['up', 'ArrowUp'], + ['left', 'ArrowLeft'], + ['right', 'ArrowRight'], +]); +let keyState; + +export function getCurrentKeyboardState() { + if (keyState == null) { + if (typeof window === 'undefined') { + return; + } + keyState = {}; + // Listen for the keydown event to mark the key as pressed + window.addEventListener('keydown', (event) => { + keyState[event.key] = true; // Mark the key as pressed + }); + + // Listen for the keyup event to mark the key as released + window.addEventListener('keyup', (event) => { + keyState[event.key] = false; // Mark the key as released + }); + } + + return { ...keyState }; // Return a shallow copy of the key state object +} + // Floating point versions, see Fraction for rational versions // // greatest common divisor // export const gcd = function (x, y, ...z) { diff --git a/packages/csound/package.json b/packages/csound/package.json index 70967f21..cf71dfbc 100644 --- a/packages/csound/package.json +++ b/packages/csound/package.json @@ -37,6 +37,6 @@ "@strudel/webaudio": "workspace:*" }, "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/packages/desktopbridge/package.json b/packages/desktopbridge/package.json index bd2d5980..45e89f44 100644 --- a/packages/desktopbridge/package.json +++ b/packages/desktopbridge/package.json @@ -1,29 +1,29 @@ { - "name": "@strudel/desktopbridge", - "version": "0.1.0", - "private": true, - "description": "tools/shims for communicating between the JS and Tauri (Rust) sides of the Studel desktop app", - "main": "index.mjs", - "type": "module", - "repository": { - "type": "git", - "url": "git+https://github.com/tidalcycles/strudel.git" - }, - "keywords": [ - "tidalcycles", - "strudel", - "pattern", - "livecoding", - "algorave" - ], - "author": "Jade Rowland ", - "license": "AGPL-3.0-or-later", - "bugs": { - "url": "https://github.com/tidalcycles/strudel/issues" - }, - "dependencies": { - "@strudel/core": "workspace:*", - "@tauri-apps/api": "^1.5.3" - }, - "homepage": "https://github.com/tidalcycles/strudel#readme" - } \ No newline at end of file + "name": "@strudel/desktopbridge", + "version": "0.1.0", + "private": true, + "description": "tools/shims for communicating between the JS and Tauri (Rust) sides of the Studel desktop app", + "main": "index.mjs", + "type": "module", + "repository": { + "type": "git", + "url": "git+https://github.com/tidalcycles/strudel.git" + }, + "keywords": [ + "tidalcycles", + "strudel", + "pattern", + "livecoding", + "algorave" + ], + "author": "Jade Rowland ", + "license": "AGPL-3.0-or-later", + "bugs": { + "url": "https://github.com/tidalcycles/strudel/issues" + }, + "dependencies": { + "@strudel/core": "workspace:*", + "@tauri-apps/api": "^2.2.0" + }, + "homepage": "https://github.com/tidalcycles/strudel#readme" +} \ No newline at end of file diff --git a/packages/desktopbridge/utils.mjs b/packages/desktopbridge/utils.mjs index c4c69af5..c5be9411 100644 --- a/packages/desktopbridge/utils.mjs +++ b/packages/desktopbridge/utils.mjs @@ -1,4 +1,4 @@ -import { invoke } from '@tauri-apps/api/tauri'; +import { invoke } from '@tauri-apps/api/core'; export const Invoke = invoke; export const isTauri = () => window.__TAURI_IPC__ != null; diff --git a/packages/draw/draw.mjs b/packages/draw/draw.mjs index e3737600..0576c297 100644 --- a/packages/draw/draw.mjs +++ b/packages/draw/draw.mjs @@ -26,7 +26,7 @@ export const getDrawContext = (id = 'test-canvas', options) => { }, 200); }); } - return canvas.getContext(contextType); + return canvas.getContext(contextType, { willReadFrequently: true }); }; let animationFrames = {}; diff --git a/packages/draw/package.json b/packages/draw/package.json index a6a88ecf..e93f3ed2 100644 --- a/packages/draw/package.json +++ b/packages/draw/package.json @@ -32,6 +32,6 @@ "@strudel/core": "workspace:*" }, "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/packages/draw/pianoroll.mjs b/packages/draw/pianoroll.mjs index 2c6742cd..d874c968 100644 --- a/packages/draw/pianoroll.mjs +++ b/packages/draw/pianoroll.mjs @@ -4,7 +4,7 @@ Copyright (C) 2022 Strudel contributors - see . */ -import { Pattern, noteToMidi, freqToMidi } from '@strudel/core'; +import { Pattern, noteToMidi, freqToMidi, isPattern } from '@strudel/core'; import { getTheme, getDrawContext } from './draw.mjs'; const scale = (normalized, min, max) => normalized * (max - min) + min; @@ -36,35 +36,9 @@ const getValue = (e) => { return value; }; -Pattern.prototype.pianoroll = function (options = {}) { - let { cycles = 4, playhead = 0.5, overscan = 0, hideNegative = false, ctx = getDrawContext(), id = 1 } = options; - - let from = -cycles * playhead; - let to = cycles * (1 - playhead); - const inFrame = (hap, t) => (!hideNegative || hap.whole.begin >= 0) && hap.isWithinTime(t + from, t + to); - this.draw( - (haps, time) => { - pianoroll({ - ...options, - time, - ctx, - haps: haps.filter((hap) => inFrame(hap, time)), - }); - }, - { - lookbehind: from - overscan, - lookahead: to + overscan, - id, - }, - ); - return this; -}; - -// this function allows drawing a pianoroll without ties to Pattern.prototype -// it will probably replace the above in the future - /** - * Displays a midi-style piano roll + * Visualises a pattern as a scrolling 'pianoroll', displayed in the background of the editor. To show a pianoroll for all running patterns, use `all(pianoroll)`. To have a pianoroll appear below + * a pattern instead, prefix with `_`, e.g.: `sound("bd sd")._pianoroll()`. * * @name pianoroll * @synonyms punchcard @@ -93,15 +67,51 @@ Pattern.prototype.pianoroll = function (options = {}) { * @param {integer} minMidi minimum note value to display on the value axis - defaults to 10 * @param {integer} maxMidi maximum note value to display on the value axis - defaults to 90 * @param {boolean} autorange automatically calculate the minMidi and maxMidi parameters - 0 by default - * + * @see _pianoroll * @example * note("c2 a2 eb2") * .euclid(5,8) * .s('sawtooth') * .lpenv(4).lpf(300) - * ._pianoroll({ labels: 1 }) + * .pianoroll({ labels: 1 }) */ -export function pianoroll({ + +Pattern.prototype.pianoroll = function (options = {}) { + let { cycles = 4, playhead = 0.5, overscan = 0, hideNegative = false, ctx = getDrawContext(), id = 1 } = options; + + let from = -cycles * playhead; + let to = cycles * (1 - playhead); + const inFrame = (hap, t) => (!hideNegative || hap.whole.begin >= 0) && hap.isWithinTime(t + from, t + to); + this.draw( + (haps, time) => { + __pianoroll({ + ...options, + time, + ctx, + haps: haps.filter((hap) => inFrame(hap, time)), + }); + }, + { + lookbehind: from - overscan, + lookahead: to + overscan, + id, + }, + ); + return this; +}; + +export function pianoroll(arg) { + if (isPattern(arg)) { + // Single argument as a pattern + // (to support `all(pianoroll)`) + return arg.pianoroll(); + } + // Single argument with option - return function to get the pattern + // (to support `all(pianoroll(options))`) + return (pat) => pat.pianoroll(arg); +} + +export function __pianoroll({ time, haps, cycles = 4, @@ -278,7 +288,7 @@ export function getDrawOptions(drawTime, options = {}) { export const getPunchcardPainter = (options = {}) => (ctx, time, haps, drawTime) => - pianoroll({ ctx, time, haps, ...getDrawOptions(drawTime, options) }); + __pianoroll({ ctx, time, haps, ...getDrawOptions(drawTime, options) }); Pattern.prototype.punchcard = function (options) { return this.onPaint(getPunchcardPainter(options)); @@ -302,5 +312,5 @@ Pattern.prototype.wordfall = function (options) { export function drawPianoroll(options) { const { drawTime, ...rest } = options; - pianoroll({ ...getDrawOptions(drawTime), ...rest }); + __pianoroll({ ...getDrawOptions(drawTime), ...rest }); } diff --git a/packages/hs2js/package.json b/packages/hs2js/package.json index 09bf1e05..34bb7f36 100644 --- a/packages/hs2js/package.json +++ b/packages/hs2js/package.json @@ -28,10 +28,10 @@ }, "homepage": "https://github.com/tidalcycles/strudel", "dependencies": { - "web-tree-sitter": "^0.20.8" + "web-tree-sitter": "^0.24.7" }, "devDependencies": { - "tree-sitter-haskell": "^0.21.0", - "vite": "^5.0.10" + "tree-sitter-haskell": "^0.23.1", + "vite": "^6.0.11" } } diff --git a/packages/hydra/package.json b/packages/hydra/package.json index 2559a167..c687d549 100644 --- a/packages/hydra/package.json +++ b/packages/hydra/package.json @@ -39,6 +39,6 @@ }, "devDependencies": { "pkg": "^5.8.1", - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/packages/midi/package.json b/packages/midi/package.json index 6b2d8de1..c7c5f498 100644 --- a/packages/midi/package.json +++ b/packages/midi/package.json @@ -31,9 +31,9 @@ "dependencies": { "@strudel/core": "workspace:*", "@strudel/webaudio": "workspace:*", - "webmidi": "^3.1.8" + "webmidi": "^3.1.12" }, "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/packages/mini/package.json b/packages/mini/package.json index c10ddc65..d05d6036 100644 --- a/packages/mini/package.json +++ b/packages/mini/package.json @@ -35,8 +35,8 @@ "@strudel/core": "workspace:*" }, "devDependencies": { - "peggy": "^3.0.2", - "vite": "^5.0.10", - "vitest": "^2.1.3" + "peggy": "^4.2.0", + "vite": "^6.0.11", + "vitest": "^3.0.4" } } diff --git a/packages/motion/README.md b/packages/motion/README.md new file mode 100644 index 00000000..4fc343f9 --- /dev/null +++ b/packages/motion/README.md @@ -0,0 +1,72 @@ +# @strudel/motion + +This package adds device motion sensing functionality to strudel Patterns. + +## Install + +```sh +npm i @strudel/motion --save +``` + +## Usage + +| Motion | Long Names & Aliases | Description | +|----------------------------|-----------------------------------------------------------|------------------------------------------| +| Acceleration | accelerationX (accX), accelerationY (accY), accelerationZ (accZ) | X, Y, Z-axis acceleration values | +| Gravity | gravityX (gravX), gravityY (gravY), gravityZ (gravZ) | X, Y, Z-axis gravity values | +| Rotation | rotationAlpha (rotA, rotZ), rotationBeta (rotB, rotX), rotationGamma (rotG, rotY) | Rotation around alpha, beta, gamma axes and mapped to X, Y, Z | +| Orientation | orientationAlpha (oriA, oriZ), orientationBeta (oriB, oriX), orientationGamma (oriG, oriY) | Orientation alpha, beta, gamma values and mapped to X, Y, Z | +| Absolute Orientation | absoluteOrientationAlpha (absOriA, absOriZ), absoluteOrientationBeta (absOriB, absOriX), absoluteOrientationGamma (absOriG, absOriY) | Absolute orientation alpha, beta, gamma values and mapped to X, Y, Z | + +## Example + +```js +enableMotion() //enable DeviceMotion + +setcpm(200/4) + +$_: accX.segment(16).gain().log() + +$:n("0 1 3 1 5 4") + .scale("Bb:lydian") + .sometimesBy(0.5,sub(note(12))) + .lpf(gravityY.range(20,1000)) + .lpq(gravityZ.range(1,30)) + .lpenv(gravityX.range(2,2)) + .gain(oriX.range(0.2,0.8)) + .room(oriZ.range(0,0.5)) + .attack(oriY.range(0,0.3)) + .delay(rotG.range(0,1)) + .decay(rotA.range(0,1)) + .attack(rotB.range(0,0.1)) + .sound("sawtooth") +``` + +## Setup SSL for Local Development + +`DeviceMotionEvent` only works with HTTPS, so you'll need to enable SSL for local development. +Try installing an SSL plugin for Vite. + +```sh +cd website +pnpm install -D @vitejs/plugin-basic-ssl +``` + +add the basicSsl plugin to the defineConfig block in `strudel/website/astro.config.mjs` + +```js +vite: { + plugins: [basicSsl()], + server: { + host: '0.0.0.0', // Ensures it binds to all network interfaces + // https: { + // key: '../../key.pem', // + // cert: '../../cert.pem', + // }, + }, +}, +``` + +generate an SSL certificate to avoid security warnings. + +`openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout key.pem -out cert.pem` diff --git a/packages/motion/docs/devicemotion.mdx b/packages/motion/docs/devicemotion.mdx new file mode 100644 index 00000000..9afccc89 --- /dev/null +++ b/packages/motion/docs/devicemotion.mdx @@ -0,0 +1,82 @@ +import { MiniRepl } from '../../../website/src/docs/MiniRepl'; +import { JsDoc } from '../../../website/src/docs/JsDoc'; + +# Device Motion + +Devicemotion module allows you to use your mobile device's motion sensors (accelerometer, gyroscope, and orientation sensors) to control musical parameters in real-time. This creates opportunities for expressive, movement-based musical interactions. + +## Basic Setup + +First, you need to enable device motion sensing: + + + +This will prompt the user for permission to access device motion sensors. + +## Available Motion Parameters + +You can access different types of motion data: + +| Motion | Long Names & Aliases | Description | +| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| Acceleration | accelerationX (accX), accelerationY (accY), accelerationZ (accZ) | Measures linear acceleration of the device, excluding gravity. Raw values are normalized from g-force. | +| Gravity | gravityX (gravX), gravityY (gravY), gravityZ (gravZ) | Indicates device's orientation relative to Earth's gravity. Raw values are normalized from ±9.81 m/s². | +| Rotation | rotationAlpha (rotA, rotZ), rotationBeta (rotB, rotX), rotationGamma (rotG, rotY) | Measures rotation rate around each axis. Raw values (±180°/s) are normalized. | +| Orientation | orientationAlpha (oriA, oriZ), orientationBeta (oriB, oriX), orientationGamma (oriG, oriY) | Relative orientation from its starting device position. Normalized from:
- Alpha: 0° to 360°
- Beta: -180° to 180°
- Gamma: -90° to 90° | +| Absolute Orientation | absoluteOrientationAlpha (absOriA, absOriZ), absoluteOrientationBeta (absOriB, absOriX), absoluteOrientationGamma (absOriG, absOriY) | **Not available for iOS**
Earth-referenced orientation using magnetometer. Same normalization as Orientation. | + +Note: + +- All motion values are normalized to a range of 0 to 1. +- Not all devices have the same sensors available + Check [DeviceMotionEvent API](https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent) for browser compatibility +- Refer to [Oritentation and motion data explained](https://developer.mozilla.org/en-US/docs/Web/API/Device_orientation_events/Orientation_and_motion_data_explained) for more details + +### Orientation vs Absolute Orientation + +The key difference between regular orientation and absolute orientation is: + +- Regular orientation (`oriX/Y/Z`) measures relative changes in device orientation from its starting position +- Absolute orientation (`absOriX/Y/Z`) measures orientation relative to Earth's magnetic field and gravity, providing consistent absolute values regardless of starting position + +For example, if you rotate your device 90 degrees clockwise and then back: + +- Regular orientation will show a change during rotation but return to initial values +- Absolute orientation will show the actual compass heading throughout + +This makes absolute orientation particularly useful for creating direction-based musical interactions - for example, performers facing north could play one melody while those facing south play another, creating spatially-aware ensemble performances. Regular orientation, on the other hand, is better suited for detecting relative motion and gestures regardless of which direction the performer is facing. + +## Basic Example + +Here's a simple example that uses device motion to control a synthesizer: + + + +## Tips for Using Motion Controls + +1. Use `.range(min, max)` to map sensor values to musically useful ranges +2. Consider using `.segment()` to smooth out rapid changes in sensor values + +## Debugging + +You can use `segment(16).log()` to see the raw values from any motion sensor: + +```javascript +$_: accX.segment(16).log(); // logs acceleration values to the console +``` + +This is helpful when calibrating your ranges and understanding how your device responds to different movements. + +Remember that device motion works best on mobile devices and may not be available on all desktop browsers. Always test your motion-controlled pieces on the target device type! diff --git a/packages/motion/index.mjs b/packages/motion/index.mjs new file mode 100644 index 00000000..b315b617 --- /dev/null +++ b/packages/motion/index.mjs @@ -0,0 +1,3 @@ +import './motion.mjs'; + +export * from './motion.mjs'; diff --git a/packages/motion/motion.mjs b/packages/motion/motion.mjs new file mode 100644 index 00000000..875704ea --- /dev/null +++ b/packages/motion/motion.mjs @@ -0,0 +1,371 @@ +// motion.mjs + +import { signal } from '../core/signal.mjs'; + +/** + * The accelerometer's x-axis value ranges from 0 to 1. + * @name accelerationX + * @return {Pattern} + * @synonyms accX + * @example + * n(accelerationX.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The accelerometer's y-axis value ranges from 0 to 1. + * @name accelerationY + * @return {Pattern} + * @synonyms accY + * @example + * n(accelerationY.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The accelerometer's z-axis value ranges from 0 to 1. + * @name accelerationZ + * @return {Pattern} + * @synonyms accZ + * @example + * n(accelerationZ.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's gravity x-axis value ranges from 0 to 1. + * @name gravityX + * @return {Pattern} + * @synonyms gravX + * @example + * n(gravityX.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's gravity y-axis value ranges from 0 to 1. + * @name gravityY + * @return {Pattern} + * @synonyms gravY + * @example + * n(gravityY.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's gravity z-axis value ranges from 0 to 1. + * @name gravityZ + * @return {Pattern} + * @synonyms gravZ + * @example + * n(gravityZ.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's rotation around the alpha-axis value ranges from 0 to 1. + * @name rotationAlpha + * @return {Pattern} + * @synonyms rotA, rotZ, rotationZ + * @example + * n(rotationAlpha.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's rotation around the beta-axis value ranges from 0 to 1. + * @name rotationBeta + * @return {Pattern} + * @synonyms rotB, rotX, rotationX + * @example + * n(rotationBeta.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's rotation around the gamma-axis value ranges from 0 to 1. + * @name rotationGamma + * @return {Pattern} + * @synonyms rotG, rotY, rotationY + * @example + * n(rotationGamma.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's orientation alpha value ranges from 0 to 1. + * @name orientationAlpha + * @return {Pattern} + * @synonyms oriA, oriZ, orientationZ + * @example + * n(orientationAlpha.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's orientation beta value ranges from 0 to 1. + * @name orientationBeta + * @return {Pattern} + * @synonyms oriB, oriX, orientationX + * @example + * n(orientationBeta.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's orientation gamma value ranges from 0 to 1. + * @name orientationGamma + * @return {Pattern} + * @synonyms oriG, oriY, orientationY + * @example + * n(orientationGamma.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's absolute orientation alpha value ranges from 0 to 1. + * @name absoluteOrientationAlpha + * @return {Pattern} + * @synonyms absOriA, absOriZ, absoluteOrientationZ + * @example + * n(absoluteOrientationAlpha.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's absolute orientation beta value ranges from 0 to 1. + * @name absoluteOrientationBeta + * @return {Pattern} + * @synonyms absOriB, absOriX, absoluteOrientationX + * @example + * n(absoluteOrientationBeta.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's absolute orientation gamma value ranges from 0 to 1. + * @name absoluteOrientationGamma + * @return {Pattern} + * @synonyms absOriG, absOriY, absoluteOrientationY + * @example + * n(absoluteOrientationGamma.segment(4).range(0,7)).scale("C:minor") + * + */ + +class DeviceMotionHandler { + constructor() { + this.GRAVITY = 9.81; + + // Initialize sensor values + this._acceleration = { + x: 0, + y: 0, + z: 0, + }; + + this._gravity = { + x: 0, + y: 0, + z: 0, + }; + + this._rotation = { + alpha: 0, + beta: 0, + gamma: 0, + }; + + this._orientation = { + alpha: 0, + beta: 0, + gamma: 0, + }; + + this._absoluteOrientation = { + alpha: 0, + beta: 0, + gamma: 0, + }; + + this._permissionStatus = 'unknown'; + } + + async requestPermissions() { + if (typeof DeviceMotionEvent?.requestPermission === 'function') { + try { + // iOS requires explicit permission + const motionPermission = await DeviceMotionEvent.requestPermission(); + const orientationPermission = await DeviceOrientationEvent.requestPermission(); + + this._permissionStatus = + motionPermission === 'granted' && orientationPermission === 'granted' ? 'granted' : 'denied'; + this.setupEventListeners(); + } catch (error) { + console.error('Permission request failed:', error); + this._permissionStatus = 'denied'; + } + } else { + this._permissionStatus = 'granted'; + this.setupEventListeners(); + } + } + + setupEventListeners() { + if (this._permissionStatus === 'granted') { + // Device Motion handler + window.addEventListener('devicemotion', this.handleDeviceMotion.bind(this), true); + window.addEventListener('deviceorientation', this.handleDeviceOrientation.bind(this), true); + window.addEventListener('deviceorientationabsolute', this.handleAbsoluteDeviceOrientation.bind(this), true); + } + } + + handleDeviceMotion(event) { + //console.log(event); + if (event.acceleration) { + // Normalize acceleration values to 0-1 range + this._acceleration.x = (event.acceleration.x + 1) / 2; + this._acceleration.y = (event.acceleration.y + 1) / 2; + this._acceleration.z = (event.acceleration.z + 1) / 2; + } + + if (event.accelerationIncludingGravity) { + // Normalize acceleration values to 0-1 range + this._gravity.x = (event.accelerationIncludingGravity.x + this.GRAVITY) / (2 * this.GRAVITY); + this._gravity.y = (event.accelerationIncludingGravity.y + this.GRAVITY) / (2 * this.GRAVITY); + this._gravity.z = (event.accelerationIncludingGravity.z + this.GRAVITY) / (2 * this.GRAVITY); + } + + if (event.rotationRate) { + // Normalize rotation values to 0-1 range + this._rotation.alpha = (event.rotationRate.alpha + 180) / 360; + this._rotation.beta = (event.rotationRate.beta + 180) / 360; + this._rotation.gamma = (event.rotationRate.gamma + 180) / 360; + } + } + + handleDeviceOrientation(event) { + this._orientation.alpha = event.alpha / 360; //a(0~360) + this._orientation.beta = (event.beta + 180) / 360; //b(-180~180) + this._orientation.gamma = (event.gamma + 90) / 180; //g(-90~90) + } + + handleAbsoluteDeviceOrientation(event) { + this._absoluteOrientation.alpha = event.alpha / 360; //a(0~360) + this._absoluteOrientation.beta = (event.beta + 180) / 360; //b(-180~180) + this._absoluteOrientation.gamma = (event.gamma + 90) / 180; //g(-90~90) + } + + // Getter methods for current values + getAcceleration() { + return this._acceleration; + } + getGravity() { + return this._gravity; + } + getRotation() { + return this._rotation; + } + getOrientation() { + return this._orientation; + } + getAbsoluteOrientation() { + return this._absoluteOrientation; + } +} + +// Create singleton instance +const deviceMotion = new DeviceMotionHandler(); + +// Export a function to request permission +export async function enableMotion() { + return deviceMotion.requestPermissions(); +} + +// Create signals for acceleration +export const accelerationX = signal(() => deviceMotion.getAcceleration().x); +export const accelerationY = signal(() => deviceMotion.getAcceleration().y); +export const accelerationZ = signal(() => deviceMotion.getAcceleration().z); + +// Aliases for shorter names +export const accX = accelerationX; +export const accY = accelerationY; +export const accZ = accelerationZ; + +// Create signals for gravity +export const gravityX = signal(() => deviceMotion.getGravity().x); +export const gravityY = signal(() => deviceMotion.getGravity().y); +export const gravityZ = signal(() => deviceMotion.getGravity().z); + +// Aliases for shorter names +export const gravX = gravityX; +export const gravY = gravityY; +export const gravZ = gravityZ; + +// Create signals for orientation +export const orientationAlpha = signal(() => deviceMotion.getOrientation().alpha); +export const orientationBeta = signal(() => deviceMotion.getOrientation().beta); +export const orientationGamma = signal(() => deviceMotion.getOrientation().gamma); +// Aliases for shorter names +export const orientationA = orientationAlpha; +export const orientationB = orientationBeta; +export const orientationG = orientationGamma; + +// Aliases mapping to X,Y,Z coordinates +export const orientationX = orientationBeta; +export const orientationY = orientationGamma; +export const orientationZ = orientationAlpha; + +// Short aliases for A,B,G,X,Y,Z + +export const oriA = orientationAlpha; +export const oriB = orientationBeta; +export const oriG = orientationGamma; + +export const oriX = orientationX; +export const oriY = orientationY; +export const oriZ = orientationZ; + +// Create signals for absolute orientation +export const absoluteOrientationAlpha = signal(() => deviceMotion.getAbsoluteOrientation().alpha); +export const absoluteOrientationBeta = signal(() => deviceMotion.getAbsoluteOrientation().beta); +export const absoluteOrientationGamma = signal(() => deviceMotion.getAbsoluteOrientation().gamma); + +// Aliases for shorter names +export const absOriA = absoluteOrientationAlpha; +export const absOriB = absoluteOrientationBeta; +export const absOriG = absoluteOrientationGamma; + +// Aliases mapping to X,Y,Z coordinates +export const absoluteOrientationX = absoluteOrientationBeta; +export const absoluteOrientationY = absoluteOrientationGamma; +export const absoluteOrientationZ = absoluteOrientationAlpha; + +// Short aliases for X,Y,Z +export const absOriX = absoluteOrientationX; +export const absOriY = absoluteOrientationY; +export const absOriZ = absoluteOrientationZ; + +// Create signals for rotation +export const rotationAlpha = signal(() => deviceMotion.getRotation().alpha); +export const rotationBeta = signal(() => deviceMotion.getRotation().beta); +export const rotationGamma = signal(() => deviceMotion.getRotation().gamma); +export const rotationX = rotationBeta; +export const rotationY = rotationGamma; +export const rotationZ = rotationAlpha; + +// Aliases for shorter names +export const rotA = rotationAlpha; +export const rotB = rotationBeta; +export const rotG = rotationGamma; +export const rotX = rotationX; +export const rotY = rotationY; +export const rotZ = rotationZ; + +// // Bipolar versions (ranging from -1 to 1 instead of 0 to 1) +// export const accX2 = accX.toBipolar(); +// export const accY2 = accY.toBipolar(); +// export const accZ2 = accZ.toBipolar(); + +// export const rotA2 = rotA.toBipolar(); +// export const rotB2 = rotB.toBipolar(); +// export const rotG2 = rotG.toBipolar(); diff --git a/packages/motion/package.json b/packages/motion/package.json new file mode 100644 index 00000000..cc117a26 --- /dev/null +++ b/packages/motion/package.json @@ -0,0 +1,38 @@ +{ + "name": "@strudel/motion", + "version": "1.1.0", + "description": "DeviceMotion API for strudel", + "main": "index.mjs", + "type": "module", + "publishConfig": { + "main": "dist/index.mjs" + }, + "scripts": { + "build": "vite build", + "prepublishOnly": "npm run build" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/tidalcycles/strudel.git" + }, + "keywords": [ + "titdalcycles", + "strudel", + "pattern", + "livecoding", + "algorave" + ], + "author": "Yuta Nakayama ", + "license": "AGPL-3.0-or-later", + "bugs": { + "url": "https://github.com/tidalcycles/strudel/issues" + }, + "homepage": "https://github.com/tidalcycles/strudel#readme", + "dependencies": { + "@strudel/core": "workspace:*" + }, + "devDependencies": { + "vite": "^6.0.11" + } +} + \ No newline at end of file diff --git a/packages/motion/vite.config.js b/packages/motion/vite.config.js new file mode 100644 index 00000000..5df3edc1 --- /dev/null +++ b/packages/motion/vite.config.js @@ -0,0 +1,19 @@ +import { defineConfig } from 'vite'; +import { dependencies } from './package.json'; +import { resolve } from 'path'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [], + build: { + lib: { + entry: resolve(__dirname, 'index.mjs'), + formats: ['es'], + fileName: (ext) => ({ es: 'index.mjs' })[ext], + }, + rollupOptions: { + external: [...Object.keys(dependencies)], + }, + target: 'esnext', + }, +}); diff --git a/packages/mqtt/mqtt.mjs b/packages/mqtt/mqtt.mjs index 75f7904e..0d02a37c 100644 --- a/packages/mqtt/mqtt.mjs +++ b/packages/mqtt/mqtt.mjs @@ -23,6 +23,9 @@ function onMessageArrived(message) { function onFailure(err) { console.error('Connection failed: ', err); + if (typeof window !== 'undefined') { + document.cookie = 'mqtt_pass='; + } } Pattern.prototype.mqtt = function ( @@ -35,12 +38,17 @@ Pattern.prototype.mqtt = function ( ) { const key = host + '-' + client; let connected = false; + let password_entered = false; + if (!client) { client = 'strudel-' + String(Math.floor(Math.random() * 1000000)); } function onConnect() { console.log('Connected to mqtt broker'); connected = true; + if (password_entered) { + document.cookie = 'mqtt_pass=' + password; + } } let cx; @@ -58,6 +66,17 @@ Pattern.prototype.mqtt = function ( if (username) { props.userName = username; + if (typeof password === 'undefined' && typeof window !== 'undefined') { + const cookie = /mqtt_pass=(\w+)/.exec(window.document.cookie); + if (cookie) { + password = cookie[1]; + } + if (typeof password === 'undefined') { + password = prompt('Please enter MQTT server password'); + password_entered = true; + } + } + props.password = password; } cx.connect(props); diff --git a/packages/mqtt/package.json b/packages/mqtt/package.json index b6be50f5..ef5c3c68 100644 --- a/packages/mqtt/package.json +++ b/packages/mqtt/package.json @@ -33,6 +33,6 @@ "paho-mqtt": "^1.1.0" }, "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/packages/osc/package.json b/packages/osc/package.json index 98babe2a..5c56bb2e 100644 --- a/packages/osc/package.json +++ b/packages/osc/package.json @@ -37,10 +37,10 @@ "homepage": "https://github.com/tidalcycles/strudel#readme", "dependencies": { "@strudel/core": "workspace:*", - "osc-js": "^2.4.0" + "osc-js": "^2.4.1" }, "devDependencies": { "pkg": "^5.8.1", - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/packages/reference/README.md b/packages/reference/README.md new file mode 100644 index 00000000..8ff16259 --- /dev/null +++ b/packages/reference/README.md @@ -0,0 +1,8 @@ +# @strudel/reference + +this package contains metadata for all documented strudel functions, useful to implement a reference. + +```js +import { reference } from '@strudel/reference'; +console.log(reference) +``` diff --git a/packages/reference/index.mjs b/packages/reference/index.mjs new file mode 100644 index 00000000..deeb6039 --- /dev/null +++ b/packages/reference/index.mjs @@ -0,0 +1,2 @@ +import jsdoc from '../../doc.json'; +export const reference = jsdoc; diff --git a/packages/reference/package.json b/packages/reference/package.json new file mode 100644 index 00000000..f69aa653 --- /dev/null +++ b/packages/reference/package.json @@ -0,0 +1,39 @@ +{ + "name": "@strudel/reference", + "version": "1.1.0", + "description": "Headless reference of all strudel functions", + "main": "index.mjs", + "type": "module", + "publishConfig": { + "main": "dist/index.mjs" + }, + "scripts": { + "build": "vite build", + "prepublishOnly": "npm run build" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/tidalcycles/strudel.git" + }, + "keywords": [ + "tidalcycles", + "strudel", + "pattern", + "livecoding", + "algorave" + ], + "author": "Felix Roos ", + "contributors": [ + "Alex McLean " + ], + "license": "AGPL-3.0-or-later", + "bugs": { + "url": "https://github.com/tidalcycles/strudel/issues" + }, + "homepage": "https://github.com/tidalcycles/strudel#readme", + "dependencies": { + }, + "devDependencies": { + "vite": "^6.0.11" + } +} diff --git a/packages/reference/vite.config.js b/packages/reference/vite.config.js new file mode 100644 index 00000000..5df3edc1 --- /dev/null +++ b/packages/reference/vite.config.js @@ -0,0 +1,19 @@ +import { defineConfig } from 'vite'; +import { dependencies } from './package.json'; +import { resolve } from 'path'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [], + build: { + lib: { + entry: resolve(__dirname, 'index.mjs'), + formats: ['es'], + fileName: (ext) => ({ es: 'index.mjs' })[ext], + }, + rollupOptions: { + external: [...Object.keys(dependencies)], + }, + target: 'esnext', + }, +}); diff --git a/packages/repl/package.json b/packages/repl/package.json index 9ea71a69..7a48ad3f 100644 --- a/packages/repl/package.json +++ b/packages/repl/package.json @@ -45,8 +45,7 @@ "@strudel/webaudio": "workspace:*" }, "devDependencies": { - "@rollup/plugin-replace": "^5.0.5", - "rollup-plugin-visualizer": "^5.12.0", - "vite": "^5.0.10" + "@rollup/plugin-replace": "^6.0.2", + "vite": "^6.0.11" } } diff --git a/packages/repl/vite.config.js b/packages/repl/vite.config.js index 84781891..674e0ebb 100644 --- a/packages/repl/vite.config.js +++ b/packages/repl/vite.config.js @@ -1,7 +1,5 @@ import { defineConfig } from 'vite'; -import { dependencies } from './package.json'; import { resolve } from 'path'; -// import { visualizer } from 'rollup-plugin-visualizer'; import replace from '@rollup/plugin-replace'; // https://vitejs.dev/config/ diff --git a/packages/serial/package.json b/packages/serial/package.json index 02418df3..74cef80a 100644 --- a/packages/serial/package.json +++ b/packages/serial/package.json @@ -32,6 +32,6 @@ "@strudel/core": "workspace:*" }, "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/packages/soundfonts/package.json b/packages/soundfonts/package.json index 82696312..af6d2b96 100644 --- a/packages/soundfonts/package.json +++ b/packages/soundfonts/package.json @@ -32,10 +32,10 @@ "@strudel/core": "workspace:*", "@strudel/webaudio": "workspace:*", "sfumato": "^0.1.2", - "soundfont2": "^0.4.0" + "soundfont2": "^0.5.0" }, "devDependencies": { "node-fetch": "^3.3.2", - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/packages/superdough/package.json b/packages/superdough/package.json index 685ab9c5..5fb8439b 100644 --- a/packages/superdough/package.json +++ b/packages/superdough/package.json @@ -32,9 +32,9 @@ }, "homepage": "https://github.com/tidalcycles/strudel#readme", "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" }, "dependencies": { - "nanostores": "^0.9.5" + "nanostores": "^0.11.3" } } diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index 7d57b5bb..b61f4263 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -270,11 +270,12 @@ function getReverb(orbit, duration, fade, lp, dim, ir) { export let analysers = {}, analysersData = {}; -export function getAnalyserById(id, fftSize = 1024) { +export function getAnalyserById(id, fftSize = 1024, smoothingTimeConstant = 0.5) { if (!analysers[id]) { // make sure this doesn't happen too often as it piles up garbage const analyserNode = getAudioContext().createAnalyser(); analyserNode.fftSize = fftSize; + analyserNode.smoothingTimeConstant = smoothingTimeConstant; // getDestination().connect(analyserNode); analysers[id] = analyserNode; analysersData[id] = new Float32Array(analysers[id].frequencyBinCount); diff --git a/packages/tidal/package.json b/packages/tidal/package.json index 051c6143..94507aa9 100644 --- a/packages/tidal/package.json +++ b/packages/tidal/package.json @@ -23,6 +23,6 @@ "hs2js": "workspace:*" }, "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/packages/tonal/package.json b/packages/tonal/package.json index d21f2e1c..e642fa4e 100644 --- a/packages/tonal/package.json +++ b/packages/tonal/package.json @@ -31,12 +31,12 @@ "homepage": "https://github.com/tidalcycles/strudel#readme", "dependencies": { "@strudel/core": "workspace:*", - "@tonaljs/tonal": "^4.7.2", + "@tonaljs/tonal": "^4.10.0", "chord-voicings": "^0.0.1", - "webmidi": "^3.1.8" + "webmidi": "^3.1.12" }, "devDependencies": { - "vite": "^5.0.10", - "vitest": "^2.1.3" + "vite": "^6.0.11", + "vitest": "^3.0.4" } } diff --git a/packages/transpiler/package.json b/packages/transpiler/package.json index 9aeb7ebf..55140f80 100644 --- a/packages/transpiler/package.json +++ b/packages/transpiler/package.json @@ -32,12 +32,12 @@ "dependencies": { "@strudel/core": "workspace:*", "@strudel/mini": "workspace:*", - "acorn": "^8.11.3", + "acorn": "^8.14.0", "escodegen": "^2.1.0", - "estree-walker": "^3.0.1" + "estree-walker": "^3.0.3" }, "devDependencies": { - "vite": "^5.0.10", - "vitest": "^2.1.3" + "vite": "^6.0.11", + "vitest": "^3.0.4" } } diff --git a/packages/web/package.json b/packages/web/package.json index 17dd49cb..b06e5a48 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -40,7 +40,7 @@ "@strudel/webaudio": "workspace:*" }, "devDependencies": { - "@rollup/plugin-replace": "^5.0.5", - "vite": "^5.0.10" + "@rollup/plugin-replace": "^6.0.2", + "vite": "^6.0.11" } } diff --git a/packages/webaudio/index.mjs b/packages/webaudio/index.mjs index a425e683..59672b61 100644 --- a/packages/webaudio/index.mjs +++ b/packages/webaudio/index.mjs @@ -6,4 +6,5 @@ This program is free software: you can redistribute it and/or modify it under th export * from './webaudio.mjs'; export * from './scope.mjs'; +export * from './spectrum.mjs'; export * from 'superdough'; diff --git a/packages/webaudio/package.json b/packages/webaudio/package.json index 019768c1..81b75c03 100644 --- a/packages/webaudio/package.json +++ b/packages/webaudio/package.json @@ -38,6 +38,6 @@ "superdough": "workspace:*" }, "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/packages/webaudio/spectrum.mjs b/packages/webaudio/spectrum.mjs new file mode 100644 index 00000000..2ddd214f --- /dev/null +++ b/packages/webaudio/spectrum.mjs @@ -0,0 +1,69 @@ +import { Pattern, clamp } from '@strudel/core'; +import { getDrawContext, getTheme } from '@strudel/draw'; +import { analysers, getAnalyzerData } from 'superdough'; + +/** + * Renders a spectrum analyzer for the incoming audio signal. + * @name spectrum + * @param {object} config optional config with options: + * @param {integer} thickness line thickness in px (default 3) + * @param {integer} speed scroll speed (default 1) + * @param {integer} min min db (default -80) + * @param {integer} max max db (default 0) + * @example + * n("<0 4 <2 3> 1>*3") + * .off(1/8, add(n(5))) + * .off(1/5, add(n(7))) + * .scale("d3:minor:pentatonic") + * .s('sine') + * .dec(.3).room(.5) + * ._spectrum() + */ +let latestColor = {}; +Pattern.prototype.spectrum = function (config = {}) { + let id = config.id ?? 1; + return this.analyze(id).draw( + (haps) => { + config.color = haps[0]?.value?.color || latestColor[id] || getTheme().foreground; + latestColor[id] = config.color; + drawSpectrum(analysers[id], config); + }, + { id }, + ); +}; + +Pattern.prototype.scope = Pattern.prototype.tscope; + +const lastFrames = new Map(); + +function drawSpectrum( + analyser, + { thickness = 3, speed = 1, min = -80, max = 0, ctx = getDrawContext(), id = 1, color } = {}, +) { + ctx.lineWidth = thickness; + ctx.strokeStyle = color; + + if (!analyser) { + // if analyser is undefined, draw straight line + // it may be undefined when no sound has been played yet + return; + } + const scrollSize = speed; + const dataArray = getAnalyzerData('frequency', id); + const canvas = ctx.canvas; + ctx.fillStyle = color; + const bufferSize = analyser.frequencyBinCount; + let imageData = lastFrames.get(id) || ctx.getImageData(0, 0, canvas.width, canvas.height); + lastFrames.set(id, imageData); + ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); + ctx.putImageData(imageData, -scrollSize, 0); + let q = canvas.width - speed; + for (let i = 0; i < bufferSize; i++) { + const normalized = clamp((dataArray[i] - min) / (max - min), 0, 1); + ctx.globalAlpha = normalized; + const next = (Math.log(i + 1) / Math.log(bufferSize)) * canvas.height; + const size = 2; //next - pos; + ctx.fillRect(q, canvas.height - next, scrollSize, size); + } + lastFrames.set(id, ctx.getImageData(0, 0, canvas.width, canvas.height)); +} diff --git a/packages/xen/package.json b/packages/xen/package.json index 418166c8..74c3aba7 100644 --- a/packages/xen/package.json +++ b/packages/xen/package.json @@ -33,7 +33,7 @@ "@strudel/core": "workspace:*" }, "devDependencies": { - "vite": "^5.0.10", - "vitest": "^2.1.3" + "vite": "^6.0.11", + "vitest": "^3.0.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 61101a77..8a3db383 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,48 +27,54 @@ importers: specifier: workspace:* version: link:packages/xen devDependencies: + '@eslint/compat': + specifier: ^1.2.5 + version: 1.2.5(eslint@9.19.0(jiti@2.4.2)) + '@eslint/eslintrc': + specifier: ^3.2.0 + version: 3.2.0 + '@eslint/js': + specifier: ^9.19.0 + version: 9.19.0 '@tauri-apps/cli': - specifier: ^1.5.9 - version: 1.6.3 + specifier: ^2.2.7 + version: 2.2.7 '@vitest/ui': - specifier: ^2.1.3 - version: 2.1.3(vitest@2.1.3) + specifier: ^3.0.4 + version: 3.0.4(vitest@3.0.4) acorn: - specifier: ^8.13.0 - version: 8.13.0 + specifier: ^8.14.0 + version: 8.14.0 dependency-tree: - specifier: ^10.0.9 - version: 10.0.9 + specifier: ^11.0.1 + version: 11.0.1 eslint: - specifier: ^8.56.0 - version: 8.57.1 + specifier: ^9.19.0 + version: 9.19.0(jiti@2.4.2) eslint-plugin-import: specifier: ^2.31.0 - version: 2.31.0(eslint@8.57.1) + version: 2.31.0(eslint@9.19.0(jiti@2.4.2)) events: specifier: ^3.3.0 version: 3.3.0 + globals: + specifier: ^15.14.0 + version: 15.14.0 jsdoc: - specifier: ^4.0.3 - version: 4.0.3 + specifier: ^4.0.4 + version: 4.0.4 jsdoc-json: specifier: ^2.0.2 version: 2.0.2 - jsdoc-to-markdown: - specifier: ^8.0.0 - version: 8.0.3 lerna: - specifier: ^8.1.8 - version: 8.1.8(encoding@0.1.13) + specifier: ^8.1.9 + version: 8.1.9(encoding@0.1.13) prettier: - specifier: ^3.3.3 - version: 3.3.3 - rollup-plugin-visualizer: - specifier: ^5.12.0 - version: 5.12.0(rollup@4.24.0) + specifier: ^3.4.2 + version: 3.4.2 vitest: - specifier: ^2.1.3 - version: 2.1.3(@types/node@22.7.6)(@vitest/ui@2.1.3)(terser@5.36.0) + specifier: ^3.0.4 + version: 3.0.4(@types/node@22.12.0)(@vitest/ui@3.0.4)(lightningcss@1.29.1)(terser@5.36.0) examples/codemirror-repl: dependencies: @@ -98,8 +104,8 @@ importers: version: link:../../packages/webaudio devDependencies: vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) examples/headless-repl: dependencies: @@ -108,8 +114,8 @@ importers: version: link:../../packages/web devDependencies: vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) examples/minimal-repl: dependencies: @@ -130,8 +136,8 @@ importers: version: link:../../packages/webaudio devDependencies: vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) examples/superdough: dependencies: @@ -140,8 +146,8 @@ importers: version: link:../../packages/superdough devDependencies: vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) examples/tidal-repl: dependencies: @@ -153,47 +159,47 @@ importers: version: link:../../packages/hs2js devDependencies: vite: - specifier: ^5.0.8 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) packages/codemirror: dependencies: '@codemirror/autocomplete': - specifier: ^6.11.1 - version: 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.0.2) + specifier: ^6.18.4 + version: 6.18.4 '@codemirror/commands': - specifier: ^6.3.3 - version: 6.7.0 + specifier: ^6.8.0 + version: 6.8.0 '@codemirror/lang-javascript': - specifier: ^6.2.1 + specifier: ^6.2.2 version: 6.2.2 '@codemirror/language': - specifier: ^6.10.0 - version: 6.10.3 + specifier: ^6.10.8 + version: 6.10.8 '@codemirror/search': - specifier: ^6.5.5 - version: 6.5.6 + specifier: ^6.5.8 + version: 6.5.8 '@codemirror/state': - specifier: ^6.4.0 - version: 6.4.1 + specifier: ^6.5.1 + version: 6.5.1 '@codemirror/view': - specifier: ^6.23.0 - version: 6.34.1 + specifier: ^6.36.2 + version: 6.36.2 '@lezer/highlight': - specifier: ^1.2.0 + specifier: ^1.2.1 version: 1.2.1 '@nanostores/persistent': - specifier: ^0.9.1 - version: 0.9.1(nanostores@0.9.5) + specifier: ^0.10.2 + version: 0.10.2(nanostores@0.11.3) '@replit/codemirror-emacs': - specifier: ^6.0.1 - version: 6.1.0(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.0.2))(@codemirror/commands@6.7.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@replit/codemirror-vim': specifier: ^6.1.0 - version: 6.2.1(@codemirror/commands@6.7.0)(@codemirror/language@6.10.3)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) + version: 6.1.0(@codemirror/autocomplete@6.18.4)(@codemirror/commands@6.8.0)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/view@6.36.2) + '@replit/codemirror-vim': + specifier: ^6.2.1 + version: 6.2.1(@codemirror/commands@6.8.0)(@codemirror/language@6.10.8)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/view@6.36.2) '@replit/codemirror-vscode-keymap': specifier: ^6.0.2 - version: 6.0.2(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.0.2))(@codemirror/commands@6.7.0)(@codemirror/language@6.10.3)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) + version: 6.0.2(@codemirror/autocomplete@6.18.4)(@codemirror/commands@6.8.0)(@codemirror/language@6.10.8)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/view@6.36.2) '@strudel/core': specifier: workspace:* version: link:../core @@ -203,38 +209,32 @@ importers: '@strudel/transpiler': specifier: workspace:* version: link:../transpiler - '@uiw/codemirror-themes': - specifier: ^4.21.21 - version: 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-themes-all': - specifier: ^4.21.21 - version: 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) nanostores: - specifier: ^0.9.5 - version: 0.9.5 + specifier: ^0.11.3 + version: 0.11.3 devDependencies: vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) packages/core: dependencies: fraction.js: - specifier: ^4.3.7 - version: 4.3.7 + specifier: ^5.2.1 + version: 5.2.1 devDependencies: vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) vitest: - specifier: ^2.1.3 - version: 2.1.3(@types/node@22.7.6)(@vitest/ui@2.1.3)(terser@5.36.0) + specifier: ^3.0.4 + version: 3.0.4(@types/node@22.12.0)(@vitest/ui@3.0.4)(lightningcss@1.29.1)(terser@5.36.0) packages/csound: dependencies: '@csound/browser': specifier: 6.18.7 - version: 6.18.7(eslint@9.13.0(jiti@1.21.0)) + version: 6.18.7(eslint@9.19.0(jiti@2.4.2)) '@strudel/core': specifier: workspace:* version: link:../core @@ -243,8 +243,8 @@ importers: version: link:../webaudio devDependencies: vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) packages/desktopbridge: dependencies: @@ -252,8 +252,8 @@ importers: specifier: workspace:* version: link:../core '@tauri-apps/api': - specifier: ^1.5.3 - version: 1.6.0 + specifier: ^2.2.0 + version: 2.2.0 packages/draw: dependencies: @@ -262,8 +262,8 @@ importers: version: link:../core devDependencies: vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) packages/embed: {} @@ -275,20 +275,20 @@ importers: devDependencies: vite: specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + version: 5.4.9(@types/node@22.12.0)(lightningcss@1.29.1)(terser@5.36.0) packages/hs2js: dependencies: web-tree-sitter: - specifier: ^0.20.8 - version: 0.20.8 + specifier: ^0.24.7 + version: 0.24.7 devDependencies: tree-sitter-haskell: - specifier: ^0.21.0 - version: 0.21.0(tree-sitter@0.21.1) + specifier: ^0.23.1 + version: 0.23.1(tree-sitter@0.21.1) vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) packages/hydra: dependencies: @@ -306,8 +306,8 @@ importers: specifier: ^5.8.1 version: 5.8.1(encoding@0.1.13) vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) packages/midi: dependencies: @@ -318,12 +318,12 @@ importers: specifier: workspace:* version: link:../webaudio webmidi: - specifier: ^3.1.8 - version: 3.1.11 + specifier: ^3.1.12 + version: 3.1.12 devDependencies: vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) packages/mini: dependencies: @@ -332,14 +332,37 @@ importers: version: link:../core devDependencies: peggy: - specifier: ^3.0.2 - version: 3.0.2 + specifier: ^4.2.0 + version: 4.2.0 vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) vitest: - specifier: ^2.1.3 - version: 2.1.3(@types/node@22.7.6)(@vitest/ui@2.1.3)(terser@5.36.0) + specifier: ^3.0.4 + version: 3.0.4(@types/node@22.12.0)(@vitest/ui@3.0.4)(lightningcss@1.29.1)(terser@5.36.0) + + packages/motion: + dependencies: + '@strudel/core': + specifier: workspace:* + version: link:../core + devDependencies: + vite: + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) + + packages/mqtt: + dependencies: + '@strudel/core': + specifier: workspace:* + version: link:../core + paho-mqtt: + specifier: ^1.1.0 + version: 1.1.0 + devDependencies: + vite: + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) packages/osc: dependencies: @@ -347,15 +370,21 @@ importers: specifier: workspace:* version: link:../core osc-js: - specifier: ^2.4.0 + specifier: ^2.4.1 version: 2.4.1 devDependencies: pkg: specifier: ^5.8.1 version: 5.8.1(encoding@0.1.13) vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) + + packages/reference: + devDependencies: + vite: + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) packages/repl: dependencies: @@ -391,14 +420,11 @@ importers: version: link:../webaudio devDependencies: '@rollup/plugin-replace': - specifier: ^5.0.5 - version: 5.0.7(rollup@4.24.0) - rollup-plugin-visualizer: - specifier: ^5.12.0 - version: 5.12.0(rollup@4.24.0) + specifier: ^6.0.2 + version: 6.0.2(rollup@4.24.0) vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) packages/sampler: dependencies: @@ -413,8 +439,8 @@ importers: version: link:../core devDependencies: vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) packages/soundfonts: dependencies: @@ -428,25 +454,25 @@ importers: specifier: ^0.1.2 version: 0.1.2 soundfont2: - specifier: ^0.4.0 - version: 0.4.0 + specifier: ^0.5.0 + version: 0.5.0 devDependencies: node-fetch: specifier: ^3.3.2 version: 3.3.2 vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) packages/superdough: dependencies: nanostores: - specifier: ^0.9.5 - version: 0.9.5 + specifier: ^0.11.3 + version: 0.11.3 devDependencies: vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) packages/tidal: dependencies: @@ -461,8 +487,8 @@ importers: version: link:../hs2js devDependencies: vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) packages/tonal: dependencies: @@ -470,21 +496,21 @@ importers: specifier: workspace:* version: link:../core '@tonaljs/tonal': - specifier: ^4.7.2 + specifier: ^4.10.0 version: 4.10.0 chord-voicings: specifier: ^0.0.1 version: 0.0.1 webmidi: - specifier: ^3.1.8 - version: 3.1.11 + specifier: ^3.1.12 + version: 3.1.12 devDependencies: vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) vitest: - specifier: ^2.1.3 - version: 2.1.3(@types/node@22.7.6)(@vitest/ui@2.1.3)(terser@5.36.0) + specifier: ^3.0.4 + version: 3.0.4(@types/node@22.12.0)(@vitest/ui@3.0.4)(lightningcss@1.29.1)(terser@5.36.0) packages/transpiler: dependencies: @@ -495,21 +521,21 @@ importers: specifier: workspace:* version: link:../mini acorn: - specifier: ^8.11.3 - version: 8.13.0 + specifier: ^8.14.0 + version: 8.14.0 escodegen: specifier: ^2.1.0 version: 2.1.0 estree-walker: - specifier: ^3.0.1 + specifier: ^3.0.3 version: 3.0.3 devDependencies: vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) vitest: - specifier: ^2.1.3 - version: 2.1.3(@types/node@22.7.6)(@vitest/ui@2.1.3)(terser@5.36.0) + specifier: ^3.0.4 + version: 3.0.4(@types/node@22.12.0)(@vitest/ui@3.0.4)(lightningcss@1.29.1)(terser@5.36.0) packages/web: dependencies: @@ -530,11 +556,11 @@ importers: version: link:../webaudio devDependencies: '@rollup/plugin-replace': - specifier: ^5.0.5 - version: 5.0.7(rollup@4.24.0) + specifier: ^6.0.2 + version: 6.0.2(rollup@4.24.0) vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) packages/webaudio: dependencies: @@ -549,8 +575,8 @@ importers: version: link:../superdough devDependencies: vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) packages/xen: dependencies: @@ -559,56 +585,56 @@ importers: version: link:../core devDependencies: vite: - specifier: ^5.0.10 - version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) vitest: - specifier: ^2.1.3 - version: 2.1.3(@types/node@22.7.6)(@vitest/ui@2.1.3)(terser@5.36.0) + specifier: ^3.0.4 + version: 3.0.4(@types/node@22.12.0)(@vitest/ui@3.0.4)(lightningcss@1.29.1)(terser@5.36.0) tools/dbpatch: dependencies: csv: - specifier: ^6.3.6 - version: 6.3.10 + specifier: ^6.3.11 + version: 6.3.11 website: dependencies: '@algolia/client-search': - specifier: ^4.22.0 - version: 4.22.0 + specifier: ^5.20.0 + version: 5.20.0 '@astro-community/astro-embed-youtube': - specifier: ^0.4.4 - version: 0.4.5(astro@4.16.6(@types/node@20.16.12)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3)) + specifier: ^0.5.6 + version: 0.5.6(astro@5.2.1(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3)) '@astrojs/mdx': - specifier: ^2.0.3 - version: 2.3.1(astro@4.16.6(@types/node@20.16.12)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3)) + specifier: ^4.0.7 + version: 4.0.8(astro@5.2.1(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3)) '@astrojs/react': - specifier: ^3.0.9 - version: 3.6.2(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.9(@types/node@20.16.12)(terser@5.36.0)) + specifier: ^4.1.6 + version: 4.2.0(@types/node@22.12.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(jiti@2.4.2)(lightningcss@1.29.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(terser@5.36.0) '@astrojs/rss': - specifier: ^4.0.2 - version: 4.0.9 + specifier: ^4.0.11 + version: 4.0.11 '@astrojs/tailwind': - specifier: ^5.1.0 - version: 5.1.2(astro@4.16.6(@types/node@20.16.12)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3))(tailwindcss@3.4.14) + specifier: ^5.1.5 + version: 5.1.5(astro@5.2.1(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3))(tailwindcss@3.4.17) '@docsearch/css': - specifier: ^3.5.2 - version: 3.6.2 + specifier: ^3.8.3 + version: 3.8.3 '@docsearch/react': - specifier: ^3.5.2 - version: 3.6.2(@algolia/client-search@4.22.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0) + specifier: ^3.8.3 + version: 3.8.3(@algolia/client-search@5.20.0)(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.13.0) '@headlessui/react': - specifier: ^1.7.17 - version: 1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^2.2.0 + version: 2.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@heroicons/react': - specifier: ^2.1.1 - version: 2.1.5(react@18.3.1) + specifier: ^2.2.0 + version: 2.2.0(react@19.0.0) '@nanostores/persistent': - specifier: ^0.9.1 - version: 0.9.1(nanostores@0.9.5) + specifier: ^0.10.2 + version: 0.10.2(nanostores@0.11.3) '@nanostores/react': - specifier: ^0.7.1 - version: 0.7.3(nanostores@0.9.5)(react@18.3.1) + specifier: ^0.8.4 + version: 0.8.4(nanostores@0.11.3)(react@19.0.0) '@strudel/codemirror': specifier: workspace:* version: link:../packages/codemirror @@ -636,6 +662,12 @@ importers: '@strudel/mini': specifier: workspace:* version: link:../packages/mini + '@strudel/motion': + specifier: workspace:* + version: link:../packages/motion + '@strudel/mqtt': + specifier: workspace:* + version: link:../packages/mqtt '@strudel/osc': specifier: workspace:* version: link:../packages/osc @@ -661,56 +693,62 @@ importers: specifier: workspace:* version: link:../packages/xen '@supabase/supabase-js': - specifier: ^2.39.1 - version: 2.45.5 + specifier: ^2.48.1 + version: 2.48.1 '@tailwindcss/forms': - specifier: ^0.5.7 - version: 0.5.9(tailwindcss@3.4.14) - '@tailwindcss/typography': specifier: ^0.5.10 - version: 0.5.15(tailwindcss@3.4.14) + version: 0.5.10(tailwindcss@3.4.17) + '@tailwindcss/postcss': + specifier: ^4.0.0 + version: 4.0.1 + '@tailwindcss/typography': + specifier: ^0.5.16 + version: 0.5.16(tailwindcss@3.4.17) '@tauri-apps/api': - specifier: ^1.5.3 - version: 1.6.0 + specifier: ^2.2.0 + version: 2.2.0 + '@tauri-apps/plugin-clipboard-manager': + specifier: ^2.2.0 + version: 2.2.1 '@types/node': - specifier: ^20.10.6 - version: 20.16.12 + specifier: ^22.10.10 + version: 22.12.0 '@types/react': - specifier: ^18.2.46 - version: 18.3.11 + specifier: ^19.0.8 + version: 19.0.8 '@types/react-dom': - specifier: ^18.2.18 - version: 18.3.1 + specifier: ^19.0.3 + version: 19.0.3(@types/react@19.0.8) astro: - specifier: ^4.0.8 - version: 4.16.6(@types/node@20.16.12)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3) + specifier: ^5.1.9 + version: 5.2.1(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3) claviature: specifier: ^0.1.0 version: 0.1.0 date-fns: - specifier: ^3.2.0 - version: 3.6.0 + specifier: ^4.1.0 + version: 4.1.0 hs2js: - specifier: 0.0.8 - version: 0.0.8 + specifier: 0.1.0 + version: 0.1.0 nanoid: - specifier: ^5.0.4 - version: 5.0.7 + specifier: ^5.0.9 + version: 5.0.9 nanostores: - specifier: ^0.9.5 - version: 0.9.5 + specifier: ^0.11.3 + version: 0.11.3 react: - specifier: ^18.2.0 - version: 18.3.1 + specifier: ^19.0.0 + version: 19.0.0 react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) react-hook-inview: - specifier: ^4.5.0 - version: 4.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^4.5.1 + version: 4.5.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-lite-youtube-embed: specifier: ^2.4.0 - version: 2.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) rehype-autolink-headings: specifier: ^7.1.0 version: 7.1.0 @@ -724,27 +762,24 @@ importers: specifier: ^9.0.0 version: 9.0.0 tailwindcss: - specifier: ^3.4.0 - version: 3.4.14 + specifier: ^3.4.17 + version: 3.4.17 worker-timers: - specifier: ^7.1.4 - version: 7.1.8 + specifier: ^8.0.13 + version: 8.0.13 devDependencies: '@vite-pwa/astro': - specifier: ^0.2.0 - version: 0.2.0(astro@4.16.6(@types/node@20.16.12)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3))(vite-plugin-pwa@0.17.5(vite@5.4.9(@types/node@20.16.12)(terser@5.36.0))(workbox-build@7.0.0(@types/babel__core@7.20.5))(workbox-window@7.1.0)) + specifier: ^0.5.0 + version: 0.5.0(astro@5.2.1(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3))(vite-plugin-pwa@0.17.5(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0))(workbox-build@7.0.0(@types/babel__core@7.20.5))(workbox-window@7.3.0)) html-escaper: specifier: ^3.0.3 version: 3.0.3 sharp: - specifier: ^0.33.1 + specifier: ^0.33.5 version: 0.33.5 - vite-plugin-pwa: - specifier: ^0.17.4 - version: 0.17.5(vite@5.4.9(@types/node@20.16.12)(terser@5.36.0))(workbox-build@7.0.0(@types/babel__core@7.20.5))(workbox-window@7.1.0) workbox-window: - specifier: ^7.0.0 - version: 7.1.0 + specifier: ^7.3.0 + version: 7.3.0 packages: @@ -752,67 +787,77 @@ packages: resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} - '@algolia/autocomplete-core@1.9.3': - resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} + '@algolia/autocomplete-core@1.17.9': + resolution: {integrity: sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ==} - '@algolia/autocomplete-plugin-algolia-insights@1.9.3': - resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} + '@algolia/autocomplete-plugin-algolia-insights@1.17.9': + resolution: {integrity: sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ==} peerDependencies: search-insights: '>= 1 < 3' - '@algolia/autocomplete-preset-algolia@1.9.3': - resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} + '@algolia/autocomplete-preset-algolia@1.17.9': + resolution: {integrity: sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/autocomplete-shared@1.9.3': - resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} + '@algolia/autocomplete-shared@1.17.9': + resolution: {integrity: sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/cache-browser-local-storage@4.22.0': - resolution: {integrity: sha512-uZ1uZMLDZb4qODLfTSNHxSi4fH9RdrQf7DXEzW01dS8XK7QFtFh29N5NGKa9S+Yudf1vUMIF+/RiL4i/J0pWlQ==} + '@algolia/client-abtesting@5.20.0': + resolution: {integrity: sha512-YaEoNc1Xf2Yk6oCfXXkZ4+dIPLulCx8Ivqj0OsdkHWnsI3aOJChY5qsfyHhDBNSOhqn2ilgHWxSfyZrjxBcAww==} + engines: {node: '>= 14.0.0'} - '@algolia/cache-common@4.22.0': - resolution: {integrity: sha512-TPwUMlIGPN16eW67qamNQUmxNiGHg/WBqWcrOoCddhqNTqGDPVqmgfaM85LPbt24t3r1z0zEz/tdsmuq3Q6oaA==} + '@algolia/client-analytics@5.20.0': + resolution: {integrity: sha512-CIT9ni0+5sYwqehw+t5cesjho3ugKQjPVy/iPiJvtJX4g8Cdb6je6SPt2uX72cf2ISiXCAX9U3cY0nN0efnRDw==} + engines: {node: '>= 14.0.0'} - '@algolia/cache-in-memory@4.22.0': - resolution: {integrity: sha512-kf4Cio9NpPjzp1+uXQgL4jsMDeck7MP89BYThSvXSjf2A6qV/0KeqQf90TL2ECS02ovLOBXkk98P7qVarM+zGA==} + '@algolia/client-common@5.20.0': + resolution: {integrity: sha512-iSTFT3IU8KNpbAHcBUJw2HUrPnMXeXLyGajmCL7gIzWOsYM4GabZDHXOFx93WGiXMti1dymz8k8R+bfHv1YZmA==} + engines: {node: '>= 14.0.0'} - '@algolia/client-account@4.22.0': - resolution: {integrity: sha512-Bjb5UXpWmJT+yGWiqAJL0prkENyEZTBzdC+N1vBuHjwIJcjLMjPB6j1hNBRbT12Lmwi55uzqeMIKS69w+0aPzA==} + '@algolia/client-insights@5.20.0': + resolution: {integrity: sha512-w9RIojD45z1csvW1vZmAko82fqE/Dm+Ovsy2ElTsjFDB0HMAiLh2FO86hMHbEXDPz6GhHKgGNmBRiRP8dDPgJg==} + engines: {node: '>= 14.0.0'} - '@algolia/client-analytics@4.22.0': - resolution: {integrity: sha512-os2K+kHUcwwRa4ArFl5p/3YbF9lN3TLOPkbXXXxOvDpqFh62n9IRZuzfxpHxMPKAQS3Et1s0BkKavnNP02E9Hg==} + '@algolia/client-personalization@5.20.0': + resolution: {integrity: sha512-p/hftHhrbiHaEcxubYOzqVV4gUqYWLpTwK+nl2xN3eTrSW9SNuFlAvUBFqPXSVBqc6J5XL9dNKn3y8OA1KElSQ==} + engines: {node: '>= 14.0.0'} - '@algolia/client-common@4.22.0': - resolution: {integrity: sha512-BlbkF4qXVWuwTmYxVWvqtatCR3lzXwxx628p1wj1Q7QP2+LsTmGt1DiUYRuy9jG7iMsnlExby6kRMOOlbhv2Ag==} + '@algolia/client-query-suggestions@5.20.0': + resolution: {integrity: sha512-m4aAuis5vZi7P4gTfiEs6YPrk/9hNTESj3gEmGFgfJw3hO2ubdS4jSId1URd6dGdt0ax2QuapXufcrN58hPUcw==} + engines: {node: '>= 14.0.0'} - '@algolia/client-personalization@4.22.0': - resolution: {integrity: sha512-pEOftCxeBdG5pL97WngOBi9w5Vxr5KCV2j2D+xMVZH8MuU/JX7CglDSDDb0ffQWYqcUN+40Ry+xtXEYaGXTGow==} + '@algolia/client-search@5.20.0': + resolution: {integrity: sha512-KL1zWTzrlN4MSiaK1ea560iCA/UewMbS4ZsLQRPoDTWyrbDKVbztkPwwv764LAqgXk0fvkNZvJ3IelcK7DqhjQ==} + engines: {node: '>= 14.0.0'} - '@algolia/client-search@4.22.0': - resolution: {integrity: sha512-bn4qQiIdRPBGCwsNuuqB8rdHhGKKWIij9OqidM1UkQxnSG8yzxHdb7CujM30pvp5EnV7jTqDZRbxacbjYVW20Q==} + '@algolia/ingestion@1.20.0': + resolution: {integrity: sha512-shj2lTdzl9un4XJblrgqg54DoK6JeKFO8K8qInMu4XhE2JuB8De6PUuXAQwiRigZupbI0xq8aM0LKdc9+qiLQA==} + engines: {node: '>= 14.0.0'} - '@algolia/logger-common@4.22.0': - resolution: {integrity: sha512-HMUQTID0ucxNCXs5d1eBJ5q/HuKg8rFVE/vOiLaM4Abfeq1YnTtGV3+rFEhOPWhRQxNDd+YHa4q864IMc0zHpQ==} + '@algolia/monitoring@1.20.0': + resolution: {integrity: sha512-aF9blPwOhKtWvkjyyXh9P5peqmhCA1XxLBRgItT+K6pbT0q4hBDQrCid+pQZJYy4HFUKjB/NDDwyzFhj/rwKhw==} + engines: {node: '>= 14.0.0'} - '@algolia/logger-console@4.22.0': - resolution: {integrity: sha512-7JKb6hgcY64H7CRm3u6DRAiiEVXMvCJV5gRE672QFOUgDxo4aiDpfU61g6Uzy8NKjlEzHMmgG4e2fklELmPXhQ==} + '@algolia/recommend@5.20.0': + resolution: {integrity: sha512-T6B/WPdZR3b89/F9Vvk6QCbt/wrLAtrGoL8z4qPXDFApQ8MuTFWbleN/4rHn6APWO3ps+BUePIEbue2rY5MlRw==} + engines: {node: '>= 14.0.0'} - '@algolia/requester-browser-xhr@4.22.0': - resolution: {integrity: sha512-BHfv1h7P9/SyvcDJDaRuIwDu2yrDLlXlYmjvaLZTtPw6Ok/ZVhBR55JqW832XN/Fsl6k3LjdkYHHR7xnsa5Wvg==} + '@algolia/requester-browser-xhr@5.20.0': + resolution: {integrity: sha512-t6//lXsq8E85JMenHrI6mhViipUT5riNhEfCcvtRsTV+KIBpC6Od18eK864dmBhoc5MubM0f+sGpKOqJIlBSCg==} + engines: {node: '>= 14.0.0'} - '@algolia/requester-common@4.22.0': - resolution: {integrity: sha512-Y9cEH/cKjIIZgzvI1aI0ARdtR/xRrOR13g5psCxkdhpgRN0Vcorx+zePhmAa4jdQNqexpxtkUdcKYugBzMZJgQ==} + '@algolia/requester-fetch@5.20.0': + resolution: {integrity: sha512-FHxYGqRY+6bgjKsK4aUsTAg6xMs2S21elPe4Y50GB0Y041ihvw41Vlwy2QS6K9ldoftX4JvXodbKTcmuQxywdQ==} + engines: {node: '>= 14.0.0'} - '@algolia/requester-node-http@4.22.0': - resolution: {integrity: sha512-8xHoGpxVhz3u2MYIieHIB6MsnX+vfd5PS4REgglejJ6lPigftRhTdBCToe6zbwq4p0anZXjjPDvNWMlgK2+xYA==} - - '@algolia/transporter@4.22.0': - resolution: {integrity: sha512-ieO1k8x2o77GNvOoC+vAkFKppydQSVfbjM3YrSjLmgywiBejPTvU1R1nEvG59JIIUvtSLrZsLGPkd6vL14zopA==} + '@algolia/requester-node-http@5.20.0': + resolution: {integrity: sha512-kmtQClq/w3vtPteDSPvaW9SPZL/xrIgMrxZyAgsFwrJk0vJxqyC5/hwHmrCraDnStnGSADnLpBf4SpZnwnkwWw==} + engines: {node: '>= 14.0.0'} '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} @@ -828,71 +873,76 @@ packages: peerDependencies: ajv: '>=8' - '@astro-community/astro-embed-youtube@0.4.5': - resolution: {integrity: sha512-YD2g9a8aiUvypYb4wSobqCKhItDomdrdy62eHFaEGlqMrxP3eT+GUYUsjFxw7Yj/KwTzMjeqbgZlav11MwQgOg==} + '@astro-community/astro-embed-youtube@0.5.6': + resolution: {integrity: sha512-/mRfCl/eTBUz0kmjD1psOy0qoDDBorVp0QumUacjFcIkBullYtbeFQ2ZGZ+3N/tA6cR/OIyzr2QA4dQXlY6USg==} peerDependencies: - astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta + astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta || ^5.0.0-beta '@astrojs/compiler@2.10.3': resolution: {integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==} - '@astrojs/internal-helpers@0.4.1': - resolution: {integrity: sha512-bMf9jFihO8YP940uD70SI/RDzIhUHJAolWVcO1v5PUivxGKvfLZTLTVVxEYzGYyPsA3ivdLNqMnL5VgmQySa+g==} + '@astrojs/internal-helpers@0.5.0': + resolution: {integrity: sha512-CgB5ZaZO1PFG+rbjF3HnA7G6gIBjJ070xb7bUjeu5Gqqufma+t6fpuRWMXnK2iEO3zVyX7e/xplPlqtFKy/lvw==} - '@astrojs/markdown-remark@5.1.0': - resolution: {integrity: sha512-S6Z3K2hOB7MfjeDoHsotnP/q2UsnEDB8NlNAaCjMDsGBZfTUbWxyLW3CaphEWw08f6KLZi2ibK9yC3BaMhh2NQ==} + '@astrojs/markdown-remark@6.1.0': + resolution: {integrity: sha512-emZNNSTPGgPc3V399Cazpp5+snogjaF04ocOSQn9vy3Kw/eIC4vTQjXOrWDEoSEy+AwPDZX9bQ4wd3bxhpmGgQ==} - '@astrojs/markdown-remark@5.3.0': - resolution: {integrity: sha512-r0Ikqr0e6ozPb5bvhup1qdWnSPUvQu6tub4ZLYaKyG50BXZ0ej6FhGz3GpChKpH7kglRFPObJd/bDyf2VM9pkg==} - - '@astrojs/mdx@2.3.1': - resolution: {integrity: sha512-BOQFKD2Pi9cRntNQJlpF2fh4xV8doNpmVy9NKI95r4jsitrY4X5aTOhAowi+fkQgP/zW1A4HwCyQ6Pdam6z8zQ==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + '@astrojs/mdx@4.0.8': + resolution: {integrity: sha512-/aiLr2yQ55W9AbpyOgfMtFXk7g2t7XoWdC2Avps/NqxAx4aYONDLneX43D79QwgqdjFhin7o3cIPp/vVppMbaA==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} peerDependencies: - astro: ^4.0.0 + astro: ^5.0.0 - '@astrojs/prism@3.1.0': - resolution: {integrity: sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + '@astrojs/prism@3.2.0': + resolution: {integrity: sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} - '@astrojs/react@3.6.2': - resolution: {integrity: sha512-fK29lYI7zK/KG4ZBy956x4dmauZcZ18osFkuyGa8r3gmmCQa2NZ9XNu9WaVYEUm0j89f4Gii4tbxLoyM8nk2MA==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + '@astrojs/react@4.2.0': + resolution: {integrity: sha512-2OccnYFK+mLuy9GpJqPM3BQGvvemnXNeww+nBVYFuiH04L7YIdfg4Gq0LT7v/BraiuADV5uTl9VhTDL/ZQPAhw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} peerDependencies: - '@types/react': ^17.0.50 || ^18.0.21 - '@types/react-dom': ^17.0.17 || ^18.0.6 - react: ^17.0.2 || ^18.0.0 || ^19.0.0-beta - react-dom: ^17.0.2 || ^18.0.0 || ^19.0.0-beta + '@types/react': ^17.0.50 || ^18.0.21 || ^19.0.0 + '@types/react-dom': ^17.0.17 || ^18.0.6 || ^19.0.0 + react: ^17.0.2 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.2 || ^18.0.0 || ^19.0.0 - '@astrojs/rss@4.0.9': - resolution: {integrity: sha512-W1qeLc/WP1vMS5xXa+BnaLU0paeSeGjN8RJVAoBaOIkQuKXjIUA9hvPno89heo73in5i67g40gy70oeeHMqp6A==} + '@astrojs/rss@4.0.11': + resolution: {integrity: sha512-3e3H8i6kc97KGnn9iaZBJpIkdoQi8MmR5zH5R+dWsfCM44lLTszOqy1OBfGGxDt56mpQkYVtZJWoxMyWuUZBfw==} - '@astrojs/tailwind@5.1.2': - resolution: {integrity: sha512-IvOF0W/dtHElcXvhrPR35nHmhyV3cfz1EzPitMGtU7sYy9Hci3BNK1To6FWmVuuNKPxza1IgCGetSynJZL7fOg==} + '@astrojs/tailwind@5.1.5': + resolution: {integrity: sha512-1diguZEau7FZ9vIjzE4BwavGdhD3+JkdS8zmibl1ene+EHgIU5hI0NMgRYG3yea+Niaf7cyMwjeWeLvzq/maxg==} peerDependencies: - astro: ^3.0.0 || ^4.0.0 || ^5.0.0-beta.0 + astro: ^3.0.0 || ^4.0.0 || ^5.0.0 tailwindcss: ^3.0.24 - '@astrojs/telemetry@3.1.0': - resolution: {integrity: sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} - - '@babel/code-frame@7.23.5': - resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} - engines: {node: '>=6.9.0'} + '@astrojs/telemetry@3.2.0': + resolution: {integrity: sha512-wxhSKRfKugLwLlr4OFfcqovk+LIFtKwLyGPqMsv+9/ibqqnW3Gv7tBhtKEb0gAyUAC4G9BTVQeQahqnQAhd6IQ==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} '@babel/code-frame@7.25.7': resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.25.8': resolution: {integrity: sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.26.5': + resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==} + engines: {node: '>=6.9.0'} + '@babel/core@7.25.8': resolution: {integrity: sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==} engines: {node: '>=6.9.0'} + '@babel/core@7.26.7': + resolution: {integrity: sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.18.2': resolution: {integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==} engines: {node: '>=6.9.0'} @@ -901,6 +951,10 @@ packages: resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} engines: {node: '>=6.9.0'} + '@babel/generator@7.26.5': + resolution: {integrity: sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.25.7': resolution: {integrity: sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==} engines: {node: '>=6.9.0'} @@ -913,6 +967,10 @@ packages: resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.26.5': + resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} + engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@7.25.7': resolution: {integrity: sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw==} engines: {node: '>=6.9.0'} @@ -938,12 +996,22 @@ packages: resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.25.7': resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.25.7': resolution: {integrity: sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng==} engines: {node: '>=6.9.0'} @@ -952,6 +1020,10 @@ packages: resolution: {integrity: sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.26.5': + resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} + engines: {node: '>=6.9.0'} + '@babel/helper-remap-async-to-generator@7.25.7': resolution: {integrity: sha512-kRGE89hLnPfcz6fTrlNU+uhgcwv0mBE4Gv3P9Ke9kLVJYpi4AMVVEElXvB5CabrPZW4nCM8P8UyyjrzCM0O2sw==} engines: {node: '>=6.9.0'} @@ -972,10 +1044,6 @@ packages: resolution: {integrity: sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.19.4': - resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.21.5': resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==} engines: {node: '>=6.9.0'} @@ -984,6 +1052,10 @@ packages: resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.19.1': resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} @@ -992,10 +1064,18 @@ packages: resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.25.7': resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + engines: {node: '>=6.9.0'} + '@babel/helper-wrap-function@7.25.7': resolution: {integrity: sha512-MA0roW3JF2bD1ptAaJnvcabsVlNQShUaThyJbCDD4bCp8NEgiFvpoqRI2YS22hHlc2thjO/fTg2ShLMC3jygAg==} engines: {node: '>=6.9.0'} @@ -1004,8 +1084,8 @@ packages: resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.23.4': - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + '@babel/helpers@7.26.7': + resolution: {integrity: sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==} engines: {node: '>=6.9.0'} '@babel/highlight@7.25.7': @@ -1017,13 +1097,13 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.21.4': - resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==} + '@babel/parser@7.25.8': + resolution: {integrity: sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.25.8': - resolution: {integrity: sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==} + '@babel/parser@7.26.7': + resolution: {integrity: sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==} engines: {node: '>=6.0.0'} hasBin: true @@ -1075,12 +1155,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.25.7': - resolution: {integrity: sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} @@ -1315,20 +1389,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-self@7.25.7': - resolution: {integrity: sha512-JD9MUnLbPL0WdVK8AWC7F7tTG2OS6u/AKKnsK+NdRhUiVdnzyR1S3kKQCaRLOiaULvUiqK6Z4JQE635VgtCFeg==} + '@babel/plugin-transform-react-jsx-self@7.25.9': + resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.25.7': - resolution: {integrity: sha512-S/JXG/KrbIY06iyJPKfxr0qRxnhNOdkNXYBl/rmwgDd72cQLH9tEGkDm/yJPGvcSIUoikzfjMios9i+xT/uv9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx@7.25.7': - resolution: {integrity: sha512-vILAg5nwGlR9EXE8JIOX4NHXd49lrYbN8hnjffDtoULwpL9hUx/N55nqh2qd0q6FyNDfjl9V79ecKGvFbcSA0Q==} + '@babel/plugin-transform-react-jsx-source@7.25.9': + resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1410,28 +1478,32 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/runtime@7.20.13': - resolution: {integrity: sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==} - engines: {node: '>=6.9.0'} - '@babel/runtime@7.25.7': resolution: {integrity: sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.26.7': + resolution: {integrity: sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==} + engines: {node: '>=6.9.0'} + '@babel/template@7.25.7': resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} engines: {node: '>=6.9.0'} + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.25.7': resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} engines: {node: '>=6.9.0'} - '@babel/types@7.19.0': - resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==} + '@babel/traverse@7.26.7': + resolution: {integrity: sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==} engines: {node: '>=6.9.0'} - '@babel/types@7.20.7': - resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==} + '@babel/types@7.19.0': + resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==} engines: {node: '>=6.9.0'} '@babel/types@7.21.5': @@ -1442,50 +1514,46 @@ packages: resolution: {integrity: sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==} engines: {node: '>=6.9.0'} - '@codemirror/autocomplete@6.18.1': - resolution: {integrity: sha512-iWHdj/B1ethnHRTwZj+C1obmmuCzquH29EbcKr0qIjA9NfDeBDJ7vs+WOHsFeLeflE4o+dHfYndJloMKHUkWUA==} - peerDependencies: - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - '@lezer/common': ^1.0.0 + '@babel/types@7.26.7': + resolution: {integrity: sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==} + engines: {node: '>=6.9.0'} - '@codemirror/commands@6.7.0': - resolution: {integrity: sha512-+cduIZ2KbesDhbykV02K25A5xIVrquSPz4UxxYBemRlAT2aW8dhwUgLDwej7q/RJUHKk4nALYcR1puecDvbdqw==} + '@codemirror/autocomplete@6.18.4': + resolution: {integrity: sha512-sFAphGQIqyQZfP2ZBsSHV7xQvo9Py0rV0dW7W3IMRdS+zDuNb2l3no78CvUaWKGfzFjI4FTrLdUSj86IGb2hRA==} + + '@codemirror/commands@6.8.0': + resolution: {integrity: sha512-q8VPEFaEP4ikSlt6ZxjB3zW72+7osfAYW9i8Zu943uqbKuz6utc1+F170hyLUCUltXORjQXRyYQNfkckzA/bPQ==} '@codemirror/lang-javascript@6.2.2': resolution: {integrity: sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==} - '@codemirror/language@6.10.3': - resolution: {integrity: sha512-kDqEU5sCP55Oabl6E7m5N+vZRoc0iWqgDVhEKifcHzPzjqCegcO4amfrYVL9PmPZpl4G0yjkpTpUO/Ui8CzO8A==} - - '@codemirror/lint@6.1.0': - resolution: {integrity: sha512-mdvDQrjRmYPvQ3WrzF6Ewaao+NWERYtpthJvoQ3tK3t/44Ynhk8ZGjTSL9jMEv8CgSMogmt75X8ceOZRDSXHtQ==} + '@codemirror/language@6.10.8': + resolution: {integrity: sha512-wcP8XPPhDH2vTqf181U8MbZnW+tDyPYy0UzVOa+oHORjyT+mhhom9vBd7dApJwoDz9Nb/a8kHjJIsuA/t8vNFw==} '@codemirror/lint@6.4.2': resolution: {integrity: sha512-wzRkluWb1ptPKdzlsrbwwjYCPLgzU6N88YBAmlZi8WFyuiEduSd05MnJYNogzyc8rPK7pj6m95ptUApc8sHKVA==} - '@codemirror/search@6.5.6': - resolution: {integrity: sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==} + '@codemirror/search@6.5.8': + resolution: {integrity: sha512-PoWtZvo7c1XFeZWmmyaOp2G0XVbOnm+fJzvghqGAktBW3cufwJUWvSCcNG0ppXiBEM05mZu6RhMtXPv2hpllig==} - '@codemirror/state@6.4.1': - resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==} + '@codemirror/state@6.5.1': + resolution: {integrity: sha512-3rA9lcwciEB47ZevqvD8qgbzhM9qMb8vCcQCNmDfVRPQG4JT9mSb0Jg8H7YjKGGQcFnLN323fj9jdnG59Kx6bg==} - '@codemirror/view@6.34.1': - resolution: {integrity: sha512-t1zK/l9UiRqwUNPm+pdIT0qzJlzuVckbTEMVNFhfWkGiBQClstzg+78vedCvLSX0xJEZ6lwZbPpnljL7L6iwMQ==} + '@codemirror/view@6.36.2': + resolution: {integrity: sha512-DZ6ONbs8qdJK0fdN7AB82CgI6tYXf4HWk1wSVa0+9bhVznCuuvhQtX8bFBoy3dv8rZSQqUd8GvhVAcielcidrA==} '@csound/browser@6.18.7': resolution: {integrity: sha512-pHC83n1fzV9xp7hkFNBTWYsqkBnOS3qNAA9AJNnu3ZCG35a4rMZ5ydOuFi3qqfkLwRTd+frazabxM/lu0+u0qw==} - '@dependents/detective-less@4.1.0': - resolution: {integrity: sha512-KrkT6qO5NxqNfy68sBl6CTSoJ4SNDIS5iQArkibhlbGU4LaDukZ3q2HIkh8aUKDio6o4itU4xDR7t82Y2eP1Bg==} - engines: {node: '>=14'} + '@dependents/detective-less@5.0.0': + resolution: {integrity: sha512-D/9dozteKcutI5OdxJd8rU+fL6XgaaRg60sPPJWkT33OCiRfkCu5wO5B/yXTaaL2e6EB0lcCBGe5E0XscZCvvQ==} + engines: {node: '>=18'} - '@docsearch/css@3.6.2': - resolution: {integrity: sha512-vKNZepO2j7MrYBTZIGXvlUOIR+v9KRf70FApRgovWrj3GTs1EITz/Xb0AOlm1xsQBp16clVZj1SY/qaOJbQtZw==} + '@docsearch/css@3.8.3': + resolution: {integrity: sha512-1nELpMV40JDLJ6rpVVFX48R1jsBFIQ6RnEQDsLFGmzOjPWTOMlZqUcXcvRx8VmYV/TqnS1l784Ofz+ZEb+wEOQ==} - '@docsearch/react@3.6.2': - resolution: {integrity: sha512-rtZce46OOkVflCQH71IdbXSFK+S8iJZlUF56XBW5rIgx/eG5qoomC7Ag3anZson1bBac/JFQn7XOBfved/IMRA==} + '@docsearch/react@3.8.3': + resolution: {integrity: sha512-6UNrg88K7lJWmuS6zFPL/xgL+n326qXqZ7Ybyy4E8P/6Rcblk3GE8RXxeol4Pd5pFpKMhOhBhzABKKwHtbJCIg==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' react: '>= 16.8.0 < 19.0.0' @@ -1510,217 +1578,384 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.21.5': resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.21.5': resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.21.5': resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.21.5': resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.21.5': resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.21.5': resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.21.5': resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.21.5': resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.21.5': resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.21.5': resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.21.5': resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.21.5': resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.21.5': resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.21.5': resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.21.5': resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.24.2': + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.24.2': + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.21.5': resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.24.2': + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.21.5': resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.21.5': resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.21.5': resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.21.5': resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.24.2': + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.11.1': - resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.18.0': - resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + '@eslint/compat@1.2.5': + resolution: {integrity: sha512-5iuG/StT+7OfvhoBHPlmxkPA9om6aDUFgmD4+mWKAGsYt4vCe8rypneG03AuseyRHBmcCLXQtIH5S26tIoggLg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^9.10.0 + peerDependenciesMeta: + eslint: + optional: true + + '@eslint/config-array@0.19.1': + resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.7.0': - resolution: {integrity: sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==} + '@eslint/core@0.10.0': + resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/eslintrc@3.1.0': - resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@9.13.0': - resolution: {integrity: sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==} + '@eslint/js@9.19.0': + resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.4': - resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + '@eslint/object-schema@2.1.5': + resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.1': - resolution: {integrity: sha512-HFZ4Mp26nbWk9d/BpvP0YNL6W4UoZF0VFcTw/aPPA8RpOxeFQgK+ClABGgAUXs9Y/RGX/l1vOmrqz1MQt9MNuw==} + '@eslint/plugin-kit@0.2.5': + resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@headlessui/react@1.7.19': - resolution: {integrity: sha512-Ll+8q3OlMJfJbAKM/+/Y2q6PPYbryqNTXDbryx7SXLIDamkF6iQFbriYHga0dY44PvDhvvBWCx1Xj4U5+G4hOw==} + '@floating-ui/core@1.6.9': + resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} + + '@floating-ui/dom@1.6.13': + resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} + + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/react@0.26.28': + resolution: {integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.9': + resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + + '@headlessui/react@2.2.0': + resolution: {integrity: sha512-RzCEg+LXsuI7mHiSomsu/gBJSjpupm6A1qIZ5sWjd7JhARNlMiSA4kKfJpCKwU9tE+zMRterhhrP74PvfJrpXQ==} engines: {node: '>=10'} peerDependencies: - react: ^16 || ^17 || ^18 - react-dom: ^16 || ^17 || ^18 + react: ^18 || ^19 || ^19.0.0-rc + react-dom: ^18 || ^19 || ^19.0.0-rc - '@heroicons/react@2.1.5': - resolution: {integrity: sha512-FuzFN+BsHa+7OxbvAERtgBTNeZpUjgM/MIizfVkSCL2/edriN0Hx/DWRCR//aPYwO5QX/YlgLGXk+E3PcfZwjA==} + '@heroicons/react@2.2.0': + resolution: {integrity: sha512-LMcepvRaS9LYHJGsF0zzmgKCUim/X3N/DQKc4jepAXJ7l8QxJ1PmxJzqplF2Z3FE4PqBAIGyJAQ/w4B5dsqbtQ==} peerDependencies: - react: '>= 16' + react: '>= 16 || ^19.0.0-rc' - '@humanfs/core@0.19.0': - resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==} + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.5': - resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==} + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} engines: {node: '>=18.18.0'} - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead - '@humanwhocodes/retry@0.3.1': resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} + '@humanwhocodes/retry@0.4.1': + resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} + engines: {node: '>=18.18'} + '@hutson/parse-repository-url@3.0.2': resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} engines: {node: '>=6.9.0'} @@ -1884,13 +2119,10 @@ packages: resolution: {integrity: sha512-bbtCxCkxcnWhi50I+4Lj6mdz9w3pOXOgEQrID8TCZ/DF51fW7M9GCQW2y45SpBDdHd1Eirm1X/Cf6CkAAe8HPg==} engines: {node: '>=v12.0.0'} - '@lerna/create@8.1.8': - resolution: {integrity: sha512-wi72R01tgjBjzG2kjRyTHl4yCTKDfDMIXRyKz9E/FBa9SkFvUOAE4bdyY9MhEsRZmSWL7+CYE8Flv/HScRpBbA==} + '@lerna/create@8.1.9': + resolution: {integrity: sha512-DPnl5lPX4v49eVxEbJnAizrpMdMTBz1qykZrAbBul9rfgk531v8oAt+Pm6O/rpAleRombNM7FJb5rYGzBJatOQ==} engines: {node: '>=18.0.0'} - '@lezer/common@1.0.2': - resolution: {integrity: sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng==} - '@lezer/common@1.2.0': resolution: {integrity: sha512-Wmvlm4q6tRpwiy20TnB3yyLTZim38Tkc50dPY8biQRwqE+ati/wD84rm3N15hikvdT4uSg9phs9ubjvcLmkpKg==} @@ -1903,17 +2135,20 @@ packages: '@lezer/lr@1.3.1': resolution: {integrity: sha512-+GymJB/+3gThkk2zHwseaJTI5oa4AuOuj1I2LCslAVq1dFZLSX8SAe4ZlJq1TjezteDXtF/+d4qeWz9JvnrG9Q==} + '@marijn/find-cluster-break@1.0.2': + resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} + '@mdx-js/mdx@3.1.0': resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} - '@nanostores/persistent@0.9.1': - resolution: {integrity: sha512-ow57Hxm5VMaI5GHET/cVk8hX/iKMmbhcGrB9owfN8p8OHiiJgUlYxe1giacwlAALJXAh2t8bxXh42hHb64BCEA==} - engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} + '@nanostores/persistent@0.10.2': + resolution: {integrity: sha512-BEndnLhRC+yP7gXTESepBbSj8XNl8OXK9hu4xAgKC7MWJHKXnEqJMqY47LUyHxK6vYgFnisyHmqq+vq8AUFyIg==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - nanostores: ^0.9.0 + nanostores: ^0.9.0 || ^0.10.0 || ^0.11.0 - '@nanostores/react@0.7.3': - resolution: {integrity: sha512-/XuLAMENRu/Q71biW4AZ4qmU070vkZgiQ28gaTSNRPm2SZF5zGAR81zPE1MaMB4SeOp6ZTst92NBaG75XSspNg==} + '@nanostores/react@0.8.4': + resolution: {integrity: sha512-EciHSzDXg7GmGODjegGG1VldPEinbAK+12/Uz5+MAdHmxf082Rl6eXqKFxAAu4pZAcr5dNTpv6wMfEe7XacjkQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: nanostores: ^0.9.0 || ^0.10.0 || ^0.11.0 @@ -2077,9 +2312,6 @@ packages: resolution: {integrity: sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==} engines: {node: '>= 14'} - '@octokit/openapi-types@16.0.0': - resolution: {integrity: sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==} - '@octokit/openapi-types@18.1.1': resolution: {integrity: sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==} @@ -2121,15 +2353,16 @@ packages: '@octokit/types@10.0.0': resolution: {integrity: sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==} - '@octokit/types@9.0.0': - resolution: {integrity: sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==} - '@octokit/types@9.3.2': resolution: {integrity: sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==} '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + '@peggyjs/from-mem@1.3.5': + resolution: {integrity: sha512-oRyzXE7nirAn+5yYjCdWQHg3EG2XXcYRoYNOK8Quqnmm+9FyK/2YWVunwudlYl++M3xY+gIAdf0vAYS+p0nKfQ==} + engines: {node: '>=18'} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -2137,6 +2370,40 @@ packages: '@polka/url@1.0.0-next.28': resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} + '@react-aria/focus@3.19.1': + resolution: {integrity: sha512-bix9Bu1Ue7RPcYmjwcjhB14BMu2qzfJ3tMQLqDc9pweJA66nOw8DThy3IfVr8Z7j2PHktOLf9kcbiZpydKHqzg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/interactions@3.23.0': + resolution: {integrity: sha512-0qR1atBIWrb7FzQ+Tmr3s8uH5mQdyRH78n0krYaG8tng9+u1JlSi8DGRSaC9ezKyNB84m7vHT207xnHXGeJ3Fg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/ssr@3.9.7': + resolution: {integrity: sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==} + engines: {node: '>= 12'} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/utils@3.27.0': + resolution: {integrity: sha512-p681OtApnKOdbeN8ITfnnYqfdHS0z7GE+4l8EXlfLnr70Rp/9xicBO6d2rU+V/B3JujDw2gPWxYKEnEeh0CGCw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/utils@3.10.5': + resolution: {integrity: sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/shared@3.27.0': + resolution: {integrity: sha512-gvznmLhi6JPEf0bsq7SwRYTHAKKq/wcmKqFez9sRdbED+SPMUmK5omfZ6w3EwUFQHbYUa4zPBYedQ7Knv70RMw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@replit/codemirror-emacs@6.1.0': resolution: {integrity: sha512-74DITnht6Cs6sHg02PQ169IKb1XgtyhI9sLD0JeOFco6Ds18PT+dkD8+DgXBDokne9UIFKsBbKPnpFRAz60/Lw==} peerDependencies: @@ -2188,8 +2455,8 @@ packages: peerDependencies: rollup: ^1.20.0 || ^2.0.0 - '@rollup/plugin-replace@5.0.7': - resolution: {integrity: sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==} + '@rollup/plugin-replace@6.0.2': + resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -2212,6 +2479,15 @@ packages: rollup: optional: true + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/rollup-android-arm-eabi@4.24.0': resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} cpu: [arm] @@ -2295,20 +2571,26 @@ packages: '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@shikijs/core@1.22.0': - resolution: {integrity: sha512-S8sMe4q71TJAW+qG93s5VaiihujRK6rqDFqBnxqvga/3LvqHEnxqBIOPkt//IdXVtHkQWKu4nOQNk0uBGicU7Q==} + '@shikijs/core@1.29.2': + resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} - '@shikijs/engine-javascript@1.22.0': - resolution: {integrity: sha512-AeEtF4Gcck2dwBqCFUKYfsCq0s+eEbCEbkUuFou53NZ0sTGnJnJ/05KHQFZxpii5HMXbocV9URYVowOP2wH5kw==} + '@shikijs/engine-javascript@1.29.2': + resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} - '@shikijs/engine-oniguruma@1.22.0': - resolution: {integrity: sha512-5iBVjhu/DYs1HB0BKsRRFipRrD7rqjxlWTj4F2Pf+nQSPqc3kcyqFFeZXnBMzDf0HdqaFVvhDRAGiYNvyLP+Mw==} + '@shikijs/engine-oniguruma@1.29.2': + resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} - '@shikijs/types@1.22.0': - resolution: {integrity: sha512-Fw/Nr7FGFhlQqHfxzZY8Cwtwk5E9nKDUgeLjZgt3UuhcM3yJR9xj3ZGNravZZok8XmEZMiYkSMTPlPkULB8nww==} + '@shikijs/langs@1.29.2': + resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} - '@shikijs/vscode-textmate@9.3.0': - resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} + '@shikijs/themes@1.29.2': + resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} + + '@shikijs/types@1.29.2': + resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} + + '@shikijs/vscode-textmate@10.0.1': + resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==} '@sigstore/bundle@2.3.2': resolution: {integrity: sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==} @@ -2337,40 +2619,119 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - '@supabase/auth-js@2.65.1': - resolution: {integrity: sha512-IA7i2Xq2SWNCNMKxwmPlHafBQda0qtnFr8QnyyBr+KaSxoXXqEzFCnQ1dGTy6bsZjVBgXu++o3qrDypTspaAPw==} + '@supabase/auth-js@2.67.3': + resolution: {integrity: sha512-NJDaW8yXs49xMvWVOkSIr8j46jf+tYHV0wHhrwOaLLMZSFO4g6kKAf+MfzQ2RaD06OCUkUHIzctLAxjTgEVpzw==} - '@supabase/functions-js@2.4.3': - resolution: {integrity: sha512-sOLXy+mWRyu4LLv1onYydq+10mNRQ4rzqQxNhbrKLTLTcdcmS9hbWif0bGz/NavmiQfPs4ZcmQJp4WqOXlR4AQ==} + '@supabase/functions-js@2.4.4': + resolution: {integrity: sha512-WL2p6r4AXNGwop7iwvul2BvOtuJ1YQy8EbOd0dhG1oN1q8el/BIRSFCFnWAMM/vJJlHWLi4ad22sKbKr9mvjoA==} '@supabase/node-fetch@2.6.15': resolution: {integrity: sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==} engines: {node: 4.x || >=6.0.0} - '@supabase/postgrest-js@1.16.2': - resolution: {integrity: sha512-dA/CIrSO2YDQ6ABNpbvEg9DwBMMbuKfWaFuZAU9c66PenoLSoIoyXk1Yq/wC2XISgEIqaMHmTrDAAsO80kjHqg==} + '@supabase/postgrest-js@1.18.1': + resolution: {integrity: sha512-dWDnoC0MoDHKhaEOrsEKTadWQcBNknZVQcSgNE/Q2wXh05mhCL1ut/jthRUrSbYcqIw/CEjhaeIPp7dLarT0bg==} - '@supabase/realtime-js@2.10.7': - resolution: {integrity: sha512-OLI0hiSAqQSqRpGMTUwoIWo51eUivSYlaNBgxsXZE7PSoWh12wPRdVt0psUMaUzEonSB85K21wGc7W5jHnT6uA==} + '@supabase/realtime-js@2.11.2': + resolution: {integrity: sha512-u/XeuL2Y0QEhXSoIPZZwR6wMXgB+RQbJzG9VErA3VghVt7uRfSVsjeqd7m5GhX3JR6dM/WRmLbVR8URpDWG4+w==} '@supabase/storage-js@2.7.1': resolution: {integrity: sha512-asYHcyDR1fKqrMpytAS1zjyEfvxuOIp1CIXX7ji4lHHcJKqyk+sLl/Vxgm4sN6u8zvuUtae9e4kDxQP2qrwWBA==} - '@supabase/supabase-js@2.45.5': - resolution: {integrity: sha512-xTPsv33Hcj6C38SXa4nKobwEwkNQuwcCKtcuBsDT6bvphl1VUAO3x2QoLOuuglJzk2Oaf3WcVsvRcxXNE8PG/g==} + '@supabase/supabase-js@2.48.1': + resolution: {integrity: sha512-VMD+CYk/KxfwGbI4fqwSUVA7CLr1izXpqfFerhnYPSi6LEKD8GoR4kuO5Cc8a+N43LnfSQwLJu4kVm2e4etEmA==} '@surma/rollup-plugin-off-main-thread@2.2.3': resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} - '@tailwindcss/forms@0.5.9': - resolution: {integrity: sha512-tM4XVr2+UVTxXJzey9Twx48c1gcxFStqn1pQz0tRsX8o3DvxhN5oY5pvyAbUx7VTaZxpej4Zzvc6h+1RJBzpIg==} - peerDependencies: - tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20' + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - '@tailwindcss/typography@0.5.15': - resolution: {integrity: sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==} + '@tailwindcss/forms@0.5.10': + resolution: {integrity: sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==} peerDependencies: - tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20' + tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1' + + '@tailwindcss/node@4.0.1': + resolution: {integrity: sha512-lc+ly6PKHqgCVl7eO8D2JlV96Lks5bmL6pdtM6UasyUHLU2zmrOqU6jfgln120IVnCh3VC8GG/ca24xVTtSokw==} + + '@tailwindcss/oxide-android-arm64@4.0.1': + resolution: {integrity: sha512-eP/rI9WaAElpeiiHDqGtDqga9iDsOClXxIqdHayHsw93F24F03b60CwgGhrGF9Io/EuWIpz3TMRhPVOLhoXivw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.0.1': + resolution: {integrity: sha512-jZVUo0kNd1IjxdCYwg4dwegDNsq7PoUx4LM814RmgY3gfJ63Y6GlpJXHOpd5FLv1igpeZox5LzRk2oz8MQoJwQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.0.1': + resolution: {integrity: sha512-E31wHiIf4LB0aKRohrS4U6XfFSACCL9ifUFfPQ16FhcBIL4wU5rcBidvWvT9TQFGPkpE69n5dyXUcqiMrnF/Ig==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.0.1': + resolution: {integrity: sha512-8/3ZKLMYqgAsBzTeczOKWtT4geF02g9S7cntY5gvqQZ4E0ImX724cHcZJi9k6fkE6aLbvwxxHxaShFvRxblwKQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.1': + resolution: {integrity: sha512-EYjbh225klQfWzy6LeIAfdjHCK+p71yLV/GjdPNW47Bfkkq05fTzIhHhCgshUvNp78EIA33iQU+ktWpW06NgHw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.0.1': + resolution: {integrity: sha512-PrX2SwIqWNP5cYeSyQfrhbk4ffOM338T6CrEwIAGvLPoUZiklt19yknlsBme6bReSw7TSAMy+8KFdLLi5fcWNQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-musl@4.0.1': + resolution: {integrity: sha512-iuoFGhKDojtfloi5uj6MIk4kxEOGcsAk/kPbZItF9Dp7TnzVhxo2U/718tXhxGrg6jSL3ST3cQHIjA6yw3OeXw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-gnu@4.0.1': + resolution: {integrity: sha512-pNUrGQYyE8RK+N9yvkPmHnlKDfFbni9A3lsi37u4RoA/6Yn+zWVoegvAQMZu3w+jqnpb2A/bYJ+LumcclUZ3yg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-musl@4.0.1': + resolution: {integrity: sha512-xSGWaDcT6SJ75su9zWXj8GYb2jM/przXwZGH96RTS7HGDIoI1tvgpls88YajG5Sx7hXaqAWCufjw5L/dlu+lzg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-win32-arm64-msvc@4.0.1': + resolution: {integrity: sha512-BUNL2isUZ2yWnbplPddggJpZxsqGHPZ1RJAYpu63W4znUnKCzI4m/jiy0WpyYqqOKL9jDM5q0QdsQ9mc3aw5YQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.0.1': + resolution: {integrity: sha512-ZtcVu+XXOddGsPlvO5nh2fnbKmwly2C07ZB1lcYCf/b8qIWF04QY9o6vy6/+6ioLRfbp3E7H/ipFio38DZX4oQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.0.1': + resolution: {integrity: sha512-3z1SpWoDeaA6K6jd92CRrGyDghOcRILEgyWVHRhaUm/tcpiazwJpU9BSG0xB7GGGnl9capojaC+zme/nKsZd/w==} + engines: {node: '>= 10'} + + '@tailwindcss/postcss@4.0.1': + resolution: {integrity: sha512-fZHL49vCDauQymdm2U1jehuUeX8msYVDKB/2v+jWhTQleH3QE8J1dJ2dnL5tqRvB0udjBP4kwUC1ZIVIdv66YA==} + + '@tailwindcss/typography@0.5.16': + resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' '@tanstack/react-virtual@3.10.8': resolution: {integrity: sha512-VbzbVGSsZlQktyLrP5nxE+vE1ZR+U0NFAWPbJLoG2+DKPwd2D7dVICTVIIaYlJqX1ZCEnYDbaOpmMwbsyhBoIA==} @@ -2381,75 +2742,77 @@ packages: '@tanstack/virtual-core@3.10.8': resolution: {integrity: sha512-PBu00mtt95jbKFi6Llk9aik8bnR3tR/oQP1o3TSi+iG//+Q2RTIzCEgKkHG8BB86kxMNW6O8wku+Lmi+QFR6jA==} - '@tauri-apps/api@1.6.0': - resolution: {integrity: sha512-rqI++FWClU5I2UBp4HXFvl+sBWkdigBkxnpJDQUWttNyG7IZP4FwQGhTNL5EOw0vI8i6eSAJ5frLqO7n7jbJdg==} - engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} + '@tauri-apps/api@2.2.0': + resolution: {integrity: sha512-R8epOeZl1eJEl603aUMIGb4RXlhPjpgxbGVEaqY+0G5JG9vzV/clNlzTeqc+NLYXVqXcn8mb4c5b9pJIUDEyAg==} - '@tauri-apps/cli-darwin-arm64@1.6.3': - resolution: {integrity: sha512-fQN6IYSL8bG4NvkdKE4sAGF4dF/QqqQq4hOAU+t8ksOzHJr0hUlJYfncFeJYutr/MMkdF7hYKadSb0j5EE9r0A==} + '@tauri-apps/cli-darwin-arm64@2.2.7': + resolution: {integrity: sha512-54kcpxZ3X1Rq+pPTzk3iIcjEVY4yv493uRx/80rLoAA95vAC0c//31Whz75UVddDjJfZvXlXZ3uSZ+bnCOnt0A==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tauri-apps/cli-darwin-x64@1.6.3': - resolution: {integrity: sha512-1yTXZzLajKAYINJOJhZfmMhCzweHSgKQ3bEgJSn6t+1vFkOgY8Yx4oFgWcybrrWI5J1ZLZAl47+LPOY81dLcyA==} + '@tauri-apps/cli-darwin-x64@2.2.7': + resolution: {integrity: sha512-Vgu2XtBWemLnarB+6LqQeLanDlRj7CeFN//H8bVVdjbNzxcSxsvbLYMBP8+3boa7eBnjDrqMImRySSgL6IrwTw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tauri-apps/cli-linux-arm-gnueabihf@1.6.3': - resolution: {integrity: sha512-CjTEr9r9xgjcvos09AQw8QMRPuH152B1jvlZt4PfAsyJNPFigzuwed5/SF7XAd8bFikA7zArP4UT12RdBxrx7w==} + '@tauri-apps/cli-linux-arm-gnueabihf@2.2.7': + resolution: {integrity: sha512-+Clha2iQAiK9zoY/KKW0KLHkR0k36O78YLx5Sl98tWkwI3OBZFg5H5WT1plH/4sbZIS2aLFN6dw58/JlY9Bu/g==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tauri-apps/cli-linux-arm64-gnu@1.6.3': - resolution: {integrity: sha512-G9EUUS4M8M/Jz1UKZqvJmQQCKOzgTb8/0jZKvfBuGfh5AjFBu8LHvlFpwkKVm1l4951Xg4ulUp6P9Q7WRJ9XSA==} + '@tauri-apps/cli-linux-arm64-gnu@2.2.7': + resolution: {integrity: sha512-Z/Lp4SQe6BUEOays9BQAEum2pvZF4w9igyXijP+WbkOejZx4cDvarFJ5qXrqSLmBh7vxrdZcLwoLk9U//+yQrg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-arm64-musl@1.6.3': - resolution: {integrity: sha512-MuBTHJyNpZRbPVG8IZBN8+Zs7aKqwD22tkWVBcL1yOGL4zNNTJlkfL+zs5qxRnHlUsn6YAlbW/5HKocfpxVwBw==} + '@tauri-apps/cli-linux-arm64-musl@2.2.7': + resolution: {integrity: sha512-+8HZ+txff/Y3YjAh80XcLXcX8kpGXVdr1P8AfjLHxHdS6QD4Md+acSxGTTNbplmHuBaSHJvuTvZf9tU1eDCTDg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-x64-gnu@1.6.3': - resolution: {integrity: sha512-Uvi7M+NK3tAjCZEY1WGel+dFlzJmqcvu3KND+nqa22762NFmOuBIZ4KJR/IQHfpEYqKFNUhJfCGnpUDfiC3Oxg==} + '@tauri-apps/cli-linux-x64-gnu@2.2.7': + resolution: {integrity: sha512-ahlSnuCnUntblp9dG7/w5ZWZOdzRFi3zl0oScgt7GF4KNAOEa7duADsxPA4/FT2hLRa0SvpqtD4IYFvCxoVv3Q==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-linux-x64-musl@1.6.3': - resolution: {integrity: sha512-rc6B342C0ra8VezB/OJom9j/N+9oW4VRA4qMxS2f4bHY2B/z3J9NPOe6GOILeg4v/CV62ojkLsC3/K/CeF3fqQ==} + '@tauri-apps/cli-linux-x64-musl@2.2.7': + resolution: {integrity: sha512-+qKAWnJRSX+pjjRbKAQgTdFY8ecdcu8UdJ69i7wn3ZcRn2nMMzOO2LOMOTQV42B7/Q64D1pIpmZj9yblTMvadA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-win32-arm64-msvc@1.6.3': - resolution: {integrity: sha512-cSH2qOBYuYC4UVIFtrc1YsGfc5tfYrotoHrpTvRjUGu0VywvmyNk82+ZsHEnWZ2UHmu3l3lXIGRqSWveLln0xg==} + '@tauri-apps/cli-win32-arm64-msvc@2.2.7': + resolution: {integrity: sha512-aa86nRnrwT04u9D9fhf5JVssuAZlUCCc8AjqQjqODQjMd4BMA2+d4K9qBMpEG/1kVh95vZaNsLogjEaqSTTw4A==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tauri-apps/cli-win32-ia32-msvc@1.6.3': - resolution: {integrity: sha512-T8V6SJQqE4PSWmYBl0ChQVmS6AR2hXFHURH2DwAhgSGSQ6uBXgwlYFcfIeQpBQA727K2Eq8X2hGfvmoySyHMRw==} + '@tauri-apps/cli-win32-ia32-msvc@2.2.7': + resolution: {integrity: sha512-EiJ5/25tLSQOSGvv+t6o3ZBfOTKB5S3vb+hHQuKbfmKdRF0XQu2YPdIi1CQw1DU97ZAE0Dq4frvnyYEKWgMzVQ==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@tauri-apps/cli-win32-x64-msvc@1.6.3': - resolution: {integrity: sha512-HUkWZ+lYHI/Gjkh2QjHD/OBDpqLVmvjZGpLK9losur1Eg974Jip6k+vsoTUxQBCBDfj30eDBct9E1FvXOspWeg==} + '@tauri-apps/cli-win32-x64-msvc@2.2.7': + resolution: {integrity: sha512-ZB8Kw90j8Ld+9tCWyD2fWCYfIrzbQohJ4DJSidNwbnehlZzP7wAz6Z3xjsvUdKtQ3ibtfoeTqVInzCCEpI+pWg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tauri-apps/cli@1.6.3': - resolution: {integrity: sha512-q46umd6QLRKDd4Gg6WyZBGa2fWvk0pbeUA5vFomm4uOs1/17LIciHv2iQ4UD+2Yv5H7AO8YiE1t50V0POiEGEw==} + '@tauri-apps/cli@2.2.7': + resolution: {integrity: sha512-ZnsS2B4BplwXP37celanNANiIy8TCYhvg5RT09n72uR/o+navFZtGpFSqljV8fy1Y4ixIPds8FrGSXJCN2BerA==} engines: {node: '>= 10'} hasBin: true + '@tauri-apps/plugin-clipboard-manager@2.2.1': + resolution: {integrity: sha512-+7YDULB9Bk4fejxYrVNBQcxs3KsjPA3A3r53wwn7K8zOQvxjNBSYBRx/FW1OUBPGzm8BrreJFBkPVzQZSF2R4A==} + '@tonaljs/abc-notation@4.8.0': resolution: {integrity: sha512-JggT/DW4rMxu+q1WkeACrg52is3acp9zaW4LJmCheFi3CmLa63sy7/6mgKnlScTOvcpAyTcSytu0VbQHRXyBDA==} @@ -2548,9 +2911,6 @@ packages: '@types/estree@0.0.39': resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} - '@types/estree@1.0.0': - resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} - '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -2593,17 +2953,11 @@ packages: '@types/ms@0.7.31': resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} - '@types/nlcst@1.0.4': - resolution: {integrity: sha512-ABoYdNQ/kBSsLvZAekMhIPMQ3YUZvavStpKYs7BjLLuKVmIMA0LUgZ7b54zzuWJRbHF80v1cNf4r90Vd6eMQDg==} - '@types/nlcst@2.0.3': resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} - '@types/node@20.16.12': - resolution: {integrity: sha512-LfPFB0zOeCeCNQV3i+67rcoVvoN5n0NVuR2vLG0O5ySQMgchuZlC4lgz546ZOJyDtj5KIgOxy+lacOimfqZAIA==} - - '@types/node@22.7.6': - resolution: {integrity: sha512-/d7Rnj0/ExXDMcioS78/kf1lMzYk4BZV8MZGTBKzTGZ6/406ukkbYlIsZmMPhcR5KlkunDHQLrtAVmSq7r+mSw==} + '@types/node@22.12.0': + resolution: {integrity: sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==} '@types/normalize-package-data@2.4.1': resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -2611,21 +2965,17 @@ packages: '@types/phoenix@1.6.5': resolution: {integrity: sha512-xegpDuR+z0UqG9fwHqNoy3rI7JDlvaPh2TY47Fl80oq6g+hXT+c/LEuE43X48clZ6lOfANl5WrPur9fYO1RJ/w==} - '@types/prop-types@15.7.5': - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + '@types/react-dom@19.0.3': + resolution: {integrity: sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==} + peerDependencies: + '@types/react': ^19.0.0 - '@types/react-dom@18.3.1': - resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==} - - '@types/react@18.3.11': - resolution: {integrity: sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==} + '@types/react@19.0.8': + resolution: {integrity: sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==} '@types/resolve@1.17.1': resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} - '@types/trusted-types@2.0.2': - resolution: {integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==} - '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -2647,187 +2997,90 @@ packages: '@types/ws@8.5.12': resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} - '@typescript-eslint/types@5.62.0': - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} + engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/typescript-estree@5.62.0': - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/visitor-keys@5.62.0': - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@uiw/codemirror-theme-abcdef@4.23.5': - resolution: {integrity: sha512-1CY4Hyods01NBHChCM+gr1eMM5QyIoN7tOSnNprlTisKduynfxjuxbQW8n0G0phr7TBJGZ4OxopnOzrnjJy3+A==} - - '@uiw/codemirror-theme-abyss@4.23.5': - resolution: {integrity: sha512-JhAt1VcQaS2uRZpHwaCvpUh18tDzm2BoI62MZQu+Ti5ws4EpF4yKVWXWVn9j9ADvodjjit1nDlvzhz7Rrhtodw==} - - '@uiw/codemirror-theme-androidstudio@4.23.5': - resolution: {integrity: sha512-A/RaDXeDzHImy1gXB2ELz9l87fnFfl4Ou6NEiWqT7QfgUzkclu5kAxbud0nOXg5gyQ6ipfkFt3CG66PT4r91UQ==} - - '@uiw/codemirror-theme-andromeda@4.23.5': - resolution: {integrity: sha512-yQTdoklCkcKQesrIkCem9c2FBdYWNEjcm/49g68v5/JB6EhwsomYHg+IhGpYbZOT+Ea0P16hxW5QeUHiVBMEEQ==} - - '@uiw/codemirror-theme-atomone@4.23.5': - resolution: {integrity: sha512-gv3zKpq2Wfx+YV4LwBxzNmOjtLZgIRC0jk6gyTTIMtuv0B72S7GtyAep/mVyi5LOYEqDappWLtC3FVuTcwcvoQ==} - - '@uiw/codemirror-theme-aura@4.23.5': - resolution: {integrity: sha512-vzKcATUVlPzytFy0nIOHfZo2dQ/anP2HC7s/s05nmEC3DOZJdSKSsPc9URfMFVqKMT2m2mqz8jkaLUSIUeZvqg==} - - '@uiw/codemirror-theme-basic@4.23.5': - resolution: {integrity: sha512-pxjuB6cohggQqWW2o59Y94r1Bg+Pwqb82T5yciquS/505JmAEkn0X6cn0g5pfIn4j7brpSiDGBp6AnuKxwIwuA==} - - '@uiw/codemirror-theme-bbedit@4.23.5': - resolution: {integrity: sha512-oZzrUaXbDGbKgugpXitgoZq9lCZ2AeFdRE6KwYy+RDWLvroF8b5Fk54m+IXEc1V8j1cIosdZwYKtU62g4Fw+LQ==} - - '@uiw/codemirror-theme-bespin@4.23.5': - resolution: {integrity: sha512-O665jlQSVKQtz7cyBp0qTwGrrfs77vhMt5T5vCihTI5CJ4RSleWpKHhNDxMR79qkudNVr+H4eRDaWTt019PWPw==} - - '@uiw/codemirror-theme-console@4.23.5': - resolution: {integrity: sha512-D0EBrK1ylHH1efIg+EvCidCYtzdLgxKqH0g9CT+0y2Lf637G0m+JCwRQCAYY4d9BFTomhhJxzZTY5gO7eqTlkg==} - - '@uiw/codemirror-theme-copilot@4.23.5': - resolution: {integrity: sha512-uauCGZ6HCBf1mcLGrB4lDsLiJ2kGgYIjceFlR6kF8xDJ601wQl+zRaMhc1Kzr9BhDUUoMnWce2uNNu7DU+B09A==} - - '@uiw/codemirror-theme-darcula@4.23.5': - resolution: {integrity: sha512-du5Tw/40oK+yXlZbF082BHX5JSzEwQ7r+UI9GV5R0APRDB3c0jsGL5JwgSAU2jZXFCN1VcBkf517+syKjBL9Pg==} - - '@uiw/codemirror-theme-dracula@4.23.5': - resolution: {integrity: sha512-VdIVj9jZn0d97jr3/Az5PNjbqTDfw+eshuqYzXR5VltQO7XAV+BuyXEMpHhlTHXyq2FZuFdX1wIBnRbSR91bnw==} - - '@uiw/codemirror-theme-duotone@4.23.5': - resolution: {integrity: sha512-2XfE0zwWtH+j47xtY6iEuxFyyc1be1LK6+NnHjT20hfoz5HGMwk0Eg4dv1rQ/EC5bBN9eflrnZZUO7q1rbegiw==} - - '@uiw/codemirror-theme-eclipse@4.23.5': - resolution: {integrity: sha512-WsfcdDjQQCpd42KUJcp/2r5UjTvXetR5V6Zp12ZJliL1gpjtHdZ6ZJxSwQhga6pfEBn2ITz5u5lZgBv/zXgtqg==} - - '@uiw/codemirror-theme-github@4.23.5': - resolution: {integrity: sha512-gR5rgWUaRoLRavzA6w+/dKE6KMDQdHF82xpnLYQvOwE/1agNS0asowdZUodMXbvOoNLIgcopLm3hXdzzVouuaw==} - - '@uiw/codemirror-theme-gruvbox-dark@4.23.5': - resolution: {integrity: sha512-TgGDImqOoujKt7VIDy9bBlxUaOSMaBlw2bK5sgqCLhc5gJPIec8kHpVmoIISi+cI+Ft/uvACX3Lcqhn4ahmAzg==} - - '@uiw/codemirror-theme-kimbie@4.23.5': - resolution: {integrity: sha512-vC3kr0Lr5AhN2J4KhMYHObRovl3aTBrDMC44JSLzgwU+EBceNPEMrFKfY0pnDgyCXof95R8k4+cfH0WjfQFvtA==} - - '@uiw/codemirror-theme-material@4.23.5': - resolution: {integrity: sha512-SEr55l443ws/2tuVy1AzuqjimzSWX1Vgn+8cvZMTLNVUgCFIX9Pq2dpGaQ+D9S/HhGdOXcd9GEZn9Rq2qBu8Jg==} - - '@uiw/codemirror-theme-monokai-dimmed@4.23.5': - resolution: {integrity: sha512-QctXv2jRtysuEAhKOhuQGlCX1sH+CdSuZ7VbZ63boNQb+0mAwpwPTeUncegxB8V6ffJhISaae9ewBtIPBXyN7A==} - - '@uiw/codemirror-theme-monokai@4.23.5': - resolution: {integrity: sha512-3I7pmMKkyq7fXgAYmHXH2Q+Ts/1ir2UyT+TcW+7H3czINHEGBnSZN4KSAfh1BDQiYJwKKjq7mm/aHln4oH5+Zw==} - - '@uiw/codemirror-theme-noctis-lilac@4.23.5': - resolution: {integrity: sha512-ZBG3FN4jXxUczv4Tlqg+6sixIs2NQSyWmczT7k5JorMIeZGV0pSeH9/HKwdGlHq5PFNDdBbvsPEZeGnLDLHVzQ==} - - '@uiw/codemirror-theme-nord@4.23.5': - resolution: {integrity: sha512-wOoITSvuDxK1UNar/2O+p2CjTfijTALIEuuzE9JTQFoNrLFY5lmxajLcRlybHAqHX53FdALCSIpyPMcIO+MQqA==} - - '@uiw/codemirror-theme-okaidia@4.23.5': - resolution: {integrity: sha512-0O5f7xDlBU8QInNzZKmhjoia0eyEqWcPVF2EF+djGue4L8dyr9nyWpkUZFHiXdMA/CWr5Mdv8uepv7Onj4lIew==} - - '@uiw/codemirror-theme-quietlight@4.23.5': - resolution: {integrity: sha512-S9xk7fCdLX2rEOEdU3u+hH8zX5k3Qedz7AD38FPh4fQc/+rdG3YbjyptnIewQgdTzwydXrL0Ohw5I5shIdu22w==} - - '@uiw/codemirror-theme-red@4.23.5': - resolution: {integrity: sha512-6jMoAoFSaCbeKno6Yrd5R36N9Q+9WzMqyFXksOYF213pa4HnWoDT7BtzMN5zNTrqVKHTsNp06YzLWorMgfANKw==} - - '@uiw/codemirror-theme-solarized@4.23.5': - resolution: {integrity: sha512-YT/WmwF7Pnq3VpCk+JTnBi47NWhpNaplJokT5+9Cb3wqsnXqI6XEzeaCgDwGwaO0Nvw4DqEaOOQrNL9agmsJEw==} - - '@uiw/codemirror-theme-sublime@4.23.5': - resolution: {integrity: sha512-8bUYRexVuYf1ReCAxkF9rP6CFhpInIuF4MVllvaZEWDfQR7Oauu9VEcuu9swm9zuy7NYYw1LIIQhzYOKufmVww==} - - '@uiw/codemirror-theme-tokyo-night-day@4.23.5': - resolution: {integrity: sha512-DzOflLm6KlZ1yOkEZdiFzbwUl/tdf3HMJw1LU/vFNWIIm53jbXPfUl3IuNppkPpB3np20Wvw37kTs3ehgby2dw==} - - '@uiw/codemirror-theme-tokyo-night-storm@4.23.5': - resolution: {integrity: sha512-qV00W97jZoy+Lv+PFGbTH9NdEtliO9Ubo/aqWtqvRUJuFxlS/7qAnCRiVpeHqHdE/a3u9Hryni8PQXwuMFroGA==} - - '@uiw/codemirror-theme-tokyo-night@4.23.5': - resolution: {integrity: sha512-vevM3Z8ry5Ifo6IkuVm3oZzyOw1wSKI7lTjNAj7Rw7E93b+LB9JttTGKMmGV9b5kmet72MGilBP/Zs2pGdcKBw==} - - '@uiw/codemirror-theme-tomorrow-night-blue@4.23.5': - resolution: {integrity: sha512-USQtGxxvQNbSDAgk8h9mkhX8dKrUXCcr2lJuIIT0akIiZYEZ1I0m6zxhRpMuZwiNHiqiOwzeQltB92StkbkPCg==} - - '@uiw/codemirror-theme-vscode@4.23.5': - resolution: {integrity: sha512-tNMROZhVHPFAnx+e/SAVctU/aJyLXisI7jekmyVH3Gcl2wYIcAMgrDGfwY5xhHbDu18lP9w2kLIg3i9IzZsDeQ==} - - '@uiw/codemirror-theme-white@4.23.5': - resolution: {integrity: sha512-+mS5YAHjs9pr3nG8SpTqQTfVYGghWGFp6jGtjW8p/GWVUvj104pFyuYHH4Z+OV328qB5DWZLZ34Eaj5iMbfwlw==} - - '@uiw/codemirror-theme-xcode@4.23.5': - resolution: {integrity: sha512-8Ojpf+B+CjSpGM2hwDjR5e4Y5j8vkk18j8e7Drxa7vP+K4yB1RruTba8saobLX61HaNB/L8RcZ/BFTBcOEgS0Q==} - - '@uiw/codemirror-themes-all@4.23.5': - resolution: {integrity: sha512-SsGLiK6/222tct62VGneUhCeupeoXPSEAc2kPeb79V0QexqZU+xNiGulYjHr7OqtEAhFxBW3CxZC89CLPXbBdA==} - - '@uiw/codemirror-themes@4.23.5': - resolution: {integrity: sha512-yWUTpaVroxIxjKASQAmKaYy+ZYtF+YB6d8sVmSRK2TVD13M+EWvVT2jBGFLqR1UVg7G0W/McAy8xdeTg+a3slg==} - peerDependencies: - '@codemirror/language': '>=6.0.0' - '@codemirror/state': '>=6.0.0' - '@codemirror/view': '>=6.0.0' + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} + engines: {node: ^18.18.0 || >=20.0.0} '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vite-pwa/astro@0.2.0': - resolution: {integrity: sha512-1MBNbRo9I9fp9sUSoaQfI/xHVDRKRoUsWETDJMVoKoctZYfm4fZgb7EN76WJdejW/vup+3+uoFlDMCnca+vZzA==} + '@vite-pwa/astro@0.5.0': + resolution: {integrity: sha512-Yd3Pug/c1EUQJXWvzYh6eTtoqzmSKcdCqWCcNquZeaD13tLWpBb2FIPJ4HMULVY6+GfxMvrT+OBuMrbHQCvftw==} peerDependencies: - astro: ^1.6.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 - vite-plugin-pwa: '>=0.17.3 <1' + '@vite-pwa/assets-generator': ^0.2.6 + astro: ^1.6.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + vite-plugin-pwa: '>=0.21.1 <1' + peerDependenciesMeta: + '@vite-pwa/assets-generator': + optional: true - '@vitejs/plugin-react@4.3.2': - resolution: {integrity: sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==} + '@vitejs/plugin-react@4.3.4': + resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^4.2.0 || ^5.0.0 + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 - '@vitest/expect@2.1.3': - resolution: {integrity: sha512-SNBoPubeCJhZ48agjXruCI57DvxcsivVDdWz+SSsmjTT4QN/DfHk3zB/xKsJqMs26bLZ/pNRLnCf0j679i0uWQ==} + '@vitest/expect@3.0.4': + resolution: {integrity: sha512-Nm5kJmYw6P2BxhJPkO3eKKhGYKRsnqJqf+r0yOGRKpEP+bSCBDsjXgiu1/5QFrnPMEgzfC38ZEjvCFgaNBC0Eg==} - '@vitest/mocker@2.1.3': - resolution: {integrity: sha512-eSpdY/eJDuOvuTA3ASzCjdithHa+GIF1L4PqtEELl6Qa3XafdMLBpBlZCIUCX2J+Q6sNmjmxtosAG62fK4BlqQ==} + '@vitest/mocker@3.0.4': + resolution: {integrity: sha512-gEef35vKafJlfQbnyOXZ0Gcr9IBUsMTyTLXsEQwuyYAerpHqvXhzdBnDFuHLpFqth3F7b6BaFr4qV/Cs1ULx5A==} peerDependencies: - '@vitest/spy': 2.1.3 - msw: ^2.3.5 - vite: ^5.0.0 + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 peerDependenciesMeta: msw: optional: true vite: optional: true - '@vitest/pretty-format@2.1.3': - resolution: {integrity: sha512-XH1XdtoLZCpqV59KRbPrIhFCOO0hErxrQCMcvnQete3Vibb9UeIOX02uFPfVn3Z9ZXsq78etlfyhnkmIZSzIwQ==} + '@vitest/pretty-format@3.0.4': + resolution: {integrity: sha512-ts0fba+dEhK2aC9PFuZ9LTpULHpY/nd6jhAQ5IMU7Gaj7crPCTdCFfgvXxruRBLFS+MLraicCuFXxISEq8C93g==} - '@vitest/runner@2.1.3': - resolution: {integrity: sha512-JGzpWqmFJ4fq5ZKHtVO3Xuy1iF2rHGV4d/pdzgkYHm1+gOzNZtqjvyiaDGJytRyMU54qkxpNzCx+PErzJ1/JqQ==} + '@vitest/runner@3.0.4': + resolution: {integrity: sha512-dKHzTQ7n9sExAcWH/0sh1elVgwc7OJ2lMOBrAm73J7AH6Pf9T12Zh3lNE1TETZaqrWFXtLlx3NVrLRb5hCK+iw==} - '@vitest/snapshot@2.1.3': - resolution: {integrity: sha512-qWC2mWc7VAXmjAkEKxrScWHWFyCQx/cmiZtuGqMi+WwqQJ2iURsVY4ZfAK6dVo6K2smKRU6l3BPwqEBvhnpQGg==} + '@vitest/snapshot@3.0.4': + resolution: {integrity: sha512-+p5knMLwIk7lTQkM3NonZ9zBewzVp9EVkVpvNta0/PlFWpiqLaRcF4+33L1it3uRUCh0BGLOaXPPGEjNKfWb4w==} - '@vitest/spy@2.1.3': - resolution: {integrity: sha512-Nb2UzbcUswzeSP7JksMDaqsI43Sj5+Kry6ry6jQJT4b5gAK+NS9NED6mDb8FlMRCX8m5guaHCDZmqYMMWRy5nQ==} + '@vitest/spy@3.0.4': + resolution: {integrity: sha512-sXIMF0oauYyUy2hN49VFTYodzEAu744MmGcPR3ZBsPM20G+1/cSW/n1U+3Yu/zHxX2bIDe1oJASOkml+osTU6Q==} - '@vitest/ui@2.1.3': - resolution: {integrity: sha512-2XwTrHVJw3t9NYES26LQUYy51ZB8W4bRPgqUH2Eyda3kIuOlYw1ZdPNU22qcVlUVx4WKgECFQOSXuopsczuVjQ==} + '@vitest/ui@3.0.4': + resolution: {integrity: sha512-e+s2F9e9FUURkZ5aFIe1Fi3Y8M7UF6gEuShcaV/ur7y/Ldri+1tzWQ1TJq9Vas42NXnXvCAIrU39Z4U2RyET6g==} peerDependencies: - vitest: 2.1.3 + vitest: 3.0.4 - '@vitest/utils@2.1.3': - resolution: {integrity: sha512-xpiVfDSg1RrYT0tX6czgerkpcKFmFOF/gCr30+Mve5V2kewCy4Prn1/NDMSRwaSmT7PRaOF83wu+bEtsY1wrvA==} + '@vitest/utils@3.0.4': + resolution: {integrity: sha512-8BqC1ksYsHtbWH+DfpOAKrFw3jl3Uf9J7yeFh85Pz52IWuh1hBBtyfEbRNNZNjl8H8A5yMLH9/t+k7HIKzQcZQ==} + + '@vue/compiler-core@3.5.13': + resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + + '@vue/compiler-dom@3.5.13': + resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + + '@vue/compiler-sfc@3.5.13': + resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} + + '@vue/compiler-ssr@3.5.13': + resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + + '@vue/shared@3.5.13': + resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} '@yarnpkg/lockfile@1.1.0': resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} @@ -2853,8 +3106,8 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@8.13.0: - resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==} + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true @@ -2879,8 +3132,9 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - algoliasearch@4.22.0: - resolution: {integrity: sha512-gfceltjkwh7PxXwtkS8KVvdfK+TSNQAWUeNSxf4dA29qW5tf2EGwa8jkJujlT9jLm17cixMVoGNc+GJFO1Mxhg==} + algoliasearch@5.20.0: + resolution: {integrity: sha512-groO71Fvi5SWpxjI9Ia+chy0QBwT61mg6yxJV27f5YFf+Mw+STT75K6SHySpP8Co5LsCrtsbCH5dJZSRtkSKaQ==} + engines: {node: '>= 14.0.0'} ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} @@ -2889,10 +3143,6 @@ packages: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} - ansi-escape-sequences@4.1.0: - resolution: {integrity: sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==} - engines: {node: '>=8.0.0'} - ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -2951,30 +3201,6 @@ packages: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} - array-back@1.0.4: - resolution: {integrity: sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==} - engines: {node: '>=0.12.0'} - - array-back@2.0.0: - resolution: {integrity: sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==} - engines: {node: '>=4'} - - array-back@3.1.0: - resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} - engines: {node: '>=6'} - - array-back@4.0.2: - resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==} - engines: {node: '>=8'} - - array-back@5.0.0: - resolution: {integrity: sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==} - engines: {node: '>=10'} - - array-back@6.2.2: - resolution: {integrity: sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==} - engines: {node: '>=12.17'} - array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} @@ -3032,22 +3258,19 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} - ast-module-types@5.0.0: - resolution: {integrity: sha512-JvqziE0Wc0rXQfma0HZC/aY7URXHFuZV84fJRtP8u+lhp0JYCNd5wJzVXP45t0PH0Mej3ynlzvdyITYIu0G4LQ==} - engines: {node: '>=14'} + ast-module-types@6.0.0: + resolution: {integrity: sha512-LFRg7178Fw5R4FAEwZxVqiRI8IxSM+Ay2UBrHoCerXNme+kMMMfz7T3xDGV/c2fer87hcrtgJGsnSOfUrPK6ng==} + engines: {node: '>=18'} astring@1.9.0: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true - astro@4.16.6: - resolution: {integrity: sha512-LMMbjr+4aN26MOyJzTdjM+Y+srpAIkx7IX9IcdF3eHQLGr8PgkioZp+VQExRfioDIyA2HY6ottVg3QccTzJqYA==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + astro@5.2.1: + resolution: {integrity: sha512-OYR2kUo9EqX6OYZ1OmM14xP8mjFwgrk1FzIr+3K3tS0gCCKJsXtfboCUhX3lODZFIsmY/on7NPZd+2PURA0R2Q==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true - async@3.2.4: - resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} - async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} @@ -3141,10 +3364,6 @@ packages: brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -3188,10 +3407,6 @@ packages: resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==} engines: {node: ^16.14.0 || >=18.0.0} - cache-point@2.0.0: - resolution: {integrity: sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==} - engines: {node: '>=8'} - call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} @@ -3232,8 +3447,8 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@5.1.1: - resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} + chai@5.1.2: + resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} engines: {node: '>=12'} chalk@2.4.2: @@ -3271,8 +3486,8 @@ packages: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} - chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} chord-voicings@0.0.1: @@ -3293,6 +3508,10 @@ packages: resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} engines: {node: '>=8'} + ci-info@4.1.0: + resolution: {integrity: sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==} + engines: {node: '>=8'} + claviature@0.1.0: resolution: {integrity: sha512-Ai12axNwQ7x/F9QAj64RYKsgvi5Y33+X3GUSKAC/9s/adEws8TSSc0efeiqhKNGKBo6rT/c+CSCwSXzXxwxZzQ==} @@ -3308,18 +3527,10 @@ packages: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} - cli-cursor@5.0.0: - resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} - engines: {node: '>=18'} - cli-spinners@2.6.1: resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} engines: {node: '>=6'} - cli-spinners@2.9.1: - resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} - engines: {node: '>=6'} - cli-spinners@2.9.2: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} @@ -3328,9 +3539,6 @@ packages: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} - client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - cliui@6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} @@ -3374,10 +3582,6 @@ packages: collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - collect-all@1.0.4: - resolution: {integrity: sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==} - engines: {node: '>=0.10.0'} - color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -3416,21 +3620,9 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - command-line-args@5.2.1: - resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} - engines: {node: '>=4.0.0'} - - command-line-tool@0.8.0: - resolution: {integrity: sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==} - engines: {node: '>=4.0.0'} - - command-line-usage@4.1.0: - resolution: {integrity: sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==} - engines: {node: '>=4.0.0'} - - commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -3442,10 +3634,6 @@ packages: common-ancestor-path@1.0.1: resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - common-sequence@2.0.2: - resolution: {integrity: sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==} - engines: {node: '>=8'} - common-tags@1.8.2: resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} engines: {node: '>=4.0.0'} @@ -3460,8 +3648,9 @@ packages: resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} engines: {'0': node >= 6.0} - config-master@3.1.0: - resolution: {integrity: sha512-n7LBL1zBzYdTpF1mx5DNcZnZn05CWIdsdvtPL4MosvqbBUK3Rq6VWEtGUuF3Y0s9/CIhMejezqlSkP6TnCJ/9g==} + consola@3.4.0: + resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} + engines: {node: ^14.18.0 || >=16.10.0} console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} @@ -3500,6 +3689,9 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cookie-es@1.2.2: + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} + cookie@0.7.2: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} @@ -3510,8 +3702,8 @@ packages: core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cosmiconfig@8.3.6: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' @@ -3524,9 +3716,6 @@ packages: engines: {node: '>= 4'} hasBin: true - crelt@1.0.5: - resolution: {integrity: sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==} - crelt@1.0.6: resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} @@ -3534,6 +3723,13 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + crossws@0.3.3: + resolution: {integrity: sha512-/71DJT3xJlqSnBr83uGJesmVHSzZEvgxHt/fIKxBAAngqMHmnBWQNxCphVxxJ2XL3xleu5+hJD6IQ3TglBedcw==} + crypto-random-string@2.0.0: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} @@ -3546,17 +3742,17 @@ packages: csstype@3.1.1: resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} - csv-generate@4.4.1: - resolution: {integrity: sha512-O/einO0v4zPmXaOV+sYqGa02VkST4GP5GLpWBNHEouIU7pF3kpGf3D0kCCvX82ydIY4EKkOK+R8b1BYsRXravg==} + csv-generate@4.4.2: + resolution: {integrity: sha512-W6nVsf+rz0J3yo9FOjeer7tmzBJKaTTxf7K0uw6GZgRocZYPVpuSWWa5/aoWWrjQZj4/oNIKTYapOM7hiNjVMA==} - csv-parse@5.5.6: - resolution: {integrity: sha512-uNpm30m/AGSkLxxy7d9yRXpJQFrZzVWLFBkS+6ngPcZkw/5k3L/jjFuj7tVnEpRn+QgmiXr21nDlhCiUK4ij2A==} + csv-parse@5.6.0: + resolution: {integrity: sha512-l3nz3euub2QMg5ouu5U09Ew9Wf6/wQ8I++ch1loQ0ljmzhmfZYrH9fflS22i/PQEvsPvxCwxgz5q7UB8K1JO4Q==} - csv-stringify@6.5.1: - resolution: {integrity: sha512-+9lpZfwpLntpTIEpFbwQyWuW/hmI/eHuJZD1XzeZpfZTqkf1fyvBbBLXTJJMsBuuS11uTShMqPwzx4A6ffXgRQ==} + csv-stringify@6.5.2: + resolution: {integrity: sha512-RFPahj0sXcmUyjrObAK+DOWtMvMIFV328n4qZJhgX3x2RqkQgOTU2mCUmiFR0CzM6AzChlRSUErjiJeEt8BaQA==} - csv@6.3.10: - resolution: {integrity: sha512-5NYZG4AN2ZUthmNxIudgBEdMPUnbQHu9V4QTzBPqQzUP3KQsFiJo+8HQ0+oVxj1PomIT1/f67VI1QH/hsrZLKA==} + csv@6.3.11: + resolution: {integrity: sha512-a8bhT76Q546jOElHcTrkzWY7Py925mfLO/jqquseH61ThOebYwOjLbWHBqdRB4K1VpU36sTyIei6Jwj7QdEZ7g==} engines: {node: '>= 0.1.90'} dargs@7.0.0: @@ -3579,8 +3775,8 @@ packages: resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} engines: {node: '>= 0.4'} - date-fns@3.6.0: - resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} + date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} dateformat@3.0.3: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} @@ -3614,6 +3810,15 @@ packages: supports-color: optional: true + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} engines: {node: '>=0.10.0'} @@ -3671,13 +3876,16 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - dependency-tree@10.0.9: - resolution: {integrity: sha512-dwc59FRIsht+HfnTVM0BCjJaEWxdq2YAvEDy4/Hn6CwS3CBWMtFnL3aZGAkQn3XCYxk/YcTDE4jX2Q7bFTwCjA==} - engines: {node: '>=14'} + dependency-tree@11.0.1: + resolution: {integrity: sha512-eCt7HSKIC9NxgIykG2DRq3Aewn9UhVS14MB3rEn6l/AsEI1FBg6ZGSlCU0SZ6Tjm2kkhj6/8c2pViinuyKELhg==} + engines: {node: '>=18'} hasBin: true deprecation@2.3.1: @@ -3687,10 +3895,18 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + detect-indent@5.0.0: resolution: {integrity: sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==} engines: {node: '>=4'} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + detect-libc@2.0.1: resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} engines: {node: '>=8'} @@ -3699,38 +3915,48 @@ packages: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} - detective-amd@5.0.2: - resolution: {integrity: sha512-XFd/VEQ76HSpym80zxM68ieB77unNuoMwopU2TFT/ErUk5n4KvUTwW4beafAVUugrjV48l4BmmR0rh2MglBaiA==} - engines: {node: '>=14'} + detective-amd@6.0.0: + resolution: {integrity: sha512-NTqfYfwNsW7AQltKSEaWR66hGkTeD52Kz3eRQ+nfkA9ZFZt3iifRCWh+yZ/m6t3H42JFwVFTrml/D64R2PAIOA==} + engines: {node: '>=18'} hasBin: true - detective-cjs@5.0.1: - resolution: {integrity: sha512-6nTvAZtpomyz/2pmEmGX1sXNjaqgMplhQkskq2MLrar0ZAIkHMrDhLXkRiK2mvbu9wSWr0V5/IfiTrZqAQMrmQ==} - engines: {node: '>=14'} + detective-cjs@6.0.0: + resolution: {integrity: sha512-R55jTS6Kkmy6ukdrbzY4x+I7KkXiuDPpFzUViFV/tm2PBGtTCjkh9ZmTuJc1SaziMHJOe636dtiZLEuzBL9drg==} + engines: {node: '>=18'} - detective-es6@4.0.1: - resolution: {integrity: sha512-k3Z5tB4LQ8UVHkuMrFOlvb3GgFWdJ9NqAa2YLUU/jTaWJIm+JJnEh4PsMc+6dfT223Y8ACKOaC0qcj7diIhBKw==} - engines: {node: '>=14'} + detective-es6@5.0.0: + resolution: {integrity: sha512-NGTnzjvgeMW1khUSEXCzPDoraLenWbUjCFjwxReH+Ir+P6LGjYtaBbAvITWn2H0VSC+eM7/9LFOTAkrta6hNYg==} + engines: {node: '>=18'} - detective-postcss@6.1.3: - resolution: {integrity: sha512-7BRVvE5pPEvk2ukUWNQ+H2XOq43xENWbH0LcdCE14mwgTBEAMoAx+Fc1rdp76SmyZ4Sp48HlV7VedUnP6GA1Tw==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + detective-postcss@7.0.0: + resolution: {integrity: sha512-pSXA6dyqmBPBuERpoOKKTUUjQCZwZPLRbd1VdsTbt6W+m/+6ROl4BbE87yQBUtLoK7yX8pvXHdKyM/xNIW9F7A==} + engines: {node: ^14.0.0 || >=16.0.0} + peerDependencies: + postcss: ^8.4.38 - detective-sass@5.0.3: - resolution: {integrity: sha512-YsYT2WuA8YIafp2RVF5CEfGhhyIVdPzlwQgxSjK+TUm3JoHP+Tcorbk3SfG0cNZ7D7+cYWa0ZBcvOaR0O8+LlA==} - engines: {node: '>=14'} + detective-sass@6.0.0: + resolution: {integrity: sha512-h5GCfFMkPm4ZUUfGHVPKNHKT8jV7cSmgK+s4dgQH4/dIUNh9/huR1fjEQrblOQNDalSU7k7g+tiW9LJ+nVEUhg==} + engines: {node: '>=18'} - detective-scss@4.0.3: - resolution: {integrity: sha512-VYI6cHcD0fLokwqqPFFtDQhhSnlFWvU614J42eY6G0s8c+MBhi9QAWycLwIOGxlmD8I/XvGSOUV1kIDhJ70ZPg==} - engines: {node: '>=14'} + detective-scss@5.0.0: + resolution: {integrity: sha512-Y64HyMqntdsCh1qAH7ci95dk0nnpA29g319w/5d/oYcHolcGUVJbIhOirOFjfN1KnMAXAFm5FIkZ4l2EKFGgxg==} + engines: {node: '>=18'} - detective-stylus@4.0.0: - resolution: {integrity: sha512-TfPotjhszKLgFBzBhTOxNHDsutIxx9GTWjrL5Wh7Qx/ydxKhwUrlSFeLIn+ZaHPF+h0siVBkAQSuy6CADyTxgQ==} - engines: {node: '>=14'} + detective-stylus@5.0.0: + resolution: {integrity: sha512-KMHOsPY6aq3196WteVhkY5FF+6Nnc/r7q741E+Gq+Ax9mhE2iwj8Hlw8pl+749hPDRDBHZ2WlgOjP+twIG61vQ==} + engines: {node: '>=18'} - detective-typescript@11.2.0: - resolution: {integrity: sha512-ARFxjzizOhPqs1fYC/2NMC3N4jrQ6HvVflnXBTRqNEqJuXwyKLRr9CrJwkRcV/SnZt1sNXgsF6FPm0x57Tq0rw==} + detective-typescript@13.0.0: + resolution: {integrity: sha512-tcMYfiFWoUejSbvSblw90NDt76/4mNftYCX0SMnVRYzSXv8Fvo06hi4JOPdNvVNxRtCAKg3MJ3cBJh+ygEMH+A==} engines: {node: ^14.14.0 || >=16.0.0} + peerDependencies: + typescript: ^5.4.4 + + detective-vue2@2.1.1: + resolution: {integrity: sha512-/TQ+cs4qmSyhgESjyBXxoUuh36XjS06+UhCItWcGGOpXmU3KBRGRknG+tDzv2dASn1+UJUm2rhpDFa9TWT0dFw==} + engines: {node: '>=18'} + peerDependencies: + typescript: ^5.4.4 deterministic-object-hash@2.0.2: resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} @@ -3763,18 +3989,10 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dmd@6.2.3: - resolution: {integrity: sha512-SIEkjrG7cZ9GWZQYk/mH+mWtcRPly/3ibVuXO/tP/MFoWz6KiRK77tSMq6YQBPl7RljPtXPQ/JhxbNuCdi1bNw==} - engines: {node: '>=12'} - doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -3802,14 +4020,12 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - ejs@3.1.8: - resolution: {integrity: sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==} - engines: {node: '>=0.10.0'} - hasBin: true - electron-to-chromium@1.5.41: resolution: {integrity: sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==} + emoji-regex-xs@1.0.0: + resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} + emoji-regex@10.4.0: resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} @@ -3829,6 +4045,10 @@ packages: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} + enhanced-resolve@5.18.0: + resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} + engines: {node: '>=10.13.0'} + enquirer@2.3.6: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} @@ -3868,8 +4088,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@1.5.4: - resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + es-module-lexer@1.6.0: + resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} @@ -3904,6 +4124,11 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + engines: {node: '>=18'} + hasBin: true + escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -3979,12 +4204,8 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-scope@8.1.0: - resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-utils@2.1.0: @@ -4013,14 +4234,12 @@ packages: resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.13.0: - resolution: {integrity: sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==} + eslint@9.19.0: + resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -4033,9 +4252,9 @@ packages: resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -4107,13 +4326,13 @@ packages: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} + expect-type@1.1.0: + resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} + engines: {node: '>=12.0.0'} + exponential-backoff@3.1.1: resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} - extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -4128,15 +4347,19 @@ packages: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-unique-numbers@8.0.13: - resolution: {integrity: sha512-7OnTFAVPefgw2eBJ1xj2PGGR9FwYzSUso9decayHgCDX4sJkHLdcsYTytTg+tYv+wKF3U8gJuSBz2jJpQV4u/g==} - engines: {node: '>=16.1.0'} + fast-unique-numbers@9.0.15: + resolution: {integrity: sha512-vHj0sfq6yB37b/RAAsAJ2DzIp0LR5NlUit7nYFp2YfTUcKL9m/Yk0f0kvYPV4oiuFYXdtO5scs3LQX7qiPAVYQ==} + engines: {node: '>=18.2.0'} fast-uri@3.0.3: resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} @@ -4170,47 +4393,22 @@ packages: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} - file-set@4.0.2: - resolution: {integrity: sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==} - engines: {node: '>=10'} - filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - filing-cabinet@4.2.0: - resolution: {integrity: sha512-YZ21ryzRcyqxpyKggdYSoXx//d3sCJzM3lsYoaeg/FyXdADGJrUl+BW1KIglaVLJN5BBcMtWylkygY8zBp2MrQ==} - engines: {node: '>=14'} + filing-cabinet@5.0.2: + resolution: {integrity: sha512-RZlFj8lzyu6jqtFBeXNqUjjNG6xm+gwXue3T70pRxw1W40kJwlgq0PSWAmh0nAnn5DHuBIecLXk9+1VKS9ICXA==} + engines: {node: '>=18'} hasBin: true - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - find-replace@3.0.0: - resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} - engines: {node: '>=4.0.0'} - - find-replace@5.0.2: - resolution: {integrity: sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==} - engines: {node: '>=14'} - peerDependencies: - '@75lb/nature': latest - peerDependenciesMeta: - '@75lb/nature': - optional: true - find-up-simple@1.0.0: resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} engines: {node: '>=18'} @@ -4230,10 +4428,6 @@ packages: find-yarn-workspace-root2@1.2.16: resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} @@ -4245,6 +4439,9 @@ packages: flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + flatted@3.3.2: + resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + flattie@1.1.1: resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} engines: {node: '>=8'} @@ -4276,6 +4473,10 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + fraction.js@5.2.1: + resolution: {integrity: sha512-Ah6t/7YCYjrPUFUFsOsRLMXAdnYM+aQwmojD2Ayb/Ezr82SwES0vuyQ8qZ3QO8n9j7W14VJuVZZet8U3bhSdQQ==} + engines: {node: '>= 12'} + from2@2.3.0: resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} @@ -4298,10 +4499,6 @@ packages: resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - fs-then-native@2.0.0: - resolution: {integrity: sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==} - engines: {node: '>=4.0.0'} - fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -4324,9 +4521,9 @@ packages: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} - get-amd-module-type@5.0.1: - resolution: {integrity: sha512-jb65zDeHyDjFR1loOVk0HQGM5WNwoGB8aLWy3LKCieMKol0/ProHkhO2X1JxojuN10vbz1qNn09MJ7tNp7qMzw==} - engines: {node: '>=14'} + get-amd-module-type@6.0.0: + resolution: {integrity: sha512-hFM7oivtlgJ3d6XWD6G47l8Wyh/C6vFw5G24Kk1Tbq85yh5gcM8Fne5/lFhiuxB+RT6+SI7I1ThB9lG4FBh3jw==} + engines: {node: '>=18'} get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} @@ -4420,10 +4617,6 @@ packages: resolution: {integrity: sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==} deprecated: Glob versions prior to v9 are no longer supported - glob@7.1.6: - resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} - deprecated: Glob versions prior to v9 are no longer supported - glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -4436,14 +4629,14 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} + globals@15.14.0: + resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} + engines: {node: '>=18'} + globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} @@ -4496,12 +4689,8 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} + h3@1.14.0: + resolution: {integrity: sha512-ao22eiONdgelqcnknw0iD645qW0s9NnrJHr5OBz4WOMdBdycfSas1EQf1wXRsm+PcB2Yoj43pjBPwqIpJQTeWg==} handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} @@ -4584,8 +4773,8 @@ packages: hast-util-to-estree@3.1.0: resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} - hast-util-to-html@9.0.3: - resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} + hast-util-to-html@9.0.4: + resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==} hast-util-to-jsx-runtime@2.3.2: resolution: {integrity: sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==} @@ -4616,8 +4805,8 @@ packages: resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} engines: {node: ^16.14.0 || >=18.0.0} - hs2js@0.0.8: - resolution: {integrity: sha512-wFSenhY2MB1ACuwaJq0QyDk6yZiYwha/yOgAa2scsLvqEJTdHY2KXhsy8uZw+G2oVxQGyXs0OPf5gXN7HkP9mA==} + hs2js@0.1.0: + resolution: {integrity: sha512-THlUIMX8tZf6gtbz5RUZ8xQUyKJEItsx7bxEBcouFIEWjeo90376WMocj3JEz6qTv5nM+tjo3vNvLf89XruMvg==} html-escaper@3.0.3: resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} @@ -4733,6 +4922,9 @@ packages: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} @@ -4763,10 +4955,6 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} - is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -4803,10 +4991,6 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true - is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -4835,10 +5019,6 @@ packages: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} - is-interactive@2.0.0: - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} - engines: {node: '>=12'} - is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} @@ -4869,10 +5049,6 @@ packages: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - is-plain-obj@1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} @@ -4897,9 +5073,6 @@ packages: resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} engines: {node: '>=0.10.0'} - is-relative-path@1.0.2: - resolution: {integrity: sha512-i1h+y50g+0hRbBD+dbnInl3JlJ702aar58snAeX+MxBAPvzXGej7sYoPMhlnykabt0ZzCJNBEyzMlekuQZN7fA==} - is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} @@ -4942,14 +5115,6 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} - is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - - is-unicode-supported@2.1.0: - resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} - engines: {node: '>=18'} - is-url-superb@4.0.0: resolution: {integrity: sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==} engines: {node: '>=10'} @@ -4991,11 +5156,6 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jake@10.8.5: - resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==} - engines: {node: '>=10'} - hasBin: true - jake@10.9.2: resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} engines: {node: '>=10'} @@ -5017,8 +5177,12 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} - jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true js-tokens@4.0.0: @@ -5038,24 +5202,11 @@ packages: jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jsdoc-api@8.1.1: - resolution: {integrity: sha512-yas9E4h8NHp1CTEZiU/DPNAvLoUcip+Hl8Xi1RBYzHqSrgsF+mImAZNtwymrXvgbrgl4bNGBU9syulM0JzFeHQ==} - engines: {node: '>=12.17'} - jsdoc-json@2.0.2: resolution: {integrity: sha512-n0vVkWvBMHFNUsW6HUhMrVCk+nJZwW3kpd9/JiCgdYvjjZV3NcP5fV3+lTgOkOA/bTKJxbCKT8Au92FHII3pnA==} - jsdoc-parse@6.2.4: - resolution: {integrity: sha512-MQA+lCe3ioZd0uGbyB3nDCDZcKgKC7m/Ivt0LgKZdUoOlMJxUWJQ3WI6GeyHp9ouznKaCjlp7CU9sw5k46yZTw==} - engines: {node: '>=12'} - - jsdoc-to-markdown@8.0.3: - resolution: {integrity: sha512-JGYYd5xygnQt1DIxH+HUI+X/ynL8qWihzIF0n15NSCNtM6MplzawURRcaLI2WkiS2hIjRIgsphCOfM7FkaWiNg==} - engines: {node: '>=12.17'} - hasBin: true - - jsdoc@4.0.3: - resolution: {integrity: sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==} + jsdoc@4.0.4: + resolution: {integrity: sha512-zeFezwyXeG4syyYHbvh1A967IAqq/67yXtXvuL5wnqCkFZe8I0vKfm+EO+YEvLguo6w9CDUbrAXVtJSHh2E8rw==} engines: {node: '>=12.0.0'} hasBin: true @@ -5150,8 +5301,8 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - lerna@8.1.8: - resolution: {integrity: sha512-Rmo5ShMx73xM2CUcRixjmpZIXB7ZFlWEul1YvJyx/rH4onAwDHtUGD7Rx4NZYL8QSRiQHroglM2Oyq+WqA4BYg==} + lerna@8.1.9: + resolution: {integrity: sha512-ZRFlRUBB2obm+GkbTR7EbgTMuAdni6iwtTQTMy7LIrQ4UInG44LyfRepljtgUxh4HA0ltzsvWfPkd5J1DKGCeQ==} engines: {node: '>=18.0.0'} hasBin: true @@ -5171,14 +5322,78 @@ packages: resolution: {integrity: sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==} engines: {node: ^16.14.0 || >=18.0.0} - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + lightningcss-darwin-arm64@1.29.1: + resolution: {integrity: sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.29.1: + resolution: {integrity: sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.29.1: + resolution: {integrity: sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.29.1: + resolution: {integrity: sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.29.1: + resolution: {integrity: sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.29.1: + resolution: {integrity: sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.29.1: + resolution: {integrity: sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.29.1: + resolution: {integrity: sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.29.1: + resolution: {integrity: sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.29.1: + resolution: {integrity: sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.29.1: + resolution: {integrity: sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==} + engines: {node: '>= 12.0.0'} lilconfig@3.0.0: resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} engines: {node: '>=14'} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -5216,9 +5431,6 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - lodash.castarray@4.4.0: resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} @@ -5234,12 +5446,6 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.omit@4.5.0: - resolution: {integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==} - - lodash.padend@4.6.1: - resolution: {integrity: sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==} - lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} @@ -5250,17 +5456,9 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} - log-symbols@6.0.0: - resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} - engines: {node: '>=18'} - longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - loupe@3.1.2: resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} @@ -5274,16 +5472,15 @@ packages: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} - lru-cache@9.1.1: - resolution: {integrity: sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==} - engines: {node: 14 || >=16.14} - magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} magic-string@0.30.12: resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} @@ -5324,11 +5521,6 @@ packages: markdown-table@3.0.3: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} - marked@4.2.12: - resolution: {integrity: sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==} - engines: {node: '>= 12'} - hasBin: true - marked@4.3.0: resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} engines: {node: '>= 12'} @@ -5511,10 +5703,6 @@ packages: micromark@4.0.0: resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -5527,14 +5715,15 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - mimic-function@5.0.1: - resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} - engines: {node: '>=18'} - mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} @@ -5618,9 +5807,6 @@ packages: mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - mkdirp2@1.0.5: - resolution: {integrity: sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==} - mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} @@ -5630,14 +5816,14 @@ packages: resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} engines: {node: '>=0.10.0'} - module-definition@5.0.1: - resolution: {integrity: sha512-kvw3B4G19IXk+BOXnYq/D/VeO9qfHaapMeuS7w7sNUqmGaA6hywdFHMi+VWeR9wUScXM7XjoryTffCZ5B0/8IA==} - engines: {node: '>=14'} + module-definition@6.0.0: + resolution: {integrity: sha512-sEGP5nKEXU7fGSZUML/coJbrO+yQtxcppDAYWRE9ovWsTbFoUHB2qDUx564WUzDaBHXsD46JBbIK5WVTwCyu3w==} + engines: {node: '>=18'} hasBin: true - module-lookup-amd@8.0.5: - resolution: {integrity: sha512-vc3rYLjDo5Frjox8NZpiyLXsNWJ5BWshztc/5KSOMzpg9k5cHH652YsJ7VKKmtM4SvaxuE9RkrYGhiSjH3Ehow==} - engines: {node: '>=14'} + module-lookup-amd@9.0.2: + resolution: {integrity: sha512-p7PzSVEWiW9fHRX9oM+V4aV5B2nCVddVNv4DZ/JB6t9GsXY4E+ZVhPpnwUX7bbJyGeeVZqhS8q/JZ/H77IqPFA==} + engines: {node: '>=18'} hasBin: true mrmime@2.0.0: @@ -5672,14 +5858,19 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.0.7: - resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==} + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@5.0.9: + resolution: {integrity: sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==} engines: {node: ^18 || >=20} hasBin: true - nanostores@0.9.5: - resolution: {integrity: sha512-Z+p+g8E7yzaWwOe5gEUB2Ox0rCEeXWYIZWmYvw/ajNYX8DlXdMvMDj8DWfM/subqPAcsf8l8Td4iAwO1DeIIRQ==} - engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} + nanostores@0.11.3: + resolution: {integrity: sha512-TUes3xKIX33re4QzdxwZ6tdbodjmn3tWXCEc1uokiEmo14sI1EaGYNs2k3bU2pyyGNmBqFGAVl6jAGWd06AVIg==} + engines: {node: ^18.0.0 || >=20.0.0} napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} @@ -5698,9 +5889,6 @@ packages: resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} engines: {node: '>= 10'} - nlcst-to-string@3.1.1: - resolution: {integrity: sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==} - nlcst-to-string@4.0.0: resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} @@ -5708,18 +5896,21 @@ packages: resolution: {integrity: sha512-zNy02qivjjRosswoYmPi8hIKJRr8MpQyeKT6qlcq/OnOgA3Rhoae+IYOqsM9V5+JnHWmxKnWOT2GxvtqdtOCXA==} engines: {node: '>=10'} - node-addon-api@8.0.0: - resolution: {integrity: sha512-ipO7rsHEBqa9STO5C5T10fj732ml+5kLN1cAG8/jdHd56ldQeGj3Q7+scUS+VHK/qy1zLEwC4wMK5+yM0btPvw==} - engines: {node: ^18 || ^20 || >= 21} - node-addon-api@8.2.1: resolution: {integrity: sha512-vmEOvxwiH8tlOcv4SyE8RH34rI5/nWVaigUeAUPawC6f0+HoDthwI0vkMu4tbtsZrXq6QXFfrkhjofzKEs5tpA==} engines: {node: ^18 || ^20 || >= 21} + node-addon-api@8.3.0: + resolution: {integrity: sha512-8VOpLHFrOQlAH+qA0ZzuGRlALRA6/LVh8QJldbrC4DY0hXoMP0l4Acq8TzFC018HztWiRqyCEj2aTWY2UvnJUg==} + engines: {node: ^18 || ^20 || >= 21} + node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} + node-fetch-native@1.6.6: + resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} + node-fetch@2.6.7: resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} engines: {node: 4.x || >=6.0.0} @@ -5761,9 +5952,9 @@ packages: node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - node-source-walk@6.0.2: - resolution: {integrity: sha512-jn9vOIK/nfqoFCcpK89/VCVaLg1IHE6UVfDOzvqmANaJ/rWCTEdH8RZ1V278nv2jr36BJdyQXIAavBLXpzdlag==} - engines: {node: '>=14'} + node-source-walk@7.0.1: + resolution: {integrity: sha512-3VW/8JpPqPvnJvseXowjZcirPisssnBuDikk6JIZ8jQzF7KJQX52iPFX4RYYxLycYH7IbMRSPUOga/esVjy5Yg==} + engines: {node: '>=18'} nopt@7.2.1: resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} @@ -5837,9 +6028,6 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-get@2.1.1: - resolution: {integrity: sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==} - object-hash@3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} @@ -5855,10 +6043,6 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - object-to-spawn-args@2.0.1: - resolution: {integrity: sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==} - engines: {node: '>=8.0.0'} - object.assign@4.1.4: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} @@ -5879,6 +6063,12 @@ packages: resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} + ofetch@1.4.1: + resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} + + ohash@1.1.4: + resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -5886,12 +6076,8 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - onetime@7.0.0: - resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} - engines: {node: '>=18'} - - oniguruma-to-js@0.4.3: - resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} + oniguruma-to-es@2.3.0: + resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} open@8.4.0: resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} @@ -5905,10 +6091,6 @@ packages: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} - ora@8.1.0: - resolution: {integrity: sha512-GQEkNkH/GHOhPFXcqZs3IDahXEQcQxsSjEkK4KvEEST4t7eNzoMjxTzef+EZ+JluDEV+Raoi3WQ2CflnRdSVnQ==} - engines: {node: '>=18'} - os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -5936,8 +6118,8 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-limit@6.1.0: - resolution: {integrity: sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==} + p-limit@6.2.0: + resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} engines: {node: '>=18'} p-locate@2.0.0: @@ -6004,6 +6186,9 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} hasBin: true + paho-mqtt@1.1.0: + resolution: {integrity: sha512-KPbL9KAB0ASvhSDbOrZBaccXS+/s7/LIofbPyERww8hM5Ko71GUJQ6Nmg0BWqj8phAIT8zdf/Sd/RftHU9i2HA==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -6023,9 +6208,6 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse-latin@5.0.1: - resolution: {integrity: sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==} - parse-latin@7.0.0: resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} @@ -6064,10 +6246,6 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-scurry@1.7.0: - resolution: {integrity: sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==} - engines: {node: '>=16 || 14 >=14.17'} - path-type@3.0.0: resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} engines: {node: '>=4'} @@ -6079,21 +6257,21 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + pathe@2.0.2: + resolution: {integrity: sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==} + pathval@2.0.0: resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} engines: {node: '>= 14.16'} - peggy@3.0.2: - resolution: {integrity: sha512-n7chtCbEoGYRwZZ0i/O3t1cPr6o+d9Xx4Zwy2LYfzv0vjchMBU0tO+qYYyvZloBPcgRgzYvALzGWHe609JjEpg==} - engines: {node: '>=14'} + peggy@4.2.0: + resolution: {integrity: sha512-ZjzyJYY8NqW8JOZr2PbS/J0UH/hnfGALxSDsBUVQg5Y/I+ZaPuGeBJ7EclUX2RvWjhlsi4pnuL1C/K/3u+cDeg==} + engines: {node: '>=18'} hasBin: true performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -6170,8 +6348,8 @@ packages: ts-node: optional: true - postcss-nested@6.0.1: - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 @@ -6180,10 +6358,6 @@ packages: resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} engines: {node: '>=4'} - postcss-selector-parser@6.0.11: - resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} - engines: {node: '>=4'} - postcss-selector-parser@6.1.2: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} @@ -6197,22 +6371,22 @@ packages: peerDependencies: postcss: ^8.2.9 - postcss@8.4.32: - resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.4.47: resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.1: + resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==} + engines: {node: ^10 || ^12 || >=14} + prebuild-install@7.1.1: resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} engines: {node: '>=10'} hasBin: true - precinct@11.0.5: - resolution: {integrity: sha512-oHSWLC8cL/0znFhvln26D14KfCQFFn4KOLSw6hmLhd+LQ2SKt9Ljm89but76Pc7flM9Ty1TnXyrA2u16MfRV3w==} - engines: {node: ^14.14.0 || >=16.0.0} + precinct@12.1.2: + resolution: {integrity: sha512-x2qVN3oSOp3D05ihCd8XdkIPuEQsyte7PSxzLqiRgktu79S5Dr1I75/S+zAup8/0cwjoiJTQztE9h0/sWp9bJQ==} + engines: {node: '>=18'} hasBin: true preferred-pm@4.0.0: @@ -6223,8 +6397,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.3.3: - resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + prettier@3.4.2: + resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} engines: {node: '>=14'} hasBin: true @@ -6315,6 +6489,9 @@ packages: quote-unquote@1.0.0: resolution: {integrity: sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==} + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + raf-loop@1.1.3: resolution: {integrity: sha512-fcIuuIdjbD6OB0IFw4d+cjqdrzDorKkIpwOiSnfU4Tht5PTFiJutR8hnCOGslYqZDyIzwpF5WnwbnTTuo9uUUA==} @@ -6331,10 +6508,10 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + react-dom@19.0.0: + resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} peerDependencies: - react: ^18.3.1 + react: ^19.0.0 react-hook-inview@4.5.1: resolution: {integrity: sha512-ceb2tjSNnBIQ19TphSlxrjy85dfWEoqCb1kTquOM0li+Myzn0cBDi6WzItFf9vyQbZAXJR7LaoESLBXvMu6clA==} @@ -6355,8 +6532,8 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + react@19.0.0: + resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} engines: {node: '>=0.10.0'} read-cache@1.0.0: @@ -6420,22 +6597,6 @@ packages: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} - reduce-flatten@1.0.1: - resolution: {integrity: sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==} - engines: {node: '>=0.10.0'} - - reduce-flatten@3.0.1: - resolution: {integrity: sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==} - engines: {node: '>=8'} - - reduce-unique@2.0.1: - resolution: {integrity: sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==} - engines: {node: '>=6'} - - reduce-without@1.0.1: - resolution: {integrity: sha512-zQv5y/cf85sxvdrKPlfcRzlDn/OqKFThNimYmsS3flmkioKvkUGn2Qg9cJVoQiEvdxFGLE0MQER/9fZ9sUqdxg==} - engines: {node: '>=0.10.0'} - regenerate-unicode-properties@10.2.0: resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} engines: {node: '>=4'} @@ -6443,17 +6604,20 @@ packages: regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regex@4.3.3: - resolution: {integrity: sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg==} + regex-recursion@5.1.1: + resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@5.1.1: + resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} regexp.prototype.flags@1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} @@ -6517,10 +6681,6 @@ packages: remark-rehype@11.1.1: resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} - remark-smartypants@2.1.0: - resolution: {integrity: sha512-qoF6Vz3BjU2tP6OfZqHOvCU0ACmu/6jhGaINSQRI9mM7wCxNQTKB3JUAN4SVoN2ybElEDTxBIABRep7e569iJw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - remark-smartypants@3.0.2: resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} engines: {node: '>=16.0.0'} @@ -6565,9 +6725,9 @@ packages: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} - resolve-dependency-path@3.0.2: - resolution: {integrity: sha512-Tz7zfjhLfsvR39ADOSk9us4421J/1ztVBo4rWUkF38hgHK5m0OCZ3NxFVpqHRkjctnwVa15igEUHFJp8MCS7vA==} - engines: {node: '>=14'} + resolve-dependency-path@4.0.0: + resolution: {integrity: sha512-hlY1SybBGm5aYN3PC4rp15MzsJLM1w+MEA/4KU3UBPfz4S0lL3FL6mgv7JgaA8a+ZTeEQAiF1a1BuN2nkqiIlg==} + engines: {node: '>=18'} resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} @@ -6589,31 +6749,15 @@ packages: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} - restore-cursor@5.1.0: - resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} - engines: {node: '>=18'} - - retext-latin@3.1.0: - resolution: {integrity: sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==} - retext-latin@4.0.0: resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} - retext-smartypants@5.2.0: - resolution: {integrity: sha512-Do8oM+SsjrbzT2UNIKgheP0hgUQTDDQYyZaIY3kfq0pdFzoPk+ZClYJ+OERNXveog4xf1pZL4PfRxNoVL7a/jw==} - retext-smartypants@6.2.0: resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} - retext-stringify@3.1.0: - resolution: {integrity: sha512-767TLOaoXFXyOnjx/EggXlb37ZD2u4P1n0GJqVdpipqACsQP+20W+BNpMYrlJkq7hxffnFk+jc6mAK9qrbuB8w==} - retext-stringify@4.0.0: resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} - retext@8.1.0: - resolution: {integrity: sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==} - retext@9.0.0: resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} @@ -6644,16 +6788,6 @@ packages: peerDependencies: rollup: ^2.0.0 - rollup-plugin-visualizer@5.12.0: - resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - rollup: 2.x || 3.x || 4.x - peerDependenciesMeta: - rollup: - optional: true - rollup@2.79.2: resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} engines: {node: '>=10.0.0'} @@ -6698,21 +6832,17 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass-lookup@5.0.1: - resolution: {integrity: sha512-t0X5PaizPc2H4+rCwszAqHZRtr4bugo4pgiCvrBFvIX0XFxnr29g77LJcpyj9A0DcKf7gXMLcgvRjsonYI6x4g==} - engines: {node: '>=14'} + sass-lookup@6.1.0: + resolution: {integrity: sha512-Zx+lVyoWqXZxHuYWlTA17Z5sczJ6braNT2C7rmClw+c4E7r/n911Zwss3h1uHI9reR5AgHZyNHF7c2+VIp5AUA==} + engines: {node: '>=18'} hasBin: true - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + scheduler@0.25.0: + resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} search-insights@2.13.0: resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} - section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} - semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true @@ -6726,11 +6856,6 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} @@ -6777,8 +6902,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.22.0: - resolution: {integrity: sha512-/t5LlhNs+UOKQCYBtl5ZsH/Vclz73GIqT2yQsCBygr8L/ppTdmpL4w3kPLoZJbMKVWtoG77Ue1feOjZfDxvMkw==} + shiki@1.29.2: + resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} @@ -6810,9 +6935,9 @@ packages: simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} + sirv@3.0.0: + resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==} + engines: {node: '>=18'} sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -6825,6 +6950,10 @@ packages: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + smol-toml@1.3.1: + resolution: {integrity: sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==} + engines: {node: '>= 18'} + socks-proxy-agent@8.0.4: resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==} engines: {node: '>= 14'} @@ -6833,15 +6962,6 @@ packages: resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - sort-array@5.0.0: - resolution: {integrity: sha512-Sg9MzajSGprcSrMIxsXyNT0e0JB47RJRfJspC+7co4Z5BdNsNl8FmWI+lXEpyKq+vkMG6pHgAhqyCO+bkDTfFQ==} - engines: {node: '>=12.17'} - peerDependencies: - '@75lb/nature': ^0.1.1 - peerDependenciesMeta: - '@75lb/nature': - optional: true - sort-keys@2.0.0: resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} engines: {node: '>=4'} @@ -6849,6 +6969,9 @@ packages: soundfont2@0.4.0: resolution: {integrity: sha512-537WiurDBRbDLVhJMxXLE06D6yWxJCidfPClnibZ0f8dKMDpv+0fIfwCQ8pELE0JqKX05SOJosNJgKzQobaAEA==} + soundfont2@0.5.0: + resolution: {integrity: sha512-dcmNVtHT/Y8BOOrtmjt7hn6Bk6bB1g+O2bWB9fa6emW7kfwiEiEL4VvGQfwVt8g0m58LyoqVyuQ4ZFukMLwGHQ==} + source-map-generator@0.8.0: resolution: {integrity: sha512-psgxdGMwl5MZM9S3FWee4EgsEaIjahYV5AzGnwUvPhWeITz/j6rKpysQHlQ4USdxvINlb8lKfWGIXwfkrgtqkA==} engines: {node: '>= 10'} @@ -6917,33 +7040,20 @@ packages: standardized-audio-context@25.3.37: resolution: {integrity: sha512-lr0+RH/IJXYMts95oYKIJ+orTmstOZN3GXWVGmlkbMj8OLahREkRh7DhNGLYgBGDkBkhhc4ev5pYGSFN3gltHw==} - std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - - stdin-discarder@0.2.2: - resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} - engines: {node: '>=18'} + std-env@3.8.0: + resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} stdopt@2.2.0: resolution: {integrity: sha512-D/p41NgXOkcj1SeGhfXOwv9z1K6EV3sjAUY5aeepVbgEHv7DpKWLTjhjScyzMWAQCAgUQys1mjH0eArm4cjRGw==} - stream-connect@1.0.2: - resolution: {integrity: sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==} - engines: {node: '>=0.10.0'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - stream-meter@1.0.4: resolution: {integrity: sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ==} stream-parser@0.3.1: resolution: {integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==} - stream-transform@3.3.2: - resolution: {integrity: sha512-v64PUnPy9Qw94NGuaEMo+9RHQe4jTBYf+NkTtqkCgeuiNo8NlL0LtLR7fkKWNVFtp3RhIm5Dlxkgm5uz7TDimQ==} - - stream-via@1.0.4: - resolution: {integrity: sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==} - engines: {node: '>=0.10.0'} + stream-transform@3.3.3: + resolution: {integrity: sha512-dALXrXe+uq4aO5oStdHKlfCM/b3NBdouigvxVPxCdrMRAU6oHh3KNss20VbTPQNQmjAHzZGKGe66vgwegFEIog==} string-width@2.1.1: resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} @@ -7011,10 +7121,6 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} - strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -7051,9 +7157,6 @@ packages: engines: {node: '>=4'} hasBin: true - style-mod@4.0.0: - resolution: {integrity: sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==} - style-mod@4.1.0: resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==} @@ -7063,14 +7166,14 @@ packages: style-to-object@1.0.8: resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} - stylus-lookup@5.0.1: - resolution: {integrity: sha512-tLtJEd5AGvnVy4f9UHQMw4bkJJtaAcmo54N+ovQBjDY3DuWyK9Eltxzr5+KG0q4ew6v2EHyuWWNnHeiw/Eo7rQ==} - engines: {node: '>=14'} + stylus-lookup@6.1.0: + resolution: {integrity: sha512-5QSwgxAzXPMN+yugy61C60PhoANdItfdjSEZR8siFwz7yL9jTmV0UBKDCfn3K8GkGB4g0Y9py7vTCX8rFu4/pQ==} + engines: {node: '>=18'} hasBin: true - sucrase@3.32.0: - resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==} - engines: {node: '>=8'} + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} hasBin: true supports-color@5.5.0: @@ -7085,15 +7188,17 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - table-layout@0.4.5: - resolution: {integrity: sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==} - engines: {node: '>=4.0.0'} + tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - tailwindcss@3.4.14: - resolution: {integrity: sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==} + tailwindcss@3.4.17: + resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} engines: {node: '>=14.0.0'} hasBin: true + tailwindcss@4.0.1: + resolution: {integrity: sha512-UK5Biiit/e+r3i0O223bisoS5+y7ZT1PM8Ojn0MxRHzXN1VPZ2KY6Lo6fhu1dOfCfyUAlK7Lt6wSxowRabATBw==} + tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -7117,9 +7222,6 @@ packages: resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} engines: {node: '>=8'} - temp-path@1.0.0: - resolution: {integrity: sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==} - tempy@0.6.0: resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} engines: {node: '>=10'} @@ -7129,14 +7231,6 @@ packages: engines: {node: '>=10'} hasBin: true - test-value@2.1.0: - resolution: {integrity: sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==} - engines: {node: '>=0.10.0'} - - test-value@3.0.0: - resolution: {integrity: sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==} - engines: {node: '>=4.0.0'} - text-encoding-shim@1.0.5: resolution: {integrity: sha512-H7yYW+jRn4yhu60ygZ2f/eMhXPITRt4QSUTKzLm+eCaDsdX8avmgWpmtmHAzesjBVUTAypz9odu5RKUjX5HNYA==} @@ -7144,9 +7238,6 @@ packages: resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} engines: {node: '>=0.10'} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -7163,19 +7254,19 @@ packages: tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - tinyexec@0.3.1: - resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyglobby@0.2.9: - resolution: {integrity: sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==} + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} engines: {node: '>=12.0.0'} - tinypool@1.0.1: - resolution: {integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==} + tinypool@1.0.2: + resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} engines: {node: ^18.0.0 || >=20.0.0} - tinyrainbow@1.2.0: - resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} tinyspy@3.0.2: @@ -7208,13 +7299,12 @@ packages: tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - tree-sitter-haskell@0.21.0: - resolution: {integrity: sha512-b2RLegPHuYPh7nJ3YKWgkWnFYxmYlQDE8TDJuNH+iuNuBcCMYyaA9JlJlMHfCvf7DmJNPtqqbO9Kh9NXEmbatQ==} + tree-sitter-haskell@0.23.1: + resolution: {integrity: sha512-qG4CYhejveu9DLMLEGBz/n9/TTeGSFLC6wniwOgG6m8/v7Dng8qR0ob0EVG7+XH+9WiOxohpGA23EhceWuxY4w==} peerDependencies: - tree-sitter: ^0.21.0 - tree_sitter: '*' + tree-sitter: ^0.21.1 peerDependenciesMeta: - tree_sitter: + tree-sitter: optional: true tree-sitter@0.21.1: @@ -7234,6 +7324,12 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + ts-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -7254,17 +7350,11 @@ packages: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - tslib@2.8.0: resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} - tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} tuf-js@2.2.1: resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==} @@ -7285,10 +7375,6 @@ packages: resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} engines: {node: '>=10'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -7343,30 +7429,17 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} - engines: {node: '>=14.17'} - hasBin: true - typescript@5.6.3: resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true - typical@2.6.1: - resolution: {integrity: sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==} - - typical@4.0.0: - resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} - engines: {node: '>=8'} - - typical@7.2.0: - resolution: {integrity: sha512-W1+HdVRUl8fS3MZ9ogD51GOb46xMmhAZzR0WPw5jcgIZQJVvkddYzAl4YTU6g5w33Y1iRQLdIi2/1jhi2RNL0g==} - engines: {node: '>=12.17'} - uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + uglify-js@3.19.3: resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} @@ -7378,14 +7451,17 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + underscore@1.13.6: resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} - unherit@3.0.1: - resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} + unenv@1.10.0: + resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} @@ -7403,9 +7479,6 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} - unified@10.1.2: - resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} - unified@11.0.4: resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} @@ -7430,15 +7503,9 @@ packages: unist-util-is@3.0.0: resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==} - unist-util-is@5.2.1: - resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} - unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - unist-util-modify-children@3.1.1: - resolution: {integrity: sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==} - unist-util-modify-children@4.0.0: resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} @@ -7451,33 +7518,21 @@ packages: unist-util-remove-position@5.0.0: resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} - unist-util-stringify-position@3.0.3: - resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} - unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unist-util-visit-children@2.0.2: - resolution: {integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==} - unist-util-visit-children@3.0.0: resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} unist-util-visit-parents@2.1.2: resolution: {integrity: sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==} - unist-util-visit-parents@5.1.3: - resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} - unist-util-visit-parents@6.0.1: resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} unist-util-visit@1.4.1: resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==} - unist-util-visit@4.1.2: - resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} - unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} @@ -7495,6 +7550,65 @@ packages: unmute-ios-audio@3.3.0: resolution: {integrity: sha512-MmoCOrsS2gn3wLT2tT+hF56Q4V4kksIKn2LHrwAtX6umzQwQHDWSh1slMzH+0WuxTZ62s3w8/wsfIII1FQ7ACg==} + unstorage@1.14.4: + resolution: {integrity: sha512-1SYeamwuYeQJtJ/USE1x4l17LkmQBzg7deBJ+U9qOBoHo15d1cDxG4jM31zKRgF7pG0kirZy4wVMX6WL6Zoscg==} + peerDependencies: + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.5.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 + '@capacitor/preferences': ^6.0.3 + '@deno/kv': '>=0.8.4' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.0' + '@vercel/kv': ^1.0.1 + aws4fetch: ^1.0.20 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.1 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true + upath@1.2.0: resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} engines: {node: '>=4'} @@ -7529,15 +7643,9 @@ packages: vfile-location@5.0.2: resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} - vfile-message@3.1.4: - resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} - vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - vfile@5.3.7: - resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} - vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} @@ -7548,9 +7656,9 @@ packages: resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} engines: {node: '>= 0.10'} - vite-node@2.1.3: - resolution: {integrity: sha512-I1JadzO+xYX887S39Do+paRePCKoiDrWRRjp9kkG5he0t7RXNvPAJPCQSJqbGN4uCrFFeS3Kj3sLqY8NMYBEdA==} - engines: {node: ^18.0.0 || >=20.0.0} + vite-node@3.0.4: + resolution: {integrity: sha512-7JZKEzcYV2Nx3u6rlvN8qdo3QV7Fxyt6hx+CCKz9fbWxdX5IvUOmTWEAxMrWxaiSf7CKGLJQ5rFu8prb/jBjOA==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true vite-plugin-pwa@0.17.5: @@ -7592,28 +7700,71 @@ packages: terser: optional: true - vitefu@1.0.3: - resolution: {integrity: sha512-iKKfOMBHob2WxEJbqbJjHAkmYgvFDPhuqrO82om83S8RLk+17FtyMBfcyeH8GqD0ihShtkMW/zzJgiA51hCNCQ==} + vite@6.0.11: + resolution: {integrity: sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0-beta.0 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitefu@1.0.5: + resolution: {integrity: sha512-h4Vflt9gxODPFNGPwp4zAMZRpZR7eslzwH2c5hn5kNZ5rhnKyRJ50U+yGCdc2IRaBs8O4haIgLNGrV5CrpMsCA==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 peerDependenciesMeta: vite: optional: true - vitest@2.1.3: - resolution: {integrity: sha512-Zrxbg/WiIvUP2uEzelDNTXmEMJXuzJ1kCpbDvaKByFA9MNeO95V+7r/3ti0qzJzrxdyuUw5VduN7k+D3VmVOSA==} - engines: {node: ^18.0.0 || >=20.0.0} + vitest@3.0.4: + resolution: {integrity: sha512-6XG8oTKy2gnJIFTHP6LD7ExFeNLxiTkK3CfMvT7IfR8IN+BYICCf0lXUQmX7i7JoxUP8QmeP4mTnWXgflu4yjw==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.1.3 - '@vitest/ui': 2.1.3 + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.0.4 + '@vitest/ui': 3.0.4 happy-dom: '*' jsdom: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true + '@types/debug': + optional: true '@types/node': optional: true '@vitest/browser': @@ -7628,14 +7779,6 @@ packages: w3c-keyname@2.2.6: resolution: {integrity: sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==} - walk-back@2.0.1: - resolution: {integrity: sha512-Nb6GvBR8UWX1D+Le+xUq0+Q1kFmRBIWVrfLnQAOmcpEzA9oAxwJ9gIr36t9TWYfzvWRvuMtjHiVsJYEkXWaTAQ==} - engines: {node: '>=0.10.0'} - - walk-back@5.1.1: - resolution: {integrity: sha512-e/FRLDVdZQWFrAzU6Hdvpm7D7m2ina833gIKLptQykRK49mmCYHLHq7UqjPDbxbKLZkTkW1rFqbengdE3sLfdw==} - engines: {node: '>=12.17'} - walk-up-path@3.0.1: resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} @@ -7658,14 +7801,17 @@ packages: web-tree-sitter@0.20.8: resolution: {integrity: sha512-weOVgZ3aAARgdnb220GqYuh7+rZU0Ka9k9yfKtGAzEYMa6GgiCzW9JjQRJyCJakvibQW+dfjJdihjInKuuCAUQ==} + web-tree-sitter@0.24.7: + resolution: {integrity: sha512-CdC/TqVFbXqR+C51v38hv6wOPatKEUGxa39scAeFSm98wIhZxAYonhRQPSMmfZ2w7JDI0zQDdzdmgtNk06/krQ==} + webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - webmidi@3.1.11: - resolution: {integrity: sha512-qtXy0cJ7FbE2SBRyN/vcDFSJvCdcKiWreAdxCAtJSu1btWyzOwDfJyFuheylrwn5Uj4nIINVKCJOeqYSeG75Tg==} + webmidi@3.1.12: + resolution: {integrity: sha512-X1lACggXm2BxuAPdx5wleh8S2kygduHbtR2ti5sGhivLkX6Muv/sLAYmPuIaNLOUddyxr71+3tsq8m5dKXoT4A==} engines: {node: '>=8.5'} whatwg-url@5.0.0: @@ -7721,10 +7867,6 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - wordwrapjs@3.0.0: - resolution: {integrity: sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==} - engines: {node: '>=4.0.0'} - workbox-background-sync@7.0.0: resolution: {integrity: sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==} @@ -7741,15 +7883,14 @@ packages: workbox-core@7.0.0: resolution: {integrity: sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==} - workbox-core@7.1.0: - resolution: {integrity: sha512-5KB4KOY8rtL31nEF7BfvU7FMzKT4B5TkbYa2tzkS+Peqj0gayMT9SytSFtNzlrvMaWgv6y/yvP9C0IbpFjV30Q==} + workbox-core@7.3.0: + resolution: {integrity: sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==} workbox-expiration@7.0.0: resolution: {integrity: sha512-MLK+fogW+pC3IWU9SFE+FRStvDVutwJMR5if1g7oBJx3qwmO69BNoJQVaMXq41R0gg3MzxVfwOGKx3i9P6sOLQ==} workbox-google-analytics@7.0.0: resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} - deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained workbox-navigation-preload@7.0.0: resolution: {integrity: sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==} @@ -7778,17 +7919,17 @@ packages: workbox-window@7.0.0: resolution: {integrity: sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==} - workbox-window@7.1.0: - resolution: {integrity: sha512-ZHeROyqR+AS5UPzholQRDttLFqGMwP0Np8MKWAdyxsDETxq3qOAyXvqessc3GniohG6e0mAqSQyKOHmT8zPF7g==} + workbox-window@7.3.0: + resolution: {integrity: sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==} - worker-timers-broker@6.1.8: - resolution: {integrity: sha512-FUCJu9jlK3A8WqLTKXM9E6kAmI/dR1vAJ8dHYLMisLNB/n3GuaFIjJ7pn16ZcD1zCOf7P6H62lWIEBi+yz/zQQ==} + worker-timers-broker@7.1.9: + resolution: {integrity: sha512-YPql2CMZwAqPlCHoxXWsERLJChb8r9YvjRiAR0KSQ8iyNbckmSXdw4UCttrMbntwQLWxz5msO0oiUX2VA3WyTQ==} - worker-timers-worker@7.0.71: - resolution: {integrity: sha512-ks/5YKwZsto1c2vmljroppOKCivB/ma97g9y77MAAz2TBBjPPgpoOiS1qYQKIgvGTr2QYPT3XhJWIB6Rj2MVPQ==} + worker-timers-worker@8.0.10: + resolution: {integrity: sha512-wmdEMhn70li//pFNDT3pcjQ8kcuZOIuD6vrt9RBCwdTcnwvnsAmdSKSHiZSGwhNYwTJd+dvuhb81G05TGpTHcg==} - worker-timers@7.1.8: - resolution: {integrity: sha512-R54psRKYVLuzff7c1OTFcq/4Hue5Vlz4bFtNEIarpSiCYhpifHU3aIQI29S84o1j87ePCYqbmEJPqwBTf+3sfw==} + worker-timers@8.0.13: + resolution: {integrity: sha512-ggT5TBkuZC+EySptNS61Z5nuwa/8klCyKBv0+Wa0HPLjp13nluIrdUXX9zdYGwJKwNuVPp1wPMUnFuSKw5Hxsg==} wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} @@ -7843,8 +7984,8 @@ packages: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} - xxhash-wasm@1.0.2: - resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} + xxhash-wasm@1.1.0: + resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} @@ -7895,10 +8036,18 @@ packages: resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} - zod-to-json-schema@3.23.3: - resolution: {integrity: sha512-TYWChTxKQbRJp5ST22o/Irt9KC5nj7CdBKYB/AosCRdj/wxEMvv4NNaj9XVUHDOIp53ZxArGhnw5HMZziPFjog==} + yocto-spinner@0.1.2: + resolution: {integrity: sha512-VfmLIh/ZSZOJnVRQZc/dvpPP90lWL4G0bmxQMP0+U/2vKBA8GSpcBuWv17y7F+CZItRuO97HN1wdbb4p10uhOg==} + engines: {node: '>=18.19'} + + yoctocolors@2.1.1: + resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} + engines: {node: '>=18'} + + zod-to-json-schema@3.24.1: + resolution: {integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==} peerDependencies: - zod: ^3.23.3 + zod: ^3.24.1 zod-to-ts@1.2.0: resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} @@ -7906,8 +8055,8 @@ packages: typescript: ^4.9.4 || ^5.0.2 zod: ^3 - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zod@3.24.1: + resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -7916,95 +8065,110 @@ snapshots: '@aashutoshrathi/word-wrap@1.2.6': {} - '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)(search-insights@2.13.0)': + '@algolia/autocomplete-core@1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0)(search-insights@2.13.0)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)(search-insights@2.13.0) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0) + '@algolia/autocomplete-plugin-algolia-insights': 1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0)(search-insights@2.13.0) + '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)(search-insights@2.13.0)': + '@algolia/autocomplete-plugin-algolia-insights@1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0)(search-insights@2.13.0)': dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0) + '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0) search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)': + '@algolia/autocomplete-preset-algolia@1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0)': dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0) - '@algolia/client-search': 4.22.0 - algoliasearch: 4.22.0 + '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0) + '@algolia/client-search': 5.20.0 + algoliasearch: 5.20.0 - '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)': + '@algolia/autocomplete-shared@1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0)': dependencies: - '@algolia/client-search': 4.22.0 - algoliasearch: 4.22.0 + '@algolia/client-search': 5.20.0 + algoliasearch: 5.20.0 - '@algolia/cache-browser-local-storage@4.22.0': + '@algolia/client-abtesting@5.20.0': dependencies: - '@algolia/cache-common': 4.22.0 + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 - '@algolia/cache-common@4.22.0': {} - - '@algolia/cache-in-memory@4.22.0': + '@algolia/client-analytics@5.20.0': dependencies: - '@algolia/cache-common': 4.22.0 + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 - '@algolia/client-account@4.22.0': + '@algolia/client-common@5.20.0': {} + + '@algolia/client-insights@5.20.0': dependencies: - '@algolia/client-common': 4.22.0 - '@algolia/client-search': 4.22.0 - '@algolia/transporter': 4.22.0 + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 - '@algolia/client-analytics@4.22.0': + '@algolia/client-personalization@5.20.0': dependencies: - '@algolia/client-common': 4.22.0 - '@algolia/client-search': 4.22.0 - '@algolia/requester-common': 4.22.0 - '@algolia/transporter': 4.22.0 + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 - '@algolia/client-common@4.22.0': + '@algolia/client-query-suggestions@5.20.0': dependencies: - '@algolia/requester-common': 4.22.0 - '@algolia/transporter': 4.22.0 + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 - '@algolia/client-personalization@4.22.0': + '@algolia/client-search@5.20.0': dependencies: - '@algolia/client-common': 4.22.0 - '@algolia/requester-common': 4.22.0 - '@algolia/transporter': 4.22.0 + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 - '@algolia/client-search@4.22.0': + '@algolia/ingestion@1.20.0': dependencies: - '@algolia/client-common': 4.22.0 - '@algolia/requester-common': 4.22.0 - '@algolia/transporter': 4.22.0 + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 - '@algolia/logger-common@4.22.0': {} - - '@algolia/logger-console@4.22.0': + '@algolia/monitoring@1.20.0': dependencies: - '@algolia/logger-common': 4.22.0 + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 - '@algolia/requester-browser-xhr@4.22.0': + '@algolia/recommend@5.20.0': dependencies: - '@algolia/requester-common': 4.22.0 + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 - '@algolia/requester-common@4.22.0': {} - - '@algolia/requester-node-http@4.22.0': + '@algolia/requester-browser-xhr@5.20.0': dependencies: - '@algolia/requester-common': 4.22.0 + '@algolia/client-common': 5.20.0 - '@algolia/transporter@4.22.0': + '@algolia/requester-fetch@5.20.0': dependencies: - '@algolia/cache-common': 4.22.0 - '@algolia/logger-common': 4.22.0 - '@algolia/requester-common': 4.22.0 + '@algolia/client-common': 5.20.0 + + '@algolia/requester-node-http@5.20.0': + dependencies: + '@algolia/client-common': 5.20.0 '@alloc/quick-lru@5.2.0': {} @@ -8020,45 +8184,23 @@ snapshots: jsonpointer: 5.0.1 leven: 3.1.0 - '@astro-community/astro-embed-youtube@0.4.5(astro@4.16.6(@types/node@20.16.12)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3))': + '@astro-community/astro-embed-youtube@0.5.6(astro@5.2.1(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3))': dependencies: - astro: 4.16.6(@types/node@20.16.12)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3) + astro: 5.2.1(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3) lite-youtube-embed: 0.3.3 '@astrojs/compiler@2.10.3': {} - '@astrojs/internal-helpers@0.4.1': {} + '@astrojs/internal-helpers@0.5.0': {} - '@astrojs/markdown-remark@5.1.0': + '@astrojs/markdown-remark@6.1.0': dependencies: - '@astrojs/prism': 3.1.0 - github-slugger: 2.0.0 - hast-util-from-html: 2.0.3 - hast-util-to-text: 4.0.2 - import-meta-resolve: 4.1.0 - mdast-util-definitions: 6.0.0 - rehype-raw: 7.0.0 - rehype-stringify: 10.0.1 - remark-gfm: 4.0.0 - remark-parse: 11.0.0 - remark-rehype: 11.1.1 - remark-smartypants: 2.1.0 - shiki: 1.22.0 - unified: 11.0.5 - unist-util-remove-position: 5.0.0 - unist-util-visit: 5.0.0 - unist-util-visit-parents: 6.0.1 - vfile: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@astrojs/markdown-remark@5.3.0': - dependencies: - '@astrojs/prism': 3.1.0 + '@astrojs/prism': 3.2.0 github-slugger: 2.0.0 hast-util-from-html: 2.0.3 hast-util-to-text: 4.0.2 import-meta-resolve: 4.1.0 + js-yaml: 4.1.0 mdast-util-definitions: 6.0.0 rehype-raw: 7.0.0 rehype-stringify: 10.0.1 @@ -8066,7 +8208,8 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.1 remark-smartypants: 3.0.2 - shiki: 1.22.0 + shiki: 1.29.2 + smol-toml: 1.3.1 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.0.0 @@ -8075,62 +8218,71 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@2.3.1(astro@4.16.6(@types/node@20.16.12)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3))': + '@astrojs/mdx@4.0.8(astro@5.2.1(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3))': dependencies: - '@astrojs/markdown-remark': 5.1.0 - '@mdx-js/mdx': 3.1.0(acorn@8.13.0) - acorn: 8.13.0 - astro: 4.16.6(@types/node@20.16.12)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3) - es-module-lexer: 1.5.4 + '@astrojs/markdown-remark': 6.1.0 + '@mdx-js/mdx': 3.1.0(acorn@8.14.0) + acorn: 8.14.0 + astro: 5.2.1(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3) + es-module-lexer: 1.6.0 estree-util-visit: 2.0.0 - github-slugger: 2.0.0 - gray-matter: 4.0.3 - hast-util-to-html: 9.0.3 + hast-util-to-html: 9.0.4 kleur: 4.1.5 rehype-raw: 7.0.0 remark-gfm: 4.0.0 - remark-smartypants: 2.1.0 + remark-smartypants: 3.0.2 source-map: 0.7.4 unist-util-visit: 5.0.0 vfile: 6.0.3 transitivePeerDependencies: - supports-color - '@astrojs/prism@3.1.0': + '@astrojs/prism@3.2.0': dependencies: prismjs: 1.29.0 - '@astrojs/react@3.6.2(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.9(@types/node@20.16.12)(terser@5.36.0))': + '@astrojs/react@4.2.0(@types/node@22.12.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(jiti@2.4.2)(lightningcss@1.29.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(terser@5.36.0)': dependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.1 - '@vitejs/plugin-react': 4.3.2(vite@5.4.9(@types/node@20.16.12)(terser@5.36.0)) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@vitejs/plugin-react': 4.3.4(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0)) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) ultrahtml: 1.5.3 + vite: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss - supports-color - - vite + - terser + - tsx + - yaml - '@astrojs/rss@4.0.9': + '@astrojs/rss@4.0.11': dependencies: fast-xml-parser: 4.5.0 kleur: 4.1.5 - '@astrojs/tailwind@5.1.2(astro@4.16.6(@types/node@20.16.12)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3))(tailwindcss@3.4.14)': + '@astrojs/tailwind@5.1.5(astro@5.2.1(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3))(tailwindcss@3.4.17)': dependencies: - astro: 4.16.6(@types/node@20.16.12)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3) - autoprefixer: 10.4.20(postcss@8.4.47) - postcss: 8.4.47 - postcss-load-config: 4.0.2(postcss@8.4.47) - tailwindcss: 3.4.14 + astro: 5.2.1(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3) + autoprefixer: 10.4.20(postcss@8.5.1) + postcss: 8.5.1 + postcss-load-config: 4.0.2(postcss@8.5.1) + tailwindcss: 3.4.17 transitivePeerDependencies: - ts-node - '@astrojs/telemetry@3.1.0': + '@astrojs/telemetry@3.2.0': dependencies: - ci-info: 4.0.0 - debug: 4.3.7 + ci-info: 4.1.0 + debug: 4.4.0 dlv: 1.1.3 dset: 3.1.4 is-docker: 3.0.0 @@ -8139,18 +8291,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/code-frame@7.23.5': - dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 - '@babel/code-frame@7.25.7': dependencies: '@babel/highlight': 7.25.7 picocolors: 1.1.1 + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.25.8': {} + '@babel/compat-data@7.26.5': {} + '@babel/core@7.25.8': dependencies: '@ampproject/remapping': 2.3.0 @@ -8171,6 +8326,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.26.7': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.5 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.7) + '@babel/helpers': 7.26.7 + '@babel/parser': 7.26.7 + '@babel/template': 7.25.9 + '@babel/traverse': 7.26.7 + '@babel/types': 7.26.7 + convert-source-map: 2.0.0 + debug: 4.3.7 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/generator@7.18.2': dependencies: '@babel/types': 7.21.5 @@ -8184,6 +8359,14 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 + '@babel/generator@7.26.5': + dependencies: + '@babel/parser': 7.26.7 + '@babel/types': 7.26.7 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 + '@babel/helper-annotate-as-pure@7.25.7': dependencies: '@babel/types': 7.25.8 @@ -8203,6 +8386,14 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-compilation-targets@7.26.5': + dependencies: + '@babel/compat-data': 7.26.5 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.0 + lru-cache: 5.1.1 + semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.25.7(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 @@ -8248,6 +8439,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-imports@7.25.9': + dependencies: + '@babel/traverse': 7.26.7 + '@babel/types': 7.26.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 @@ -8258,12 +8456,23 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.25.7': dependencies: '@babel/types': 7.25.8 '@babel/helper-plugin-utils@7.25.7': {} + '@babel/helper-plugin-utils@7.26.5': {} + '@babel/helper-remap-async-to-generator@7.25.7(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 @@ -8296,18 +8505,22 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.19.4': {} - '@babel/helper-string-parser@7.21.5': {} '@babel/helper-string-parser@7.25.7': {} + '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-validator-identifier@7.19.1': {} '@babel/helper-validator-identifier@7.25.7': {} + '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-option@7.25.7': {} + '@babel/helper-validator-option@7.25.9': {} + '@babel/helper-wrap-function@7.25.7': dependencies: '@babel/template': 7.25.7 @@ -8321,11 +8534,10 @@ snapshots: '@babel/template': 7.25.7 '@babel/types': 7.25.8 - '@babel/highlight@7.23.4': + '@babel/helpers@7.26.7': dependencies: - '@babel/helper-validator-identifier': 7.25.7 - chalk: 2.4.2 - js-tokens: 4.0.0 + '@babel/template': 7.25.9 + '@babel/types': 7.26.7 '@babel/highlight@7.25.7': dependencies: @@ -8338,14 +8550,14 @@ snapshots: dependencies: '@babel/types': 7.21.5 - '@babel/parser@7.21.4': - dependencies: - '@babel/types': 7.20.7 - '@babel/parser@7.25.8': dependencies: '@babel/types': 7.25.8 + '@babel/parser@7.26.7': + dependencies: + '@babel/types': 7.26.7 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.7(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 @@ -8395,11 +8607,6 @@ snapshots: '@babel/core': 7.25.8 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.25.8)': - dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 @@ -8661,26 +8868,15 @@ snapshots: '@babel/core': 7.25.8 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-jsx-self@7.25.7(@babel/core@7.25.8)': + '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.25.7 + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-react-jsx-source@7.25.7(@babel/core@7.25.8)': + '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.25.7 - - '@babel/plugin-transform-react-jsx@7.25.7(@babel/core@7.25.8)': - dependencies: - '@babel/core': 7.25.8 - '@babel/helper-annotate-as-pure': 7.25.7 - '@babel/helper-module-imports': 7.25.7 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.8) - '@babel/types': 7.25.8 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-regenerator@7.25.7(@babel/core@7.25.8)': dependencies: @@ -8825,20 +9021,26 @@ snapshots: '@babel/types': 7.25.8 esutils: 2.0.3 - '@babel/runtime@7.20.13': - dependencies: - regenerator-runtime: 0.13.11 - '@babel/runtime@7.25.7': dependencies: regenerator-runtime: 0.14.1 + '@babel/runtime@7.26.7': + dependencies: + regenerator-runtime: 0.14.1 + '@babel/template@7.25.7': dependencies: '@babel/code-frame': 7.25.7 '@babel/parser': 7.25.8 '@babel/types': 7.25.8 + '@babel/template@7.25.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.7 + '@babel/types': 7.26.7 + '@babel/traverse@7.25.7': dependencies: '@babel/code-frame': 7.25.7 @@ -8851,18 +9053,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.26.7': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.5 + '@babel/parser': 7.26.7 + '@babel/template': 7.25.9 + '@babel/types': 7.26.7 + debug: 4.3.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + '@babel/types@7.19.0': dependencies: '@babel/helper-string-parser': 7.21.5 '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 - '@babel/types@7.20.7': - dependencies: - '@babel/helper-string-parser': 7.19.4 - '@babel/helper-validator-identifier': 7.19.1 - to-fast-properties: 2.0.0 - '@babel/types@7.21.5': dependencies: '@babel/helper-string-parser': 7.21.5 @@ -8875,69 +9083,70 @@ snapshots: '@babel/helper-validator-identifier': 7.25.7 to-fast-properties: 2.0.0 - '@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.0.2)': + '@babel/types@7.26.7': dependencies: - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - '@lezer/common': 1.0.2 + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 - '@codemirror/commands@6.7.0': + '@codemirror/autocomplete@6.18.4': dependencies: - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 + '@codemirror/language': 6.10.8 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 + '@lezer/common': 1.2.0 + + '@codemirror/commands@6.8.0': + dependencies: + '@codemirror/language': 6.10.8 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 '@lezer/common': 1.2.0 '@codemirror/lang-javascript@6.2.2': dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.0.2) - '@codemirror/language': 6.10.3 - '@codemirror/lint': 6.1.0 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - '@lezer/common': 1.0.2 + '@codemirror/autocomplete': 6.18.4 + '@codemirror/language': 6.10.8 + '@codemirror/lint': 6.4.2 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 + '@lezer/common': 1.2.0 '@lezer/javascript': 1.4.1 - '@codemirror/language@6.10.3': + '@codemirror/language@6.10.8': dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 '@lezer/common': 1.2.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.3.1 - style-mod: 4.0.0 - - '@codemirror/lint@6.1.0': - dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - crelt: 1.0.5 + style-mod: 4.1.0 '@codemirror/lint@6.4.2': dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 crelt: 1.0.6 - '@codemirror/search@6.5.6': + '@codemirror/search@6.5.8': dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - crelt: 1.0.5 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 + crelt: 1.0.6 - '@codemirror/state@6.4.1': {} - - '@codemirror/view@6.34.1': + '@codemirror/state@6.5.1': dependencies: - '@codemirror/state': 6.4.1 + '@marijn/find-cluster-break': 1.0.2 + + '@codemirror/view@6.36.2': + dependencies: + '@codemirror/state': 6.5.1 style-mod: 4.1.0 w3c-keyname: 2.2.6 - '@csound/browser@6.18.7(eslint@9.13.0(jiti@1.21.0))': + '@csound/browser@6.18.7(eslint@9.19.0(jiti@2.4.2))': dependencies: comlink: 4.3.1 - eslint-plugin-n: 15.6.1(eslint@9.13.0(jiti@1.21.0)) + eslint-plugin-n: 15.6.1(eslint@9.19.0(jiti@2.4.2)) eventemitter3: 4.0.7 google-closure-compiler: 20221102.0.1 google-closure-library: 20221102.0.0 @@ -8951,23 +9160,23 @@ snapshots: transitivePeerDependencies: - eslint - '@dependents/detective-less@4.1.0': + '@dependents/detective-less@5.0.0': dependencies: gonzales-pe: 4.3.0 - node-source-walk: 6.0.2 + node-source-walk: 7.0.1 - '@docsearch/css@3.6.2': {} + '@docsearch/css@3.8.3': {} - '@docsearch/react@3.6.2(@algolia/client-search@4.22.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0)': + '@docsearch/react@3.8.3(@algolia/client-search@5.20.0)(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.13.0)': dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)(search-insights@2.13.0) - '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0) - '@docsearch/css': 3.6.2 - algoliasearch: 4.22.0 + '@algolia/autocomplete-core': 1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0)(search-insights@2.13.0) + '@algolia/autocomplete-preset-algolia': 1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0) + '@docsearch/css': 3.8.3 + algoliasearch: 5.20.0 optionalDependencies: - '@types/react': 18.3.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@types/react': 19.0.8 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' @@ -8980,109 +9189,171 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true + '@esbuild/aix-ppc64@0.24.2': + optional: true + '@esbuild/android-arm64@0.21.5': optional: true + '@esbuild/android-arm64@0.24.2': + optional: true + '@esbuild/android-arm@0.21.5': optional: true + '@esbuild/android-arm@0.24.2': + optional: true + '@esbuild/android-x64@0.21.5': optional: true + '@esbuild/android-x64@0.24.2': + optional: true + '@esbuild/darwin-arm64@0.21.5': optional: true + '@esbuild/darwin-arm64@0.24.2': + optional: true + '@esbuild/darwin-x64@0.21.5': optional: true + '@esbuild/darwin-x64@0.24.2': + optional: true + '@esbuild/freebsd-arm64@0.21.5': optional: true + '@esbuild/freebsd-arm64@0.24.2': + optional: true + '@esbuild/freebsd-x64@0.21.5': optional: true + '@esbuild/freebsd-x64@0.24.2': + optional: true + '@esbuild/linux-arm64@0.21.5': optional: true + '@esbuild/linux-arm64@0.24.2': + optional: true + '@esbuild/linux-arm@0.21.5': optional: true + '@esbuild/linux-arm@0.24.2': + optional: true + '@esbuild/linux-ia32@0.21.5': optional: true + '@esbuild/linux-ia32@0.24.2': + optional: true + '@esbuild/linux-loong64@0.21.5': optional: true + '@esbuild/linux-loong64@0.24.2': + optional: true + '@esbuild/linux-mips64el@0.21.5': optional: true + '@esbuild/linux-mips64el@0.24.2': + optional: true + '@esbuild/linux-ppc64@0.21.5': optional: true + '@esbuild/linux-ppc64@0.24.2': + optional: true + '@esbuild/linux-riscv64@0.21.5': optional: true + '@esbuild/linux-riscv64@0.24.2': + optional: true + '@esbuild/linux-s390x@0.21.5': optional: true + '@esbuild/linux-s390x@0.24.2': + optional: true + '@esbuild/linux-x64@0.21.5': optional: true + '@esbuild/linux-x64@0.24.2': + optional: true + + '@esbuild/netbsd-arm64@0.24.2': + optional: true + '@esbuild/netbsd-x64@0.21.5': optional: true + '@esbuild/netbsd-x64@0.24.2': + optional: true + + '@esbuild/openbsd-arm64@0.24.2': + optional: true + '@esbuild/openbsd-x64@0.21.5': optional: true + '@esbuild/openbsd-x64@0.24.2': + optional: true + '@esbuild/sunos-x64@0.21.5': optional: true + '@esbuild/sunos-x64@0.24.2': + optional: true + '@esbuild/win32-arm64@0.21.5': optional: true + '@esbuild/win32-arm64@0.24.2': + optional: true + '@esbuild/win32-ia32@0.21.5': optional: true + '@esbuild/win32-ia32@0.24.2': + optional: true + '@esbuild/win32-x64@0.21.5': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)': + '@esbuild/win32-x64@0.24.2': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@9.19.0(jiti@2.4.2))': dependencies: - eslint: 8.57.1 + eslint: 9.19.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0(jiti@1.21.0))': - dependencies: - eslint: 9.13.0(jiti@1.21.0) - eslint-visitor-keys: 3.4.3 + '@eslint-community/regexpp@4.12.1': {} - '@eslint-community/regexpp@4.11.1': {} + '@eslint/compat@1.2.5(eslint@9.19.0(jiti@2.4.2))': + optionalDependencies: + eslint: 9.19.0(jiti@2.4.2) - '@eslint/config-array@0.18.0': + '@eslint/config-array@0.19.1': dependencies: - '@eslint/object-schema': 2.1.4 + '@eslint/object-schema': 2.1.5 debug: 4.3.7 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/core@0.7.0': {} - - '@eslint/eslintrc@2.1.4': + '@eslint/core@0.10.0': dependencies: - ajv: 6.12.6 - debug: 4.3.7 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color + '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.1.0': + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 debug: 4.3.7 @@ -9096,48 +9367,66 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.1': {} + '@eslint/js@9.19.0': {} - '@eslint/js@9.13.0': {} + '@eslint/object-schema@2.1.5': {} - '@eslint/object-schema@2.1.4': {} - - '@eslint/plugin-kit@0.2.1': + '@eslint/plugin-kit@0.2.5': dependencies: + '@eslint/core': 0.10.0 levn: 0.4.1 - '@headlessui/react@1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@floating-ui/core@1.6.9': dependencies: - '@tanstack/react-virtual': 3.10.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - client-only: 0.0.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@floating-ui/utils': 0.2.9 - '@heroicons/react@2.1.5(react@18.3.1)': + '@floating-ui/dom@1.6.13': dependencies: - react: 18.3.1 + '@floating-ui/core': 1.6.9 + '@floating-ui/utils': 0.2.9 - '@humanfs/core@0.19.0': {} - - '@humanfs/node@0.16.5': + '@floating-ui/react-dom@2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@humanfs/core': 0.19.0 + '@floating-ui/dom': 1.6.13 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@floating-ui/react@0.26.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@floating-ui/utils': 0.2.9 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + tabbable: 6.2.0 + + '@floating-ui/utils@0.2.9': {} + + '@headlessui/react@2.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@floating-ui/react': 0.26.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/focus': 3.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.23.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@tanstack/react-virtual': 3.10.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@heroicons/react@2.2.0(react@19.0.0)': + dependencies: + react: 19.0.0 + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 '@humanwhocodes/retry': 0.3.1 - '@humanwhocodes/config-array@0.13.0': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.7 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} - '@humanwhocodes/retry@0.3.1': {} + '@humanwhocodes/retry@0.4.1': {} + '@hutson/parse-repository-url@3.0.2': {} '@img/sharp-darwin-arm64@0.33.5': @@ -9273,7 +9562,7 @@ snapshots: dependencies: lodash: 4.17.21 - '@lerna/create@8.1.8(encoding@0.1.13)(typescript@5.3.3)': + '@lerna/create@8.1.9(encoding@0.1.13)(typescript@5.6.3)': dependencies: '@npmcli/arborist': 7.5.4 '@npmcli/package-json': 5.2.0 @@ -9291,7 +9580,7 @@ snapshots: console-control-strings: 1.1.0 conventional-changelog-core: 5.0.1 conventional-recommended-bump: 7.0.1 - cosmiconfig: 8.3.6(typescript@5.3.3) + cosmiconfig: 9.0.0(typescript@5.6.3) dedent: 1.5.3 execa: 5.0.0 fs-extra: 11.2.0 @@ -9356,8 +9645,6 @@ snapshots: - supports-color - typescript - '@lezer/common@1.0.2': {} - '@lezer/common@1.2.0': {} '@lezer/highlight@1.2.1': @@ -9373,7 +9660,9 @@ snapshots: dependencies: '@lezer/common': 1.2.0 - '@mdx-js/mdx@3.1.0(acorn@8.13.0)': + '@marijn/find-cluster-break@1.0.2': {} + + '@mdx-js/mdx@3.1.0(acorn@8.14.0)': dependencies: '@types/estree': 1.0.6 '@types/estree-jsx': 1.0.5 @@ -9387,7 +9676,7 @@ snapshots: hast-util-to-jsx-runtime: 2.3.2 markdown-extensions: 2.0.0 recma-build-jsx: 1.0.0 - recma-jsx: 1.0.0(acorn@8.13.0) + recma-jsx: 1.0.0(acorn@8.14.0) recma-stringify: 1.0.0 rehype-recma: 1.0.0 remark-mdx: 3.1.0 @@ -9403,14 +9692,14 @@ snapshots: - acorn - supports-color - '@nanostores/persistent@0.9.1(nanostores@0.9.5)': + '@nanostores/persistent@0.10.2(nanostores@0.11.3)': dependencies: - nanostores: 0.9.5 + nanostores: 0.11.3 - '@nanostores/react@0.7.3(nanostores@0.9.5)(react@18.3.1)': + '@nanostores/react@0.8.4(nanostores@0.11.3)(react@19.0.0)': dependencies: - nanostores: 0.9.5 - react: 18.3.1 + nanostores: 0.11.3 + react: 19.0.0 '@nodelib/fs.scandir@2.1.5': dependencies: @@ -9572,7 +9861,7 @@ snapshots: '@nx/devkit@17.2.8(nx@17.2.8)': dependencies: '@nrwl/devkit': 17.2.8(nx@17.2.8) - ejs: 3.1.8 + ejs: 3.1.10 enquirer: 2.3.6 ignore: 5.2.4 nx: 17.2.8 @@ -9612,7 +9901,7 @@ snapshots: '@octokit/auth-token@3.0.3': dependencies: - '@octokit/types': 9.0.0 + '@octokit/types': 9.3.2 '@octokit/core@4.2.4(encoding@0.1.13)': dependencies: @@ -9620,7 +9909,7 @@ snapshots: '@octokit/graphql': 5.0.5(encoding@0.1.13) '@octokit/request': 6.2.3(encoding@0.1.13) '@octokit/request-error': 3.0.3 - '@octokit/types': 9.0.0 + '@octokit/types': 9.3.2 before-after-hook: 2.2.3 universal-user-agent: 6.0.0 transitivePeerDependencies: @@ -9628,20 +9917,18 @@ snapshots: '@octokit/endpoint@7.0.5': dependencies: - '@octokit/types': 9.0.0 + '@octokit/types': 9.3.2 is-plain-object: 5.0.0 universal-user-agent: 6.0.0 '@octokit/graphql@5.0.5(encoding@0.1.13)': dependencies: '@octokit/request': 6.2.3(encoding@0.1.13) - '@octokit/types': 9.0.0 + '@octokit/types': 9.3.2 universal-user-agent: 6.0.0 transitivePeerDependencies: - encoding - '@octokit/openapi-types@16.0.0': {} - '@octokit/openapi-types@18.1.1': {} '@octokit/plugin-enterprise-rest@6.0.1': {} @@ -9663,7 +9950,7 @@ snapshots: '@octokit/request-error@3.0.3': dependencies: - '@octokit/types': 9.0.0 + '@octokit/types': 9.3.2 deprecation: 2.3.1 once: 1.4.0 @@ -9671,7 +9958,7 @@ snapshots: dependencies: '@octokit/endpoint': 7.0.5 '@octokit/request-error': 3.0.3 - '@octokit/types': 9.0.0 + '@octokit/types': 9.3.2 is-plain-object: 5.0.0 node-fetch: 2.6.8(encoding@0.1.13) universal-user-agent: 6.0.0 @@ -9693,46 +9980,89 @@ snapshots: dependencies: '@octokit/openapi-types': 18.1.1 - '@octokit/types@9.0.0': - dependencies: - '@octokit/openapi-types': 16.0.0 - '@octokit/types@9.3.2': dependencies: '@octokit/openapi-types': 18.1.1 '@oslojs/encoding@1.1.0': {} + '@peggyjs/from-mem@1.3.5': + dependencies: + semver: 7.6.3 + '@pkgjs/parseargs@0.11.0': optional: true '@polka/url@1.0.0-next.28': {} - '@replit/codemirror-emacs@6.1.0(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.0.2))(@codemirror/commands@6.7.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': + '@react-aria/focus@3.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.0.2) - '@codemirror/commands': 6.7.0 - '@codemirror/search': 6.5.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 + '@react-aria/interactions': 3.23.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.27.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/shared': 3.27.0(react@19.0.0) + '@swc/helpers': 0.5.15 + clsx: 2.1.1 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) - '@replit/codemirror-vim@6.2.1(@codemirror/commands@6.7.0)(@codemirror/language@6.10.3)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': + '@react-aria/interactions@3.23.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@codemirror/commands': 6.7.0 - '@codemirror/language': 6.10.3 - '@codemirror/search': 6.5.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 + '@react-aria/ssr': 3.9.7(react@19.0.0) + '@react-aria/utils': 3.27.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/shared': 3.27.0(react@19.0.0) + '@swc/helpers': 0.5.15 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) - '@replit/codemirror-vscode-keymap@6.0.2(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.0.2))(@codemirror/commands@6.7.0)(@codemirror/language@6.10.3)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': + '@react-aria/ssr@3.9.7(react@19.0.0)': dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.0.2) - '@codemirror/commands': 6.7.0 - '@codemirror/language': 6.10.3 + '@swc/helpers': 0.5.15 + react: 19.0.0 + + '@react-aria/utils@3.27.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@react-aria/ssr': 3.9.7(react@19.0.0) + '@react-stately/utils': 3.10.5(react@19.0.0) + '@react-types/shared': 3.27.0(react@19.0.0) + '@swc/helpers': 0.5.15 + clsx: 2.1.1 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@react-stately/utils@3.10.5(react@19.0.0)': + dependencies: + '@swc/helpers': 0.5.15 + react: 19.0.0 + + '@react-types/shared@3.27.0(react@19.0.0)': + dependencies: + react: 19.0.0 + + '@replit/codemirror-emacs@6.1.0(@codemirror/autocomplete@6.18.4)(@codemirror/commands@6.8.0)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/view@6.36.2)': + dependencies: + '@codemirror/autocomplete': 6.18.4 + '@codemirror/commands': 6.8.0 + '@codemirror/search': 6.5.8 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 + + '@replit/codemirror-vim@6.2.1(@codemirror/commands@6.8.0)(@codemirror/language@6.10.8)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/view@6.36.2)': + dependencies: + '@codemirror/commands': 6.8.0 + '@codemirror/language': 6.10.8 + '@codemirror/search': 6.5.8 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 + + '@replit/codemirror-vscode-keymap@6.0.2(@codemirror/autocomplete@6.18.4)(@codemirror/commands@6.8.0)(@codemirror/language@6.10.8)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/view@6.36.2)': + dependencies: + '@codemirror/autocomplete': 6.18.4 + '@codemirror/commands': 6.8.0 + '@codemirror/language': 6.10.8 '@codemirror/lint': 6.4.2 - '@codemirror/search': 6.5.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 + '@codemirror/search': 6.5.8 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 '@rollup/plugin-babel@5.3.1(@babel/core@7.25.8)(@types/babel__core@7.20.5)(rollup@2.79.2)': dependencies: @@ -9761,7 +10091,7 @@ snapshots: magic-string: 0.25.9 rollup: 2.79.2 - '@rollup/plugin-replace@5.0.7(rollup@4.24.0)': + '@rollup/plugin-replace@6.0.2(rollup@4.24.0)': dependencies: '@rollup/pluginutils': 5.1.2(rollup@4.24.0) magic-string: 0.30.12 @@ -9775,14 +10105,6 @@ snapshots: picomatch: 2.3.1 rollup: 2.79.2 - '@rollup/pluginutils@5.1.2(rollup@2.79.2)': - dependencies: - '@types/estree': 1.0.6 - estree-walker: 2.0.2 - picomatch: 2.3.1 - optionalDependencies: - rollup: 2.79.2 - '@rollup/pluginutils@5.1.2(rollup@4.24.0)': dependencies: '@types/estree': 1.0.6 @@ -9791,6 +10113,14 @@ snapshots: optionalDependencies: rollup: 4.24.0 + '@rollup/pluginutils@5.1.4(rollup@2.79.2)': + dependencies: + '@types/estree': 1.0.6 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 2.79.2 + '@rollup/rollup-android-arm-eabi@4.24.0': optional: true @@ -9841,32 +10171,40 @@ snapshots: '@rtsao/scc@1.1.0': {} - '@shikijs/core@1.22.0': + '@shikijs/core@1.29.2': dependencies: - '@shikijs/engine-javascript': 1.22.0 - '@shikijs/engine-oniguruma': 1.22.0 - '@shikijs/types': 1.22.0 - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/engine-javascript': 1.29.2 + '@shikijs/engine-oniguruma': 1.29.2 + '@shikijs/types': 1.29.2 + '@shikijs/vscode-textmate': 10.0.1 '@types/hast': 3.0.4 - hast-util-to-html: 9.0.3 + hast-util-to-html: 9.0.4 - '@shikijs/engine-javascript@1.22.0': + '@shikijs/engine-javascript@1.29.2': dependencies: - '@shikijs/types': 1.22.0 - '@shikijs/vscode-textmate': 9.3.0 - oniguruma-to-js: 0.4.3 + '@shikijs/types': 1.29.2 + '@shikijs/vscode-textmate': 10.0.1 + oniguruma-to-es: 2.3.0 - '@shikijs/engine-oniguruma@1.22.0': + '@shikijs/engine-oniguruma@1.29.2': dependencies: - '@shikijs/types': 1.22.0 - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/types': 1.29.2 + '@shikijs/vscode-textmate': 10.0.1 - '@shikijs/types@1.22.0': + '@shikijs/langs@1.29.2': dependencies: - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/types': 1.29.2 + + '@shikijs/themes@1.29.2': + dependencies: + '@shikijs/types': 1.29.2 + + '@shikijs/types@1.29.2': + dependencies: + '@shikijs/vscode-textmate': 10.0.1 '@types/hast': 3.0.4 - '@shikijs/vscode-textmate@9.3.0': {} + '@shikijs/vscode-textmate@10.0.1': {} '@sigstore/bundle@2.3.2': dependencies: @@ -9902,11 +10240,11 @@ snapshots: '@sinclair/typebox@0.27.8': {} - '@supabase/auth-js@2.65.1': + '@supabase/auth-js@2.67.3': dependencies: '@supabase/node-fetch': 2.6.15 - '@supabase/functions-js@2.4.3': + '@supabase/functions-js@2.4.4': dependencies: '@supabase/node-fetch': 2.6.15 @@ -9914,11 +10252,11 @@ snapshots: dependencies: whatwg-url: 5.0.0 - '@supabase/postgrest-js@1.16.2': + '@supabase/postgrest-js@1.18.1': dependencies: '@supabase/node-fetch': 2.6.15 - '@supabase/realtime-js@2.10.7': + '@supabase/realtime-js@2.11.2': dependencies: '@supabase/node-fetch': 2.6.15 '@types/phoenix': 1.6.5 @@ -9932,13 +10270,13 @@ snapshots: dependencies: '@supabase/node-fetch': 2.6.15 - '@supabase/supabase-js@2.45.5': + '@supabase/supabase-js@2.48.1': dependencies: - '@supabase/auth-js': 2.65.1 - '@supabase/functions-js': 2.4.3 + '@supabase/auth-js': 2.67.3 + '@supabase/functions-js': 2.4.4 '@supabase/node-fetch': 2.6.15 - '@supabase/postgrest-js': 1.16.2 - '@supabase/realtime-js': 2.10.7 + '@supabase/postgrest-js': 1.18.1 + '@supabase/realtime-js': 2.11.2 '@supabase/storage-js': 2.7.1 transitivePeerDependencies: - bufferutil @@ -9951,73 +10289,141 @@ snapshots: magic-string: 0.25.9 string.prototype.matchall: 4.0.11 - '@tailwindcss/forms@0.5.9(tailwindcss@3.4.14)': + '@swc/helpers@0.5.15': + dependencies: + tslib: 2.8.0 + + '@tailwindcss/forms@0.5.10(tailwindcss@3.4.17)': dependencies: mini-svg-data-uri: 1.4.4 - tailwindcss: 3.4.14 + tailwindcss: 3.4.17 - '@tailwindcss/typography@0.5.15(tailwindcss@3.4.14)': + '@tailwindcss/node@4.0.1': + dependencies: + enhanced-resolve: 5.18.0 + jiti: 2.4.2 + tailwindcss: 4.0.1 + + '@tailwindcss/oxide-android-arm64@4.0.1': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.0.1': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.0.1': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.0.1': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.1': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.0.1': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.0.1': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.0.1': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.0.1': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.0.1': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.0.1': + optional: true + + '@tailwindcss/oxide@4.0.1': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.0.1 + '@tailwindcss/oxide-darwin-arm64': 4.0.1 + '@tailwindcss/oxide-darwin-x64': 4.0.1 + '@tailwindcss/oxide-freebsd-x64': 4.0.1 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.1 + '@tailwindcss/oxide-linux-arm64-gnu': 4.0.1 + '@tailwindcss/oxide-linux-arm64-musl': 4.0.1 + '@tailwindcss/oxide-linux-x64-gnu': 4.0.1 + '@tailwindcss/oxide-linux-x64-musl': 4.0.1 + '@tailwindcss/oxide-win32-arm64-msvc': 4.0.1 + '@tailwindcss/oxide-win32-x64-msvc': 4.0.1 + + '@tailwindcss/postcss@4.0.1': + dependencies: + '@alloc/quick-lru': 5.2.0 + '@tailwindcss/node': 4.0.1 + '@tailwindcss/oxide': 4.0.1 + lightningcss: 1.29.1 + postcss: 8.4.47 + tailwindcss: 4.0.1 + + '@tailwindcss/typography@0.5.16(tailwindcss@3.4.17)': dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.14 + tailwindcss: 3.4.17 - '@tanstack/react-virtual@3.10.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/react-virtual@3.10.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@tanstack/virtual-core': 3.10.8 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) '@tanstack/virtual-core@3.10.8': {} - '@tauri-apps/api@1.6.0': {} + '@tauri-apps/api@2.2.0': {} - '@tauri-apps/cli-darwin-arm64@1.6.3': + '@tauri-apps/cli-darwin-arm64@2.2.7': optional: true - '@tauri-apps/cli-darwin-x64@1.6.3': + '@tauri-apps/cli-darwin-x64@2.2.7': optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@1.6.3': + '@tauri-apps/cli-linux-arm-gnueabihf@2.2.7': optional: true - '@tauri-apps/cli-linux-arm64-gnu@1.6.3': + '@tauri-apps/cli-linux-arm64-gnu@2.2.7': optional: true - '@tauri-apps/cli-linux-arm64-musl@1.6.3': + '@tauri-apps/cli-linux-arm64-musl@2.2.7': optional: true - '@tauri-apps/cli-linux-x64-gnu@1.6.3': + '@tauri-apps/cli-linux-x64-gnu@2.2.7': optional: true - '@tauri-apps/cli-linux-x64-musl@1.6.3': + '@tauri-apps/cli-linux-x64-musl@2.2.7': optional: true - '@tauri-apps/cli-win32-arm64-msvc@1.6.3': + '@tauri-apps/cli-win32-arm64-msvc@2.2.7': optional: true - '@tauri-apps/cli-win32-ia32-msvc@1.6.3': + '@tauri-apps/cli-win32-ia32-msvc@2.2.7': optional: true - '@tauri-apps/cli-win32-x64-msvc@1.6.3': + '@tauri-apps/cli-win32-x64-msvc@2.2.7': optional: true - '@tauri-apps/cli@1.6.3': - dependencies: - semver: 7.6.3 + '@tauri-apps/cli@2.2.7': optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 1.6.3 - '@tauri-apps/cli-darwin-x64': 1.6.3 - '@tauri-apps/cli-linux-arm-gnueabihf': 1.6.3 - '@tauri-apps/cli-linux-arm64-gnu': 1.6.3 - '@tauri-apps/cli-linux-arm64-musl': 1.6.3 - '@tauri-apps/cli-linux-x64-gnu': 1.6.3 - '@tauri-apps/cli-linux-x64-musl': 1.6.3 - '@tauri-apps/cli-win32-arm64-msvc': 1.6.3 - '@tauri-apps/cli-win32-ia32-msvc': 1.6.3 - '@tauri-apps/cli-win32-x64-msvc': 1.6.3 + '@tauri-apps/cli-darwin-arm64': 2.2.7 + '@tauri-apps/cli-darwin-x64': 2.2.7 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.2.7 + '@tauri-apps/cli-linux-arm64-gnu': 2.2.7 + '@tauri-apps/cli-linux-arm64-musl': 2.2.7 + '@tauri-apps/cli-linux-x64-gnu': 2.2.7 + '@tauri-apps/cli-linux-x64-musl': 2.2.7 + '@tauri-apps/cli-win32-arm64-msvc': 2.2.7 + '@tauri-apps/cli-win32-ia32-msvc': 2.2.7 + '@tauri-apps/cli-win32-x64-msvc': 2.2.7 + + '@tauri-apps/plugin-clipboard-manager@2.2.1': + dependencies: + '@tauri-apps/api': 2.2.0 '@tonaljs/abc-notation@4.8.0': dependencies: @@ -10182,8 +10588,6 @@ snapshots: '@types/estree@0.0.39': {} - '@types/estree@1.0.0': {} - '@types/estree@1.0.6': {} '@types/hast@3.0.2': @@ -10223,43 +10627,29 @@ snapshots: '@types/ms@0.7.31': {} - '@types/nlcst@1.0.4': - dependencies: - '@types/unist': 2.0.11 - '@types/nlcst@2.0.3': dependencies: '@types/unist': 3.0.3 - '@types/node@20.16.12': + '@types/node@22.12.0': dependencies: - undici-types: 6.19.8 - - '@types/node@22.7.6': - dependencies: - undici-types: 6.19.8 - optional: true + undici-types: 6.20.0 '@types/normalize-package-data@2.4.1': {} '@types/phoenix@1.6.5': {} - '@types/prop-types@15.7.5': {} - - '@types/react-dom@18.3.1': + '@types/react-dom@19.0.3(@types/react@19.0.8)': dependencies: - '@types/react': 18.3.11 + '@types/react': 19.0.8 - '@types/react@18.3.11': + '@types/react@19.0.8': dependencies: - '@types/prop-types': 15.7.5 csstype: 3.1.1 '@types/resolve@1.17.1': dependencies: - '@types/node': 20.16.12 - - '@types/trusted-types@2.0.2': {} + '@types/node': 22.12.0 '@types/trusted-types@2.0.7': {} @@ -10275,426 +10665,130 @@ snapshots: '@types/ws@8.5.12': dependencies: - '@types/node': 20.16.12 + '@types/node': 22.12.0 - '@typescript-eslint/types@5.62.0': {} + '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.3.7 globby: 11.1.0 is-glob: 4.0.3 + minimatch: 9.0.5 semver: 7.6.3 - tsutils: 3.21.0(typescript@5.6.3) + ts-api-utils: 1.4.3(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@5.62.0': + '@typescript-eslint/visitor-keys@7.18.0': dependencies: - '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@uiw/codemirror-theme-abcdef@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-abyss@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-androidstudio@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-andromeda@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-atomone@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-aura@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-basic@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-bbedit@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-bespin@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-console@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-copilot@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-darcula@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-dracula@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-duotone@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-eclipse@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-github@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-gruvbox-dark@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-kimbie@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-material@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-monokai-dimmed@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-monokai@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-noctis-lilac@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-nord@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-okaidia@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-quietlight@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-red@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-solarized@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-sublime@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-tokyo-night-day@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-tokyo-night-storm@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-tokyo-night@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-tomorrow-night-blue@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-vscode@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-white@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-theme-xcode@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-themes-all@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@uiw/codemirror-theme-abcdef': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-abyss': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-androidstudio': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-andromeda': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-atomone': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-aura': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-basic': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-bbedit': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-bespin': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-console': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-copilot': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-darcula': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-dracula': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-duotone': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-eclipse': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-github': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-gruvbox-dark': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-kimbie': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-material': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-monokai': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-monokai-dimmed': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-noctis-lilac': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-nord': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-okaidia': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-quietlight': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-red': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-solarized': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-sublime': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-tokyo-night': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-tokyo-night-day': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-tokyo-night-storm': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-tomorrow-night-blue': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-vscode': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-white': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-theme-xcode': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - '@uiw/codemirror-themes': 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-themes@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': - dependencies: - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - '@ungap/structured-clone@1.2.0': {} - '@vite-pwa/astro@0.2.0(astro@4.16.6(@types/node@20.16.12)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3))(vite-plugin-pwa@0.17.5(vite@5.4.9(@types/node@20.16.12)(terser@5.36.0))(workbox-build@7.0.0(@types/babel__core@7.20.5))(workbox-window@7.1.0))': + '@vite-pwa/astro@0.5.0(astro@5.2.1(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3))(vite-plugin-pwa@0.17.5(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0))(workbox-build@7.0.0(@types/babel__core@7.20.5))(workbox-window@7.3.0))': dependencies: - astro: 4.16.6(@types/node@20.16.12)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3) - vite-plugin-pwa: 0.17.5(vite@5.4.9(@types/node@20.16.12)(terser@5.36.0))(workbox-build@7.0.0(@types/babel__core@7.20.5))(workbox-window@7.1.0) + astro: 5.2.1(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3) + vite-plugin-pwa: 0.17.5(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0))(workbox-build@7.0.0(@types/babel__core@7.20.5))(workbox-window@7.3.0) - '@vitejs/plugin-react@4.3.2(vite@5.4.9(@types/node@20.16.12)(terser@5.36.0))': + '@vitejs/plugin-react@4.3.4(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0))': dependencies: - '@babel/core': 7.25.8 - '@babel/plugin-transform-react-jsx-self': 7.25.7(@babel/core@7.25.8) - '@babel/plugin-transform-react-jsx-source': 7.25.7(@babel/core@7.25.8) + '@babel/core': 7.26.7 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.7) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.9(@types/node@20.16.12)(terser@5.36.0) + vite: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) transitivePeerDependencies: - supports-color - '@vitest/expect@2.1.3': + '@vitest/expect@3.0.4': dependencies: - '@vitest/spy': 2.1.3 - '@vitest/utils': 2.1.3 - chai: 5.1.1 - tinyrainbow: 1.2.0 + '@vitest/spy': 3.0.4 + '@vitest/utils': 3.0.4 + chai: 5.1.2 + tinyrainbow: 2.0.0 - '@vitest/mocker@2.1.3(@vitest/spy@2.1.3)(vite@5.4.9(@types/node@22.7.6)(terser@5.36.0))': + '@vitest/mocker@3.0.4(vite@5.4.9(@types/node@22.12.0)(lightningcss@1.29.1)(terser@5.36.0))': dependencies: - '@vitest/spy': 2.1.3 + '@vitest/spy': 3.0.4 estree-walker: 3.0.3 - magic-string: 0.30.12 + magic-string: 0.30.17 optionalDependencies: - vite: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + vite: 5.4.9(@types/node@22.12.0)(lightningcss@1.29.1)(terser@5.36.0) - '@vitest/pretty-format@2.1.3': + '@vitest/pretty-format@3.0.4': dependencies: - tinyrainbow: 1.2.0 + tinyrainbow: 2.0.0 - '@vitest/runner@2.1.3': + '@vitest/runner@3.0.4': dependencies: - '@vitest/utils': 2.1.3 - pathe: 1.1.2 + '@vitest/utils': 3.0.4 + pathe: 2.0.2 - '@vitest/snapshot@2.1.3': + '@vitest/snapshot@3.0.4': dependencies: - '@vitest/pretty-format': 2.1.3 - magic-string: 0.30.12 - pathe: 1.1.2 + '@vitest/pretty-format': 3.0.4 + magic-string: 0.30.17 + pathe: 2.0.2 - '@vitest/spy@2.1.3': + '@vitest/spy@3.0.4': dependencies: tinyspy: 3.0.2 - '@vitest/ui@2.1.3(vitest@2.1.3)': + '@vitest/ui@3.0.4(vitest@3.0.4)': dependencies: - '@vitest/utils': 2.1.3 + '@vitest/utils': 3.0.4 fflate: 0.8.2 - flatted: 3.3.1 - pathe: 1.1.2 - sirv: 2.0.4 - tinyglobby: 0.2.9 - tinyrainbow: 1.2.0 - vitest: 2.1.3(@types/node@22.7.6)(@vitest/ui@2.1.3)(terser@5.36.0) + flatted: 3.3.2 + pathe: 2.0.2 + sirv: 3.0.0 + tinyglobby: 0.2.10 + tinyrainbow: 2.0.0 + vitest: 3.0.4(@types/node@22.12.0)(@vitest/ui@3.0.4)(lightningcss@1.29.1)(terser@5.36.0) - '@vitest/utils@2.1.3': + '@vitest/utils@3.0.4': dependencies: - '@vitest/pretty-format': 2.1.3 + '@vitest/pretty-format': 3.0.4 loupe: 3.1.2 - tinyrainbow: 1.2.0 + tinyrainbow: 2.0.0 + + '@vue/compiler-core@3.5.13': + dependencies: + '@babel/parser': 7.25.8 + '@vue/shared': 3.5.13 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.13': + dependencies: + '@vue/compiler-core': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/compiler-sfc@3.5.13': + dependencies: + '@babel/parser': 7.25.8 + '@vue/compiler-core': 3.5.13 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-ssr': 3.5.13 + '@vue/shared': 3.5.13 + estree-walker: 2.0.2 + magic-string: 0.30.12 + postcss: 8.5.1 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.13': + dependencies: + '@vue/compiler-dom': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/shared@3.5.13': {} '@yarnpkg/lockfile@1.1.0': {} @@ -10714,11 +10808,11 @@ snapshots: abbrev@2.0.0: {} - acorn-jsx@5.3.2(acorn@8.13.0): + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: - acorn: 8.13.0 + acorn: 8.14.0 - acorn@8.13.0: {} + acorn@8.14.0: {} add-stream@1.0.0: {} @@ -10753,22 +10847,21 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - algoliasearch@4.22.0: + algoliasearch@5.20.0: dependencies: - '@algolia/cache-browser-local-storage': 4.22.0 - '@algolia/cache-common': 4.22.0 - '@algolia/cache-in-memory': 4.22.0 - '@algolia/client-account': 4.22.0 - '@algolia/client-analytics': 4.22.0 - '@algolia/client-common': 4.22.0 - '@algolia/client-personalization': 4.22.0 - '@algolia/client-search': 4.22.0 - '@algolia/logger-common': 4.22.0 - '@algolia/logger-console': 4.22.0 - '@algolia/requester-browser-xhr': 4.22.0 - '@algolia/requester-common': 4.22.0 - '@algolia/requester-node-http': 4.22.0 - '@algolia/transporter': 4.22.0 + '@algolia/client-abtesting': 5.20.0 + '@algolia/client-analytics': 5.20.0 + '@algolia/client-common': 5.20.0 + '@algolia/client-insights': 5.20.0 + '@algolia/client-personalization': 5.20.0 + '@algolia/client-query-suggestions': 5.20.0 + '@algolia/client-search': 5.20.0 + '@algolia/ingestion': 1.20.0 + '@algolia/monitoring': 1.20.0 + '@algolia/recommend': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 ansi-align@3.0.1: dependencies: @@ -10776,10 +10869,6 @@ snapshots: ansi-colors@4.1.3: {} - ansi-escape-sequences@4.1.0: - dependencies: - array-back: 3.1.0 - ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 @@ -10823,22 +10912,6 @@ snapshots: aria-query@5.3.2: {} - array-back@1.0.4: - dependencies: - typical: 2.6.1 - - array-back@2.0.0: - dependencies: - typical: 2.6.1 - - array-back@3.1.0: {} - - array-back@4.0.2: {} - - array-back@5.0.0: {} - - array-back@6.2.2: {} - array-buffer-byte-length@1.0.0: dependencies: call-bind: 1.0.5 @@ -10916,78 +10989,93 @@ snapshots: assertion-error@2.0.1: {} - ast-module-types@5.0.0: {} + ast-module-types@6.0.0: {} astring@1.9.0: {} - astro@4.16.6(@types/node@20.16.12)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3): + astro@5.2.1(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.36.0)(typescript@5.6.3): dependencies: '@astrojs/compiler': 2.10.3 - '@astrojs/internal-helpers': 0.4.1 - '@astrojs/markdown-remark': 5.3.0 - '@astrojs/telemetry': 3.1.0 - '@babel/core': 7.25.8 - '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.8) - '@babel/types': 7.25.8 + '@astrojs/internal-helpers': 0.5.0 + '@astrojs/markdown-remark': 6.1.0 + '@astrojs/telemetry': 3.2.0 '@oslojs/encoding': 1.1.0 - '@rollup/pluginutils': 5.1.2(rollup@2.79.2) - '@types/babel__core': 7.20.5 + '@rollup/pluginutils': 5.1.4(rollup@2.79.2) '@types/cookie': 0.6.0 - acorn: 8.13.0 + acorn: 8.14.0 aria-query: 5.3.2 axobject-query: 4.1.0 boxen: 8.0.1 - ci-info: 4.0.0 + ci-info: 4.1.0 clsx: 2.1.1 common-ancestor-path: 1.0.1 cookie: 0.7.2 cssesc: 3.0.0 - debug: 4.3.7 + debug: 4.4.0 deterministic-object-hash: 2.0.2 devalue: 5.1.1 diff: 5.2.0 dlv: 1.1.3 dset: 3.1.4 - es-module-lexer: 1.5.4 - esbuild: 0.21.5 + es-module-lexer: 1.6.0 + esbuild: 0.24.2 estree-walker: 3.0.3 - fast-glob: 3.3.2 + fast-glob: 3.3.3 flattie: 1.1.1 github-slugger: 2.0.0 - gray-matter: 4.0.3 html-escaper: 3.0.3 http-cache-semantics: 4.1.1 js-yaml: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.12 + magic-string: 0.30.17 magicast: 0.3.5 micromatch: 4.0.8 mrmime: 2.0.0 neotraverse: 0.6.18 - ora: 8.1.0 - p-limit: 6.1.0 + p-limit: 6.2.0 p-queue: 8.0.1 preferred-pm: 4.0.0 prompts: 2.4.2 rehype: 13.0.2 semver: 7.6.3 - shiki: 1.22.0 - tinyexec: 0.3.1 + shiki: 1.29.2 + tinyexec: 0.3.2 tsconfck: 3.1.4(typescript@5.6.3) + ultrahtml: 1.5.3 unist-util-visit: 5.0.0 + unstorage: 1.14.4 vfile: 6.0.3 - vite: 5.4.9(@types/node@20.16.12)(terser@5.36.0) - vitefu: 1.0.3(vite@5.4.9(@types/node@20.16.12)(terser@5.36.0)) + vite: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) + vitefu: 1.0.5(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0)) which-pm: 3.0.0 - xxhash-wasm: 1.0.2 + xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 - zod: 3.23.8 - zod-to-json-schema: 3.23.3(zod@3.23.8) - zod-to-ts: 1.2.0(typescript@5.6.3)(zod@3.23.8) + yocto-spinner: 0.1.2 + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + zod-to-ts: 1.2.0(typescript@5.6.3)(zod@3.24.1) optionalDependencies: sharp: 0.33.5 transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' - '@types/node' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/kv' + - aws4fetch + - db0 + - idb-keyval + - ioredis + - jiti - less - lightningcss - rollup @@ -10997,9 +11085,10 @@ snapshots: - sugarss - supports-color - terser + - tsx - typescript - - async@3.2.4: {} + - uploadthing + - yaml async@3.2.6: {} @@ -11012,14 +11101,14 @@ snapshots: '@babel/runtime': 7.25.7 tslib: 2.8.0 - autoprefixer@10.4.20(postcss@8.4.47): + autoprefixer@10.4.20(postcss@8.5.1): dependencies: browserslist: 4.24.0 caniuse-lite: 1.0.30001669 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.4.47 + postcss: 8.5.1 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.5: {} @@ -11111,10 +11200,6 @@ snapshots: dependencies: balanced-match: 1.0.2 - braces@3.0.2: - dependencies: - fill-range: 7.0.1 - braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -11167,12 +11252,6 @@ snapshots: tar: 6.2.1 unique-filename: 3.0.0 - cache-point@2.0.0: - dependencies: - array-back: 4.0.2 - fs-then-native: 2.0.0 - mkdirp2: 1.0.5 - call-bind@1.0.2: dependencies: function-bind: 1.1.2 @@ -11214,7 +11293,7 @@ snapshots: ccount@2.0.1: {} - chai@5.1.1: + chai@5.1.2: dependencies: assertion-error: 2.0.1 check-error: 2.1.1 @@ -11252,10 +11331,10 @@ snapshots: check-error@2.1.1: {} - chokidar@3.5.3: + chokidar@3.6.0: dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -11276,6 +11355,8 @@ snapshots: ci-info@4.0.0: {} + ci-info@4.1.0: {} + claviature@0.1.0: {} clean-stack@2.2.0: {} @@ -11286,20 +11367,12 @@ snapshots: dependencies: restore-cursor: 3.1.0 - cli-cursor@5.0.0: - dependencies: - restore-cursor: 5.1.0 - cli-spinners@2.6.1: {} - cli-spinners@2.9.1: {} - cli-spinners@2.9.2: {} cli-width@3.0.0: {} - client-only@0.0.1: {} - cliui@6.0.0: dependencies: string-width: 4.2.3 @@ -11344,11 +11417,6 @@ snapshots: collapse-white-space@2.1.0: {} - collect-all@1.0.4: - dependencies: - stream-connect: 1.0.2 - stream-via: 1.0.4 - color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -11386,29 +11454,7 @@ snapshots: comma-separated-tokens@2.0.3: {} - command-line-args@5.2.1: - dependencies: - array-back: 3.1.0 - find-replace: 3.0.0 - lodash.camelcase: 4.3.0 - typical: 4.0.0 - - command-line-tool@0.8.0: - dependencies: - ansi-escape-sequences: 4.1.0 - array-back: 2.0.0 - command-line-args: 5.2.1 - command-line-usage: 4.1.0 - typical: 2.6.1 - - command-line-usage@4.1.0: - dependencies: - ansi-escape-sequences: 4.1.0 - array-back: 2.0.0 - table-layout: 0.4.5 - typical: 2.6.1 - - commander@10.0.1: {} + commander@12.1.0: {} commander@2.20.3: {} @@ -11416,8 +11462,6 @@ snapshots: common-ancestor-path@1.0.1: {} - common-sequence@2.0.2: {} - common-tags@1.8.2: {} compare-func@2.0.0: @@ -11434,9 +11478,7 @@ snapshots: readable-stream: 3.6.0 typedarray: 0.0.6 - config-master@3.1.0: - dependencies: - walk-back: 2.0.1 + consola@3.4.0: {} console-control-strings@1.1.0: {} @@ -11494,6 +11536,8 @@ snapshots: convert-source-map@2.0.0: {} + cookie-es@1.2.2: {} + cookie@0.7.2: {} core-js-compat@3.38.1: @@ -11502,14 +11546,14 @@ snapshots: core-util-is@1.0.3: {} - cosmiconfig@8.3.6(typescript@5.3.3): + cosmiconfig@9.0.0(typescript@5.6.3): dependencies: + env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 - path-type: 4.0.0 optionalDependencies: - typescript: 5.3.3 + typescript: 5.6.3 cowsay@1.6.0: dependencies: @@ -11518,8 +11562,6 @@ snapshots: strip-final-newline: 2.0.0 yargs: 15.4.1 - crelt@1.0.5: {} - crelt@1.0.6: {} cross-spawn@7.0.3: @@ -11528,24 +11570,34 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crossws@0.3.3: + dependencies: + uncrypto: 0.1.3 + crypto-random-string@2.0.0: {} cssesc@3.0.0: {} csstype@3.1.1: {} - csv-generate@4.4.1: {} + csv-generate@4.4.2: {} - csv-parse@5.5.6: {} + csv-parse@5.6.0: {} - csv-stringify@6.5.1: {} + csv-stringify@6.5.2: {} - csv@6.3.10: + csv@6.3.11: dependencies: - csv-generate: 4.4.1 - csv-parse: 5.5.6 - csv-stringify: 6.5.1 - stream-transform: 3.3.2 + csv-generate: 4.4.2 + csv-parse: 5.6.0 + csv-stringify: 6.5.2 + stream-transform: 3.3.3 dargs@7.0.0: {} @@ -11569,7 +11621,7 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.1 - date-fns@3.6.0: {} + date-fns@4.1.0: {} dateformat@3.0.3: {} @@ -11587,6 +11639,10 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.0: + dependencies: + ms: 2.1.3 + decamelize-keys@1.1.1: dependencies: decamelize: 1.2.0 @@ -11636,13 +11692,15 @@ snapshots: has-property-descriptors: 1.0.0 object-keys: 1.1.1 + defu@6.1.4: {} + delayed-stream@1.0.0: {} - dependency-tree@10.0.9: + dependency-tree@11.0.1: dependencies: - commander: 10.0.1 - filing-cabinet: 4.2.0 - precinct: 11.0.5 + commander: 12.1.0 + filing-cabinet: 5.0.2 + precinct: 12.1.2 typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -11651,51 +11709,68 @@ snapshots: dequal@2.0.3: {} + destr@2.0.3: {} + detect-indent@5.0.0: {} + detect-libc@1.0.3: {} + detect-libc@2.0.1: {} detect-libc@2.0.3: {} - detective-amd@5.0.2: + detective-amd@6.0.0: dependencies: - ast-module-types: 5.0.0 + ast-module-types: 6.0.0 escodegen: 2.1.0 - get-amd-module-type: 5.0.1 - node-source-walk: 6.0.2 + get-amd-module-type: 6.0.0 + node-source-walk: 7.0.1 - detective-cjs@5.0.1: + detective-cjs@6.0.0: dependencies: - ast-module-types: 5.0.0 - node-source-walk: 6.0.2 + ast-module-types: 6.0.0 + node-source-walk: 7.0.1 - detective-es6@4.0.1: + detective-es6@5.0.0: dependencies: - node-source-walk: 6.0.2 + node-source-walk: 7.0.1 - detective-postcss@6.1.3: + detective-postcss@7.0.0(postcss@8.4.47): dependencies: is-url: 1.2.4 postcss: 8.4.47 postcss-values-parser: 6.0.2(postcss@8.4.47) - detective-sass@5.0.3: + detective-sass@6.0.0: dependencies: gonzales-pe: 4.3.0 - node-source-walk: 6.0.2 + node-source-walk: 7.0.1 - detective-scss@4.0.3: + detective-scss@5.0.0: dependencies: gonzales-pe: 4.3.0 - node-source-walk: 6.0.2 + node-source-walk: 7.0.1 - detective-stylus@4.0.0: {} + detective-stylus@5.0.0: {} - detective-typescript@11.2.0: + detective-typescript@13.0.0(typescript@5.6.3): dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.6.3) - ast-module-types: 5.0.0 - node-source-walk: 6.0.2 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) + ast-module-types: 6.0.0 + node-source-walk: 7.0.1 + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + + detective-vue2@2.1.1(typescript@5.6.3): + dependencies: + '@dependents/detective-less': 5.0.0 + '@vue/compiler-sfc': 3.5.13 + detective-es6: 5.0.0 + detective-sass: 6.0.0 + detective-scss: 5.0.0 + detective-stylus: 5.0.0 + detective-typescript: 13.0.0(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -11722,33 +11797,14 @@ snapshots: djipevents@2.0.7: dependencies: - '@babel/runtime': 7.20.13 + '@babel/runtime': 7.25.7 dlv@1.1.3: {} - dmd@6.2.3: - dependencies: - array-back: 6.2.2 - cache-point: 2.0.0 - common-sequence: 2.0.2 - file-set: 4.0.2 - handlebars: 4.7.8 - marked: 4.3.0 - object-get: 2.1.1 - reduce-flatten: 3.0.1 - reduce-unique: 2.0.1 - reduce-without: 1.0.1 - test-value: 3.0.0 - walk-back: 5.1.1 - doctrine@2.1.0: dependencies: esutils: 2.0.3 - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dot-prop@5.3.0: dependencies: is-obj: 2.0.0 @@ -11767,12 +11823,10 @@ snapshots: dependencies: jake: 10.9.2 - ejs@3.1.8: - dependencies: - jake: 10.8.5 - electron-to-chromium@1.5.41: {} + emoji-regex-xs@1.0.0: {} + emoji-regex@10.4.0: {} emoji-regex@8.0.0: {} @@ -11793,6 +11847,11 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 + enhanced-resolve@5.18.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + enquirer@2.3.6: dependencies: ansi-colors: 4.1.3 @@ -11906,7 +11965,7 @@ snapshots: es-errors@1.3.0: {} - es-module-lexer@1.5.4: {} + es-module-lexer@1.6.0: {} es-object-atoms@1.0.0: dependencies: @@ -11948,7 +12007,7 @@ snapshots: esast-util-from-js@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 - acorn: 8.13.0 + acorn: 8.14.0 esast-util-from-estree: 2.0.0 vfile-message: 4.0.2 @@ -11978,6 +12037,34 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 + esbuild@0.24.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.2 + '@esbuild/android-arm': 0.24.2 + '@esbuild/android-arm64': 0.24.2 + '@esbuild/android-x64': 0.24.2 + '@esbuild/darwin-arm64': 0.24.2 + '@esbuild/darwin-x64': 0.24.2 + '@esbuild/freebsd-arm64': 0.24.2 + '@esbuild/freebsd-x64': 0.24.2 + '@esbuild/linux-arm': 0.24.2 + '@esbuild/linux-arm64': 0.24.2 + '@esbuild/linux-ia32': 0.24.2 + '@esbuild/linux-loong64': 0.24.2 + '@esbuild/linux-mips64el': 0.24.2 + '@esbuild/linux-ppc64': 0.24.2 + '@esbuild/linux-riscv64': 0.24.2 + '@esbuild/linux-s390x': 0.24.2 + '@esbuild/linux-x64': 0.24.2 + '@esbuild/netbsd-arm64': 0.24.2 + '@esbuild/netbsd-x64': 0.24.2 + '@esbuild/openbsd-arm64': 0.24.2 + '@esbuild/openbsd-x64': 0.24.2 + '@esbuild/sunos-x64': 0.24.2 + '@esbuild/win32-arm64': 0.24.2 + '@esbuild/win32-ia32': 0.24.2 + '@esbuild/win32-x64': 0.24.2 + escalade@3.1.1: {} escalade@3.2.0: {} @@ -12006,22 +12093,22 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): + eslint-module-utils@2.12.0(eslint-import-resolver-node@0.3.9)(eslint@9.19.0(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: - eslint: 8.57.1 + eslint: 9.19.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-es@4.1.0(eslint@9.13.0(jiti@1.21.0)): + eslint-plugin-es@4.1.0(eslint@9.19.0(jiti@2.4.2)): dependencies: - eslint: 9.13.0(jiti@1.21.0) + eslint: 9.19.0(jiti@2.4.2) eslint-utils: 2.1.0 regexpp: 3.2.0 - eslint-plugin-import@2.31.0(eslint@8.57.1): + eslint-plugin-import@2.31.0(eslint@9.19.0(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -12030,9 +12117,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.57.1 + eslint: 9.19.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) + eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint@9.19.0(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -12048,24 +12135,19 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-n@15.6.1(eslint@9.13.0(jiti@1.21.0)): + eslint-plugin-n@15.6.1(eslint@9.19.0(jiti@2.4.2)): dependencies: builtins: 5.0.1 - eslint: 9.13.0(jiti@1.21.0) - eslint-plugin-es: 4.1.0(eslint@9.13.0(jiti@1.21.0)) - eslint-utils: 3.0.0(eslint@9.13.0(jiti@1.21.0)) + eslint: 9.19.0(jiti@2.4.2) + eslint-plugin-es: 4.1.0(eslint@9.19.0(jiti@2.4.2)) + eslint-utils: 3.0.0(eslint@9.19.0(jiti@2.4.2)) ignore: 5.2.4 is-core-module: 2.15.1 minimatch: 3.1.2 resolve: 1.22.8 semver: 7.6.3 - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-scope@8.1.0: + eslint-scope@8.2.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -12074,9 +12156,9 @@ snapshots: dependencies: eslint-visitor-keys: 1.3.0 - eslint-utils@3.0.0(eslint@9.13.0(jiti@1.21.0)): + eslint-utils@3.0.0(eslint@9.19.0(jiti@2.4.2)): dependencies: - eslint: 9.13.0(jiti@1.21.0) + eslint: 9.19.0(jiti@2.4.2) eslint-visitor-keys: 2.1.0 eslint-visitor-keys@1.3.0: {} @@ -12087,71 +12169,30 @@ snapshots: eslint-visitor-keys@4.1.0: {} - eslint@8.57.1: - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) - '@eslint-community/regexpp': 4.11.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.7 - 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.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.2.4 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - 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 - transitivePeerDependencies: - - supports-color + eslint-visitor-keys@4.2.0: {} - eslint@9.13.0(jiti@1.21.0): + eslint@9.19.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.0)) - '@eslint-community/regexpp': 4.11.1 - '@eslint/config-array': 0.18.0 - '@eslint/core': 0.7.0 - '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.13.0 - '@eslint/plugin-kit': 0.2.1 - '@humanfs/node': 0.16.5 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.19.0(jiti@2.4.2)) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.19.1 + '@eslint/core': 0.10.0 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.19.0 + '@eslint/plugin-kit': 0.2.5 + '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/retry': 0.4.1 '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 debug: 4.3.7 escape-string-regexp: 4.0.0 - eslint-scope: 8.1.0 - eslint-visitor-keys: 4.1.0 - espree: 10.2.0 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -12166,23 +12207,22 @@ snapshots: minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.3 - text-table: 0.2.0 optionalDependencies: - jiti: 1.21.0 + jiti: 2.4.2 transitivePeerDependencies: - supports-color espree@10.2.0: dependencies: - acorn: 8.13.0 - acorn-jsx: 5.3.2(acorn@8.13.0) + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 4.1.0 - espree@9.6.1: + espree@10.3.0: dependencies: - acorn: 8.13.0 - acorn-jsx: 5.3.2(acorn@8.13.0) - eslint-visitor-keys: 3.4.3 + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 esprima@4.0.1: {} @@ -12231,7 +12271,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.6 esutils@2.0.3: {} @@ -12257,11 +12297,9 @@ snapshots: expand-template@2.0.3: {} - exponential-backoff@3.1.1: {} + expect-type@1.1.0: {} - extend-shallow@2.0.1: - dependencies: - is-extendable: 0.1.1 + exponential-backoff@3.1.1: {} extend@3.0.2: {} @@ -12281,14 +12319,22 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} - fast-unique-numbers@8.0.13: + fast-unique-numbers@9.0.15: dependencies: - '@babel/runtime': 7.25.7 - tslib: 2.8.0 + '@babel/runtime': 7.26.7 + tslib: 2.8.1 fast-uri@3.0.3: {} @@ -12319,52 +12365,32 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.2.0 - file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 - file-set@4.0.2: - dependencies: - array-back: 5.0.0 - glob: 7.2.3 - filelist@1.0.4: dependencies: minimatch: 5.1.6 - filing-cabinet@4.2.0: + filing-cabinet@5.0.2: dependencies: app-module-path: 2.2.0 - commander: 10.0.1 + commander: 12.1.0 enhanced-resolve: 5.17.1 - is-relative-path: 1.0.2 - module-definition: 5.0.1 - module-lookup-amd: 8.0.5 + module-definition: 6.0.0 + module-lookup-amd: 9.0.2 resolve: 1.22.8 - resolve-dependency-path: 3.0.2 - sass-lookup: 5.0.1 - stylus-lookup: 5.0.1 + resolve-dependency-path: 4.0.0 + sass-lookup: 6.1.0 + stylus-lookup: 6.1.0 tsconfig-paths: 4.2.0 typescript: 5.6.3 - fill-range@7.0.1: - dependencies: - to-regex-range: 5.0.1 - fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 - find-replace@3.0.0: - dependencies: - array-back: 3.1.0 - - find-replace@5.0.2: {} - find-up-simple@1.0.0: {} find-up@2.1.0: @@ -12386,12 +12412,6 @@ snapshots: micromatch: 4.0.8 pkg-dir: 4.2.0 - flat-cache@3.2.0: - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - rimraf: 3.0.2 - flat-cache@4.0.1: dependencies: flatted: 3.3.1 @@ -12401,6 +12421,8 @@ snapshots: flatted@3.3.1: {} + flatted@3.3.2: {} + flattie@1.1.1: {} follow-redirects@1.15.2: {} @@ -12426,6 +12448,8 @@ snapshots: fraction.js@4.3.7: {} + fraction.js@5.2.1: {} + from2@2.3.0: dependencies: inherits: 2.0.4 @@ -12454,8 +12478,6 @@ snapshots: dependencies: minipass: 7.1.2 - fs-then-native@2.0.0: {} - fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -12474,10 +12496,10 @@ snapshots: gensync@1.0.0-beta.2: {} - get-amd-module-type@5.0.1: + get-amd-module-type@6.0.0: dependencies: - ast-module-types: 5.0.0 - node-source-walk: 6.0.2 + ast-module-types: 6.0.0 + node-source-walk: 7.0.1 get-caller-file@2.0.5: {} @@ -12585,15 +12607,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@7.1.6: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -12608,16 +12621,14 @@ snapshots: fs.realpath: 1.0.0 minimatch: 8.0.4 minipass: 4.2.8 - path-scurry: 1.7.0 + path-scurry: 1.11.1 globals@11.12.0: {} - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - globals@14.0.0: {} + globals@15.14.0: {} + globalthis@1.0.3: dependencies: define-properties: 1.2.1 @@ -12673,14 +12684,18 @@ snapshots: graceful-fs@4.2.11: {} - graphemer@1.4.0: {} - - gray-matter@4.0.3: + h3@1.14.0: dependencies: - js-yaml: 3.14.1 - kind-of: 6.0.3 - section-matter: 1.0.0 - strip-bom-string: 1.0.0 + cookie-es: 1.2.2 + crossws: 0.3.3 + defu: 6.1.4 + destr: 2.0.3 + iron-webcrypto: 1.2.1 + ohash: 1.1.4 + radix3: 1.1.2 + ufo: 1.5.4 + uncrypto: 0.1.3 + unenv: 1.10.0 handlebars@4.7.8: dependencies: @@ -12802,7 +12817,7 @@ snapshots: transitivePeerDependencies: - supports-color - hast-util-to-html@9.0.3: + hast-util-to-html@9.0.4: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 @@ -12879,7 +12894,7 @@ snapshots: dependencies: lru-cache: 10.4.3 - hs2js@0.0.8: + hs2js@0.1.0: dependencies: web-tree-sitter: 0.20.8 @@ -13022,6 +13037,8 @@ snapshots: jsbn: 1.1.0 sprintf-js: 1.1.3 + iron-webcrypto@1.2.1: {} + is-alphabetical@2.0.1: {} is-alphanumerical@2.0.1: @@ -13057,8 +13074,6 @@ snapshots: call-bind: 1.0.5 has-tostringtag: 1.0.2 - is-buffer@2.0.5: {} - is-callable@1.2.7: {} is-ci@3.0.1: @@ -13087,8 +13102,6 @@ snapshots: is-docker@3.0.0: {} - is-extendable@0.1.1: {} - is-extglob@2.1.1: {} is-fullwidth-code-point@2.0.0: {} @@ -13107,8 +13120,6 @@ snapshots: is-interactive@1.0.0: {} - is-interactive@2.0.0: {} - is-lambda@1.0.1: {} is-module@1.0.0: {} @@ -13127,8 +13138,6 @@ snapshots: is-obj@2.0.0: {} - is-path-inside@3.0.3: {} - is-plain-obj@1.1.0: {} is-plain-obj@4.1.0: {} @@ -13146,8 +13155,6 @@ snapshots: is-regexp@1.0.0: {} - is-relative-path@1.0.2: {} - is-shared-array-buffer@1.0.2: dependencies: call-bind: 1.0.5 @@ -13186,10 +13193,6 @@ snapshots: is-unicode-supported@0.1.0: {} - is-unicode-supported@1.3.0: {} - - is-unicode-supported@2.1.0: {} - is-url-superb@4.0.0: {} is-url@1.2.4: {} @@ -13224,13 +13227,6 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jake@10.8.5: - dependencies: - async: 3.2.4 - chalk: 4.1.2 - filelist: 1.0.4 - minimatch: 3.1.2 - jake@10.9.2: dependencies: async: 3.2.6 @@ -13251,11 +13247,13 @@ snapshots: jest-worker@26.6.2: dependencies: - '@types/node': 20.16.12 + '@types/node': 22.12.0 merge-stream: 2.0.0 supports-color: 7.2.0 - jiti@1.21.0: {} + jiti@1.21.7: {} + + jiti@2.4.2: {} js-tokens@4.0.0: {} @@ -13274,44 +13272,11 @@ snapshots: jsbn@1.1.0: {} - jsdoc-api@8.1.1: - dependencies: - array-back: 6.2.2 - cache-point: 2.0.0 - collect-all: 1.0.4 - file-set: 4.0.2 - fs-then-native: 2.0.0 - jsdoc: 4.0.3 - object-to-spawn-args: 2.0.1 - temp-path: 1.0.0 - walk-back: 5.1.1 - jsdoc-json@2.0.2: {} - jsdoc-parse@6.2.4: + jsdoc@4.0.4: dependencies: - array-back: 6.2.2 - find-replace: 5.0.2 - lodash.omit: 4.5.0 - sort-array: 5.0.0 - transitivePeerDependencies: - - '@75lb/nature' - - jsdoc-to-markdown@8.0.3: - dependencies: - array-back: 6.2.2 - command-line-tool: 0.8.0 - config-master: 3.1.0 - dmd: 6.2.3 - jsdoc-api: 8.1.1 - jsdoc-parse: 6.2.4 - walk-back: 5.1.1 - transitivePeerDependencies: - - '@75lb/nature' - - jsdoc@4.0.3: - dependencies: - '@babel/parser': 7.21.4 + '@babel/parser': 7.25.8 '@jsdoc/salty': 0.2.3 '@types/markdown-it': 14.1.2 bluebird: 3.7.2 @@ -13321,7 +13286,7 @@ snapshots: klaw: 3.0.0 markdown-it: 14.1.0 markdown-it-anchor: 8.6.7(@types/markdown-it@14.1.2)(markdown-it@14.1.0) - marked: 4.2.12 + marked: 4.3.0 mkdirp: 1.0.4 requizzle: 0.2.4 strip-json-comments: 3.1.1 @@ -13386,15 +13351,15 @@ snapshots: klaw@3.0.0: dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 kleur@3.0.3: {} kleur@4.1.5: {} - lerna@8.1.8(encoding@0.1.13): + lerna@8.1.9(encoding@0.1.13): dependencies: - '@lerna/create': 8.1.8(encoding@0.1.13)(typescript@5.3.3) + '@lerna/create': 8.1.9(encoding@0.1.13)(typescript@5.6.3) '@npmcli/arborist': 7.5.4 '@npmcli/package-json': 5.2.0 '@npmcli/run-script': 8.1.0 @@ -13412,7 +13377,7 @@ snapshots: conventional-changelog-angular: 7.0.0 conventional-changelog-core: 5.0.1 conventional-recommended-bump: 7.0.1 - cosmiconfig: 8.3.6(typescript@5.3.3) + cosmiconfig: 9.0.0(typescript@5.6.3) dedent: 1.5.3 envinfo: 7.13.0 execa: 5.0.0 @@ -13455,7 +13420,7 @@ snapshots: read-cmd-shim: 4.0.0 resolve-from: 5.0.0 rimraf: 4.4.1 - semver: 7.5.4 + semver: 7.6.3 set-blocking: 2.0.0 signal-exit: 3.0.7 slash: 3.0.0 @@ -13465,7 +13430,7 @@ snapshots: strong-log-transformer: 2.1.0 tar: 6.2.1 temp-dir: 1.0.0 - typescript: 5.3.3 + typescript: 5.6.3 upath: 2.0.1 uuid: 10.0.0 validate-npm-package-license: 3.0.4 @@ -13511,10 +13476,55 @@ snapshots: transitivePeerDependencies: - supports-color - lilconfig@2.1.0: {} + lightningcss-darwin-arm64@1.29.1: + optional: true + + lightningcss-darwin-x64@1.29.1: + optional: true + + lightningcss-freebsd-x64@1.29.1: + optional: true + + lightningcss-linux-arm-gnueabihf@1.29.1: + optional: true + + lightningcss-linux-arm64-gnu@1.29.1: + optional: true + + lightningcss-linux-arm64-musl@1.29.1: + optional: true + + lightningcss-linux-x64-gnu@1.29.1: + optional: true + + lightningcss-linux-x64-musl@1.29.1: + optional: true + + lightningcss-win32-arm64-msvc@1.29.1: + optional: true + + lightningcss-win32-x64-msvc@1.29.1: + optional: true + + lightningcss@1.29.1: + dependencies: + detect-libc: 1.0.3 + optionalDependencies: + lightningcss-darwin-arm64: 1.29.1 + lightningcss-darwin-x64: 1.29.1 + lightningcss-freebsd-x64: 1.29.1 + lightningcss-linux-arm-gnueabihf: 1.29.1 + lightningcss-linux-arm64-gnu: 1.29.1 + lightningcss-linux-arm64-musl: 1.29.1 + lightningcss-linux-x64-gnu: 1.29.1 + lightningcss-linux-x64-musl: 1.29.1 + lightningcss-win32-arm64-msvc: 1.29.1 + lightningcss-win32-x64-msvc: 1.29.1 lilconfig@3.0.0: {} + lilconfig@3.1.3: {} + lines-and-columns@1.2.4: {} lines-and-columns@2.0.3: {} @@ -13559,8 +13569,6 @@ snapshots: dependencies: p-locate: 5.0.0 - lodash.camelcase@4.3.0: {} - lodash.castarray@4.4.0: {} lodash.debounce@4.0.8: {} @@ -13571,10 +13579,6 @@ snapshots: lodash.merge@4.6.2: {} - lodash.omit@4.5.0: {} - - lodash.padend@4.6.1: {} - lodash.sortby@4.7.0: {} lodash@4.17.21: {} @@ -13584,17 +13588,8 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 - log-symbols@6.0.0: - dependencies: - chalk: 5.3.0 - is-unicode-supported: 1.3.0 - longest-streak@3.1.0: {} - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - loupe@3.1.2: {} lru-cache@10.4.3: {} @@ -13607,8 +13602,6 @@ snapshots: dependencies: yallist: 4.0.0 - lru-cache@9.1.1: {} - magic-string@0.25.9: dependencies: sourcemap-codec: 1.4.8 @@ -13617,6 +13610,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + magicast@0.3.5: dependencies: '@babel/parser': 7.25.8 @@ -13671,8 +13668,6 @@ snapshots: markdown-table@3.0.3: {} - marked@4.2.12: {} - marked@4.3.0: {} mdast-util-definitions@6.0.0: @@ -14002,8 +13997,8 @@ snapshots: micromark-extension-mdxjs@3.0.0: dependencies: - acorn: 8.13.0 - acorn-jsx: 5.3.2(acorn@8.13.0) + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) micromark-extension-mdx-expression: 3.0.0 micromark-extension-mdx-jsx: 3.0.1 micromark-extension-mdx-md: 2.0.0 @@ -14148,11 +14143,6 @@ snapshots: transitivePeerDependencies: - supports-color - micromatch@4.0.5: - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -14164,9 +14154,9 @@ snapshots: dependencies: mime-db: 1.52.0 - mimic-fn@2.1.0: {} + mime@3.0.0: {} - mimic-function@5.0.1: {} + mimic-fn@2.1.0: {} mimic-response@3.1.0: {} @@ -14245,20 +14235,18 @@ snapshots: mkdirp-classic@0.5.3: {} - mkdirp2@1.0.5: {} - mkdirp@1.0.4: {} modify-values@1.0.1: {} - module-definition@5.0.1: + module-definition@6.0.0: dependencies: - ast-module-types: 5.0.0 - node-source-walk: 6.0.2 + ast-module-types: 6.0.0 + node-source-walk: 7.0.1 - module-lookup-amd@8.0.5: + module-lookup-amd@9.0.2: dependencies: - commander: 10.0.1 + commander: 12.1.0 glob: 7.2.3 requirejs: 2.3.7 requirejs-config-file: 4.0.0 @@ -14294,9 +14282,11 @@ snapshots: nanoid@3.3.7: {} - nanoid@5.0.7: {} + nanoid@3.3.8: {} - nanostores@0.9.5: {} + nanoid@5.0.9: {} + + nanostores@0.11.3: {} napi-build-utils@1.0.2: {} @@ -14308,10 +14298,6 @@ snapshots: neotraverse@0.6.18: {} - nlcst-to-string@3.1.1: - dependencies: - '@types/nlcst': 1.0.4 - nlcst-to-string@4.0.0: dependencies: '@types/nlcst': 2.0.3 @@ -14320,12 +14306,15 @@ snapshots: dependencies: semver: 7.6.3 - node-addon-api@8.0.0: {} + node-addon-api@8.2.1: + optional: true - node-addon-api@8.2.1: {} + node-addon-api@8.3.0: {} node-domexception@1.0.0: {} + node-fetch-native@1.6.6: {} + node-fetch@2.6.7(encoding@0.1.13): dependencies: whatwg-url: 5.0.0 @@ -14367,9 +14356,9 @@ snapshots: node-releases@2.0.18: {} - node-source-walk@6.0.2: + node-source-walk@7.0.1: dependencies: - '@babel/parser': 7.25.8 + '@babel/parser': 7.26.7 nopt@7.2.1: dependencies: @@ -14496,8 +14485,6 @@ snapshots: object-assign@4.1.1: {} - object-get@2.1.1: {} - object-hash@3.0.0: {} object-inspect@1.13.1: {} @@ -14506,8 +14493,6 @@ snapshots: object-keys@1.1.1: {} - object-to-spawn-args@2.0.1: {} - object.assign@4.1.4: dependencies: call-bind: 1.0.5 @@ -14541,6 +14526,14 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 + ofetch@1.4.1: + dependencies: + destr: 2.0.3 + node-fetch-native: 1.6.6 + ufo: 1.5.4 + + ohash@1.1.4: {} + once@1.4.0: dependencies: wrappy: 1.0.2 @@ -14549,13 +14542,11 @@ snapshots: dependencies: mimic-fn: 2.1.0 - onetime@7.0.0: + oniguruma-to-es@2.3.0: dependencies: - mimic-function: 5.0.1 - - oniguruma-to-js@0.4.3: - dependencies: - regex: 4.3.3 + emoji-regex-xs: 1.0.0 + regex: 5.1.1 + regex-recursion: 5.1.1 open@8.4.0: dependencies: @@ -14577,25 +14568,13 @@ snapshots: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.9.1 + cli-spinners: 2.9.2 is-interactive: 1.0.0 is-unicode-supported: 0.1.0 log-symbols: 4.1.0 strip-ansi: 6.0.1 wcwidth: 1.0.1 - ora@8.1.0: - dependencies: - chalk: 5.3.0 - cli-cursor: 5.0.0 - cli-spinners: 2.9.2 - is-interactive: 2.0.0 - is-unicode-supported: 2.1.0 - log-symbols: 6.0.0 - stdin-discarder: 0.2.2 - string-width: 7.2.0 - strip-ansi: 7.1.0 - os-tmpdir@1.0.2: {} osc-js@2.4.1: @@ -14621,7 +14600,7 @@ snapshots: dependencies: yocto-queue: 0.1.0 - p-limit@6.1.0: + p-limit@6.2.0: dependencies: yocto-queue: 1.1.1 @@ -14696,6 +14675,8 @@ snapshots: - bluebird - supports-color + paho-mqtt@1.1.0: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -14724,17 +14705,11 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.25.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse-latin@5.0.1: - dependencies: - nlcst-to-string: 3.1.1 - unist-util-modify-children: 3.1.1 - unist-util-visit-children: 2.0.2 - parse-latin@7.0.0: dependencies: '@types/nlcst': 2.0.3 @@ -14773,11 +14748,6 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-scurry@1.7.0: - dependencies: - lru-cache: 9.1.1 - minipass: 5.0.0 - path-type@3.0.0: dependencies: pify: 3.0.0 @@ -14786,17 +14756,18 @@ snapshots: pathe@1.1.2: {} + pathe@2.0.2: {} + pathval@2.0.0: {} - peggy@3.0.2: + peggy@4.2.0: dependencies: - commander: 10.0.1 + '@peggyjs/from-mem': 1.3.5 + commander: 12.1.0 source-map-generator: 0.8.0 performance-now@2.1.0: {} - picocolors@1.0.0: {} - picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -14853,24 +14824,17 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-import@15.1.0(postcss@8.4.32): + postcss-import@15.1.0(postcss@8.4.47): dependencies: - postcss: 8.4.32 + postcss: 8.4.47 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.32): + postcss-js@4.0.1(postcss@8.4.47): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.32 - - postcss-load-config@4.0.2(postcss@8.4.32): - dependencies: - lilconfig: 3.0.0 - yaml: 2.3.4 - optionalDependencies: - postcss: 8.4.32 + postcss: 8.4.47 postcss-load-config@4.0.2(postcss@8.4.47): dependencies: @@ -14879,21 +14843,23 @@ snapshots: optionalDependencies: postcss: 8.4.47 - postcss-nested@6.0.1(postcss@8.4.32): + postcss-load-config@4.0.2(postcss@8.5.1): dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.11 + lilconfig: 3.0.0 + yaml: 2.3.4 + optionalDependencies: + postcss: 8.5.1 + + postcss-nested@6.2.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 postcss-selector-parser@6.0.10: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@6.0.11: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 @@ -14908,15 +14874,15 @@ snapshots: postcss: 8.4.47 quote-unquote: 1.0.0 - postcss@8.4.32: + postcss@8.4.47: dependencies: nanoid: 3.3.7 picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.4.47: + postcss@8.5.1: dependencies: - nanoid: 3.3.7 + nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -14935,20 +14901,23 @@ snapshots: tar-fs: 2.1.1 tunnel-agent: 0.6.0 - precinct@11.0.5: + precinct@12.1.2: dependencies: - '@dependents/detective-less': 4.1.0 - commander: 10.0.1 - detective-amd: 5.0.2 - detective-cjs: 5.0.1 - detective-es6: 4.0.1 - detective-postcss: 6.1.3 - detective-sass: 5.0.3 - detective-scss: 4.0.3 - detective-stylus: 4.0.0 - detective-typescript: 11.2.0 - module-definition: 5.0.1 - node-source-walk: 6.0.2 + '@dependents/detective-less': 5.0.0 + commander: 12.1.0 + detective-amd: 6.0.0 + detective-cjs: 6.0.0 + detective-es6: 5.0.0 + detective-postcss: 7.0.0(postcss@8.4.47) + detective-sass: 6.0.0 + detective-scss: 5.0.0 + detective-stylus: 5.0.0 + detective-typescript: 13.0.0(typescript@5.6.3) + detective-vue2: 2.1.1(typescript@5.6.3) + module-definition: 6.0.0 + node-source-walk: 7.0.1 + postcss: 8.4.47 + typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -14960,7 +14929,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier@3.3.3: {} + prettier@3.4.2: {} pretty-bytes@5.6.0: {} @@ -15023,6 +14992,8 @@ snapshots: quote-unquote@1.0.0: {} + radix3@1.1.2: {} + raf-loop@1.1.3: dependencies: events: 1.1.1 @@ -15047,29 +15018,26 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-dom@18.3.1(react@18.3.1): + react-dom@19.0.0(react@19.0.0): dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 + react: 19.0.0 + scheduler: 0.25.0 - react-hook-inview@4.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-hook-inview@4.5.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) react-is@18.3.1: {} - react-lite-youtube-embed@2.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-lite-youtube-embed@2.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) react-refresh@0.14.2: {} - react@18.3.1: - dependencies: - loose-envify: 1.4.0 + react@19.0.0: {} read-cache@1.0.0: dependencies: @@ -15143,9 +15111,9 @@ snapshots: estree-util-build-jsx: 3.0.1 vfile: 6.0.3 - recma-jsx@1.0.0(acorn@8.13.0): + recma-jsx@1.0.0(acorn@8.14.0): dependencies: - acorn-jsx: 5.3.2(acorn@8.13.0) + acorn-jsx: 5.3.2(acorn@8.14.0) estree-util-to-js: 2.0.0 recma-parse: 1.0.0 recma-stringify: 1.0.0 @@ -15172,31 +15140,28 @@ snapshots: indent-string: 4.0.0 strip-indent: 3.0.0 - reduce-flatten@1.0.1: {} - - reduce-flatten@3.0.1: {} - - reduce-unique@2.0.1: {} - - reduce-without@1.0.1: - dependencies: - test-value: 2.1.0 - regenerate-unicode-properties@10.2.0: dependencies: regenerate: 1.4.2 regenerate@1.4.2: {} - regenerator-runtime@0.13.11: {} - regenerator-runtime@0.14.1: {} regenerator-transform@0.15.2: dependencies: '@babel/runtime': 7.25.7 - regex@4.3.3: {} + regex-recursion@5.1.1: + dependencies: + regex: 5.1.1 + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@5.1.1: + dependencies: + regex-utilities: 2.3.0 regexp.prototype.flags@1.5.1: dependencies: @@ -15270,7 +15235,7 @@ snapshots: rehype-stringify@10.0.1: dependencies: '@types/hast': 3.0.4 - hast-util-to-html: 9.0.3 + hast-util-to-html: 9.0.4 unified: 11.0.5 rehype-urls@1.2.0: @@ -15321,12 +15286,6 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 - remark-smartypants@2.1.0: - dependencies: - retext: 8.1.0 - retext-smartypants: 5.2.0 - unist-util-visit: 5.0.0 - remark-smartypants@3.0.2: dependencies: retext: 9.0.0 @@ -15370,7 +15329,7 @@ snapshots: dependencies: resolve-from: 5.0.0 - resolve-dependency-path@3.0.2: {} + resolve-dependency-path@4.0.0: {} resolve-from@4.0.0: {} @@ -15393,56 +15352,24 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - restore-cursor@5.1.0: - dependencies: - onetime: 7.0.0 - signal-exit: 4.1.0 - - retext-latin@3.1.0: - dependencies: - '@types/nlcst': 1.0.4 - parse-latin: 5.0.1 - unherit: 3.0.1 - unified: 10.1.2 - retext-latin@4.0.0: dependencies: '@types/nlcst': 2.0.3 parse-latin: 7.0.0 unified: 11.0.5 - retext-smartypants@5.2.0: - dependencies: - '@types/nlcst': 1.0.4 - nlcst-to-string: 3.1.1 - unified: 10.1.2 - unist-util-visit: 4.1.2 - retext-smartypants@6.2.0: dependencies: '@types/nlcst': 2.0.3 nlcst-to-string: 4.0.0 unist-util-visit: 5.0.0 - retext-stringify@3.1.0: - dependencies: - '@types/nlcst': 1.0.4 - nlcst-to-string: 3.1.1 - unified: 10.1.2 - retext-stringify@4.0.0: dependencies: '@types/nlcst': 2.0.3 nlcst-to-string: 4.0.0 unified: 11.0.5 - retext@8.1.0: - dependencies: - '@types/nlcst': 1.0.4 - retext-latin: 3.1.0 - retext-stringify: 3.1.0 - unified: 10.1.2 - retext@9.0.0: dependencies: '@types/nlcst': 2.0.3 @@ -15472,15 +15399,6 @@ snapshots: serialize-javascript: 4.0.0 terser: 5.36.0 - rollup-plugin-visualizer@5.12.0(rollup@4.24.0): - dependencies: - open: 8.4.0 - picomatch: 2.3.1 - source-map: 0.7.4 - yargs: 17.7.2 - optionalDependencies: - rollup: 4.24.0 - rollup@2.79.2: optionalDependencies: fsevents: 2.3.3 @@ -15549,21 +15467,15 @@ snapshots: safer-buffer@2.1.2: {} - sass-lookup@5.0.1: + sass-lookup@6.1.0: dependencies: - commander: 10.0.1 + commander: 12.1.0 + enhanced-resolve: 5.18.0 - scheduler@0.23.2: - dependencies: - loose-envify: 1.4.0 + scheduler@0.25.0: {} search-insights@2.13.0: {} - section-matter@1.0.0: - dependencies: - extend-shallow: 2.0.1 - kind-of: 6.0.3 - semver@5.7.2: {} semver@6.3.1: {} @@ -15572,10 +15484,6 @@ snapshots: dependencies: lru-cache: 6.0.0 - semver@7.5.4: - dependencies: - lru-cache: 6.0.0 - semver@7.6.3: {} serialize-javascript@4.0.0: @@ -15653,13 +15561,15 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.22.0: + shiki@1.29.2: dependencies: - '@shikijs/core': 1.22.0 - '@shikijs/engine-javascript': 1.22.0 - '@shikijs/engine-oniguruma': 1.22.0 - '@shikijs/types': 1.22.0 - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/core': 1.29.2 + '@shikijs/engine-javascript': 1.29.2 + '@shikijs/engine-oniguruma': 1.29.2 + '@shikijs/langs': 1.29.2 + '@shikijs/themes': 1.29.2 + '@shikijs/types': 1.29.2 + '@shikijs/vscode-textmate': 10.0.1 '@types/hast': 3.0.4 side-channel@1.0.4: @@ -15704,7 +15614,7 @@ snapshots: dependencies: is-arrayish: 0.3.2 - sirv@2.0.4: + sirv@3.0.0: dependencies: '@polka/url': 1.0.0-next.28 mrmime: 2.0.0 @@ -15716,6 +15626,8 @@ snapshots: smart-buffer@4.2.0: {} + smol-toml@1.3.1: {} + socks-proxy-agent@8.0.4: dependencies: agent-base: 7.1.1 @@ -15729,17 +15641,14 @@ snapshots: ip-address: 9.0.5 smart-buffer: 4.2.0 - sort-array@5.0.0: - dependencies: - array-back: 6.2.2 - typical: 7.2.0 - sort-keys@2.0.0: dependencies: is-plain-obj: 1.1.0 soundfont2@0.4.0: {} + soundfont2@0.5.0: {} + source-map-generator@0.8.0: {} source-map-js@1.2.1: {} @@ -15801,18 +15710,12 @@ snapshots: automation-events: 5.0.0 tslib: 2.8.0 - std-env@3.7.0: {} - - stdin-discarder@0.2.2: {} + std-env@3.8.0: {} stdopt@2.2.0: dependencies: is-arrayish: 0.3.2 - stream-connect@1.0.2: - dependencies: - array-back: 1.0.4 - stream-meter@1.0.4: dependencies: readable-stream: 2.3.7 @@ -15823,9 +15726,7 @@ snapshots: transitivePeerDependencies: - supports-color - stream-transform@3.3.2: {} - - stream-via@1.0.4: {} + stream-transform@3.3.3: {} string-width@2.1.1: dependencies: @@ -15929,8 +15830,6 @@ snapshots: dependencies: ansi-regex: 6.1.0 - strip-bom-string@1.0.0: {} - strip-bom@3.0.0: {} strip-bom@4.0.0: {} @@ -15955,8 +15854,6 @@ snapshots: minimist: 1.2.8 through: 2.3.8 - style-mod@4.0.0: {} - style-mod@4.1.0: {} style-to-object@0.4.4: @@ -15967,15 +15864,15 @@ snapshots: dependencies: inline-style-parser: 0.2.4 - stylus-lookup@5.0.1: + stylus-lookup@6.1.0: dependencies: - commander: 10.0.1 + commander: 12.1.0 - sucrase@3.32.0: + sucrase@3.35.0: dependencies: - '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 - glob: 7.1.6 + glob: 10.4.5 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.5 @@ -15991,41 +15888,37 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - table-layout@0.4.5: - dependencies: - array-back: 2.0.0 - deep-extend: 0.6.0 - lodash.padend: 4.6.1 - typical: 2.6.1 - wordwrapjs: 3.0.0 + tabbable@6.2.0: {} - tailwindcss@3.4.14: + tailwindcss@3.4.17: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 - chokidar: 3.5.3 + chokidar: 3.6.0 didyoumean: 1.2.2 dlv: 1.1.3 fast-glob: 3.3.2 glob-parent: 6.0.2 is-glob: 4.0.3 - jiti: 1.21.0 - lilconfig: 2.1.0 - micromatch: 4.0.5 + jiti: 1.21.7 + lilconfig: 3.1.3 + micromatch: 4.0.8 normalize-path: 3.0.0 object-hash: 3.0.0 - picocolors: 1.0.0 - postcss: 8.4.32 - postcss-import: 15.1.0(postcss@8.4.32) - postcss-js: 4.0.1(postcss@8.4.32) - postcss-load-config: 4.0.2(postcss@8.4.32) - postcss-nested: 6.0.1(postcss@8.4.32) - postcss-selector-parser: 6.0.11 + picocolors: 1.1.1 + postcss: 8.4.47 + postcss-import: 15.1.0(postcss@8.4.47) + postcss-js: 4.0.1(postcss@8.4.47) + postcss-load-config: 4.0.2(postcss@8.4.47) + postcss-nested: 6.2.0(postcss@8.4.47) + postcss-selector-parser: 6.1.2 resolve: 1.22.8 - sucrase: 3.32.0 + sucrase: 3.35.0 transitivePeerDependencies: - ts-node + tailwindcss@4.0.1: {} + tapable@2.2.1: {} tar-fs@2.1.1: @@ -16056,8 +15949,6 @@ snapshots: temp-dir@2.0.0: {} - temp-path@1.0.0: {} - tempy@0.6.0: dependencies: is-stream: 2.0.1 @@ -16068,26 +15959,14 @@ snapshots: terser@5.36.0: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.13.0 + acorn: 8.14.0 commander: 2.20.3 source-map-support: 0.5.21 - test-value@2.1.0: - dependencies: - array-back: 1.0.4 - typical: 2.6.1 - - test-value@3.0.0: - dependencies: - array-back: 2.0.0 - typical: 2.6.1 - text-encoding-shim@1.0.5: {} text-extensions@1.9.0: {} - text-table@0.2.0: {} - thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -16105,16 +15984,16 @@ snapshots: tinybench@2.9.0: {} - tinyexec@0.3.1: {} + tinyexec@0.3.2: {} - tinyglobby@0.2.9: + tinyglobby@0.2.10: dependencies: fdir: 6.4.2(picomatch@4.0.2) picomatch: 4.0.2 - tinypool@1.0.1: {} + tinypool@1.0.2: {} - tinyrainbow@1.2.0: {} + tinyrainbow@2.0.0: {} tinyspy@3.0.2: {} @@ -16140,16 +16019,18 @@ snapshots: dependencies: punycode: 2.3.1 - tree-sitter-haskell@0.21.0(tree-sitter@0.21.1): + tree-sitter-haskell@0.23.1(tree-sitter@0.21.1): dependencies: - node-addon-api: 8.0.0 + node-addon-api: 8.3.0 node-gyp-build: 4.8.2 + optionalDependencies: tree-sitter: 0.21.1 tree-sitter@0.21.1: dependencies: node-addon-api: 8.2.1 node-gyp-build: 4.8.2 + optional: true treeverse@3.0.0: {} @@ -16159,6 +16040,10 @@ snapshots: trough@2.2.0: {} + ts-api-utils@1.4.3(typescript@5.6.3): + dependencies: + typescript: 5.6.3 + ts-interface-checker@0.1.13: {} tsconfck@3.1.4(typescript@5.6.3): @@ -16178,14 +16063,9 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tslib@1.14.1: {} - tslib@2.8.0: {} - tsutils@3.21.0(typescript@5.6.3): - dependencies: - tslib: 1.14.1 - typescript: 5.6.3 + tslib@2.8.1: {} tuf-js@2.2.1: dependencies: @@ -16207,8 +16087,6 @@ snapshots: type-fest@0.18.1: {} - type-fest@0.20.2: {} - type-fest@0.21.3: {} type-fest@0.4.1: {} @@ -16280,18 +16158,12 @@ snapshots: typedarray@0.0.6: {} - typescript@5.3.3: {} - typescript@5.6.3: {} - typical@2.6.1: {} - - typical@4.0.0: {} - - typical@7.2.0: {} - uc.micro@2.1.0: {} + ufo@1.5.4: {} + uglify-js@3.19.3: optional: true @@ -16304,11 +16176,19 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + uncrypto@0.1.3: {} + underscore@1.13.6: {} - undici-types@6.19.8: {} + undici-types@6.20.0: {} - unherit@3.0.1: {} + unenv@1.10.0: + dependencies: + consola: 3.4.0 + defu: 6.1.4 + mime: 3.0.0 + node-fetch-native: 1.6.6 + pathe: 1.1.2 unicode-canonical-property-names-ecmascript@2.0.1: {} @@ -16321,16 +16201,6 @@ snapshots: unicode-property-aliases-ecmascript@2.1.0: {} - unified@10.1.2: - dependencies: - '@types/unist': 2.0.11 - bail: 2.0.2 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 4.1.0 - trough: 2.2.0 - vfile: 5.3.7 - unified@11.0.4: dependencies: '@types/unist': 3.0.3 @@ -16370,19 +16240,10 @@ snapshots: unist-util-is@3.0.0: {} - unist-util-is@5.2.1: - dependencies: - '@types/unist': 2.0.11 - unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.1 - unist-util-modify-children@3.1.1: - dependencies: - '@types/unist': 2.0.11 - array-iterate: 2.0.1 - unist-util-modify-children@4.0.0: dependencies: '@types/unist': 3.0.3 @@ -16401,18 +16262,10 @@ snapshots: '@types/unist': 3.0.3 unist-util-visit: 5.0.0 - unist-util-stringify-position@3.0.3: - dependencies: - '@types/unist': 2.0.11 - unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 - unist-util-visit-children@2.0.2: - dependencies: - '@types/unist': 2.0.11 - unist-util-visit-children@3.0.0: dependencies: '@types/unist': 3.0.3 @@ -16421,11 +16274,6 @@ snapshots: dependencies: unist-util-is: 3.0.0 - unist-util-visit-parents@5.1.3: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 5.2.1 - unist-util-visit-parents@6.0.1: dependencies: '@types/unist': 3.0.3 @@ -16435,12 +16283,6 @@ snapshots: dependencies: unist-util-visit-parents: 2.1.2 - unist-util-visit@4.1.2: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 5.2.1 - unist-util-visit-parents: 5.1.3 - unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.3 @@ -16455,6 +16297,17 @@ snapshots: unmute-ios-audio@3.3.0: {} + unstorage@1.14.4: + dependencies: + anymatch: 3.1.3 + chokidar: 3.6.0 + destr: 2.0.3 + h3: 1.14.0 + lru-cache: 10.4.3 + node-fetch-native: 1.6.6 + ofetch: 1.4.1 + ufo: 1.5.4 + upath@1.2.0: {} upath@2.0.1: {} @@ -16485,23 +16338,11 @@ snapshots: '@types/unist': 3.0.3 vfile: 6.0.3 - vfile-message@3.1.4: - dependencies: - '@types/unist': 2.0.11 - unist-util-stringify-position: 3.0.3 - vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 - vfile@5.3.7: - dependencies: - '@types/unist': 2.0.11 - is-buffer: 2.0.5 - unist-util-stringify-position: 3.0.3 - vfile-message: 3.1.4 - vfile@6.0.3: dependencies: '@types/unist': 3.0.3 @@ -16520,12 +16361,13 @@ snapshots: remove-trailing-separator: 1.1.0 replace-ext: 1.0.1 - vite-node@2.1.3(@types/node@22.7.6)(terser@5.36.0): + vite-node@3.0.4(@types/node@22.12.0)(lightningcss@1.29.1)(terser@5.36.0): dependencies: cac: 6.7.14 - debug: 4.3.7 - pathe: 1.1.2 - vite: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + debug: 4.4.0 + es-module-lexer: 1.6.0 + pathe: 2.0.2 + vite: 5.4.9(@types/node@22.12.0)(lightningcss@1.29.1)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - less @@ -16537,65 +16379,69 @@ snapshots: - supports-color - terser - vite-plugin-pwa@0.17.5(vite@5.4.9(@types/node@20.16.12)(terser@5.36.0))(workbox-build@7.0.0(@types/babel__core@7.20.5))(workbox-window@7.1.0): + vite-plugin-pwa@0.17.5(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0))(workbox-build@7.0.0(@types/babel__core@7.20.5))(workbox-window@7.3.0): dependencies: debug: 4.3.7 fast-glob: 3.3.2 pretty-bytes: 6.1.1 - vite: 5.4.9(@types/node@20.16.12)(terser@5.36.0) + vite: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) workbox-build: 7.0.0(@types/babel__core@7.20.5) - workbox-window: 7.1.0 + workbox-window: 7.3.0 transitivePeerDependencies: - supports-color - vite@5.4.9(@types/node@20.16.12)(terser@5.36.0): + vite@5.4.9(@types/node@22.12.0)(lightningcss@1.29.1)(terser@5.36.0): dependencies: esbuild: 0.21.5 postcss: 8.4.47 rollup: 4.24.0 optionalDependencies: - '@types/node': 20.16.12 + '@types/node': 22.12.0 fsevents: 2.3.3 + lightningcss: 1.29.1 terser: 5.36.0 - vite@5.4.9(@types/node@22.7.6)(terser@5.36.0): + vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0): dependencies: - esbuild: 0.21.5 - postcss: 8.4.47 + esbuild: 0.24.2 + postcss: 8.5.1 rollup: 4.24.0 optionalDependencies: - '@types/node': 22.7.6 + '@types/node': 22.12.0 fsevents: 2.3.3 + jiti: 2.4.2 + lightningcss: 1.29.1 terser: 5.36.0 - vitefu@1.0.3(vite@5.4.9(@types/node@20.16.12)(terser@5.36.0)): + vitefu@1.0.5(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0)): optionalDependencies: - vite: 5.4.9(@types/node@20.16.12)(terser@5.36.0) + vite: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.36.0) - vitest@2.1.3(@types/node@22.7.6)(@vitest/ui@2.1.3)(terser@5.36.0): + vitest@3.0.4(@types/node@22.12.0)(@vitest/ui@3.0.4)(lightningcss@1.29.1)(terser@5.36.0): dependencies: - '@vitest/expect': 2.1.3 - '@vitest/mocker': 2.1.3(@vitest/spy@2.1.3)(vite@5.4.9(@types/node@22.7.6)(terser@5.36.0)) - '@vitest/pretty-format': 2.1.3 - '@vitest/runner': 2.1.3 - '@vitest/snapshot': 2.1.3 - '@vitest/spy': 2.1.3 - '@vitest/utils': 2.1.3 - chai: 5.1.1 - debug: 4.3.7 - magic-string: 0.30.12 - pathe: 1.1.2 - std-env: 3.7.0 + '@vitest/expect': 3.0.4 + '@vitest/mocker': 3.0.4(vite@5.4.9(@types/node@22.12.0)(lightningcss@1.29.1)(terser@5.36.0)) + '@vitest/pretty-format': 3.0.4 + '@vitest/runner': 3.0.4 + '@vitest/snapshot': 3.0.4 + '@vitest/spy': 3.0.4 + '@vitest/utils': 3.0.4 + chai: 5.1.2 + debug: 4.4.0 + expect-type: 1.1.0 + magic-string: 0.30.17 + pathe: 2.0.2 + std-env: 3.8.0 tinybench: 2.9.0 - tinyexec: 0.3.1 - tinypool: 1.0.1 - tinyrainbow: 1.2.0 - vite: 5.4.9(@types/node@22.7.6)(terser@5.36.0) - vite-node: 2.1.3(@types/node@22.7.6)(terser@5.36.0) + tinyexec: 0.3.2 + tinypool: 1.0.2 + tinyrainbow: 2.0.0 + vite: 5.4.9(@types/node@22.12.0)(lightningcss@1.29.1)(terser@5.36.0) + vite-node: 3.0.4(@types/node@22.12.0)(lightningcss@1.29.1)(terser@5.36.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.7.6 - '@vitest/ui': 2.1.3(vitest@2.1.3) + '@types/node': 22.12.0 + '@vitest/ui': 3.0.4(vitest@3.0.4) transitivePeerDependencies: - less - lightningcss @@ -16609,10 +16455,6 @@ snapshots: w3c-keyname@2.2.6: {} - walk-back@2.0.1: {} - - walk-back@5.1.1: {} - walk-up-path@3.0.1: {} wav@1.0.2: @@ -16639,11 +16481,13 @@ snapshots: web-tree-sitter@0.20.8: {} + web-tree-sitter@0.24.7: {} + webidl-conversions@3.0.1: {} webidl-conversions@4.0.2: {} - webmidi@3.1.11: + webmidi@3.1.12: dependencies: djipevents: 2.0.7 optionalDependencies: @@ -16715,11 +16559,6 @@ snapshots: wordwrap@1.0.0: {} - wordwrapjs@3.0.0: - dependencies: - reduce-flatten: 1.0.1 - typical: 2.6.1 - workbox-background-sync@7.0.0: dependencies: idb: 7.1.1 @@ -16778,7 +16617,7 @@ snapshots: workbox-core@7.0.0: {} - workbox-core@7.1.0: {} + workbox-core@7.3.0: {} workbox-expiration@7.0.0: dependencies: @@ -16835,29 +16674,29 @@ snapshots: '@types/trusted-types': 2.0.7 workbox-core: 7.0.0 - workbox-window@7.1.0: + workbox-window@7.3.0: dependencies: - '@types/trusted-types': 2.0.2 - workbox-core: 7.1.0 + '@types/trusted-types': 2.0.7 + workbox-core: 7.3.0 - worker-timers-broker@6.1.8: + worker-timers-broker@7.1.9: dependencies: - '@babel/runtime': 7.25.7 - fast-unique-numbers: 8.0.13 - tslib: 2.8.0 - worker-timers-worker: 7.0.71 + '@babel/runtime': 7.26.7 + fast-unique-numbers: 9.0.15 + tslib: 2.8.1 + worker-timers-worker: 8.0.10 - worker-timers-worker@7.0.71: + worker-timers-worker@8.0.10: dependencies: - '@babel/runtime': 7.25.7 - tslib: 2.8.0 + '@babel/runtime': 7.26.7 + tslib: 2.8.1 - worker-timers@7.1.8: + worker-timers@8.0.13: dependencies: - '@babel/runtime': 7.25.7 - tslib: 2.8.0 - worker-timers-broker: 6.1.8 - worker-timers-worker: 7.0.71 + '@babel/runtime': 7.26.7 + tslib: 2.8.1 + worker-timers-broker: 7.1.9 + worker-timers-worker: 8.0.10 wrap-ansi@6.2.0: dependencies: @@ -16917,7 +16756,7 @@ snapshots: xtend@4.0.2: {} - xxhash-wasm@1.0.2: {} + xxhash-wasm@1.1.0: {} y18n@4.0.3: {} @@ -16965,7 +16804,7 @@ snapshots: yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.1 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -16976,15 +16815,21 @@ snapshots: yocto-queue@1.1.1: {} - zod-to-json-schema@3.23.3(zod@3.23.8): + yocto-spinner@0.1.2: dependencies: - zod: 3.23.8 + yoctocolors: 2.1.1 - zod-to-ts@1.2.0(typescript@5.6.3)(zod@3.23.8): + yoctocolors@2.1.1: {} + + zod-to-json-schema@3.24.1(zod@3.24.1): + dependencies: + zod: 3.24.1 + + zod-to-ts@1.2.0(typescript@5.6.3)(zod@3.24.1): dependencies: typescript: 5.6.3 - zod: 3.23.8 + zod: 3.24.1 - zod@3.23.8: {} + zod@3.24.1: {} zwitch@2.0.4: {} diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index ece4f6c4..1167193f 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -21,6 +21,7 @@ tauri = { version = "1.4.0", features = [ "dialog-all", "clipboard-write-text", midir = "0.9.1" tokio = { version = "1.29.0", features = ["full"] } rosc = "0.10.1" +tauri-plugin-clipboard-manager = "2" [features] # this feature is used for production builds or when `devPath` points to the filesystem and the built-in dev server is disabled. diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index 638628cf..6a0248a7 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -1040,6 +1040,27 @@ exports[`runs examples > example "arrange" example index 0 1`] = ` ] `; +exports[`runs examples > example "as" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | note:c clip:0.5 ]", + "[ 1/4 → 1/2 | note:a clip:1 ]", + "[ 1/2 → 3/4 | note:f clip:0.25 ]", + "[ 3/4 → 1/1 | note:e clip:0.8 ]", + "[ 1/1 → 5/4 | note:c clip:0.5 ]", + "[ 5/4 → 3/2 | note:a clip:1 ]", + "[ 3/2 → 7/4 | note:f clip:0.25 ]", + "[ 7/4 → 2/1 | note:e clip:0.8 ]", + "[ 2/1 → 9/4 | note:c clip:0.5 ]", + "[ 9/4 → 5/2 | note:a clip:1 ]", + "[ 5/2 → 11/4 | note:f clip:0.25 ]", + "[ 11/4 → 3/1 | note:e clip:0.8 ]", + "[ 3/1 → 13/4 | note:c clip:0.5 ]", + "[ 13/4 → 7/2 | note:a clip:1 ]", + "[ 7/2 → 15/4 | note:f clip:0.25 ]", + "[ 15/4 → 4/1 | note:e clip:0.8 ]", +] +`; + exports[`runs examples > example "attack" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:c3 attack:0 ]", @@ -1082,6 +1103,36 @@ exports[`runs examples > example "bank" example index 0 1`] = ` ] `; +exports[`runs examples > example "beat" example index 0 1`] = ` +[ + "[ 0/1 → 1/16 | s:bd ]", + "[ 7/16 → 1/2 | s:bd ]", + "[ 5/8 → 11/16 | s:bd ]", + "[ 1/1 → 17/16 | s:bd ]", + "[ 23/16 → 3/2 | s:bd ]", + "[ 13/8 → 27/16 | s:bd ]", + "[ 2/1 → 33/16 | s:bd ]", + "[ 39/16 → 5/2 | s:bd ]", + "[ 21/8 → 43/16 | s:bd ]", + "[ 3/1 → 49/16 | s:bd ]", + "[ 55/16 → 7/2 | s:bd ]", + "[ 29/8 → 59/16 | s:bd ]", +] +`; + +exports[`runs examples > example "beat" example index 1 1`] = ` +[ + "[ 1/4 → 5/16 | s:sd ]", + "[ 3/4 → 13/16 | s:sd ]", + "[ 5/4 → 21/16 | s:sd ]", + "[ 7/4 → 29/16 | s:sd ]", + "[ 9/4 → 37/16 | s:sd ]", + "[ 11/4 → 45/16 | s:sd ]", + "[ 13/4 → 53/16 | s:sd ]", + "[ 15/4 → 61/16 | s:sd ]", +] +`; + exports[`runs examples > example "begin" example index 0 1`] = ` [ "[ 0/1 → 1/2 | s:rave begin:0 ]", @@ -1095,6 +1146,60 @@ exports[`runs examples > example "begin" example index 0 1`] = ` ] `; +exports[`runs examples > example "binary" example index 0 1`] = ` +[ + "[ 0/1 → 1/3 | s:hh ]", + "[ 2/3 → 1/1 | s:hh ]", + "[ 1/1 → 4/3 | s:hh ]", + "[ 5/3 → 2/1 | s:hh ]", + "[ 2/1 → 7/3 | s:hh ]", + "[ 8/3 → 3/1 | s:hh ]", + "[ 3/1 → 10/3 | s:hh ]", + "[ 11/3 → 4/1 | s:hh ]", +] +`; + +exports[`runs examples > example "binaryN" example index 0 1`] = ` +[ + "[ 0/1 → 1/16 | s:hh ]", + "[ 1/16 → 1/8 | s:hh ]", + "[ 3/16 → 1/4 | s:hh ]", + "[ 1/4 → 5/16 | s:hh ]", + "[ 1/2 → 9/16 | s:hh ]", + "[ 9/16 → 5/8 | s:hh ]", + "[ 5/8 → 11/16 | s:hh ]", + "[ 3/4 → 13/16 | s:hh ]", + "[ 13/16 → 7/8 | s:hh ]", + "[ 1/1 → 17/16 | s:hh ]", + "[ 17/16 → 9/8 | s:hh ]", + "[ 19/16 → 5/4 | s:hh ]", + "[ 5/4 → 21/16 | s:hh ]", + "[ 3/2 → 25/16 | s:hh ]", + "[ 25/16 → 13/8 | s:hh ]", + "[ 13/8 → 27/16 | s:hh ]", + "[ 7/4 → 29/16 | s:hh ]", + "[ 29/16 → 15/8 | s:hh ]", + "[ 2/1 → 33/16 | s:hh ]", + "[ 33/16 → 17/8 | s:hh ]", + "[ 35/16 → 9/4 | s:hh ]", + "[ 9/4 → 37/16 | s:hh ]", + "[ 5/2 → 41/16 | s:hh ]", + "[ 41/16 → 21/8 | s:hh ]", + "[ 21/8 → 43/16 | s:hh ]", + "[ 11/4 → 45/16 | s:hh ]", + "[ 45/16 → 23/8 | s:hh ]", + "[ 3/1 → 49/16 | s:hh ]", + "[ 49/16 → 25/8 | s:hh ]", + "[ 51/16 → 13/4 | s:hh ]", + "[ 13/4 → 53/16 | s:hh ]", + "[ 7/2 → 57/16 | s:hh ]", + "[ 57/16 → 29/8 | s:hh ]", + "[ 29/8 → 59/16 | s:hh ]", + "[ 15/4 → 61/16 | s:hh ]", + "[ 61/16 → 31/8 | s:hh ]", +] +`; + exports[`runs examples > example "bite" example index 0 1`] = ` [ "[ 0/1 → 1/8 | note:Bb3 ]", @@ -4262,6 +4367,8 @@ exports[`runs examples > example "juxBy" example index 0 1`] = ` ] `; +exports[`runs examples > example "keyDown" example index 0 1`] = `[]`; + exports[`runs examples > example "lastOf" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:c3 ]", @@ -7835,6 +7942,75 @@ exports[`runs examples > example "sometimesBy" example index 0 1`] = ` ] `; +exports[`runs examples > example "spectrum" example index 0 1`] = ` +[ + "[ -5/24 ⇜ (0/1 → 1/8) | note:F4 s:sine decay:0.3 room:0.5 ]", + "[ -2/15 ⇜ (0/1 → 1/5) | note:A4 s:sine decay:0.3 room:0.5 ]", + "[ -1/120 ⇜ (0/1 → 1/5) ⇝ 13/40 | note:A5 s:sine decay:0.3 room:0.5 ]", + "[ 0/1 → 1/3 | note:D3 s:sine decay:0.3 room:0.5 ]", + "[ 1/8 → 11/24 | note:D4 s:sine decay:0.3 room:0.5 ]", + "[ -1/120 ⇜ (1/5 → 13/40) | note:A5 s:sine decay:0.3 room:0.5 ]", + "[ 1/5 → 8/15 | note:G4 s:sine decay:0.3 room:0.5 ]", + "[ 13/40 → 79/120 | note:G5 s:sine decay:0.3 room:0.5 ]", + "[ 1/3 → 2/3 | note:C4 s:sine decay:0.3 room:0.5 ]", + "[ 11/24 → 19/24 | note:C5 s:sine decay:0.3 room:0.5 ]", + "[ 8/15 → 13/15 | note:F5 s:sine decay:0.3 room:0.5 ]", + "[ 79/120 → 119/120 | note:F6 s:sine decay:0.3 room:0.5 ]", + "[ 2/3 → 1/1 | note:G3 s:sine decay:0.3 room:0.5 ]", + "[ (19/24 → 1/1) ⇝ 9/8 | note:G4 s:sine decay:0.3 room:0.5 ]", + "[ (13/15 → 1/1) ⇝ 6/5 | note:C5 s:sine decay:0.3 room:0.5 ]", + "[ (119/120 → 1/1) ⇝ 53/40 | note:C6 s:sine decay:0.3 room:0.5 ]", + "[ 19/24 ⇜ (1/1 → 9/8) | note:G4 s:sine decay:0.3 room:0.5 ]", + "[ 13/15 ⇜ (1/1 → 6/5) | note:C5 s:sine decay:0.3 room:0.5 ]", + "[ 119/120 ⇜ (1/1 → 6/5) ⇝ 53/40 | note:C6 s:sine decay:0.3 room:0.5 ]", + "[ 1/1 → 4/3 | note:F3 s:sine decay:0.3 room:0.5 ]", + "[ 9/8 → 35/24 | note:F4 s:sine decay:0.3 room:0.5 ]", + "[ 119/120 ⇜ (6/5 → 53/40) | note:C6 s:sine decay:0.3 room:0.5 ]", + "[ 6/5 → 23/15 | note:A4 s:sine decay:0.3 room:0.5 ]", + "[ 53/40 → 199/120 | note:A5 s:sine decay:0.3 room:0.5 ]", + "[ 4/3 → 5/3 | note:D3 s:sine decay:0.3 room:0.5 ]", + "[ 35/24 → 43/24 | note:D4 s:sine decay:0.3 room:0.5 ]", + "[ 23/15 → 28/15 | note:G4 s:sine decay:0.3 room:0.5 ]", + "[ 199/120 → 239/120 | note:G5 s:sine decay:0.3 room:0.5 ]", + "[ 5/3 → 2/1 | note:C4 s:sine decay:0.3 room:0.5 ]", + "[ (43/24 → 2/1) ⇝ 17/8 | note:C5 s:sine decay:0.3 room:0.5 ]", + "[ (28/15 → 2/1) ⇝ 11/5 | note:F5 s:sine decay:0.3 room:0.5 ]", + "[ (239/120 → 2/1) ⇝ 93/40 | note:F6 s:sine decay:0.3 room:0.5 ]", + "[ 43/24 ⇜ (2/1 → 17/8) | note:C5 s:sine decay:0.3 room:0.5 ]", + "[ 28/15 ⇜ (2/1 → 11/5) | note:F5 s:sine decay:0.3 room:0.5 ]", + "[ 239/120 ⇜ (2/1 → 11/5) ⇝ 93/40 | note:F6 s:sine decay:0.3 room:0.5 ]", + "[ 2/1 → 7/3 | note:A3 s:sine decay:0.3 room:0.5 ]", + "[ 17/8 → 59/24 | note:A4 s:sine decay:0.3 room:0.5 ]", + "[ 239/120 ⇜ (11/5 → 93/40) | note:F6 s:sine decay:0.3 room:0.5 ]", + "[ 11/5 → 38/15 | note:D5 s:sine decay:0.3 room:0.5 ]", + "[ 93/40 → 319/120 | note:D6 s:sine decay:0.3 room:0.5 ]", + "[ 7/3 → 8/3 | note:F3 s:sine decay:0.3 room:0.5 ]", + "[ 59/24 → 67/24 | note:F4 s:sine decay:0.3 room:0.5 ]", + "[ 38/15 → 43/15 | note:A4 s:sine decay:0.3 room:0.5 ]", + "[ 319/120 → 359/120 | note:A5 s:sine decay:0.3 room:0.5 ]", + "[ 8/3 → 3/1 | note:D3 s:sine decay:0.3 room:0.5 ]", + "[ (67/24 → 3/1) ⇝ 25/8 | note:D4 s:sine decay:0.3 room:0.5 ]", + "[ (43/15 → 3/1) ⇝ 16/5 | note:G4 s:sine decay:0.3 room:0.5 ]", + "[ (359/120 → 3/1) ⇝ 133/40 | note:G5 s:sine decay:0.3 room:0.5 ]", + "[ 67/24 ⇜ (3/1 → 25/8) | note:D4 s:sine decay:0.3 room:0.5 ]", + "[ 43/15 ⇜ (3/1 → 16/5) | note:G4 s:sine decay:0.3 room:0.5 ]", + "[ 359/120 ⇜ (3/1 → 16/5) ⇝ 133/40 | note:G5 s:sine decay:0.3 room:0.5 ]", + "[ 3/1 → 10/3 | note:C4 s:sine decay:0.3 room:0.5 ]", + "[ 25/8 → 83/24 | note:C5 s:sine decay:0.3 room:0.5 ]", + "[ 359/120 ⇜ (16/5 → 133/40) | note:G5 s:sine decay:0.3 room:0.5 ]", + "[ 16/5 → 53/15 | note:F5 s:sine decay:0.3 room:0.5 ]", + "[ 133/40 → 439/120 | note:F6 s:sine decay:0.3 room:0.5 ]", + "[ 10/3 → 11/3 | note:G3 s:sine decay:0.3 room:0.5 ]", + "[ 83/24 → 91/24 | note:G4 s:sine decay:0.3 room:0.5 ]", + "[ 53/15 → 58/15 | note:C5 s:sine decay:0.3 room:0.5 ]", + "[ 439/120 → 479/120 | note:C6 s:sine decay:0.3 room:0.5 ]", + "[ 11/3 → 4/1 | note:F3 s:sine decay:0.3 room:0.5 ]", + "[ (91/24 → 4/1) ⇝ 33/8 | note:F4 s:sine decay:0.3 room:0.5 ]", + "[ (58/15 → 4/1) ⇝ 21/5 | note:A4 s:sine decay:0.3 room:0.5 ]", + "[ (479/120 → 4/1) ⇝ 173/40 | note:A5 s:sine decay:0.3 room:0.5 ]", +] +`; + exports[`runs examples > example "speed" example index 0 1`] = ` [ "[ 0/1 → 1/6 | s:bd speed:1 ]", @@ -9092,6 +9268,8 @@ exports[`runs examples > example "when" example index 0 1`] = ` ] `; +exports[`runs examples > example "whenKey" example index 0 1`] = `[]`; + exports[`runs examples > example "withValue" example index 0 1`] = ` [ "[ 0/1 → 1/3 | 10 ]", diff --git a/test/examples.test.mjs b/test/examples.test.mjs index 44ffdd5a..997c1cf3 100644 --- a/test/examples.test.mjs +++ b/test/examples.test.mjs @@ -2,9 +2,30 @@ import { queryCode } from './runtime.mjs'; import { describe, it } from 'vitest'; import doc from '../doc.json'; +const skippedExamples = [ + 'absoluteOrientationGamma', + 'absoluteOrientationBeta', + 'absoluteOrientationAlpha', + 'orientationGamma', + 'orientationBeta', + 'orientationAlpha', + 'rotationGamma', + 'rotationBeta', + 'rotationAlpha', + 'gravityZ', + 'gravityY', + 'gravityX', + 'accelerationZ', + 'accelerationY', + 'accelerationX', +]; + describe('runs examples', () => { const { docs } = doc; docs.forEach(async (doc) => { + if (skippedExamples.includes(doc.name)) { + return; + } doc.examples?.forEach((example, i) => { it(`example "${doc.name}" example index ${i}`, async ({ expect }) => { const haps = await queryCode(example, 4); diff --git a/test/runtime.mjs b/test/runtime.mjs index 49b78560..c35810da 100644 --- a/test/runtime.mjs +++ b/test/runtime.mjs @@ -77,69 +77,31 @@ const toneHelpersMocked = { highpass: mockNode, }; -strudel.Pattern.prototype.osc = function () { - return this; -}; -strudel.Pattern.prototype.csound = function () { - return this; -}; -strudel.Pattern.prototype.tone = function () { - return this; -}; -strudel.Pattern.prototype.webdirt = function () { - return this; -}; - -// draw mock -strudel.Pattern.prototype.pianoroll = function () { - return this; -}; - -// speak mock -strudel.Pattern.prototype.speak = function () { - return this; -}; - -// webaudio mock -strudel.Pattern.prototype.wave = function () { - return this; -}; -strudel.Pattern.prototype.filter = function () { - return this; -}; -strudel.Pattern.prototype.adsr = function () { - return this; -}; -strudel.Pattern.prototype.webaudio = function () { - return this; -}; -strudel.Pattern.prototype.soundfont = function () { - return this; -}; -// tune mock -strudel.Pattern.prototype.tune = function () { - return this; -}; - -strudel.Pattern.prototype.midi = function () { - return this; -}; - -strudel.Pattern.prototype._scope = function () { - return this; -}; -strudel.Pattern.prototype._spiral = function () { - return this; -}; -strudel.Pattern.prototype._pitchwheel = function () { - return this; -}; -strudel.Pattern.prototype._pianoroll = function () { - return this; -}; -strudel.Pattern.prototype.markcss = function () { - return this; -}; +[ + 'osc', + 'csound', + 'tone', + 'webdirt', + 'pianoroll', + 'speak', + 'wave', + 'filter', + 'adsr', + 'webaudio', + 'soundfont', + 'tune', + 'midi', + '_scope', + '_spiral', + '_pitchwheel', + '_pianoroll', + '_spectrum', + 'markcss', +].forEach((mock) => { + strudel.Pattern.prototype[mock] = function () { + return this; + }; +}); const uiHelpersMocked = { backgroundImage: id, @@ -194,7 +156,6 @@ evalScope( loadcsound, setcps: id, Clock: {}, // whatever - // Tone, }, ); diff --git a/tools/dbpatch/package.json b/tools/dbpatch/package.json index 46dfc936..52f5520f 100644 --- a/tools/dbpatch/package.json +++ b/tools/dbpatch/package.json @@ -1,5 +1,5 @@ { "dependencies": { - "csv": "^6.3.6" + "csv": "^6.3.11" } } diff --git a/website/astro.config.mjs b/website/astro.config.mjs index 774e5234..63158422 100644 --- a/website/astro.config.mjs +++ b/website/astro.config.mjs @@ -1,7 +1,6 @@ import { defineConfig } from 'astro/config'; import react from '@astrojs/react'; import mdx from '@astrojs/mdx'; - import remarkToc from 'remark-toc'; import rehypeSlug from 'rehype-slug'; import rehypeAutolinkHeadings from 'rehype-autolink-headings'; @@ -9,7 +8,6 @@ import rehypeUrls from 'rehype-urls'; import tailwind from '@astrojs/tailwind'; import AstroPWA from '@vite-pwa/astro'; -// import { visualizer } from 'rollup-plugin-visualizer'; const site = `https://strudel.cc/`; // root url without a path const base = '/'; // base path of the strudel site @@ -69,6 +67,7 @@ export default defineConfig({ registerType: 'autoUpdate', injectRegister: 'auto', workbox: { + maximumFileSizeToCacheInBytes: 4194304, // 4MB globPatterns: ['**/*.{js,css,html,ico,png,svg,json,wav,mp3,ogg,ttf,woff2,TTF,otf}'], runtimeCaching: [ { diff --git a/website/package.json b/website/package.json index bfd06d49..257ff643 100644 --- a/website/package.json +++ b/website/package.json @@ -6,25 +6,24 @@ "scripts": { "dev": "astro dev --host 0.0.0.0", "start": "astro dev", - "check": "astro check && tsc", "build": "astro build", "preview": "astro preview --port 3009 --host 0.0.0.0", "astro": "astro", "postinstall": "cp node_modules/hs2js/dist/tree-sitter.wasm public && cp node_modules/hs2js/dist/tree-sitter-haskell.wasm public" }, "dependencies": { - "@algolia/client-search": "^4.22.0", - "@astro-community/astro-embed-youtube": "^0.4.4", - "@astrojs/mdx": "^2.0.3", - "@astrojs/react": "^3.0.9", - "@astrojs/rss": "^4.0.2", - "@astrojs/tailwind": "^5.1.0", - "@docsearch/css": "^3.5.2", - "@docsearch/react": "^3.5.2", - "@headlessui/react": "^1.7.17", - "@heroicons/react": "^2.1.1", - "@nanostores/persistent": "^0.9.1", - "@nanostores/react": "^0.7.1", + "@algolia/client-search": "^5.20.0", + "@astro-community/astro-embed-youtube": "^0.5.6", + "@astrojs/mdx": "^4.0.7", + "@astrojs/react": "^4.1.6", + "@astrojs/rss": "^4.0.11", + "@astrojs/tailwind": "^5.1.5", + "@docsearch/css": "^3.8.3", + "@docsearch/react": "^3.8.3", + "@headlessui/react": "^2.2.0", + "@heroicons/react": "^2.2.0", + "@nanostores/persistent": "^0.10.2", + "@nanostores/react": "^0.8.4", "@strudel/codemirror": "workspace:*", "@strudel/core": "workspace:*", "@strudel/csound": "workspace:*", @@ -34,6 +33,7 @@ "@strudel/hydra": "workspace:*", "@strudel/midi": "workspace:*", "@strudel/mini": "workspace:*", + "@strudel/motion": "workspace:*", "@strudel/mqtt": "workspace:*", "@strudel/osc": "workspace:*", "@strudel/serial": "workspace:*", @@ -43,35 +43,36 @@ "@strudel/transpiler": "workspace:*", "@strudel/webaudio": "workspace:*", "@strudel/xen": "workspace:*", - "@supabase/supabase-js": "^2.39.1", - "@tailwindcss/forms": "^0.5.7", - "@tailwindcss/typography": "^0.5.10", - "@tauri-apps/api": "^1.5.3", - "@types/node": "^20.10.6", - "@types/react": "^18.2.46", - "@types/react-dom": "^18.2.18", - "astro": "^4.0.8", + "@supabase/supabase-js": "^2.48.1", + "@tailwindcss/forms": "^0.5.10", + "@tailwindcss/postcss": "^4.0.0", + "@tailwindcss/typography": "^0.5.16", + "@tauri-apps/api": "^2.2.0", + "@tauri-apps/plugin-clipboard-manager": "^2.2.0", + "@types/node": "^22.10.10", + "@types/react": "^19.0.8", + "@types/react-dom": "^19.0.3", + "astro": "^5.1.9", "claviature": "^0.1.0", - "date-fns": "^3.2.0", - "hs2js": "0.0.8", - "nanoid": "^5.0.4", - "nanostores": "^0.9.5", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-hook-inview": "^4.5.0", + "date-fns": "^4.1.0", + "hs2js": "0.1.0", + "nanoid": "^5.0.9", + "nanostores": "^0.11.3", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-hook-inview": "^4.5.1", "react-lite-youtube-embed": "^2.4.0", "rehype-autolink-headings": "^7.1.0", "rehype-slug": "^6.0.0", "rehype-urls": "^1.2.0", "remark-toc": "^9.0.0", - "tailwindcss": "^3.4.0", - "worker-timers": "^7.1.4" + "tailwindcss": "^3.4.17", + "worker-timers": "^8.0.13" }, "devDependencies": { - "@vite-pwa/astro": "^0.2.0", + "@vite-pwa/astro": "^0.5.0", "html-escaper": "^3.0.3", - "sharp": "^0.33.1", - "vite-plugin-pwa": "^0.17.4", - "workbox-window": "^7.0.0" + "sharp": "^0.33.5", + "workbox-window": "^7.3.0" } } diff --git a/website/src/components/Claviature.jsx b/website/src/components/Claviature.jsx index e97facbc..e2b4f7a0 100644 --- a/website/src/components/Claviature.jsx +++ b/website/src/components/Claviature.jsx @@ -13,8 +13,9 @@ export default function Claviature({ options, onClick, onMouseDown, onMouseUp, o {svg.children.map((el, i) => { const TagName = el.name; + const { key, ...attributes } = el.attributes; return ( - + {el.value} ); diff --git a/website/src/components/HeadCommon.astro b/website/src/components/HeadCommon.astro index a352a2c7..0b03c29f 100644 --- a/website/src/components/HeadCommon.astro +++ b/website/src/components/HeadCommon.astro @@ -1,4 +1,5 @@ --- +// @ts-ignore import { pwaInfo } from 'virtual:pwa-info'; import '../styles/index.css'; diff --git a/website/src/config.ts b/website/src/config.ts index 56b35f6f..601313e0 100644 --- a/website/src/config.ts +++ b/website/src/config.ts @@ -85,6 +85,7 @@ export const SIDEBAR: Sidebar = { { text: 'CSound', link: 'learn/csound' }, { text: 'Hydra', link: 'learn/hydra' }, { text: 'Input Devices', link: 'learn/input-devices' }, + { text: 'Device Motion', link: 'learn/devicemotion' }, ], 'Pattern Functions': [ { text: 'Introduction', link: 'functions/intro' }, @@ -101,6 +102,7 @@ export const SIDEBAR: Sidebar = { { text: 'Coding syntax', link: 'learn/code' }, { text: 'Pitch', link: 'understand/pitch' }, { text: 'Cycles', link: 'understand/cycles' }, + { text: 'Voicings', link: 'understand/voicings' }, { text: 'Pattern Alignment', link: 'technical-manual/alignment' }, { text: 'Strudel vs Tidal', link: 'learn/strudel-vs-tidal' }, ], diff --git a/website/src/env.d.ts b/website/src/env.d.ts index bd7aa94b..4138c53f 100644 --- a/website/src/env.d.ts +++ b/website/src/env.d.ts @@ -1,6 +1,4 @@ /// /// -/// -/// declare module 'date-fns'; diff --git a/website/src/pages/functions/value-modifiers.mdx b/website/src/pages/functions/value-modifiers.mdx index 94372e75..e290eb4e 100644 --- a/website/src/pages/functions/value-modifiers.mdx +++ b/website/src/pages/functions/value-modifiers.mdx @@ -82,18 +82,7 @@ To modify a parameter value, you can either: ")).log()`} /> -- Modify _all_ numeral params: - - ").log()`} /> - -Which of these 3 ways to use strongly depends on the context! -Note that the order of chaining param functions also matters! -In the last example, the `room` value would not have changed if it was applied later: - -").room(.1).log()`} /> - -This shows how the execution of the chained functions goes from left to right. -In this case, the `.add` will only modify what's on the left side. +Remember the execution of the chained functions goes from left to right. # Operators @@ -143,6 +132,10 @@ This group of functions allows to modify the value of events. +## as + + + # Custom Parameters You can also create your own parameters: diff --git a/website/src/pages/learn/devicemotion.mdx b/website/src/pages/learn/devicemotion.mdx new file mode 100644 index 00000000..cd54a7cf --- /dev/null +++ b/website/src/pages/learn/devicemotion.mdx @@ -0,0 +1,10 @@ +--- +title: Device Motion +layout: ../../layouts/MainLayout.astro +--- + +import { MiniRepl } from '../../docs/MiniRepl'; +import { JsDoc } from '../../docs/JsDoc'; +import DeviceMotion from '../../../../packages/motion/docs/devicemotion.mdx'; + + diff --git a/website/src/pages/learn/factories.mdx b/website/src/pages/learn/factories.mdx index 6a2e165b..b43d3abf 100644 --- a/website/src/pages/learn/factories.mdx +++ b/website/src/pages/learn/factories.mdx @@ -55,6 +55,14 @@ These are the equivalents used by the Mini Notation: ## run - + + +## binary + + + +## binaryN + + After Pattern Constructors, let's see what [Time Modifiers](/learn/time-modifiers) are available. diff --git a/website/src/pages/learn/visual-feedback.mdx b/website/src/pages/learn/visual-feedback.mdx index ec275c6e..35202ca6 100644 --- a/website/src/pages/learn/visual-feedback.mdx +++ b/website/src/pages/learn/visual-feedback.mdx @@ -99,6 +99,10 @@ What follows is the API doc of all the options you can pass: +## Spectrum + + + ## markcss diff --git a/website/src/pages/understand/voicings.mdx b/website/src/pages/understand/voicings.mdx new file mode 100644 index 00000000..7d9c13d9 --- /dev/null +++ b/website/src/pages/understand/voicings.mdx @@ -0,0 +1,325 @@ +--- +title: Understanding Chord Voicings +layout: ../../layouts/MainLayout.astro +--- + +import { MiniRepl } from '../../docs/MiniRepl'; +import { PitchSlider } from '../../components/PitchSlider'; +import Box from '@components/Box.astro'; + +# Understanding Chords and Voicings + +Let's dig deeper into how chords and voicings work in strudel. +I'll try to keep theory jargon to a minimum, so hopefully this is approachable for anyone interested. + +## What is a chord + +Playing more than one note at a time is generally called a `chord`. Here's an example: + +").room(.5)`} /> + +Here's the same with midi numbers: + +").room(.5)`} /> + +Here, we have two 3-note chords played in a loop. +You could already stop here and write chords in this style, which is totally fine and gives you control over individual notes. +One downside is that it can be difficult to find good sounding chords and maybe you're yearning for a way to organize chords in some other way. + +## Labeling Chords + +Chords are typically given different labels depending on the relationship of the notes within. +In the number example above, we have `48,51,55` and `53,57,60`. + +To analyze the relationship of those notes, they are typically compared to some `root`, which is often the lowest note. +In our case, the `roots` would be `48` (= `c3`) and `53` (= `f3`). +We can express the same chords relative to those `roots` like this: + +".add("<48 53>")).room(.5)`} /> + +Now within each chord, each number represents the distance from the root. +A distance between pitches is typically called `interval`, but let's stick to distance for now. + +Now we can see that our 2 chords are actually quite similar, as the only difference is the middle note (and the root of course). +They are part of a group of chords called `triads` which are chords with 3 notes. + +### Triads + +These 4 shapes are the most common types of `triads` you will encounter: + +| shape | label | +| ----- | ---------- | +| 0,4,7 | major | +| 0,3,7 | minor | +| 0,3,6 | diminished | +| 0,4,8 | augmented | + +Here they are in succession: + +".add("60")) +.room(.5)._pitchwheel()`} +/> + +Many types of music often only use minor and major chords, so we already have the knowledge to accompany songs. Here's one: + +\`.add(\`< +a c d f +a e a e +>\`)).room(.5)`} +/> + +These are the chords for "The House of the Rising Sun" by The Animals. +So far, it doesn't sound too exciting, but at least it's recognizable. + +## Voicings + +A `voicing` is one of many ways a certain chord shape can be arranged. +The term comes from choral music, where chords can be sung in different ways by assigning different notes to each voice. +For example we could add 12 semitones to one or more notes in the chord: + +".add("48")) +.room(.5)`} +/> + +Notes that are 12 semitone steps apart (= 1 `octave`) are considered to be equal in a harmonic sense, which is why they get the same note letter. +Here's the same example with note letters: + +") +.room(.5)`} +/> + +These types of voicings are also called `inversions`. There are many other ways we could `voice` this minor chord: + +".add("48")) +.room(.5)`} +/> + +Here we are changing the flavour of the chord slightly by + +1. doubling notes 12 steps higher, +2. using very wide distances +3. omitting notes + +## Voice Leading + +When we want to meaningfully connect chords in a sequence, the chosen voicings affect the way each chord transitions to the next. +Let's revisit "The House of the Rising Sun", this time using our newly acquired voicing techniques: + +\`.add(\`< +a c d f +a e a e +>\`)).room(.5)`} + punchcard +/> + +These voicings make the chords sound more connected and less jumpy, compared to the earlier version, which didn't focus on voicing. +The way chords interact is also called `voice leading`, reminiscent of how an +individual choir voice would move through a sequence of chords. + +For example, try singing the top voice in the above example. Then try the same +on the example not focusing on voice leading. Which one's easier? + +Naturally, there are many ways a progression of chords could be voiced and there is no definitive right or wrong. + +## Chord Symbols + +Musicians playing chord-based music often use a `lead sheet`, which is a simplified notation for a piece of music. +These sheets condense the essential elements, such as chords, into symbols that make the music easy to read and follow. +For example, a lead sheet for "The House of the Rising Sun" might include chords written like this: + +``` +Am | C | D | F +Am | E | Am | E +``` + +Here, each symbol consists of the `root` of the chord and optionally an `m` to signal it's a minor chord (just the root note means it's major). +We could mirror that notation in strudel using the `pick` function: + +" + .pick({ + Am: "57,60,64", + C: "55,60,64", + D: "50,57,66", + F: "57,60,65", + E: "56,59,64", + }) + .note().room(.5)`} + punchcard +/> + +## The voicing function + +Coming up with good sounding voicings that connect well can be a difficult and time consuming process. +The `chord` and `voicing` functions can be used to automate that: + +").voicing().room(.5)`} punchcard /> + +Here we're also using chord symbols but the voicings will be automatically generated with smooth `voice leading`, minimizing jumps. +It is inspired by the way a piano or guitar player would pick chords to accompany a song. + +## Voicing Dictionaries + +The voicing function internally uses so called `voicing dictionaries`, which can also be customized: + +") + .dict('house').anchor(66) + .voicing().room(.5)`} + punchcard +/> + +In a `voicing dictionary`, each chord symbol is assigned one or more voicings. +The `voicing` function then picks the voicing that is closest to the `anchor` (defaults to `c5`). + +The handy thing about this approach is that a `voicing dictionary` can be used to play any chord progression with automated voice leading! + +## The default dictionary + +When using the default dictionary, you can use these chord symbols: + +``` +2 5 6 7 9 11 13 69 add9 +o h sus ^ - ^7 -7 7sus +h7 o7 ^9 ^13 ^7#11 ^9#11 +^7#5 -6 -69 -^7 -^9 -9 +-add9 -11 -7b5 h9 -b6 -#5 +7b9 7#9 7#11 7b5 7#5 9#11 +9b5 9#5 7b13 7#9#5 7#9b5 +7#9#11 7b9#11 7b9b5 7b9#5 +7b9#9 7b9b13 7alt 13#11 +13b9 13#9 7b9sus 7susadd3 +9sus 13sus 7b13sus +aug M m M7 m7 M9 M13 +M7#11 M9#11 M7#5 m6 m69 +m^7 -M7 m^9 -M9 m9 madd9 +m11 m7b5 mb6 m#5 mM7 mM9 +``` + +The available chords and the format is very much inspired by [ireal pro chords](https://technimo.helpshift.com/hc/en/3-ireal-pro/faq/88-chord-symbols-used-in-ireal-pro/). +Some symbols are synonymous: + +- "-" is the same as "m", for example C-7 = Cm7 +- "^" is the same as "M", for example C^7 = CM7 +- "+" is the same as "aug" + +You can decide which ones you prefer. There is no international standard for these symbols. +To get a full chord, the symbols have to be prefixed with a root pitch, e.g. D7#11 is the 7#11 chord relative to the pitch D. + +Here are all possible chords with root C: + +\`).voicing().room(.5)`} + punchcard +/> + +Note that the default dictionary contains multiple ways (= `voicings`) to play each chord symbol. +By default, the `voicing` function tries to minimize jumps. +You can alter the picked voicings in various ways, which are now explained in further detail: + +## anchor + +The `anchor` is a note that is used to align the voicings to: + +").chord("C").voicing().room(.5)`} punchcard /> + +By default, the anchor is the highest possible note the voicing can contain. +When deciding which voicing of the dictionary to pick for a certain chord, the voicing with a top note closest to the anchor wins. + +Note that the anchors in the above example match up with the top notes in the pianoroll. +Like `note`, anchor accepts either midi numbers or note names. + +## mode + +With `mode`, you can change the way the voicing relates to the `anchor`: + +").chord("C").anchor("c5").voicing().room(.5)`} + punchcard +/> + +The modes are: + +- `below`: the top note of the voicing is lower than or equal to the anchor (default) +- `above`: the bottom note of the voicing is higher than or equal to the anchor +- `duck`: the top note of the voicing is lower than the anchor +- `root`: the bottom note of the voicing is always the root note closest to the anchor + +The `anchor` can also be set from within the `mode` function: + +:c5").chord("C").voicing().room(.5)`} punchcard /> + +## n + +The `n` control can be used with `voicing` to select individual notes: + +>").voicing() +.clip("4 3 2 1").room(.5)`} + punchcard +/> + +## Example + +Here's an example of a Jazz Blues in F: + +\`) +$: n("7 8 [10 9] 8").set(chords).voicing().dec(.2) +$: chords.struct("- x - x").voicing().room(.5) +$: n("0 - 1 -").set(chords).mode("root:g2").voicing() +`} + punchcard +/> + +The chords are reused for melody, chords and bassline of the tune. diff --git a/website/src/pwa.ts b/website/src/pwa.ts index e86ddf3f..fae7d3df 100644 --- a/website/src/pwa.ts +++ b/website/src/pwa.ts @@ -1,3 +1,4 @@ +// @ts-ignore import { registerSW } from 'virtual:pwa-register'; registerSW({ diff --git a/website/src/repl/components/panel/Reference.jsx b/website/src/repl/components/panel/Reference.jsx index 07820807..fbbf0a08 100644 --- a/website/src/repl/components/panel/Reference.jsx +++ b/website/src/repl/components/panel/Reference.jsx @@ -58,8 +58,8 @@ export function Reference() {

API Reference

- This is the long list functions you can use! Remember that you don't need to remember all of those and that - you can already make music with a small set of functions! + This is the long list of functions you can use. Remember that you don't need to remember all of those and + that you can already make music with a small set of functions!

{visibleFunctions.map((entry, i) => (
diff --git a/website/src/repl/util.mjs b/website/src/repl/util.mjs index 190293a5..a8d18428 100644 --- a/website/src/repl/util.mjs +++ b/website/src/repl/util.mjs @@ -6,7 +6,7 @@ import { isTauri } from '../tauri.mjs'; import './Repl.css'; import { createClient } from '@supabase/supabase-js'; import { nanoid } from 'nanoid'; -import { writeText } from '@tauri-apps/api/clipboard'; +import { writeText } from '@tauri-apps/plugin-clipboard-manager'; import { $featuredPatterns, loadDBPatterns } from '@src/user_pattern_utils.mjs'; // Create a single supabase client for interacting with your database @@ -82,6 +82,7 @@ export function loadModules() { import('@strudel/csound'), import('@strudel/tidal'), import('@strudel/gamepad'), + import('@strudel/motion'), import('@strudel/mqtt'), ]; if (isTauri()) { diff --git a/website/src/tauri.mjs b/website/src/tauri.mjs index c4c69af5..c5be9411 100644 --- a/website/src/tauri.mjs +++ b/website/src/tauri.mjs @@ -1,4 +1,4 @@ -import { invoke } from '@tauri-apps/api/tauri'; +import { invoke } from '@tauri-apps/api/core'; export const Invoke = invoke; export const isTauri = () => window.__TAURI_IPC__ != null; diff --git a/website/tsconfig.json b/website/tsconfig.json index 90aa524f..2432224c 100644 --- a/website/tsconfig.json +++ b/website/tsconfig.json @@ -5,9 +5,6 @@ "skipLibCheck": true, "jsxImportSource": "react", "noImplicitAny": false, - "types": [ - "vite-plugin-pwa/client" - ], "baseUrl": ".", "paths": { "@components/*": ["src/components/*"],