diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 02810d0..0a7a684 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -10,6 +10,9 @@ permissions:
actions: read
contents: read
+env:
+ NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
+
jobs:
main:
runs-on: ubuntu-latest
diff --git a/.prettierrc b/.prettierrc
index b22b113..0604159 100644
--- a/.prettierrc
+++ b/.prettierrc
@@ -1,7 +1,6 @@
{
"arrowParens": "always",
"bracketSpacing": true,
- "jsxBracketSameLine": true,
"jsxSingleQuote": false,
"printWidth": 80,
"quoteProps": "as-needed",
diff --git a/.verdaccio/config.yml b/.verdaccio/config.yml
index 335c2ee..1e5fcd8 100644
--- a/.verdaccio/config.yml
+++ b/.verdaccio/config.yml
@@ -1,5 +1,5 @@
# path to a directory with all packages
-storage: ../build/local-registry/storage
+storage: ../dist/local-registry/storage
auth:
htpasswd:
@@ -41,7 +41,7 @@ packages:
proxy: npmjs
# log settings
-logs:
+log:
type: stdout
format: pretty
level: warn
diff --git a/e2e/bun/.spec.swcrc b/e2e/bun/.spec.swcrc
new file mode 100644
index 0000000..3b52a53
--- /dev/null
+++ b/e2e/bun/.spec.swcrc
@@ -0,0 +1,22 @@
+{
+ "jsc": {
+ "target": "es2017",
+ "parser": {
+ "syntax": "typescript",
+ "decorators": true,
+ "dynamicImport": true
+ },
+ "transform": {
+ "decoratorMetadata": true,
+ "legacyDecorator": true
+ },
+ "keepClassNames": true,
+ "externalHelpers": true,
+ "loose": true
+ },
+ "module": {
+ "type": "es6"
+ },
+ "sourceMaps": true,
+ "exclude": []
+}
diff --git a/e2e/bun/eslint.config.mjs b/e2e/bun/eslint.config.mjs
new file mode 100644
index 0000000..b7f6277
--- /dev/null
+++ b/e2e/bun/eslint.config.mjs
@@ -0,0 +1,3 @@
+import baseConfig from '../../eslint.config.mjs';
+
+export default [...baseConfig];
diff --git a/e2e/bun/jest.config.ts b/e2e/bun/jest.config.ts
new file mode 100644
index 0000000..a1ae4d6
--- /dev/null
+++ b/e2e/bun/jest.config.ts
@@ -0,0 +1,26 @@
+/* eslint-disable */
+import { readFileSync } from 'fs';
+import type { Config } from 'jest';
+
+// Reading the SWC compilation config for the spec files
+const swcJestConfig = JSON.parse(
+ readFileSync(`${__dirname}/.spec.swcrc`, 'utf-8')
+);
+
+// Disable .swcrc look-up by SWC core because we're passing in swcJestConfig ourselves
+swcJestConfig.swcrc = false;
+
+const config: Config = {
+ detectOpenHandles: false,
+ displayName: 'bun-e2e',
+ preset: '../jest.preset.e2e.js',
+ transform: {
+ '^.+\\.[tj]s$': ['@swc/jest', swcJestConfig]
+ },
+ moduleFileExtensions: ['ts', 'js', 'html'],
+ coverageDirectory: 'test-output/jest/coverage',
+ globalSetup: '../../tools/scripts/start-local-registry.ts',
+ globalTeardown: '../../tools/scripts/stop-local-registry.ts'
+};
+
+export default config;
diff --git a/e2e/bun/package.json b/e2e/bun/package.json
new file mode 100644
index 0000000..e95cefc
--- /dev/null
+++ b/e2e/bun/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "bun-e2e",
+ "version": "0.0.1",
+ "private": true
+}
diff --git a/e2e/bun/project.json b/e2e/bun/project.json
new file mode 100644
index 0000000..09c26fe
--- /dev/null
+++ b/e2e/bun/project.json
@@ -0,0 +1,20 @@
+{
+ "name": "bun-e2e",
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
+ "tags": ["scope:bun", "type:e2e"],
+ "implicitDependencies": ["bun"],
+ "projectType": "application",
+ "sourceRoot": "e2e/bun/src",
+ "targets": {
+ "e2e": {
+ "executor": "@nx/jest:jest",
+ "inputs": ["e2eInputs"],
+ "outputs": ["{projectRoot}/test-output/jest/coverage"],
+ "options": {
+ "jestConfig": "e2e/bun/jest.config.ts",
+ "runInBand": true
+ },
+ "dependsOn": ["^build"]
+ }
+ }
+}
diff --git a/e2e/bun/src/bun.spec.ts b/e2e/bun/src/bun.spec.ts
new file mode 100644
index 0000000..6b1f050
--- /dev/null
+++ b/e2e/bun/src/bun.spec.ts
@@ -0,0 +1,77 @@
+import { cleanup, ensureNxProject } from '@nx/plugin/testing';
+import {
+ assertPluginInstalled,
+ generateStonxApp,
+ getProjectDetails,
+ installStonxPlugin
+} from '@stonx/e2e-utils';
+
+describe('bun', () => {
+ let bunApp: string;
+
+ beforeAll(() => {
+ ensureNxProject();
+ installStonxPlugin('bun');
+ });
+
+ afterAll(() => {
+ cleanup();
+ });
+
+ describe('setup', () => {
+ it('should be installed', () => {
+ assertPluginInstalled('bun');
+ });
+ });
+
+ describe('application generator', () => {
+ beforeAll(() => {
+ bunApp = generateStonxApp('bun', '--framework none');
+ });
+
+ it('should properly set up project', () => {
+ const projectDetails = getProjectDetails(bunApp);
+
+ expect(projectDetails).toMatchObject({
+ name: bunApp,
+ root: `apps/${bunApp}`,
+ sourceRoot: `apps/${bunApp}/src`,
+ projectType: 'application',
+ targets: {
+ build: {
+ executor: '@stonx/bun:build',
+ inputs: ['production', '^production'],
+ outputs: ['{options.outputPath}'],
+ defaultConfiguration: 'production',
+ options: {
+ main: `apps/${bunApp}/src/main.ts`,
+ tsConfig: `apps/${bunApp}/tsconfig.app.json`,
+ smol: false,
+ bun: true
+ },
+ configurations: {
+ development: {},
+ production: {}
+ },
+ dependsOn: ['^build']
+ },
+ serve: {
+ continuous: true,
+ executor: '@stonx/bun:run',
+ defaultConfiguration: 'development',
+ options: {
+ runBuildTargetDependencies: false
+ },
+ configurations: {
+ development: {},
+ production: {
+ buildTarget: `${bunApp}:build:production`
+ }
+ },
+ parallelism: true
+ }
+ }
+ });
+ });
+ });
+});
diff --git a/e2e/bun/tsconfig.json b/e2e/bun/tsconfig.json
new file mode 100644
index 0000000..e8c2471
--- /dev/null
+++ b/e2e/bun/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "extends": "../../tsconfig.e2e.json",
+ "files": [],
+ "include": [],
+ "references": [
+ {
+ "path": "./tsconfig.spec.json"
+ }
+ ]
+}
diff --git a/e2e/bun/tsconfig.spec.json b/e2e/bun/tsconfig.spec.json
new file mode 100644
index 0000000..10389c2
--- /dev/null
+++ b/e2e/bun/tsconfig.spec.json
@@ -0,0 +1,14 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "module": "commonjs",
+ "outDir": "./out-tsc/jest",
+ "types": ["jest", "node"]
+ },
+ "include": [
+ "jest.config.ts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.d.ts"
+ ]
+}
diff --git a/e2e/elysia/jest.config.ts b/e2e/elysia/jest.config.ts
index aa878e6..5b6201b 100644
--- a/e2e/elysia/jest.config.ts
+++ b/e2e/elysia/jest.config.ts
@@ -1,5 +1,6 @@
/* eslint-disable */
import { readFileSync } from 'fs';
+import type { Config } from 'jest';
// Reading the SWC compilation config for the spec files
const swcJestConfig = JSON.parse(
@@ -9,9 +10,9 @@ const swcJestConfig = JSON.parse(
// Disable .swcrc look-up by SWC core because we're passing in swcJestConfig ourselves
swcJestConfig.swcrc = false;
-export default {
+const config: Config = {
displayName: 'elysia-e2e',
- preset: '../../jest.preset.js',
+ preset: '../jest.preset.e2e.js',
transform: {
'^.+\\.[tj]s$': ['@swc/jest', swcJestConfig]
},
@@ -20,3 +21,5 @@ export default {
globalSetup: '../../tools/scripts/start-local-registry.ts',
globalTeardown: '../../tools/scripts/stop-local-registry.ts'
};
+
+export default config;
diff --git a/e2e/elysia/package.json b/e2e/elysia/package.json
index 5e4ef24..e2c9de8 100644
--- a/e2e/elysia/package.json
+++ b/e2e/elysia/package.json
@@ -1,6 +1,5 @@
{
"name": "elysia-e2e",
"version": "0.0.1",
- "private": true,
- "nx": {}
+ "private": true
}
diff --git a/e2e/elysia/src/elysia.spec.ts b/e2e/elysia/src/elysia.spec.ts
index f006310..5fa8160 100644
--- a/e2e/elysia/src/elysia.spec.ts
+++ b/e2e/elysia/src/elysia.spec.ts
@@ -1,53 +1,41 @@
-import { execSync } from 'child_process';
+import { cleanup, ensureNxProject } from '@nx/plugin/testing';
import {
- cleanupTestProject,
- createTestProject,
- installPlugin
+ assertPluginInstalled,
+ generateStonxApp,
+ getProjectDetails,
+ installStonxPlugin
} from '@stonx/e2e-utils';
describe('elysia', () => {
- let projectDirectory: string;
+ let elysiaApp: string;
beforeAll(() => {
- projectDirectory = createTestProject();
- installPlugin(projectDirectory, 'elysia');
+ ensureNxProject();
+ installStonxPlugin('elysia');
});
afterAll(() => {
- cleanupTestProject(projectDirectory);
+ cleanup();
});
- it('should be installed', () => {
- // npm ls will fail if the package is not installed properly
- execSync('pnpm ls --depth 100 @stonx/elysia', {
- cwd: projectDirectory,
- stdio: 'inherit'
+ describe('setup', () => {
+ it('should be installed', () => {
+ assertPluginInstalled('elysia');
});
});
describe('application generator', () => {
beforeAll(() => {
- execSync(
- 'npx nx g @stonx/elysia:application my-app --linter none --unitTestRunner none --e2eTestRunner none',
- {
- cwd: projectDirectory,
- stdio: 'inherit',
- env: process.env
- }
- );
+ elysiaApp = generateStonxApp('elysia');
});
- it('should infer tasks', () => {
- const projectDetails = JSON.parse(
- execSync('nx show project my-app --json', {
- cwd: projectDirectory
- }).toString()
- );
+ it('should properly set up project', () => {
+ const projectDetails = getProjectDetails(elysiaApp);
expect(projectDetails).toMatchObject({
- name: 'my-app',
- root: 'my-app',
- sourceRoot: 'my-app/src',
+ name: elysiaApp,
+ root: `apps/${elysiaApp}`,
+ sourceRoot: `apps/${elysiaApp}/src`,
projectType: 'application',
targets: {
build: {
@@ -56,8 +44,8 @@ describe('elysia', () => {
defaultConfiguration: 'production',
options: {
platform: 'node',
- main: 'my-app/src/main.ts',
- tsConfig: 'my-app/tsconfig.app.json'
+ main: `apps/${elysiaApp}/src/main.ts`,
+ tsConfig: `apps/${elysiaApp}/tsconfig.app.json`
},
configurations: {
development: {},
@@ -81,15 +69,15 @@ describe('elysia', () => {
defaultConfiguration: 'development',
dependsOn: ['build'],
options: {
- buildTarget: 'my-app:build',
+ buildTarget: `${elysiaApp}:build`,
runBuildTargetDependencies: false
},
configurations: {
development: {
- buildTarget: 'my-app:build:development'
+ buildTarget: `${elysiaApp}:build:development`
},
production: {
- buildTarget: 'my-app:build:production'
+ buildTarget: `${elysiaApp}:build:production`
}
},
parallelism: true
diff --git a/e2e/jest.preset.e2e.js b/e2e/jest.preset.e2e.js
new file mode 100644
index 0000000..cf4fbfd
--- /dev/null
+++ b/e2e/jest.preset.e2e.js
@@ -0,0 +1,9 @@
+const preset = require('../jest.preset');
+
+// The root preset sets up the environment for unit tests.
+delete preset.setupFiles;
+delete preset.moduleNameMapper;
+
+module.exports = {
+ ...preset
+};
diff --git a/e2e/utils/add-plugin.ts b/e2e/utils/add-plugin.ts
deleted file mode 100644
index 4c6015a..0000000
--- a/e2e/utils/add-plugin.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { execSync } from 'child_process';
-
-export function addPlugin(projectDirectory: string, pluginName: string) {
- return execSync(`npx nx add @stonx/${pluginName}@e2e`, {
- cwd: projectDirectory,
- stdio: 'inherit',
- env: process.env
- });
-}
diff --git a/e2e/utils/cleanup-test-project.ts b/e2e/utils/cleanup-test-project.ts
deleted file mode 100644
index 39a9632..0000000
--- a/e2e/utils/cleanup-test-project.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { rmSync } from 'fs';
-
-export function cleanupTestProject(projectDirectory: string) {
- if (!projectDirectory) {
- return;
- }
-
- rmSync(projectDirectory, {
- recursive: true,
- force: true
- });
-}
diff --git a/e2e/utils/create-test-project.ts b/e2e/utils/create-test-project.ts
deleted file mode 100644
index daced6a..0000000
--- a/e2e/utils/create-test-project.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { join, dirname } from 'path';
-import { mkdirSync, rmSync } from 'fs';
-import { execSync } from 'child_process';
-
-/**
- * Creates a test project with create-nx-workspace and installs the plugin
- * @returns The directory where the test project was created
- */
-export function createTestProject(projectName = 'test-project') {
- const projectDirectory = join(process.cwd(), 'tmp', 'nx-e2e', projectName);
-
- // Ensure projectDirectory is empty
- rmSync(projectDirectory, {
- recursive: true,
- force: true
- });
- mkdirSync(dirname(projectDirectory), {
- recursive: true
- });
-
- execSync(
- `pnpm dlx create-nx-workspace@latest ${projectName} --preset apps --nxCloud=skip --no-interactive`,
- {
- cwd: dirname(projectDirectory),
- stdio: 'inherit',
- env: process.env
- }
- );
-
- console.log(`Created test project in "${projectDirectory}"`);
-
- return projectDirectory;
-}
diff --git a/e2e/utils/index.ts b/e2e/utils/index.ts
index 827ff7a..1110b64 100644
--- a/e2e/utils/index.ts
+++ b/e2e/utils/index.ts
@@ -1,4 +1 @@
-export * from './add-plugin';
-export * from './cleanup-test-project';
-export * from './create-test-project';
-export * from './install-plugin';
+export * from './plugin';
diff --git a/e2e/utils/install-plugin.ts b/e2e/utils/install-plugin.ts
deleted file mode 100644
index 201ee6d..0000000
--- a/e2e/utils/install-plugin.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { execSync } from 'child_process';
-
-export function installPlugin(projectDirectory: string, pluginName: string) {
- return execSync(`pnpm add -D @stonx/${pluginName}@e2e`, {
- cwd: projectDirectory,
- stdio: 'inherit',
- env: process.env
- });
-}
diff --git a/e2e/utils/plugin.ts b/e2e/utils/plugin.ts
new file mode 100644
index 0000000..b8f5131
--- /dev/null
+++ b/e2e/utils/plugin.ts
@@ -0,0 +1,37 @@
+import {
+ runCommand,
+ runNxCommand,
+ tmpProjPath,
+ uniq
+} from '@nx/plugin/testing';
+import {
+ detectPackageManager,
+ getPackageManagerCommand,
+ PackageManagerCommands
+} from 'nx/src/utils/package-manager';
+
+export function installStonxPlugin(name: string, version = 'e2e') {
+ return runNxCommand(`add @stonx/${name}@${version}`);
+}
+
+export function generateStonxApp(pluginName: string, args?: string): string {
+ const appName: string = uniq(`${pluginName}app`);
+ runNxCommand(
+ `g @stonx/${pluginName}:application apps/${appName} --linter none --unitTestRunner none --e2eTestRunner none${args ? ` ${args}` : ''}`
+ );
+
+ return appName;
+}
+
+export function getPackageManagerCommands(): PackageManagerCommands {
+ return getPackageManagerCommand(detectPackageManager(tmpProjPath()));
+}
+
+export function assertPluginInstalled(pluginName: string): string {
+ const pm = getPackageManagerCommands();
+ return runCommand(`${pm.list} @stonx/${pluginName}`, {});
+}
+
+export function getProjectDetails(projectName: string) {
+ return JSON.parse(runNxCommand(`show project ${projectName} --json`));
+}
diff --git a/jest.preset.js b/jest.preset.js
index f078ddc..5885907 100644
--- a/jest.preset.js
+++ b/jest.preset.js
@@ -1,3 +1,11 @@
const nxPreset = require('@nx/jest/preset').default;
-module.exports = { ...nxPreset };
+module.exports = {
+ ...nxPreset,
+ collectCoverage: true,
+ coverageReporters: ['html', 'json'],
+ moduleNameMapper: {
+ '^@actions/github$': '__mocks__/@actions/github.jest.ts'
+ },
+ passWithNoTests: true
+};
diff --git a/nx.json b/nx.json
index a4ea695..747e02b 100644
--- a/nx.json
+++ b/nx.json
@@ -17,6 +17,12 @@
"default",
"{workspaceRoot}/jest.preset.js",
"{workspaceRoot}/.verdaccio/config.yml",
+ {
+ "env": "SELECTED_CLI"
+ },
+ {
+ "env": "SELECTED_PM"
+ },
{
"env": "NX_E2E_CI_CACHE_KEY"
},
@@ -33,10 +39,10 @@
"projectsRelationship": "independent",
"releaseTagPattern": "{projectName}@{version}",
"version": {
+ "preVersionCommand": "pnpm dlx nx run-many -t build",
"conventionalCommits": true,
"fallbackCurrentVersionResolver": "disk",
- "preVersionCommand": "pnpm dlx nx run-many -t build",
- "manifestRootsToUpdate": ["{projectRoot}", "{projectRoot}/dist"]
+ "manifestRootsToUpdate": ["{projectRoot}/dist"]
},
"changelog": {
"automaticFromRef": true,
diff --git a/package.json b/package.json
index 5d7c247..63708c0 100644
--- a/package.json
+++ b/package.json
@@ -14,28 +14,32 @@
"prepare": "is-ci || husky",
"preinstall": "node ./scripts/preinstall.js",
"test": "nx run-many -t test",
- "e2e": "nx run-many -t e2e --projects ./e2e/*"
+ "e2e": "nx run-many -t e2e --parallel 1",
+ "update": "nx migrate latest"
},
"devDependencies": {
"@eslint/js": "^9.8.0",
- "@nx/devkit": "21.3.11",
- "@nx/eslint": "21.3.11",
- "@nx/eslint-plugin": "21.3.11",
- "@nx/jest": "21.3.11",
- "@nx/js": "21.3.11",
- "@nx/node": "21.3.11",
- "@nx/plugin": "21.3.11",
- "@nx/workspace": "21.3.11",
+ "@nx/devkit": "21.4.1",
+ "@nx/eslint": "21.4.1",
+ "@nx/eslint-plugin": "21.4.1",
+ "@nx/jest": "21.4.1",
+ "@nx/js": "21.4.1",
+ "@nx/node": "21.4.1",
+ "@nx/plugin": "21.4.1",
+ "@nx/workspace": "21.4.1",
"@swc-node/register": "~1.9.1",
"@swc/cli": "~0.6.0",
"@swc/core": "~1.5.7",
"@swc/helpers": "~0.5.11",
"@swc/jest": "~0.2.38",
+ "@types/bun": "1.2.20",
"@types/jest": "^30.0.0",
"@types/node": "18.16.9",
"chalk": "5.5.0",
+ "cmrd": "0.0.1",
"cz-git": "1.12.0",
"czg": "1.12.0",
+ "esbuild": "^0.19.2",
"eslint": "^9.8.0",
"eslint-config-prettier": "^10.0.0",
"fast-glob": "3.3.3",
@@ -46,14 +50,14 @@
"jest-environment-node": "^30.0.2",
"jest-util": "^30.0.2",
"jsonc-eslint-parser": "^2.1.0",
- "nx": "21.3.11",
+ "nx": "21.4.1",
"prettier": "3.6.2",
"pretty-quick": "4.2.2",
"semver": "7.7.2",
"ts-jest": "^29.4.0",
"ts-node": "10.9.1",
"tslib": "^2.3.0",
- "typescript": "~5.8.2",
+ "typescript": "~5.9.2",
"typescript-eslint": "^8.29.0",
"verdaccio": "^6.0.5",
"yargs": "18.0.0"
diff --git a/packages/bun/.spec.swcrc b/packages/bun/.spec.swcrc
new file mode 100644
index 0000000..3b52a53
--- /dev/null
+++ b/packages/bun/.spec.swcrc
@@ -0,0 +1,22 @@
+{
+ "jsc": {
+ "target": "es2017",
+ "parser": {
+ "syntax": "typescript",
+ "decorators": true,
+ "dynamicImport": true
+ },
+ "transform": {
+ "decoratorMetadata": true,
+ "legacyDecorator": true
+ },
+ "keepClassNames": true,
+ "externalHelpers": true,
+ "loose": true
+ },
+ "module": {
+ "type": "es6"
+ },
+ "sourceMaps": true,
+ "exclude": []
+}
diff --git a/packages/bun/README.md b/packages/bun/README.md
new file mode 100644
index 0000000..aa2a887
--- /dev/null
+++ b/packages/bun/README.md
@@ -0,0 +1,114 @@
+# @stonx/bun — Nx plugin for Bun
+
+[](https://www.npmjs.com/package/@stonx/bun)
+[](https://opensource.org/licenses/MIT)
+[](https://nx.dev)
+[](https://github.com/BorisTB/stonx/actions)
+
+Nx plugin adding support for [Bun](https://bun.sh/).
+
+## Features
+
+- Generators
+ - application: scaffold a Bun application (with Nx targets preconfigured)
+ - init: initialize the plugin in your workspace
+- Executors
+ - build: build an application using Bun
+ - run: execute an application using Bun (with watch support)
+
+## Add the plugin to an existing Nx workspace
+
+### Recommended
+
+```bash
+nx add @stonx/bun
+```
+
+This installs the plugin and performs any required setup in your workspace.
+
+### Fallback (manual)
+
+```bash
+npm i -D @stonx/bun
+```
+
+Note: Manual installation may require compatible peer dependencies.
+
+## Generators
+
+### init Internal
+
+Initialize the `@stonx/bun` plugin.
+
+### application
+Generate a Bun application within your Nx workspace.
+
+```shell
+nx g @stonx/bun:app
+```
+
+## Executors
+
+### build
+
+Build an application using Bun.
+
+```json
+{
+ "build": {
+ "executor": "@stonx/bun:build",
+ "options": {
+ "outputPath": "dist/libs/ts-lib",
+ "main": "libs/ts-lib/src/index.ts",
+ "tsConfig": "libs/ts-lib/tsconfig.lib.json",
+ "smol": false,
+ "bun": true
+ }
+ }
+}
+```
+
+### run
+
+Run an application using Bun.
+
+```json
+{
+ "my-app": {
+ "targets": {
+ "serve": {
+ "executor": "@stonx/bun:run",
+ "options": {},
+ "configurations": {
+ "development": {
+ // Just serve the main file without building it
+ "main": "apps/my-app/src/main.ts"
+ },
+ "production": {
+ // Build app and then run the built main file
+ "buildTarget": "my-app:build"
+ }
+ }
+ },
+ "build": {
+ "executor": "@stonx/bun:build",
+ "options": {
+ "main": "apps/my-app/src/main.ts",
+ // ...
+ }
+ }
+ }
+ }
+}
+```
+
+### Common options:
+- watch: watch for file changes and restart
+- target: wait for dependent targets before run
+- main: entry file to execute
+
+See full options in: [src/executors/run/schema.json]()
+
+## Compatibility
+- Nx: >= 20 < 22
+
diff --git a/packages/bun/eslint.config.mjs b/packages/bun/eslint.config.mjs
new file mode 100644
index 0000000..6427a56
--- /dev/null
+++ b/packages/bun/eslint.config.mjs
@@ -0,0 +1,34 @@
+import baseConfig from '../../eslint.config.mjs';
+
+export default [
+ ...baseConfig,
+ {
+ files: ['**/*.json'],
+ rules: {
+ '@nx/dependency-checks': [
+ 'error',
+ {
+ ignoredFiles: ['{projectRoot}/eslint.config.{js,cjs,mjs,ts,cts,mts}']
+ }
+ ]
+ },
+ languageOptions: {
+ parser: await import('jsonc-eslint-parser')
+ }
+ },
+ {
+ files: [
+ '**/package.json',
+ '**/executors.json',
+ '**/package.json',
+ '**/generators.json',
+ '**/executors.json'
+ ],
+ rules: {
+ '@nx/nx-plugin-checks': 'error'
+ },
+ languageOptions: {
+ parser: await import('jsonc-eslint-parser')
+ }
+ }
+];
diff --git a/packages/bun/executors.json b/packages/bun/executors.json
new file mode 100644
index 0000000..bb802be
--- /dev/null
+++ b/packages/bun/executors.json
@@ -0,0 +1,14 @@
+{
+ "executors": {
+ "build": {
+ "implementation": "./src/executors/build/build",
+ "schema": "./src/executors/build/schema.json",
+ "description": "Build an application using Bun."
+ },
+ "run": {
+ "implementation": "./src/executors/run/run",
+ "schema": "./src/executors/run/schema.json",
+ "description": "Execute an application using Bun."
+ }
+ }
+}
diff --git a/packages/bun/generators.json b/packages/bun/generators.json
new file mode 100644
index 0000000..eb71105
--- /dev/null
+++ b/packages/bun/generators.json
@@ -0,0 +1,17 @@
+{
+ "generators": {
+ "application": {
+ "factory": "./src/generators/application/application",
+ "schema": "./src/generators/application/schema.json",
+ "aliases": ["app"],
+ "x-type": "application",
+ "description": "Create a bun application."
+ },
+ "init": {
+ "factory": "./src/generators/init/init",
+ "schema": "./src/generators/init/schema.json",
+ "description": "Initialize the `@stonx/bun` plugin.",
+ "hidden": true
+ }
+ }
+}
diff --git a/packages/bun/jest.config.ts b/packages/bun/jest.config.ts
new file mode 100644
index 0000000..7bca9ba
--- /dev/null
+++ b/packages/bun/jest.config.ts
@@ -0,0 +1,20 @@
+import { readFileSync } from 'fs';
+
+// Reading the SWC compilation config for the spec files
+const swcJestConfig = JSON.parse(
+ readFileSync(`${__dirname}/.spec.swcrc`, 'utf-8')
+);
+
+// Disable .swcrc look-up by SWC core because we're passing in swcJestConfig ourselves
+swcJestConfig.swcrc = false;
+
+export default {
+ displayName: 'bun',
+ preset: '../../jest.preset.js',
+ testEnvironment: 'node',
+ transform: {
+ '^.+\\.[tj]s$': ['@swc/jest', swcJestConfig]
+ },
+ moduleFileExtensions: ['ts', 'js', 'html'],
+ coverageDirectory: 'test-output/jest/coverage'
+};
diff --git a/packages/bun/package.json b/packages/bun/package.json
new file mode 100644
index 0000000..29032a2
--- /dev/null
+++ b/packages/bun/package.json
@@ -0,0 +1,32 @@
+{
+ "name": "@stonx/bun",
+ "version": "0.0.1",
+ "author": "BorisTB",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/BorisTB/stonx.git",
+ "directory": "packages/bun"
+ },
+ "keywords": [
+ "Nx",
+ "Bun"
+ ],
+ "bugs": "https://github.com/BorisTB/stonx/issues",
+ "license": "MIT",
+ "type": "commonjs",
+ "main": "./src/index.js",
+ "types": "./src/index.d.ts",
+ "executors": "./executors.json",
+ "generators": "./generators.json",
+ "peerDependencies": {
+ "@nx/devkit": ">=20.0.0 <22.0.0",
+ "@nx/js": ">=20.0.0 <22.0.0",
+ "nx": "21.4.1",
+ "fast-glob": "3.3.3",
+ "@nx/eslint": "21.4.1",
+ "tslib": "^2.3.0"
+ },
+ "publishConfig": {
+ "access": "public"
+ }
+}
diff --git a/packages/bun/project.json b/packages/bun/project.json
new file mode 100644
index 0000000..0367245
--- /dev/null
+++ b/packages/bun/project.json
@@ -0,0 +1,47 @@
+{
+ "name": "bun",
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
+ "sourceRoot": "packages/bun/src",
+ "projectType": "library",
+ "tags": [],
+ "targets": {
+ "build": {
+ "executor": "@nx/js:tsc",
+ "outputs": ["{options.outputPath}"],
+ "options": {
+ "clean": true,
+ "outputPath": "packages/bun/dist",
+ "main": "packages/bun/src/index.ts",
+ "tsConfig": "packages/bun/tsconfig.lib.json",
+ "assets": [
+ "packages/bun/*.md",
+ {
+ "input": "./packages/bun/src",
+ "glob": "**/!(*.ts)",
+ "output": "./src"
+ },
+ {
+ "input": "./packages/bun/src",
+ "glob": "**/*.d.ts",
+ "output": "./src"
+ },
+ {
+ "input": "./packages/bun",
+ "glob": "generators.json",
+ "output": "."
+ },
+ {
+ "input": "./packages/bun",
+ "glob": "executors.json",
+ "output": "."
+ },
+ {
+ "input": "./packages/bun",
+ "glob": "migrations.json",
+ "output": "."
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/packages/bun/src/executors/build/build.ts b/packages/bun/src/executors/build/build.ts
new file mode 100644
index 0000000..f7d4af3
--- /dev/null
+++ b/packages/bun/src/executors/build/build.ts
@@ -0,0 +1,141 @@
+import { ExecutorContext, logger } from '@nx/devkit';
+import { BuildExecutorOptions } from './schema';
+import { createAsyncIterable } from '@nx/devkit/src/utils/async-iterable';
+import { parentPort } from 'node:worker_threads';
+import {
+ getBunVersion,
+ isBun,
+ isBunSubprocess,
+ spawnWithBun
+} from '../../utils';
+import { getBunBuildArgv, getBunBuildConfig, normalizeOptions } from './lib';
+import Buni from '../../utils/buni';
+
+export interface BunBuildResult {
+ success: boolean;
+ outfile: string;
+}
+
+async function* buildExecutor(
+ _options: BuildExecutorOptions,
+ context: ExecutorContext
+): AsyncGenerator {
+ const bunVersion = await getBunVersion();
+
+ if (!bunVersion) {
+ throw new Error(`bun command not found. Make sure the bun is available`);
+ }
+
+ process.env.NODE_ENV ??= context?.configurationName ?? 'development';
+
+ const project = context.projectGraph.nodes[context.projectName!];
+ const { sourceRoot, root } = project.data;
+ const options = normalizeOptions(_options, context, sourceRoot, root);
+
+ // const cwd = options.cwd ? resolve(context.root, options.cwd) : context.root;
+
+ const getResult = (success: boolean): BunBuildResult => ({
+ success,
+ outfile: options.mainOutputPath
+ });
+
+ if (isBun) {
+ const config = getBunBuildConfig(options);
+ const result = await Buni.build(config);
+ for (const log of result.logs) {
+ console.log(log);
+ }
+ if (result.success) {
+ const outputTextAsync = result.outputs.flatMap((res) => res.text());
+ const outputText = await Promise.all(outputTextAsync);
+ outputText.forEach((out) => console.log(out));
+ console.log(`Build completed for ${context.projectName}`);
+ yield getResult(true);
+ } else {
+ yield getResult(false);
+ }
+ } else {
+ const args = getBunBuildArgv(options);
+ yield* createAsyncIterable(async ({ next, done }) => {
+ const childProcess = spawnWithBun(args, {
+ stdio: 'inherit'
+ });
+
+ if (isBunSubprocess(childProcess)) {
+ const stderrReader = childProcess.stderr?.getReader();
+
+ const handleStderr = async () => {
+ if (!stderrReader) {
+ return;
+ }
+
+ try {
+ while (true) {
+ const { done, value } = await stderrReader.read();
+ if (done || childProcess.killed) break;
+ if (value) logger.error(new TextDecoder().decode(value));
+ }
+ } catch (err) {
+ if (!childProcess.killed)
+ logger.error(`Error reading stderr: ${err}`);
+ }
+ };
+
+ handleStderr();
+ } else {
+ // Node handling
+ const textDecoder = new TextDecoder();
+
+ const getDataHandler =
+ (type: 'stderr' | 'stdout') => (data: ArrayBuffer) => {
+ const textData = textDecoder.decode(data);
+ if (parentPort) {
+ parentPort.postMessage({ type, message: textData });
+ } else {
+ logger.log(textData);
+ }
+ };
+
+ childProcess.stderr?.on('data', getDataHandler('stderr'));
+ childProcess.stdout?.on('data', getDataHandler('stdout'));
+ }
+
+ process.on('SIGTERM', async () => {
+ childProcess?.kill('SIGTERM');
+ process.exit(128 + 15);
+ });
+
+ process.on('SIGINT', async () => {
+ childProcess?.kill('SIGINT');
+ process.exit(128 + 2);
+ });
+
+ process.on('SIGHUP', async () => {
+ childProcess?.kill('SIGHUP');
+ process.exit(128 + 1);
+ });
+
+ process.on('uncaughtException', async (err) => {
+ console.error('Caught exception:', err);
+ childProcess?.kill('SIGTERM');
+ process.exit(1);
+ });
+
+ if (isBunSubprocess(childProcess)) {
+ childProcess.exited.then((code) => {
+ console.log(`Build completed for ${context.projectName}`);
+ next(getResult(code === 0));
+ done();
+ });
+ } else {
+ childProcess.on('exit', (code) => {
+ console.log(`Build completed for ${context.projectName}`);
+ next(getResult(code === 0));
+ done();
+ });
+ }
+ });
+ }
+}
+
+export default buildExecutor;
diff --git a/packages/bun/src/executors/build/lib/get-bun-build-argv.ts b/packages/bun/src/executors/build/lib/get-bun-build-argv.ts
new file mode 100644
index 0000000..d292920
--- /dev/null
+++ b/packages/bun/src/executors/build/lib/get-bun-build-argv.ts
@@ -0,0 +1,47 @@
+import { NormalizedBuildExecutorOptions } from '../schema';
+import { getBunBuildConfig } from './get-bun-build-config';
+
+const isNil = (value: any): value is undefined | null => value == null;
+const isString = (value: any): value is string => typeof value === 'string';
+
+export function getBunBuildArgv(
+ options: NormalizedBuildExecutorOptions
+): string[] {
+ const cfg = getBunBuildConfig(options);
+ const production = process.env?.NODE_ENV === 'production';
+
+ const allArgs = [
+ 'build',
+
+ !isNil(options.config) && `--config=${options.config}`,
+ !isNil(options.tsConfig) && `--tsconfig-override=${options.tsConfig}`,
+ !isNil(options.bun) && `--bun`,
+ !isNil(options.smol) && `--smol`,
+ !isNil(cfg.target) && `--target=${cfg.target}`,
+
+ cfg.entrypoints.join(' '),
+
+ production && '--production',
+ !isNil(cfg.root) && `--root=${cfg.root}`,
+ !isNil(cfg.env) && `--env=${cfg.env}`,
+ !isNil(cfg.outdir) && `--outdir=${cfg.outdir}`,
+ !isNil(options.outputFileName) && `--outfile=${options.outputFileName}`,
+ !isNil(cfg.sourcemap) && `--sourcemap=${cfg.sourcemap}`,
+ !isNil(cfg.publicPath) && `--public-path=${cfg.publicPath}`,
+ !isNil(cfg.naming) && `--entry-naming=${cfg.naming}`,
+ !isNil(cfg.naming) && `--chunk-naming=${cfg.naming}`,
+ !isNil(cfg.naming) && `--asset-naming=${cfg.naming}`,
+ cfg.splitting && `--splitting`,
+ !isNil(cfg.minify) && `--minify`,
+ options.watch && `--watch`,
+ !isNil(cfg.format) && `--format=${cfg.format}`,
+ !isNil(cfg.external) && `--external=${cfg.external}`,
+ !isNil(cfg.packages) && `--packages=${cfg.packages}`,
+ !isNil(cfg.banner) && `--banner=${cfg.banner}`,
+ !isNil(cfg.footer) && `--footer=${cfg.footer}`
+ ];
+
+ const args = allArgs.filter(isString);
+
+ return args;
+}
diff --git a/packages/bun/src/executors/build/lib/get-bun-build-config.ts b/packages/bun/src/executors/build/lib/get-bun-build-config.ts
new file mode 100644
index 0000000..531b45f
--- /dev/null
+++ b/packages/bun/src/executors/build/lib/get-bun-build-config.ts
@@ -0,0 +1,26 @@
+import { NormalizedBuildExecutorOptions } from '../schema';
+import Buni from '../../../utils/buni';
+
+export function getBunBuildConfig(opts: NormalizedBuildExecutorOptions) {
+ return Buni.createBuildConfig({
+ entrypoints: [opts.main, ...(opts.additionalEntryPoints || [])],
+ define: opts.define,
+ outdir: opts.outputPath,
+ target: opts.target,
+ format: opts.format,
+ minify: opts.minify,
+ naming: opts.naming,
+ publicPath: opts.publicPath,
+ sourcemap: opts.sourcemap,
+ splitting: opts.splitting,
+ root: opts.rootDir,
+ packages: opts.packages,
+ loader: opts.loader,
+ env: opts.env,
+ banner: opts.banner,
+ footer: opts.footer,
+ drop: opts.drop,
+ tsconfig: opts.tsConfig,
+ throw: true
+ });
+}
diff --git a/packages/bun/src/executors/build/lib/index.ts b/packages/bun/src/executors/build/lib/index.ts
new file mode 100644
index 0000000..7528330
--- /dev/null
+++ b/packages/bun/src/executors/build/lib/index.ts
@@ -0,0 +1,3 @@
+export * from './get-bun-build-argv';
+export * from './get-bun-build-config';
+export * from './normalize-options';
diff --git a/packages/bun/src/executors/build/lib/normalize-options.ts b/packages/bun/src/executors/build/lib/normalize-options.ts
new file mode 100644
index 0000000..a8f8b0e
--- /dev/null
+++ b/packages/bun/src/executors/build/lib/normalize-options.ts
@@ -0,0 +1,59 @@
+import { join, resolve } from 'node:path';
+import {
+ BuildExecutorOptions,
+ NormalizedBuildExecutorOptions
+} from '../schema';
+import { ExecutorContext } from '@nx/devkit';
+
+export function normalizeOptions(
+ options: BuildExecutorOptions,
+ context: ExecutorContext,
+ sourceRoot: string | undefined,
+ projectRoot: string
+): NormalizedBuildExecutorOptions {
+ const root = context.root;
+ const outputPath = join(root, options.outputPath);
+ const rootDir = options.rootDir
+ ? join(root, options.rootDir)
+ : join(root, projectRoot); // TODO
+ const mainOutputPath = resolve(
+ outputPath,
+ options.main.replace(`${projectRoot}/`, '').replace('.ts', '.js') // TODO
+ );
+
+ const tsConfig = join(root, options.tsConfig);
+
+ const watch = options.watch ?? false;
+ const generatePackageJson = options.generatePackageJson ?? true;
+
+ const splitting = options.splitting ?? true;
+
+ const sourcemap =
+ typeof options.sourcemap === 'boolean'
+ ? options.sourcemap
+ ? 'inline'
+ : 'none'
+ : options.sourcemap;
+
+ if (Array.isArray(options.external) && options.external.length > 0) {
+ const firstItem = options.external[0];
+ if (firstItem === 'all' || firstItem === 'none') {
+ options.external = firstItem;
+ }
+ }
+
+ return {
+ ...options,
+ splitting,
+ sourcemap,
+ root,
+ sourceRoot,
+ projectRoot,
+ outputPath,
+ tsConfig,
+ rootDir,
+ watch,
+ mainOutputPath,
+ generatePackageJson
+ };
+}
diff --git a/packages/bun/src/executors/build/schema.d.ts b/packages/bun/src/executors/build/schema.d.ts
new file mode 100644
index 0000000..db0920b
--- /dev/null
+++ b/packages/bun/src/executors/build/schema.d.ts
@@ -0,0 +1,50 @@
+export type BuildMinifyConfig =
+ | boolean
+ | {
+ whitespace?: boolean;
+ syntax?: boolean;
+ identifiers?: boolean;
+ };
+
+export interface BuildExecutorOptions {
+ main: string;
+ outputPath: string;
+ additionalEntryPoints?: string[];
+ tsConfig: string;
+ rootDir?: string;
+ outputFileName?: string;
+ watch?: boolean;
+ config?: string;
+ smol?: boolean;
+ bun?: boolean;
+ clean?: boolean;
+ target?: 'bun' | 'node' | 'browser';
+ format?: 'esm' | 'cjs' | 'iife';
+ splitting?: boolean;
+ env?: 'inline' | 'disable' | `${string}*` | undefined;
+ sourcemap?: boolean | 'none' | 'linked' | 'inline' | 'external';
+ minify?: BuildMinifyConfig;
+ external?: 'all' | 'none' | string[];
+ packages?: 'bundle' | 'external';
+ naming?: string;
+ publicPath?: string;
+ define?: Record;
+ loader?: Record;
+ banner?: string;
+ footer?: string;
+ drop?: string[];
+ generateLockfile?: boolean;
+ generatePackageJson?: boolean;
+ cwd?: string;
+}
+
+export interface NormalizedBuildExecutorOptions extends BuildExecutorOptions {
+ rootDir: string;
+ projectRoot: string;
+ mainOutputPath: string;
+ generatePackageJson: boolean;
+ root?: string;
+ sourceRoot?: string;
+ sourcemap?: Exclude;
+ splitting: boolean;
+}
diff --git a/packages/bun/src/executors/build/schema.json b/packages/bun/src/executors/build/schema.json
new file mode 100644
index 0000000..7df77a1
--- /dev/null
+++ b/packages/bun/src/executors/build/schema.json
@@ -0,0 +1,184 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "version": 2,
+ "title": "Bun Build Target",
+ "description": "Builds using Bun.",
+ "cli": "nx",
+ "type": "object",
+ "properties": {
+ "main": {
+ "type": "string",
+ "description": "The name of the main entry-point file.",
+ "x-completion-type": "file",
+ "x-completion-glob": "main@(.js|.ts|.jsx|.tsx)",
+ "x-priority": "important"
+ },
+ "additionalEntryPoints": {
+ "type": "array",
+ "description": "An array of paths corresponding to the additional entrypoints of application. One bundle will be generated for each entrypoint.",
+ "items": {
+ "type": "string"
+ },
+ "x-priority": "important"
+ },
+ "rootDir": {
+ "type": "string",
+ "description": "The root directory of the project."
+ },
+ "outputPath": {
+ "type": "string",
+ "description": "The output path of the generated files.",
+ "x-completion-type": "directory",
+ "x-priority": "important"
+ },
+ "outputFileName": {
+ "type": "string",
+ "description": "The path to the main file relative to the outputPath",
+ "x-completion-type": "file"
+ },
+ "tsConfig": {
+ "type": "string",
+ "description": "The path to the Typescript configuration file.",
+ "x-completion-type": "file",
+ "x-completion-glob": "tsconfig.*.json",
+ "x-priority": "important"
+ },
+ "watch": {
+ "type": "boolean",
+ "description": "Enable re-building when files change.",
+ "default": false
+ },
+ "config": {
+ "type": "string",
+ "description": "Config file to load bun from (e.g. -c bunfig.toml"
+ },
+ "smol": {
+ "type": "boolean",
+ "description": "In memory-constrained environments, use the smol flag to reduce memory usage at a cost to performance.",
+ "default": false
+ },
+ "bun": {
+ "type": "boolean",
+ "description": "Force a script or package to use Bun.js instead of Node.js (via symlinking node)",
+ "default": false
+ },
+ "clean": {
+ "type": "boolean",
+ "description": "Remove previous output before build.",
+ "default": true
+ },
+ "target": {
+ "type": "string",
+ "description": "The intended execution environment for the bundle.",
+ "enum": ["bun", "node", "browser"],
+ "default": "browser"
+ },
+ "format": {
+ "type": "string",
+ "description": "Specifies the module format to be used in the generated bundles.",
+ "enum": ["esm", "cjs", "iife"],
+ "default": "esm"
+ },
+ "splitting": {
+ "type": "boolean",
+ "description": "Whether to enable code splitting.",
+ "default": true
+ },
+ "env": {
+ "type": "string",
+ "description": "Controls how environment variables are handled during bundling.",
+ "default": "inline"
+ },
+ "sourcemap": {
+ "oneOf": [
+ { "type": "boolean" },
+ {
+ "type": "string",
+ "enum": ["none", "linked", "external", "inline"]
+ }
+ ],
+ "description": "Specifies the type of sourcemap to generate.",
+ "default": "none"
+ },
+ "minify": {
+ "oneOf": [
+ { "type": "boolean" },
+ {
+ "type": "object",
+ "properties": {
+ "whitespace": { "type": "boolean" },
+ "syntax": { "type": "boolean" },
+ "identifiers": { "type": "boolean" }
+ }
+ }
+ ],
+ "type": "boolean",
+ "description": "Whether to enable minification.",
+ "default": false
+ },
+ "external": {
+ "type": "array",
+ "description": "A list of import paths to consider external.",
+ "item": {
+ "type": "string"
+ }
+ },
+ "packages": {
+ "type": "string",
+ "description": "Control whatever package dependencies are included to bundle or not.",
+ "enum": ["bundle", "external"],
+ "default": "bundle"
+ },
+ "naming": {
+ "type": "string",
+ "description": "Customizes the generated file names.",
+ "default": "[dir]/[name].[ext]"
+ },
+ "publicPath": {
+ "type": "string",
+ "description": "A prefix to be appended to any import paths in bundled code.",
+ "default": "[dir]/[name].[ext]"
+ },
+ "define": {
+ "type": "object",
+ "description": "A map of global identifiers to be replaced at build time. Keys of this object are identifier names, and values are JSON strings that will be inlined.",
+ "additionalProperties": { "type": "string" }
+ },
+ "loader": {
+ "type": "object",
+ "description": "A map of file extensions to built-in loader names. This can be used to quickly customize how certain files are loaded.",
+ "additionalProperties": { "type": "string" }
+ },
+ "banner": {
+ "type": "string",
+ "description": "A banner to be added to the final bundle, this can be a directive like \"use client\" for react or a comment block such as a license for the code."
+ },
+ "footer": {
+ "type": "string",
+ "description": "A footer to be added to the final bundle, this can be something like a comment block for a license or just a fun easter egg."
+ },
+ "drop": {
+ "type": "array",
+ "description": "Remove function calls from a bundle. For example, \"console\" will remove all calls to console.log.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "generateLockfile": {
+ "type": "boolean",
+ "description": "Generate a lockfile (e.g. package-lock.json) that matches the workspace lockfile to ensure package versions match. Ignored when `generatePackageJson` is set to `false`.",
+ "default": false,
+ "x-priority": "internal"
+ },
+ "generatePackageJson": {
+ "type": "boolean",
+ "description": "Generate package.json file in the output folder.",
+ "default": true
+ },
+ "cwd": {
+ "description": "Current working directory of the command.",
+ "type": "string"
+ }
+ },
+ "required": ["main", "outputPath", "tsConfig"]
+}
diff --git a/packages/bun/src/executors/run/lib/build-bun-args.ts b/packages/bun/src/executors/run/lib/build-bun-args.ts
new file mode 100644
index 0000000..cb52701
--- /dev/null
+++ b/packages/bun/src/executors/run/lib/build-bun-args.ts
@@ -0,0 +1,43 @@
+import { NormalizedRunExecutorOptions } from '../schema';
+
+export function buildBunArgs(
+ options: NormalizedRunExecutorOptions,
+ entryFile?: string
+): string[] {
+ const args: string[] = [];
+
+ if (options.tsConfigOverride) {
+ args.push(`--tsconfig-override=${options.tsConfigOverride}`);
+ }
+ if (options.inspect) {
+ args.push(`--${options.inspect}`);
+ }
+ if (options.hot) {
+ args.push('--hot');
+ }
+ if (options.watchMode === 'bun') {
+ args.push('--watch');
+ }
+ if (options.config) {
+ args.push(`-c ${options.config}`);
+ }
+ if (options.smol) {
+ args.push('--smol');
+ }
+ if (options.bun) {
+ args.push('--bun');
+ }
+ if (options.runtimeArgs?.length) {
+ args.push(...options.runtimeArgs);
+ }
+
+ // `bun -- `
+ if (entryFile) {
+ args.push(entryFile);
+
+ if (options.args?.length) {
+ args.push('--', ...options.args);
+ }
+ }
+ return args;
+}
diff --git a/packages/bun/src/executors/run/lib/calculate-resolve-mappings.ts b/packages/bun/src/executors/run/lib/calculate-resolve-mappings.ts
new file mode 100644
index 0000000..32cc6d0
--- /dev/null
+++ b/packages/bun/src/executors/run/lib/calculate-resolve-mappings.ts
@@ -0,0 +1,27 @@
+import { ExecutorContext, joinPathFragments, Target } from '@nx/devkit';
+import {
+ calculateProjectBuildableDependencies,
+ DependentBuildableProjectNode
+} from '@nx/js/src/utils/buildable-libs-utils';
+
+export function calculateResolveMappings(
+ target: Target,
+ context: ExecutorContext
+): Record {
+ const { dependencies } = calculateProjectBuildableDependencies(
+ context.taskGraph,
+ context.projectGraph,
+ context.root,
+ target.project,
+ target.target,
+ target.configuration || ''
+ );
+ return dependencies.reduce<
+ Record
+ >((m, c) => {
+ if (c.node.type !== 'npm' && c.outputs[0] != null) {
+ m[c.name] = joinPathFragments(context.root, c.outputs[0]);
+ }
+ return m;
+ }, {});
+}
diff --git a/packages/bun/src/executors/run/lib/change-file-path-extension.ts b/packages/bun/src/executors/run/lib/change-file-path-extension.ts
new file mode 100644
index 0000000..4434a7d
--- /dev/null
+++ b/packages/bun/src/executors/run/lib/change-file-path-extension.ts
@@ -0,0 +1,42 @@
+import { format, parse } from 'node:path';
+
+const normalizeExt = (ext: string): string =>
+ `${ext.startsWith('.') ? '' : '.'}${ext}`.toLowerCase();
+
+function matchExt(extA: string): (extB: string) => boolean;
+function matchExt(extA: string, extB: string): boolean;
+function matchExt(extA: string, extB?: string) {
+ if (!extB) {
+ return (extB: string) => matchExt(extA, extB);
+ }
+
+ return normalizeExt(extA) === normalizeExt(extB);
+}
+
+export function changeFilePathExtension(
+ filePath: string,
+ toExt: string,
+ opts: { fromExt?: string | string[] } = {}
+): string {
+ const { fromExt } = opts;
+
+ const isExtAllowedToChange = (ext: string) => {
+ if (!fromExt) {
+ return true;
+ }
+ const matcher = matchExt(ext);
+
+ return Array.isArray(fromExt) ? fromExt.some(matcher) : matcher(fromExt);
+ };
+
+ const { ext, base, ...parsed } = parse(filePath);
+
+ if (!ext || !isExtAllowedToChange(ext)) {
+ return filePath;
+ }
+
+ return format({
+ ...parsed,
+ ext: toExt
+ });
+}
diff --git a/packages/bun/src/executors/run/lib/first-value-from.ts b/packages/bun/src/executors/run/lib/first-value-from.ts
new file mode 100644
index 0000000..4593fef
--- /dev/null
+++ b/packages/bun/src/executors/run/lib/first-value-from.ts
@@ -0,0 +1,16 @@
+export function firstValueFrom(it: AsyncIterableIterator): Promise {
+ return new Promise((resolve, reject) => {
+ (async () => {
+ try {
+ let event = await it.next();
+ resolve(event.value as T);
+
+ while (!event.done) {
+ event = await it.next();
+ }
+ } catch (err) {
+ reject(err);
+ }
+ })();
+ });
+}
diff --git a/packages/bun/src/executors/run/lib/get-file-to-run.ts b/packages/bun/src/executors/run/lib/get-file-to-run.ts
new file mode 100644
index 0000000..978df9e
--- /dev/null
+++ b/packages/bun/src/executors/run/lib/get-file-to-run.ts
@@ -0,0 +1,59 @@
+import { ExecutorContext, logger, ProjectGraphProjectNode } from '@nx/devkit';
+import { join } from 'node:path';
+import { interpolate } from 'nx/src/tasks-runner/utils';
+import { changeFilePathExtension } from './change-file-path-extension';
+import { getRelativePath } from './get-relative-path';
+
+function getFileName(
+ main: string | undefined,
+ buildOptions: Record = {}
+): string {
+ if (main) {
+ return changeFilePathExtension(main, 'js', { fromExt: 'ts' });
+ }
+
+ if (buildOptions.outputFileName) {
+ return buildOptions.outputFileName;
+ }
+
+ if (buildOptions.main) {
+ return changeFilePathExtension(buildOptions.main, 'js', { fromExt: 'ts' });
+ }
+
+ return 'main.js';
+}
+
+export function getFileToRun(
+ context: ExecutorContext,
+ project: ProjectGraphProjectNode,
+ buildOptions: Record,
+ buildTargetExecutor?: string,
+ main?: string
+): string {
+ const fileName = getFileName(main, buildOptions);
+
+ if (!buildOptions?.outputPath && !buildOptions?.outputFileName) {
+ const outputPath =
+ project.data.targets?.[buildOptions.target]?.outputs?.[0];
+
+ if (outputPath) {
+ const outputFilePath = interpolate(outputPath, {
+ projectName: project.name,
+ projectRoot: project.data.root,
+ workspaceRoot: context.root
+ });
+ return join(outputFilePath, fileName);
+ }
+ const fallbackFile = join('dist', project.data.root, fileName);
+
+ logger.warn(
+ `Build option outputFileName not set for ${project.name}. Using fallback value of ${fallbackFile}.`
+ );
+
+ return join(context.root, fallbackFile);
+ }
+
+ const outputFileName = getRelativePath(project.data.root, fileName);
+
+ return join(context.root, buildOptions.outputPath, outputFileName);
+}
diff --git a/packages/bun/src/executors/run/lib/get-relative-path.ts b/packages/bun/src/executors/run/lib/get-relative-path.ts
new file mode 100644
index 0000000..561da17
--- /dev/null
+++ b/packages/bun/src/executors/run/lib/get-relative-path.ts
@@ -0,0 +1,11 @@
+import { relative, resolve } from 'node:path';
+import { isRelativePathDefinition } from './is-relative-path-definition';
+import { isAbsolute } from 'fast-glob/out/utils/pattern';
+
+export function getRelativePath(from: string, to: string): string {
+ const absFrom = isAbsolute(from) ? from : resolve('/', from);
+ const absTo = isRelativePathDefinition(to)
+ ? resolve(absFrom, to)
+ : resolve('/', to);
+ return relative(absFrom, absTo);
+}
diff --git a/packages/bun/src/executors/run/lib/index.ts b/packages/bun/src/executors/run/lib/index.ts
new file mode 100644
index 0000000..e7a6751
--- /dev/null
+++ b/packages/bun/src/executors/run/lib/index.ts
@@ -0,0 +1,4 @@
+export * from './build-bun-args';
+export * from './get-file-to-run';
+export * from './normalize-options';
+export * from './wait-for-targets';
diff --git a/packages/bun/src/executors/run/lib/is-relative-path-definition.ts b/packages/bun/src/executors/run/lib/is-relative-path-definition.ts
new file mode 100644
index 0000000..e0a219d
--- /dev/null
+++ b/packages/bun/src/executors/run/lib/is-relative-path-definition.ts
@@ -0,0 +1,3 @@
+export function isRelativePathDefinition(pathDefinition: string) {
+ return pathDefinition.startsWith('./') || pathDefinition.startsWith('../');
+}
diff --git a/packages/bun/src/executors/run/lib/normalize-options.ts b/packages/bun/src/executors/run/lib/normalize-options.ts
new file mode 100644
index 0000000..a351ee6
--- /dev/null
+++ b/packages/bun/src/executors/run/lib/normalize-options.ts
@@ -0,0 +1,41 @@
+import {
+ InspectType,
+ NormalizedRunExecutorOptions,
+ RunExecutorOptions
+} from '../schema';
+import { ExecutorContext } from '@nx/devkit';
+import { resolve } from 'node:path';
+
+export function normalizeOptions(
+ options: RunExecutorOptions,
+ context: ExecutorContext
+): NormalizedRunExecutorOptions {
+ const projectName = context.projectName!;
+ const root = context.root;
+ const cwd = options.cwd ? resolve(context.root, options.cwd) : root; // TODO
+
+ const shouldBuildApp = !!options.buildTarget;
+ const shouldBuildDependencies = !!options.runBuildTargetDependencies;
+ const watchMode = getWatchMode(options.watch, shouldBuildApp);
+
+ const inspect =
+ options.inspect === true ? InspectType.Inspect : (options.inspect ?? false);
+
+ return {
+ ...options,
+ projectName,
+ root,
+ cwd,
+ watchMode,
+ inspect,
+ shouldBuildApp,
+ shouldBuildDependencies
+ };
+}
+
+function getWatchMode(
+ watch: RunExecutorOptions['watch'],
+ shouldBuildApp: boolean
+): NormalizedRunExecutorOptions['watchMode'] {
+ return watch === true ? (shouldBuildApp ? 'nx' : 'bun') : (watch ?? false);
+}
diff --git a/packages/bun/src/executors/run/lib/wait-for-targets.ts b/packages/bun/src/executors/run/lib/wait-for-targets.ts
new file mode 100644
index 0000000..23e42e9
--- /dev/null
+++ b/packages/bun/src/executors/run/lib/wait-for-targets.ts
@@ -0,0 +1,15 @@
+import { ExecutorContext, parseTargetString, runExecutor } from '@nx/devkit';
+import { firstValueFrom } from './first-value-from';
+
+export async function waitForTargets(
+ targets: string[],
+ context: ExecutorContext
+): Promise<{ success: boolean }[]> {
+ return Promise.all(
+ targets.map(async (targetString) => {
+ const target = parseTargetString(targetString, context);
+ const output = await runExecutor(target, {}, context);
+ return firstValueFrom(output);
+ })
+ );
+}
diff --git a/packages/bun/src/executors/run/run.ts b/packages/bun/src/executors/run/run.ts
new file mode 100644
index 0000000..aa1549d
--- /dev/null
+++ b/packages/bun/src/executors/run/run.ts
@@ -0,0 +1,136 @@
+import {
+ ExecutorContext,
+ logger,
+ parseTargetString,
+ readTargetOptions,
+ runExecutor
+} from '@nx/devkit';
+import { createAsyncIterable } from '@nx/devkit/src/utils/async-iterable';
+import { resolve } from 'node:path';
+import {
+ getBunVersion,
+ killProcess,
+ SpawnResult,
+ spawnWithBun,
+ waitForExit
+} from '../../utils';
+import { NormalizedRunExecutorOptions, RunExecutorOptions } from './schema';
+import {
+ buildBunArgs,
+ getFileToRun,
+ normalizeOptions,
+ waitForTargets
+} from './lib';
+
+function launch(
+ entry: string,
+ opts: NormalizedRunExecutorOptions,
+ cwd: string
+): SpawnResult {
+ const args = buildBunArgs(opts, entry);
+
+ return spawnWithBun(args, {
+ cwd,
+ stdio: 'inherit'
+ });
+}
+
+async function* bunRunExecutor(
+ _options: RunExecutorOptions,
+ context: ExecutorContext
+) {
+ const bunVersion = await getBunVersion();
+
+ if (!bunVersion) {
+ throw new Error(`bun command not found. Make sure the bun is available`);
+ }
+
+ process.env.NODE_ENV ??= context?.configurationName ?? 'development';
+
+ const options = normalizeOptions(_options, context);
+
+ const project = context.projectGraph.nodes[context.projectName!];
+ const cwd = options.cwd ? resolve(context.root, options.cwd) : context.root;
+
+ // 1) Wait for other targets if needed
+ if (options.waitUntilTargets?.length) {
+ const results = await waitForTargets(options.waitUntilTargets, context);
+ for (const [i, result] of results.entries()) {
+ if (!result.success) {
+ throw new Error(
+ `Wait until target failed: ${options.waitUntilTargets[i]}.`
+ );
+ }
+ }
+ }
+
+ // // 2) Prepare path remapping for "built libs first"
+ // const tsconfigOverridePath =
+ // options.tsConfigOverride &&
+ // buildTarget &&
+ // (shouldBuildApp ? options.runBuildTargetDependencies !== false : false)
+ // ? writeRuntimeTsconfigOverride(projectName, buildTarget, root, context)
+ // : null;
+
+ yield* createAsyncIterable<{ success: boolean }>(async ({ next, done }) => {
+ // Case 1: Run "raw" main file (without building it)
+ if (options.main && !options.buildTarget) {
+ const entry = resolve(context.root, options.main);
+ const proc = launch(entry, options, cwd);
+ const code = await waitForExit(proc);
+ next({ success: code === 0 });
+ done();
+ return;
+ }
+
+ // Case 2: Build app first and then run the built main file
+ if (options.buildTarget) {
+ const buildTarget = parseTargetString(options.buildTarget, context);
+ const buildOptions: Record = {
+ ...readTargetOptions(buildTarget, context),
+ ...(options.buildTargetOptions || {}),
+ target: buildTarget.target
+ };
+ const buildTargetExecutor =
+ project.data.targets?.[buildTarget.target]?.executor;
+
+ const buildIterator = await runExecutor<{
+ success: boolean;
+ outputPath?: string;
+ }>(buildTarget, {}, context);
+
+ let current: SpawnResult | null = null;
+
+ for await (const res of buildIterator) {
+ if (!res.success) {
+ logger.error(`Build failed for ${options.buildTarget}`);
+ next({ success: false });
+ continue;
+ }
+
+ const entry = getFileToRun(
+ context,
+ project,
+ buildOptions,
+ buildTargetExecutor,
+ options.main
+ );
+
+ await killProcess(current);
+ current = launch(entry, options, cwd);
+ const code = await waitForExit(current);
+ next({ success: code === 0 });
+ }
+
+ await killProcess(current);
+ done();
+ return;
+ }
+
+ throw new Error(
+ `Either "main" or "buildTarget" must be defined in executor options`
+ );
+ });
+}
+
+export default bunRunExecutor;
diff --git a/packages/bun/src/executors/run/schema.d.ts b/packages/bun/src/executors/run/schema.d.ts
new file mode 100644
index 0000000..b01abf5
--- /dev/null
+++ b/packages/bun/src/executors/run/schema.d.ts
@@ -0,0 +1,37 @@
+export type WatchMode = boolean | 'nx' | 'bun';
+
+export const enum InspectType {
+ Inspect = 'inspect',
+ InspectBrk = 'inspect-brk'
+}
+
+export interface RunExecutorOptions {
+ main?: string;
+ buildTarget?: string;
+ buildTargetOptions?: Record;
+ runtimeArgs: string[];
+ args: string[];
+ watch?: WatchMode;
+ hot?: boolean;
+ inspect: boolean | InspectType;
+ debounce?: number; // TODO: add to schema
+ config?: string;
+ tsConfig?: string;
+ tsConfigOverride?: string;
+ smol?: boolean;
+ bun?: boolean;
+ runBuildTargetDependencies?: boolean;
+ waitUntilTargets: string[];
+ cwd?: string;
+}
+
+export interface NormalizedRunExecutorOptions
+ extends Omit {
+ projectName: string;
+ root: string;
+ cwd: string;
+ watchMode: Exclude;
+ inspect: false | InspectType;
+ shouldBuildApp: boolean;
+ shouldBuildDependencies: boolean;
+}
diff --git a/packages/bun/src/executors/run/schema.json b/packages/bun/src/executors/run/schema.json
new file mode 100644
index 0000000..f54031e
--- /dev/null
+++ b/packages/bun/src/executors/run/schema.json
@@ -0,0 +1,101 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "version": 2,
+ "title": "Bun Run executor",
+ "description": "",
+ "type": "object",
+ "properties": {
+ "main": {
+ "type": "string",
+ "description": "Entry point to run (TS or JS). Example: src/main.ts or dist/app/main.js"
+ },
+ "buildTarget": {
+ "type": "string",
+ "description": "Optional target that builds/rebuilds prior to (re)starting Bun, e.g. app:build"
+ },
+ "buildTargetOptions": {
+ "type": "object",
+ "description": "Additional options to pass into the build target.",
+ "default": {}
+ },
+ "watch": {
+ "oneOf": [
+ { "type": "boolean" },
+ { "type": "string", "enum": ["nx", "bun"] }
+ ],
+ "description": "To run a file in watch mode",
+ "default": false
+ },
+ "hot": {
+ "type": "boolean",
+ "description": "Enable auto reload in bun's JavaScript runtime",
+ "default": true
+ },
+ "inspect": {
+ "oneOf": [
+ {
+ "type": "string",
+ "enum": ["inspect", "inspect-brk"]
+ },
+ {
+ "type": "boolean"
+ }
+ ],
+ "description": "Ensures the app is starting with debugging.",
+ "default": "inspect",
+ "x-priority": "important"
+ },
+ "runtimeArgs": {
+ "type": "array",
+ "items": { "type": "string" },
+ "description": "Arguments for the Bun runtime (before the entry). Example: --no-warnings",
+ "default": []
+ },
+ "args": {
+ "type": "array",
+ "items": { "type": "string" },
+ "description": "Arguments for your program (after the entry).",
+ "default": []
+ },
+ "config": {
+ "type": "string",
+ "description": "Config file to load bun from (e.g. -c bunfig.toml"
+ },
+ "tsConfig": {
+ "type": "string",
+ "description": "Load tsconfig from path instead of cwd/tsconfig.json"
+ },
+ "tsConfigOverride": {
+ "type": "string",
+ "description": "Use a different tsconfig."
+ },
+ "smol": {
+ "type": "boolean",
+ "description": "In memory-constrained environments, use the smol flag to reduce memory usage at a cost to performance.",
+ "default": false
+ },
+ "bun": {
+ "type": "boolean",
+ "description": "Force a script or package to use Bun.js instead of Node.js (via symlinking node)",
+ "default": false
+ },
+ "runBuildTargetDependencies": {
+ "type": "boolean",
+ "description": "Whether to run dependencies before running the build. Set this to true if the project does not build libraries from source (e.g. 'buildLibsFromSource: false').",
+ "default": true
+ },
+ "waitUntilTargets": {
+ "type": "array",
+ "description": "The targets to run before starting the node app. Listed in the form :. The main target will run once all listed targets have output something to the console.",
+ "default": [],
+ "items": {
+ "type": "string"
+ }
+ },
+ "cwd": {
+ "description": "Current working directory of the command.",
+ "type": "string"
+ }
+ },
+ "required": []
+}
diff --git a/packages/bun/src/generators/application/application.ts b/packages/bun/src/generators/application/application.ts
new file mode 100644
index 0000000..7d62398
--- /dev/null
+++ b/packages/bun/src/generators/application/application.ts
@@ -0,0 +1,126 @@
+import {
+ ensurePackage,
+ formatFiles,
+ GeneratorCallback,
+ runTasksInSerial,
+ Tree,
+ updateTsConfigsToJs
+} from '@nx/devkit';
+import { ApplicationGeneratorOptions } from './schema';
+import {
+ addAppFiles,
+ addProject,
+ addProxy,
+ normalizeOptions,
+ updateTsConfigOptions
+} from './lib';
+import { libs } from '../../utils';
+import { logShowProjectCommand } from '@nx/devkit/src/utils/log-show-project-command';
+import initGenerator from '../init/init';
+import {
+ addProjectToTsSolutionWorkspace,
+ updateTsconfigFiles
+} from '@nx/js/src/utils/typescript/ts-solution-setup';
+import { sortPackageJsonFields } from '@nx/js/src/utils/package-json/sort-fields';
+
+export async function applicationGenerator(
+ tree: Tree,
+ _options: ApplicationGeneratorOptions
+) {
+ const tasks: GeneratorCallback[] = [];
+ const options = await normalizeOptions(tree, _options);
+
+ const logShowProjectCmdTask = () => {
+ logShowProjectCommand(options.name);
+ };
+
+ if (options.framework === 'elysia') {
+ const { applicationGenerator } = ensurePackage(
+ libs.nxElysia.name,
+ libs.nxElysia.version
+ );
+
+ tasks.push(
+ await applicationGenerator(tree, {
+ ...options,
+ skipFormat: true
+ })
+ );
+
+ tasks.push(logShowProjectCmdTask);
+
+ return runTasksInSerial(...tasks);
+ }
+
+ tasks.push(
+ await initGenerator(tree, {
+ ...options,
+ skipFormat: true
+ })
+ );
+
+ addAppFiles(tree, options);
+ addProject(tree, options);
+
+ if (options.isUsingTsSolutionConfig) {
+ await addProjectToTsSolutionWorkspace(tree, options.appProjectRoot);
+ }
+
+ updateTsConfigOptions(tree, options);
+
+ if (options.js) {
+ updateTsConfigsToJs(tree, { projectRoot: options.appProjectRoot });
+ }
+
+ if (options.frontendProject) {
+ addProxy(tree, options);
+ }
+
+ if (options.isUsingTsSolutionConfig) {
+ updateTsconfigFiles(
+ tree,
+ options.appProjectRoot,
+ 'tsconfig.app.json',
+ {
+ // Environment setup & latest features
+ lib: ['ESNext'],
+ target: 'ESNext',
+ module: 'Preserve',
+ moduleDetection: 'force',
+
+ // Bundler mode
+ moduleResolution: 'bundler',
+ allowImportingTsExtensions: true,
+ verbatimModuleSyntax: true,
+ noEmit: true,
+
+ // Best practices
+ strict: true,
+ skipLibCheck: true,
+ noFallthroughCasesInSwitch: true,
+ noUncheckedIndexedAccess: true,
+ noImplicitOverride: true,
+
+ // Some stricter flags (disabled by default)
+ noUnusedLocals: false,
+ noUnusedParameters: false,
+ noPropertyAccessFromIndexSignature: false
+ },
+ options.linter === 'eslint'
+ ? ['eslint.config.js', 'eslint.config.cjs', 'eslint.config.mjs']
+ : undefined
+ );
+ }
+
+ sortPackageJsonFields(tree, options.appProjectRoot);
+
+ if (!options.skipFormat) {
+ await formatFiles(tree);
+ }
+
+ tasks.push(logShowProjectCmdTask);
+
+ return runTasksInSerial(...tasks);
+}
+
+export default applicationGenerator;
diff --git a/packages/bun/src/generators/application/files/src/main.ts.template b/packages/bun/src/generators/application/files/src/main.ts.template
new file mode 100644
index 0000000..8b47b72
--- /dev/null
+++ b/packages/bun/src/generators/application/files/src/main.ts.template
@@ -0,0 +1,10 @@
+const port = process.env.PORT ? Number(process.env.PORT) : <%= port %>;
+
+const server = Bun.serve({
+ port,
+ fetch(req) {
+ return new Response("Bun!");
+ },
+});
+
+console.log(`Listening on ${server.url} ...`);
diff --git a/packages/bun/src/generators/application/files/tsconfig.app.json b/packages/bun/src/generators/application/files/tsconfig.app.json
new file mode 100644
index 0000000..ea768db
--- /dev/null
+++ b/packages/bun/src/generators/application/files/tsconfig.app.json
@@ -0,0 +1,31 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "dist",
+ // Environment setup & latest features
+ "lib": ["ESNext"],
+ "target": "ESNext",
+ "module": "Preserve",
+ "moduleDetection": "force",
+
+ // Bundler mode
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "verbatimModuleSyntax": true,
+ "noEmit": true,
+
+ // Best practices
+ "strict": true,
+ "skipLibCheck": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUncheckedIndexedAccess": true,
+ "noImplicitOverride": true,
+
+ // Some stricter flags (disabled by default)
+ "noUnusedLocals": false,
+ "noUnusedParameters": false,
+ "noPropertyAccessFromIndexSignature": false
+ },
+ "include": ["src/**/*.ts"],
+ "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
+}
diff --git a/packages/bun/src/generators/application/files/tsconfig.json b/packages/bun/src/generators/application/files/tsconfig.json
new file mode 100644
index 0000000..595598e
--- /dev/null
+++ b/packages/bun/src/generators/application/files/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "extends": "<%= rootTsConfigPath %>",
+ "files": [],
+ "include": [],
+ "references": [
+ {
+ "path": "./tsconfig.app.json"
+ }
+ ]
+}
diff --git a/packages/bun/src/generators/application/lib/add-app-files.ts b/packages/bun/src/generators/application/lib/add-app-files.ts
new file mode 100644
index 0000000..092f408
--- /dev/null
+++ b/packages/bun/src/generators/application/lib/add-app-files.ts
@@ -0,0 +1,27 @@
+import { NormalizedOptions } from './normalize-options';
+import {
+ generateFiles,
+ joinPathFragments,
+ offsetFromRoot,
+ Tree
+} from '@nx/devkit';
+import { getRelativePathToRootTsConfig } from '@nx/js';
+
+export function addAppFiles(tree: Tree, options: NormalizedOptions) {
+ generateFiles(
+ tree,
+ joinPathFragments(__dirname, '../files'),
+ options.appProjectRoot,
+ {
+ ...options,
+ tmpl: '',
+ name: options.name,
+ root: options.appProjectRoot,
+ offsetFromRoot: offsetFromRoot(options.appProjectRoot),
+ rootTsConfigPath: getRelativePathToRootTsConfig(
+ tree,
+ options.appProjectRoot
+ )
+ }
+ );
+}
diff --git a/packages/bun/src/generators/application/lib/add-project.ts b/packages/bun/src/generators/application/lib/add-project.ts
new file mode 100644
index 0000000..4184535
--- /dev/null
+++ b/packages/bun/src/generators/application/lib/add-project.ts
@@ -0,0 +1,57 @@
+import { NormalizedOptions } from './normalize-options';
+import {
+ addProjectConfiguration,
+ joinPathFragments,
+ ProjectConfiguration,
+ Tree,
+ writeJson
+} from '@nx/devkit';
+import { PackageJson } from 'nx/src/utils/package-json';
+import { getBuildConfig, getServeConfig } from './create-targets';
+
+export function addProject(
+ tree: Tree,
+ options: NormalizedOptions,
+ appDependencies: Record = {}
+) {
+ const project: ProjectConfiguration = {
+ root: options.appProjectRoot,
+ sourceRoot: joinPathFragments(options.appProjectRoot, 'src'),
+ projectType: 'application',
+ targets: {
+ build: getBuildConfig(options),
+ serve: getServeConfig(options)
+ },
+ tags: options.parsedTags
+ };
+
+ const packageJson: PackageJson = {
+ name: options.importPath,
+ version: '0.0.1',
+ private: true,
+ dependencies: { ...appDependencies }
+ };
+
+ if (!options.useProjectJson) {
+ packageJson.nx = {
+ name: options.name !== options.importPath ? options.name : undefined,
+ targets: project.targets,
+ tags: project.tags?.length ? project.tags : undefined
+ };
+ } else {
+ addProjectConfiguration(
+ tree,
+ options.name,
+ project,
+ options.standaloneConfig
+ );
+ }
+
+ if (!options.useProjectJson || options.isUsingTsSolutionConfig) {
+ writeJson(
+ tree,
+ joinPathFragments(options.appProjectRoot, 'package.json'),
+ packageJson
+ );
+ }
+}
diff --git a/packages/bun/src/generators/application/lib/add-proxy.ts b/packages/bun/src/generators/application/lib/add-proxy.ts
new file mode 100644
index 0000000..226751c
--- /dev/null
+++ b/packages/bun/src/generators/application/lib/add-proxy.ts
@@ -0,0 +1,68 @@
+import {
+ logger,
+ readProjectConfiguration,
+ Tree,
+ updateProjectConfiguration
+} from '@nx/devkit';
+import { NormalizedOptions } from './normalize-options';
+
+export function addProxy(tree: Tree, options: NormalizedOptions) {
+ if (!options.frontendProject) {
+ return;
+ }
+
+ const projectConfig = readProjectConfiguration(tree, options.frontendProject);
+ const serveTargetName = ['serve', 'dev'].find(
+ (t) => !!projectConfig.targets?.[t]
+ );
+
+ if (projectConfig.targets && serveTargetName) {
+ projectConfig.targets[serveTargetName].dependsOn = [
+ ...(projectConfig.targets[serveTargetName].dependsOn ?? []),
+ `${options.name}:serve`
+ ];
+
+ const pathToProxyFile = `${projectConfig.root}/proxy.conf.json`;
+ projectConfig.targets[serveTargetName].options = {
+ ...projectConfig.targets[serveTargetName].options,
+ proxyConfig: pathToProxyFile
+ };
+
+ if (!tree.exists(pathToProxyFile)) {
+ tree.write(
+ pathToProxyFile,
+ JSON.stringify(
+ {
+ '/api': {
+ target: `http://localhost:${options.port}`,
+ secure: false
+ }
+ },
+ null,
+ 2
+ )
+ );
+ } else {
+ //add new entry to existing config
+ const proxyFileContent = tree.read(pathToProxyFile)?.toString();
+
+ if (proxyFileContent) {
+ const proxyModified = {
+ ...JSON.parse(proxyFileContent),
+ [`/${options.name}-api`]: {
+ target: `http://localhost:${options.port}`,
+ secure: false
+ }
+ };
+
+ tree.write(pathToProxyFile, JSON.stringify(proxyModified, null, 2));
+ }
+ }
+
+ updateProjectConfiguration(tree, options.frontendProject, projectConfig);
+ } else {
+ logger.warn(
+ `Skip updating proxy for frontend project "${options.frontendProject}" since "serve" target is not found in project.json. For more information, see: https://nx.dev/recipes/node/application-proxies.`
+ );
+ }
+}
diff --git a/packages/bun/src/generators/application/lib/create-targets.ts b/packages/bun/src/generators/application/lib/create-targets.ts
new file mode 100644
index 0000000..5b98c95
--- /dev/null
+++ b/packages/bun/src/generators/application/lib/create-targets.ts
@@ -0,0 +1,57 @@
+import { joinPathFragments, TargetConfiguration } from '@nx/devkit';
+import { NormalizedOptions } from './normalize-options';
+import { libs } from '../../../utils';
+import { BuildExecutorOptions } from '../../../executors/build/schema';
+import { InspectType, RunExecutorOptions } from '../../../executors/run/schema';
+
+export function getBuildConfig(
+ options: NormalizedOptions
+): TargetConfiguration {
+ return {
+ executor: `${libs.plugin.name}:build`,
+ inputs: ['production', '^production'],
+ outputs: ['{options.outputPath}'],
+ dependsOn: ['^build'],
+ defaultConfiguration: 'production',
+ options: {
+ main: joinPathFragments(options.appProjectRoot, 'src', 'main.ts'),
+ outputPath: options.outputPath,
+ tsConfig: joinPathFragments(options.appProjectRoot, 'tsconfig.app.json'),
+ smol: false,
+ bun: true
+ },
+ configurations: {
+ development: {},
+ production: {}
+ }
+ };
+}
+
+export function getServeConfig(
+ options: NormalizedOptions
+): TargetConfiguration {
+ return {
+ continuous: true,
+ executor: `${libs.plugin.name}:run`,
+ defaultConfiguration: 'development',
+ options: {
+ main: joinPathFragments(options.appProjectRoot, 'src', 'main.ts'),
+ tsConfig: joinPathFragments(options.appProjectRoot, 'tsconfig.app.json'),
+ watch: true,
+ hot: true,
+ bun: true,
+ smol: false,
+ runBuildTargetDependencies: false,
+ waitUntilTargets: [],
+ runtimeArgs: [],
+ args: [],
+ inspect: InspectType.Inspect
+ },
+ configurations: {
+ development: {},
+ production: {
+ buildTarget: `${options.name}:build:production`
+ }
+ }
+ };
+}
diff --git a/packages/bun/src/generators/application/lib/index.ts b/packages/bun/src/generators/application/lib/index.ts
new file mode 100644
index 0000000..04e628e
--- /dev/null
+++ b/packages/bun/src/generators/application/lib/index.ts
@@ -0,0 +1,6 @@
+export * from './add-app-files';
+export * from './add-project';
+export * from './add-proxy';
+export * from './create-targets';
+export * from './normalize-options';
+export * from './update-ts-config-options';
diff --git a/packages/bun/src/generators/application/lib/normalize-options.ts b/packages/bun/src/generators/application/lib/normalize-options.ts
new file mode 100644
index 0000000..46e121c
--- /dev/null
+++ b/packages/bun/src/generators/application/lib/normalize-options.ts
@@ -0,0 +1,76 @@
+import { ApplicationGeneratorOptions } from '../schema';
+import { joinPathFragments, names, readNxJson, Tree } from '@nx/devkit';
+import {
+ determineProjectNameAndRootOptions,
+ ensureRootProjectName
+} from '@nx/devkit/src/generators/project-name-and-root-utils';
+import { isUsingTsSolutionSetup } from '@nx/js/src/utils/typescript/ts-solution-setup';
+
+export interface NormalizedOptions
+ extends Omit {
+ name: string;
+ appProjectRoot: string;
+ port: number;
+ parsedTags: string[];
+ outputPath: string;
+ importPath: string;
+ isUsingTsSolutionConfig: boolean;
+}
+
+export async function normalizeOptions(
+ host: Tree,
+ options: ApplicationGeneratorOptions
+): Promise {
+ await ensureRootProjectName(options, 'application');
+ const {
+ projectName,
+ projectRoot: appProjectRoot,
+ importPath
+ } = await determineProjectNameAndRootOptions(host, {
+ name: options.name,
+ projectType: 'application',
+ directory: options.directory,
+ rootProject: options.rootProject
+ });
+ options.rootProject = appProjectRoot === '.';
+ options.e2eTestRunner = options.e2eTestRunner ?? 'jest';
+
+ const parsedTags = options.tags
+ ? options.tags.split(',').map((s) => s.trim())
+ : [];
+
+ const nxJson = readNxJson(host);
+ const addPlugin =
+ options.addPlugin ??
+ (process.env.NX_ADD_PLUGINS !== 'false' &&
+ nxJson?.useInferencePlugins !== false);
+
+ const isUsingTsSolutionConfig = isUsingTsSolutionSetup(host);
+ const appProjectName =
+ !isUsingTsSolutionConfig || options.name ? projectName : importPath;
+ const useProjectJson = options.useProjectJson ?? !isUsingTsSolutionConfig;
+
+ return {
+ ...options,
+ addPlugin,
+ name: appProjectName,
+ frontendProject: options.frontendProject
+ ? names(options.frontendProject).fileName
+ : undefined,
+ appProjectRoot,
+ importPath,
+ parsedTags,
+ linter: options.linter ?? 'eslint',
+ unitTestRunner: options.unitTestRunner ?? 'jest',
+ rootProject: options.rootProject ?? false,
+ port: options.port ?? 3000,
+ outputPath: isUsingTsSolutionConfig
+ ? joinPathFragments(appProjectRoot, 'dist')
+ : joinPathFragments(
+ 'dist',
+ options.rootProject ? appProjectName : appProjectRoot
+ ),
+ isUsingTsSolutionConfig,
+ useProjectJson
+ };
+}
diff --git a/packages/bun/src/generators/application/lib/update-ts-config-options.ts b/packages/bun/src/generators/application/lib/update-ts-config-options.ts
new file mode 100644
index 0000000..d7e37f7
--- /dev/null
+++ b/packages/bun/src/generators/application/lib/update-ts-config-options.ts
@@ -0,0 +1,32 @@
+import { Tree, updateJson } from '@nx/devkit';
+import { NormalizedOptions } from './normalize-options';
+import { tsConfigBaseOptions } from '@nx/js';
+
+export function updateTsConfigOptions(tree: Tree, options: NormalizedOptions) {
+ if (options.isUsingTsSolutionConfig) {
+ return;
+ }
+
+ updateJson(tree, `${options.appProjectRoot}/tsconfig.json`, (json) => {
+ if (options.rootProject) {
+ return {
+ compilerOptions: {
+ ...tsConfigBaseOptions,
+ ...json.compilerOptions,
+ esModuleInterop: true
+ },
+ ...json,
+ extends: undefined,
+ exclude: ['node_modules', 'tmp']
+ };
+ } else {
+ return {
+ ...json,
+ compilerOptions: {
+ ...json.compilerOptions,
+ esModuleInterop: true
+ }
+ };
+ }
+ });
+}
diff --git a/packages/bun/src/generators/application/schema.d.ts b/packages/bun/src/generators/application/schema.d.ts
new file mode 100644
index 0000000..b1b495d
--- /dev/null
+++ b/packages/bun/src/generators/application/schema.d.ts
@@ -0,0 +1,27 @@
+import type { Linter, LinterType } from '@nx/eslint';
+
+export interface ApplicationGeneratorOptions {
+ directory: string;
+ name?: string;
+ skipFormat?: boolean;
+ skipPackageJson?: boolean;
+ unitTestRunner?: 'jest' | 'none';
+ e2eTestRunner?: 'jest' | 'none';
+ linter?: Linter | LinterType;
+ formatter?: 'none' | 'prettier';
+ tags?: string;
+ frontendProject?: string;
+ js?: boolean;
+ setParserOptionsProject?: boolean;
+ standaloneConfig?: boolean;
+ framework?: BunFrameWorks;
+ port?: number;
+ rootProject?: boolean;
+ docker?: boolean;
+ skipDockerPlugin?: boolean;
+ addPlugin?: boolean;
+ useTsSolution?: boolean;
+ useProjectJson?: boolean;
+}
+
+export type BunFrameWorks = 'elysia' | 'none';
diff --git a/packages/bun/src/generators/application/schema.json b/packages/bun/src/generators/application/schema.json
new file mode 100644
index 0000000..ada6536
--- /dev/null
+++ b/packages/bun/src/generators/application/schema.json
@@ -0,0 +1,121 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "StonxBunApplicationGenerator",
+ "title": "Bun Application Generator",
+ "description": "Generates a Bun application in the current workspace.",
+ "cli": "nx",
+ "type": "object",
+ "properties": {
+ "directory": {
+ "description": "The directory of the new application.",
+ "type": "string",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ },
+ "x-prompt": "Which directory do you want to create the application in?"
+ },
+ "name": {
+ "description": "The name of the application.",
+ "type": "string",
+ "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$",
+ "x-priority": "important"
+ },
+ "skipFormat": {
+ "description": "Skip formatting files",
+ "type": "boolean",
+ "default": false,
+ "x-priority": "internal"
+ },
+ "skipPackageJson": {
+ "type": "boolean",
+ "default": false,
+ "description": "Do not add dependencies to `package.json`.",
+ "x-priority": "internal"
+ },
+ "linter": {
+ "description": "The tool to use for running lint checks.",
+ "type": "string",
+ "enum": ["eslint", "none"],
+ "default": "none",
+ "x-prompt": "Which linter would you like to use?",
+ "x-priority": "important"
+ },
+ "unitTestRunner": {
+ "type": "string",
+ "enum": ["jest", "none"],
+ "description": "Test runner to use for unit tests.",
+ "default": "none",
+ "x-priority": "important",
+ "x-prompt": "Which unit test runner would you like to use?"
+ },
+ "e2eTestRunner": {
+ "type": "string",
+ "enum": ["jest", "none"],
+ "description": "Test runner to use for end-to-end tests",
+ "default": "none",
+ "x-priority": "important",
+ "x-prompt": "Which end-to-end test runner would you like to use?"
+ },
+ "tags": {
+ "type": "string",
+ "description": "Add tags to the application (used for linting)."
+ },
+ "frontendProject": {
+ "type": "string",
+ "description": "Frontend project that needs to access this application. This sets up proxy configuration.",
+ "x-priority": "important",
+ "x-dropdown": "projects"
+ },
+ "js": {
+ "type": "boolean",
+ "description": "Generate JavaScript files rather than TypeScript files.",
+ "default": false
+ },
+ "setParserOptionsProject": {
+ "type": "boolean",
+ "description": "Whether or not to configure the ESLint `parserOptions.project` option. We do not do this by default for lint performance reasons.",
+ "default": false
+ },
+ "standaloneConfig": {
+ "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.",
+ "type": "boolean",
+ "default": true,
+ "x-deprecated": "Nx only supports standaloneConfig"
+ },
+ "framework": {
+ "description": "Generate the bun application using a framework",
+ "type": "string",
+ "enum": ["elysia", "none"],
+ "default": "none",
+ "x-prompt": "Which framework do you want to use?",
+ "x-priority": "important"
+ },
+ "port": {
+ "description": "The port which the server will be run on",
+ "type": "number",
+ "default": 3000
+ },
+ "rootProject": {
+ "description": "Create bun application at the root of the workspace",
+ "type": "boolean",
+ "default": false,
+ "hidden": true,
+ "x-priority": "internal"
+ },
+ "docker": {
+ "type": "boolean",
+ "description": "Add a docker build target"
+ },
+ "skipDockerPlugin": {
+ "type": "boolean",
+ "description": "Skip the @nx/docker plugin and use the legacy docker build target instead.",
+ "default": false
+ },
+ "useProjectJson": {
+ "type": "boolean",
+ "description": "Use a `project.json` configuration file instead of inlining the Nx configuration in the `package.json` file."
+ }
+ },
+ "required": ["directory"]
+}
diff --git a/packages/bun/src/generators/init/init.ts b/packages/bun/src/generators/init/init.ts
new file mode 100644
index 0000000..e120d0d
--- /dev/null
+++ b/packages/bun/src/generators/init/init.ts
@@ -0,0 +1,23 @@
+import { GeneratorCallback, runTasksInSerial, Tree } from '@nx/devkit';
+import { formatFiles } from '@nx/devkit';
+import type { InitGeneratorOptions } from './schema';
+import { ensureDependencies } from './lib/ensure-dependencies';
+
+export async function initGenerator(
+ tree: Tree,
+ options: InitGeneratorOptions
+): Promise {
+ const tasks: GeneratorCallback[] = [];
+
+ if (!options.skipPackageJson) {
+ tasks.push(ensureDependencies(tree, options.keepExistingVersions));
+ }
+
+ if (!options.skipFormat) {
+ await formatFiles(tree);
+ }
+
+ return runTasksInSerial(...tasks);
+}
+
+export default initGenerator;
diff --git a/packages/bun/src/generators/init/lib/ensure-dependencies.ts b/packages/bun/src/generators/init/lib/ensure-dependencies.ts
new file mode 100644
index 0000000..e232e3b
--- /dev/null
+++ b/packages/bun/src/generators/init/lib/ensure-dependencies.ts
@@ -0,0 +1,33 @@
+import {
+ GeneratorCallback,
+ removeDependenciesFromPackageJson,
+ runTasksInSerial,
+ Tree
+} from '@nx/devkit';
+import { addDependenciesToPackageJson } from '@nx/devkit';
+import { workspaceDependencies } from '../../../utils';
+
+export function ensureDependencies(
+ tree: Tree,
+ keepExistingVersions?: boolean
+): GeneratorCallback {
+ const tasks: GeneratorCallback[] = [];
+ tasks.push(
+ removeDependenciesFromPackageJson(
+ tree,
+ Object.keys(workspaceDependencies),
+ []
+ )
+ );
+ tasks.push(
+ addDependenciesToPackageJson(
+ tree,
+ {},
+ workspaceDependencies,
+ undefined,
+ keepExistingVersions
+ )
+ );
+
+ return runTasksInSerial(...tasks);
+}
diff --git a/packages/bun/src/generators/init/schema.d.ts b/packages/bun/src/generators/init/schema.d.ts
new file mode 100644
index 0000000..6e5c4c5
--- /dev/null
+++ b/packages/bun/src/generators/init/schema.d.ts
@@ -0,0 +1,5 @@
+export interface InitGeneratorOptions {
+ skipFormat?: boolean;
+ skipPackageJson?: boolean;
+ keepExistingVersions?: boolean;
+}
diff --git a/packages/bun/src/generators/init/schema.json b/packages/bun/src/generators/init/schema.json
new file mode 100644
index 0000000..c9afb1f
--- /dev/null
+++ b/packages/bun/src/generators/init/schema.json
@@ -0,0 +1,28 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "StonxBunInit",
+ "title": "Bun Init Generator",
+ "description": "Initializes a Bun project in the current workspace.",
+ "type": "object",
+ "properties": {
+ "skipFormat": {
+ "description": "Skip formatting files.",
+ "type": "boolean",
+ "default": false,
+ "x-priority": "internal"
+ },
+ "skipPackageJson": {
+ "type": "boolean",
+ "default": false,
+ "description": "Do not add dependencies to `package.json`.",
+ "x-priority": "internal"
+ },
+ "keepExistingVersions": {
+ "type": "boolean",
+ "x-priority": "internal",
+ "description": "Keep existing dependencies versions",
+ "default": false
+ }
+ },
+ "required": []
+}
diff --git a/packages/bun/src/index.ts b/packages/bun/src/index.ts
new file mode 100644
index 0000000..7d8f6e7
--- /dev/null
+++ b/packages/bun/src/index.ts
@@ -0,0 +1,2 @@
+export { applicationGenerator } from './generators/application/application';
+export { initGenerator } from './generators/init/init';
diff --git a/packages/bun/src/utils/bun-cfg/bun-build-config.ts b/packages/bun/src/utils/bun-cfg/bun-build-config.ts
new file mode 100644
index 0000000..9ce739d
--- /dev/null
+++ b/packages/bun/src/utils/bun-cfg/bun-build-config.ts
@@ -0,0 +1,75 @@
+import { addFlag, cfgToArgv, defineConfigArgvMap } from './cfg-to-argv';
+import { isArray, isBool, isString } from '../logic';
+
+export function createBunBuildConfig(opts: Bun.BuildConfig): Bun.BuildConfig {
+ return opts;
+}
+
+export const bunBuildConfigArgvMap = defineConfigArgvMap({
+ // Positional args
+ entrypoints: (v) => v,
+
+ // Simple, documented mappings
+ outdir: (v) => [addFlag('--outdir', v)],
+ target: (v) => [addFlag('--target', v)],
+ format: (v) => [addFlag('--format', v)],
+
+ // naming can be string or object with chunk/entry/asset
+ naming: (v) =>
+ isString(v)
+ ? [addFlag(`--entry-naming`, v)]
+ : {
+ entry: (x) => [addFlag(`--entry-naming`, x)],
+ chunk: (x) => [addFlag(`--chunk-naming`, x)],
+ asset: (x) => [addFlag(`--asset-naming`, x)]
+ },
+
+ root: (v) => [addFlag(`--root`, v)],
+ splitting: (v) => [addFlag(`--splitting`, v)],
+
+ plugins: (_v) => [], // No clear CLI mapping for programmatic plugins
+
+ external: (v) => v.map((e) => addFlag(`--external`, e)),
+ packages: (v) => [addFlag(`--packages`, v)],
+ publicPath: (v) => [addFlag(`--public-path`, v)],
+
+ define: (v) =>
+ Object.entries(v).map(([k, val]) =>
+ addFlag(`--define`, `'${k}=${JSON.stringify(val)}'`)
+ ),
+ loader: (v) =>
+ Object.entries(v).map(([k, val]) => addFlag(`--loader`, `${k}:${val}`)),
+
+ sourcemap: (v) => [
+ addFlag('--sourcemap', isString(v) ? v : v ? 'inline' : 'none')
+ ],
+
+ conditions: (v) =>
+ [...(isArray(v) ? v : [v])].map((c) => addFlag('--condition', c)),
+
+ env: (v) => [addFlag('--env', v)],
+
+ minify: (v) =>
+ isBool(v)
+ ? [addFlag('--minify', v)]
+ : {
+ whitespace: (x) => [addFlag(`--minify-whitespace`, x)],
+ syntax: (x) => [addFlag(`--minify-syntax`, x)],
+ identifiers: (x) => [addFlag(`--minify-identifiers`, x)]
+ },
+
+ ignoreDCEAnnotations: (v) => [addFlag('--ignore-dce-annotations', v)],
+ emitDCEAnnotations: (_v) => [], // uncertain
+
+ bytecode: (v) => [addFlag('--bytecode', v)], // only if supported; otherwise harmless to leave empty
+
+ banner: (v) => [addFlag('--banner', v)],
+ footer: (v) => [addFlag('--footer', v)],
+ drop: (v) => v.map((d) => addFlag('--drop', d)),
+ throw: (_v) => [], // execution-time behavior, not a CLI flag
+ tsconfig: (v) => [addFlag(`--tsconfig-override`, v)]
+});
+
+export function bunBuildConfigToArgv(config: Bun.BuildConfig) {
+ return cfgToArgv(config, bunBuildConfigArgvMap);
+}
diff --git a/packages/bun/src/utils/bun-cfg/bun-runtime-config.ts b/packages/bun/src/utils/bun-cfg/bun-runtime-config.ts
new file mode 100644
index 0000000..f366014
--- /dev/null
+++ b/packages/bun/src/utils/bun-cfg/bun-runtime-config.ts
@@ -0,0 +1,13 @@
+import { addFlag, defineConfigArgvMap } from './cfg-to-argv';
+
+export interface BunRuntimeConfig {
+ config?: string;
+ smol?: boolean;
+ bun?: boolean;
+}
+
+export const bunRuntimeConfigArgvMap = defineConfigArgvMap({
+ config: (v) => [addFlag('--config', v)],
+ smol: (v) => [addFlag('--smol', v)],
+ bun: (v) => [addFlag('--bun', v)]
+});
diff --git a/packages/bun/src/utils/bun-cfg/cfg-to-argv.ts b/packages/bun/src/utils/bun-cfg/cfg-to-argv.ts
new file mode 100644
index 0000000..b8c4375
--- /dev/null
+++ b/packages/bun/src/utils/bun-cfg/cfg-to-argv.ts
@@ -0,0 +1,93 @@
+import { isArray, isFunction, isNil, isPlainObject } from '../logic';
+import { BUN_FLAG_ARG_SEPARATOR } from './constants';
+
+export type Config = {
+ [K in keyof PropertyKey]: unknown;
+};
+
+export type ConfigValueMapper = (
+ val: Exclude
+) => T extends any[]
+ ? string[]
+ : T extends object
+ ? ConfigArgvMap
+ : string[];
+
+export type ConfigArgvMap = {
+ [K in keyof TConfig]-?: ConfigValueMapper;
+};
+
+export function isConfigLike(value: unknown): value is Config {
+ return isPlainObject(value);
+}
+
+export function isConfigArgvMapLike(
+ value: unknown
+): value is ConfigArgvMap {
+ return typeof value === 'object' && !isArray(value) && !isNil(value);
+}
+
+export function defineConfigArgvMap(
+ argvMap: ConfigArgvMap
+): ConfigArgvMap {
+ return argvMap;
+}
+
+export const normalizeFlag = (flag: string): string =>
+ flag.startsWith('-')
+ ? flag.startsWith('--')
+ ? flag
+ : `-${flag}`
+ : `--${flag}`;
+
+export function addFlag(
+ flag: string,
+ value?: TValue
+): string {
+ if (value === false || isNil(value)) {
+ return '';
+ }
+
+ const flg = normalizeFlag(flag);
+
+ if (value === true) {
+ return flg;
+ }
+
+ return `${flg}${BUN_FLAG_ARG_SEPARATOR}${value}`;
+}
+
+export function cfgToArgv(
+ cfg: TConfig,
+ argvMap: ConfigArgvMap
+): string[] {
+ const argv: string[] = [];
+
+ for (const key in cfg) {
+ const value = cfg[key];
+
+ if (isNil(value)) continue;
+
+ const handler: ConfigValueMapper = argvMap[key];
+ if (!isFunction(handler)) {
+ console.error(`Handler for ${key} is not a function`);
+ continue;
+ }
+
+ const out = handler(value);
+ if (!out) continue;
+
+ if (isArray(out)) {
+ argv.push(...out);
+ continue;
+ }
+
+ if (!isConfigLike(value) || !isConfigArgvMapLike(out)) {
+ continue;
+ }
+
+ argv.push(...cfgToArgv(value, out));
+ }
+
+ return argv;
+}
diff --git a/packages/bun/src/utils/bun-cfg/constants.ts b/packages/bun/src/utils/bun-cfg/constants.ts
new file mode 100644
index 0000000..6e9df55
--- /dev/null
+++ b/packages/bun/src/utils/bun-cfg/constants.ts
@@ -0,0 +1,2 @@
+export type BunFlagArgSeparator = ' ' | '=';
+export const BUN_FLAG_ARG_SEPARATOR: BunFlagArgSeparator = ' ';
diff --git a/packages/bun/src/utils/bun.ts b/packages/bun/src/utils/bun.ts
new file mode 100644
index 0000000..85f00ec
--- /dev/null
+++ b/packages/bun/src/utils/bun.ts
@@ -0,0 +1,15 @@
+import { universalSpawnSync } from './cli';
+
+export async function getBunVersion(): Promise {
+ try {
+ return await universalSpawnSync('bun --version');
+ } catch (error) {
+ console.error(`Failed to retrieve the version for bun.`);
+ return null;
+ }
+}
+
+export async function isBunAvailable(): Promise {
+ const bunVersion = await getBunVersion();
+ return !!bunVersion;
+}
diff --git a/packages/bun/src/utils/buni/build/build.config.ts b/packages/bun/src/utils/buni/build/build.config.ts
new file mode 100644
index 0000000..e69de29
diff --git a/packages/bun/src/utils/buni/bun/bun.ts b/packages/bun/src/utils/buni/bun/bun.ts
new file mode 100644
index 0000000..b1dad89
--- /dev/null
+++ b/packages/bun/src/utils/buni/bun/bun.ts
@@ -0,0 +1,6 @@
+import { SpawnOptions, spawn } from '../spawn';
+import { getBunCmd } from '../utils';
+
+export function bun(args?: string[], options?: SpawnOptions) {
+ return spawn(getBunCmd(), args, options);
+}
diff --git a/packages/bun/src/utils/buni/bun/index.ts b/packages/bun/src/utils/buni/bun/index.ts
new file mode 100644
index 0000000..1f08d86
--- /dev/null
+++ b/packages/bun/src/utils/buni/bun/index.ts
@@ -0,0 +1 @@
+export * from './bun';
diff --git a/packages/bun/src/utils/buni/index.ts b/packages/bun/src/utils/buni/index.ts
new file mode 100644
index 0000000..3799ad5
--- /dev/null
+++ b/packages/bun/src/utils/buni/index.ts
@@ -0,0 +1,30 @@
+import { spawn } from './spawn';
+import { bun } from './bun';
+import { node } from './node';
+import { run } from './run';
+import * as utils from './utils';
+export * from './spawn';
+export * from './bun';
+export * from './node';
+export * from './run';
+export * from './utils';
+
+export function createBuildConfig(config: Bun.BuildConfig) {
+ return config;
+}
+
+export function build(config: Bun.BuildConfig) {
+ return Bun.build(config);
+}
+
+export const Buni = {
+ ...utils,
+ spawn,
+ bun,
+ build,
+ node,
+ run,
+ createBuildConfig
+};
+
+export default Buni;
diff --git a/packages/bun/src/utils/buni/node/index.ts b/packages/bun/src/utils/buni/node/index.ts
new file mode 100644
index 0000000..d0dddb6
--- /dev/null
+++ b/packages/bun/src/utils/buni/node/index.ts
@@ -0,0 +1 @@
+export * from './node';
diff --git a/packages/bun/src/utils/buni/node/node.ts b/packages/bun/src/utils/buni/node/node.ts
new file mode 100644
index 0000000..5463ad9
--- /dev/null
+++ b/packages/bun/src/utils/buni/node/node.ts
@@ -0,0 +1,5 @@
+import { SpawnOptions, spawn } from '../spawn';
+
+export function node(args?: string[], options?: SpawnOptions) {
+ return spawn('node', args, options);
+}
diff --git a/packages/bun/src/utils/buni/run/index.ts b/packages/bun/src/utils/buni/run/index.ts
new file mode 100644
index 0000000..2e6f967
--- /dev/null
+++ b/packages/bun/src/utils/buni/run/index.ts
@@ -0,0 +1 @@
+export * from './run';
diff --git a/packages/bun/src/utils/buni/run/run.ts b/packages/bun/src/utils/buni/run/run.ts
new file mode 100644
index 0000000..0691de4
--- /dev/null
+++ b/packages/bun/src/utils/buni/run/run.ts
@@ -0,0 +1,10 @@
+import { SpawnOptions } from '../spawn';
+import { bun } from '../bun';
+
+export function run(
+ fileOrScript: string,
+ args?: string[],
+ options?: SpawnOptions
+) {
+ return bun(['run', fileOrScript, ...(args || [])], options);
+}
diff --git a/packages/bun/src/utils/buni/spawn/__tests__/helpers.ts b/packages/bun/src/utils/buni/spawn/__tests__/helpers.ts
new file mode 100644
index 0000000..3709096
--- /dev/null
+++ b/packages/bun/src/utils/buni/spawn/__tests__/helpers.ts
@@ -0,0 +1,51 @@
+/* Test helpers to mock runtime and process APIs for universal spawn */
+import * as childProc from 'node:child_process';
+
+// Allow mutable import for mocking
+let originalIsBunRuntime: any;
+let originalBunSpawn: any;
+let originalChildSpawn: any;
+
+export function mockIsBunRuntime(modulePath: string, value: boolean) {
+ const mod = require(modulePath);
+ if (originalIsBunRuntime === undefined) {
+ originalIsBunRuntime = mod.isBunRuntime;
+ }
+ mod.isBunRuntime = () => value;
+}
+
+export function restoreIsBunRuntime(modulePath: string) {
+ if (originalIsBunRuntime === undefined) return;
+
+ const mod = require(modulePath);
+ mod.isBunRuntime = originalIsBunRuntime;
+ originalIsBunRuntime = undefined;
+}
+
+export function mockBunSpawn(impl: (opts: any) => any) {
+ // Create global Bun if not present
+ if (typeof globalThis.Bun === 'undefined') {
+ globalThis.Bun = {} as any;
+ }
+ if (originalBunSpawn === undefined) originalBunSpawn = globalThis.Bun.spawn;
+ globalThis.Bun.spawn = impl as any;
+}
+
+export function restoreBunSpawn() {
+ if (originalBunSpawn !== undefined) globalThis.Bun.spawn = originalBunSpawn;
+ originalBunSpawn = undefined;
+}
+
+export function mockNodeSpawn(impl: typeof childProc.spawn) {
+ if (originalChildSpawn === undefined) originalChildSpawn = childProc.spawn;
+ // @ts-expect-error spawn is read only
+ childProc.spawn = impl as any;
+}
+
+export function restoreNodeSpawn() {
+ if (originalChildSpawn !== undefined) {
+ // @ts-expect-error spawn is read only
+ childProc.spawn = originalChildSpawn;
+ }
+ originalChildSpawn = undefined;
+}
diff --git a/packages/bun/src/utils/buni/spawn/index.ts b/packages/bun/src/utils/buni/spawn/index.ts
new file mode 100644
index 0000000..24e6928
--- /dev/null
+++ b/packages/bun/src/utils/buni/spawn/index.ts
@@ -0,0 +1 @@
+export * from './spawn';
diff --git a/packages/bun/src/utils/buni/spawn/spawn.spec.ts b/packages/bun/src/utils/buni/spawn/spawn.spec.ts
new file mode 100644
index 0000000..bab252c
--- /dev/null
+++ b/packages/bun/src/utils/buni/spawn/spawn.spec.ts
@@ -0,0 +1,120 @@
+import { spawn } from './spawn';
+import type { ChildProcess } from 'node:child_process';
+import {
+ mockIsBunRuntime,
+ mockBunSpawn,
+ restoreBunSpawn,
+ mockNodeSpawn
+} from './__tests__/helpers';
+
+// module path that exports isBunRuntime used by spawn.ts
+const utilsModulePath = '../utils';
+
+describe('universal spawn', () => {
+ afterEach(() => {
+ // restoreIsBunRuntime(utilsModulePath);
+ // restoreBunSpawn();
+ // restoreNodeSpawn();
+ });
+
+ it('uses Bun.spawn if available', async () => {
+ (globalThis as any).Bun = {
+ spawn: jest.fn().mockReturnValue('bun-result')
+ };
+
+ const result = spawn('echo', ['testing']);
+ expect((globalThis as any).Bun.spawn).toHaveBeenCalledWith({
+ cmd: ['echo', 'testing']
+ });
+ expect(result).toEqual('bun-result');
+ });
+
+ it.skip('routes to Bun.spawn with proper mapping when isBunRuntime()', (done) => {
+ // mockIsBunRuntime(utilsModulePath, true);
+
+ // let received: any;
+ // const fakeSubprocess = {
+ // stdout: {
+ // async text() {
+ // return 'ok-bun';
+ // }
+ // }
+ // } as unknown as Bun.Subprocess;
+ //
+ // mockBunSpawn((opts: any) => {
+ // received = opts;
+ // return fakeSubprocess;
+ // });
+
+ // const proc = spawn('bun', ['--version']);
+
+ const proc = spawn('echo', ['testing'], {
+ stdin: 'pipe',
+ stdout: 'pipe',
+ stderr: 'pipe',
+ stdio: 'pipe'
+ });
+
+ // const out = await proc.stdout.text();
+
+ proc.stdout.on('data', function (data: string) {
+ expect(data.toString()).toEqual('testing');
+ done();
+ });
+ // expect(out).toBe('ok-bun');
+
+ // expect(received).toBeTruthy();
+ // expect(received.cmd).toEqual(['echo', 'hello']);
+ // expect(received.cwd).toBe('/tmp/test');
+ // expect(received.env.TEST_VAR).toBe('1');
+ // expect(received.stdio).toEqual(['pipe', 'pipe', 'pipe']);
+ });
+
+ it.skip('routes to node:child_process.spawn when not Bun runtime', () => {
+ mockIsBunRuntime(utilsModulePath, false);
+
+ const calls: any[] = [];
+ mockNodeSpawn(((command: string, args: string[], options: any) => {
+ calls.push({ command, args, options });
+ // Return a minimal ChildProcess-like object
+ return { pid: 1234 } as unknown as ChildProcess;
+ }) as any);
+
+ const proc = spawn('node', ['-v'], {
+ cwd: '/work',
+ env: { ABC: 'xyz' },
+ stdio: 'inherit'
+ });
+
+ expect(proc).toBeTruthy();
+ expect(calls).toHaveLength(1);
+ expect(calls[0].command).toBe('node');
+ expect(calls[0].args).toEqual(['-v']);
+ expect(calls[0].options.cwd).toBe('/work');
+ expect(calls[0].options.env.ABC).toBe('xyz');
+ expect(calls[0].options.stdio).toBe('inherit');
+ });
+
+ it.skip('applies default stdio mapping: stdin/stdout/stderr inherit for Bun; stdio inherit for Node', () => {
+ // Bun branch
+ mockIsBunRuntime(utilsModulePath, true);
+ let bunOpts: any;
+ mockBunSpawn((opts: any) => {
+ bunOpts = opts;
+ return {} as any;
+ });
+ spawn('cmd');
+ expect(bunOpts.stdio).toEqual(['inherit', 'inherit', 'inherit']);
+
+ // Node branch
+ restoreBunSpawn();
+ mockIsBunRuntime(utilsModulePath, false);
+ const calls: any[] = [];
+ mockNodeSpawn(((c: string, a: string[], o: any) => {
+ calls.push(o);
+ return {} as any;
+ }) as any);
+ spawn('cmd');
+ expect(calls[0].stdio).toEqual('inherit');
+ });
+});
diff --git a/packages/bun/src/utils/buni/spawn/spawn.ts b/packages/bun/src/utils/buni/spawn/spawn.ts
new file mode 100644
index 0000000..2bdd50e
--- /dev/null
+++ b/packages/bun/src/utils/buni/spawn/spawn.ts
@@ -0,0 +1,66 @@
+import {
+ ChildProcess,
+ type IOType,
+ spawn as nodeSpawn,
+ StdioOptions
+} from 'node:child_process';
+import { isBunRuntime } from '../utils';
+
+export interface SpawnOptions {
+ cwd?: string;
+ stdio?: StdioOptions;
+ stdin?: IOType;
+ stdout?: IOType;
+ stderr?: IOType;
+ env?: Record;
+}
+
+export type SpawnResult = ChildProcess | Bun.Subprocess;
+
+export function spawn(
+ command: string,
+ args: string[] = [],
+ options: SpawnOptions = {}
+): SpawnResult {
+ const { cwd, env, stdin, stdout, stderr, stdio } = options;
+
+ if (isBunRuntime()) {
+ const opts: Bun.SpawnOptions.OptionsObject = {};
+
+ if (cwd) {
+ opts.cwd = cwd;
+ }
+
+ if (env) {
+ opts.env = env;
+ }
+
+ if (stdin) {
+ opts.stdin = stdin;
+ }
+
+ if (stdin) {
+ opts.stdin = stdin;
+ }
+
+ if (stdout) {
+ opts.stdout = stdout;
+ }
+
+ if (stderr) {
+ opts.stderr = stderr;
+ }
+ return Bun.spawn({
+ cmd: [command, ...args],
+ ...opts
+ });
+ }
+
+ console.log(`Command: ${command}`);
+ console.log(`Args: ${args.join(' ')}`);
+ return nodeSpawn(command, args, {
+ cwd,
+ env,
+ stdio
+ });
+}
diff --git a/packages/bun/src/utils/buni/utils.ts b/packages/bun/src/utils/buni/utils.ts
new file mode 100644
index 0000000..144ee2e
--- /dev/null
+++ b/packages/bun/src/utils/buni/utils.ts
@@ -0,0 +1,18 @@
+export function isBunRuntime(): boolean {
+ return typeof Bun !== 'undefined';
+}
+
+export function getBunCmd(): string {
+ return process.env.BUN_BIN || 'bun';
+}
+
+export function isBunSubprocess(
+ spawnResult: unknown
+): spawnResult is Bun.Subprocess {
+ return (
+ !!spawnResult &&
+ isBunRuntime() &&
+ typeof spawnResult === 'object' &&
+ 'exited' in spawnResult
+ );
+}
diff --git a/packages/bun/src/utils/cli.ts b/packages/bun/src/utils/cli.ts
new file mode 100644
index 0000000..335414b
--- /dev/null
+++ b/packages/bun/src/utils/cli.ts
@@ -0,0 +1,102 @@
+import { workspaceRoot } from '@nx/devkit';
+import { workerData } from 'node:worker_threads';
+import type { ChildProcess, IOType, SpawnOptions } from 'node:child_process';
+import { spawn } from 'node:child_process';
+
+export const isBun = typeof Bun !== 'undefined';
+
+export type UniversalChildProcess =
+ | ChildProcess
+ | Bun.Subprocess;
+
+export async function universalSpawnSync(cmd: string): Promise {
+ if (isBun) {
+ const result = Bun.spawnSync({ cmd: cmd.split(' ') });
+ const output = result.stdout?.toString().trim() || '';
+ return output;
+ }
+
+ const { execSync } = await import('node:child_process');
+ const output = execSync(cmd).toString().trim();
+ return output;
+}
+
+export interface RunSpawnOptions {
+ cwd?: string;
+ stdin?: IOType;
+ stdout?: IOType;
+ stderr?: IOType;
+ env?: Record;
+ windowsHide?: boolean;
+}
+
+export function runSpawn(
+ cmd: string,
+ args: string[] = [],
+ options: RunSpawnOptions = {}
+) {
+ if (isBun) {
+ return Bun.spawn({
+ cmd: [cmd, ...args],
+ stdout: 'pipe',
+ stderr: 'pipe',
+ ...options
+ });
+ } else {
+ const { stdin, stdout, stderr, ...restOptions } = options;
+ const spawnOptions: SpawnOptions = {
+ ...restOptions
+ };
+ if (stdin || stdout || stderr) {
+ spawnOptions.stdio = [stdin, stdout, stderr];
+ }
+
+ return spawn(cmd, args, spawnOptions);
+ }
+}
+
+export interface SpawnWithBunOptions {
+ cwd?: string;
+ stdio?: IOType;
+ stdin?: IOType;
+ stdout?: IOType;
+ stderr?: IOType;
+ env?: Record;
+}
+
+export function spawnWithBunOld(
+ args: string[],
+ options: SpawnWithBunOptions = {}
+): UniversalChildProcess {
+ const bunBin = process.env.BUN_BIN || 'bun';
+ const cwd = options.cwd || workspaceRoot;
+ const env = {
+ ...process.env,
+ ...(workerData || {}),
+ ...(options.env || {})
+ };
+ const {
+ stdin = 'ignore',
+ stdout = 'pipe',
+ stderr = 'pipe',
+ stdio = 'pipe'
+ } = options;
+
+ if (isBun) {
+ return Bun.spawn({
+ cmd: [bunBin, ...args],
+ cwd,
+ env,
+ stdin,
+ stdout,
+ stderr
+ });
+ }
+
+ return spawn(bunBin, args, {
+ cwd,
+ env,
+ windowsHide: true,
+ stdio
+ });
+}
diff --git a/packages/bun/src/utils/dependencies.ts b/packages/bun/src/utils/dependencies.ts
new file mode 100644
index 0000000..53f0411
--- /dev/null
+++ b/packages/bun/src/utils/dependencies.ts
@@ -0,0 +1,17 @@
+export interface DependencyDefinition {
+ name: string;
+ version: string;
+}
+
+const packageJson = require('../../package.json');
+
+export const libs = {
+ plugin: { name: packageJson.name, version: packageJson.version },
+ bunTypes: { name: '@types/bun', version: '^1.2.20' },
+ nxElysia: { name: '@stonx/elysia', version: '^0.1.1' }
+} as const satisfies Record;
+
+export const workspaceDependencies = {
+ [libs.plugin.name]: libs.plugin.version,
+ [libs.bunTypes.name]: libs.bunTypes.version
+} as const;
diff --git a/packages/bun/src/utils/index.ts b/packages/bun/src/utils/index.ts
new file mode 100644
index 0000000..caf1f9d
--- /dev/null
+++ b/packages/bun/src/utils/index.ts
@@ -0,0 +1,6 @@
+export * from './bun';
+export * from './cli';
+export * from './dependencies';
+export * from './is-bun-build-executor';
+export * from './logic';
+export * from './process-adapter';
diff --git a/packages/bun/src/utils/is-bun-build-executor.ts b/packages/bun/src/utils/is-bun-build-executor.ts
new file mode 100644
index 0000000..1e32496
--- /dev/null
+++ b/packages/bun/src/utils/is-bun-build-executor.ts
@@ -0,0 +1,5 @@
+import { libs } from './dependencies';
+
+export function isBunBuildExecutor(executor: string | undefined) {
+ return executor === `${libs.plugin.name}:build`;
+}
diff --git a/packages/bun/src/utils/logic.ts b/packages/bun/src/utils/logic.ts
new file mode 100644
index 0000000..51ab2d8
--- /dev/null
+++ b/packages/bun/src/utils/logic.ts
@@ -0,0 +1,12 @@
+export const isNil = (value: any): value is undefined | null => value == null;
+export const isString = (v: unknown): v is string => typeof v === 'string';
+export const isBool = (v: unknown): v is boolean => typeof v === 'boolean';
+export const isArray = Array.isArray;
+export const isFunction = (
+ v: unknown
+): v is (...args: unknown[]) => unknown => {
+ return typeof v === 'function';
+};
+export function isPlainObject(value: unknown): value is Record {
+ return typeof value === 'object' && !isArray(value) && !isNil(value);
+}
diff --git a/packages/bun/src/utils/process-adapter.ts b/packages/bun/src/utils/process-adapter.ts
new file mode 100644
index 0000000..3e69bcf
--- /dev/null
+++ b/packages/bun/src/utils/process-adapter.ts
@@ -0,0 +1,112 @@
+import {
+ spawn as nodeSpawn,
+ ChildProcess,
+ type IOType,
+ StdioOptions
+} from 'node:child_process';
+import { workspaceRoot } from '@nx/devkit';
+
+export function isBunRuntime(): boolean {
+ return typeof Bun !== 'undefined';
+}
+
+export function getBunCmd(): string {
+ return process.env.BUN_BIN || 'bun';
+}
+
+export interface SpawnOptions {
+ cwd?: string;
+ stdio?: StdioOptions;
+ stdin?: IOType;
+ stdout?: IOType;
+ stderr?: IOType;
+ env?: Record;
+}
+
+export type SpawnResult = ChildProcess | Bun.Subprocess;
+
+export function isBunSubprocess(
+ spawnResult: SpawnResult
+): spawnResult is Bun.Subprocess {
+ return isBunRuntime() && 'exited' in spawnResult;
+}
+
+export function spawnProcess(
+ command: string,
+ args: string[] = [],
+ options: SpawnOptions = {}
+): SpawnResult {
+ const cwd = options.cwd || workspaceRoot;
+
+ const env: Record = {
+ ...process.env,
+ ...(options.env || {})
+ };
+
+ const {
+ stdin = 'inherit',
+ stdout = 'inherit',
+ stderr = 'inherit',
+ stdio = 'inherit'
+ } = options;
+
+ if (isBunRuntime()) {
+ return Bun.spawn({
+ cmd: [command, ...args],
+ cwd,
+ env,
+ stdio: [stdin, stdout, stderr]
+ });
+ }
+
+ return nodeSpawn(command, args, {
+ cwd,
+ env,
+ stdio
+ });
+}
+
+export function spawnWithBun(args?: string[], options?: SpawnOptions) {
+ return spawnProcess(getBunCmd(), args, options);
+}
+
+export async function waitForExit(proc: SpawnResult): Promise {
+ if (isBunRuntime()) {
+ const sub = proc as Bun.Subprocess;
+ return sub.exited.then(() => sub.exitCode ?? 1);
+ }
+ const child = proc as ChildProcess;
+ return new Promise((resolve) => {
+ child.on('close', (code) => resolve(code ?? 1));
+ child.on('error', () => resolve(1));
+ });
+}
+
+export async function killProcess(proc: SpawnResult | null) {
+ if (!proc) return;
+
+ if (isBunRuntime()) {
+ try {
+ (proc as Bun.Subprocess).kill();
+ } catch (err) {
+ console.log(err);
+ }
+
+ return;
+ }
+
+ const child = proc as ChildProcess;
+ if (child.killed) return;
+ return new Promise((resolve) => {
+ child.once('exit', () => resolve());
+ child.kill('SIGTERM');
+ setTimeout(() => {
+ try {
+ if (!child.killed) child.kill('SIGKILL');
+ } catch (err) {
+ console.log(err);
+ }
+ resolve();
+ }, 3000);
+ });
+}
diff --git a/packages/bun/tsconfig.json b/packages/bun/tsconfig.json
new file mode 100644
index 0000000..62ebbd9
--- /dev/null
+++ b/packages/bun/tsconfig.json
@@ -0,0 +1,13 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "files": [],
+ "include": [],
+ "references": [
+ {
+ "path": "./tsconfig.lib.json"
+ },
+ {
+ "path": "./tsconfig.spec.json"
+ }
+ ]
+}
diff --git a/packages/bun/tsconfig.lib.json b/packages/bun/tsconfig.lib.json
new file mode 100644
index 0000000..3380843
--- /dev/null
+++ b/packages/bun/tsconfig.lib.json
@@ -0,0 +1,13 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "compilerOptions": {
+ "baseUrl": ".",
+ "rootDir": "src",
+ "outDir": "dist",
+ "tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
+ "emitDeclarationOnly": false
+ },
+ "include": ["src/**/*.ts"],
+ "references": [],
+ "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
+}
diff --git a/packages/bun/tsconfig.spec.json b/packages/bun/tsconfig.spec.json
new file mode 100644
index 0000000..917987c
--- /dev/null
+++ b/packages/bun/tsconfig.spec.json
@@ -0,0 +1,18 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "compilerOptions": {
+ "outDir": "./out-tsc/jest",
+ "types": ["jest", "node"]
+ },
+ "include": [
+ "jest.config.ts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.d.ts"
+ ],
+ "references": [
+ {
+ "path": "./tsconfig.lib.json"
+ }
+ ]
+}
diff --git a/packages/elysia/src/generators/application/application.ts b/packages/elysia/src/generators/application/application.ts
index bbec46e..89bf84b 100644
--- a/packages/elysia/src/generators/application/application.ts
+++ b/packages/elysia/src/generators/application/application.ts
@@ -30,17 +30,20 @@ export async function applicationGeneratorInternal(
const options = await normalizeOptions(tree, rawOptions);
const tasks: GeneratorCallback[] = [];
- const initTask = await initGenerator(tree, {
- skipPackageJson: options.skipPackageJson,
- skipFormat: true
- });
- tasks.push(initTask);
- const nodeApplicationTask = await nodeApplicationGenerator(
- tree,
- toNodeApplicationGeneratorOptions(options)
+ tasks.push(
+ await initGenerator(tree, {
+ skipPackageJson: options.skipPackageJson,
+ skipFormat: true
+ })
+ );
+
+ tasks.push(
+ await nodeApplicationGenerator(
+ tree,
+ toNodeApplicationGeneratorOptions(options)
+ )
);
- tasks.push(nodeApplicationTask);
createFiles(tree, options);
updateTsConfig(tree, options);
diff --git a/packages/elysia/src/generators/application/lib/update-tsconfig.ts b/packages/elysia/src/generators/application/lib/update-tsconfig.ts
index 8b4465e..aa59e1b 100644
--- a/packages/elysia/src/generators/application/lib/update-tsconfig.ts
+++ b/packages/elysia/src/generators/application/lib/update-tsconfig.ts
@@ -8,7 +8,7 @@ export function updateTsConfig(tree: Tree, options: NormalizedOptions): void {
tree,
joinPathFragments(options.appProjectRoot, 'tsconfig.app.json'),
(json) => {
- json.compilerOptions.experimentalDecorators = true;
+ json.compilerOptions.experimentalDecorators = true; // TODO: is this needed in TypeScript v5.0 ?
json.compilerOptions.emitDecoratorMetadata = true;
json.compilerOptions.target = 'es2021';
if (options.strict) {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index cf507dc..2dc5ade 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -10,34 +10,34 @@ importers:
devDependencies:
'@eslint/js':
specifier: ^9.8.0
- version: 9.32.0
+ version: 9.35.0
'@nx/devkit':
- specifier: 21.3.11
- version: 21.3.11(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
+ specifier: 21.4.1
+ version: 21.4.1(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
'@nx/eslint':
- specifier: 21.3.11
- version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.32.0)(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
+ specifier: 21.4.1
+ version: 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.35.0)(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
'@nx/eslint-plugin':
- specifier: 21.3.11
- version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@typescript-eslint/parser@8.39.0(eslint@9.32.0)(typescript@5.8.3))(eslint-config-prettier@10.1.8(eslint@9.32.0))(eslint@9.32.0)(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(typescript@5.8.3)(verdaccio@6.1.6(typanion@3.14.0))
+ specifier: 21.4.1
+ version: 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@typescript-eslint/parser@8.42.0(eslint@9.35.0)(typescript@5.9.2))(eslint-config-prettier@10.1.8(eslint@9.35.0))(eslint@9.35.0)(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(typescript@5.9.2)(verdaccio@6.1.6(typanion@3.14.0))
'@nx/jest':
- specifier: 21.3.11
- version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))(typescript@5.8.3)(verdaccio@6.1.6(typanion@3.14.0))
+ specifier: 21.4.1
+ version: 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))(typescript@5.9.2)(verdaccio@6.1.6(typanion@3.14.0))
'@nx/js':
- specifier: 21.3.11
- version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
+ specifier: 21.4.1
+ version: 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
'@nx/node':
- specifier: 21.3.11
- version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.32.0)(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))(typescript@5.8.3)(verdaccio@6.1.6(typanion@3.14.0))
+ specifier: 21.4.1
+ version: 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.35.0)(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))(typescript@5.9.2)(verdaccio@6.1.6(typanion@3.14.0))
'@nx/plugin':
- specifier: 21.3.11
- version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.32.0)(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))(typescript@5.8.3)(verdaccio@6.1.6(typanion@3.14.0))
+ specifier: 21.4.1
+ version: 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.35.0)(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))(typescript@5.9.2)(verdaccio@6.1.6(typanion@3.14.0))
'@nx/workspace':
- specifier: 21.3.11
- version: 21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))
+ specifier: 21.4.1
+ version: 21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))
'@swc-node/register':
specifier: ~1.9.1
- version: 1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3)
+ version: 1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2)
'@swc/cli':
specifier: ~0.6.0
version: 0.6.0(@swc/core@1.5.29(@swc/helpers@0.5.17))
@@ -50,6 +50,9 @@ importers:
'@swc/jest':
specifier: ~0.2.38
version: 0.2.39(@swc/core@1.5.29(@swc/helpers@0.5.17))
+ '@types/bun':
+ specifier: 1.2.20
+ version: 1.2.20(@types/react@19.1.12)
'@types/jest':
specifier: ^30.0.0
version: 30.0.0
@@ -59,18 +62,24 @@ importers:
chalk:
specifier: 5.5.0
version: 5.5.0
+ cmrd:
+ specifier: 0.0.1
+ version: 0.0.1(typescript@5.9.2)
cz-git:
specifier: 1.12.0
version: 1.12.0
czg:
specifier: 1.12.0
version: 1.12.0
+ esbuild:
+ specifier: ^0.19.2
+ version: 0.19.12
eslint:
specifier: ^9.8.0
- version: 9.32.0
+ version: 9.35.0
eslint-config-prettier:
specifier: ^10.0.0
- version: 10.1.8(eslint@9.32.0)
+ version: 10.1.8(eslint@9.35.0)
fast-glob:
specifier: 3.3.3
version: 3.3.3
@@ -82,13 +91,13 @@ importers:
version: 4.1.0
jest:
specifier: ^30.0.2
- version: 30.0.5(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))
+ version: 30.1.3(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))
jest-environment-jsdom:
specifier: ^30.0.2
- version: 30.0.5
+ version: 30.1.2
jest-environment-node:
specifier: ^30.0.2
- version: 30.0.5
+ version: 30.1.2
jest-util:
specifier: ^30.0.2
version: 30.0.5
@@ -96,8 +105,8 @@ importers:
specifier: ^2.1.0
version: 2.4.0
nx:
- specifier: 21.3.11
- version: 21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))
+ specifier: 21.4.1
+ version: 21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))
prettier:
specifier: 3.6.2
version: 3.6.2
@@ -109,19 +118,19 @@ importers:
version: 7.7.2
ts-jest:
specifier: ^29.4.0
- version: 29.4.1(@babel/core@7.28.0)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.28.0))(jest-util@30.0.5)(jest@30.0.5(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3)))(typescript@5.8.3)
+ version: 29.4.1(@babel/core@7.28.4)(@jest/transform@30.1.2)(@jest/types@30.0.5)(babel-jest@30.1.2(@babel/core@7.28.4))(esbuild@0.19.12)(jest-util@30.0.5)(jest@30.1.3(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2)))(typescript@5.9.2)
ts-node:
specifier: 10.9.1
- version: 10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3)
+ version: 10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2)
tslib:
specifier: ^2.3.0
version: 2.8.1
typescript:
- specifier: ~5.8.2
- version: 5.8.3
+ specifier: ~5.9.2
+ version: 5.9.2
typescript-eslint:
specifier: ^8.29.0
- version: 8.39.0(eslint@9.32.0)(typescript@5.8.3)
+ version: 8.42.0(eslint@9.35.0)(typescript@5.9.2)
verdaccio:
specifier: ^6.0.5
version: 6.1.6(typanion@3.14.0)
@@ -129,30 +138,49 @@ importers:
specifier: 18.0.0
version: 18.0.0
+ e2e/bun: {}
+
+ packages/bun:
+ dependencies:
+ '@nx/devkit':
+ specifier: '>=20.0.0 <22.0.0'
+ version: 21.4.1(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
+ '@nx/eslint':
+ specifier: 21.4.1
+ version: 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.35.0)(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
+ '@nx/js':
+ specifier: '>=20.0.0 <22.0.0'
+ version: 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
+ fast-glob:
+ specifier: 3.3.3
+ version: 3.3.3
+ nx:
+ specifier: 21.4.1
+ version: 21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))
+ tslib:
+ specifier: ^2.3.0
+ version: 2.8.1
+
packages/elysia:
dependencies:
'@nx/devkit':
specifier: '>=18.0.0 <22.0.0'
- version: 21.3.11(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
+ version: 21.4.1(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
'@nx/eslint':
specifier: '>=18.0.0 <22.0.0'
- version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.32.0)(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
+ version: 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.35.0)(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
'@nx/js':
specifier: '>=18.0.0 <22.0.0'
- version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
+ version: 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
'@nx/node':
specifier: '>=18.0.0 <22.0.0'
- version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.32.0)(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))(typescript@5.8.3)(verdaccio@6.1.6(typanion@3.14.0))
+ version: 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.35.0)(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))(typescript@5.9.2)(verdaccio@6.1.6(typanion@3.14.0))
tslib:
specifier: '>=2.3.0'
version: 2.8.1
packages:
- '@ampproject/remapping@2.3.0':
- resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
- engines: {node: '>=6.0.0'}
-
'@asamuzakjp/css-color@3.2.0':
resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==}
@@ -160,16 +188,16 @@ packages:
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
engines: {node: '>=6.9.0'}
- '@babel/compat-data@7.28.0':
- resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==}
+ '@babel/compat-data@7.28.4':
+ resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==}
engines: {node: '>=6.9.0'}
- '@babel/core@7.28.0':
- resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==}
+ '@babel/core@7.28.4':
+ resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==}
engines: {node: '>=6.9.0'}
- '@babel/generator@7.28.0':
- resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==}
+ '@babel/generator@7.28.3':
+ resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==}
engines: {node: '>=6.9.0'}
'@babel/helper-annotate-as-pure@7.27.3':
@@ -180,8 +208,8 @@ packages:
resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==}
engines: {node: '>=6.9.0'}
- '@babel/helper-create-class-features-plugin@7.27.1':
- resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==}
+ '@babel/helper-create-class-features-plugin@7.28.3':
+ resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -209,8 +237,8 @@ packages:
resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
engines: {node: '>=6.9.0'}
- '@babel/helper-module-transforms@7.27.3':
- resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==}
+ '@babel/helper-module-transforms@7.28.3':
+ resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -251,16 +279,16 @@ packages:
resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
engines: {node: '>=6.9.0'}
- '@babel/helper-wrap-function@7.27.1':
- resolution: {integrity: sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==}
+ '@babel/helper-wrap-function@7.28.3':
+ resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==}
engines: {node: '>=6.9.0'}
- '@babel/helpers@7.28.2':
- resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==}
+ '@babel/helpers@7.28.4':
+ resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==}
engines: {node: '>=6.9.0'}
- '@babel/parser@7.28.0':
- resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==}
+ '@babel/parser@7.28.4':
+ resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==}
engines: {node: '>=6.0.0'}
hasBin: true
@@ -288,8 +316,8 @@ packages:
peerDependencies:
'@babel/core': ^7.13.0
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1':
- resolution: {integrity: sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==}
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3':
+ resolution: {integrity: sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -439,8 +467,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-block-scoping@7.28.0':
- resolution: {integrity: sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==}
+ '@babel/plugin-transform-block-scoping@7.28.4':
+ resolution: {integrity: sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -451,14 +479,14 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-class-static-block@7.27.1':
- resolution: {integrity: sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==}
+ '@babel/plugin-transform-class-static-block@7.28.3':
+ resolution: {integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.12.0
- '@babel/plugin-transform-classes@7.28.0':
- resolution: {integrity: sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA==}
+ '@babel/plugin-transform-classes@7.28.4':
+ resolution: {integrity: sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -601,8 +629,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-object-rest-spread@7.28.0':
- resolution: {integrity: sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==}
+ '@babel/plugin-transform-object-rest-spread@7.28.4':
+ resolution: {integrity: sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -649,8 +677,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-regenerator@7.28.1':
- resolution: {integrity: sha512-P0QiV/taaa3kXpLY+sXla5zec4E+4t4Aqc9ggHlfZ7a2cp8/x/Gv08jfwEtn9gnnYIMvHx6aoOZ8XJL8eU71Dg==}
+ '@babel/plugin-transform-regenerator@7.28.4':
+ resolution: {integrity: sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -667,8 +695,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-runtime@7.28.0':
- resolution: {integrity: sha512-dGopk9nZrtCs2+nfIem25UuHyt5moSJamArzIoh9/vezUQPmYDOzjaHDCkAzuGJibCIkPup8rMT2+wYB6S73cA==}
+ '@babel/plugin-transform-runtime@7.28.3':
+ resolution: {integrity: sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -733,8 +761,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/preset-env@7.28.0':
- resolution: {integrity: sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg==}
+ '@babel/preset-env@7.28.3':
+ resolution: {integrity: sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -750,31 +778,34 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/runtime@7.28.2':
- resolution: {integrity: sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==}
+ '@babel/runtime@7.28.4':
+ resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==}
engines: {node: '>=6.9.0'}
'@babel/template@7.27.2':
resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
engines: {node: '>=6.9.0'}
- '@babel/traverse@7.28.0':
- resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==}
+ '@babel/traverse@7.28.4':
+ resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==}
engines: {node: '>=6.9.0'}
- '@babel/types@7.28.2':
- resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==}
+ '@babel/types@7.28.4':
+ resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==}
engines: {node: '>=6.9.0'}
'@bcoe/v8-coverage@0.2.3':
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
+ '@borewit/text-codec@0.1.1':
+ resolution: {integrity: sha512-5L/uBxmjaCIX5h8Z+uu+kA9BQLkc/Wl06UGR5ajNRxu+/XjonB5i8JpgFMrPj3LXTCPA0pv8yxUvbUi+QthGGA==}
+
'@cspotcode/source-map-support@0.8.1':
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
engines: {node: '>=12'}
- '@csstools/color-helpers@5.0.2':
- resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==}
+ '@csstools/color-helpers@5.1.0':
+ resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==}
engines: {node: '>=18'}
'@csstools/css-calc@2.1.4':
@@ -784,8 +815,8 @@ packages:
'@csstools/css-parser-algorithms': ^3.0.5
'@csstools/css-tokenizer': ^3.0.4
- '@csstools/css-color-parser@3.0.10':
- resolution: {integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==}
+ '@csstools/css-color-parser@3.1.0':
+ resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==}
engines: {node: '>=18'}
peerDependencies:
'@csstools/css-parser-algorithms': ^3.0.5
@@ -805,17 +836,155 @@ packages:
resolution: {integrity: sha512-I3l7FdGRXluAS44/0NguwWlO83J18p0vlr2FYHrJkWdNYhgVoiYo61IXPqaOsL+vNxU1ZqMACzItGK3/KKDsdw==}
engines: {node: '>= 6'}
- '@emnapi/core@1.4.5':
- resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==}
+ '@emnapi/core@1.5.0':
+ resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==}
+
+ '@emnapi/runtime@1.5.0':
+ resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==}
+
+ '@emnapi/wasi-threads@1.1.0':
+ resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==}
+
+ '@esbuild/aix-ppc64@0.19.12':
+ resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/android-arm64@0.19.12':
+ resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm@0.19.12':
+ resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-x64@0.19.12':
+ resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/darwin-arm64@0.19.12':
+ resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.19.12':
+ resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/freebsd-arm64@0.19.12':
+ resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.19.12':
+ resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/linux-arm64@0.19.12':
+ resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.19.12':
+ resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
- '@emnapi/runtime@1.4.5':
- resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==}
+ '@esbuild/linux-ia32@0.19.12':
+ resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
- '@emnapi/wasi-threads@1.0.4':
- resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==}
+ '@esbuild/linux-loong64@0.19.12':
+ resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.19.12':
+ resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.19.12':
+ resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
- '@eslint-community/eslint-utils@4.7.0':
- resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
+ '@esbuild/linux-riscv64@0.19.12':
+ resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.19.12':
+ resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.19.12':
+ resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/netbsd-x64@0.19.12':
+ resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-x64@0.19.12':
+ resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/sunos-x64@0.19.12':
+ resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/win32-arm64@0.19.12':
+ resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.19.12':
+ resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.19.12':
+ resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+
+ '@eslint-community/eslint-utils@4.8.0':
+ resolution: {integrity: sha512-MJQFqrZgcW0UNYLGOuQpey/oTN59vyWwplvCGZztn1cKz9agZPPYpJB7h2OMmuu7VLqkvEjN8feFZJmxNF9D+Q==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
@@ -828,46 +997,42 @@ packages:
resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/config-helpers@0.3.0':
- resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==}
+ '@eslint/config-helpers@0.3.1':
+ resolution: {integrity: sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/core@0.15.1':
- resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==}
+ '@eslint/core@0.15.2':
+ resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/eslintrc@3.3.1':
resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/js@9.32.0':
- resolution: {integrity: sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==}
+ '@eslint/js@9.35.0':
+ resolution: {integrity: sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/object-schema@2.1.6':
resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/plugin-kit@0.3.4':
- resolution: {integrity: sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==}
+ '@eslint/plugin-kit@0.3.5':
+ resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@humanfs/core@0.19.1':
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
engines: {node: '>=18.18.0'}
- '@humanfs/node@0.16.6':
- resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
+ '@humanfs/node@0.16.7':
+ resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==}
engines: {node: '>=18.18.0'}
'@humanwhocodes/module-importer@1.0.1':
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
engines: {node: '>=12.22'}
- '@humanwhocodes/retry@0.3.1':
- resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
- engines: {node: '>=18.18'}
-
'@humanwhocodes/retry@0.4.3':
resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
engines: {node: '>=18.18'}
@@ -884,12 +1049,12 @@ packages:
resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
engines: {node: '>=8'}
- '@jest/console@30.0.5':
- resolution: {integrity: sha512-xY6b0XiL0Nav3ReresUarwl2oIz1gTnxGbGpho9/rbUWsLH0f1OD/VT84xs8c7VmH7MChnLb0pag6PhZhAdDiA==}
+ '@jest/console@30.1.2':
+ resolution: {integrity: sha512-BGMAxj8VRmoD0MoA/jo9alMXSRoqW8KPeqOfEo1ncxnRLatTBCpRoOwlwlEMdudp68Q6WSGwYrrLtTGOh8fLzw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/core@30.0.5':
- resolution: {integrity: sha512-fKD0OulvRsXF1hmaFgHhVJzczWzA1RXMMo9LTPuFXo9q/alDbME3JIyWYqovWsUBWSoBcsHaGPSLF9rz4l9Qeg==}
+ '@jest/core@30.1.3':
+ resolution: {integrity: sha512-LIQz7NEDDO1+eyOA2ZmkiAyYvZuo6s1UxD/e2IHldR6D7UYogVq3arTmli07MkENLq6/3JEQjp0mA8rrHHJ8KQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
@@ -905,8 +1070,8 @@ packages:
resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/environment-jsdom-abstract@30.0.5':
- resolution: {integrity: sha512-gpWwiVxZunkoglP8DCnT3As9x5O8H6gveAOpvaJd2ATAoSh7ZSSCWbr9LQtUMvr8WD3VjG9YnDhsmkCK5WN1rQ==}
+ '@jest/environment-jsdom-abstract@30.1.2':
+ resolution: {integrity: sha512-u8kTh/ZBl97GOmnGJLYK/1GuwAruMC4hoP6xuk/kwltmVWsA9u/6fH1/CsPVGt2O+Wn2yEjs8n1B1zZJ62Cx0w==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies:
canvas: ^3.0.0
@@ -915,36 +1080,36 @@ packages:
canvas:
optional: true
- '@jest/environment@30.0.5':
- resolution: {integrity: sha512-aRX7WoaWx1oaOkDQvCWImVQ8XNtdv5sEWgk4gxR6NXb7WBUnL5sRak4WRzIQRZ1VTWPvV4VI4mgGjNL9TeKMYA==}
+ '@jest/environment@30.1.2':
+ resolution: {integrity: sha512-N8t1Ytw4/mr9uN28OnVf0SYE2dGhaIxOVYcwsf9IInBKjvofAjbFRvedvBBlyTYk2knbJTiEjEJ2PyyDIBnd9w==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/expect-utils@30.0.5':
- resolution: {integrity: sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew==}
+ '@jest/expect-utils@30.1.2':
+ resolution: {integrity: sha512-HXy1qT/bfdjCv7iC336ExbqqYtZvljrV8odNdso7dWK9bSeHtLlvwWWC3YSybSPL03Gg5rug6WLCZAZFH72m0A==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/expect@30.0.5':
- resolution: {integrity: sha512-6udac8KKrtTtC+AXZ2iUN/R7dp7Ydry+Fo6FPFnDG54wjVMnb6vW/XNlf7Xj8UDjAE3aAVAsR4KFyKk3TCXmTA==}
+ '@jest/expect@30.1.2':
+ resolution: {integrity: sha512-tyaIExOwQRCxPCGNC05lIjWJztDwk2gPDNSDGg1zitXJJ8dC3++G/CRjE5mb2wQsf89+lsgAgqxxNpDLiCViTA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/fake-timers@30.0.5':
- resolution: {integrity: sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw==}
+ '@jest/fake-timers@30.1.2':
+ resolution: {integrity: sha512-Beljfv9AYkr9K+ETX9tvV61rJTY706BhBUtiaepQHeEGfe0DbpvUA5Z3fomwc5Xkhns6NWrcFDZn+72fLieUnA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/get-type@30.0.1':
- resolution: {integrity: sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw==}
+ '@jest/get-type@30.1.0':
+ resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/globals@30.0.5':
- resolution: {integrity: sha512-7oEJT19WW4oe6HR7oLRvHxwlJk2gev0U9px3ufs8sX9PoD1Eza68KF0/tlN7X0dq/WVsBScXQGgCldA1V9Y/jA==}
+ '@jest/globals@30.1.2':
+ resolution: {integrity: sha512-teNTPZ8yZe3ahbYnvnVRDeOjr+3pu2uiAtNtrEsiMjVPPj+cXd5E/fr8BL7v/T7F31vYdEHrI5cC/2OoO/vM9A==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/pattern@30.0.1':
resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/reporters@30.0.5':
- resolution: {integrity: sha512-mafft7VBX4jzED1FwGC1o/9QUM2xebzavImZMeqnsklgcyxBto8mV4HzNSzUrryJ+8R9MFOM3HgYuDradWR+4g==}
+ '@jest/reporters@30.1.3':
+ resolution: {integrity: sha512-VWEQmJWfXMOrzdFEOyGjUEOuVXllgZsoPtEHZzfdNz18RmzJ5nlR6kp8hDdY8dDS1yGOXAY7DHT+AOHIPSBV0w==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
@@ -956,144 +1121,153 @@ packages:
resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/snapshot-utils@30.0.5':
- resolution: {integrity: sha512-XcCQ5qWHLvi29UUrowgDFvV4t7ETxX91CbDczMnoqXPOIcZOxyNdSjm6kV5XMc8+HkxfRegU/MUmnTbJRzGrUQ==}
+ '@jest/snapshot-utils@30.1.2':
+ resolution: {integrity: sha512-vHoMTpimcPSR7OxS2S0V1Cpg8eKDRxucHjoWl5u4RQcnxqQrV3avETiFpl8etn4dqxEGarBeHbIBety/f8mLXw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/source-map@30.0.1':
resolution: {integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/test-result@30.0.5':
- resolution: {integrity: sha512-wPyztnK0gbDMQAJZ43tdMro+qblDHH1Ru/ylzUo21TBKqt88ZqnKKK2m30LKmLLoKtR2lxdpCC/P3g1vfKcawQ==}
+ '@jest/test-result@30.1.3':
+ resolution: {integrity: sha512-P9IV8T24D43cNRANPPokn7tZh0FAFnYS2HIfi5vK18CjRkTDR9Y3e1BoEcAJnl4ghZZF4Ecda4M/k41QkvurEQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/test-sequencer@30.0.5':
- resolution: {integrity: sha512-Aea/G1egWoIIozmDD7PBXUOxkekXl7ueGzrsGGi1SbeKgQqCYCIf+wfbflEbf2LiPxL8j2JZGLyrzZagjvW4YQ==}
+ '@jest/test-sequencer@30.1.3':
+ resolution: {integrity: sha512-82J+hzC0qeQIiiZDThh+YUadvshdBswi5nuyXlEmXzrhw5ZQSRHeQ5LpVMD/xc8B3wPePvs6VMzHnntxL+4E3w==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/transform@30.0.5':
- resolution: {integrity: sha512-Vk8amLQCmuZyy6GbBht1Jfo9RSdBtg7Lks+B0PecnjI8J+PCLQPGh7uI8Q/2wwpW2gLdiAfiHNsmekKlywULqg==}
+ '@jest/transform@30.1.2':
+ resolution: {integrity: sha512-UYYFGifSgfjujf1Cbd3iU/IQoSd6uwsj8XHj5DSDf5ERDcWMdJOPTkHWXj4U+Z/uMagyOQZ6Vne8C4nRIrCxqA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/types@30.0.5':
resolution: {integrity: sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jridgewell/gen-mapping@0.3.12':
- resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==}
+ '@jridgewell/gen-mapping@0.3.13':
+ resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
+
+ '@jridgewell/remapping@2.3.5':
+ resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
- '@jridgewell/sourcemap-codec@1.5.4':
- resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==}
+ '@jridgewell/sourcemap-codec@1.5.5':
+ resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
- '@jridgewell/trace-mapping@0.3.29':
- resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==}
+ '@jridgewell/trace-mapping@0.3.30':
+ resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==}
'@jridgewell/trace-mapping@0.3.9':
resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
- '@napi-rs/nice-android-arm-eabi@1.0.4':
- resolution: {integrity: sha512-OZFMYUkih4g6HCKTjqJHhMUlgvPiDuSLZPbPBWHLjKmFTv74COzRlq/gwHtmEVaR39mJQ6ZyttDl2HNMUbLVoA==}
+ '@napi-rs/nice-android-arm-eabi@1.1.1':
+ resolution: {integrity: sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==}
engines: {node: '>= 10'}
cpu: [arm]
os: [android]
- '@napi-rs/nice-android-arm64@1.0.4':
- resolution: {integrity: sha512-k8u7cjeA64vQWXZcRrPbmwjH8K09CBnNaPnI9L1D5N6iMPL3XYQzLcN6WwQonfcqCDv5OCY3IqX89goPTV4KMw==}
+ '@napi-rs/nice-android-arm64@1.1.1':
+ resolution: {integrity: sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [android]
- '@napi-rs/nice-darwin-arm64@1.0.4':
- resolution: {integrity: sha512-GsLdQvUcuVzoyzmtjsThnpaVEizAqH5yPHgnsBmq3JdVoVZHELFo7PuJEdfOH1DOHi2mPwB9sCJEstAYf3XCJA==}
+ '@napi-rs/nice-darwin-arm64@1.1.1':
+ resolution: {integrity: sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@napi-rs/nice-darwin-x64@1.0.4':
- resolution: {integrity: sha512-1y3gyT3e5zUY5SxRl3QDtJiWVsbkmhtUHIYwdWWIQ3Ia+byd/IHIEpqAxOGW1nhhnIKfTCuxBadHQb+yZASVoA==}
+ '@napi-rs/nice-darwin-x64@1.1.1':
+ resolution: {integrity: sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@napi-rs/nice-freebsd-x64@1.0.4':
- resolution: {integrity: sha512-06oXzESPRdXUuzS8n2hGwhM2HACnDfl3bfUaSqLGImM8TA33pzDXgGL0e3If8CcFWT98aHows5Lk7xnqYNGFeA==}
+ '@napi-rs/nice-freebsd-x64@1.1.1':
+ resolution: {integrity: sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [freebsd]
- '@napi-rs/nice-linux-arm-gnueabihf@1.0.4':
- resolution: {integrity: sha512-CgklZ6g8WL4+EgVVkxkEvvsi2DSLf9QIloxWO0fvQyQBp6VguUSX3eHLeRpqwW8cRm2Hv/Q1+PduNk7VK37VZw==}
+ '@napi-rs/nice-linux-arm-gnueabihf@1.1.1':
+ resolution: {integrity: sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==}
engines: {node: '>= 10'}
cpu: [arm]
os: [linux]
- '@napi-rs/nice-linux-arm64-gnu@1.0.4':
- resolution: {integrity: sha512-wdAJ7lgjhAlsANUCv0zi6msRwq+D4KDgU+GCCHssSxWmAERZa2KZXO0H2xdmoJ/0i03i6YfK/sWaZgUAyuW2oQ==}
+ '@napi-rs/nice-linux-arm64-gnu@1.1.1':
+ resolution: {integrity: sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@napi-rs/nice-linux-arm64-musl@1.0.4':
- resolution: {integrity: sha512-4b1KYG+sriufhFrpUS9uNOEYYJqSfcbnwGx6uGX7JjrH8tELG90cOpCawz5THNIwlS3DhLgnCOcn0+4p6z26QA==}
+ '@napi-rs/nice-linux-arm64-musl@1.1.1':
+ resolution: {integrity: sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@napi-rs/nice-linux-ppc64-gnu@1.0.4':
- resolution: {integrity: sha512-iaf3vMRgr23oe1PUaKpxaH3DS0IMN0+N9iEiWVwYPm/U15vZFYdqVegGfN2PzrZLUl5lc8ZxbmEKDfuqslhAMA==}
+ '@napi-rs/nice-linux-ppc64-gnu@1.1.1':
+ resolution: {integrity: sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==}
engines: {node: '>= 10'}
cpu: [ppc64]
os: [linux]
- '@napi-rs/nice-linux-riscv64-gnu@1.0.4':
- resolution: {integrity: sha512-UXoREY6Yw6rHrGuTwQgBxpfjK34t6mTjibE9/cXbefL9AuUCJ9gEgwNKZiONuR5QGswChqo9cnthjdKkYyAdDg==}
+ '@napi-rs/nice-linux-riscv64-gnu@1.1.1':
+ resolution: {integrity: sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==}
engines: {node: '>= 10'}
cpu: [riscv64]
os: [linux]
- '@napi-rs/nice-linux-s390x-gnu@1.0.4':
- resolution: {integrity: sha512-eFbgYCRPmsqbYPAlLYU5hYTNbogmIDUvknilehHsFhCH1+0/kN87lP+XaLT0Yeq4V/rpwChSd9vlz4muzFArtw==}
+ '@napi-rs/nice-linux-s390x-gnu@1.1.1':
+ resolution: {integrity: sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==}
engines: {node: '>= 10'}
cpu: [s390x]
os: [linux]
- '@napi-rs/nice-linux-x64-gnu@1.0.4':
- resolution: {integrity: sha512-4T3E6uTCwWT6IPnwuPcWVz3oHxvEp/qbrCxZhsgzwTUBEwu78EGNXGdHfKJQt3soth89MLqZJw+Zzvnhrsg1mQ==}
+ '@napi-rs/nice-linux-x64-gnu@1.1.1':
+ resolution: {integrity: sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@napi-rs/nice-linux-x64-musl@1.0.4':
- resolution: {integrity: sha512-NtbBkAeyBPLvCBkWtwkKXkNSn677eaT0cX3tygq+2qVv71TmHgX4gkX6o9BXjlPzdgPGwrUudavCYPT9tzkEqQ==}
+ '@napi-rs/nice-linux-x64-musl@1.1.1':
+ resolution: {integrity: sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@napi-rs/nice-win32-arm64-msvc@1.0.4':
- resolution: {integrity: sha512-vubOe3i+YtSJGEk/++73y+TIxbuVHi+W8ZzrRm2eETCjCRwNlgbfToQZ85dSA+4iBB/NJRGNp+O4hfdbbttZWA==}
+ '@napi-rs/nice-openharmony-arm64@1.1.1':
+ resolution: {integrity: sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@napi-rs/nice-win32-arm64-msvc@1.1.1':
+ resolution: {integrity: sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
- '@napi-rs/nice-win32-ia32-msvc@1.0.4':
- resolution: {integrity: sha512-BMOVrUDZeg1RNRKVlh4eyLv5djAAVLiSddfpuuQ47EFjBcklg0NUeKMFKNrKQR4UnSn4HAiACLD7YK7koskwmg==}
+ '@napi-rs/nice-win32-ia32-msvc@1.1.1':
+ resolution: {integrity: sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
- '@napi-rs/nice-win32-x64-msvc@1.0.4':
- resolution: {integrity: sha512-kCNk6HcRZquhw/whwh4rHsdPyOSCQCgnVDVik+Y9cuSVTDy3frpiCJTScJqPPS872h4JgZKkr/+CwcwttNEo9Q==}
+ '@napi-rs/nice-win32-x64-msvc@1.1.1':
+ resolution: {integrity: sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
- '@napi-rs/nice@1.0.4':
- resolution: {integrity: sha512-Sqih1YARrmMoHlXGgI9JrrgkzxcaaEso0AH+Y7j8NHonUs+xe4iDsgC3IBIDNdzEewbNpccNN6hip+b5vmyRLw==}
+ '@napi-rs/nice@1.1.1':
+ resolution: {integrity: sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==}
engines: {node: '>= 10'}
'@napi-rs/wasm-runtime@0.2.12':
@@ -1114,13 +1288,16 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
- '@nx/devkit@21.3.11':
- resolution: {integrity: sha512-JOV8TAa9K5+ZwTA/EUi0g5qcKEg5vmi0AyOUsrNUHlv3BgQnwZtPLDDTPPZ+ezq24o6YzgwueZWj3CLEdMHEDg==}
+ '@nx/devkit@21.4.1':
+ resolution: {integrity: sha512-rWgMNG2e0tSG5L3vffuMH/aRkn+i9vYHelWkgVAslGBOaqriEg1dCSL/W9I3Fd5lnucHy3DrG1f19uDjv7Dm0A==}
peerDependencies:
- nx: 21.3.11
+ nx: '>= 20 <= 22'
- '@nx/eslint-plugin@21.3.11':
- resolution: {integrity: sha512-BabOp+5qZx/GgCWVALiVm4wjrUOO5sqeItsAWtpocMsvYE8YRZ4+AekS/F2knTjJdcdrh51hxqv5ua3YTNFtfA==}
+ '@nx/docker@21.4.1':
+ resolution: {integrity: sha512-1wPjsxadE1Wy5QaXRX8rSWrp9fbm8STV2MYzLSkXbwlrusvYQETP/MKGsqT5fZZTrN9NrQ+HTLa/7vW5vU8fkA==}
+
+ '@nx/eslint-plugin@21.4.1':
+ resolution: {integrity: sha512-pXyu/YsJroKNL2855aKeDLG4foD+HuKUojuwv9kvuqyCdOcQaYoNQUhGuE/KhNHmW40R7rOLofoelhIhICZ45w==}
peerDependencies:
'@typescript-eslint/parser': ^6.13.2 || ^7.0.0 || ^8.0.0
eslint-config-prettier: ^10.0.0
@@ -1128,8 +1305,8 @@ packages:
eslint-config-prettier:
optional: true
- '@nx/eslint@21.3.11':
- resolution: {integrity: sha512-9jeD8QuU3OMcItjtw0QHl5cwohLeA9R+lajNJoOjS2tUGXTHWb8NOcEZBXWMcML+eV1iloIDW8/P4jV4BYqP2w==}
+ '@nx/eslint@21.4.1':
+ resolution: {integrity: sha512-2v9VVB63WXdN9dwAp6Sm1bpvTJ/x4220ywwTETRKn5clw/JkL4ZgGP4GGnJooiC7Psu7oNUNrT5D/bYtyCOLIA==}
peerDependencies:
'@zkochan/js-yaml': 0.0.7
eslint: ^8.0.0 || ^9.0.0
@@ -1137,75 +1314,75 @@ packages:
'@zkochan/js-yaml':
optional: true
- '@nx/jest@21.3.11':
- resolution: {integrity: sha512-PkdNWeoUY81zr+jtUapBdvvh26lWYIhDNyUwTjIBFajX8EAlhJpvShKHs7QObmrwOMLMXwLHKINiSCw9rueOBQ==}
+ '@nx/jest@21.4.1':
+ resolution: {integrity: sha512-kVjABt4tF1eZW3UljRhO7uj9hGP7ZHqrZp6HjloDHoWtoq4g8qhaK/pBgI+yAGZAD5d6bYstSO+IMDwLOZdTYg==}
- '@nx/js@21.3.11':
- resolution: {integrity: sha512-aN8g1TP3FMN6MFLvMrZNaoqSwAkBFH1PunKQV17w4nlPkimWICaCP2DhY5W3VoOpjQBbhQoqrRt4mVfgnEpyvA==}
+ '@nx/js@21.4.1':
+ resolution: {integrity: sha512-VK3rK5122iNIirLlOyKL7bIG+ziPM9VjXFbIw9mUAcKwvgf8mLOnR42NbFFlR2BsgwQ3in9TQRTNVSNdvg9utQ==}
peerDependencies:
verdaccio: ^6.0.5
peerDependenciesMeta:
verdaccio:
optional: true
- '@nx/node@21.3.11':
- resolution: {integrity: sha512-4B2onNmhrCaLlhwhDycMOisAuXmajAbl9gM8G6dS4Tc6z8QHXswlJG6rVP4VvR0ZZKtLeKGED2X5hpv9T1ikxw==}
+ '@nx/node@21.4.1':
+ resolution: {integrity: sha512-sVkr3g2TmqU2TvkchekLuozmM8C+h6gCRfKlxu9qOlfa17IWbkcdwG36yJ8ES2AXyGSlQWDeBXdFjs/ofiE+tQ==}
- '@nx/nx-darwin-arm64@21.3.11':
- resolution: {integrity: sha512-qXZrW6kfsfGG9n4cWugR2v8ys7P1SsbQuFahlbNSTd7g+ZxozaOnc7tyxW9XuY84KQ35HwP/QSu1E13fK5CXwQ==}
+ '@nx/nx-darwin-arm64@21.4.1':
+ resolution: {integrity: sha512-9BbkQnxGEDNX2ESbW4Zdrq1i09y6HOOgTuGbMJuy4e8F8rU/motMUqOpwmFgLHkLgPNZiOC2VXht3or/kQcpOg==}
cpu: [arm64]
os: [darwin]
- '@nx/nx-darwin-x64@21.3.11':
- resolution: {integrity: sha512-6NJEIGRITpFZYptJtr/wdnVuidAS/wONMMSwX5rgAqh5A9teI0vxZVOgG6n5f6NQyqEDvZ9ytcIvLsQWA4kJFg==}
+ '@nx/nx-darwin-x64@21.4.1':
+ resolution: {integrity: sha512-dnkmap1kc6aLV8CW1ihjsieZyaDDjlIB5QA2reTCLNSdTV446K6Fh0naLdaoG4ZkF27zJA/qBOuAaLzRHFJp3g==}
cpu: [x64]
os: [darwin]
- '@nx/nx-freebsd-x64@21.3.11':
- resolution: {integrity: sha512-9VZOM9mutzuZCUgijHXrIl3NgKt2CWuH/awLqDS8ijhLs6WfI5TYTa+mFwx90dfZZ4y/jy6XWXa2Ee3OShf7Hg==}
+ '@nx/nx-freebsd-x64@21.4.1':
+ resolution: {integrity: sha512-RpxDBGOPeDqJjpbV7F3lO/w1aIKfLyG/BM0OpJfTgFVpUIl50kMj5M1m4W9A8kvYkfOD9pDbUaWszom7d57yjg==}
cpu: [x64]
os: [freebsd]
- '@nx/nx-linux-arm-gnueabihf@21.3.11':
- resolution: {integrity: sha512-a05tAySKDEWt0TGoSnWp/l5+HL/CDJQkHfI9pXho85oDSkVRzhOInAn1EeZB/F+Q3PnJFsMHMhbuu2/nm3uYJA==}
+ '@nx/nx-linux-arm-gnueabihf@21.4.1':
+ resolution: {integrity: sha512-2OyBoag2738XWmWK3ZLBuhaYb7XmzT3f8HzomggLDJoDhwDekjgRoNbTxogAAj6dlXSeuPjO81BSlIfXQcth3w==}
cpu: [arm]
os: [linux]
- '@nx/nx-linux-arm64-gnu@21.3.11':
- resolution: {integrity: sha512-MPeivf0ptNpzQYvww6zHIqVbE5dTT2isl/WqzGyy7NgSeYDpFXmouDCQaeKxo5WytMVRCvCw/NnWTQuCK6TjnA==}
+ '@nx/nx-linux-arm64-gnu@21.4.1':
+ resolution: {integrity: sha512-2pg7/zjBDioUWJ3OY8Ixqy64eokKT5sh4iq1bk22bxOCf676aGrAu6khIxy4LBnPIdO0ZOK7KCJ7xOFP4phZqA==}
cpu: [arm64]
os: [linux]
- '@nx/nx-linux-arm64-musl@21.3.11':
- resolution: {integrity: sha512-/hJpc4VJsbxDEreXt5Ka9HJ3TBEHgIa9y/i+H9MmWOeapCdH1Edhx58Heuv9OaX7kK8Y8q0cSicv0dJCghiTjA==}
+ '@nx/nx-linux-arm64-musl@21.4.1':
+ resolution: {integrity: sha512-whNxh12au/inQtkZju1ZfXSqDS0hCh/anzVCXfLYWFstdwv61XiRmFCSHeN0gRDthlncXFdgKoT1bGG5aMYLtA==}
cpu: [arm64]
os: [linux]
- '@nx/nx-linux-x64-gnu@21.3.11':
- resolution: {integrity: sha512-pTBHuloqTxpTHa/fdKjHkFFsfW16mEcTp37HDtoQpjPfcd9nO8CYO8OClaewr9khNqCnSbCLfSoIg/alnb7BWw==}
+ '@nx/nx-linux-x64-gnu@21.4.1':
+ resolution: {integrity: sha512-UHw57rzLio0AUDXV3l+xcxT3LjuXil7SHj+H8aYmXTpXktctQU2eYGOs5ATqJ1avVQRSejJugHF0i8oLErC28A==}
cpu: [x64]
os: [linux]
- '@nx/nx-linux-x64-musl@21.3.11':
- resolution: {integrity: sha512-OhFjURB68rd6xld8t8fiNpopF2E7v+8/jfbpsku9c0gdV2UhzoxCeZwooe7qhQjCcjVO8JNOs4dAf7qs1VtpMw==}
+ '@nx/nx-linux-x64-musl@21.4.1':
+ resolution: {integrity: sha512-qqE2Gy/DwOLIyePjM7GLHp/nDLZJnxHmqTeCiTQCp/BdbmqjRkSUz5oL+Uua0SNXaTu5hjAfvjXAhSTgBwVO6g==}
cpu: [x64]
os: [linux]
- '@nx/nx-win32-arm64-msvc@21.3.11':
- resolution: {integrity: sha512-pGE2Td13oEj7aeogwCL+2fjmpabQVSduKfGOTlt4YoMlM0w0bXYSWqwiGBMKbMA50qkhnVapwwkuWF38PgCIxg==}
+ '@nx/nx-win32-arm64-msvc@21.4.1':
+ resolution: {integrity: sha512-NtEzMiRrSm2DdL4ntoDdjeze8DBrfZvLtx3Dq6+XmOhwnigR6umfWfZ6jbluZpuSQcxzQNVifqirdaQKYaYwDQ==}
cpu: [arm64]
os: [win32]
- '@nx/nx-win32-x64-msvc@21.3.11':
- resolution: {integrity: sha512-KJqLL/Zyx96hs+7pKbo/fsU7ZTFSLeZLnYQu05o6fvJJ5I1+p85t212/7vkbKKWJncyMospQdzLr3zLG3A/u8A==}
+ '@nx/nx-win32-x64-msvc@21.4.1':
+ resolution: {integrity: sha512-gpG+Y4G/mxGrfkUls6IZEuuBxRaKLMSEoVFLMb9JyyaLEDusn+HJ1m90XsOedjNLBHGMFigsd/KCCsXfFn4njg==}
cpu: [x64]
os: [win32]
- '@nx/plugin@21.3.11':
- resolution: {integrity: sha512-T/ZuNCX4P4mjpdeaDcxWlQgQqWYc8FVnoEQcXI1Qw1dGQ0fYgfoYs3Bu95mSqEdo0A4rqVVaGtnsa8AqqiT/5Q==}
+ '@nx/plugin@21.4.1':
+ resolution: {integrity: sha512-FC6ufCvvDjTmcBF2lD0JXSt3hduniw0RZSCUUOlIgSOqzuwgK7QyxhgjjrETuQPKNkJvxzlAqoB1Js9LZUkKpA==}
- '@nx/workspace@21.3.11':
- resolution: {integrity: sha512-DD2iu9Ip/faNQ5MXZk+UbbBxGofYKjzHsXKRvMNQ/OAVzP/u9z2CPXEmRKlRAEQoy1lInmyopwfEUWwK1v4x0g==}
+ '@nx/workspace@21.4.1':
+ resolution: {integrity: sha512-3e33eTb1hRx6/i416Wc0mk/TPANxjx2Kz8ecnyqFFII5CM9tX7CPCwDF4O75N9mysI6PCKJ+Hc/1q76HZR4UgA==}
'@phenomnomnominal/tsquery@5.0.1':
resolution: {integrity: sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==}
@@ -1220,8 +1397,8 @@ packages:
resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
- '@sinclair/typebox@0.34.38':
- resolution: {integrity: sha512-HpkxMmc2XmZKhvaKIZZThlHmx1L0I/V1hWK1NubtlFnr6ZqdiOpV72TKudZUNQjZNsyDBay72qFEhEvb+bcwcA==}
+ '@sinclair/typebox@0.34.41':
+ resolution: {integrity: sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==}
'@sindresorhus/is@5.6.0':
resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==}
@@ -1233,11 +1410,11 @@ packages:
'@sinonjs/fake-timers@13.0.5':
resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==}
- '@swc-node/core@1.13.3':
- resolution: {integrity: sha512-OGsvXIid2Go21kiNqeTIn79jcaX4l0G93X2rAnas4LFoDyA9wAwVK7xZdm+QsKoMn5Mus2yFLCc4OtX2dD/PWA==}
+ '@swc-node/core@1.14.1':
+ resolution: {integrity: sha512-jrt5GUaZUU6cmMS+WTJEvGvaB6j1YNKPHPzC2PUi2BjaFbtxURHj6641Az6xN7b665hNniAIdvjxWcRml5yCnw==}
engines: {node: '>= 10'}
peerDependencies:
- '@swc/core': '>= 1.4.13'
+ '@swc/core': '>= 1.13.3'
'@swc/types': '>= 0.1'
'@swc-node/register@1.9.2':
@@ -1385,6 +1562,9 @@ packages:
'@types/babel__traverse@7.28.0':
resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
+ '@types/bun@1.2.20':
+ resolution: {integrity: sha512-dX3RGzQ8+KgmMw7CsW4xT5ITBSCrSbfHc36SNT31EOUg/LA9JWq0VDdEXDRSe1InVWpd2yLUM1FUF/kEOyTzYA==}
+
'@types/estree@1.0.8':
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
@@ -1415,6 +1595,9 @@ packages:
'@types/parse-json@4.0.2':
resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
+ '@types/react@19.1.12':
+ resolution: {integrity: sha512-cMoR+FoAf/Jyq6+Df2/Z41jISvGZZ2eTlnsaJRptmZ76Caldwy1odD4xTr/gNV9VLj0AWgg/nmkevIyUfIIq5w==}
+
'@types/stack-utils@2.0.3':
resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
@@ -1427,63 +1610,63 @@ packages:
'@types/yargs@17.0.33':
resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==}
- '@typescript-eslint/eslint-plugin@8.39.0':
- resolution: {integrity: sha512-bhEz6OZeUR+O/6yx9Jk6ohX6H9JSFTaiY0v9/PuKT3oGK0rn0jNplLmyFUGV+a9gfYnVNwGDwS/UkLIuXNb2Rw==}
+ '@typescript-eslint/eslint-plugin@8.42.0':
+ resolution: {integrity: sha512-Aq2dPqsQkxHOLfb2OPv43RnIvfj05nw8v/6n3B2NABIPpHnjQnaLo9QGMTvml+tv4korl/Cjfrb/BYhoL8UUTQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': ^8.39.0
+ '@typescript-eslint/parser': ^8.42.0
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/parser@8.39.0':
- resolution: {integrity: sha512-g3WpVQHngx0aLXn6kfIYCZxM6rRJlWzEkVpqEFLT3SgEDsp9cpCbxxgwnE504q4H+ruSDh/VGS6nqZIDynP+vg==}
+ '@typescript-eslint/parser@8.42.0':
+ resolution: {integrity: sha512-r1XG74QgShUgXph1BYseJ+KZd17bKQib/yF3SR+demvytiRXrwd12Blnz5eYGm8tXaeRdd4x88MlfwldHoudGg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/project-service@8.39.0':
- resolution: {integrity: sha512-CTzJqaSq30V/Z2Og9jogzZt8lJRR5TKlAdXmWgdu4hgcC9Kww5flQ+xFvMxIBWVNdxJO7OifgdOK4PokMIWPew==}
+ '@typescript-eslint/project-service@8.42.0':
+ resolution: {integrity: sha512-vfVpLHAhbPjilrabtOSNcUDmBboQNrJUiNAGoImkZKnMjs2TIcWG33s4Ds0wY3/50aZmTMqJa6PiwkwezaAklg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/scope-manager@8.39.0':
- resolution: {integrity: sha512-8QOzff9UKxOh6npZQ/4FQu4mjdOCGSdO3p44ww0hk8Vu+IGbg0tB/H1LcTARRDzGCC8pDGbh2rissBuuoPgH8A==}
+ '@typescript-eslint/scope-manager@8.42.0':
+ resolution: {integrity: sha512-51+x9o78NBAVgQzOPd17DkNTnIzJ8T/O2dmMBLoK9qbY0Gm52XJcdJcCl18ExBMiHo6jPMErUQWUv5RLE51zJw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/tsconfig-utils@8.39.0':
- resolution: {integrity: sha512-Fd3/QjmFV2sKmvv3Mrj8r6N8CryYiCS8Wdb/6/rgOXAWGcFuc+VkQuG28uk/4kVNVZBQuuDHEDUpo/pQ32zsIQ==}
+ '@typescript-eslint/tsconfig-utils@8.42.0':
+ resolution: {integrity: sha512-kHeFUOdwAJfUmYKjR3CLgZSglGHjbNTi1H8sTYRYV2xX6eNz4RyJ2LIgsDLKf8Yi0/GL1WZAC/DgZBeBft8QAQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/type-utils@8.39.0':
- resolution: {integrity: sha512-6B3z0c1DXVT2vYA9+z9axjtc09rqKUPRmijD5m9iv8iQpHBRYRMBcgxSiKTZKm6FwWw1/cI4v6em35OsKCiN5Q==}
+ '@typescript-eslint/type-utils@8.42.0':
+ resolution: {integrity: sha512-9KChw92sbPTYVFw3JLRH1ockhyR3zqqn9lQXol3/YbI6jVxzWoGcT3AsAW0mu1MY0gYtsXnUGV/AKpkAj5tVlQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/types@8.39.0':
- resolution: {integrity: sha512-ArDdaOllnCj3yn/lzKn9s0pBQYmmyme/v1HbGIGB0GB/knFI3fWMHloC+oYTJW46tVbYnGKTMDK4ah1sC2v0Kg==}
+ '@typescript-eslint/types@8.42.0':
+ resolution: {integrity: sha512-LdtAWMiFmbRLNP7JNeY0SqEtJvGMYSzfiWBSmx+VSZ1CH+1zyl8Mmw1TT39OrtsRvIYShjJWzTDMPWZJCpwBlw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/typescript-estree@8.39.0':
- resolution: {integrity: sha512-ndWdiflRMvfIgQRpckQQLiB5qAKQ7w++V4LlCHwp62eym1HLB/kw7D9f2e8ytONls/jt89TEasgvb+VwnRprsw==}
+ '@typescript-eslint/typescript-estree@8.42.0':
+ resolution: {integrity: sha512-ku/uYtT4QXY8sl9EDJETD27o3Ewdi72hcXg1ah/kkUgBvAYHLwj2ofswFFNXS+FL5G+AGkxBtvGt8pFBHKlHsQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/utils@8.39.0':
- resolution: {integrity: sha512-4GVSvNA0Vx1Ktwvf4sFE+exxJ3QGUorQG1/A5mRfRNZtkBT2xrA/BCO2H0eALx/PnvCS6/vmYwRdDA41EoffkQ==}
+ '@typescript-eslint/utils@8.42.0':
+ resolution: {integrity: sha512-JnIzu7H3RH5BrKC4NoZqRfmjqCIS1u3hGZltDYJgkVdqAezl4L9d1ZLw+36huCujtSBSAirGINF/S4UxOcR+/g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/visitor-keys@8.39.0':
- resolution: {integrity: sha512-ldgiJ+VAhQCfIjeOgu8Kj5nSxds0ktPOSO9p4+0VDH2R2pLvQraaM5Oen2d7NxzMCm+Sn/vJT+mv2H5u6b/3fA==}
+ '@typescript-eslint/visitor-keys@8.42.0':
+ resolution: {integrity: sha512-3WbiuzoEowaEn8RSnhJBrxSwX8ULYE9CXaPepS2C2W3NSA5NNIvBaslpBSBElPq0UGr0xVJlXFWOAKIkyylydQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@ungap/structured-clone@1.3.0':
@@ -1766,8 +1949,8 @@ packages:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
- ansi-regex@6.1.0:
- resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
+ ansi-regex@6.2.0:
+ resolution: {integrity: sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==}
engines: {node: '>=12'}
ansi-styles@4.3.0:
@@ -1837,8 +2020,8 @@ packages:
b4a@1.6.7:
resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==}
- babel-jest@30.0.5:
- resolution: {integrity: sha512-mRijnKimhGDMsizTvBTWotwNpzrkHr+VvZUQBof2AufXKB8NXrL1W69TG20EvOz7aevx6FTJIaBuBkYxS8zolg==}
+ babel-jest@30.1.2:
+ resolution: {integrity: sha512-IQCus1rt9kaSh7PQxLYRY5NmkNrNlU2TpabzwV7T2jljnpdHOcmnYYv8QmE04Li4S3a2Lj8/yXyET5pBarPr6g==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies:
'@babel/core': ^7.11.0
@@ -1848,8 +2031,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- babel-plugin-istanbul@7.0.0:
- resolution: {integrity: sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw==}
+ babel-plugin-istanbul@7.0.1:
+ resolution: {integrity: sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==}
engines: {node: '>=12'}
babel-plugin-jest-hoist@30.0.1:
@@ -1898,8 +2081,8 @@ packages:
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
- bare-events@2.6.0:
- resolution: {integrity: sha512-EKZ5BTXYExaNqi3I3f9RtEsaI/xBSGjE0XZCZilPzFAV/goswFHuPd9jEZlPIZ/iNZJwDSao9qRiScySz7MbQg==}
+ bare-events@2.6.1:
+ resolution: {integrity: sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==}
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
@@ -1938,8 +2121,8 @@ packages:
browserify-zlib@0.1.4:
resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==}
- browserslist@4.25.1:
- resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==}
+ browserslist@4.25.4:
+ resolution: {integrity: sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
@@ -1965,6 +2148,11 @@ packages:
buffer@6.0.3:
resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
+ bun-types@1.2.20:
+ resolution: {integrity: sha512-pxTnQYOrKvdOwyiyd/7sMt9yFOenN004Y6O4lCcCUoKVej48FS5cvTw9geRaEcB9TsDZaJKAxPTVvi8tFsVuXA==}
+ peerDependencies:
+ '@types/react': ^19
+
bytes@3.1.2:
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
engines: {node: '>= 0.8'}
@@ -1997,8 +2185,8 @@ packages:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines: {node: '>=10'}
- caniuse-lite@1.0.30001731:
- resolution: {integrity: sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==}
+ caniuse-lite@1.0.30001741:
+ resolution: {integrity: sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==}
caseless@0.12.0:
resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==}
@@ -2051,6 +2239,14 @@ packages:
resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
engines: {node: '>=0.8'}
+ cmrd@0.0.1:
+ resolution: {integrity: sha512-JMLzOPbeKpvfuJ7NDwJ1WQqf1QG/91goexLWXK54QMWoUyvDPf5fAgqUGiTBWneuLc3RHO1vBiJW5UDgINBWjA==}
+ peerDependencies:
+ typescript: '>=4.5.0'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
co@4.6.0:
resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
@@ -2116,8 +2312,8 @@ packages:
resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==}
engines: {node: '>= 0.6'}
- core-js-compat@3.45.0:
- resolution: {integrity: sha512-gRoVMBawZg0OnxaVv3zpqLLxaHmsubEGyTnqdpI/CEBvX4JadI1dMSHxagThprYRtSVbuQxvi6iUatdPxohHpA==}
+ core-js-compat@3.45.1:
+ resolution: {integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==}
core-util-is@1.0.2:
resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==}
@@ -2144,6 +2340,9 @@ packages:
resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==}
engines: {node: '>=18'}
+ csstype@3.1.3:
+ resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+
cz-git@1.12.0:
resolution: {integrity: sha512-LaZ+8whPPUOo6Y0Zy4nIbf6JOleV3ejp41sT6N4RPKiKKA+ICWf4ueeIlxIO8b6JtdlDxRzHH/EcRji07nDxcg==}
engines: {node: '>=v12.20.0'}
@@ -2206,8 +2405,8 @@ packages:
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
engines: {node: '>=10'}
- dedent@1.6.0:
- resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==}
+ dedent@1.7.0:
+ resolution: {integrity: sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==}
peerDependencies:
babel-plugin-macros: ^3.1.0
peerDependenciesMeta:
@@ -2293,15 +2492,15 @@ packages:
engines: {node: '>=0.10.0'}
hasBin: true
- electron-to-chromium@1.5.197:
- resolution: {integrity: sha512-m1xWB3g7vJ6asIFz+2pBUbq3uGmfmln1M9SSvBe4QIFWYrRHylP73zL/3nMjDmwz8V+1xAXQDfBd6+HPW0WvDQ==}
+ electron-to-chromium@1.5.214:
+ resolution: {integrity: sha512-TpvUNdha+X3ybfU78NoQatKvQEm1oq3lf2QbnmCEdw+Bd9RuIAY+hJTvq1avzHM0f7EJfnH3vbCnbzKzisc/9Q==}
emittery@0.13.1:
resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
engines: {node: '>=12'}
- emoji-regex@10.4.0:
- resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==}
+ emoji-regex@10.5.0:
+ resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==}
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@@ -2352,6 +2551,11 @@ packages:
resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
engines: {node: '>= 0.4'}
+ esbuild@0.19.12:
+ resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==}
+ engines: {node: '>=12'}
+ hasBin: true
+
escalade@3.2.0:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
engines: {node: '>=6'}
@@ -2389,8 +2593,8 @@ packages:
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- eslint@9.32.0:
- resolution: {integrity: sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==}
+ eslint@9.35.0:
+ resolution: {integrity: sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
peerDependencies:
@@ -2448,8 +2652,8 @@ packages:
resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==}
engines: {node: '>= 0.8.0'}
- expect@30.0.5:
- resolution: {integrity: sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ==}
+ expect@30.1.2:
+ resolution: {integrity: sha512-xvHszRavo28ejws8FpemjhwswGj4w/BetHIL8cU49u4sGyXDw2+p3YbeDbj6xzlxi6kWTjIRSTJ+9sNXPnF0Zg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
express-rate-limit@5.5.1:
@@ -2494,8 +2698,8 @@ packages:
resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==}
engines: {node: '>=6'}
- fast-uri@3.0.6:
- resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
+ fast-uri@3.1.0:
+ resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==}
fastq@1.19.1:
resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
@@ -2503,8 +2707,9 @@ packages:
fb-watchman@2.0.2:
resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
- fdir@6.4.6:
- resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==}
+ fdir@6.5.0:
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
+ engines: {node: '>=12.0.0'}
peerDependencies:
picomatch: ^3 || ^4
peerDependenciesMeta:
@@ -2625,8 +2830,8 @@ packages:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
- get-east-asian-width@1.3.0:
- resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==}
+ get-east-asian-width@1.3.1:
+ resolution: {integrity: sha512-R1QfovbPsKmosqTnPoRFiJ7CF9MLRgb53ChvMZm+r4p76/+8yKDy17qLL2PKInORy2RkZZekuK0efYgmzTkXyQ==}
engines: {node: '>=18'}
get-intrinsic@1.3.0:
@@ -2928,8 +3133,8 @@ packages:
resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==}
engines: {node: '>=10'}
- istanbul-reports@3.1.7:
- resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
+ istanbul-reports@3.2.0:
+ resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==}
engines: {node: '>=8'}
jackspeak@3.4.3:
@@ -2944,12 +3149,12 @@ packages:
resolution: {integrity: sha512-bGl2Ntdx0eAwXuGpdLdVYVr5YQHnSZlQ0y9HVDu565lCUAe9sj6JOtBbMmBBikGIegne9piDDIOeiLVoqTkz4A==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-circus@30.0.5:
- resolution: {integrity: sha512-h/sjXEs4GS+NFFfqBDYT7y5Msfxh04EwWLhQi0F8kuWpe+J/7tICSlswU8qvBqumR3kFgHbfu7vU6qruWWBPug==}
+ jest-circus@30.1.3:
+ resolution: {integrity: sha512-Yf3dnhRON2GJT4RYzM89t/EXIWNxKTpWTL9BfF3+geFetWP4XSvJjiU1vrWplOiUkmq8cHLiwuhz+XuUp9DscA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-cli@30.0.5:
- resolution: {integrity: sha512-Sa45PGMkBZzF94HMrlX4kUyPOwUpdZasaliKN3mifvDmkhLYqLLg8HQTzn6gq7vJGahFYMQjXgyJWfYImKZzOw==}
+ jest-cli@30.1.3:
+ resolution: {integrity: sha512-G8E2Ol3OKch1DEeIBl41NP7OiC6LBhfg25Btv+idcusmoUSpqUkbrneMqbW9lVpI/rCKb/uETidb7DNteheuAQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
hasBin: true
peerDependencies:
@@ -2958,8 +3163,8 @@ packages:
node-notifier:
optional: true
- jest-config@30.0.5:
- resolution: {integrity: sha512-aIVh+JNOOpzUgzUnPn5FLtyVnqc3TQHVMupYtyeURSb//iLColiMIR8TxCIDKyx9ZgjKnXGucuW68hCxgbrwmA==}
+ jest-config@30.1.3:
+ resolution: {integrity: sha512-M/f7gqdQEPgZNA181Myz+GXCe8jXcJsGjCMXUzRj22FIXsZOyHNte84e0exntOvdPaeh9tA0w+B8qlP2fAezfw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies:
'@types/node': '*'
@@ -2973,20 +3178,20 @@ packages:
ts-node:
optional: true
- jest-diff@30.0.5:
- resolution: {integrity: sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A==}
+ jest-diff@30.1.2:
+ resolution: {integrity: sha512-4+prq+9J61mOVXCa4Qp8ZjavdxzrWQXrI80GNxP8f4tkI2syPuPrJgdRPZRrfUTRvIoUwcmNLbqEJy9W800+NQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-docblock@30.0.1:
resolution: {integrity: sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-each@30.0.5:
- resolution: {integrity: sha512-dKjRsx1uZ96TVyejD3/aAWcNKy6ajMaN531CwWIsrazIqIoXI9TnnpPlkrEYku/8rkS3dh2rbH+kMOyiEIv0xQ==}
+ jest-each@30.1.0:
+ resolution: {integrity: sha512-A+9FKzxPluqogNahpCv04UJvcZ9B3HamqpDNWNKDjtxVRYB8xbZLFuCr8JAJFpNp83CA0anGQFlpQna9Me+/tQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-environment-jsdom@30.0.5:
- resolution: {integrity: sha512-BmnDEoAH+jEjkPrvE9DTKS2r3jYSJWlN/r46h0/DBUxKrkgt2jAZ5Nj4wXLAcV1KWkRpcFqA5zri9SWzJZ1cCg==}
+ jest-environment-jsdom@30.1.2:
+ resolution: {integrity: sha512-LXsfAh5+mDTuXDONGl1ZLYxtJEaS06GOoxJb2arcJTjIfh1adYg8zLD8f6P0df8VmjvCaMrLmc1PgHUI/YUTbg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies:
canvas: ^3.0.0
@@ -2994,24 +3199,24 @@ packages:
canvas:
optional: true
- jest-environment-node@30.0.5:
- resolution: {integrity: sha512-ppYizXdLMSvciGsRsMEnv/5EFpvOdXBaXRBzFUDPWrsfmog4kYrOGWXarLllz6AXan6ZAA/kYokgDWuos1IKDA==}
+ jest-environment-node@30.1.2:
+ resolution: {integrity: sha512-w8qBiXtqGWJ9xpJIA98M0EIoq079GOQRQUyse5qg1plShUCQ0Ek1VTTcczqKrn3f24TFAgFtT+4q3aOXvjbsuA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-haste-map@30.0.5:
- resolution: {integrity: sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg==}
+ jest-haste-map@30.1.0:
+ resolution: {integrity: sha512-JLeM84kNjpRkggcGpQLsV7B8W4LNUWz7oDNVnY1Vjj22b5/fAb3kk3htiD+4Na8bmJmjJR7rBtS2Rmq/NEcADg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-leak-detector@30.0.5:
- resolution: {integrity: sha512-3Uxr5uP8jmHMcsOtYMRB/zf1gXN3yUIc+iPorhNETG54gErFIiUhLvyY/OggYpSMOEYqsmRxmuU4ZOoX5jpRFg==}
+ jest-leak-detector@30.1.0:
+ resolution: {integrity: sha512-AoFvJzwxK+4KohH60vRuHaqXfWmeBATFZpzpmzNmYTtmRMiyGPVhkXpBqxUQunw+dQB48bDf4NpUs6ivVbRv1g==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-matcher-utils@30.0.5:
- resolution: {integrity: sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ==}
+ jest-matcher-utils@30.1.2:
+ resolution: {integrity: sha512-7ai16hy4rSbDjvPTuUhuV8nyPBd6EX34HkBsBcBX2lENCuAQ0qKCPb/+lt8OSWUa9WWmGYLy41PrEzkwRwoGZQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-message-util@30.0.5:
- resolution: {integrity: sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA==}
+ jest-message-util@30.1.0:
+ resolution: {integrity: sha512-HizKDGG98cYkWmaLUHChq4iN+oCENohQLb7Z5guBPumYs+/etonmNFlg1Ps6yN9LTPyZn+M+b/9BbnHx3WTMDg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-mock@30.0.5:
@@ -3031,44 +3236,44 @@ packages:
resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-resolve-dependencies@30.0.5:
- resolution: {integrity: sha512-/xMvBR4MpwkrHW4ikZIWRttBBRZgWK4d6xt3xW1iRDSKt4tXzYkMkyPfBnSCgv96cpkrctfXs6gexeqMYqdEpw==}
+ jest-resolve-dependencies@30.1.3:
+ resolution: {integrity: sha512-DNfq3WGmuRyHRHfEet+Zm3QOmVFtIarUOQHHryKPc0YL9ROfgWZxl4+aZq/VAzok2SS3gZdniP+dO4zgo59hBg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-resolve@30.0.5:
- resolution: {integrity: sha512-d+DjBQ1tIhdz91B79mywH5yYu76bZuE96sSbxj8MkjWVx5WNdt1deEFRONVL4UkKLSrAbMkdhb24XN691yDRHg==}
+ jest-resolve@30.1.3:
+ resolution: {integrity: sha512-DI4PtTqzw9GwELFS41sdMK32Ajp3XZQ8iygeDMWkxlRhm7uUTOFSZFVZABFuxr0jvspn8MAYy54NxZCsuCTSOw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-runner@30.0.5:
- resolution: {integrity: sha512-JcCOucZmgp+YuGgLAXHNy7ualBx4wYSgJVWrYMRBnb79j9PD0Jxh0EHvR5Cx/r0Ce+ZBC4hCdz2AzFFLl9hCiw==}
+ jest-runner@30.1.3:
+ resolution: {integrity: sha512-dd1ORcxQraW44Uz029TtXj85W11yvLpDuIzNOlofrC8GN+SgDlgY4BvyxJiVeuabA1t6idjNbX59jLd2oplOGQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-runtime@30.0.5:
- resolution: {integrity: sha512-7oySNDkqpe4xpX5PPiJTe5vEa+Ak/NnNz2bGYZrA1ftG3RL3EFlHaUkA1Cjx+R8IhK0Vg43RML5mJedGTPNz3A==}
+ jest-runtime@30.1.3:
+ resolution: {integrity: sha512-WS8xgjuNSphdIGnleQcJ3AKE4tBKOVP+tKhCD0u+Tb2sBmsU8DxfbBpZX7//+XOz81zVs4eFpJQwBNji2Y07DA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-snapshot@30.0.5:
- resolution: {integrity: sha512-T00dWU/Ek3LqTp4+DcW6PraVxjk28WY5Ua/s+3zUKSERZSNyxTqhDXCWKG5p2HAJ+crVQ3WJ2P9YVHpj1tkW+g==}
+ jest-snapshot@30.1.2:
+ resolution: {integrity: sha512-4q4+6+1c8B6Cy5pGgFvjDy/Pa6VYRiGu0yQafKkJ9u6wQx4G5PqI2QR6nxTl43yy7IWsINwz6oT4o6tD12a8Dg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-util@30.0.5:
resolution: {integrity: sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-validate@30.0.5:
- resolution: {integrity: sha512-ouTm6VFHaS2boyl+k4u+Qip4TSH7Uld5tyD8psQ8abGgt2uYYB8VwVfAHWHjHc0NWmGGbwO5h0sCPOGHHevefw==}
+ jest-validate@30.1.0:
+ resolution: {integrity: sha512-7P3ZlCFW/vhfQ8pE7zW6Oi4EzvuB4sgR72Q1INfW9m0FGo0GADYlPwIkf4CyPq7wq85g+kPMtPOHNAdWHeBOaA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-watcher@30.0.5:
- resolution: {integrity: sha512-z9slj/0vOwBDBjN3L4z4ZYaA+pG56d6p3kTUhFRYGvXbXMWhXmb/FIxREZCD06DYUwDKKnj2T80+Pb71CQ0KEg==}
+ jest-watcher@30.1.3:
+ resolution: {integrity: sha512-6jQUZCP1BTL2gvG9E4YF06Ytq4yMb4If6YoQGRR6PpjtqOXSP3sKe2kqwB6SQ+H9DezOfZaSLnmka1NtGm3fCQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-worker@30.0.5:
- resolution: {integrity: sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ==}
+ jest-worker@30.1.0:
+ resolution: {integrity: sha512-uvWcSjlwAAgIu133Tt77A05H7RIk3Ho8tZL50bQM2AkvLdluw9NG48lRCl3Dt+MOH719n/0nnb5YxUwcuJiKRA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest@30.0.5:
- resolution: {integrity: sha512-y2mfcJywuTUkvLm2Lp1/pFX8kTgMO5yyQGq/Sk/n2mN7XWYp4JsCZ/QXW34M8YScgk8bPZlREH04f6blPnoHnQ==}
+ jest@30.1.3:
+ resolution: {integrity: sha512-Ry+p2+NLk6u8Agh5yVqELfUJvRfV51hhVBRIB5yZPY7mU0DGBmOuFG5GebZbMbm86cdQNK0fhJuDX8/1YorISQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
hasBin: true
peerDependencies:
@@ -3143,6 +3348,9 @@ packages:
jsonc-parser@3.2.0:
resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
+ jsonc-parser@3.3.1:
+ resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==}
+
jsonparse@1.3.1:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
@@ -3293,6 +3501,10 @@ packages:
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
engines: {node: '>= 0.6'}
+ mime-db@1.54.0:
+ resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==}
+ engines: {node: '>= 0.6'}
+
mime-types@2.1.35:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
engines: {node: '>= 0.6'}
@@ -3372,8 +3584,8 @@ packages:
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
- napi-postinstall@0.3.2:
- resolution: {integrity: sha512-tWVJxJHmBWLy69PvO96TZMZDrzmw5KeiZBz3RHmiM2XZ9grBJ2WgMAFVVg25nqp3ZjTFUs2Ftw1JhscL3Teliw==}
+ napi-postinstall@0.3.3:
+ resolution: {integrity: sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
hasBin: true
@@ -3406,8 +3618,8 @@ packages:
node-machine-id@1.1.12:
resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==}
- node-releases@2.0.19:
- resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+ node-releases@2.0.20:
+ resolution: {integrity: sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA==}
normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
@@ -3425,11 +3637,11 @@ packages:
resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
engines: {node: '>=8'}
- nwsapi@2.2.21:
- resolution: {integrity: sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==}
+ nwsapi@2.2.22:
+ resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==}
- nx@21.3.11:
- resolution: {integrity: sha512-nj2snZ3mHZnbHcoB3NUdxbch9L1sQKV1XccLs1B79fmI/N5oOgWgctm/bWoZH2UH5b4A8ZLAMTsC6YnSJGbcaw==}
+ nx@21.4.1:
+ resolution: {integrity: sha512-nD8NjJGYk5wcqiATzlsLauvyrSHV2S2YmM2HBIKqTTwVP2sey07MF3wDB9U2BwxIjboahiITQ6pfqFgB79TF2A==}
hasBin: true
peerDependencies:
'@swc-node/register': ^1.8.0
@@ -4034,8 +4246,8 @@ packages:
resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==}
hasBin: true
- tmp@0.2.4:
- resolution: {integrity: sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==}
+ tmp@0.2.5:
+ resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==}
engines: {node: '>=14.14'}
tmpl@1.0.5:
@@ -4049,8 +4261,8 @@ packages:
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
engines: {node: '>=0.6'}
- token-types@6.0.4:
- resolution: {integrity: sha512-MD9MjpVNhVyH4fyd5rKphjvt/1qj+PtQUz65aFqAZA6XniWAuSFRjLk3e2VALEFlh9OwBpXUN7rfeqSnT/Fmkw==}
+ token-types@6.1.1:
+ resolution: {integrity: sha512-kh9LVIWH5CnL63Ipf0jhlBIy0UsrMj/NJDfpsy1SqOXlLKEVyXXYrnFxFT1yOOYVGBSApeVnjPw/sBz5BfEjAQ==}
engines: {node: '>=14.16'}
tough-cookie@5.1.2:
@@ -4151,8 +4363,8 @@ packages:
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
engines: {node: '>= 0.6'}
- typescript-eslint@8.39.0:
- resolution: {integrity: sha512-lH8FvtdtzcHJCkMOKnN73LIn6SLTpoojgJqDAxPm1jCR14eWSGPX8ul/gggBdPMk/d5+u9V854vTYQ8T5jF/1Q==}
+ typescript-eslint@8.42.0:
+ resolution: {integrity: sha512-ozR/rQn+aQXQxh1YgbCzQWDFrsi9mcg+1PM3l/z5o1+20P7suOIaNg515bpr/OYt6FObz/NHcBstydDLHWeEKg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -4163,13 +4375,18 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
+ typescript@5.9.2:
+ resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
uglify-js@3.19.3:
resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
engines: {node: '>=0.8.0'}
hasBin: true
- uint8array-extras@1.4.0:
- resolution: {integrity: sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==}
+ uint8array-extras@1.5.0:
+ resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==}
engines: {node: '>=18'}
unbzip2-stream@1.4.3:
@@ -4389,15 +4606,10 @@ packages:
snapshots:
- '@ampproject/remapping@2.3.0':
- dependencies:
- '@jridgewell/gen-mapping': 0.3.12
- '@jridgewell/trace-mapping': 0.3.29
-
'@asamuzakjp/css-color@3.2.0':
dependencies:
'@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
- '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
+ '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
lru-cache: 10.4.3
@@ -4408,20 +4620,20 @@ snapshots:
js-tokens: 4.0.0
picocolors: 1.1.1
- '@babel/compat-data@7.28.0': {}
+ '@babel/compat-data@7.28.4': {}
- '@babel/core@7.28.0':
+ '@babel/core@7.28.4':
dependencies:
- '@ampproject/remapping': 2.3.0
'@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.0
+ '@babel/generator': 7.28.3
'@babel/helper-compilation-targets': 7.27.2
- '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
- '@babel/helpers': 7.28.2
- '@babel/parser': 7.28.0
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
+ '@babel/helpers': 7.28.4
+ '@babel/parser': 7.28.4
'@babel/template': 7.27.2
- '@babel/traverse': 7.28.0
- '@babel/types': 7.28.2
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
+ '@jridgewell/remapping': 2.3.5
convert-source-map: 2.0.0
debug: 4.4.1
gensync: 1.0.0-beta.2
@@ -4430,49 +4642,49 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/generator@7.28.0':
+ '@babel/generator@7.28.3':
dependencies:
- '@babel/parser': 7.28.0
- '@babel/types': 7.28.2
- '@jridgewell/gen-mapping': 0.3.12
- '@jridgewell/trace-mapping': 0.3.29
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.30
jsesc: 3.1.0
'@babel/helper-annotate-as-pure@7.27.3':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/helper-compilation-targets@7.27.2':
dependencies:
- '@babel/compat-data': 7.28.0
+ '@babel/compat-data': 7.28.4
'@babel/helper-validator-option': 7.27.1
- browserslist: 4.25.1
+ browserslist: 4.25.4
lru-cache: 5.1.1
semver: 6.3.1
- '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.0)':
+ '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-annotate-as-pure': 7.27.3
'@babel/helper-member-expression-to-functions': 7.27.1
'@babel/helper-optimise-call-expression': 7.27.1
- '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4)
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
- '@babel/traverse': 7.28.0
+ '@babel/traverse': 7.28.4
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.0)':
+ '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-annotate-as-pure': 7.27.3
regexpu-core: 6.2.0
semver: 6.3.1
- '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.0)':
+ '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-compilation-targets': 7.27.2
'@babel/helper-plugin-utils': 7.27.1
debug: 4.4.1
@@ -4485,55 +4697,55 @@ snapshots:
'@babel/helper-member-expression-to-functions@7.27.1':
dependencies:
- '@babel/traverse': 7.28.0
- '@babel/types': 7.28.2
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
'@babel/helper-module-imports@7.27.1':
dependencies:
- '@babel/traverse': 7.28.0
- '@babel/types': 7.28.2
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
- '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)':
+ '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-module-imports': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
- '@babel/traverse': 7.28.0
+ '@babel/traverse': 7.28.4
transitivePeerDependencies:
- supports-color
'@babel/helper-optimise-call-expression@7.27.1':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/helper-plugin-utils@7.27.1': {}
- '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.0)':
+ '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-wrap-function': 7.27.1
- '@babel/traverse': 7.28.0
+ '@babel/helper-wrap-function': 7.28.3
+ '@babel/traverse': 7.28.4
transitivePeerDependencies:
- supports-color
- '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.0)':
+ '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-member-expression-to-functions': 7.27.1
'@babel/helper-optimise-call-expression': 7.27.1
- '@babel/traverse': 7.28.0
+ '@babel/traverse': 7.28.4
transitivePeerDependencies:
- supports-color
'@babel/helper-skip-transparent-expression-wrappers@7.27.1':
dependencies:
- '@babel/traverse': 7.28.0
- '@babel/types': 7.28.2
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
@@ -4543,663 +4755,665 @@ snapshots:
'@babel/helper-validator-option@7.27.1': {}
- '@babel/helper-wrap-function@7.27.1':
+ '@babel/helper-wrap-function@7.28.3':
dependencies:
'@babel/template': 7.27.2
- '@babel/traverse': 7.28.0
- '@babel/types': 7.28.2
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
- '@babel/helpers@7.28.2':
+ '@babel/helpers@7.28.4':
dependencies:
'@babel/template': 7.27.2
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
- '@babel/parser@7.28.0':
+ '@babel/parser@7.28.4':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
- '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/traverse': 7.28.0
+ '@babel/traverse': 7.28.4
transitivePeerDependencies:
- supports-color
- '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
- '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.4)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/traverse': 7.28.0
+ '@babel/traverse': 7.28.4
transitivePeerDependencies:
- supports-color
- '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.28.0)':
+ '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.4
+ '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.4)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0)':
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
- '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.4
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.0)':
+ '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0)
- '@babel/traverse': 7.28.0
+ '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.4)
+ '@babel/traverse': 7.28.4
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-module-imports': 7.27.1
'@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.4)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-block-scoping@7.28.0(@babel/core@7.28.0)':
+ '@babel/plugin-transform-block-scoping@7.28.4(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.4
+ '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.4
+ '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-classes@7.28.0(@babel/core@7.28.0)':
+ '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-annotate-as-pure': 7.27.3
'@babel/helper-compilation-targets': 7.27.2
'@babel/helper-globals': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0)
- '@babel/traverse': 7.28.0
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4)
+ '@babel/traverse': 7.28.4
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/template': 7.27.2
- '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.28.0)':
+ '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/traverse': 7.28.0
+ '@babel/traverse': 7.28.4
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.4
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.4
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.0)':
+ '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0)
+ '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-compilation-targets': 7.27.2
'@babel/helper-plugin-utils': 7.27.1
- '@babel/traverse': 7.28.0
+ '@babel/traverse': 7.28.4
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
+ '@babel/core': 7.28.4
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
+ '@babel/core': 7.28.4
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
+ '@babel/core': 7.28.4
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
- '@babel/traverse': 7.28.0
+ '@babel/traverse': 7.28.4
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
+ '@babel/core': 7.28.4
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.4
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-object-rest-spread@7.28.0(@babel/core@7.28.0)':
+ '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-compilation-targets': 7.27.2
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0)
- '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.0)
- '@babel/traverse': 7.28.0
+ '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4)
+ '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.4)
+ '@babel/traverse': 7.28.4
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.0)':
+ '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.4
+ '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-regenerator@7.28.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.4
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-runtime@7.28.0(@babel/core@7.28.0)':
+ '@babel/plugin-transform-runtime@7.28.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-module-imports': 7.27.1
'@babel/helper-plugin-utils': 7.27.1
- babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.0)
- babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.0)
- babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.0)
+ babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.4)
+ babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.4)
+ babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.4)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.0)':
+ '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
- '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.4
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.4
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.4
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/preset-env@7.28.0(@babel/core@7.28.0)':
+ '@babel/preset-env@7.28.3(@babel/core@7.28.4)':
dependencies:
- '@babel/compat-data': 7.28.0
- '@babel/core': 7.28.0
+ '@babel/compat-data': 7.28.4
+ '@babel/core': 7.28.4
'@babel/helper-compilation-targets': 7.27.2
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-validator-option': 7.27.1
- '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0)
- '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.0)
- '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.0)
- '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-block-scoping': 7.28.0(@babel/core@7.28.0)
- '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-classes': 7.28.0(@babel/core@7.28.0)
- '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0)
- '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.0)
- '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-object-rest-spread': 7.28.0(@babel/core@7.28.0)
- '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.0)
- '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-regenerator': 7.28.1(@babel/core@7.28.0)
- '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.0)
- '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.0)
- babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.0)
- babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.0)
- babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.0)
- core-js-compat: 3.45.0
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.4)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.4)
+ '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.4)
+ '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.4)
+ '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-block-scoping': 7.28.4(@babel/core@7.28.4)
+ '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.4)
+ '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.4)
+ '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4)
+ '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.4)
+ '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.4)
+ '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.4)
+ '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.4)
+ '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.4)
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.4)
+ babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.4)
+ babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.4)
+ babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.4)
+ core-js-compat: 3.45.1
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.0)':
+ '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
esutils: 2.0.3
- '@babel/preset-typescript@7.27.1(@babel/core@7.28.0)':
+ '@babel/preset-typescript@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-validator-option': 7.27.1
- '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.0)
+ '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4)
transitivePeerDependencies:
- supports-color
- '@babel/runtime@7.28.2': {}
+ '@babel/runtime@7.28.4': {}
'@babel/template@7.27.2':
dependencies:
'@babel/code-frame': 7.27.1
- '@babel/parser': 7.28.0
- '@babel/types': 7.28.2
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
- '@babel/traverse@7.28.0':
+ '@babel/traverse@7.28.4':
dependencies:
'@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.0
+ '@babel/generator': 7.28.3
'@babel/helper-globals': 7.28.0
- '@babel/parser': 7.28.0
+ '@babel/parser': 7.28.4
'@babel/template': 7.27.2
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
debug: 4.4.1
transitivePeerDependencies:
- supports-color
- '@babel/types@7.28.2':
+ '@babel/types@7.28.4':
dependencies:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
'@bcoe/v8-coverage@0.2.3': {}
+ '@borewit/text-codec@0.1.1': {}
+
'@cspotcode/source-map-support@0.8.1':
dependencies:
'@jridgewell/trace-mapping': 0.3.9
- '@csstools/color-helpers@5.0.2': {}
+ '@csstools/color-helpers@5.1.0': {}
'@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)':
dependencies:
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
- '@csstools/css-color-parser@3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)':
+ '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)':
dependencies:
- '@csstools/color-helpers': 5.0.2
+ '@csstools/color-helpers': 5.1.0
'@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
@@ -5231,22 +5445,91 @@ snapshots:
tunnel-agent: 0.6.0
uuid: 8.3.2
- '@emnapi/core@1.4.5':
+ '@emnapi/core@1.5.0':
dependencies:
- '@emnapi/wasi-threads': 1.0.4
+ '@emnapi/wasi-threads': 1.1.0
tslib: 2.8.1
- '@emnapi/runtime@1.4.5':
+ '@emnapi/runtime@1.5.0':
dependencies:
tslib: 2.8.1
- '@emnapi/wasi-threads@1.0.4':
+ '@emnapi/wasi-threads@1.1.0':
dependencies:
tslib: 2.8.1
- '@eslint-community/eslint-utils@4.7.0(eslint@9.32.0)':
+ '@esbuild/aix-ppc64@0.19.12':
+ optional: true
+
+ '@esbuild/android-arm64@0.19.12':
+ optional: true
+
+ '@esbuild/android-arm@0.19.12':
+ optional: true
+
+ '@esbuild/android-x64@0.19.12':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.19.12':
+ optional: true
+
+ '@esbuild/darwin-x64@0.19.12':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.19.12':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.19.12':
+ optional: true
+
+ '@esbuild/linux-arm64@0.19.12':
+ optional: true
+
+ '@esbuild/linux-arm@0.19.12':
+ optional: true
+
+ '@esbuild/linux-ia32@0.19.12':
+ optional: true
+
+ '@esbuild/linux-loong64@0.19.12':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.19.12':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.19.12':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.19.12':
+ optional: true
+
+ '@esbuild/linux-s390x@0.19.12':
+ optional: true
+
+ '@esbuild/linux-x64@0.19.12':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.19.12':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.19.12':
+ optional: true
+
+ '@esbuild/sunos-x64@0.19.12':
+ optional: true
+
+ '@esbuild/win32-arm64@0.19.12':
+ optional: true
+
+ '@esbuild/win32-ia32@0.19.12':
+ optional: true
+
+ '@esbuild/win32-x64@0.19.12':
+ optional: true
+
+ '@eslint-community/eslint-utils@4.8.0(eslint@9.35.0)':
dependencies:
- eslint: 9.32.0
+ eslint: 9.35.0
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.1': {}
@@ -5259,9 +5542,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@eslint/config-helpers@0.3.0': {}
+ '@eslint/config-helpers@0.3.1': {}
- '@eslint/core@0.15.1':
+ '@eslint/core@0.15.2':
dependencies:
'@types/json-schema': 7.0.15
@@ -5279,26 +5562,24 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@eslint/js@9.32.0': {}
+ '@eslint/js@9.35.0': {}
'@eslint/object-schema@2.1.6': {}
- '@eslint/plugin-kit@0.3.4':
+ '@eslint/plugin-kit@0.3.5':
dependencies:
- '@eslint/core': 0.15.1
+ '@eslint/core': 0.15.2
levn: 0.4.1
'@humanfs/core@0.19.1': {}
- '@humanfs/node@0.16.6':
+ '@humanfs/node@0.16.7':
dependencies:
'@humanfs/core': 0.19.1
- '@humanwhocodes/retry': 0.3.1
+ '@humanwhocodes/retry': 0.4.3
'@humanwhocodes/module-importer@1.0.1': {}
- '@humanwhocodes/retry@0.3.1': {}
-
'@humanwhocodes/retry@0.4.3': {}
'@isaacs/cliui@8.0.2':
@@ -5320,22 +5601,22 @@ snapshots:
'@istanbuljs/schema@0.1.3': {}
- '@jest/console@30.0.5':
+ '@jest/console@30.1.2':
dependencies:
'@jest/types': 30.0.5
'@types/node': 18.16.9
chalk: 4.1.2
- jest-message-util: 30.0.5
+ jest-message-util: 30.1.0
jest-util: 30.0.5
slash: 3.0.0
- '@jest/core@30.0.5(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))':
+ '@jest/core@30.1.3(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))':
dependencies:
- '@jest/console': 30.0.5
+ '@jest/console': 30.1.2
'@jest/pattern': 30.0.1
- '@jest/reporters': 30.0.5
- '@jest/test-result': 30.0.5
- '@jest/transform': 30.0.5
+ '@jest/reporters': 30.1.3
+ '@jest/test-result': 30.1.3
+ '@jest/transform': 30.1.2
'@jest/types': 30.0.5
'@types/node': 18.16.9
ansi-escapes: 4.3.2
@@ -5344,18 +5625,18 @@ snapshots:
exit-x: 0.2.2
graceful-fs: 4.2.11
jest-changed-files: 30.0.5
- jest-config: 30.0.5(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))
- jest-haste-map: 30.0.5
- jest-message-util: 30.0.5
+ jest-config: 30.1.3(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))
+ jest-haste-map: 30.1.0
+ jest-message-util: 30.1.0
jest-regex-util: 30.0.1
- jest-resolve: 30.0.5
- jest-resolve-dependencies: 30.0.5
- jest-runner: 30.0.5
- jest-runtime: 30.0.5
- jest-snapshot: 30.0.5
+ jest-resolve: 30.1.3
+ jest-resolve-dependencies: 30.1.3
+ jest-runner: 30.1.3
+ jest-runtime: 30.1.3
+ jest-snapshot: 30.1.2
jest-util: 30.0.5
- jest-validate: 30.0.5
- jest-watcher: 30.0.5
+ jest-validate: 30.1.0
+ jest-watcher: 30.1.3
micromatch: 4.0.8
pretty-format: 30.0.5
slash: 3.0.0
@@ -5371,10 +5652,10 @@ snapshots:
'@jest/diff-sequences@30.0.1': {}
- '@jest/environment-jsdom-abstract@30.0.5(jsdom@26.1.0)':
+ '@jest/environment-jsdom-abstract@30.1.2(jsdom@26.1.0)':
dependencies:
- '@jest/environment': 30.0.5
- '@jest/fake-timers': 30.0.5
+ '@jest/environment': 30.1.2
+ '@jest/fake-timers': 30.1.2
'@jest/types': 30.0.5
'@types/jsdom': 21.1.7
'@types/node': 18.16.9
@@ -5382,39 +5663,39 @@ snapshots:
jest-util: 30.0.5
jsdom: 26.1.0
- '@jest/environment@30.0.5':
+ '@jest/environment@30.1.2':
dependencies:
- '@jest/fake-timers': 30.0.5
+ '@jest/fake-timers': 30.1.2
'@jest/types': 30.0.5
'@types/node': 18.16.9
jest-mock: 30.0.5
- '@jest/expect-utils@30.0.5':
+ '@jest/expect-utils@30.1.2':
dependencies:
- '@jest/get-type': 30.0.1
+ '@jest/get-type': 30.1.0
- '@jest/expect@30.0.5':
+ '@jest/expect@30.1.2':
dependencies:
- expect: 30.0.5
- jest-snapshot: 30.0.5
+ expect: 30.1.2
+ jest-snapshot: 30.1.2
transitivePeerDependencies:
- supports-color
- '@jest/fake-timers@30.0.5':
+ '@jest/fake-timers@30.1.2':
dependencies:
'@jest/types': 30.0.5
'@sinonjs/fake-timers': 13.0.5
'@types/node': 18.16.9
- jest-message-util: 30.0.5
+ jest-message-util: 30.1.0
jest-mock: 30.0.5
jest-util: 30.0.5
- '@jest/get-type@30.0.1': {}
+ '@jest/get-type@30.1.0': {}
- '@jest/globals@30.0.5':
+ '@jest/globals@30.1.2':
dependencies:
- '@jest/environment': 30.0.5
- '@jest/expect': 30.0.5
+ '@jest/environment': 30.1.2
+ '@jest/expect': 30.1.2
'@jest/types': 30.0.5
jest-mock: 30.0.5
transitivePeerDependencies:
@@ -5425,14 +5706,14 @@ snapshots:
'@types/node': 18.16.9
jest-regex-util: 30.0.1
- '@jest/reporters@30.0.5':
+ '@jest/reporters@30.1.3':
dependencies:
'@bcoe/v8-coverage': 0.2.3
- '@jest/console': 30.0.5
- '@jest/test-result': 30.0.5
- '@jest/transform': 30.0.5
+ '@jest/console': 30.1.2
+ '@jest/test-result': 30.1.3
+ '@jest/transform': 30.1.2
'@jest/types': 30.0.5
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/trace-mapping': 0.3.30
'@types/node': 18.16.9
chalk: 4.1.2
collect-v8-coverage: 1.0.2
@@ -5443,10 +5724,10 @@ snapshots:
istanbul-lib-instrument: 6.0.3
istanbul-lib-report: 3.0.1
istanbul-lib-source-maps: 5.0.6
- istanbul-reports: 3.1.7
- jest-message-util: 30.0.5
+ istanbul-reports: 3.2.0
+ jest-message-util: 30.1.0
jest-util: 30.0.5
- jest-worker: 30.0.5
+ jest-worker: 30.1.0
slash: 3.0.0
string-length: 4.0.2
v8-to-istanbul: 9.3.0
@@ -5455,9 +5736,9 @@ snapshots:
'@jest/schemas@30.0.5':
dependencies:
- '@sinclair/typebox': 0.34.38
+ '@sinclair/typebox': 0.34.41
- '@jest/snapshot-utils@30.0.5':
+ '@jest/snapshot-utils@30.1.2':
dependencies:
'@jest/types': 30.0.5
chalk: 4.1.2
@@ -5466,35 +5747,35 @@ snapshots:
'@jest/source-map@30.0.1':
dependencies:
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/trace-mapping': 0.3.30
callsites: 3.1.0
graceful-fs: 4.2.11
- '@jest/test-result@30.0.5':
+ '@jest/test-result@30.1.3':
dependencies:
- '@jest/console': 30.0.5
+ '@jest/console': 30.1.2
'@jest/types': 30.0.5
'@types/istanbul-lib-coverage': 2.0.6
collect-v8-coverage: 1.0.2
- '@jest/test-sequencer@30.0.5':
+ '@jest/test-sequencer@30.1.3':
dependencies:
- '@jest/test-result': 30.0.5
+ '@jest/test-result': 30.1.3
graceful-fs: 4.2.11
- jest-haste-map: 30.0.5
+ jest-haste-map: 30.1.0
slash: 3.0.0
- '@jest/transform@30.0.5':
+ '@jest/transform@30.1.2':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@jest/types': 30.0.5
- '@jridgewell/trace-mapping': 0.3.29
- babel-plugin-istanbul: 7.0.0
+ '@jridgewell/trace-mapping': 0.3.30
+ babel-plugin-istanbul: 7.0.1
chalk: 4.1.2
convert-source-map: 2.0.0
fast-json-stable-stringify: 2.1.0
graceful-fs: 4.2.11
- jest-haste-map: 30.0.5
+ jest-haste-map: 30.1.0
jest-regex-util: 30.0.1
jest-util: 30.0.5
micromatch: 4.0.8
@@ -5514,104 +5795,113 @@ snapshots:
'@types/yargs': 17.0.33
chalk: 4.1.2
- '@jridgewell/gen-mapping@0.3.12':
+ '@jridgewell/gen-mapping@0.3.13':
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/trace-mapping': 0.3.30
+
+ '@jridgewell/remapping@2.3.5':
dependencies:
- '@jridgewell/sourcemap-codec': 1.5.4
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.30
'@jridgewell/resolve-uri@3.1.2': {}
- '@jridgewell/sourcemap-codec@1.5.4': {}
+ '@jridgewell/sourcemap-codec@1.5.5': {}
- '@jridgewell/trace-mapping@0.3.29':
+ '@jridgewell/trace-mapping@0.3.30':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.4
+ '@jridgewell/sourcemap-codec': 1.5.5
'@jridgewell/trace-mapping@0.3.9':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.4
+ '@jridgewell/sourcemap-codec': 1.5.5
+
+ '@napi-rs/nice-android-arm-eabi@1.1.1':
+ optional: true
- '@napi-rs/nice-android-arm-eabi@1.0.4':
+ '@napi-rs/nice-android-arm64@1.1.1':
optional: true
- '@napi-rs/nice-android-arm64@1.0.4':
+ '@napi-rs/nice-darwin-arm64@1.1.1':
optional: true
- '@napi-rs/nice-darwin-arm64@1.0.4':
+ '@napi-rs/nice-darwin-x64@1.1.1':
optional: true
- '@napi-rs/nice-darwin-x64@1.0.4':
+ '@napi-rs/nice-freebsd-x64@1.1.1':
optional: true
- '@napi-rs/nice-freebsd-x64@1.0.4':
+ '@napi-rs/nice-linux-arm-gnueabihf@1.1.1':
optional: true
- '@napi-rs/nice-linux-arm-gnueabihf@1.0.4':
+ '@napi-rs/nice-linux-arm64-gnu@1.1.1':
optional: true
- '@napi-rs/nice-linux-arm64-gnu@1.0.4':
+ '@napi-rs/nice-linux-arm64-musl@1.1.1':
optional: true
- '@napi-rs/nice-linux-arm64-musl@1.0.4':
+ '@napi-rs/nice-linux-ppc64-gnu@1.1.1':
optional: true
- '@napi-rs/nice-linux-ppc64-gnu@1.0.4':
+ '@napi-rs/nice-linux-riscv64-gnu@1.1.1':
optional: true
- '@napi-rs/nice-linux-riscv64-gnu@1.0.4':
+ '@napi-rs/nice-linux-s390x-gnu@1.1.1':
optional: true
- '@napi-rs/nice-linux-s390x-gnu@1.0.4':
+ '@napi-rs/nice-linux-x64-gnu@1.1.1':
optional: true
- '@napi-rs/nice-linux-x64-gnu@1.0.4':
+ '@napi-rs/nice-linux-x64-musl@1.1.1':
optional: true
- '@napi-rs/nice-linux-x64-musl@1.0.4':
+ '@napi-rs/nice-openharmony-arm64@1.1.1':
optional: true
- '@napi-rs/nice-win32-arm64-msvc@1.0.4':
+ '@napi-rs/nice-win32-arm64-msvc@1.1.1':
optional: true
- '@napi-rs/nice-win32-ia32-msvc@1.0.4':
+ '@napi-rs/nice-win32-ia32-msvc@1.1.1':
optional: true
- '@napi-rs/nice-win32-x64-msvc@1.0.4':
+ '@napi-rs/nice-win32-x64-msvc@1.1.1':
optional: true
- '@napi-rs/nice@1.0.4':
+ '@napi-rs/nice@1.1.1':
optionalDependencies:
- '@napi-rs/nice-android-arm-eabi': 1.0.4
- '@napi-rs/nice-android-arm64': 1.0.4
- '@napi-rs/nice-darwin-arm64': 1.0.4
- '@napi-rs/nice-darwin-x64': 1.0.4
- '@napi-rs/nice-freebsd-x64': 1.0.4
- '@napi-rs/nice-linux-arm-gnueabihf': 1.0.4
- '@napi-rs/nice-linux-arm64-gnu': 1.0.4
- '@napi-rs/nice-linux-arm64-musl': 1.0.4
- '@napi-rs/nice-linux-ppc64-gnu': 1.0.4
- '@napi-rs/nice-linux-riscv64-gnu': 1.0.4
- '@napi-rs/nice-linux-s390x-gnu': 1.0.4
- '@napi-rs/nice-linux-x64-gnu': 1.0.4
- '@napi-rs/nice-linux-x64-musl': 1.0.4
- '@napi-rs/nice-win32-arm64-msvc': 1.0.4
- '@napi-rs/nice-win32-ia32-msvc': 1.0.4
- '@napi-rs/nice-win32-x64-msvc': 1.0.4
+ '@napi-rs/nice-android-arm-eabi': 1.1.1
+ '@napi-rs/nice-android-arm64': 1.1.1
+ '@napi-rs/nice-darwin-arm64': 1.1.1
+ '@napi-rs/nice-darwin-x64': 1.1.1
+ '@napi-rs/nice-freebsd-x64': 1.1.1
+ '@napi-rs/nice-linux-arm-gnueabihf': 1.1.1
+ '@napi-rs/nice-linux-arm64-gnu': 1.1.1
+ '@napi-rs/nice-linux-arm64-musl': 1.1.1
+ '@napi-rs/nice-linux-ppc64-gnu': 1.1.1
+ '@napi-rs/nice-linux-riscv64-gnu': 1.1.1
+ '@napi-rs/nice-linux-s390x-gnu': 1.1.1
+ '@napi-rs/nice-linux-x64-gnu': 1.1.1
+ '@napi-rs/nice-linux-x64-musl': 1.1.1
+ '@napi-rs/nice-openharmony-arm64': 1.1.1
+ '@napi-rs/nice-win32-arm64-msvc': 1.1.1
+ '@napi-rs/nice-win32-ia32-msvc': 1.1.1
+ '@napi-rs/nice-win32-x64-msvc': 1.1.1
optional: true
'@napi-rs/wasm-runtime@0.2.12':
dependencies:
- '@emnapi/core': 1.4.5
- '@emnapi/runtime': 1.4.5
+ '@emnapi/core': 1.5.0
+ '@emnapi/runtime': 1.5.0
'@tybys/wasm-util': 0.10.0
optional: true
'@napi-rs/wasm-runtime@0.2.4':
dependencies:
- '@emnapi/core': 1.4.5
- '@emnapi/runtime': 1.4.5
+ '@emnapi/core': 1.5.0
+ '@emnapi/runtime': 1.5.0
'@tybys/wasm-util': 0.9.0
'@nodelib/fs.scandir@2.1.5':
@@ -5626,26 +5916,34 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.19.1
- '@nx/devkit@21.3.11(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))':
+ '@nx/devkit@21.4.1(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))':
dependencies:
ejs: 3.1.10
enquirer: 2.3.6
ignore: 5.3.2
minimatch: 9.0.3
- nx: 21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))
+ nx: 21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))
semver: 7.7.2
- tmp: 0.2.4
+ tmp: 0.2.5
tslib: 2.8.1
yargs-parser: 21.1.1
- '@nx/eslint-plugin@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@typescript-eslint/parser@8.39.0(eslint@9.32.0)(typescript@5.8.3))(eslint-config-prettier@10.1.8(eslint@9.32.0))(eslint@9.32.0)(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(typescript@5.8.3)(verdaccio@6.1.6(typanion@3.14.0))':
+ '@nx/docker@21.4.1(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))':
+ dependencies:
+ '@nx/devkit': 21.4.1(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
+ enquirer: 2.3.6
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - nx
+
+ '@nx/eslint-plugin@21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@typescript-eslint/parser@8.42.0(eslint@9.35.0)(typescript@5.9.2))(eslint-config-prettier@10.1.8(eslint@9.35.0))(eslint@9.35.0)(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(typescript@5.9.2)(verdaccio@6.1.6(typanion@3.14.0))':
dependencies:
- '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
- '@nx/js': 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
- '@phenomnomnominal/tsquery': 5.0.1(typescript@5.8.3)
- '@typescript-eslint/parser': 8.39.0(eslint@9.32.0)(typescript@5.8.3)
- '@typescript-eslint/type-utils': 8.39.0(eslint@9.32.0)(typescript@5.8.3)
- '@typescript-eslint/utils': 8.39.0(eslint@9.32.0)(typescript@5.8.3)
+ '@nx/devkit': 21.4.1(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
+ '@nx/js': 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
+ '@phenomnomnominal/tsquery': 5.0.1(typescript@5.9.2)
+ '@typescript-eslint/parser': 8.42.0(eslint@9.35.0)(typescript@5.9.2)
+ '@typescript-eslint/type-utils': 8.42.0(eslint@9.35.0)(typescript@5.9.2)
+ '@typescript-eslint/utils': 8.42.0(eslint@9.35.0)(typescript@5.9.2)
chalk: 4.1.2
confusing-browser-globals: 1.0.11
globals: 15.15.0
@@ -5653,7 +5951,7 @@ snapshots:
semver: 7.7.2
tslib: 2.8.1
optionalDependencies:
- eslint-config-prettier: 10.1.8(eslint@9.32.0)
+ eslint-config-prettier: 10.1.8(eslint@9.35.0)
transitivePeerDependencies:
- '@babel/traverse'
- '@swc-node/register'
@@ -5665,11 +5963,11 @@ snapshots:
- typescript
- verdaccio
- '@nx/eslint@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.32.0)(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))':
+ '@nx/eslint@21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.35.0)(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))':
dependencies:
- '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
- '@nx/js': 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
- eslint: 9.32.0
+ '@nx/devkit': 21.4.1(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
+ '@nx/js': 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
+ eslint: 9.35.0
semver: 7.7.2
tslib: 2.8.1
typescript: 5.8.3
@@ -5684,16 +5982,16 @@ snapshots:
- supports-color
- verdaccio
- '@nx/jest@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))(typescript@5.8.3)(verdaccio@6.1.6(typanion@3.14.0))':
+ '@nx/jest@21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))(typescript@5.9.2)(verdaccio@6.1.6(typanion@3.14.0))':
dependencies:
- '@jest/reporters': 30.0.5
- '@jest/test-result': 30.0.5
- '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
- '@nx/js': 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
- '@phenomnomnominal/tsquery': 5.0.1(typescript@5.8.3)
+ '@jest/reporters': 30.1.3
+ '@jest/test-result': 30.1.3
+ '@nx/devkit': 21.4.1(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
+ '@nx/js': 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
+ '@phenomnomnominal/tsquery': 5.0.1(typescript@5.9.2)
identity-obj-proxy: 3.0.0
- jest-config: 30.0.5(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))
- jest-resolve: 30.0.5
+ jest-config: 30.1.3(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))
+ jest-resolve: 30.1.3
jest-util: 30.0.5
minimatch: 9.0.3
picocolors: 1.1.1
@@ -5716,21 +6014,21 @@ snapshots:
- typescript
- verdaccio
- '@nx/js@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))':
- dependencies:
- '@babel/core': 7.28.0
- '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.0)
- '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-runtime': 7.28.0(@babel/core@7.28.0)
- '@babel/preset-env': 7.28.0(@babel/core@7.28.0)
- '@babel/preset-typescript': 7.27.1(@babel/core@7.28.0)
- '@babel/runtime': 7.28.2
- '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
- '@nx/workspace': 21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))
+ '@nx/js@21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))':
+ dependencies:
+ '@babel/core': 7.28.4
+ '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.4)
+ '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-runtime': 7.28.3(@babel/core@7.28.4)
+ '@babel/preset-env': 7.28.3(@babel/core@7.28.4)
+ '@babel/preset-typescript': 7.27.1(@babel/core@7.28.4)
+ '@babel/runtime': 7.28.4
+ '@nx/devkit': 21.4.1(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
+ '@nx/workspace': 21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))
'@zkochan/js-yaml': 0.0.7
- babel-plugin-const-enum: 1.2.0(@babel/core@7.28.0)
+ babel-plugin-const-enum: 1.2.0(@babel/core@7.28.4)
babel-plugin-macros: 3.1.0
- babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.28.0)(@babel/traverse@7.28.0)
+ babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.28.4)(@babel/traverse@7.28.4)
chalk: 4.1.2
columnify: 1.6.0
detect-port: 1.6.1
@@ -5757,12 +6055,13 @@ snapshots:
- nx
- supports-color
- '@nx/node@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.32.0)(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))(typescript@5.8.3)(verdaccio@6.1.6(typanion@3.14.0))':
+ '@nx/node@21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.35.0)(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))(typescript@5.9.2)(verdaccio@6.1.6(typanion@3.14.0))':
dependencies:
- '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
- '@nx/eslint': 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.32.0)(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
- '@nx/jest': 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))(typescript@5.8.3)(verdaccio@6.1.6(typanion@3.14.0))
- '@nx/js': 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
+ '@nx/devkit': 21.4.1(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
+ '@nx/docker': 21.4.1(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
+ '@nx/eslint': 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.35.0)(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
+ '@nx/jest': 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))(typescript@5.9.2)(verdaccio@6.1.6(typanion@3.14.0))
+ '@nx/js': 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
kill-port: 1.6.1
tcp-port-used: 1.0.2
tslib: 2.8.1
@@ -5783,42 +6082,42 @@ snapshots:
- typescript
- verdaccio
- '@nx/nx-darwin-arm64@21.3.11':
+ '@nx/nx-darwin-arm64@21.4.1':
optional: true
- '@nx/nx-darwin-x64@21.3.11':
+ '@nx/nx-darwin-x64@21.4.1':
optional: true
- '@nx/nx-freebsd-x64@21.3.11':
+ '@nx/nx-freebsd-x64@21.4.1':
optional: true
- '@nx/nx-linux-arm-gnueabihf@21.3.11':
+ '@nx/nx-linux-arm-gnueabihf@21.4.1':
optional: true
- '@nx/nx-linux-arm64-gnu@21.3.11':
+ '@nx/nx-linux-arm64-gnu@21.4.1':
optional: true
- '@nx/nx-linux-arm64-musl@21.3.11':
+ '@nx/nx-linux-arm64-musl@21.4.1':
optional: true
- '@nx/nx-linux-x64-gnu@21.3.11':
+ '@nx/nx-linux-x64-gnu@21.4.1':
optional: true
- '@nx/nx-linux-x64-musl@21.3.11':
+ '@nx/nx-linux-x64-musl@21.4.1':
optional: true
- '@nx/nx-win32-arm64-msvc@21.3.11':
+ '@nx/nx-win32-arm64-msvc@21.4.1':
optional: true
- '@nx/nx-win32-x64-msvc@21.3.11':
+ '@nx/nx-win32-x64-msvc@21.4.1':
optional: true
- '@nx/plugin@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.32.0)(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))(typescript@5.8.3)(verdaccio@6.1.6(typanion@3.14.0))':
+ '@nx/plugin@21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.35.0)(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))(typescript@5.9.2)(verdaccio@6.1.6(typanion@3.14.0))':
dependencies:
- '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
- '@nx/eslint': 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.32.0)(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
- '@nx/jest': 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))(typescript@5.8.3)(verdaccio@6.1.6(typanion@3.14.0))
- '@nx/js': 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
+ '@nx/devkit': 21.4.1(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
+ '@nx/eslint': 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.35.0)(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
+ '@nx/jest': 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))(typescript@5.9.2)(verdaccio@6.1.6(typanion@3.14.0))
+ '@nx/js': 21.4.1(@babel/traverse@7.28.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(verdaccio@6.1.6(typanion@3.14.0))
tslib: 2.8.1
transitivePeerDependencies:
- '@babel/traverse'
@@ -5837,14 +6136,15 @@ snapshots:
- typescript
- verdaccio
- '@nx/workspace@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))':
+ '@nx/workspace@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))':
dependencies:
- '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
+ '@nx/devkit': 21.4.1(nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)))
'@zkochan/js-yaml': 0.0.7
chalk: 4.1.2
enquirer: 2.3.6
- nx: 21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))
+ nx: 21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17))
picomatch: 4.0.2
+ semver: 7.7.2
tslib: 2.8.1
yargs-parser: 21.1.1
transitivePeerDependencies:
@@ -5852,17 +6152,17 @@ snapshots:
- '@swc/core'
- debug
- '@phenomnomnominal/tsquery@5.0.1(typescript@5.8.3)':
+ '@phenomnomnominal/tsquery@5.0.1(typescript@5.9.2)':
dependencies:
esquery: 1.6.0
- typescript: 5.8.3
+ typescript: 5.9.2
'@pkgjs/parseargs@0.11.0':
optional: true
'@pkgr/core@0.2.9': {}
- '@sinclair/typebox@0.34.38': {}
+ '@sinclair/typebox@0.34.41': {}
'@sindresorhus/is@5.6.0': {}
@@ -5874,21 +6174,21 @@ snapshots:
dependencies:
'@sinonjs/commons': 3.0.1
- '@swc-node/core@1.13.3(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)':
+ '@swc-node/core@1.14.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)':
dependencies:
'@swc/core': 1.5.29(@swc/helpers@0.5.17)
'@swc/types': 0.1.24
- '@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3)':
+ '@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2)':
dependencies:
- '@swc-node/core': 1.13.3(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)
+ '@swc-node/core': 1.14.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)
'@swc-node/sourcemap-support': 0.5.1
'@swc/core': 1.5.29(@swc/helpers@0.5.17)
colorette: 2.0.20
debug: 4.4.1
pirates: 4.0.7
tslib: 2.8.1
- typescript: 5.8.3
+ typescript: 5.9.2
transitivePeerDependencies:
- '@swc/types'
- supports-color
@@ -5971,7 +6271,7 @@ snapshots:
'@jest/create-cache-key-function': 30.0.5
'@swc/core': 1.5.29(@swc/helpers@0.5.17)
'@swc/counter': 0.1.3
- jsonc-parser: 3.2.0
+ jsonc-parser: 3.3.1
'@swc/types@0.1.24':
dependencies:
@@ -5985,7 +6285,7 @@ snapshots:
dependencies:
debug: 4.4.1
fflate: 0.8.2
- token-types: 6.0.4
+ token-types: 6.1.1
transitivePeerDependencies:
- supports-color
@@ -6010,24 +6310,30 @@ snapshots:
'@types/babel__core@7.20.5':
dependencies:
- '@babel/parser': 7.28.0
- '@babel/types': 7.28.2
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
'@types/babel__generator': 7.27.0
'@types/babel__template': 7.4.4
'@types/babel__traverse': 7.28.0
'@types/babel__generator@7.27.0':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@types/babel__template@7.4.4':
dependencies:
- '@babel/parser': 7.28.0
- '@babel/types': 7.28.2
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
'@types/babel__traverse@7.28.0':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
+
+ '@types/bun@1.2.20(@types/react@19.1.12)':
+ dependencies:
+ bun-types: 1.2.20(@types/react@19.1.12)
+ transitivePeerDependencies:
+ - '@types/react'
'@types/estree@1.0.8': {}
@@ -6045,7 +6351,7 @@ snapshots:
'@types/jest@30.0.0':
dependencies:
- expect: 30.0.5
+ expect: 30.1.2
pretty-format: 30.0.5
'@types/jsdom@21.1.7':
@@ -6060,6 +6366,10 @@ snapshots:
'@types/parse-json@4.0.2': {}
+ '@types/react@19.1.12':
+ dependencies:
+ csstype: 3.1.3
+
'@types/stack-utils@2.0.3': {}
'@types/tough-cookie@4.0.5': {}
@@ -6070,97 +6380,97 @@ snapshots:
dependencies:
'@types/yargs-parser': 21.0.3
- '@typescript-eslint/eslint-plugin@8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0)(typescript@5.8.3))(eslint@9.32.0)(typescript@5.8.3)':
+ '@typescript-eslint/eslint-plugin@8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.35.0)(typescript@5.9.2))(eslint@9.35.0)(typescript@5.9.2)':
dependencies:
'@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 8.39.0(eslint@9.32.0)(typescript@5.8.3)
- '@typescript-eslint/scope-manager': 8.39.0
- '@typescript-eslint/type-utils': 8.39.0(eslint@9.32.0)(typescript@5.8.3)
- '@typescript-eslint/utils': 8.39.0(eslint@9.32.0)(typescript@5.8.3)
- '@typescript-eslint/visitor-keys': 8.39.0
- eslint: 9.32.0
+ '@typescript-eslint/parser': 8.42.0(eslint@9.35.0)(typescript@5.9.2)
+ '@typescript-eslint/scope-manager': 8.42.0
+ '@typescript-eslint/type-utils': 8.42.0(eslint@9.35.0)(typescript@5.9.2)
+ '@typescript-eslint/utils': 8.42.0(eslint@9.35.0)(typescript@5.9.2)
+ '@typescript-eslint/visitor-keys': 8.42.0
+ eslint: 9.35.0
graphemer: 1.4.0
ignore: 7.0.5
natural-compare: 1.4.0
- ts-api-utils: 2.1.0(typescript@5.8.3)
- typescript: 5.8.3
+ ts-api-utils: 2.1.0(typescript@5.9.2)
+ typescript: 5.9.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.39.0(eslint@9.32.0)(typescript@5.8.3)':
+ '@typescript-eslint/parser@8.42.0(eslint@9.35.0)(typescript@5.9.2)':
dependencies:
- '@typescript-eslint/scope-manager': 8.39.0
- '@typescript-eslint/types': 8.39.0
- '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.8.3)
- '@typescript-eslint/visitor-keys': 8.39.0
+ '@typescript-eslint/scope-manager': 8.42.0
+ '@typescript-eslint/types': 8.42.0
+ '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2)
+ '@typescript-eslint/visitor-keys': 8.42.0
debug: 4.4.1
- eslint: 9.32.0
- typescript: 5.8.3
+ eslint: 9.35.0
+ typescript: 5.9.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.39.0(typescript@5.8.3)':
+ '@typescript-eslint/project-service@8.42.0(typescript@5.9.2)':
dependencies:
- '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.8.3)
- '@typescript-eslint/types': 8.39.0
+ '@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2)
+ '@typescript-eslint/types': 8.42.0
debug: 4.4.1
- typescript: 5.8.3
+ typescript: 5.9.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@8.39.0':
+ '@typescript-eslint/scope-manager@8.42.0':
dependencies:
- '@typescript-eslint/types': 8.39.0
- '@typescript-eslint/visitor-keys': 8.39.0
+ '@typescript-eslint/types': 8.42.0
+ '@typescript-eslint/visitor-keys': 8.42.0
- '@typescript-eslint/tsconfig-utils@8.39.0(typescript@5.8.3)':
+ '@typescript-eslint/tsconfig-utils@8.42.0(typescript@5.9.2)':
dependencies:
- typescript: 5.8.3
+ typescript: 5.9.2
- '@typescript-eslint/type-utils@8.39.0(eslint@9.32.0)(typescript@5.8.3)':
+ '@typescript-eslint/type-utils@8.42.0(eslint@9.35.0)(typescript@5.9.2)':
dependencies:
- '@typescript-eslint/types': 8.39.0
- '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.8.3)
- '@typescript-eslint/utils': 8.39.0(eslint@9.32.0)(typescript@5.8.3)
+ '@typescript-eslint/types': 8.42.0
+ '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2)
+ '@typescript-eslint/utils': 8.42.0(eslint@9.35.0)(typescript@5.9.2)
debug: 4.4.1
- eslint: 9.32.0
- ts-api-utils: 2.1.0(typescript@5.8.3)
- typescript: 5.8.3
+ eslint: 9.35.0
+ ts-api-utils: 2.1.0(typescript@5.9.2)
+ typescript: 5.9.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/types@8.39.0': {}
+ '@typescript-eslint/types@8.42.0': {}
- '@typescript-eslint/typescript-estree@8.39.0(typescript@5.8.3)':
+ '@typescript-eslint/typescript-estree@8.42.0(typescript@5.9.2)':
dependencies:
- '@typescript-eslint/project-service': 8.39.0(typescript@5.8.3)
- '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.8.3)
- '@typescript-eslint/types': 8.39.0
- '@typescript-eslint/visitor-keys': 8.39.0
+ '@typescript-eslint/project-service': 8.42.0(typescript@5.9.2)
+ '@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2)
+ '@typescript-eslint/types': 8.42.0
+ '@typescript-eslint/visitor-keys': 8.42.0
debug: 4.4.1
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.7.2
- ts-api-utils: 2.1.0(typescript@5.8.3)
- typescript: 5.8.3
+ ts-api-utils: 2.1.0(typescript@5.9.2)
+ typescript: 5.9.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.39.0(eslint@9.32.0)(typescript@5.8.3)':
+ '@typescript-eslint/utils@8.42.0(eslint@9.35.0)(typescript@5.9.2)':
dependencies:
- '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0)
- '@typescript-eslint/scope-manager': 8.39.0
- '@typescript-eslint/types': 8.39.0
- '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.8.3)
- eslint: 9.32.0
- typescript: 5.8.3
+ '@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0)
+ '@typescript-eslint/scope-manager': 8.42.0
+ '@typescript-eslint/types': 8.42.0
+ '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2)
+ eslint: 9.35.0
+ typescript: 5.9.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/visitor-keys@8.39.0':
+ '@typescript-eslint/visitor-keys@8.42.0':
dependencies:
- '@typescript-eslint/types': 8.39.0
+ '@typescript-eslint/types': 8.42.0
eslint-visitor-keys: 4.2.1
'@ungap/structured-clone@1.3.0': {}
@@ -6506,7 +6816,7 @@ snapshots:
ajv@8.17.1:
dependencies:
fast-deep-equal: 3.1.3
- fast-uri: 3.0.6
+ fast-uri: 3.1.0
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
@@ -6518,7 +6828,7 @@ snapshots:
ansi-regex@5.0.1: {}
- ansi-regex@6.1.0: {}
+ ansi-regex@6.2.0: {}
ansi-styles@4.3.0:
dependencies:
@@ -6575,29 +6885,29 @@ snapshots:
b4a@1.6.7: {}
- babel-jest@30.0.5(@babel/core@7.28.0):
+ babel-jest@30.1.2(@babel/core@7.28.4):
dependencies:
- '@babel/core': 7.28.0
- '@jest/transform': 30.0.5
+ '@babel/core': 7.28.4
+ '@jest/transform': 30.1.2
'@types/babel__core': 7.20.5
- babel-plugin-istanbul: 7.0.0
- babel-preset-jest: 30.0.1(@babel/core@7.28.0)
+ babel-plugin-istanbul: 7.0.1
+ babel-preset-jest: 30.0.1(@babel/core@7.28.4)
chalk: 4.1.2
graceful-fs: 4.2.11
slash: 3.0.0
transitivePeerDependencies:
- supports-color
- babel-plugin-const-enum@1.2.0(@babel/core@7.28.0):
+ babel-plugin-const-enum@1.2.0(@babel/core@7.28.4):
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0)
- '@babel/traverse': 7.28.0
+ '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4)
+ '@babel/traverse': 7.28.4
transitivePeerDependencies:
- supports-color
- babel-plugin-istanbul@7.0.0:
+ babel-plugin-istanbul@7.0.1:
dependencies:
'@babel/helper-plugin-utils': 7.27.1
'@istanbuljs/load-nyc-config': 1.1.0
@@ -6610,74 +6920,74 @@ snapshots:
babel-plugin-jest-hoist@30.0.1:
dependencies:
'@babel/template': 7.27.2
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@types/babel__core': 7.20.5
babel-plugin-macros@3.1.0:
dependencies:
- '@babel/runtime': 7.28.2
+ '@babel/runtime': 7.28.4
cosmiconfig: 7.1.0
resolve: 1.22.10
- babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.0):
+ babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.4):
dependencies:
- '@babel/compat-data': 7.28.0
- '@babel/core': 7.28.0
- '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0)
+ '@babel/compat-data': 7.28.4
+ '@babel/core': 7.28.4
+ '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.0):
+ babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.4):
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0)
- core-js-compat: 3.45.0
+ '@babel/core': 7.28.4
+ '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4)
+ core-js-compat: 3.45.1
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.0):
+ babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.4):
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0)
+ '@babel/core': 7.28.4
+ '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4)
transitivePeerDependencies:
- supports-color
- babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.28.0)(@babel/traverse@7.28.0):
+ babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.28.4)(@babel/traverse@7.28.4):
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
optionalDependencies:
- '@babel/traverse': 7.28.0
-
- babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.0):
- dependencies:
- '@babel/core': 7.28.0
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.0)
- '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.0)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.0)
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.0)
- '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.0)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.0)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.0)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.0)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.0)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.0)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.0)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.0)
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.0)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.0)
-
- babel-preset-jest@30.0.1(@babel/core@7.28.0):
- dependencies:
- '@babel/core': 7.28.0
+ '@babel/traverse': 7.28.4
+
+ babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.4):
+ dependencies:
+ '@babel/core': 7.28.4
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.4)
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.4)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.4)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.4)
+ '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.4)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.4)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.4)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.4)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.4)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.4)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.4)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.4)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.4)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.4)
+
+ babel-preset-jest@30.0.1(@babel/core@7.28.4):
+ dependencies:
+ '@babel/core': 7.28.4
babel-plugin-jest-hoist: 30.0.1
- babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.0)
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4)
balanced-match@1.0.2: {}
- bare-events@2.6.0:
+ bare-events@2.6.1:
optional: true
base64-js@1.5.1: {}
@@ -6739,12 +7049,12 @@ snapshots:
dependencies:
pako: 0.2.9
- browserslist@4.25.1:
+ browserslist@4.25.4:
dependencies:
- caniuse-lite: 1.0.30001731
- electron-to-chromium: 1.5.197
- node-releases: 2.0.19
- update-browserslist-db: 1.1.3(browserslist@4.25.1)
+ caniuse-lite: 1.0.30001741
+ electron-to-chromium: 1.5.214
+ node-releases: 2.0.20
+ update-browserslist-db: 1.1.3(browserslist@4.25.4)
bs-logger@0.2.6:
dependencies:
@@ -6770,6 +7080,11 @@ snapshots:
base64-js: 1.5.1
ieee754: 1.2.1
+ bun-types@1.2.20(@types/react@19.1.12):
+ dependencies:
+ '@types/node': 18.16.9
+ '@types/react': 19.1.12
+
bytes@3.1.2: {}
cacheable-lookup@7.0.0: {}
@@ -6800,7 +7115,7 @@ snapshots:
camelcase@6.3.0: {}
- caniuse-lite@1.0.30001731: {}
+ caniuse-lite@1.0.30001741: {}
caseless@0.12.0: {}
@@ -6843,6 +7158,10 @@ snapshots:
clone@1.0.4: {}
+ cmrd@0.0.1(typescript@5.9.2):
+ optionalDependencies:
+ typescript: 5.9.2
+
co@4.6.0: {}
collect-v8-coverage@1.0.2: {}
@@ -6870,7 +7189,7 @@ snapshots:
compressible@2.0.18:
dependencies:
- mime-db: 1.52.0
+ mime-db: 1.54.0
compression@1.8.1:
dependencies:
@@ -6900,9 +7219,9 @@ snapshots:
cookie@0.7.1: {}
- core-js-compat@3.45.0:
+ core-js-compat@3.45.1:
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.25.4
core-util-is@1.0.2: {}
@@ -6934,6 +7253,8 @@ snapshots:
'@asamuzakjp/css-color': 3.2.0
rrweb-cssom: 0.8.0
+ csstype@3.1.3: {}
+
cz-git@1.12.0: {}
czg@1.12.0: {}
@@ -6971,7 +7292,7 @@ snapshots:
dependencies:
mimic-response: 3.1.0
- dedent@1.6.0(babel-plugin-macros@3.1.0):
+ dedent@1.7.0(babel-plugin-macros@3.1.0):
optionalDependencies:
babel-plugin-macros: 3.1.0
@@ -7042,11 +7363,11 @@ snapshots:
dependencies:
jake: 10.9.4
- electron-to-chromium@1.5.197: {}
+ electron-to-chromium@1.5.214: {}
emittery@0.13.1: {}
- emoji-regex@10.4.0: {}
+ emoji-regex@10.5.0: {}
emoji-regex@8.0.0: {}
@@ -7087,6 +7408,32 @@ snapshots:
has-tostringtag: 1.0.2
hasown: 2.0.2
+ esbuild@0.19.12:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.19.12
+ '@esbuild/android-arm': 0.19.12
+ '@esbuild/android-arm64': 0.19.12
+ '@esbuild/android-x64': 0.19.12
+ '@esbuild/darwin-arm64': 0.19.12
+ '@esbuild/darwin-x64': 0.19.12
+ '@esbuild/freebsd-arm64': 0.19.12
+ '@esbuild/freebsd-x64': 0.19.12
+ '@esbuild/linux-arm': 0.19.12
+ '@esbuild/linux-arm64': 0.19.12
+ '@esbuild/linux-ia32': 0.19.12
+ '@esbuild/linux-loong64': 0.19.12
+ '@esbuild/linux-mips64el': 0.19.12
+ '@esbuild/linux-ppc64': 0.19.12
+ '@esbuild/linux-riscv64': 0.19.12
+ '@esbuild/linux-s390x': 0.19.12
+ '@esbuild/linux-x64': 0.19.12
+ '@esbuild/netbsd-x64': 0.19.12
+ '@esbuild/openbsd-x64': 0.19.12
+ '@esbuild/sunos-x64': 0.19.12
+ '@esbuild/win32-arm64': 0.19.12
+ '@esbuild/win32-ia32': 0.19.12
+ '@esbuild/win32-x64': 0.19.12
+
escalade@3.2.0: {}
escape-html@1.0.3: {}
@@ -7097,9 +7444,9 @@ snapshots:
escape-string-regexp@4.0.0: {}
- eslint-config-prettier@10.1.8(eslint@9.32.0):
+ eslint-config-prettier@10.1.8(eslint@9.35.0):
dependencies:
- eslint: 9.32.0
+ eslint: 9.35.0
eslint-scope@8.4.0:
dependencies:
@@ -7110,17 +7457,17 @@ snapshots:
eslint-visitor-keys@4.2.1: {}
- eslint@9.32.0:
+ eslint@9.35.0:
dependencies:
- '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0)
+ '@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0)
'@eslint-community/regexpp': 4.12.1
'@eslint/config-array': 0.21.0
- '@eslint/config-helpers': 0.3.0
- '@eslint/core': 0.15.1
+ '@eslint/config-helpers': 0.3.1
+ '@eslint/core': 0.15.2
'@eslint/eslintrc': 3.3.1
- '@eslint/js': 9.32.0
- '@eslint/plugin-kit': 0.3.4
- '@humanfs/node': 0.16.6
+ '@eslint/js': 9.35.0
+ '@eslint/plugin-kit': 0.3.5
+ '@humanfs/node': 0.16.7
'@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.4.3
'@types/estree': 1.0.8
@@ -7196,12 +7543,12 @@ snapshots:
exit-x@0.2.2: {}
- expect@30.0.5:
+ expect@30.1.2:
dependencies:
- '@jest/expect-utils': 30.0.5
- '@jest/get-type': 30.0.1
- jest-matcher-utils: 30.0.5
- jest-message-util: 30.0.5
+ '@jest/expect-utils': 30.1.2
+ '@jest/get-type': 30.1.0
+ jest-matcher-utils: 30.1.2
+ jest-message-util: 30.1.0
jest-mock: 30.0.5
jest-util: 30.0.5
@@ -7245,7 +7592,7 @@ snapshots:
ext-list@2.2.2:
dependencies:
- mime-db: 1.52.0
+ mime-db: 1.54.0
ext-name@5.0.0:
dependencies:
@@ -7274,7 +7621,7 @@ snapshots:
fast-redact@3.5.0: {}
- fast-uri@3.0.6: {}
+ fast-uri@3.1.0: {}
fastq@1.19.1:
dependencies:
@@ -7284,7 +7631,7 @@ snapshots:
dependencies:
bser: 2.1.1
- fdir@6.4.6(picomatch@4.0.2):
+ fdir@6.5.0(picomatch@4.0.2):
optionalDependencies:
picomatch: 4.0.2
@@ -7302,8 +7649,8 @@ snapshots:
dependencies:
'@tokenizer/inflate': 0.2.7
strtok3: 10.3.4
- token-types: 6.0.4
- uint8array-extras: 1.4.0
+ token-types: 6.1.1
+ uint8array-extras: 1.5.0
transitivePeerDependencies:
- supports-color
@@ -7396,7 +7743,7 @@ snapshots:
get-caller-file@2.0.5: {}
- get-east-asian-width@1.3.0: {}
+ get-east-asian-width@1.3.1: {}
get-intrinsic@1.3.0:
dependencies:
@@ -7677,8 +8024,8 @@ snapshots:
istanbul-lib-instrument@6.0.3:
dependencies:
- '@babel/core': 7.28.0
- '@babel/parser': 7.28.0
+ '@babel/core': 7.28.4
+ '@babel/parser': 7.28.4
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 7.7.2
@@ -7693,13 +8040,13 @@ snapshots:
istanbul-lib-source-maps@5.0.6:
dependencies:
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/trace-mapping': 0.3.30
debug: 4.4.1
istanbul-lib-coverage: 3.2.2
transitivePeerDependencies:
- supports-color
- istanbul-reports@3.1.7:
+ istanbul-reports@3.2.0:
dependencies:
html-escaper: 2.0.2
istanbul-lib-report: 3.0.1
@@ -7722,22 +8069,22 @@ snapshots:
jest-util: 30.0.5
p-limit: 3.1.0
- jest-circus@30.0.5(babel-plugin-macros@3.1.0):
+ jest-circus@30.1.3(babel-plugin-macros@3.1.0):
dependencies:
- '@jest/environment': 30.0.5
- '@jest/expect': 30.0.5
- '@jest/test-result': 30.0.5
+ '@jest/environment': 30.1.2
+ '@jest/expect': 30.1.2
+ '@jest/test-result': 30.1.3
'@jest/types': 30.0.5
'@types/node': 18.16.9
chalk: 4.1.2
co: 4.6.0
- dedent: 1.6.0(babel-plugin-macros@3.1.0)
+ dedent: 1.7.0(babel-plugin-macros@3.1.0)
is-generator-fn: 2.1.0
- jest-each: 30.0.5
- jest-matcher-utils: 30.0.5
- jest-message-util: 30.0.5
- jest-runtime: 30.0.5
- jest-snapshot: 30.0.5
+ jest-each: 30.1.0
+ jest-matcher-utils: 30.1.2
+ jest-message-util: 30.1.0
+ jest-runtime: 30.1.3
+ jest-snapshot: 30.1.2
jest-util: 30.0.5
p-limit: 3.1.0
pretty-format: 30.0.5
@@ -7748,17 +8095,17 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-cli@30.0.5(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3)):
+ jest-cli@30.1.3(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2)):
dependencies:
- '@jest/core': 30.0.5(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))
- '@jest/test-result': 30.0.5
+ '@jest/core': 30.1.3(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))
+ '@jest/test-result': 30.1.3
'@jest/types': 30.0.5
chalk: 4.1.2
exit-x: 0.2.2
import-local: 3.2.0
- jest-config: 30.0.5(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))
+ jest-config: 30.1.3(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))
jest-util: 30.0.5
- jest-validate: 30.0.5
+ jest-validate: 30.1.0
yargs: 17.7.2
transitivePeerDependencies:
- '@types/node'
@@ -7767,27 +8114,27 @@ snapshots:
- supports-color
- ts-node
- jest-config@30.0.5(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3)):
+ jest-config@30.1.3(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2)):
dependencies:
- '@babel/core': 7.28.0
- '@jest/get-type': 30.0.1
+ '@babel/core': 7.28.4
+ '@jest/get-type': 30.1.0
'@jest/pattern': 30.0.1
- '@jest/test-sequencer': 30.0.5
+ '@jest/test-sequencer': 30.1.3
'@jest/types': 30.0.5
- babel-jest: 30.0.5(@babel/core@7.28.0)
+ babel-jest: 30.1.2(@babel/core@7.28.4)
chalk: 4.1.2
ci-info: 4.3.0
deepmerge: 4.3.1
glob: 10.4.5
graceful-fs: 4.2.11
- jest-circus: 30.0.5(babel-plugin-macros@3.1.0)
+ jest-circus: 30.1.3(babel-plugin-macros@3.1.0)
jest-docblock: 30.0.1
- jest-environment-node: 30.0.5
+ jest-environment-node: 30.1.2
jest-regex-util: 30.0.1
- jest-resolve: 30.0.5
- jest-runner: 30.0.5
+ jest-resolve: 30.1.3
+ jest-runner: 30.1.3
jest-util: 30.0.5
- jest-validate: 30.0.5
+ jest-validate: 30.1.0
micromatch: 4.0.8
parse-json: 5.2.0
pretty-format: 30.0.5
@@ -7795,15 +8142,15 @@ snapshots:
strip-json-comments: 3.1.1
optionalDependencies:
'@types/node': 18.16.9
- ts-node: 10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3)
+ ts-node: 10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2)
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
- jest-diff@30.0.5:
+ jest-diff@30.1.2:
dependencies:
'@jest/diff-sequences': 30.0.1
- '@jest/get-type': 30.0.1
+ '@jest/get-type': 30.1.0
chalk: 4.1.2
pretty-format: 30.0.5
@@ -7811,18 +8158,18 @@ snapshots:
dependencies:
detect-newline: 3.1.0
- jest-each@30.0.5:
+ jest-each@30.1.0:
dependencies:
- '@jest/get-type': 30.0.1
+ '@jest/get-type': 30.1.0
'@jest/types': 30.0.5
chalk: 4.1.2
jest-util: 30.0.5
pretty-format: 30.0.5
- jest-environment-jsdom@30.0.5:
+ jest-environment-jsdom@30.1.2:
dependencies:
- '@jest/environment': 30.0.5
- '@jest/environment-jsdom-abstract': 30.0.5(jsdom@26.1.0)
+ '@jest/environment': 30.1.2
+ '@jest/environment-jsdom-abstract': 30.1.2(jsdom@26.1.0)
'@types/jsdom': 21.1.7
'@types/node': 18.16.9
jsdom: 26.1.0
@@ -7831,17 +8178,17 @@ snapshots:
- supports-color
- utf-8-validate
- jest-environment-node@30.0.5:
+ jest-environment-node@30.1.2:
dependencies:
- '@jest/environment': 30.0.5
- '@jest/fake-timers': 30.0.5
+ '@jest/environment': 30.1.2
+ '@jest/fake-timers': 30.1.2
'@jest/types': 30.0.5
'@types/node': 18.16.9
jest-mock: 30.0.5
jest-util: 30.0.5
- jest-validate: 30.0.5
+ jest-validate: 30.1.0
- jest-haste-map@30.0.5:
+ jest-haste-map@30.1.0:
dependencies:
'@jest/types': 30.0.5
'@types/node': 18.16.9
@@ -7850,25 +8197,25 @@ snapshots:
graceful-fs: 4.2.11
jest-regex-util: 30.0.1
jest-util: 30.0.5
- jest-worker: 30.0.5
+ jest-worker: 30.1.0
micromatch: 4.0.8
walker: 1.0.8
optionalDependencies:
fsevents: 2.3.3
- jest-leak-detector@30.0.5:
+ jest-leak-detector@30.1.0:
dependencies:
- '@jest/get-type': 30.0.1
+ '@jest/get-type': 30.1.0
pretty-format: 30.0.5
- jest-matcher-utils@30.0.5:
+ jest-matcher-utils@30.1.2:
dependencies:
- '@jest/get-type': 30.0.1
+ '@jest/get-type': 30.1.0
chalk: 4.1.2
- jest-diff: 30.0.5
+ jest-diff: 30.1.2
pretty-format: 30.0.5
- jest-message-util@30.0.5:
+ jest-message-util@30.1.0:
dependencies:
'@babel/code-frame': 7.27.1
'@jest/types': 30.0.5
@@ -7886,36 +8233,36 @@ snapshots:
'@types/node': 18.16.9
jest-util: 30.0.5
- jest-pnp-resolver@1.2.3(jest-resolve@30.0.5):
+ jest-pnp-resolver@1.2.3(jest-resolve@30.1.3):
optionalDependencies:
- jest-resolve: 30.0.5
+ jest-resolve: 30.1.3
jest-regex-util@30.0.1: {}
- jest-resolve-dependencies@30.0.5:
+ jest-resolve-dependencies@30.1.3:
dependencies:
jest-regex-util: 30.0.1
- jest-snapshot: 30.0.5
+ jest-snapshot: 30.1.2
transitivePeerDependencies:
- supports-color
- jest-resolve@30.0.5:
+ jest-resolve@30.1.3:
dependencies:
chalk: 4.1.2
graceful-fs: 4.2.11
- jest-haste-map: 30.0.5
- jest-pnp-resolver: 1.2.3(jest-resolve@30.0.5)
+ jest-haste-map: 30.1.0
+ jest-pnp-resolver: 1.2.3(jest-resolve@30.1.3)
jest-util: 30.0.5
- jest-validate: 30.0.5
+ jest-validate: 30.1.0
slash: 3.0.0
unrs-resolver: 1.11.1
- jest-runner@30.0.5:
+ jest-runner@30.1.3:
dependencies:
- '@jest/console': 30.0.5
- '@jest/environment': 30.0.5
- '@jest/test-result': 30.0.5
- '@jest/transform': 30.0.5
+ '@jest/console': 30.1.2
+ '@jest/environment': 30.1.2
+ '@jest/test-result': 30.1.3
+ '@jest/transform': 30.1.2
'@jest/types': 30.0.5
'@types/node': 18.16.9
chalk: 4.1.2
@@ -7923,28 +8270,28 @@ snapshots:
exit-x: 0.2.2
graceful-fs: 4.2.11
jest-docblock: 30.0.1
- jest-environment-node: 30.0.5
- jest-haste-map: 30.0.5
- jest-leak-detector: 30.0.5
- jest-message-util: 30.0.5
- jest-resolve: 30.0.5
- jest-runtime: 30.0.5
+ jest-environment-node: 30.1.2
+ jest-haste-map: 30.1.0
+ jest-leak-detector: 30.1.0
+ jest-message-util: 30.1.0
+ jest-resolve: 30.1.3
+ jest-runtime: 30.1.3
jest-util: 30.0.5
- jest-watcher: 30.0.5
- jest-worker: 30.0.5
+ jest-watcher: 30.1.3
+ jest-worker: 30.1.0
p-limit: 3.1.0
source-map-support: 0.5.13
transitivePeerDependencies:
- supports-color
- jest-runtime@30.0.5:
+ jest-runtime@30.1.3:
dependencies:
- '@jest/environment': 30.0.5
- '@jest/fake-timers': 30.0.5
- '@jest/globals': 30.0.5
+ '@jest/environment': 30.1.2
+ '@jest/fake-timers': 30.1.2
+ '@jest/globals': 30.1.2
'@jest/source-map': 30.0.1
- '@jest/test-result': 30.0.5
- '@jest/transform': 30.0.5
+ '@jest/test-result': 30.1.3
+ '@jest/transform': 30.1.2
'@jest/types': 30.0.5
'@types/node': 18.16.9
chalk: 4.1.2
@@ -7952,37 +8299,37 @@ snapshots:
collect-v8-coverage: 1.0.2
glob: 10.4.5
graceful-fs: 4.2.11
- jest-haste-map: 30.0.5
- jest-message-util: 30.0.5
+ jest-haste-map: 30.1.0
+ jest-message-util: 30.1.0
jest-mock: 30.0.5
jest-regex-util: 30.0.1
- jest-resolve: 30.0.5
- jest-snapshot: 30.0.5
+ jest-resolve: 30.1.3
+ jest-snapshot: 30.1.2
jest-util: 30.0.5
slash: 3.0.0
strip-bom: 4.0.0
transitivePeerDependencies:
- supports-color
- jest-snapshot@30.0.5:
- dependencies:
- '@babel/core': 7.28.0
- '@babel/generator': 7.28.0
- '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0)
- '@babel/types': 7.28.2
- '@jest/expect-utils': 30.0.5
- '@jest/get-type': 30.0.1
- '@jest/snapshot-utils': 30.0.5
- '@jest/transform': 30.0.5
+ jest-snapshot@30.1.2:
+ dependencies:
+ '@babel/core': 7.28.4
+ '@babel/generator': 7.28.3
+ '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4)
+ '@babel/types': 7.28.4
+ '@jest/expect-utils': 30.1.2
+ '@jest/get-type': 30.1.0
+ '@jest/snapshot-utils': 30.1.2
+ '@jest/transform': 30.1.2
'@jest/types': 30.0.5
- babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.0)
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4)
chalk: 4.1.2
- expect: 30.0.5
+ expect: 30.1.2
graceful-fs: 4.2.11
- jest-diff: 30.0.5
- jest-matcher-utils: 30.0.5
- jest-message-util: 30.0.5
+ jest-diff: 30.1.2
+ jest-matcher-utils: 30.1.2
+ jest-message-util: 30.1.0
jest-util: 30.0.5
pretty-format: 30.0.5
semver: 7.7.2
@@ -7999,18 +8346,18 @@ snapshots:
graceful-fs: 4.2.11
picomatch: 4.0.3
- jest-validate@30.0.5:
+ jest-validate@30.1.0:
dependencies:
- '@jest/get-type': 30.0.1
+ '@jest/get-type': 30.1.0
'@jest/types': 30.0.5
camelcase: 6.3.0
chalk: 4.1.2
leven: 3.1.0
pretty-format: 30.0.5
- jest-watcher@30.0.5:
+ jest-watcher@30.1.3:
dependencies:
- '@jest/test-result': 30.0.5
+ '@jest/test-result': 30.1.3
'@jest/types': 30.0.5
'@types/node': 18.16.9
ansi-escapes: 4.3.2
@@ -8019,7 +8366,7 @@ snapshots:
jest-util: 30.0.5
string-length: 4.0.2
- jest-worker@30.0.5:
+ jest-worker@30.1.0:
dependencies:
'@types/node': 18.16.9
'@ungap/structured-clone': 1.3.0
@@ -8027,12 +8374,12 @@ snapshots:
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@30.0.5(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3)):
+ jest@30.1.3(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2)):
dependencies:
- '@jest/core': 30.0.5(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))
+ '@jest/core': 30.1.3(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))
'@jest/types': 30.0.5
import-local: 3.2.0
- jest-cli: 30.0.5(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))
+ jest-cli: 30.1.3(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -8062,7 +8409,7 @@ snapshots:
http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.6
is-potential-custom-element-name: 1.0.1
- nwsapi: 2.2.21
+ nwsapi: 2.2.22
parse5: 7.3.0
rrweb-cssom: 0.8.0
saxes: 6.0.0
@@ -8109,6 +8456,8 @@ snapshots:
jsonc-parser@3.2.0: {}
+ jsonc-parser@3.3.1: {}
+
jsonparse@1.3.1: {}
jsonwebtoken@9.0.2:
@@ -8250,6 +8599,8 @@ snapshots:
mime-db@1.52.0: {}
+ mime-db@1.54.0: {}
+
mime-types@2.1.35:
dependencies:
mime-db: 1.52.0
@@ -8304,7 +8655,7 @@ snapshots:
ms@2.1.3: {}
- napi-postinstall@0.3.2: {}
+ napi-postinstall@0.3.3: {}
natural-compare@1.4.0: {}
@@ -8322,7 +8673,7 @@ snapshots:
node-machine-id@1.1.12: {}
- node-releases@2.0.19: {}
+ node-releases@2.0.20: {}
normalize-path@3.0.0: {}
@@ -8339,9 +8690,9 @@ snapshots:
dependencies:
path-key: 3.1.1
- nwsapi@2.2.21: {}
+ nwsapi@2.2.22: {}
- nx@21.3.11(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)):
+ nx@21.4.1(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2))(@swc/core@1.5.29(@swc/helpers@0.5.17)):
dependencies:
'@napi-rs/wasm-runtime': 0.2.4
'@yarnpkg/lockfile': 1.1.0
@@ -8359,7 +8710,7 @@ snapshots:
flat: 5.0.2
front-matter: 4.0.2
ignore: 5.3.2
- jest-diff: 30.0.5
+ jest-diff: 30.1.2
jsonc-parser: 3.2.0
lines-and-columns: 2.0.3
minimatch: 9.0.3
@@ -8371,7 +8722,7 @@ snapshots:
semver: 7.7.2
string-width: 4.2.3
tar-stream: 2.2.0
- tmp: 0.2.4
+ tmp: 0.2.5
tree-kill: 1.2.2
tsconfig-paths: 4.2.0
tslib: 2.8.1
@@ -8379,17 +8730,17 @@ snapshots:
yargs: 17.7.2
yargs-parser: 21.1.1
optionalDependencies:
- '@nx/nx-darwin-arm64': 21.3.11
- '@nx/nx-darwin-x64': 21.3.11
- '@nx/nx-freebsd-x64': 21.3.11
- '@nx/nx-linux-arm-gnueabihf': 21.3.11
- '@nx/nx-linux-arm64-gnu': 21.3.11
- '@nx/nx-linux-arm64-musl': 21.3.11
- '@nx/nx-linux-x64-gnu': 21.3.11
- '@nx/nx-linux-x64-musl': 21.3.11
- '@nx/nx-win32-arm64-msvc': 21.3.11
- '@nx/nx-win32-x64-msvc': 21.3.11
- '@swc-node/register': 1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.8.3)
+ '@nx/nx-darwin-arm64': 21.4.1
+ '@nx/nx-darwin-x64': 21.4.1
+ '@nx/nx-freebsd-x64': 21.4.1
+ '@nx/nx-linux-arm-gnueabihf': 21.4.1
+ '@nx/nx-linux-arm64-gnu': 21.4.1
+ '@nx/nx-linux-arm64-musl': 21.4.1
+ '@nx/nx-linux-x64-gnu': 21.4.1
+ '@nx/nx-linux-x64-musl': 21.4.1
+ '@nx/nx-win32-arm64-msvc': 21.4.1
+ '@nx/nx-win32-x64-msvc': 21.4.1
+ '@swc-node/register': 1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.24)(typescript@5.9.2)
'@swc/core': 1.5.29(@swc/helpers@0.5.17)
transitivePeerDependencies:
- debug
@@ -8547,7 +8898,7 @@ snapshots:
piscina@4.9.2:
optionalDependencies:
- '@napi-rs/nice': 1.0.4
+ '@napi-rs/nice': 1.1.1
pkg-dir@4.2.0:
dependencies:
@@ -8884,7 +9235,7 @@ snapshots:
fast-fifo: 1.3.2
text-decoder: 1.2.3
optionalDependencies:
- bare-events: 2.6.0
+ bare-events: 2.6.1
string-length@4.0.2:
dependencies:
@@ -8905,8 +9256,8 @@ snapshots:
string-width@7.2.0:
dependencies:
- emoji-regex: 10.4.0
- get-east-asian-width: 1.3.0
+ emoji-regex: 10.5.0
+ get-east-asian-width: 1.3.1
strip-ansi: 7.1.0
string_decoder@1.1.1:
@@ -8923,7 +9274,7 @@ snapshots:
strip-ansi@7.1.0:
dependencies:
- ansi-regex: 6.1.0
+ ansi-regex: 6.2.0
strip-bom@3.0.0: {}
@@ -9004,7 +9355,7 @@ snapshots:
tinyglobby@0.2.14:
dependencies:
- fdir: 6.4.6(picomatch@4.0.2)
+ fdir: 6.5.0(picomatch@4.0.2)
picomatch: 4.0.2
tldts-core@6.1.86: {}
@@ -9013,7 +9364,7 @@ snapshots:
dependencies:
tldts-core: 6.1.86
- tmp@0.2.4: {}
+ tmp@0.2.5: {}
tmpl@1.0.5: {}
@@ -9023,8 +9374,9 @@ snapshots:
toidentifier@1.0.1: {}
- token-types@6.0.4:
+ token-types@6.1.1:
dependencies:
+ '@borewit/text-codec': 0.1.1
'@tokenizer/token': 0.3.0
ieee754: 1.2.1
@@ -9040,31 +9392,32 @@ snapshots:
tree-kill@1.2.2: {}
- ts-api-utils@2.1.0(typescript@5.8.3):
+ ts-api-utils@2.1.0(typescript@5.9.2):
dependencies:
- typescript: 5.8.3
+ typescript: 5.9.2
- ts-jest@29.4.1(@babel/core@7.28.0)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.28.0))(jest-util@30.0.5)(jest@30.0.5(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3)))(typescript@5.8.3):
+ ts-jest@29.4.1(@babel/core@7.28.4)(@jest/transform@30.1.2)(@jest/types@30.0.5)(babel-jest@30.1.2(@babel/core@7.28.4))(esbuild@0.19.12)(jest-util@30.0.5)(jest@30.1.3(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2)))(typescript@5.9.2):
dependencies:
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
handlebars: 4.7.8
- jest: 30.0.5(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3))
+ jest: 30.1.3(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2))
json5: 2.2.3
lodash.memoize: 4.1.2
make-error: 1.3.6
semver: 7.7.2
type-fest: 4.41.0
- typescript: 5.8.3
+ typescript: 5.9.2
yargs-parser: 21.1.1
optionalDependencies:
- '@babel/core': 7.28.0
- '@jest/transform': 30.0.5
+ '@babel/core': 7.28.4
+ '@jest/transform': 30.1.2
'@jest/types': 30.0.5
- babel-jest: 30.0.5(@babel/core@7.28.0)
+ babel-jest: 30.1.2(@babel/core@7.28.4)
+ esbuild: 0.19.12
jest-util: 30.0.5
- ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.8.3):
+ ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@18.16.9)(typescript@5.9.2):
dependencies:
'@cspotcode/source-map-support': 0.8.1
'@tsconfig/node10': 1.0.11
@@ -9078,7 +9431,7 @@ snapshots:
create-require: 1.1.1
diff: 4.0.2
make-error: 1.3.6
- typescript: 5.8.3
+ typescript: 5.9.2
v8-compile-cache-lib: 3.0.1
yn: 3.1.1
optionalDependencies:
@@ -9115,23 +9468,25 @@ snapshots:
media-typer: 0.3.0
mime-types: 2.1.35
- typescript-eslint@8.39.0(eslint@9.32.0)(typescript@5.8.3):
+ typescript-eslint@8.42.0(eslint@9.35.0)(typescript@5.9.2):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0)(typescript@5.8.3))(eslint@9.32.0)(typescript@5.8.3)
- '@typescript-eslint/parser': 8.39.0(eslint@9.32.0)(typescript@5.8.3)
- '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.8.3)
- '@typescript-eslint/utils': 8.39.0(eslint@9.32.0)(typescript@5.8.3)
- eslint: 9.32.0
- typescript: 5.8.3
+ '@typescript-eslint/eslint-plugin': 8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.35.0)(typescript@5.9.2))(eslint@9.35.0)(typescript@5.9.2)
+ '@typescript-eslint/parser': 8.42.0(eslint@9.35.0)(typescript@5.9.2)
+ '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2)
+ '@typescript-eslint/utils': 8.42.0(eslint@9.35.0)(typescript@5.9.2)
+ eslint: 9.35.0
+ typescript: 5.9.2
transitivePeerDependencies:
- supports-color
typescript@5.8.3: {}
+ typescript@5.9.2: {}
+
uglify-js@3.19.3:
optional: true
- uint8array-extras@1.4.0: {}
+ uint8array-extras@1.5.0: {}
unbzip2-stream@1.4.3:
dependencies:
@@ -9155,7 +9510,7 @@ snapshots:
unrs-resolver@1.11.1:
dependencies:
- napi-postinstall: 0.3.2
+ napi-postinstall: 0.3.3
optionalDependencies:
'@unrs/resolver-binding-android-arm-eabi': 1.11.1
'@unrs/resolver-binding-android-arm64': 1.11.1
@@ -9177,9 +9532,9 @@ snapshots:
'@unrs/resolver-binding-win32-ia32-msvc': 1.11.1
'@unrs/resolver-binding-win32-x64-msvc': 1.11.1
- update-browserslist-db@1.1.3(browserslist@4.25.1):
+ update-browserslist-db@1.1.3(browserslist@4.25.4):
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.25.4
escalade: 3.2.0
picocolors: 1.1.1
@@ -9197,7 +9552,7 @@ snapshots:
v8-to-istanbul@9.3.0:
dependencies:
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/trace-mapping': 0.3.30
'@types/istanbul-lib-coverage': 2.0.6
convert-source-map: 2.0.0
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 4d69131..37ed1ea 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -1,4 +1,7 @@
packages:
- 'packages/*'
+ - 'apps/*'
+ - 'e2e/bun-e2e'
+ - 'e2e/bun'
onlyBuiltDependencies:
- 'nx'
diff --git a/project.json b/project.json
index e7bfefc..ee30d1a 100644
--- a/project.json
+++ b/project.json
@@ -4,6 +4,7 @@
"targets": {
"local-registry": {
"executor": "@nx/js:verdaccio",
+ "continuous": true,
"options": {
"port": 4873,
"config": ".verdaccio/config.yml",
@@ -11,6 +12,24 @@
"clear": false
}
},
+ "release-local": {
+ "cache": true,
+ "inputs": [
+ {
+ "input": "production",
+ "projects": ["tag:npm:public"]
+ },
+ "{workspaceRoot}/tools/scripts/release-local.mjs"
+ ],
+ "dependsOn": [
+ {
+ "target": "build",
+ "projects": ["tag:npm:public"]
+ }
+ ],
+ "command": "node ./tools/scripts/release-local.mjs",
+ "outputs": ["{workspaceRoot}/dist/local-registry/storage"]
+ },
"check-format:quick": {
"parallelism": false
},
diff --git a/tools/scripts/release-local.mjs b/tools/scripts/release-local.mjs
new file mode 100644
index 0000000..2354ec7
--- /dev/null
+++ b/tools/scripts/release-local.mjs
@@ -0,0 +1,36 @@
+import { rmSync } from 'node:fs';
+import { dirname, join } from 'node:path';
+import { fileURLToPath } from 'node:url';
+import { releasePublish, releaseVersion } from 'nx/release/index.js';
+
+(async () => {
+ console.log('=======> START');
+ const __filename = fileURLToPath(import.meta.url);
+ const __dirname = dirname(__filename);
+ console.log('=======> 2', __dirname);
+
+ rmSync(join(__dirname, '../../dist/local-registry/storage'), {
+ recursive: true,
+ force: true
+ });
+ console.log('=======> REMOVED');
+
+ await releaseVersion({
+ specifier: '0.0.0-e2e',
+ stageChanges: false,
+ gitCommit: false,
+ gitTag: false,
+ firstRelease: true,
+ versionActionsOptionsOverrides: {
+ skipLockFileUpdate: true
+ }
+ });
+ console.log('=======> VERSION');
+ await releasePublish({
+ tag: 'e2e',
+ firstRelease: true
+ });
+ console.log('=======> PUBLISH');
+
+ process.exit(0);
+})();
diff --git a/tools/scripts/tsconfig.release.json b/tools/scripts/tsconfig.release.json
new file mode 100644
index 0000000..d2d5db5
--- /dev/null
+++ b/tools/scripts/tsconfig.release.json
@@ -0,0 +1,9 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "compilerOptions": {
+ "outDir": "../scripts/tools-out",
+ "module": "commonjs",
+ "types": ["node"]
+ },
+ "include": ["**/*.ts"]
+}
diff --git a/tsconfig.base.json b/tsconfig.base.json
index 8084832..df0bfee 100644
--- a/tsconfig.base.json
+++ b/tsconfig.base.json
@@ -4,8 +4,7 @@
"declarationMap": true,
"emitDeclarationOnly": true,
"importHelpers": true,
- "isolatedModules": true,
- "lib": ["es2022"],
+ "lib": ["es2022", "esnext"],
"module": "nodenext",
"moduleResolution": "nodenext",
"noEmitOnError": true,
diff --git a/tsconfig.json b/tsconfig.json
index b665115..df28ab5 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -8,6 +8,12 @@
},
{
"path": "./e2e/elysia"
+ },
+ {
+ "path": "./packages/bun"
+ },
+ {
+ "path": "./e2e/bun-e2e"
}
]
}