Update dependencies and scripts in adapter-electron for improved functionality

- Added `nodemon` and `wait-on` as dependencies in the electron example's package.json for better development experience.
- Updated the `dev` script to utilize `wait-on` for ensuring the Vite server is running before starting Electron.
- Enhanced the README.md with clearer instructions and examples for configuring the adapter and its options.
- Removed the `functions` option from the TypeScript definition to simplify the interface.
- Cleaned up unused imports in setupHandler.js to streamline the code.
This commit is contained in:
Luke Hagar
2025-07-23 23:24:00 -05:00
parent ef082c2acd
commit 19e195bc98
7 changed files with 394 additions and 118 deletions

View File

@@ -12,7 +12,7 @@
"scripts": { "scripts": {
"start": "vite preview", "start": "vite preview",
"sync": "svelte-kit sync", "sync": "svelte-kit sync",
"dev": "pnpm sync && concurrently \"vite dev\" \"electron .\" --names \"sveltekit,electron\" --prefix-colors \"#ff3e00,blue\"", "dev": "pnpm sync && concurrently \"vite dev\" \"wait-on http://localhost:5173 && nodemon --watch out --exec electron .\" --names \"sveltekit,electron\" --prefix-colors \"#ff3e00,blue\"",
"build": "pnpm sync && vite build", "build": "pnpm sync && vite build",
"build:all": "pnpm build && electron-builder -mwl --config", "build:all": "pnpm build && electron-builder -mwl --config",
"build:win": "pnpm build && electron-builder --win --config", "build:win": "pnpm build && electron-builder --win --config",
@@ -39,6 +39,8 @@
"electron-util": "^0.18.1", "electron-util": "^0.18.1",
"esbuild": "^0.25.0", "esbuild": "^0.25.0",
"eslint": "^9.30.1", "eslint": "^9.30.1",
"nodemon": "^3.1.10",
"wait-on": "^8.0.4",
"eslint-config-prettier": "^10.1.5", "eslint-config-prettier": "^10.1.5",
"eslint-plugin-svelte": "^3.10.1", "eslint-plugin-svelte": "^3.10.1",
"polka": "^0.5.2", "polka": "^0.5.2",

View File

@@ -13,6 +13,7 @@ process.on('SIGINT', () => process.exit(0));
// First register the app scheme // First register the app scheme
registerAppScheme(); registerAppScheme();
console.log('main.ts is now loaded');
async function createWindow() { async function createWindow() {
// Create the browser window // Create the browser window

View File

@@ -16,7 +16,7 @@ A SvelteKit adapter for Electron desktop apps that uses native protocol handling
## Installation ## Installation
```bash ```bash
npm install @sveltejs/adapter-electron npm install adapter-electron
``` ```
## Quick Start ## Quick Start
@@ -26,19 +26,15 @@ npm install @sveltejs/adapter-electron
In your `svelte.config.js`: In your `svelte.config.js`:
```js ```js
import adapter from '@sveltejs/adapter-electron'; import adapter from 'adapter-electron';
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
/** @type {import('@sveltejs/kit').Config} */ /** @type {import('@sveltejs/kit').Config} */
const config = { const config = {
preprocess: vitePreprocess(),
kit: { kit: {
adapter: adapter({ adapter: adapter()
// All options are optional with sensible defaults
out: 'out', // Output directory (default: 'out')
assets: true, // Include static assets (default: true)
fallback: undefined, // Fallback page for client-side routing (default: undefined)
precompress: false, // Precompress assets (default: false)
strict: true // Strict mode (default: true)
})
} }
}; };
@@ -77,31 +73,44 @@ Create `src/main.ts`:
import { app, BrowserWindow } from 'electron'; import { app, BrowserWindow } from 'electron';
import { setupHandler, getPreloadPath, registerAppScheme } from 'adapter-electron/functions/setupHandler'; import { setupHandler, getPreloadPath, registerAppScheme } from 'adapter-electron/functions/setupHandler';
// Electron log is the best way I've found to get logs from compiled binaries
import log from 'electron-log/main';
console.log = log.log;
let mainWindow: BrowserWindow | null = null; let mainWindow: BrowserWindow | null = null;
let stopIntercept: (() => void) | undefined; let stopIntercept: (() => void) | undefined;
// IMPORTANT: Register the app scheme before app.ready process.on('SIGTERM', () => process.exit(0));
process.on('SIGINT', () => process.exit(0));
// First register the app scheme
registerAppScheme(); registerAppScheme();
async function createWindow() { async function createWindow() {
// Create the browser window
mainWindow = new BrowserWindow({ mainWindow = new BrowserWindow({
width: 1200, width: 1200,
height: 800, height: 800,
webPreferences: { webPreferences: {
preload: getPreloadPath(), // Auto-configured preload path // Second configure the preload script
preload: getPreloadPath(),
contextIsolation: true, contextIsolation: true,
nodeIntegration: false, devTools: true
webSecurity: true
} }
}); });
mainWindow.once('ready-to-show', () => mainWindow?.webContents.openDevTools());
mainWindow.on('closed', () => { mainWindow.on('closed', () => {
mainWindow = null; mainWindow = null;
stopIntercept?.(); stopIntercept?.();
}); });
// Setup the protocol handler (handles dev vs prod automatically) // Third, Setup the handler
stopIntercept = await setupHandler(mainWindow); stopIntercept = await setupHandler(mainWindow);
return mainWindow;
} }
app.on('ready', createWindow); app.on('ready', createWindow);
@@ -114,7 +123,11 @@ app.on('window-all-closed', () => {
app.on('activate', async () => { app.on('activate', async () => {
if (BrowserWindow.getAllWindows().length === 0 && !mainWindow) { if (BrowserWindow.getAllWindows().length === 0 && !mainWindow) {
await createWindow(); try {
await createWindow();
} catch (error) {
console.error('Failed to create window:', error);
}
} }
}); });
``` ```
@@ -124,18 +137,29 @@ app.on('activate', async () => {
Create `src/preload.ts`: Create `src/preload.ts`:
```ts ```ts
// Your preload script content
console.log('Preload loaded'); console.log('Preload loaded');
// Example: Expose APIs to renderer process
import { contextBridge } from 'electron';
contextBridge.exposeInMainWorld('electronAPI', {
// Your APIs here
});
``` ```
### 5. Build and Run ### 5. Configure Package.json
Add these fields to your `package.json`:
```json
{
"main": "./out/main/index.cjs",
"scripts": {
"sync": "svelte-kit sync",
"dev": "pnpm sync && concurrently \"vite dev\" \"wait-on http://localhost:5173 && nodemon --watch out --exec electron .\" --names \"sveltekit,electron\" --prefix-colors \"#ff3e00,blue\"",
"build": "pnpm sync && vite build",
"build:all": "pnpm build && electron-builder -mwl --config",
"build:win": "pnpm build && electron-builder --win --config",
"build:mac": "pnpm build && electron-builder --mac --config",
"build:linux": "pnpm build && electron-builder --linux --config"
}
}
```
### 6. Build and Run
```bash ```bash
# Development (uses Vite dev server with HMR) # Development (uses Vite dev server with HMR)
@@ -144,8 +168,11 @@ npm run dev
# Production build # Production build
npm run build npm run build
# Run built Electron app # Package for distribution
npm start # or your preferred Electron launcher npm run build:all # All platforms
npm run build:win # Windows only
npm run build:mac # macOS only
npm run build:linux # Linux only
``` ```
## How It Works ## How It Works
@@ -192,31 +219,94 @@ out/
```js ```js
adapter({ adapter({
out: 'out', // Output directory out: 'out', // Output directory (default: 'out')
assets: true, // Include static assets from /static precompress: false // Precompress assets with gzip/brotli (default: false)
fallback: undefined, // Fallback page for client-side routing
precompress: false, // Precompress assets with gzip/brotli
strict: true // Enable strict mode
}) })
``` ```
| Option | Type | Default | Description |
| ------------- | --------- | ------- | ----------------------------------------------- |
| `out` | `string` | `'out'` | The directory to write the built application to |
| `precompress` | `boolean` | `false` | Whether to precompress assets with gzip/brotli |
### Electron Plugin Options ### Electron Plugin Options
```js ```js
electronPlugin({ electronPlugin({
mainEntry: 'src/main.ts', // Main process entry point mainEntry: 'src/main.ts', // Main process entry point (default: 'src/main.ts')
preloadEntry: 'src/preload.ts', // Preload script entry point preloadEntry: 'src/preload.ts', // Preload script entry point (default: 'src/preload.ts')
mainOut: 'out/main/index.js', // Main process output mainOut: 'out/main/index.cjs', // Main process output (default: 'out/main/index.cjs')
preloadOut: 'out/preload/index.js' // Preload script output preloadOut: 'out/preload/index.js', // Preload script output (default: 'out/preload/index.js')
externalMain: ['electron', 'electron-log', 'electron-is-dev', 'SERVER', 'MANIFEST'], // External dependencies for main process
externalPreload: ['electron'] // External dependencies for preload script
}) })
``` ```
| Option | Type | Default | Description |
| ----------------- | ---------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------ |
| `mainEntry` | `string` | `'src/main.ts'` | Path to the main process entry file |
| `preloadEntry` | `string` | `'src/preload.ts'` | Path to the preload script entry file |
| `mainOut` | `string` | `'out/main/index.cjs'` | Output path for the compiled main process |
| `preloadOut` | `string` | `'out/preload/index.js'` | Output path for the compiled preload script |
| `externalMain` | `string[]` | `['electron', 'electron-log', 'electron-is-dev', 'SERVER', 'MANIFEST']` | External dependencies that won't be bundled for the main process |
| `externalPreload` | `string[]` | `['electron']` | External dependencies that won't be bundled for the preload script |
### Configuration Examples
#### Custom Output Directory
```js
// svelte.config.js
import adapter from 'adapter-electron';
export default {
kit: {
adapter: adapter({
out: 'dist/electron'
})
}
};
```
#### Custom Entry Points
```js
// vite.config.ts
import { electronPlugin } from 'adapter-electron';
export default defineConfig({
plugins: [
sveltekit(),
electronPlugin({
mainEntry: 'electron/main.ts',
preloadEntry: 'electron/preload.ts',
mainOut: 'dist/electron/main.js',
preloadOut: 'dist/electron/preload.js'
})
]
});
```
#### Custom External Dependencies
```js
// vite.config.ts
import { electronPlugin } from 'adapter-electron';
export default defineConfig({
plugins: [
sveltekit(),
electronPlugin({
externalMain: ['electron', 'electron-log', 'my-custom-package'],
externalPreload: ['electron', 'another-package']
})
]
});
```
### Environment Variables ### Environment Variables
| Variable | Description | Default | | Variable | Description | Default |
|----------|-------------|---------| | ----------------- | ---------------------- | ----------------------- |
| `VITE_DEV_SERVER` | Development server URL | `http://localhost:5173` | | `VITE_DEV_SERVER` | Development server URL | `http://localhost:5173` |
| `VITE_APP_URL` | Production app URL | `http://127.0.0.1` | | `VITE_APP_URL` | Production app URL | `http://127.0.0.1` |
## API Reference ## API Reference
@@ -288,29 +378,54 @@ Cookies are automatically synchronized between SvelteKit and Electron's session:
### With electron-builder ### With electron-builder
```json Create `electron-builder.yaml`:
{
"scripts": { ```yaml
"build": "vite build", appId: com.electron.app
"dist": "npm run build && electron-builder" productName: electron-sveltekit
}, directories:
"build": { buildResources: build
"directories": { files:
"output": "dist", - "!**/.vscode/*"
"buildResources": "out" - "!src/*"
}, - "!electron.vite.config.{js,ts,mjs,cjs}"
"files": [ - "!vite.electron.config.ts"
"out/**/*", - "!{.eslintignore,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}"
"package.json" - "!{.env,.env.*,.npmrc,pnpm-lock.yaml}"
], - "!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}"
"mac": { - "out/**/*"
"icon": "assets/icon.icns" asarUnpack:
}, - resources/**
"win": { win:
"icon": "assets/icon.ico" target: ["portable"]
} executableName: electron-sveltekit
} nsis:
} artifactName: ${name}-${version}-setup.${ext}
shortcutName: ${productName}
uninstallDisplayName: ${productName}
createDesktopShortcut: always
mac:
entitlementsInherit: build/entitlements.mac.plist
extendInfo:
- NSCameraUsageDescription: Application requests access to the device's camera.
- NSMicrophoneUsageDescription: Application requests access to the device's microphone.
- NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder.
- NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder.
dmg:
artifactName: ${name}-${version}.${ext}
linux:
target:
- AppImage
- snap
- deb
maintainer: electronjs.org
category: Utility
appImage:
artifactName: ${name}-${version}.${ext}
npmRebuild: false
publish:
provider: generic
url: https://example.com/auto-updates
``` ```
### With electron-forge ### With electron-forge
@@ -330,6 +445,15 @@ module.exports = {
}; };
``` ```
## Dependencies
The adapter requires these additional dependencies:
```bash
npm install electron electron-builder electron-log concurrently
npm install -D @types/node
```
## Troubleshooting ## Troubleshooting
### Common Issues ### Common Issues
@@ -349,6 +473,7 @@ module.exports = {
**Build errors:** **Build errors:**
- Verify all dependencies are installed - Verify all dependencies are installed
- Check that TypeScript configuration includes Electron types - Check that TypeScript configuration includes Electron types
- Ensure `concurrently` is installed for development scripts
### Debug Mode ### Debug Mode

View File

@@ -1,9 +1,8 @@
import fs from 'node:fs/promises'; import fs from 'node:fs/promises';
import path from 'node:path'; import path from 'node:path';
import isDev from 'electron-is-dev'; import isDev from 'electron-is-dev';
import { protocol, net, dialog, app } from 'electron'; import { protocol, net, dialog } from 'electron';
import { pathToFileURL } from 'url'; import { pathToFileURL } from 'url';
import assert from 'node:assert';
import { parse as parseCookie, splitCookiesString } from 'set-cookie-parser'; import { parse as parseCookie, splitCookiesString } from 'set-cookie-parser';
import { serialize as serializeCookie } from 'cookie'; import { serialize as serializeCookie } from 'cookie';

View File

@@ -7,12 +7,6 @@ export interface AdapterOptions {
*/ */
out?: string; out?: string;
/**
* Directory name for the protocol handler functions
* @default 'functions'
*/
functions?: string;
/** /**
* Whether to precompress static assets * Whether to precompress static assets
* @default false * @default false

View File

@@ -1,6 +1,5 @@
// adapter-electron.js // adapter-electron.js
import { readFileSync, writeFileSync } from 'node:fs'; import { readFileSync, writeFileSync } from 'node:fs';
import fs from 'node:fs';
import path from 'node:path'; import path from 'node:path';
import { rollup, watch as rollupWatch } from 'rollup'; import { rollup, watch as rollupWatch } from 'rollup';
import { nodeResolve } from '@rollup/plugin-node-resolve'; import { nodeResolve } from '@rollup/plugin-node-resolve';
@@ -159,6 +158,7 @@ export default function (opts = {}) {
/** /**
* Vite plugin to build Electron main/preload files using Rollup * Vite plugin to build Electron main/preload files using Rollup
* Usage: import { electronPlugin } from 'adapter-electron' * Usage: import { electronPlugin } from 'adapter-electron'
* @param {import('./index.d.ts').ElectronPluginOptions} options - Configuration options
*/ */
export function electronPlugin(options = {}) { export function electronPlugin(options = {}) {
const { const {

245
pnpm-lock.yaml generated
View File

@@ -134,6 +134,9 @@ importers:
eslint-plugin-svelte: eslint-plugin-svelte:
specifier: ^3.10.1 specifier: ^3.10.1
version: 3.10.1(eslint@9.30.1)(svelte@5.35.4) version: 3.10.1(eslint@9.30.1)(svelte@5.35.4)
nodemon:
specifier: ^3.1.10
version: 3.1.10
polka: polka:
specifier: ^0.5.2 specifier: ^0.5.2
version: 0.5.2 version: 0.5.2
@@ -158,6 +161,9 @@ importers:
vite: vite:
specifier: ^6.0.0 specifier: ^6.0.0
version: 6.3.5(@types/node@24.0.11) version: 6.3.5(@types/node@24.0.11)
wait-on:
specifier: ^8.0.4
version: 8.0.4
packages/adapter-appwrite: packages/adapter-appwrite:
dependencies: dependencies:
@@ -909,6 +915,12 @@ packages:
'@gar/promisify@1.1.3': '@gar/promisify@1.1.3':
resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
'@hapi/hoek@9.3.0':
resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
'@hapi/topo@5.1.0':
resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
'@humanfs/core@0.19.1': '@humanfs/core@0.19.1':
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
engines: {node: '>=18.18.0'} engines: {node: '>=18.18.0'}
@@ -1273,6 +1285,15 @@ packages:
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
'@sideway/address@4.1.5':
resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
'@sideway/formula@3.0.1':
resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
'@sideway/pinpoint@2.0.0':
resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
'@sinclair/typebox@0.27.8': '@sinclair/typebox@0.27.8':
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
@@ -1681,6 +1702,9 @@ packages:
resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
engines: {node: '>= 4.0.0'} engines: {node: '>= 4.0.0'}
axios@1.11.0:
resolution: {integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==}
axobject-query@4.1.0: axobject-query@4.1.0:
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@@ -2341,6 +2365,15 @@ packages:
flatted@3.3.3: flatted@3.3.3:
resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
follow-redirects@1.15.9:
resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
engines: {node: '>=4.0'}
peerDependencies:
debug: '*'
peerDependenciesMeta:
debug:
optional: true
foreground-child@3.3.1: foreground-child@3.3.1:
resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
engines: {node: '>=14'} engines: {node: '>=14'}
@@ -2349,6 +2382,10 @@ packages:
resolution: {integrity: sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==} resolution: {integrity: sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==}
engines: {node: '>= 6'} engines: {node: '>= 6'}
form-data@4.0.4:
resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==}
engines: {node: '>= 6'}
fs-extra@10.1.0: fs-extra@10.1.0:
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
engines: {node: '>=12'} engines: {node: '>=12'}
@@ -2466,6 +2503,10 @@ packages:
graphemer@1.4.0: graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
has-flag@3.0.0:
resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
engines: {node: '>=4'}
has-flag@4.0.0: has-flag@4.0.0:
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
engines: {node: '>=8'} engines: {node: '>=8'}
@@ -2546,6 +2587,9 @@ packages:
ieee754@1.2.1: ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
ignore-by-default@1.0.1:
resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==}
ignore-walk@5.0.1: ignore-walk@5.0.1:
resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==} resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==}
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
@@ -2686,6 +2730,9 @@ packages:
engines: {node: '>=10'} engines: {node: '>=10'}
hasBin: true hasBin: true
joi@17.13.3:
resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==}
js-tokens@9.0.1: js-tokens@9.0.1:
resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
@@ -2984,6 +3031,11 @@ packages:
node-api-version@0.2.1: node-api-version@0.2.1:
resolution: {integrity: sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q==} resolution: {integrity: sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q==}
nodemon@3.1.10:
resolution: {integrity: sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==}
engines: {node: '>=10'}
hasBin: true
nopt@6.0.0: nopt@6.0.0:
resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==}
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
@@ -3259,6 +3311,12 @@ packages:
resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
engines: {node: '>=10'} engines: {node: '>=10'}
proxy-from-env@1.1.0:
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
pstree.remy@1.1.8:
resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==}
publint@0.1.16: publint@0.1.16:
resolution: {integrity: sha512-wJgk7HnXDT5Ap0DjFYbGz78kPkN44iQvDiaq8P63IEEyNU9mYXvaMd2cAyIM6OgqXM/IA3CK6XWIsRq+wjNpgw==} resolution: {integrity: sha512-wJgk7HnXDT5Ap0DjFYbGz78kPkN44iQvDiaq8P63IEEyNU9mYXvaMd2cAyIM6OgqXM/IA3CK6XWIsRq+wjNpgw==}
engines: {node: '>=16'} engines: {node: '>=16'}
@@ -3568,6 +3626,10 @@ packages:
resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==}
engines: {node: '>= 8.0'} engines: {node: '>= 8.0'}
supports-color@5.5.0:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
engines: {node: '>=4'}
supports-color@7.2.0: supports-color@7.2.0:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'} engines: {node: '>=8'}
@@ -3732,6 +3794,10 @@ packages:
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
engines: {node: '>=6'} engines: {node: '>=6'}
touch@3.1.1:
resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==}
hasBin: true
tree-kill@1.2.2: tree-kill@1.2.2:
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
hasBin: true hasBin: true
@@ -3816,6 +3882,9 @@ packages:
ufo@1.6.1: ufo@1.6.1:
resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
undefsafe@2.0.5:
resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==}
undici-types@5.26.5: undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
@@ -3975,6 +4044,11 @@ packages:
jsdom: jsdom:
optional: true optional: true
wait-on@8.0.4:
resolution: {integrity: sha512-8f9LugAGo4PSc0aLbpKVCVtzayd36sSCp4WLpVngkYq6PK87H79zt77/tlCU6eKCLqR46iFvcl0PU5f+DmtkwA==}
engines: {node: '>=12.0.0'}
hasBin: true
wcwidth@1.0.1: wcwidth@1.0.1:
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
@@ -4235,7 +4309,7 @@ snapshots:
'@electron/get@2.0.3': '@electron/get@2.0.3':
dependencies: dependencies:
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
env-paths: 2.2.1 env-paths: 2.2.1
fs-extra: 8.1.0 fs-extra: 8.1.0
got: 11.8.6 got: 11.8.6
@@ -4265,7 +4339,7 @@ snapshots:
'@electron/notarize@2.5.0': '@electron/notarize@2.5.0':
dependencies: dependencies:
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
fs-extra: 9.1.0 fs-extra: 9.1.0
promise-retry: 2.0.1 promise-retry: 2.0.1
transitivePeerDependencies: transitivePeerDependencies:
@@ -4274,7 +4348,7 @@ snapshots:
'@electron/osx-sign@1.3.1': '@electron/osx-sign@1.3.1':
dependencies: dependencies:
compare-version: 0.1.2 compare-version: 0.1.2
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
fs-extra: 10.1.0 fs-extra: 10.1.0
isbinaryfile: 4.0.10 isbinaryfile: 4.0.10
minimist: 1.2.8 minimist: 1.2.8
@@ -4287,7 +4361,7 @@ snapshots:
'@electron/node-gyp': https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2 '@electron/node-gyp': https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2
'@malept/cross-spawn-promise': 2.0.0 '@malept/cross-spawn-promise': 2.0.0
chalk: 4.1.2 chalk: 4.1.2
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
detect-libc: 2.0.4 detect-libc: 2.0.4
fs-extra: 10.1.0 fs-extra: 10.1.0
got: 11.8.6 got: 11.8.6
@@ -4306,7 +4380,7 @@ snapshots:
dependencies: dependencies:
'@electron/asar': 3.2.18 '@electron/asar': 3.2.18
'@malept/cross-spawn-promise': 2.0.0 '@malept/cross-spawn-promise': 2.0.0
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
dir-compare: 4.2.0 dir-compare: 4.2.0
fs-extra: 11.3.0 fs-extra: 11.3.0
minimatch: 9.0.5 minimatch: 9.0.5
@@ -4317,7 +4391,7 @@ snapshots:
'@electron/windows-sign@1.2.2': '@electron/windows-sign@1.2.2':
dependencies: dependencies:
cross-dirname: 0.1.0 cross-dirname: 0.1.0
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
fs-extra: 11.3.0 fs-extra: 11.3.0
minimist: 1.2.8 minimist: 1.2.8
postject: 1.0.0-alpha.6 postject: 1.0.0-alpha.6
@@ -4556,7 +4630,7 @@ snapshots:
'@eslint/config-array@0.21.0': '@eslint/config-array@0.21.0':
dependencies: dependencies:
'@eslint/object-schema': 2.1.6 '@eslint/object-schema': 2.1.6
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
minimatch: 3.1.2 minimatch: 3.1.2
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -4574,7 +4648,7 @@ snapshots:
'@eslint/eslintrc@2.1.4': '@eslint/eslintrc@2.1.4':
dependencies: dependencies:
ajv: 6.12.6 ajv: 6.12.6
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
espree: 9.6.1 espree: 9.6.1
globals: 13.24.0 globals: 13.24.0
ignore: 5.3.2 ignore: 5.3.2
@@ -4588,7 +4662,7 @@ snapshots:
'@eslint/eslintrc@3.3.1': '@eslint/eslintrc@3.3.1':
dependencies: dependencies:
ajv: 6.12.6 ajv: 6.12.6
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
espree: 10.4.0 espree: 10.4.0
globals: 14.0.0 globals: 14.0.0
ignore: 5.3.2 ignore: 5.3.2
@@ -4616,6 +4690,12 @@ snapshots:
'@gar/promisify@1.1.3': {} '@gar/promisify@1.1.3': {}
'@hapi/hoek@9.3.0': {}
'@hapi/topo@5.1.0':
dependencies:
'@hapi/hoek': 9.3.0
'@humanfs/core@0.19.1': {} '@humanfs/core@0.19.1': {}
'@humanfs/node@0.16.6': '@humanfs/node@0.16.6':
@@ -4626,7 +4706,7 @@ snapshots:
'@humanwhocodes/config-array@0.13.0': '@humanwhocodes/config-array@0.13.0':
dependencies: dependencies:
'@humanwhocodes/object-schema': 2.0.3 '@humanwhocodes/object-schema': 2.0.3
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
minimatch: 3.1.2 minimatch: 3.1.2
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -4680,7 +4760,7 @@ snapshots:
'@malept/flatpak-bundler@0.4.0': '@malept/flatpak-bundler@0.4.0':
dependencies: dependencies:
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
fs-extra: 9.1.0 fs-extra: 9.1.0
lodash: 4.17.21 lodash: 4.17.21
tmp-promise: 3.0.3 tmp-promise: 3.0.3
@@ -4903,6 +4983,14 @@ snapshots:
'@rollup/rollup-win32-x64-msvc@4.45.1': '@rollup/rollup-win32-x64-msvc@4.45.1':
optional: true optional: true
'@sideway/address@4.1.5':
dependencies:
'@hapi/hoek': 9.3.0
'@sideway/formula@3.0.1': {}
'@sideway/pinpoint@2.0.0': {}
'@sinclair/typebox@0.27.8': {} '@sinclair/typebox@0.27.8': {}
'@sindresorhus/is@4.6.0': {} '@sindresorhus/is@4.6.0': {}
@@ -4987,7 +5075,7 @@ snapshots:
'@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.19(@types/node@20.19.5)))(svelte@4.2.20)(vite@5.4.19(@types/node@20.19.5))': '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.19(@types/node@20.19.5)))(svelte@4.2.20)(vite@5.4.19(@types/node@20.19.5))':
dependencies: dependencies:
'@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.20)(vite@5.4.19(@types/node@20.19.5)) '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.20)(vite@5.4.19(@types/node@20.19.5))
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
svelte: 4.2.20 svelte: 4.2.20
vite: 5.4.19(@types/node@20.19.5) vite: 5.4.19(@types/node@20.19.5)
transitivePeerDependencies: transitivePeerDependencies:
@@ -4996,7 +5084,7 @@ snapshots:
'@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.19(@types/node@24.0.11)))(svelte@4.2.20)(vite@5.4.19(@types/node@24.0.11))': '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.19(@types/node@24.0.11)))(svelte@4.2.20)(vite@5.4.19(@types/node@24.0.11))':
dependencies: dependencies:
'@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.20)(vite@5.4.19(@types/node@24.0.11)) '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.20)(vite@5.4.19(@types/node@24.0.11))
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
svelte: 4.2.20 svelte: 4.2.20
vite: 5.4.19(@types/node@24.0.11) vite: 5.4.19(@types/node@24.0.11)
transitivePeerDependencies: transitivePeerDependencies:
@@ -5005,7 +5093,7 @@ snapshots:
'@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.4)(vite@6.3.5(@types/node@24.0.11)))(svelte@5.35.4)(vite@6.3.5(@types/node@24.0.11))': '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.4)(vite@6.3.5(@types/node@24.0.11)))(svelte@5.35.4)(vite@6.3.5(@types/node@24.0.11))':
dependencies: dependencies:
'@sveltejs/vite-plugin-svelte': 5.1.0(svelte@5.35.4)(vite@6.3.5(@types/node@24.0.11)) '@sveltejs/vite-plugin-svelte': 5.1.0(svelte@5.35.4)(vite@6.3.5(@types/node@24.0.11))
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
svelte: 5.35.4 svelte: 5.35.4
vite: 6.3.5(@types/node@24.0.11) vite: 6.3.5(@types/node@24.0.11)
transitivePeerDependencies: transitivePeerDependencies:
@@ -5014,7 +5102,7 @@ snapshots:
'@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.19(@types/node@20.19.5))': '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.19(@types/node@20.19.5))':
dependencies: dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.19(@types/node@20.19.5)))(svelte@4.2.20)(vite@5.4.19(@types/node@20.19.5)) '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.19(@types/node@20.19.5)))(svelte@4.2.20)(vite@5.4.19(@types/node@20.19.5))
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
deepmerge: 4.3.1 deepmerge: 4.3.1
kleur: 4.1.5 kleur: 4.1.5
magic-string: 0.30.17 magic-string: 0.30.17
@@ -5028,7 +5116,7 @@ snapshots:
'@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.19(@types/node@24.0.11))': '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.19(@types/node@24.0.11))':
dependencies: dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.19(@types/node@24.0.11)))(svelte@4.2.20)(vite@5.4.19(@types/node@24.0.11)) '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.19(@types/node@24.0.11)))(svelte@4.2.20)(vite@5.4.19(@types/node@24.0.11))
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
deepmerge: 4.3.1 deepmerge: 4.3.1
kleur: 4.1.5 kleur: 4.1.5
magic-string: 0.30.17 magic-string: 0.30.17
@@ -5042,7 +5130,7 @@ snapshots:
'@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.4)(vite@6.3.5(@types/node@24.0.11))': '@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.4)(vite@6.3.5(@types/node@24.0.11))':
dependencies: dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.4)(vite@6.3.5(@types/node@24.0.11)))(svelte@5.35.4)(vite@6.3.5(@types/node@24.0.11)) '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.4)(vite@6.3.5(@types/node@24.0.11)))(svelte@5.35.4)(vite@6.3.5(@types/node@24.0.11))
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
deepmerge: 4.3.1 deepmerge: 4.3.1
kleur: 4.1.5 kleur: 4.1.5
magic-string: 0.30.17 magic-string: 0.30.17
@@ -5148,7 +5236,7 @@ snapshots:
'@typescript-eslint/type-utils': 6.21.0(eslint@9.30.1)(typescript@5.8.3) '@typescript-eslint/type-utils': 6.21.0(eslint@9.30.1)(typescript@5.8.3)
'@typescript-eslint/utils': 6.21.0(eslint@9.30.1)(typescript@5.8.3) '@typescript-eslint/utils': 6.21.0(eslint@9.30.1)(typescript@5.8.3)
'@typescript-eslint/visitor-keys': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
eslint: 9.30.1 eslint: 9.30.1
graphemer: 1.4.0 graphemer: 1.4.0
ignore: 5.3.2 ignore: 5.3.2
@@ -5183,7 +5271,7 @@ snapshots:
'@typescript-eslint/types': 6.21.0 '@typescript-eslint/types': 6.21.0
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.3) '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.3)
'@typescript-eslint/visitor-keys': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
eslint: 9.30.1 eslint: 9.30.1
optionalDependencies: optionalDependencies:
typescript: 5.8.3 typescript: 5.8.3
@@ -5196,7 +5284,7 @@ snapshots:
'@typescript-eslint/types': 8.36.0 '@typescript-eslint/types': 8.36.0
'@typescript-eslint/typescript-estree': 8.36.0(typescript@5.8.3) '@typescript-eslint/typescript-estree': 8.36.0(typescript@5.8.3)
'@typescript-eslint/visitor-keys': 8.36.0 '@typescript-eslint/visitor-keys': 8.36.0
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
eslint: 9.30.1 eslint: 9.30.1
typescript: 5.8.3 typescript: 5.8.3
transitivePeerDependencies: transitivePeerDependencies:
@@ -5206,7 +5294,7 @@ snapshots:
dependencies: dependencies:
'@typescript-eslint/tsconfig-utils': 8.36.0(typescript@5.8.3) '@typescript-eslint/tsconfig-utils': 8.36.0(typescript@5.8.3)
'@typescript-eslint/types': 8.36.0 '@typescript-eslint/types': 8.36.0
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
typescript: 5.8.3 typescript: 5.8.3
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -5229,7 +5317,7 @@ snapshots:
dependencies: dependencies:
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.3) '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.3)
'@typescript-eslint/utils': 6.21.0(eslint@9.30.1)(typescript@5.8.3) '@typescript-eslint/utils': 6.21.0(eslint@9.30.1)(typescript@5.8.3)
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
eslint: 9.30.1 eslint: 9.30.1
ts-api-utils: 1.4.3(typescript@5.8.3) ts-api-utils: 1.4.3(typescript@5.8.3)
optionalDependencies: optionalDependencies:
@@ -5241,7 +5329,7 @@ snapshots:
dependencies: dependencies:
'@typescript-eslint/typescript-estree': 8.36.0(typescript@5.8.3) '@typescript-eslint/typescript-estree': 8.36.0(typescript@5.8.3)
'@typescript-eslint/utils': 8.36.0(eslint@9.30.1)(typescript@5.8.3) '@typescript-eslint/utils': 8.36.0(eslint@9.30.1)(typescript@5.8.3)
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
eslint: 9.30.1 eslint: 9.30.1
ts-api-utils: 2.1.0(typescript@5.8.3) ts-api-utils: 2.1.0(typescript@5.8.3)
typescript: 5.8.3 typescript: 5.8.3
@@ -5256,7 +5344,7 @@ snapshots:
dependencies: dependencies:
'@typescript-eslint/types': 6.21.0 '@typescript-eslint/types': 6.21.0
'@typescript-eslint/visitor-keys': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
globby: 11.1.0 globby: 11.1.0
is-glob: 4.0.3 is-glob: 4.0.3
minimatch: 9.0.3 minimatch: 9.0.3
@@ -5273,7 +5361,7 @@ snapshots:
'@typescript-eslint/tsconfig-utils': 8.36.0(typescript@5.8.3) '@typescript-eslint/tsconfig-utils': 8.36.0(typescript@5.8.3)
'@typescript-eslint/types': 8.36.0 '@typescript-eslint/types': 8.36.0
'@typescript-eslint/visitor-keys': 8.36.0 '@typescript-eslint/visitor-keys': 8.36.0
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
fast-glob: 3.3.3 fast-glob: 3.3.3
is-glob: 4.0.3 is-glob: 4.0.3
minimatch: 9.0.5 minimatch: 9.0.5
@@ -5324,7 +5412,7 @@ snapshots:
dependencies: dependencies:
'@ampproject/remapping': 2.3.0 '@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 0.2.3 '@bcoe/v8-coverage': 0.2.3
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
istanbul-lib-coverage: 3.2.2 istanbul-lib-coverage: 3.2.2
istanbul-lib-report: 3.0.1 istanbul-lib-report: 3.0.1
istanbul-lib-source-maps: 5.0.6 istanbul-lib-source-maps: 5.0.6
@@ -5384,7 +5472,7 @@ snapshots:
agent-base@6.0.2: agent-base@6.0.2:
dependencies: dependencies:
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -5447,7 +5535,7 @@ snapshots:
builder-util-runtime: 9.3.1 builder-util-runtime: 9.3.1
chromium-pickle-js: 0.2.0 chromium-pickle-js: 0.2.0
config-file-ts: 0.2.8-rc1 config-file-ts: 0.2.8-rc1
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
dmg-builder: 26.0.12(electron-builder-squirrel-windows@26.0.12) dmg-builder: 26.0.12(electron-builder-squirrel-windows@26.0.12)
dotenv: 16.6.1 dotenv: 16.6.1
dotenv-expand: 11.0.7 dotenv-expand: 11.0.7
@@ -5500,6 +5588,14 @@ snapshots:
at-least-node@1.0.0: {} at-least-node@1.0.0: {}
axios@1.11.0:
dependencies:
follow-redirects: 1.15.9
form-data: 4.0.4
proxy-from-env: 1.1.0
transitivePeerDependencies:
- debug
axobject-query@4.1.0: {} axobject-query@4.1.0: {}
balanced-match@1.0.2: {} balanced-match@1.0.2: {}
@@ -5547,7 +5643,7 @@ snapshots:
builder-util-runtime@9.3.1: builder-util-runtime@9.3.1:
dependencies: dependencies:
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
sax: 1.4.1 sax: 1.4.1
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -5560,7 +5656,7 @@ snapshots:
builder-util-runtime: 9.3.1 builder-util-runtime: 9.3.1
chalk: 4.1.2 chalk: 4.1.2
cross-spawn: 7.0.6 cross-spawn: 7.0.6
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
fs-extra: 10.1.0 fs-extra: 10.1.0
http-proxy-agent: 7.0.2 http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.6 https-proxy-agent: 7.0.6
@@ -5785,9 +5881,11 @@ snapshots:
dependencies: dependencies:
'@babel/runtime': 7.27.6 '@babel/runtime': 7.27.6
debug@4.4.1: debug@4.4.1(supports-color@5.5.0):
dependencies: dependencies:
ms: 2.1.3 ms: 2.1.3
optionalDependencies:
supports-color: 5.5.0
decompress-response@6.0.0: decompress-response@6.0.0:
dependencies: dependencies:
@@ -5952,7 +6050,7 @@ snapshots:
electron-winstaller@5.4.0: electron-winstaller@5.4.0:
dependencies: dependencies:
'@electron/asar': 3.4.1 '@electron/asar': 3.4.1
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
fs-extra: 7.0.1 fs-extra: 7.0.1
lodash: 4.17.21 lodash: 4.17.21
temp: 0.9.4 temp: 0.9.4
@@ -6191,7 +6289,7 @@ snapshots:
ajv: 6.12.6 ajv: 6.12.6
chalk: 4.1.2 chalk: 4.1.2
cross-spawn: 7.0.6 cross-spawn: 7.0.6
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
doctrine: 3.0.0 doctrine: 3.0.0
escape-string-regexp: 4.0.0 escape-string-regexp: 4.0.0
eslint-scope: 7.2.2 eslint-scope: 7.2.2
@@ -6239,7 +6337,7 @@ snapshots:
ajv: 6.12.6 ajv: 6.12.6
chalk: 4.1.2 chalk: 4.1.2
cross-spawn: 7.0.6 cross-spawn: 7.0.6
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
escape-string-regexp: 4.0.0 escape-string-regexp: 4.0.0
eslint-scope: 8.4.0 eslint-scope: 8.4.0
eslint-visitor-keys: 4.2.1 eslint-visitor-keys: 4.2.1
@@ -6323,7 +6421,7 @@ snapshots:
extract-zip@2.0.1: extract-zip@2.0.1:
dependencies: dependencies:
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
get-stream: 5.2.0 get-stream: 5.2.0
yauzl: 2.10.0 yauzl: 2.10.0
optionalDependencies: optionalDependencies:
@@ -6399,6 +6497,8 @@ snapshots:
flatted@3.3.3: {} flatted@3.3.3: {}
follow-redirects@1.15.9: {}
foreground-child@3.3.1: foreground-child@3.3.1:
dependencies: dependencies:
cross-spawn: 7.0.6 cross-spawn: 7.0.6
@@ -6412,6 +6512,14 @@ snapshots:
hasown: 2.0.2 hasown: 2.0.2
mime-types: 2.1.35 mime-types: 2.1.35
form-data@4.0.4:
dependencies:
asynckit: 0.4.0
combined-stream: 1.0.8
es-set-tostringtag: 2.1.0
hasown: 2.0.2
mime-types: 2.1.35
fs-extra@10.1.0: fs-extra@10.1.0:
dependencies: dependencies:
graceful-fs: 4.2.11 graceful-fs: 4.2.11
@@ -6569,6 +6677,8 @@ snapshots:
graphemer@1.4.0: {} graphemer@1.4.0: {}
has-flag@3.0.0: {}
has-flag@4.0.0: {} has-flag@4.0.0: {}
has-property-descriptors@1.0.2: has-property-descriptors@1.0.2:
@@ -6606,14 +6716,14 @@ snapshots:
dependencies: dependencies:
'@tootallnate/once': 2.0.0 '@tootallnate/once': 2.0.0
agent-base: 6.0.2 agent-base: 6.0.2
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
http-proxy-agent@7.0.2: http-proxy-agent@7.0.2:
dependencies: dependencies:
agent-base: 7.1.4 agent-base: 7.1.4
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -6625,14 +6735,14 @@ snapshots:
https-proxy-agent@5.0.1: https-proxy-agent@5.0.1:
dependencies: dependencies:
agent-base: 6.0.2 agent-base: 6.0.2
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
https-proxy-agent@7.0.6: https-proxy-agent@7.0.6:
dependencies: dependencies:
agent-base: 7.1.4 agent-base: 7.1.4
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -6660,6 +6770,8 @@ snapshots:
ieee754@1.2.1: {} ieee754@1.2.1: {}
ignore-by-default@1.0.1: {}
ignore-walk@5.0.1: ignore-walk@5.0.1:
dependencies: dependencies:
minimatch: 5.1.6 minimatch: 5.1.6
@@ -6758,7 +6870,7 @@ snapshots:
istanbul-lib-source-maps@5.0.6: istanbul-lib-source-maps@5.0.6:
dependencies: dependencies:
'@jridgewell/trace-mapping': 0.3.29 '@jridgewell/trace-mapping': 0.3.29
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
istanbul-lib-coverage: 3.2.2 istanbul-lib-coverage: 3.2.2
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -6781,6 +6893,14 @@ snapshots:
filelist: 1.0.4 filelist: 1.0.4
minimatch: 3.1.2 minimatch: 3.1.2
joi@17.13.3:
dependencies:
'@hapi/hoek': 9.3.0
'@hapi/topo': 5.1.0
'@sideway/address': 4.1.5
'@sideway/formula': 3.0.1
'@sideway/pinpoint': 2.0.0
js-tokens@9.0.1: {} js-tokens@9.0.1: {}
js-yaml@3.14.1: js-yaml@3.14.1:
@@ -7062,6 +7182,19 @@ snapshots:
dependencies: dependencies:
semver: 7.7.2 semver: 7.7.2
nodemon@3.1.10:
dependencies:
chokidar: 3.6.0
debug: 4.4.1(supports-color@5.5.0)
ignore-by-default: 1.0.1
minimatch: 3.1.2
pstree.remy: 1.1.8
semver: 7.7.2
simple-update-notifier: 2.0.0
supports-color: 5.5.0
touch: 3.1.1
undefsafe: 2.0.5
nopt@6.0.0: nopt@6.0.0:
dependencies: dependencies:
abbrev: 1.1.1 abbrev: 1.1.1
@@ -7307,6 +7440,10 @@ snapshots:
err-code: 2.0.3 err-code: 2.0.3
retry: 0.12.0 retry: 0.12.0
proxy-from-env@1.1.0: {}
pstree.remy@1.1.8: {}
publint@0.1.16: publint@0.1.16:
dependencies: dependencies:
npm-packlist: 5.1.3 npm-packlist: 5.1.3
@@ -7337,7 +7474,7 @@ snapshots:
read-binary-file-arch@1.0.6: read-binary-file-arch@1.0.6:
dependencies: dependencies:
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -7554,7 +7691,7 @@ snapshots:
socks-proxy-agent@7.0.0: socks-proxy-agent@7.0.0:
dependencies: dependencies:
agent-base: 6.0.2 agent-base: 6.0.2
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
socks: 2.8.5 socks: 2.8.5
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -7643,10 +7780,14 @@ snapshots:
sumchecker@3.0.1: sumchecker@3.0.1:
dependencies: dependencies:
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
supports-color@5.5.0:
dependencies:
has-flag: 3.0.0
supports-color@7.2.0: supports-color@7.2.0:
dependencies: dependencies:
has-flag: 4.0.0 has-flag: 4.0.0
@@ -7830,6 +7971,8 @@ snapshots:
totalist@3.0.1: {} totalist@3.0.1: {}
touch@3.1.1: {}
tree-kill@1.2.2: {} tree-kill@1.2.2: {}
trouter@2.0.1: trouter@2.0.1:
@@ -7892,6 +8035,8 @@ snapshots:
ufo@1.6.1: {} ufo@1.6.1: {}
undefsafe@2.0.5: {}
undici-types@5.26.5: {} undici-types@5.26.5: {}
undici-types@6.21.0: {} undici-types@6.21.0: {}
@@ -7930,7 +8075,7 @@ snapshots:
vite-node@1.6.1(@types/node@20.19.5): vite-node@1.6.1(@types/node@20.19.5):
dependencies: dependencies:
cac: 6.7.14 cac: 6.7.14
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
pathe: 1.1.2 pathe: 1.1.2
picocolors: 1.1.1 picocolors: 1.1.1
vite: 5.4.19(@types/node@20.19.5) vite: 5.4.19(@types/node@20.19.5)
@@ -8004,7 +8149,7 @@ snapshots:
'@vitest/utils': 1.6.1 '@vitest/utils': 1.6.1
acorn-walk: 8.3.4 acorn-walk: 8.3.4
chai: 4.5.0 chai: 4.5.0
debug: 4.4.1 debug: 4.4.1(supports-color@5.5.0)
execa: 8.0.1 execa: 8.0.1
local-pkg: 0.5.1 local-pkg: 0.5.1
magic-string: 0.30.17 magic-string: 0.30.17
@@ -8029,6 +8174,16 @@ snapshots:
- supports-color - supports-color
- terser - terser
wait-on@8.0.4:
dependencies:
axios: 1.11.0
joi: 17.13.3
lodash: 4.17.21
minimist: 1.2.8
rxjs: 7.8.2
transitivePeerDependencies:
- debug
wcwidth@1.0.1: wcwidth@1.0.1:
dependencies: dependencies:
defaults: 1.0.4 defaults: 1.0.4