diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md
new file mode 100644
index 000000000..f80cd4540
--- /dev/null
+++ b/.github/copilot-instructions.md
@@ -0,0 +1,233 @@
+# UserFrosting 6 Monorepo - AI Coding Agent Instructions
+
+## Architecture Overview
+
+**UserFrosting** is a PHP/JavaScript user management framework built on Slim, Twig, Eloquent ORM, Vue 3, and Vite. Version 6 is a **monorepo** containing multiple interdependent packages.
+
+### Sprinkle Architecture
+
+The core architectural pattern is **Sprinkles** - composable modules that extend functionality through dependency injection:
+
+- **Sprinkle Recipe**: Implements `SprinkleRecipe` interface with methods:
+ - `getName()`: Human-readable name
+ - `getPath()`: Absolute path to sprinkle directory
+ - `getSprinkles()`: Array of dependent sprinkle class names (loaded recursively, dependencies first)
+ - `getRoutes()`: Route definition classes
+ - `getServices()`: PHP-DI service provider classes
+
+- **Optional Recipe Interfaces**:
+ - `BakeryRecipe`: Custom CLI commands via `getBakeryCommands()`
+ - `MiddlewareRecipe`: PSR-15 middleware via `getMiddlewares()`
+ - `EventListenerRecipe`: Event listeners via `getEventListeners()`
+ - `TwigExtensionRecipe`: Twig extensions via `getTwigExtensions()`
+ - `MigrationRecipe`: Database migrations via `getMigrations()`
+
+**Example**: [MyApp.php](packages/skeleton/app/src/MyApp.php) depends on Core → Account → Admin sprinkles. Dependencies are resolved automatically by `SprinkleManager`.
+
+### Package Structure
+
+```
+packages/
+ framework/ # Core abstractions (Sprinkle system, UniformResourceLocator, PHP-DI bridges)
+ sprinkle-core/ # Essential services (config, DB, Twig, sessions, i18n, alerts, throttling)
+ sprinkle-account/ # Authentication, users, roles, permissions
+ sprinkle-admin/ # Admin UI (users, roles, permissions management)
+ theme-pink-cupcake/# UIKit-based theme (optional)
+ skeleton/ # Full application template (dev entry point in monorepo)
+```
+
+`skeleton` is the main app that ties everything together. While it is the main entry point for the monorepo, it should be used on it's own by the end user, with other sprinkles added as dependencies through Composer and NPM. Skeleton is meant as a starting point for new projects, and each file can be customized as needed.
+
+## Dual Build System (PHP + TypeScript)
+
+### PHP Side
+
+- **Composer monorepo**: Managed by [symplify/monorepo-builder](https://github.com/symplify/monorepo-builder)
+- **Critical**: Edit individual `packages/*/composer.json`, NOT root `composer.json`
+- After edits: `vendor/bin/monorepo-builder merge` to sync root composer.json
+- Composer type: `userfrosting-sprinkle` for packages
+
+### TypeScript/Frontend Side
+
+- **NPM workspaces**: All sprinkles are npm packages with frontend assets
+- **Monorepo dev mode**: Uses `userfrosting:monorepo` export condition in package.json
+ - Points to source `.ts` files for HMR (Hot Module Reload)
+ - Vite resolves imports to source code, not dist builds
+ - Root [vite.config.ts](vite.config.ts) sets `conditions: ['userfrosting:monorepo', 'import']`
+
+- **Production build**: Each sprinkle builds to `dist/` with conditional exports
+ ```json
+ "exports": {
+ ".": {
+ "userfrosting:monorepo": "./app/assets/index.ts", // Dev: source
+ "import": "./dist/index.js", // Prod: built
+ "types": "./dist/index.d.ts"
+ }
+ }
+ ```
+
+- **Key frontend pattern**: Sprinkles expose composables, stores, routes, views via subpath exports
+ - Example: `import { useAuthStore } from '@userfrosting/sprinkle-account/stores'`
+ - See [sprinkle-core/package.json](packages/sprinkle-core/package.json) exports
+
+## Critical Workflows
+
+### Development Servers
+
+**Option 1 - VS Code Task** (recommended):
+```bash
+# Run "==> Serve" task from Command Palette (Cmd/Ctrl+Shift+P)
+# Starts both PHP + Vite in parallel
+```
+
+**Option 2 - Manual**:
+```bash
+# Terminal 1: PHP dev server
+php bakery serve
+
+# Terminal 2: Vite dev server with HMR
+npm run dev
+```
+
+App: http://localhost:8080 | Vite: http://localhost:5173
+
+### Building Packages
+
+**Build all sprinkle TypeScript packages**:
+```bash
+npm run build
+# Compiles each workspace to dist/ with type definitions
+```
+
+**Build specific sprinkle**:
+```bash
+npm run build:core # @userfrosting/sprinkle-core
+npm run build:account # @userfrosting/sprinkle-account
+npm run build:admin # @userfrosting/sprinkle-admin
+npm run build:theme # @userfrosting/theme-pink-cupcake
+```
+
+**IMPORTANT**: The monorepo dev mode (`userfrosting:monorepo` condition) means Vite HMR works WITHOUT building. Only build when:
+- Testing production builds
+- Publishing to NPM
+- Verifying type definitions
+
+### Testing
+
+**PHP tests** (PHPUnit):
+```bash
+# Run specific suite
+vendor/bin/phpunit --testsuite="Core Sprinkle"
+vendor/bin/phpunit --testsuite="Framework"
+
+# Or use VS Code task "PHPUnit"
+```
+
+**Frontend tests** (Vitest):
+```bash
+npm run test # Watch mode
+npm run coverage # With coverage report
+```
+
+- Root [vitest.config.ts](vitest.config.ts) runs tests from all workspace packages
+- Uses `happy-dom` environment
+- Coverage: `_meta/_coverage/`
+
+### Database Setup
+
+```bash
+php bakery bake # Run migrations + seeders
+php bakery migrate # Migrations only
+```
+
+## Project Conventions
+
+### File Organization
+
+- **PHP**: `packages/*/app/src/` - Source code
+- **PHP Tests**: `packages/*/app/tests/` - PHPUnit tests
+- **Frontend**: `packages/*/app/assets/` - TypeScript/Vue source
+- **Frontend Tests**: `packages/*/app/assets/tests/` - Vitest specs
+- **Templates**: `packages/*/app/templates/` - Twig files (located via UniformResourceLocator)
+- **Config**: `packages/*/app/config/` - YAML/PHP config files
+- **Routes**: `packages/*/app/src/Routes/` - Slim route definitions
+
+### Naming Patterns
+
+- **Sprinkle class**: `{SprinkleName}` (e.g., `Core`, `Account`, `Admin`)
+- **Service providers**: `*Service.php` (e.g., `DatabaseService`, `TwigService`)
+- **Routes**: `*Routes.php` implementing `RouteDefinitionInterface`
+- **Bakery commands**: `*Command.php` extending Symfony Console Command
+- **Tests**: `*Test.php` for PHP, `*.spec.ts` for TypeScript
+
+### Dependency Injection
+
+Uses **PHP-DI** with autowiring enabled:
+- Constructor injection preferred
+- Attributes supported (`#[Inject]`)
+- Service definitions in classes implementing `ServicesProviderInterface`
+- Example: [TwigService.php](packages/sprinkle-core/app/src/ServicesProvider/TwigService.php)
+
+### Frontend State Management
+
+- **Pinia stores** for global state (persisted with `pinia-plugin-persistedstate`)
+- Key stores: `useAuthStore`, `useConfigStore`, `useTranslator`, `useAlertsStore`
+- Import pattern: `from '@userfrosting/sprinkle-*/stores'`
+
+### Vue Router Integration
+
+Routes defined per-sprinkle, merged in skeleton:
+```typescript
+// packages/skeleton/app/assets/router/index.ts
+import AccountRoutes from '@userfrosting/sprinkle-account/routes'
+import AdminRoutes from '@userfrosting/sprinkle-admin/routes'
+
+const router = createRouter({
+ routes: [
+ ...ErrorRoutes,
+ ...AccountRoutes,
+ ...AdminRoutes
+ ]
+})
+```
+
+## Release Process
+
+**Creating a new version** (handled by monorepo-builder):
+```bash
+vendor/bin/monorepo-builder release 6.0.1 # Specific version
+vendor/bin/monorepo-builder release patch # Auto-increment patch
+vendor/bin/monorepo-builder release minor # Auto-increment minor
+```
+
+This updates:
+- All `packages/*/composer.json` versions
+- All `packages/*/package.json` versions (via custom [NpmVersionWorker](utils/NpmVersionWorker.php))
+- Creates git tag
+- Root composer.json
+
+**Publish to NPM**:
+```bash
+npm publish --access public --workspaces
+```
+
+## Common Pitfalls
+
+1. **Editing root composer.json directly**: Always edit package-level files, then merge
+2. **Missing builds**: In prod, sprinkles need `dist/` built; in dev, monorepo mode bypasses this and MUST use source TS files
+3. **Sprinkle order matters**: Dependencies are loaded first, then main sprinkle
+4. **Vite HMR not working**: Check `userfrosting:monorepo` condition is set in root vite.config.ts
+5. **PHP-DI not resolving**: Verify service provider is registered in sprinkle's `getServices()`
+
+## Key Files to Reference
+
+- [SprinkleManager.php](packages/framework/src/Sprinkle/SprinkleManager.php) - Sprinkle loading logic
+- [Cupcake.php](packages/framework/src/Cupcake.php) - Base application class
+- [MyApp.php](packages/skeleton/app/src/MyApp.php) - Example sprinkle implementation
+- [vite.config.ts](vite.config.ts) - Monorepo Vite configuration
+- [monorepo-builder.php](monorepo-builder.php) - Composer monorepo config
+
+## Resources
+
+- [Official Docs](https://learn.userfrosting.com)
+- [Chat](https://chat.userfrosting.com)
diff --git a/.github/workflows/Frontend.yml b/.github/workflows/Frontend.yml
index e10641553..cf722c338 100644
--- a/.github/workflows/Frontend.yml
+++ b/.github/workflows/Frontend.yml
@@ -18,10 +18,10 @@ jobs:
strategy:
fail-fast: false
matrix:
- node_versions: [18, 20]
+ node_versions: [18, 22, 24]
runs-on: ubuntu-latest
- name: Skeleton Build - Node ${{ matrix.node_versions }}
+ name: Build - Node ${{ matrix.node_versions }}
steps:
- uses: actions/checkout@v4
@@ -33,14 +33,17 @@ jobs:
- name: Install Dependencies
run: npm ci
- - name: Test
+ - name: Build Packages
+ run: npm run build
+
+ - name: Build Skeleton
run: npm run --workspace=userfrosting vite:build
Coverage:
strategy:
fail-fast: false
matrix:
- node_versions: [18, 20]
+ node_versions: [18, 22, 24]
runs-on: ubuntu-latest
name: Test & Coverage - Node ${{ matrix.node_versions }}
@@ -55,7 +58,7 @@ jobs:
- name: Install Dependencies
run: npm ci
- - name: Test
+ - name: Test & Coverage
run: npm run coverage
- name: Upload coverage to Codecov
@@ -82,7 +85,7 @@ jobs:
- uses: actions/setup-node@v4
with:
- node-version: 20
+ node-version: 24
- name: Install Dependencies
run: npm ci
diff --git a/.gitignore b/.gitignore
index af211cb05..a5ab26c97 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,6 +13,9 @@ vendor/
# Ignore node modules
node_modules/
+# Ignore build output
+packages/*/dist/
+
# Ignore compiled assets
public/assets/
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 4f746378d..613603363 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -9,8 +9,8 @@
{
"label": "==> Serve",
"dependsOn": [
- "Workspace - Bakery Serve",
- "Skeleton - Vite Dev"
+ "Bakery Serve",
+ "Vite Dev"
],
"problemMatcher": []
},
@@ -19,67 +19,83 @@
* Workspace NPM Tasks
*/
{
- "label": "Workspace - npm install",
+ "label": "npm install",
"type": "shell",
"command": "npm install"
},
{
- "label": "Workspace - npm update",
+ "label": "npm update",
"type": "shell",
"command": "npm update"
},
{
- "label": "Workspace - Format",
+ "label": "Format",
"type": "shell",
"command": "npm run format"
},
{
- "label": "Workspace - Type Check",
+ "label": "Type Check",
"type": "shell",
"command": "npm run typecheck"
},
{
- "label": "Workspace - Eslint",
+ "label": "Eslint",
"type": "shell",
"command": "npm run lint"
},
{
- "label": "Workspace - Tests",
+ "label": "Tests",
"type": "shell",
"command": "npm run test"
},
{
- "label": "Workspace - Coverage",
+ "label": "Coverage",
"type": "shell",
"command": "npm run coverage"
},
+ {
+ "label": "Vite Dev",
+ "type": "shell",
+ "command": "npm run dev",
+ "isBackground": true
+ },
+ {
+ "label": "Build",
+ "type": "shell",
+ "command": "npm run build"
+ },
+ {
+ "label": "Build - Skeleton",
+ "type": "shell",
+ "command": "npm run --workspace=userfrosting vite:build"
+ },
/**
* Workspace PHP Tasks
*/
{
- "label": "Workspace - Bakery Serve",
+ "label": "Bakery Serve",
"type": "shell",
"command": "php bakery serve",
"isBackground": true
},
{
- "label": "Workspace - Composer Update",
+ "label": "Composer Update",
"type": "shell",
"command": "composer update"
},
{
- "label": "Workspace - Merge composer.json",
+ "label": "Merge composer.json",
"type": "shell",
"command": "vendor/bin/monorepo-builder merge"
},
{
- "label": "Workspace - Composer Validate",
+ "label": "Composer Validate",
"type": "shell",
"command": "vendor/bin/monorepo-builder validate"
},
{
- "label": "Workspace - PHPUnit",
+ "label": "PHPUnit",
"type": "shell",
"options": {
"env": {
@@ -93,17 +109,17 @@
}
},
{
- "label": "Workspace - PHP CS Fixer",
+ "label": "PHP CS Fixer",
"type": "shell",
"command": "vendor/bin/php-cs-fixer fix"
},
{
- "label": "Workspace - PHPStan",
+ "label": "PHPStan",
"type": "shell",
"command": "vendor/bin/phpstan analyse"
},
{
- "label": "Workspace - Update PHP Headers",
+ "label": "Update PHP Headers",
"type": "shell",
"command": [
"vendor/bin/php-cs-fixer fix --config packages/framework/.php-cs-fixer.php &&",
@@ -113,112 +129,6 @@
"vendor/bin/php-cs-fixer fix --config packages/skeleton/.php-cs-fixer.headers.php"
],
},
-
- /**
- * UserFrosting (skeleton) Tasks
- */
- {
- "label": "Skeleton - Vite Dev",
- "type": "shell",
- "command": "npm run --workspace=userfrosting vite:dev",
- "isBackground": true
- },
- {
- "label": "Skeleton - Vite Build",
- "type": "shell",
- "command": "npm run --workspace=userfrosting vite:build"
- },
- {
- "label": "Skeleton - PHPUnit",
- "type": "shell",
- "options": {
- "env": {
- "XDEBUG_CONFIG": "idekey=VSCODE"
- }
- },
- "command": "printf '\\33c\\e[3J' && vendor/bin/phpunit --testsuite 'Skeleton'"
- },
- {
- "label": "Skeleton - PHPStan",
- "type": "shell",
- "command": "vendor/bin/phpstan analyse packages/skeleton"
- },
-
- /**
- * Sprinkle Core Tasks
- */
- {
- "label": "Core - PHPUnit",
- "type": "shell",
- "options": {
- "env": {
- "XDEBUG_CONFIG": "idekey=VSCODE"
- }
- },
- "command": "printf '\\33c\\e[3J' && vendor/bin/phpunit --testsuite 'Core Sprinkle'"
- },
- {
- "label": "Core - PHPStan",
- "type": "shell",
- "command": "vendor/bin/phpstan analyse packages/sprinkle-core"
- },
-
- /**
- * Sprinkle Account Tasks
- */
- {
- "label": "Account - PHPUnit",
- "type": "shell",
- "options": {
- "env": {
- "XDEBUG_CONFIG": "idekey=VSCODE"
- }
- },
- "command": "printf '\\33c\\e[3J' && vendor/bin/phpunit --testsuite 'Account Sprinkle'"
- },
- {
- "label": "Account - PHPStan",
- "type": "shell",
- "command": "vendor/bin/phpstan analyse packages/sprinkle-account"
- },
-
- /**
- * Sprinkle Admin Tasks
- */
- {
- "label": "Admin - PHPUnit",
- "type": "shell",
- "options": {
- "env": {
- "XDEBUG_CONFIG": "idekey=VSCODE"
- }
- },
- "command": "printf '\\33c\\e[3J' && vendor/bin/phpunit --testsuite 'Admin Sprinkle'"
- },
- {
- "label": "Admin - PHPStan",
- "type": "shell",
- "command": "vendor/bin/phpstan analyse packages/sprinkle-admin"
- },
-
- /**
- * Framework Tasks
- */
- {
- "label": "Framework - PHPUnit",
- "type": "shell",
- "options": {
- "env": {
- "XDEBUG_CONFIG": "idekey=VSCODE"
- }
- },
- "command": "printf '\\33c\\e[3J' && vendor/bin/phpunit --testsuite 'Framework'"
- },
- {
- "label": "Framework - PHPStan",
- "type": "shell",
- "command": "vendor/bin/phpstan analyse packages/framework"
- },
/**
* Docker Tasks
diff --git a/package-lock.json b/package-lock.json
index 4b9476c65..34bec771b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,7 +11,10 @@
"packages/sprinkle-admin",
"packages/theme-pink-cupcake",
"packages/skeleton"
- ]
+ ],
+ "devDependencies": {
+ "vite-plugin-dts": "^4.5.4"
+ }
},
"node_modules/@ampproject/remapping": {
"version": "2.3.0",
@@ -93,6 +96,16 @@
"url": "https://opencollective.com/babel"
}
},
+ "node_modules/@babel/core/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
"node_modules/@babel/generator": {
"version": "7.28.5",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz",
@@ -140,6 +153,33 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets/node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/@babel/helper-create-class-features-plugin": {
"version": "7.28.5",
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz",
@@ -162,6 +202,16 @@
"@babel/core": "^7.0.0"
}
},
+ "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
"node_modules/@babel/helper-create-regexp-features-plugin": {
"version": "7.28.5",
"resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz",
@@ -181,6 +231,17 @@
"@babel/core": "^7.0.0"
}
},
+ "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "peer": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
"node_modules/@babel/helper-define-polyfill-provider": {
"version": "0.6.5",
"resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz",
@@ -1648,6 +1709,17 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/preset-env/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "peer": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
"node_modules/@babel/preset-modules": {
"version": "0.1.6-no-external-plugins",
"resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
@@ -1745,6 +1817,7 @@
"os": [
"aix"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -1762,6 +1835,7 @@
"os": [
"android"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -1779,6 +1853,7 @@
"os": [
"android"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -1796,6 +1871,7 @@
"os": [
"android"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -1813,6 +1889,7 @@
"os": [
"darwin"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -1830,6 +1907,7 @@
"os": [
"darwin"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -1847,6 +1925,7 @@
"os": [
"freebsd"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -1864,6 +1943,7 @@
"os": [
"freebsd"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -1881,6 +1961,7 @@
"os": [
"linux"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -1898,6 +1979,7 @@
"os": [
"linux"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -1915,6 +1997,7 @@
"os": [
"linux"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -1932,6 +2015,7 @@
"os": [
"linux"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -1949,6 +2033,7 @@
"os": [
"linux"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -1966,6 +2051,7 @@
"os": [
"linux"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -1983,6 +2069,7 @@
"os": [
"linux"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -2000,6 +2087,7 @@
"os": [
"linux"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -2017,6 +2105,7 @@
"os": [
"linux"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -2034,6 +2123,7 @@
"os": [
"netbsd"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -2051,6 +2141,7 @@
"os": [
"netbsd"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -2068,6 +2159,7 @@
"os": [
"openbsd"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -2085,6 +2177,7 @@
"os": [
"openbsd"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -2102,6 +2195,7 @@
"os": [
"openharmony"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -2119,6 +2213,7 @@
"os": [
"sunos"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -2136,6 +2231,7 @@
"os": [
"win32"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -2153,6 +2249,7 @@
"os": [
"win32"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -2170,6 +2267,7 @@
"os": [
"win32"
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -2231,6 +2329,30 @@
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
+ "node_modules/@eslint/config-array/node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/@eslint/config-array/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/@eslint/config-helpers": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz",
@@ -2281,6 +2403,41 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/@eslint/eslintrc/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
"node_modules/@eslint/eslintrc/node_modules/js-yaml": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
@@ -2294,6 +2451,26 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@eslint/eslintrc/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/@eslint/js": {
"version": "9.39.2",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz",
@@ -2477,6 +2654,29 @@
"url": "https://github.com/sponsors/nzakas"
}
},
+ "node_modules/@isaacs/balanced-match": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
+ "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/@isaacs/brace-expansion": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz",
+ "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@isaacs/balanced-match": "^4.0.1"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
@@ -2629,16 +2829,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/@jest/types/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/@jest/types/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -2839,6 +3029,78 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@microsoft/api-extractor": {
+ "version": "7.55.2",
+ "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.55.2.tgz",
+ "integrity": "sha512-1jlWO4qmgqYoVUcyh+oXYRztZde/pAi7cSVzBz/rc+S7CoVzDasy8QE13dx6sLG4VRo8SfkkLbFORR6tBw4uGQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@microsoft/api-extractor-model": "7.32.2",
+ "@microsoft/tsdoc": "~0.16.0",
+ "@microsoft/tsdoc-config": "~0.18.0",
+ "@rushstack/node-core-library": "5.19.1",
+ "@rushstack/rig-package": "0.6.0",
+ "@rushstack/terminal": "0.19.5",
+ "@rushstack/ts-command-line": "5.1.5",
+ "diff": "~8.0.2",
+ "lodash": "~4.17.15",
+ "minimatch": "10.0.3",
+ "resolve": "~1.22.1",
+ "semver": "~7.5.4",
+ "source-map": "~0.6.1",
+ "typescript": "5.8.2"
+ },
+ "bin": {
+ "api-extractor": "bin/api-extractor"
+ }
+ },
+ "node_modules/@microsoft/api-extractor-model": {
+ "version": "7.32.2",
+ "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.32.2.tgz",
+ "integrity": "sha512-Ussc25rAalc+4JJs9HNQE7TuO9y6jpYQX9nWD1DhqUzYPBr3Lr7O9intf+ZY8kD5HnIqeIRJX7ccCT0QyBy2Ww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@microsoft/tsdoc": "~0.16.0",
+ "@microsoft/tsdoc-config": "~0.18.0",
+ "@rushstack/node-core-library": "5.19.1"
+ }
+ },
+ "node_modules/@microsoft/api-extractor/node_modules/typescript": {
+ "version": "5.8.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz",
+ "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/@microsoft/tsdoc": {
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.16.0.tgz",
+ "integrity": "sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@microsoft/tsdoc-config": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.18.0.tgz",
+ "integrity": "sha512-8N/vClYyfOH+l4fLkkr9+myAoR6M7akc8ntBJ4DJdWH2b09uVfr71+LTMpNyG19fNqWDg8KEDZhx5wxuqHyGjw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@microsoft/tsdoc": "0.16.0",
+ "ajv": "~8.12.0",
+ "jju": "~1.4.0",
+ "resolve": "~1.22.2"
+ }
+ },
"node_modules/@modyfi/vite-plugin-yaml": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@modyfi/vite-plugin-yaml/-/vite-plugin-yaml-1.1.1.tgz",
@@ -2854,6 +3116,42 @@
"vite": ">=3.2.7"
}
},
+ "node_modules/@modyfi/vite-plugin-yaml/node_modules/@rollup/pluginutils": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
+ "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@modyfi/vite-plugin-yaml/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/@nuxt/friendly-errors-webpack-plugin": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/@nuxt/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-2.6.0.tgz",
@@ -2930,15 +3228,15 @@
}
},
"node_modules/@rollup/pluginutils": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
- "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz",
+ "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"estree-walker": "^2.0.2",
- "picomatch": "^2.3.1"
+ "picomatch": "^4.0.2"
},
"engines": {
"node": ">=14.0.0"
@@ -2964,7 +3262,8 @@
"optional": true,
"os": [
"android"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-android-arm64": {
"version": "4.55.1",
@@ -2978,7 +3277,8 @@
"optional": true,
"os": [
"android"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-darwin-arm64": {
"version": "4.55.1",
@@ -2992,7 +3292,8 @@
"optional": true,
"os": [
"darwin"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-darwin-x64": {
"version": "4.55.1",
@@ -3006,7 +3307,8 @@
"optional": true,
"os": [
"darwin"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-freebsd-arm64": {
"version": "4.55.1",
@@ -3020,7 +3322,8 @@
"optional": true,
"os": [
"freebsd"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-freebsd-x64": {
"version": "4.55.1",
@@ -3034,7 +3337,8 @@
"optional": true,
"os": [
"freebsd"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
"version": "4.55.1",
@@ -3048,7 +3352,8 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
"version": "4.55.1",
@@ -3062,7 +3367,8 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
"version": "4.55.1",
@@ -3076,7 +3382,8 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
"version": "4.55.1",
@@ -3090,7 +3397,8 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-linux-loong64-gnu": {
"version": "4.55.1",
@@ -3104,7 +3412,8 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-linux-loong64-musl": {
"version": "4.55.1",
@@ -3118,7 +3427,8 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-linux-ppc64-gnu": {
"version": "4.55.1",
@@ -3132,7 +3442,8 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-linux-ppc64-musl": {
"version": "4.55.1",
@@ -3146,7 +3457,8 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
"version": "4.55.1",
@@ -3160,7 +3472,8 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-linux-riscv64-musl": {
"version": "4.55.1",
@@ -3174,7 +3487,8 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
"version": "4.55.1",
@@ -3188,7 +3502,8 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
"version": "4.55.1",
@@ -3202,7 +3517,8 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-linux-x64-musl": {
"version": "4.55.1",
@@ -3216,7 +3532,8 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-openbsd-x64": {
"version": "4.55.1",
@@ -3230,7 +3547,8 @@
"optional": true,
"os": [
"openbsd"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-openharmony-arm64": {
"version": "4.55.1",
@@ -3244,7 +3562,8 @@
"optional": true,
"os": [
"openharmony"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
"version": "4.55.1",
@@ -3258,7 +3577,8 @@
"optional": true,
"os": [
"win32"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
"version": "4.55.1",
@@ -3272,7 +3592,8 @@
"optional": true,
"os": [
"win32"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-win32-x64-gnu": {
"version": "4.55.1",
@@ -3286,7 +3607,8 @@
"optional": true,
"os": [
"win32"
- ]
+ ],
+ "peer": true
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
"version": "4.55.1",
@@ -3300,7 +3622,109 @@
"optional": true,
"os": [
"win32"
- ]
+ ],
+ "peer": true
+ },
+ "node_modules/@rushstack/node-core-library": {
+ "version": "5.19.1",
+ "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.19.1.tgz",
+ "integrity": "sha512-ESpb2Tajlatgbmzzukg6zyAhH+sICqJR2CNXNhXcEbz6UGCQfrKCtkxOpJTftWc8RGouroHG0Nud1SJAszvpmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "~8.13.0",
+ "ajv-draft-04": "~1.0.0",
+ "ajv-formats": "~3.0.1",
+ "fs-extra": "~11.3.0",
+ "import-lazy": "~4.0.0",
+ "jju": "~1.4.0",
+ "resolve": "~1.22.1",
+ "semver": "~7.5.4"
+ },
+ "peerDependencies": {
+ "@types/node": "*"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rushstack/node-core-library/node_modules/ajv": {
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz",
+ "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.4.1"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/@rushstack/problem-matcher": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@rushstack/problem-matcher/-/problem-matcher-0.1.1.tgz",
+ "integrity": "sha512-Fm5XtS7+G8HLcJHCWpES5VmeMyjAKaWeyZU5qPzZC+22mPlJzAsOxymHiWIfuirtPckX3aptWws+K2d0BzniJA==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/node": "*"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rushstack/rig-package": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.6.0.tgz",
+ "integrity": "sha512-ZQmfzsLE2+Y91GF15c65L/slMRVhF6Hycq04D4TwtdGaUAbIXXg9c5pKA5KFU7M4QMaihoobp9JJYpYcaY3zOw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "resolve": "~1.22.1",
+ "strip-json-comments": "~3.1.1"
+ }
+ },
+ "node_modules/@rushstack/terminal": {
+ "version": "0.19.5",
+ "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.19.5.tgz",
+ "integrity": "sha512-6k5tpdB88G0K7QrH/3yfKO84HK9ggftfUZ51p7fePyCE7+RLLHkWZbID9OFWbXuna+eeCFE7AkKnRMHMxNbz7Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@rushstack/node-core-library": "5.19.1",
+ "@rushstack/problem-matcher": "0.1.1",
+ "supports-color": "~8.1.1"
+ },
+ "peerDependencies": {
+ "@types/node": "*"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rushstack/ts-command-line": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-5.1.5.tgz",
+ "integrity": "sha512-YmrFTFUdHXblYSa+Xc9OO9FsL/XFcckZy0ycQ6q7VSBsVs5P0uD9vcges5Q9vctGlVdu27w+Ct6IuJ458V0cTQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@rushstack/terminal": "0.19.5",
+ "@types/argparse": "1.0.38",
+ "argparse": "~1.0.9",
+ "string-argv": "~0.3.1"
+ }
},
"node_modules/@sec-ant/readable-stream": {
"version": "0.4.1",
@@ -3493,19 +3917,6 @@
}
}
},
- "node_modules/@symfony/webpack-encore/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/@tsconfig/node20": {
"version": "20.1.8",
"resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.8.tgz",
@@ -3513,6 +3924,13 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/argparse": {
+ "version": "1.0.38",
+ "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz",
+ "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/body-parser": {
"version": "1.19.6",
"resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz",
@@ -3618,9 +4036,9 @@
}
},
"node_modules/@types/express-serve-static-core": {
- "version": "4.19.7",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz",
- "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==",
+ "version": "4.19.8",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz",
+ "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3696,9 +4114,9 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "20.19.27",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.27.tgz",
- "integrity": "sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==",
+ "version": "20.19.28",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.28.tgz",
+ "integrity": "sha512-VyKBr25BuFDzBFCK5sUM6ZXiWfqgCTwTAOK8qzGV/m9FCirXYDlmczJ+d5dXBAQALGCdRRdbteKYfJ84NGEusw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4018,16 +4436,6 @@
"typescript": ">=4.8.4 <6.0.0"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
@@ -4296,30 +4704,30 @@
}
},
"node_modules/@volar/language-core": {
- "version": "2.4.15",
- "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.15.tgz",
- "integrity": "sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==",
+ "version": "2.4.27",
+ "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.27.tgz",
+ "integrity": "sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@volar/source-map": "2.4.15"
+ "@volar/source-map": "2.4.27"
}
},
"node_modules/@volar/source-map": {
- "version": "2.4.15",
- "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.15.tgz",
- "integrity": "sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg==",
+ "version": "2.4.27",
+ "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.27.tgz",
+ "integrity": "sha512-ynlcBReMgOZj2i6po+qVswtDUeeBRCTgDurjMGShbm8WYZgJ0PA4RmtebBJ0BCYol1qPv3GQF6jK7C9qoVc7lg==",
"dev": true,
"license": "MIT"
},
"node_modules/@volar/typescript": {
- "version": "2.4.15",
- "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.15.tgz",
- "integrity": "sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==",
+ "version": "2.4.27",
+ "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.27.tgz",
+ "integrity": "sha512-eWaYCcl/uAPInSK2Lze6IqVWaBu/itVqR5InXcHXFyles4zO++Mglt3oxdgj75BDcv1Knr9Y93nowS8U3wqhxg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@volar/language-core": "2.4.15",
+ "@volar/language-core": "2.4.27",
"path-browserify": "^1.0.1",
"vscode-uri": "^3.0.8"
}
@@ -4390,18 +4798,6 @@
"source-map-js": "^1.2.1"
}
},
- "node_modules/@vue/compiler-core/node_modules/entities": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.0.tgz",
- "integrity": "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
"node_modules/@vue/compiler-dom": {
"version": "3.5.26",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.26.tgz",
@@ -4521,17 +4917,17 @@
}
},
"node_modules/@vue/language-core": {
- "version": "2.2.12",
- "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.12.tgz",
- "integrity": "sha512-IsGljWbKGU1MZpBPN+BvPAdr55YPkj2nB/TBNGNC32Vy2qLG25DYu/NBN2vNtZqdRbTRjaoYrahLrToim2NanA==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.0.tgz",
+ "integrity": "sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@volar/language-core": "2.4.15",
+ "@volar/language-core": "~2.4.11",
"@vue/compiler-dom": "^3.5.0",
"@vue/compiler-vue2": "^2.7.16",
"@vue/shared": "^3.5.0",
- "alien-signals": "^1.0.3",
+ "alien-signals": "^0.4.9",
"minimatch": "^9.0.3",
"muggle-string": "^0.4.1",
"path-browserify": "^1.0.1"
@@ -4545,16 +4941,6 @@
}
}
},
- "node_modules/@vue/language-core/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/@vue/language-core/node_modules/minimatch": {
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
@@ -4967,15 +5353,15 @@
}
},
"node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
"dev": true,
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
"uri-js": "^4.2.2"
},
"funding": {
@@ -4983,17 +5369,14 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/ajv-formats": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
- "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "node_modules/ajv-draft-04": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz",
+ "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "ajv": "^8.0.0"
- },
"peerDependencies": {
- "ajv": "^8.0.0"
+ "ajv": "^8.5.0"
},
"peerDependenciesMeta": {
"ajv": {
@@ -5001,44 +5384,41 @@
}
}
},
- "node_modules/ajv-formats/node_modules/ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "node_modules/ajv-formats": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz",
+ "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "fast-deep-equal": "^3.1.3",
- "fast-uri": "^3.0.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2"
+ "ajv": "^8.0.0"
},
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ "peerDependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
}
},
- "node_modules/ajv-formats/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ },
"peerDependencies": {
- "ajv": "^6.9.1"
+ "ajv": "^8.8.2"
}
},
"node_modules/alien-signals": {
- "version": "1.0.13",
- "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-1.0.13.tgz",
- "integrity": "sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==",
+ "version": "0.4.14",
+ "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-0.4.14.tgz",
+ "integrity": "sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==",
"dev": true,
"license": "MIT"
},
@@ -5095,12 +5475,28 @@
"node": ">= 8"
}
},
+ "node_modules/anymatch/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
- "license": "Python-2.0"
+ "license": "MIT",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
},
"node_modules/array-flatten": {
"version": "1.1.1",
@@ -5198,6 +5594,17 @@
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
+ "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "peer": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
"node_modules/babel-plugin-polyfill-corejs3": {
"version": "0.13.0",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz",
@@ -5235,9 +5642,9 @@
"license": "MIT"
},
"node_modules/baseline-browser-mapping": {
- "version": "2.9.13",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.13.tgz",
- "integrity": "sha512-WhtvB2NG2wjr04+h77sg3klAIwrgOqnjS49GGudnUPGFFgg7G17y7Qecqp+2Dr5kUDxNRBca0SK7cG8JwzkWDQ==",
+ "version": "2.9.14",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.14.tgz",
+ "integrity": "sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@@ -5357,14 +5764,13 @@
"license": "ISC"
},
"node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "balanced-match": "^1.0.0"
}
},
"node_modules/braces": {
@@ -5563,6 +5969,29 @@
"node": ">=4"
}
},
+ "node_modules/chalk/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/chalk/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/check-error": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz",
@@ -5685,6 +6114,13 @@
"node": ">=14"
}
},
+ "node_modules/compare-versions": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz",
+ "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/compressible": {
"version": "2.0.18",
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
@@ -5741,6 +6177,13 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/confbox": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz",
+ "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/config-chain": {
"version": "1.1.13",
"resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
@@ -5945,19 +6388,6 @@
}
}
},
- "node_modules/css-loader/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/css-minimizer-webpack-plugin": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-7.0.4.tgz",
@@ -6313,6 +6743,16 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/diff": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.2.tgz",
+ "integrity": "sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
"node_modules/dns-packet": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz",
@@ -6351,6 +6791,16 @@
"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
}
},
+ "node_modules/dom-serializer/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
"node_modules/domelementtype": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
@@ -6462,16 +6912,6 @@
"node": ">=14"
}
},
- "node_modules/editorconfig/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/editorconfig/node_modules/minimatch": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz",
@@ -6488,19 +6928,6 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/editorconfig/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@@ -6557,11 +6984,13 @@
}
},
"node_modules/entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
- "dev": true,
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.0.tgz",
+ "integrity": "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==",
"license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
@@ -6587,6 +7016,7 @@
"dev": true,
"license": "MIT",
"optional": true,
+ "peer": true,
"dependencies": {
"prr": "~1.0.1"
},
@@ -6880,6 +7310,23 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/eslint/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
"node_modules/eslint/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -6896,6 +7343,17 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/eslint/node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
"node_modules/eslint/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -6946,14 +7404,24 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "node_modules/eslint/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true,
- "license": "MIT",
+ "license": "MIT"
+ },
+ "node_modules/eslint/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
"engines": {
- "node": ">=8"
+ "node": "*"
}
},
"node_modules/eslint/node_modules/supports-color": {
@@ -7168,6 +7636,13 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/exsolve": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz",
+ "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -7189,23 +7664,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/fast-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz",
- "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fastify"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/fastify"
- }
- ],
- "license": "BSD-3-Clause"
- },
"node_modules/fastest-levenshtein": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
@@ -7229,6 +7687,24 @@
"node": ">=0.8.0"
}
},
+ "node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
"node_modules/figures": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz",
@@ -7279,6 +7755,40 @@
"webpack": "^4.0.0 || ^5.0.0"
}
},
+ "node_modules/file-loader/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/file-loader/node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
+ "node_modules/file-loader/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/file-loader/node_modules/schema-utils": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
@@ -7461,6 +7971,33 @@
"webpack": "^5.11.0"
}
},
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
"node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -7477,6 +8014,17 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
"node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -7514,20 +8062,45 @@
"dev": true,
"license": "MIT"
},
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=12"
}
},
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7543,19 +8116,6 @@
"url": "https://opencollective.com/webpack"
}
},
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -7606,9 +8166,9 @@
}
},
"node_modules/fs-extra": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "version": "11.3.3",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz",
+ "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7617,7 +8177,7 @@
"universalify": "^2.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=14.14"
}
},
"node_modules/fs-monkey": {
@@ -7773,16 +8333,6 @@
"dev": true,
"license": "BSD-2-Clause"
},
- "node_modules/glob/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/glob/node_modules/minimatch": {
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
@@ -7863,13 +8413,13 @@
}
},
"node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
"node_modules/has-symbols": {
@@ -8017,6 +8567,16 @@
"entities": "^2.0.0"
}
},
+ "node_modules/htmlparser2/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
"node_modules/http-deceiver": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
@@ -8132,6 +8692,7 @@
"dev": true,
"license": "MIT",
"optional": true,
+ "peer": true,
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
},
@@ -8169,6 +8730,7 @@
"dev": true,
"license": "MIT",
"optional": true,
+ "peer": true,
"bin": {
"image-size": "bin/image-size.js"
},
@@ -8193,6 +8755,16 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/import-lazy": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
+ "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/import-local": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz",
@@ -8285,7 +8857,6 @@
"integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"hasown": "^2.0.2"
},
@@ -8526,16 +9097,6 @@
"node": ">=10"
}
},
- "node_modules/istanbul-lib-report/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/istanbul-lib-report/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -8675,29 +9236,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/jest-util/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-util/node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
"node_modules/jest-util/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -8728,32 +9266,6 @@
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/jest-worker/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-worker/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
"node_modules/jiti": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz",
@@ -8764,6 +9276,13 @@
"jiti": "lib/jiti-cli.mjs"
}
},
+ "node_modules/jju": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz",
+ "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/js-beautify": {
"version": "1.15.4",
"resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz",
@@ -8816,6 +9335,13 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/js-yaml/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "license": "Python-2.0"
+ },
"node_modules/jsesc": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
@@ -8844,9 +9370,9 @@
"license": "MIT"
},
"node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true,
"license": "MIT"
},
@@ -8975,6 +9501,7 @@
"dev": true,
"license": "MIT",
"optional": true,
+ "peer": true,
"dependencies": {
"pify": "^4.0.1",
"semver": "^5.6.0"
@@ -8990,6 +9517,7 @@
"dev": true,
"license": "ISC",
"optional": true,
+ "peer": true,
"bin": {
"semver": "bin/semver"
}
@@ -9022,14 +9550,13 @@
}
},
"node_modules/limax": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/limax/-/limax-4.2.1.tgz",
- "integrity": "sha512-7YeQ8dV9XIjYIjBSFUSOfoxQFAtG2ckD0FGKYCuRaPJKc3IKXZwqsSLD5PnlPklp4y5ncPWhiL142ijAtHGNgw==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/limax/-/limax-4.2.2.tgz",
+ "integrity": "sha512-HhCTNSqrNHj2hZzFn2gNbdOukxSbsw7nSZ9cmn1TpvjvHvE1TuT523fgMpLTwzRdoNMujdyTeSNcs6TwiFa5aQ==",
"license": "Apache-2.0",
"peer": true,
"dependencies": {
"hepburn": "^1.2.2",
- "lodash.deburr": "^4.1.0",
"pinyin-pro": "^3.27.0",
"speakingurl": "^14.0.1"
},
@@ -9074,6 +9601,24 @@
"node": ">=8.9.0"
}
},
+ "node_modules/local-pkg": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz",
+ "integrity": "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mlly": "^1.7.4",
+ "pkg-types": "^2.3.0",
+ "quansync": "^0.2.11"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
"node_modules/locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -9105,13 +9650,6 @@
"license": "MIT",
"peer": true
},
- "node_modules/lodash.deburr": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz",
- "integrity": "sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==",
- "license": "MIT",
- "peer": true
- },
"node_modules/lodash.memoize": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
@@ -9141,13 +9679,16 @@
"license": "MIT"
},
"node_modules/lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
"license": "ISC",
"dependencies": {
- "yallist": "^3.0.2"
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/luxon": {
@@ -9196,19 +9737,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/make-dir/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/math-intrinsics": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
@@ -9298,6 +9826,19 @@
"node": ">=8.6"
}
},
+ "node_modules/micromatch/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
@@ -9361,16 +9902,19 @@
"license": "ISC"
},
"node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "10.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz",
+ "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==",
"dev": true,
"license": "ISC",
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "@isaacs/brace-expansion": "^5.0.0"
},
"engines": {
- "node": "*"
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/minipass": {
@@ -9389,6 +9933,38 @@
"integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
"license": "MIT"
},
+ "node_modules/mlly": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz",
+ "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.15.0",
+ "pathe": "^2.0.3",
+ "pkg-types": "^1.3.1",
+ "ufo": "^1.6.1"
+ }
+ },
+ "node_modules/mlly/node_modules/confbox": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
+ "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/mlly/node_modules/pkg-types": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
+ "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "confbox": "^0.1.8",
+ "mlly": "^1.7.4",
+ "pathe": "^2.0.1"
+ }
+ },
"node_modules/mrmime": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz",
@@ -9459,6 +10035,7 @@
"dev": true,
"license": "MIT",
"optional": true,
+ "peer": true,
"dependencies": {
"iconv-lite": "^0.6.3",
"sax": "^1.2.4"
@@ -9520,19 +10097,6 @@
"which": "^2.0.2"
}
},
- "node_modules/node-notifier/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/node-releases": {
"version": "2.0.27",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
@@ -9616,16 +10180,6 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/npm-run-all2/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/npm-run-all2/node_modules/minimatch": {
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
@@ -9946,8 +10500,7 @@
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/path-scurry": {
"version": "1.11.1",
@@ -10020,13 +10573,13 @@
"license": "ISC"
},
"node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=8.6"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
@@ -10052,6 +10605,7 @@
"dev": true,
"license": "MIT",
"optional": true,
+ "peer": true,
"engines": {
"node": ">=6"
}
@@ -10174,6 +10728,18 @@
"node": ">=8"
}
},
+ "node_modules/pkg-types": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz",
+ "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "confbox": "^0.2.2",
+ "exsolve": "^1.0.7",
+ "pathe": "^2.0.3"
+ }
+ },
"node_modules/postcss": {
"version": "8.5.6",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
@@ -10827,7 +11393,8 @@
"integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
"dev": true,
"license": "MIT",
- "optional": true
+ "optional": true,
+ "peer": true
},
"node_modules/punycode": {
"version": "2.3.1",
@@ -10855,6 +11422,23 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/quansync": {
+ "version": "0.2.11",
+ "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz",
+ "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/antfu"
+ },
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/sxzz"
+ }
+ ],
+ "license": "MIT"
+ },
"node_modules/randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -11101,7 +11685,6 @@
"integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"is-core-module": "^2.16.1",
"path-parse": "^1.0.7",
@@ -11308,43 +11891,24 @@
"url": "https://opencollective.com/webpack"
}
},
- "node_modules/schema-utils/node_modules/ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.3",
- "fast-uri": "^3.0.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/schema-utils/node_modules/ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "node_modules/schema-utils/node_modules/ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "fast-deep-equal": "^3.1.3"
+ "ajv": "^8.0.0"
},
"peerDependencies": {
- "ajv": "^8.8.2"
+ "ajv": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
}
},
- "node_modules/schema-utils/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/select-hose": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
@@ -11367,13 +11931,19 @@
}
},
"node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dev": true,
"license": "ISC",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
"bin": {
"semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/send": {
@@ -11795,6 +12365,13 @@
"node": ">=0.10.0"
}
},
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
"node_modules/stackback": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
@@ -11836,6 +12413,16 @@
"safe-buffer": "~5.2.0"
}
},
+ "node_modules/string-argv": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz",
+ "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6.19"
+ }
+ },
"node_modules/string-width": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
@@ -12073,16 +12660,19 @@
}
},
"node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "has-flag": "^3.0.0"
+ "has-flag": "^4.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
"node_modules/supports-preserve-symlinks-flag": {
@@ -12091,7 +12681,6 @@
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">= 0.4"
},
@@ -12291,16 +12880,6 @@
}
}
},
- "node_modules/terser-webpack-plugin/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/terser-webpack-plugin/node_modules/jest-worker": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
@@ -12316,22 +12895,6 @@
"node": ">= 10.13.0"
}
},
- "node_modules/terser-webpack-plugin/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
"node_modules/terser/node_modules/commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
@@ -12354,16 +12917,6 @@
"node": ">=18"
}
},
- "node_modules/test-exclude/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/test-exclude/node_modules/minimatch": {
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
@@ -12435,37 +12988,6 @@
"url": "https://github.com/sponsors/SuperchupuDev"
}
},
- "node_modules/tinyglobby/node_modules/fdir": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
- "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
- "node_modules/tinyglobby/node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
"node_modules/tinypool": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz",
@@ -12652,29 +13174,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/ts-loader/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ts-loader/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/ts-loader/node_modules/source-map": {
"version": "0.7.6",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz",
@@ -12785,6 +13284,13 @@
"typescript": ">=4.8.4 <6.0.0"
}
},
+ "node_modules/ufo": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.2.tgz",
+ "integrity": "sha512-heMioaxBcG9+Znsda5Q8sQbWnLJSl98AFDXTO80wELWEzX3hordXsTdxrIfMQoO9IY1MEnoGoPjpoKpMj+Yx0Q==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/uikit": {
"version": "3.25.4",
"resolved": "https://registry.npmjs.org/uikit/-/uikit-3.25.4.tgz",
@@ -13079,6 +13585,33 @@
"url": "https://opencollective.com/vitest"
}
},
+ "node_modules/vite-plugin-dts": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-4.5.4.tgz",
+ "integrity": "sha512-d4sOM8M/8z7vRXHHq/ebbblfaxENjogAAekcfcDCCwAyvGqnPrc7f4NZbvItS+g4WTgerW0xDwSz5qz11JT3vg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@microsoft/api-extractor": "^7.50.1",
+ "@rollup/pluginutils": "^5.1.4",
+ "@volar/typescript": "^2.4.11",
+ "@vue/language-core": "2.2.0",
+ "compare-versions": "^6.1.1",
+ "debug": "^4.4.0",
+ "kolorist": "^1.8.0",
+ "local-pkg": "^1.0.0",
+ "magic-string": "^0.30.17"
+ },
+ "peerDependencies": {
+ "typescript": "*",
+ "vite": "*"
+ },
+ "peerDependenciesMeta": {
+ "vite": {
+ "optional": true
+ }
+ }
+ },
"node_modules/vite-plugin-inspect": {
"version": "0.8.9",
"resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-0.8.9.tgz",
@@ -13111,57 +13644,6 @@
}
}
},
- "node_modules/vite-plugin-inspect/node_modules/@rollup/pluginutils": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz",
- "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "estree-walker": "^2.0.2",
- "picomatch": "^4.0.2"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/vite-plugin-inspect/node_modules/fs-extra": {
- "version": "11.3.3",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz",
- "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=14.14"
- }
- },
- "node_modules/vite-plugin-inspect/node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
"node_modules/vite-plugin-vue-devtools": {
"version": "7.7.9",
"resolved": "https://registry.npmjs.org/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-7.7.9.tgz",
@@ -13205,37 +13687,6 @@
"vite": "^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0"
}
},
- "node_modules/vite/node_modules/fdir": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
- "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
- "node_modules/vite/node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
"node_modules/vitest": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz",
@@ -13309,19 +13760,6 @@
}
}
},
- "node_modules/vitest/node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
"node_modules/vscode-uri": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz",
@@ -13498,16 +13936,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/vue-loader/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/vue-loader/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -13559,6 +13987,83 @@
"typescript": ">=5.0.0"
}
},
+ "node_modules/vue-tsc/node_modules/@volar/language-core": {
+ "version": "2.4.15",
+ "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.15.tgz",
+ "integrity": "sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@volar/source-map": "2.4.15"
+ }
+ },
+ "node_modules/vue-tsc/node_modules/@volar/source-map": {
+ "version": "2.4.15",
+ "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.15.tgz",
+ "integrity": "sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vue-tsc/node_modules/@volar/typescript": {
+ "version": "2.4.15",
+ "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.15.tgz",
+ "integrity": "sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@volar/language-core": "2.4.15",
+ "path-browserify": "^1.0.1",
+ "vscode-uri": "^3.0.8"
+ }
+ },
+ "node_modules/vue-tsc/node_modules/@vue/language-core": {
+ "version": "2.2.12",
+ "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.12.tgz",
+ "integrity": "sha512-IsGljWbKGU1MZpBPN+BvPAdr55YPkj2nB/TBNGNC32Vy2qLG25DYu/NBN2vNtZqdRbTRjaoYrahLrToim2NanA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@volar/language-core": "2.4.15",
+ "@vue/compiler-dom": "^3.5.0",
+ "@vue/compiler-vue2": "^2.7.16",
+ "@vue/shared": "^3.5.0",
+ "alien-signals": "^1.0.3",
+ "minimatch": "^9.0.3",
+ "muggle-string": "^0.4.1",
+ "path-browserify": "^1.0.1"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vue-tsc/node_modules/alien-signals": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-1.0.13.tgz",
+ "integrity": "sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vue-tsc/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/watchpack": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.0.tgz",
@@ -13860,6 +14365,19 @@
"node": ">= 6"
}
},
+ "node_modules/webpack-dev-server/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/webpack-dev-server/node_modules/readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
@@ -14292,9 +14810,9 @@
}
},
"node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true,
"license": "ISC"
},
@@ -14445,7 +14963,8 @@
"axios": "^1.12.0",
"pinia": "^2.1.6",
"pinia-plugin-persistedstate": "^3.2.0",
- "vue": "^3.4.21"
+ "vue": "^3.4.21",
+ "vue-router": "^4.2.4"
}
},
"packages/theme-pink-cupcake": {
diff --git a/package.json b/package.json
index 66f9b01ba..3a6a4e764 100644
--- a/package.json
+++ b/package.json
@@ -10,11 +10,20 @@
"packages/skeleton"
],
"scripts": {
+ "dev": "vite",
+ "build": "npm run build --workspace=packages/sprinkle-core --workspace=packages/sprinkle-account --workspace=packages/sprinkle-admin --workspace=packages/theme-pink-cupcake",
+ "build:core": "npm run build --workspace=packages/sprinkle-core",
+ "build:account": "npm run build --workspace=packages/sprinkle-account",
+ "build:admin": "npm run build --workspace=packages/sprinkle-admin",
+ "build:theme": "npm run build --workspace=packages/theme-pink-cupcake",
"test": "vitest",
"coverage": "vitest run --coverage",
"typecheck": "vue-tsc --noEmit",
"format": "prettier --write packages/skeleton/app/assets/ packages/sprinkle-*/app/assets packages/theme-pink-cupcake/src",
"format-dry-run": "prettier --check packages/skeleton/app/assets/ packages/sprinkle-*/app/assets packages/theme-pink-cupcake/src",
"lint": "eslint packages/skeleton/app/assets/ packages/sprinkle-*/app/assets packages/theme-pink-cupcake/src --fix"
+ },
+ "devDependencies": {
+ "vite-plugin-dts": "^4.5.4"
}
}
diff --git a/packages/skeleton/vite.config.ts b/packages/skeleton/vite.config.ts
index 74b0fe12a..8001e5a63 100644
--- a/packages/skeleton/vite.config.ts
+++ b/packages/skeleton/vite.config.ts
@@ -3,7 +3,7 @@ import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'
import ViteYaml from '@modyfi/vite-plugin-yaml'
-// Get vite port from env, default to 3000
+// Get vite port from env, default to 5173
const vitePort = parseInt(process.env.VITE_PORT || '5173', 10)
// https://vitejs.dev/config/
@@ -46,15 +46,7 @@ export default defineConfig({
// Force optimization of UiKit (not module packages) in dev mode
// to avoid the error:
// "importing binding name 'default' cannot be resolved by star export entries"
- // Also, treat all sprinkles as source code (not prebuilt) and tell Vite
- // not to prebundle them.
optimizeDeps: {
- include: ['uikit', 'uikit/dist/js/uikit-icons'],
- exclude: [
- '@userfrosting/sprinkle-core',
- '@userfrosting/sprinkle-account',
- '@userfrosting/sprinkle-admin',
- '@userfrosting/theme-pink-cupcake'
- ]
+ include: ['uikit', 'uikit/dist/js/uikit-icons']
}
})
diff --git a/packages/sprinkle-account/app/assets/index.d.ts b/packages/sprinkle-account/app/assets/index.d.ts
deleted file mode 100644
index b7b6d4d3c..000000000
--- a/packages/sprinkle-account/app/assets/index.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-export {}
-
-declare module 'vue' {
- interface ComponentCustomProperties {
- $checkAccess: (slug: string) => boolean
- }
-}
diff --git a/packages/sprinkle-account/app/assets/index.ts b/packages/sprinkle-account/app/assets/index.ts
index 15a89bc94..0dbf1ffa3 100644
--- a/packages/sprinkle-account/app/assets/index.ts
+++ b/packages/sprinkle-account/app/assets/index.ts
@@ -37,3 +37,9 @@ export default {
app.config.globalProperties.$checkAccess = auth.checkAccess
}
}
+
+declare module 'vue' {
+ interface ComponentCustomProperties {
+ $checkAccess: (slug: string) => boolean
+ }
+}
diff --git a/packages/sprinkle-account/app/assets/tests/composables/useLoginApi.test.ts b/packages/sprinkle-account/app/assets/tests/composables/useLoginApi.test.ts
index e51d87433..5e13d9ed1 100644
--- a/packages/sprinkle-account/app/assets/tests/composables/useLoginApi.test.ts
+++ b/packages/sprinkle-account/app/assets/tests/composables/useLoginApi.test.ts
@@ -1,4 +1,5 @@
-import { describe, expect, test, vi } from 'vitest'
+import { describe, expect, test, vi, beforeEach } from 'vitest'
+import { setActivePinia, createPinia } from 'pinia'
import axios from 'axios'
import { Severity } from '@userfrosting/sprinkle-core/interfaces'
import { useLoginApi } from '../../composables'
@@ -46,6 +47,9 @@ vi.mock('@userfrosting/sprinkle-core/stores', () => ({
}))
describe('useLoginApi', () => {
+ beforeEach(() => {
+ setActivePinia(createPinia())
+ })
test('should initialize formData with default values', () => {
const { formData } = useLoginApi()
expect(formData.value).toEqual({
diff --git a/packages/sprinkle-account/app/assets/tests/composables/useRegisterApi.test.ts b/packages/sprinkle-account/app/assets/tests/composables/useRegisterApi.test.ts
index d183e4b30..9dd5d58dc 100644
--- a/packages/sprinkle-account/app/assets/tests/composables/useRegisterApi.test.ts
+++ b/packages/sprinkle-account/app/assets/tests/composables/useRegisterApi.test.ts
@@ -1,12 +1,12 @@
-import { afterEach, describe, expect, test, vi } from 'vitest'
-// import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'
+import { setActivePinia, createPinia } from 'pinia'
// import axios from 'axios'
// import { Severity } from '@userfrosting/sprinkle-core/interfaces'
// import type { RegisterRequest } from '../../interfaces'
import { useRegisterApi } from '../../composables'
-const { defaultRegistrationForm } = useRegisterApi()
-// const { defaultRegistrationForm, availableLocales, captchaUrl } = useRegisterApi()
+let defaultRegistrationForm: any
+// let defaultRegistrationForm: any, availableLocales: any, captchaUrl: any
/*const form: RegisterRequest = {
first_name: 'John',
@@ -43,6 +43,14 @@ vi.mock('@userfrosting/sprinkle-core/stores', () => ({
}))
describe('register', () => {
+ beforeEach(() => {
+ setActivePinia(createPinia())
+ const result = useRegisterApi()
+ defaultRegistrationForm = result.defaultRegistrationForm
+ // availableLocales = result.availableLocales
+ // captchaUrl = result.captchaUrl
+ })
+
afterEach(() => {
vi.clearAllMocks()
vi.resetAllMocks()
diff --git a/packages/sprinkle-account/package.json b/packages/sprinkle-account/package.json
index a3232ce8c..d8fb1e3a0 100644
--- a/packages/sprinkle-account/package.json
+++ b/packages/sprinkle-account/package.json
@@ -24,16 +24,45 @@
"url": "https://github.com/userfrosting/UserFrosting/issues"
},
"exports": {
- ".": "./app/assets/index.ts",
- "./composables": "./app/assets/composables/index.ts",
- "./guards": "./app/assets/guards/index.ts",
- "./interfaces": "./app/assets/interfaces/index.ts",
- "./routes": "./app/assets/routes/index.ts",
- "./stores": "./app/assets/stores/index.ts",
- "./views": "./app/assets/views/index.ts"
+ ".": {
+ "userfrosting:monorepo": "./app/assets/index.ts",
+ "import": "./dist/index.js",
+ "types": "./dist/index.d.ts"
+ },
+ "./composables": {
+ "userfrosting:monorepo": "./app/assets/composables/index.ts",
+ "import": "./dist/composables.js",
+ "types": "./dist/composables/index.d.ts"
+ },
+ "./guards": {
+ "userfrosting:monorepo": "./app/assets/guards/index.ts",
+ "import": "./dist/guards.js",
+ "types": "./dist/guards/index.d.ts"
+ },
+ "./interfaces": {
+ "userfrosting:monorepo": "./app/assets/interfaces/index.ts",
+ "import": "./dist/interfaces.js",
+ "types": "./dist/interfaces/index.d.ts"
+ },
+ "./routes": {
+ "userfrosting:monorepo": "./app/assets/routes/index.ts",
+ "import": "./dist/routes.js",
+ "types": "./dist/routes/index.d.ts"
+ },
+ "./stores": {
+ "userfrosting:monorepo": "./app/assets/stores/index.ts",
+ "import": "./dist/stores.js",
+ "types": "./dist/stores/index.d.ts"
+ },
+ "./views": {
+ "userfrosting:monorepo": "./app/assets/views/index.ts",
+ "import": "./dist/views.js",
+ "types": "./dist/views/index.d.ts"
+ }
},
+ "types": "./dist/index.d.ts",
"files": [
- "app/assets/",
+ "dist/",
"app/schema/"
],
"engines": {
@@ -46,5 +75,8 @@
"pinia-plugin-persistedstate": "^3.2.0",
"vue": "^3.4.21",
"vue-router": "^4.2.4"
+ },
+ "scripts": {
+ "build": "vite build"
}
}
diff --git a/packages/sprinkle-account/tsconfig.build.json b/packages/sprinkle-account/tsconfig.build.json
new file mode 100644
index 000000000..0766e06b1
--- /dev/null
+++ b/packages/sprinkle-account/tsconfig.build.json
@@ -0,0 +1,18 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "declaration": true,
+ "declarationMap": true,
+ "emitDeclarationOnly": false,
+ "outDir": "dist"
+ },
+ "include": [
+ "env.d.ts",
+ "app/assets/**/*.ts",
+ "app/assets/**/*.d.ts",
+ "app/assets/**/*.vue"
+ ],
+ "exclude": [
+ "app/assets/tests/**/*"
+ ]
+}
diff --git a/packages/sprinkle-account/vite.config.ts b/packages/sprinkle-account/vite.config.ts
index f573c4180..54a037010 100644
--- a/packages/sprinkle-account/vite.config.ts
+++ b/packages/sprinkle-account/vite.config.ts
@@ -1,13 +1,62 @@
///
import { configDefaults } from 'vitest/config'
import { defineConfig } from 'vite'
+import { resolve } from 'path'
import vue from '@vitejs/plugin-vue'
import ViteYaml from '@modyfi/vite-plugin-yaml'
+import dts from 'vite-plugin-dts'
// https://vitejs.dev/config/
// https://stackoverflow.com/a/74397545/445757
export default defineConfig({
- plugins: [vue(), ViteYaml()],
+ resolve: {
+ conditions: ['userfrosting:monorepo', 'import']
+ },
+ plugins: [
+ vue(),
+ ViteYaml(),
+ dts({
+ include: ['env.d.ts', 'app/assets/**/*.ts', 'app/assets/**/*.vue'],
+ exclude: ['app/assets/tests/**/*'],
+ outDir: 'dist',
+ copyDtsFiles: true,
+ rollupTypes: false,
+ compilerOptions: {
+ customConditions: ['userfrosting:monorepo']
+ }
+ })
+ ],
+ build: {
+ lib: {
+ entry: {
+ index: resolve(__dirname, 'app/assets/index.ts'),
+ composables: resolve(__dirname, 'app/assets/composables/index.ts'),
+ guards: resolve(__dirname, 'app/assets/guards/index.ts'),
+ interfaces: resolve(__dirname, 'app/assets/interfaces/index.ts'),
+ routes: resolve(__dirname, 'app/assets/routes/index.ts'),
+ stores: resolve(__dirname, 'app/assets/stores/index.ts'),
+ views: resolve(__dirname, 'app/assets/views/index.ts')
+ },
+ formats: ['es']
+ },
+ rollupOptions: {
+ external: [
+ 'vue',
+ 'vue-router',
+ 'axios',
+ 'pinia',
+ 'pinia-plugin-persistedstate',
+ '@userfrosting/sprinkle-core',
+ '@userfrosting/sprinkle-core/composables',
+ '@userfrosting/sprinkle-core/interfaces',
+ '@userfrosting/sprinkle-core/stores'
+ ],
+ output: {
+ preserveModules: false,
+ entryFileNames: '[name].js'
+ }
+ }
+ },
test: {
coverage: {
reportsDirectory: './_meta/_coverage',
diff --git a/packages/sprinkle-admin/package.json b/packages/sprinkle-admin/package.json
index c9dd5fd97..031a79422 100644
--- a/packages/sprinkle-admin/package.json
+++ b/packages/sprinkle-admin/package.json
@@ -25,15 +25,40 @@
"url": "https://github.com/userfrosting/UserFrosting/issues"
},
"exports": {
- ".": "./app/assets/index.ts",
- "./components": "./app/assets/components/index.ts",
- "./composables": "./app/assets/composables/index.ts",
- "./interfaces": "./app/assets/interfaces/index.ts",
- "./routes": "./app/assets/routes/index.ts",
- "./views": "./app/assets/views/index.ts"
+ ".": {
+ "userfrosting:monorepo": "./app/assets/index.ts",
+ "import": "./dist/index.js",
+ "types": "./dist/index.d.ts"
+ },
+ "./components": {
+ "userfrosting:monorepo": "./app/assets/components/index.ts",
+ "import": "./dist/components.js",
+ "types": "./dist/components/index.d.ts"
+ },
+ "./composables": {
+ "userfrosting:monorepo": "./app/assets/composables/index.ts",
+ "import": "./dist/composables.js",
+ "types": "./dist/composables/index.d.ts"
+ },
+ "./interfaces": {
+ "userfrosting:monorepo": "./app/assets/interfaces/index.ts",
+ "import": "./dist/interfaces.js",
+ "types": "./dist/interfaces/index.d.ts"
+ },
+ "./routes": {
+ "userfrosting:monorepo": "./app/assets/routes/index.ts",
+ "import": "./dist/routes.js",
+ "types": "./dist/routes/index.d.ts"
+ },
+ "./views": {
+ "userfrosting:monorepo": "./app/assets/views/index.ts",
+ "import": "./dist/views.js",
+ "types": "./dist/views/index.d.ts"
+ }
},
+ "types": "./dist/index.d.ts",
"files": [
- "app/assets",
+ "dist/",
"app/schema/"
],
"engines": {
@@ -48,5 +73,8 @@
"pinia-plugin-persistedstate": "^3.2.0",
"vue": "^3.4.21",
"vue-router": "^4.2.4"
+ },
+ "scripts": {
+ "build": "vite build"
}
}
diff --git a/packages/sprinkle-admin/tsconfig.build.json b/packages/sprinkle-admin/tsconfig.build.json
new file mode 100644
index 000000000..0766e06b1
--- /dev/null
+++ b/packages/sprinkle-admin/tsconfig.build.json
@@ -0,0 +1,18 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "declaration": true,
+ "declarationMap": true,
+ "emitDeclarationOnly": false,
+ "outDir": "dist"
+ },
+ "include": [
+ "env.d.ts",
+ "app/assets/**/*.ts",
+ "app/assets/**/*.d.ts",
+ "app/assets/**/*.vue"
+ ],
+ "exclude": [
+ "app/assets/tests/**/*"
+ ]
+}
diff --git a/packages/sprinkle-admin/vite.config.ts b/packages/sprinkle-admin/vite.config.ts
index 97d563656..b7ce4a554 100644
--- a/packages/sprinkle-admin/vite.config.ts
+++ b/packages/sprinkle-admin/vite.config.ts
@@ -1,13 +1,67 @@
///
import { configDefaults } from 'vitest/config'
import { defineConfig } from 'vite'
+import { resolve } from 'path'
import vue from '@vitejs/plugin-vue'
import ViteYaml from '@modyfi/vite-plugin-yaml'
+import dts from 'vite-plugin-dts'
// https://vitejs.dev/config/
// https://stackoverflow.com/a/74397545/445757
export default defineConfig({
- plugins: [vue(), ViteYaml()],
+ resolve: {
+ conditions: ['userfrosting:monorepo', 'import']
+ },
+ plugins: [
+ vue(),
+ ViteYaml(),
+ dts({
+ include: ['env.d.ts', 'app/assets/**/*.ts', 'app/assets/**/*.vue'],
+ exclude: ['app/assets/tests/**/*'],
+ outDir: 'dist',
+ copyDtsFiles: true,
+ rollupTypes: false,
+ compilerOptions: {
+ customConditions: ['userfrosting:monorepo']
+ }
+ })
+ ],
+ build: {
+ lib: {
+ entry: {
+ index: resolve(__dirname, 'app/assets/index.ts'),
+ components: resolve(__dirname, 'app/assets/components/index.ts'),
+ composables: resolve(__dirname, 'app/assets/composables/index.ts'),
+ interfaces: resolve(__dirname, 'app/assets/interfaces/index.ts'),
+ routes: resolve(__dirname, 'app/assets/routes/index.ts'),
+ views: resolve(__dirname, 'app/assets/views/index.ts')
+ },
+ formats: ['es']
+ },
+ rollupOptions: {
+ external: [
+ 'vue',
+ 'vue-router',
+ 'axios',
+ 'pinia',
+ 'pinia-plugin-persistedstate',
+ 'limax',
+ '@userfrosting/sprinkle-core',
+ '@userfrosting/sprinkle-core/composables',
+ '@userfrosting/sprinkle-core/interfaces',
+ '@userfrosting/sprinkle-core/stores',
+ '@userfrosting/sprinkle-account',
+ '@userfrosting/sprinkle-account/composables',
+ '@userfrosting/sprinkle-account/guards',
+ '@userfrosting/sprinkle-account/interfaces',
+ '@userfrosting/sprinkle-account/stores'
+ ],
+ output: {
+ preserveModules: false,
+ entryFileNames: '[name].js'
+ }
+ }
+ },
test: {
coverage: {
reportsDirectory: './_meta/_coverage',
diff --git a/packages/sprinkle-core/app/assets/index.d.ts b/packages/sprinkle-core/app/assets/index.d.ts
deleted file mode 100644
index 65c3b928d..000000000
--- a/packages/sprinkle-core/app/assets/index.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-export {}
-
-declare module 'vue' {
- interface ComponentCustomProperties {
- $t: (key: string, placeholders?: string | number | object) => string
- $tdate: (date: string, format?: string | object) => string
- }
-}
diff --git a/packages/sprinkle-core/app/assets/index.ts b/packages/sprinkle-core/app/assets/index.ts
index dd90082e9..d0c0e3360 100644
--- a/packages/sprinkle-core/app/assets/index.ts
+++ b/packages/sprinkle-core/app/assets/index.ts
@@ -38,3 +38,10 @@ export default {
useCsrf()
}
}
+
+declare module 'vue' {
+ interface ComponentCustomProperties {
+ $t: (key: string, placeholders?: string | number | object) => string
+ $tdate: (date: string, format?: string | object) => string
+ }
+}
diff --git a/packages/sprinkle-core/app/assets/stores/usePageMeta.ts b/packages/sprinkle-core/app/assets/stores/usePageMeta.ts
index 597c8ac43..8fb0c8e79 100644
--- a/packages/sprinkle-core/app/assets/stores/usePageMeta.ts
+++ b/packages/sprinkle-core/app/assets/stores/usePageMeta.ts
@@ -1,6 +1,6 @@
import { computed, ref, watch } from 'vue'
import { useRoute } from 'vue-router'
-import { useTranslator } from '@userfrosting/sprinkle-core/stores'
+import { useTranslator } from './useTranslator'
import { useConfigStore } from '../stores'
import { defineStore } from 'pinia'
diff --git a/packages/sprinkle-core/app/assets/tests/composables/useRuleSchemaAdapter.test.ts b/packages/sprinkle-core/app/assets/tests/composables/useRuleSchemaAdapter.test.ts
index d5e75a5f3..8f4ed0cd6 100644
--- a/packages/sprinkle-core/app/assets/tests/composables/useRuleSchemaAdapter.test.ts
+++ b/packages/sprinkle-core/app/assets/tests/composables/useRuleSchemaAdapter.test.ts
@@ -1,16 +1,21 @@
-import { describe, test, expect, vi, afterEach } from 'vitest'
+import { describe, test, expect, vi, afterEach, beforeEach } from 'vitest'
+import { setActivePinia, createPinia } from 'pinia'
import { useRuleSchemaAdapter } from '../../composables/useRuleSchemaAdapter'
import { useRegle } from '@regle/core'
// Mock the translator store
const translateMock = vi.fn((key: string) => key || '')
-vi.mock('@userfrosting/sprinkle-core/stores', () => ({
+vi.mock('../../stores', () => ({
useTranslator: () => ({
translate: translateMock
})
}))
describe('useRuleSchemaAdapter', () => {
+ beforeEach(() => {
+ setActivePinia(createPinia())
+ })
+
afterEach(() => {
vi.clearAllMocks()
})
diff --git a/packages/sprinkle-core/package.json b/packages/sprinkle-core/package.json
index 473d6be3a..9223399a9 100644
--- a/packages/sprinkle-core/package.json
+++ b/packages/sprinkle-core/package.json
@@ -24,14 +24,35 @@
"url": "https://github.com/userfrosting/UserFrosting/issues"
},
"exports": {
- ".": "./app/assets/index.ts",
- "./interfaces": "./app/assets/interfaces/index.ts",
- "./stores": "./app/assets/stores/index.ts",
- "./composables": "./app/assets/composables/index.ts",
- "./routes": "./app/assets/routes/index.ts"
+ ".": {
+ "userfrosting:monorepo": "./app/assets/index.ts",
+ "import": "./dist/index.js",
+ "types": "./dist/index.d.ts"
+ },
+ "./interfaces": {
+ "userfrosting:monorepo": "./app/assets/interfaces/index.ts",
+ "import": "./dist/interfaces.js",
+ "types": "./dist/interfaces/index.d.ts"
+ },
+ "./stores": {
+ "userfrosting:monorepo": "./app/assets/stores/index.ts",
+ "import": "./dist/stores.js",
+ "types": "./dist/stores/index.d.ts"
+ },
+ "./composables": {
+ "userfrosting:monorepo": "./app/assets/composables/index.ts",
+ "import": "./dist/composables.js",
+ "types": "./dist/composables/index.d.ts"
+ },
+ "./routes": {
+ "userfrosting:monorepo": "./app/assets/routes/index.ts",
+ "import": "./dist/routes.js",
+ "types": "./dist/routes/index.d.ts"
+ }
},
+ "types": "./dist/index.d.ts",
"files": [
- "app/assets/"
+ "dist/"
],
"engines": {
"node": ">= 18"
@@ -46,6 +67,10 @@
"axios": "^1.12.0",
"pinia": "^2.1.6",
"pinia-plugin-persistedstate": "^3.2.0",
- "vue": "^3.4.21"
+ "vue": "^3.4.21",
+ "vue-router": "^4.2.4"
+ },
+ "scripts": {
+ "build": "vite build"
}
}
diff --git a/packages/sprinkle-core/tsconfig.build.json b/packages/sprinkle-core/tsconfig.build.json
new file mode 100644
index 000000000..0766e06b1
--- /dev/null
+++ b/packages/sprinkle-core/tsconfig.build.json
@@ -0,0 +1,18 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "declaration": true,
+ "declarationMap": true,
+ "emitDeclarationOnly": false,
+ "outDir": "dist"
+ },
+ "include": [
+ "env.d.ts",
+ "app/assets/**/*.ts",
+ "app/assets/**/*.d.ts",
+ "app/assets/**/*.vue"
+ ],
+ "exclude": [
+ "app/assets/tests/**/*"
+ ]
+}
diff --git a/packages/sprinkle-core/vite.config.ts b/packages/sprinkle-core/vite.config.ts
index eea2fc61c..4c4b5b5c1 100644
--- a/packages/sprinkle-core/vite.config.ts
+++ b/packages/sprinkle-core/vite.config.ts
@@ -1,11 +1,58 @@
///
import { defineConfig } from 'vite'
+import { resolve } from 'path'
import vue from '@vitejs/plugin-vue'
+import dts from 'vite-plugin-dts'
// https://vitejs.dev/config/
// https://stackoverflow.com/a/74397545/445757
export default defineConfig({
- plugins: [vue()],
+ resolve: {
+ conditions: ['userfrosting:monorepo', 'import']
+ },
+ plugins: [
+ vue(),
+ dts({
+ include: ['env.d.ts', 'app/assets/**/*.ts', 'app/assets/**/*.vue'],
+ exclude: ['app/assets/tests/**/*'],
+ outDir: 'dist',
+ copyDtsFiles: true,
+ rollupTypes: false,
+ compilerOptions: {
+ customConditions: ['userfrosting:monorepo']
+ }
+ })
+ ],
+ build: {
+ lib: {
+ entry: {
+ index: resolve(__dirname, 'app/assets/index.ts'),
+ interfaces: resolve(__dirname, 'app/assets/interfaces/index.ts'),
+ stores: resolve(__dirname, 'app/assets/stores/index.ts'),
+ composables: resolve(__dirname, 'app/assets/composables/index.ts'),
+ routes: resolve(__dirname, 'app/assets/routes/index.ts')
+ },
+ formats: ['es']
+ },
+ rollupOptions: {
+ external: [
+ 'vue',
+ 'vue-router',
+ 'axios',
+ 'pinia',
+ 'pinia-plugin-persistedstate',
+ '@regle/core',
+ '@regle/rules',
+ 'dot-prop',
+ 'luxon',
+ /^@userfrosting\/sprinkle-core/
+ ],
+ output: {
+ preserveModules: false,
+ entryFileNames: '[name].js'
+ }
+ }
+ },
test: {
coverage: {
reportsDirectory: './_meta/_coverage',
diff --git a/packages/theme-pink-cupcake/package.json b/packages/theme-pink-cupcake/package.json
index a1ed4bf20..f940d4901 100644
--- a/packages/theme-pink-cupcake/package.json
+++ b/packages/theme-pink-cupcake/package.json
@@ -24,16 +24,42 @@
"url": "https://github.com/userfrosting/UserFrosting/issues"
},
"exports": {
- ".": "./src/index.ts",
- "./components/pages/account": "./src/components/Pages/Account/index.ts",
- "./components/pages/admin": "./src/components/Pages/Admin/index.ts",
- "./components": "./src/components/index.ts",
- "./plugins": "./src/plugins/index.ts",
- "./views": "./src/views/index.ts",
+ ".": {
+ "userfrosting:monorepo": "./src/index.ts",
+ "import": "./dist/index.js",
+ "types": "./dist/index.d.ts"
+ },
+ "./components/pages/account": {
+ "userfrosting:monorepo": "./src/components/Pages/Account/index.ts",
+ "import": "./dist/components/pages/account.js",
+ "types": "./dist/components/Pages/Account/index.d.ts"
+ },
+ "./components/pages/admin": {
+ "userfrosting:monorepo": "./src/components/Pages/Admin/index.ts",
+ "import": "./dist/components/pages/admin.js",
+ "types": "./dist/components/Pages/Admin/index.d.ts"
+ },
+ "./components": {
+ "userfrosting:monorepo": "./src/components/index.ts",
+ "import": "./dist/components.js",
+ "types": "./dist/components/index.d.ts"
+ },
+ "./plugins": {
+ "userfrosting:monorepo": "./src/plugins/index.ts",
+ "import": "./dist/plugins.js",
+ "types": "./dist/plugins/index.d.ts"
+ },
+ "./views": {
+ "userfrosting:monorepo": "./src/views/index.ts",
+ "import": "./dist/views.js",
+ "types": "./dist/views/index.d.ts"
+ },
"./less/*": "./src/less/*"
},
+ "types": "./dist/index.d.ts",
"files": [
- "src/"
+ "src/less/",
+ "dist/"
],
"engines": {
"node": ">= 18"
@@ -58,5 +84,8 @@
"pinia-plugin-persistedstate": "^3.2.0",
"vue": "^3.4.21",
"vue-router": "^4.2.4"
+ },
+ "scripts": {
+ "build": "vite build"
}
}
diff --git a/packages/theme-pink-cupcake/tsconfig.build.json b/packages/theme-pink-cupcake/tsconfig.build.json
new file mode 100644
index 000000000..83116ae5c
--- /dev/null
+++ b/packages/theme-pink-cupcake/tsconfig.build.json
@@ -0,0 +1,18 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "declaration": true,
+ "declarationMap": true,
+ "emitDeclarationOnly": false,
+ "outDir": "dist"
+ },
+ "include": [
+ "env.d.ts",
+ "src/**/*.ts",
+ "src/**/*.d.ts",
+ "src/**/*.vue"
+ ],
+ "exclude": [
+ "src/tests/**/*"
+ ]
+}
diff --git a/packages/theme-pink-cupcake/vite.config.ts b/packages/theme-pink-cupcake/vite.config.ts
index 477884de3..6755890de 100644
--- a/packages/theme-pink-cupcake/vite.config.ts
+++ b/packages/theme-pink-cupcake/vite.config.ts
@@ -1,20 +1,92 @@
///
import { defineConfig } from 'vite'
+import { resolve } from 'path'
import vue from '@vitejs/plugin-vue'
import ViteYaml from '@modyfi/vite-plugin-yaml'
+import dts from 'vite-plugin-dts'
// https://vitejs.dev/config/
// https://stackoverflow.com/a/74397545/445757
export default defineConfig({
- plugins: [vue(), ViteYaml()],
+ plugins: [
+ vue(),
+ ViteYaml(),
+ dts({
+ include: ['env.d.ts', 'src/**/*.ts', 'src/**/*.vue'],
+ exclude: ['src/tests/**/*'],
+ outDir: 'dist',
+ copyDtsFiles: true,
+ rollupTypes: false,
+ compilerOptions: {
+ customConditions: ['userfrosting:monorepo']
+ }
+ })
+ ],
// Add UIKit alias : https://stackoverflow.com/a/75264118/445757
resolve: {
+ conditions: ['userfrosting:monorepo', 'import'],
alias: {
'../../images/backgrounds': 'uikit/src/images/backgrounds',
'../../images/components': 'uikit/src/images/components',
'../../images/icons': 'uikit/src/images/icons'
}
},
+ build: {
+ lib: {
+ entry: {
+ index: resolve(__dirname, 'src/index.ts'),
+ 'components/pages/account': resolve(__dirname, 'src/components/Pages/Account/index.ts'),
+ 'components/pages/admin': resolve(__dirname, 'src/components/Pages/Admin/index.ts'),
+ components: resolve(__dirname, 'src/components/index.ts'),
+ plugins: resolve(__dirname, 'src/plugins/index.ts'),
+ views: resolve(__dirname, 'src/views/index.ts')
+ },
+ formats: ['es']
+ },
+ rollupOptions: {
+ external: [
+ 'vue',
+ 'vue-router',
+ 'axios',
+ 'pinia',
+ 'pinia-plugin-persistedstate',
+ 'uikit',
+ 'uikit/dist/js/uikit-icons',
+ '@fontsource/montserrat',
+ '@fontsource/mulish',
+ '@fortawesome/fontawesome-free',
+ '@fortawesome/fontawesome-svg-core',
+ '@fortawesome/free-brands-svg-icons',
+ '@fortawesome/free-regular-svg-icons',
+ '@fortawesome/free-solid-svg-icons',
+ '@fortawesome/vue-fontawesome',
+ '@userfrosting/sprinkle-core',
+ '@userfrosting/sprinkle-core/composables',
+ '@userfrosting/sprinkle-core/interfaces',
+ '@userfrosting/sprinkle-core/stores',
+ '@userfrosting/sprinkle-account',
+ '@userfrosting/sprinkle-account/composables',
+ '@userfrosting/sprinkle-account/guards',
+ '@userfrosting/sprinkle-account/interfaces',
+ '@userfrosting/sprinkle-account/stores',
+ '@userfrosting/sprinkle-admin',
+ '@userfrosting/sprinkle-admin/components',
+ '@userfrosting/sprinkle-admin/composables',
+ '@userfrosting/sprinkle-admin/interfaces'
+ ],
+ output: {
+ preserveModules: false,
+ entryFileNames: '[name].js',
+ assetFileNames: (assetInfo) => {
+ // Keep LESS files in their original location
+ if (assetInfo.name?.endsWith('.less')) {
+ return 'less/[name][extname]'
+ }
+ return 'assets/[name][extname]'
+ }
+ }
+ }
+ },
test: {
coverage: {
reportsDirectory: './_meta/_coverage',
diff --git a/tsconfig.json b/tsconfig.json
index 4c9836356..2aca6b398 100755
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -22,7 +22,8 @@
"baseUrl": ".",
"rootDir": "packages",
"allowJs": true,
- "types": ["@modyfi/vite-plugin-yaml/modules"]
+ "types": ["@modyfi/vite-plugin-yaml/modules"],
+ "customConditions": ["userfrosting:monorepo"]
},
"references": [
{
diff --git a/vite.config.ts b/vite.config.ts
new file mode 100644
index 000000000..783b2f5b1
--- /dev/null
+++ b/vite.config.ts
@@ -0,0 +1,64 @@
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+import vueDevTools from 'vite-plugin-vue-devtools'
+import ViteYaml from '@modyfi/vite-plugin-yaml'
+
+// Get vite port from env, default to 5173
+const vitePort = parseInt(process.env.VITE_PORT || '5173', 10)
+
+// https://vitejs.dev/config/
+// Monorepo-specific Vite configuration for development
+export default defineConfig({
+ plugins: [
+ vue(),
+ ViteYaml(),
+ vueDevTools({
+ appendTo: 'packages/skeleton/app/assets/main.ts'
+ })
+ ],
+ // Use 'userfrosting:monorepo' condition to resolve to source TS files for HMR in monorepo
+ resolve: {
+ conditions: ['userfrosting:monorepo', 'import']
+ },
+ server: {
+ host: true, // Allows external access (needed for Docker)
+ strictPort: true,
+ port: vitePort,
+ origin: `http://localhost:${vitePort}`,
+ },
+ root: 'packages/skeleton/app/assets/',
+ base: '/assets/',
+ build: {
+ outDir: 'public/assets',
+ assetsDir: '',
+ emptyOutDir: true,
+ manifest: true,
+ rollupOptions: {
+ input: {
+ main: 'packages/skeleton/app/assets/main.ts'
+ }
+ }
+ },
+ // Fix uikit path issue
+ // @see : https://github.com/uikit/uikit/issues/5024
+ css: {
+ preprocessorOptions: {
+ less: {
+ relativeUrls: 'all'
+ }
+ }
+ },
+ // Force optimization of UiKit (not module packages) in dev mode
+ // to avoid the error:
+ // "importing binding name 'default' cannot be resolved by star export entries"
+ // Treat all sprinkles as source code (not prebuilt) for HMR
+ optimizeDeps: {
+ include: ['uikit', 'uikit/dist/js/uikit-icons'],
+ exclude: [
+ '@userfrosting/sprinkle-core',
+ '@userfrosting/sprinkle-account',
+ '@userfrosting/sprinkle-admin',
+ '@userfrosting/theme-pink-cupcake'
+ ]
+ }
+})
diff --git a/vitest.config.ts b/vitest.config.ts
index bb22eab29..1b085ba24 100644
--- a/vitest.config.ts
+++ b/vitest.config.ts
@@ -2,6 +2,9 @@
import { defineConfig } from 'vite'
export default defineConfig({
+ resolve: {
+ conditions: ['userfrosting:monorepo', 'import']
+ },
test: {
coverage: {
enabled: true,