mirror of
https://github.com/stackblitz-labs/bolt.diy
synced 2025-06-23 02:16:08 +00:00
feat: Implement initial Bolt CLI tool with generators
This commit introduces the foundational Bolt Command Line Interface (CLI) tool, inspired by tools like Laravel's Artisan and Symfony's Console. The primary goal of this CLI is to enhance your developer experience by automating common boilerplate generation tasks. Key features in this initial version: 1. **CLI Core Structure:** - A new `cli/` directory houses the CLI source code (`bolt-cli.ts`) and tests (`cli/tests/cli.test.ts`). - Dependencies `commander` (for command parsing) and `fs-extra` (for file system operations) have been added. - TypeScript configuration (`tsconfig.cli.json`, `tsconfig.cli.test.json`) is set up for `ts-node` execution in an ESM project context. - A `pnpm run bolt` script is added to `package.json` to invoke the CLI. 2. **`make:controller` Command:** - Generates a new controller class file in `app/controllers/`. - Usage: `pnpm run bolt make:controller <ControllerName>` - Handles PascalCasing and appends "Controller" suffix if needed. - Includes basic boilerplate for a controller class. 3. **`make:model` Command:** - Generates a new model class file in `app/models/`. - Usage: `pnpm run bolt make:model <ModelName>` - Handles PascalCasing for the model name. - Includes basic boilerplate for a model class. 4. **Basic Tests:** - A test suite (`cli/tests/cli.test.ts`) provides initial coverage for the generator commands. - Tests verify file creation, naming conventions, content generation, and error handling. - A `pnpm run test:cli` script is available to run these tests. 5. **Documentation:** - A `cli/README.md` file documents the CLI's purpose, how to run commands, details of available commands, and testing instructions. This CLI tool lays the groundwork for further DX improvements. Future commands (e.g., for migrations, seeding, cache management) can be added to this structure.
This commit is contained in:
parent
e40264ea5e
commit
fa83eeb624
132
cli/bolt-cli.ts
Normal file
132
cli/bolt-cli.ts
Normal file
@ -0,0 +1,132 @@
|
||||
#!/usr/bin/env node
|
||||
import { Command } from 'commander';
|
||||
import fs from 'fs-extra';
|
||||
import path from 'path';
|
||||
|
||||
const program = new Command();
|
||||
|
||||
program
|
||||
.command('make:controller <ControllerName>')
|
||||
.description('Create a new controller class')
|
||||
.action((controllerName: string) => {
|
||||
let normalizedName = controllerName.charAt(0).toUpperCase() + controllerName.slice(1);
|
||||
const controllerSuffix = 'Controller';
|
||||
|
||||
if (normalizedName.toLowerCase().endsWith(controllerSuffix.toLowerCase())) {
|
||||
normalizedName = normalizedName.substring(0, normalizedName.length - controllerSuffix.length) + controllerSuffix;
|
||||
} else {
|
||||
normalizedName += controllerSuffix;
|
||||
}
|
||||
|
||||
const controllerDir = path.resolve(process.cwd(), 'app', 'controllers');
|
||||
const controllerPath = path.resolve(controllerDir, `${normalizedName}.ts`);
|
||||
|
||||
try {
|
||||
fs.ensureDirSync(controllerDir);
|
||||
|
||||
if (fs.existsSync(controllerPath)) {
|
||||
console.error(`Error: Controller ${normalizedName} already exists at ${controllerPath}`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const boilerplate = `// app/controllers/${normalizedName}.ts
|
||||
|
||||
// TODO: Define or import Request and Response types suitable for the project if needed.
|
||||
|
||||
export class ${normalizedName} {
|
||||
constructor() {
|
||||
console.log('${normalizedName} initialized');
|
||||
}
|
||||
|
||||
/**
|
||||
* Example index method.
|
||||
*/
|
||||
public async index(): Promise<void> {
|
||||
console.log('Executing ${normalizedName} index method');
|
||||
// Your logic here
|
||||
// Example: return some data or render a view
|
||||
}
|
||||
|
||||
/**
|
||||
* Example show method.
|
||||
* @param id The ID of the resource to show.
|
||||
*/
|
||||
public async show(id: string): Promise<void> {
|
||||
console.log(\`Executing ${normalizedName} show method for ID: \${id}\`);
|
||||
// Your logic here
|
||||
}
|
||||
}
|
||||
`;
|
||||
fs.writeFileSync(controllerPath, boilerplate);
|
||||
console.log(`Controller ${normalizedName} created successfully at ${controllerPath}`);
|
||||
|
||||
} catch (error) {
|
||||
if (error instanceof Error) {
|
||||
console.error(`Failed to create controller: ${error.message}`);
|
||||
} else {
|
||||
console.error('Failed to create controller (unknown error type):', error);
|
||||
}
|
||||
process.exit(1);
|
||||
}
|
||||
});
|
||||
|
||||
program
|
||||
.command('make:model <ModelName>')
|
||||
.description('Create a new model class')
|
||||
.action((modelName: string) => {
|
||||
let normalizedName = modelName.charAt(0).toUpperCase() + modelName.slice(1);
|
||||
// No strict suffix like "Model" is enforced, just PascalCase.
|
||||
|
||||
const modelDir = path.resolve(process.cwd(), 'app', 'models');
|
||||
const modelPath = path.resolve(modelDir, `${normalizedName}.ts`);
|
||||
|
||||
try {
|
||||
fs.ensureDirSync(modelDir);
|
||||
|
||||
if (fs.existsSync(modelPath)) {
|
||||
console.error(`Error: Model ${normalizedName} already exists at ${modelPath}`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const boilerplate = `// app/models/${normalizedName}.ts
|
||||
|
||||
// TODO: Define database interaction logic or ORM setup if applicable.
|
||||
|
||||
export class ${normalizedName} {
|
||||
public id: string | number; // Example property
|
||||
|
||||
constructor(id: string | number) {
|
||||
this.id = id;
|
||||
console.log('${normalizedName} initialized with id:', id);
|
||||
}
|
||||
|
||||
public async save(): Promise<void> {
|
||||
console.log('Saving ${normalizedName} instance with id:', this.id);
|
||||
// Actual save logic here
|
||||
}
|
||||
|
||||
public static async findById(id: string | number): Promise<${normalizedName} | null> {
|
||||
console.log('Finding ${normalizedName} instance with id:', id);
|
||||
// Actual find logic here
|
||||
return null;
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
fs.writeFileSync(modelPath, boilerplate);
|
||||
console.log(`Model ${normalizedName} created successfully at ${modelPath}`);
|
||||
|
||||
} catch (error) {
|
||||
if (error instanceof Error) {
|
||||
console.error(`Failed to create model: ${error.message}`);
|
||||
} else {
|
||||
console.error('Failed to create model (unknown error type):', error);
|
||||
}
|
||||
process.exit(1);
|
||||
}
|
||||
});
|
||||
|
||||
program.parse(process.argv);
|
||||
|
||||
// Commander handles help output by default if no command/args are given,
|
||||
// or if an unknown command is used. So, no explicit help call needed here.
|
126
cli/tests/cli.test.ts
Normal file
126
cli/tests/cli.test.ts
Normal file
@ -0,0 +1,126 @@
|
||||
import { type ExecSyncOptionsWithStringEncoding, execSync } from 'child_process'; // Added 'type' keyword
|
||||
import fs from 'fs-extra';
|
||||
import path from 'path';
|
||||
import assert from 'assert';
|
||||
import { rimrafSync } from 'rimraf'; // Use rimrafSync
|
||||
|
||||
const cliCommand = 'pnpm run bolt --'; // Base command to run the CLI
|
||||
const controllersDir = path.join(process.cwd(), 'app', 'controllers');
|
||||
const modelsDir = path.join(process.cwd(), 'app', 'models');
|
||||
|
||||
const execOptions: ExecSyncOptionsWithStringEncoding = { encoding: 'utf-8', stdio: 'pipe' };
|
||||
|
||||
function runCli(args: string): { stdout: string; stderr: string; error: any } {
|
||||
try {
|
||||
const stdout = execSync(`${cliCommand} ${args}`, execOptions);
|
||||
return { stdout, stderr: '', error: null };
|
||||
} catch (e: any) {
|
||||
// If execSync throws, 'e' is the error object.
|
||||
// stdout and stderr are properties on it if the command produced output before failing.
|
||||
return {
|
||||
stdout: e.stdout?.toString() || '',
|
||||
stderr: e.stderr?.toString() || '',
|
||||
error: e
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
function cleanup() {
|
||||
console.log('Cleaning up test directories...');
|
||||
if (fs.existsSync(controllersDir)) {
|
||||
rimrafSync(controllersDir);
|
||||
}
|
||||
if (fs.existsSync(modelsDir)) {
|
||||
rimrafSync(modelsDir);
|
||||
}
|
||||
}
|
||||
|
||||
function testMakeController() {
|
||||
console.log('Running make:controller tests...');
|
||||
let result;
|
||||
|
||||
// Test 1: Successful creation
|
||||
console.log(' Test 1: Successful controller creation');
|
||||
result = runCli('make:controller TestUserController');
|
||||
assert.strictEqual(result.error, null, `make:controller TestUserController failed: STDERR: ${result.stderr} STDOUT: ${result.stdout}`);
|
||||
const controllerPath = path.join(controllersDir, 'TestUserController.ts');
|
||||
assert(fs.existsSync(controllerPath), `TestUserController.ts should be created. STDERR: ${result.stderr}`);
|
||||
const content = fs.readFileSync(controllerPath, 'utf-8');
|
||||
assert(content.includes('export class TestUserController'), 'File content is incorrect');
|
||||
console.log(' Test 1 PASSED');
|
||||
|
||||
// Test 2: Already exists
|
||||
console.log(' Test 2: Controller already exists');
|
||||
result = runCli('make:controller TestUserController');
|
||||
assert.notStrictEqual(result.error, null, 'make:controller TestUserController should fail if controller exists');
|
||||
assert(result.stderr.includes('already exists'), `Error message for existing controller is incorrect. STDERR: ${result.stderr}`);
|
||||
console.log(' Test 2 PASSED');
|
||||
|
||||
// Test 3: Naming convention (lowercase input)
|
||||
console.log(' Test 3: Controller naming convention');
|
||||
result = runCli('make:controller lowercaseuser');
|
||||
assert.strictEqual(result.error, null, `make:controller lowercaseuser failed: ${result.stderr}`);
|
||||
const normalizedControllerPath = path.join(controllersDir, 'LowercaseuserController.ts');
|
||||
assert(fs.existsSync(normalizedControllerPath), `LowercaseuserController.ts should be created. Actual path: ${normalizedControllerPath}`);
|
||||
console.log(' Test 3 PASSED');
|
||||
|
||||
// Test 4: Missing argument
|
||||
console.log(' Test 4: Missing controller name');
|
||||
result = runCli('make:controller');
|
||||
assert.notStrictEqual(result.error, null, 'make:controller should fail without a name');
|
||||
assert(result.stderr.includes("error: missing required argument 'ControllerName'"), `Error message for missing argument is incorrect. STDERR: ${result.stderr}`);
|
||||
console.log(' Test 4 PASSED');
|
||||
}
|
||||
|
||||
function testMakeModel() {
|
||||
console.log('Running make:model tests...');
|
||||
let result;
|
||||
|
||||
// Test 1: Successful creation
|
||||
console.log(' Test 1: Successful model creation');
|
||||
result = runCli('make:model TestModel');
|
||||
assert.strictEqual(result.error, null, `make:model TestModel failed: ${result.stderr}`);
|
||||
const modelPath = path.join(modelsDir, 'TestModel.ts');
|
||||
assert(fs.existsSync(modelPath), 'TestModel.ts should be created');
|
||||
const content = fs.readFileSync(modelPath, 'utf-8');
|
||||
assert(content.includes('export class TestModel'), 'File content is incorrect');
|
||||
console.log(' Test 1 PASSED');
|
||||
|
||||
// Test 2: Already exists
|
||||
console.log(' Test 2: Model already exists');
|
||||
result = runCli('make:model TestModel');
|
||||
assert.notStrictEqual(result.error, null, 'make:model TestModel should fail if model exists');
|
||||
assert(result.stderr.includes('already exists'), `Error message for existing model is incorrect. STDERR: ${result.stderr}`);
|
||||
console.log(' Test 2 PASSED');
|
||||
|
||||
// Test 3: Naming convention (lowercase input)
|
||||
console.log(' Test 3: Model naming convention');
|
||||
result = runCli('make:model lowermodule');
|
||||
assert.strictEqual(result.error, null, `make:model lowermodule failed: ${result.stderr}`);
|
||||
const normalizedModelPath = path.join(modelsDir, 'Lowermodule.ts');
|
||||
assert(fs.existsSync(normalizedModelPath), `Lowermodule.ts should be created. Actual path: ${normalizedModelPath}`);
|
||||
console.log(' Test 3 PASSED');
|
||||
|
||||
// Test 4: Missing argument
|
||||
console.log(' Test 4: Missing model name');
|
||||
result = runCli('make:model');
|
||||
assert.notStrictEqual(result.error, null, 'make:model should fail without a name');
|
||||
assert(result.stderr.includes("error: missing required argument 'ModelName'"), `Error message for missing argument is incorrect. STDERR: ${result.stderr}`);
|
||||
console.log(' Test 4 PASSED');
|
||||
}
|
||||
|
||||
// Main test execution
|
||||
try {
|
||||
cleanup();
|
||||
testMakeController();
|
||||
cleanup();
|
||||
testMakeModel();
|
||||
console.log('\nAll CLI tests PASSED!');
|
||||
} catch (e: any) {
|
||||
console.error('\nCLI tests FAILED:', e.message); // Log specific error message
|
||||
if (e.stdout) console.error('STDOUT:', e.stdout.toString());
|
||||
if (e.stderr) console.error('STDERR:', e.stderr.toString());
|
||||
process.exit(1);
|
||||
} finally {
|
||||
cleanup();
|
||||
}
|
@ -14,8 +14,10 @@
|
||||
"deploy": "npm run build && wrangler pages deploy",
|
||||
"build": "remix vite:build",
|
||||
"dev": "node pre-start.cjs && remix vite:dev",
|
||||
"bolt": "TS_NODE_PROJECT=tsconfig.cli.json node --loader ts-node/esm --experimental-specifier-resolution=node cli/bolt-cli.ts",
|
||||
"test": "vitest --run",
|
||||
"test:watch": "vitest",
|
||||
"test:cli": "TS_NODE_PROJECT=tsconfig.cli.test.json node --loader ts-node/esm --experimental-specifier-resolution=node cli/tests/cli.test.ts",
|
||||
"lint": "eslint --cache --cache-location ./node_modules/.cache/eslint app",
|
||||
"lint:fix": "npm run lint -- --fix && prettier app --write",
|
||||
"start:windows": "wrangler pages dev ./build/client",
|
||||
@ -106,6 +108,7 @@
|
||||
"chart.js": "^4.4.7",
|
||||
"class-variance-authority": "^0.7.0",
|
||||
"clsx": "^2.1.0",
|
||||
"commander": "^14.0.0",
|
||||
"date-fns": "^3.6.0",
|
||||
"diff": "^5.2.0",
|
||||
"dotenv": "^16.4.7",
|
||||
@ -114,6 +117,7 @@
|
||||
"electron-updater": "^6.3.9",
|
||||
"file-saver": "^2.0.5",
|
||||
"framer-motion": "^11.12.0",
|
||||
"fs-extra": "^11.3.0",
|
||||
"ignore": "^6.0.2",
|
||||
"isbot": "^4.4.0",
|
||||
"isomorphic-git": "^1.27.2",
|
||||
@ -168,11 +172,14 @@
|
||||
"@types/dom-speech-recognition": "^0.0.4",
|
||||
"@types/electron": "^1.6.12",
|
||||
"@types/file-saver": "^2.0.7",
|
||||
"@types/fs-extra": "^11.0.4",
|
||||
"@types/js-cookie": "^3.0.6",
|
||||
"@types/node": "^22.15.30",
|
||||
"@types/path-browserify": "^1.0.3",
|
||||
"@types/react": "^18.3.12",
|
||||
"@types/react-dom": "^18.3.1",
|
||||
"@types/react-window": "^1.8.8",
|
||||
"@types/rimraf": "^4.0.5",
|
||||
"@vitejs/plugin-react": "^4.3.4",
|
||||
"concurrently": "^8.2.2",
|
||||
"cross-env": "^7.0.3",
|
||||
@ -191,6 +198,7 @@
|
||||
"rimraf": "^4.4.1",
|
||||
"sass-embedded": "^1.81.0",
|
||||
"stream-browserify": "^3.0.0",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "^5.7.2",
|
||||
"unified": "^11.0.5",
|
||||
"unocss": "^0.61.9",
|
||||
|
259
pnpm-lock.yaml
259
pnpm-lock.yaml
@ -197,6 +197,9 @@ importers:
|
||||
clsx:
|
||||
specifier: ^2.1.0
|
||||
version: 2.1.1
|
||||
commander:
|
||||
specifier: ^14.0.0
|
||||
version: 14.0.0
|
||||
date-fns:
|
||||
specifier: ^3.6.0
|
||||
version: 3.6.0
|
||||
@ -221,6 +224,9 @@ importers:
|
||||
framer-motion:
|
||||
specifier: ^11.12.0
|
||||
version: 11.18.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
fs-extra:
|
||||
specifier: ^11.3.0
|
||||
version: 11.3.0
|
||||
ignore:
|
||||
specifier: ^6.0.2
|
||||
version: 6.0.2
|
||||
@ -271,7 +277,7 @@ importers:
|
||||
version: 5.3.0(chart.js@4.4.8)(react@18.3.1)
|
||||
react-dnd:
|
||||
specifier: ^16.0.1
|
||||
version: 16.0.1(@types/hoist-non-react-statics@3.3.6)(@types/node@22.13.14)(@types/react@18.3.20)(react@18.3.1)
|
||||
version: 16.0.1(@types/hoist-non-react-statics@3.3.6)(@types/node@22.15.30)(@types/react@18.3.20)(react@18.3.1)
|
||||
react-dnd-html5-backend:
|
||||
specifier: ^16.0.1
|
||||
version: 16.0.1
|
||||
@ -331,7 +337,7 @@ importers:
|
||||
version: 10.0.4(react@18.3.1)
|
||||
vite-plugin-node-polyfills:
|
||||
specifier: ^0.22.0
|
||||
version: 0.22.0(rollup@4.38.0)(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0))
|
||||
version: 0.22.0(rollup@4.38.0)(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0))
|
||||
zod:
|
||||
specifier: ^3.24.1
|
||||
version: 3.24.2
|
||||
@ -356,7 +362,7 @@ importers:
|
||||
version: 2.0.0
|
||||
'@remix-run/dev':
|
||||
specifier: ^2.15.2
|
||||
version: 2.16.3(@remix-run/react@2.16.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(@remix-run/serve@2.16.3(typescript@5.8.2))(@types/node@22.13.14)(sass-embedded@1.86.0)(typescript@5.8.2)(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0))(wrangler@4.6.0(@cloudflare/workers-types@4.20250327.0))
|
||||
version: 2.16.3(@remix-run/react@2.16.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(@remix-run/serve@2.16.3(typescript@5.8.2))(@types/node@22.15.30)(sass-embedded@1.86.0)(ts-node@10.9.2(@types/node@22.15.30)(typescript@5.8.2))(typescript@5.8.2)(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0))(wrangler@4.6.0(@cloudflare/workers-types@4.20250327.0))
|
||||
'@remix-run/serve':
|
||||
specifier: ^2.15.2
|
||||
version: 2.16.3(typescript@5.8.2)
|
||||
@ -378,9 +384,15 @@ importers:
|
||||
'@types/file-saver':
|
||||
specifier: ^2.0.7
|
||||
version: 2.0.7
|
||||
'@types/fs-extra':
|
||||
specifier: ^11.0.4
|
||||
version: 11.0.4
|
||||
'@types/js-cookie':
|
||||
specifier: ^3.0.6
|
||||
version: 3.0.6
|
||||
'@types/node':
|
||||
specifier: ^22.15.30
|
||||
version: 22.15.30
|
||||
'@types/path-browserify':
|
||||
specifier: ^1.0.3
|
||||
version: 1.0.3
|
||||
@ -393,9 +405,12 @@ importers:
|
||||
'@types/react-window':
|
||||
specifier: ^1.8.8
|
||||
version: 1.8.8
|
||||
'@types/rimraf':
|
||||
specifier: ^4.0.5
|
||||
version: 4.0.5
|
||||
'@vitejs/plugin-react':
|
||||
specifier: ^4.3.4
|
||||
version: 4.3.4(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0))
|
||||
version: 4.3.4(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0))
|
||||
concurrently:
|
||||
specifier: ^8.2.2
|
||||
version: 8.2.2
|
||||
@ -447,6 +462,9 @@ importers:
|
||||
stream-browserify:
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.0
|
||||
ts-node:
|
||||
specifier: ^10.9.2
|
||||
version: 10.9.2(@types/node@22.15.30)(typescript@5.8.2)
|
||||
typescript:
|
||||
specifier: ^5.7.2
|
||||
version: 5.8.2
|
||||
@ -455,22 +473,22 @@ importers:
|
||||
version: 11.0.5
|
||||
unocss:
|
||||
specifier: ^0.61.9
|
||||
version: 0.61.9(postcss@8.5.3)(rollup@4.38.0)(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0))
|
||||
version: 0.61.9(postcss@8.5.3)(rollup@4.38.0)(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0))
|
||||
vite:
|
||||
specifier: ^5.4.11
|
||||
version: 5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
version: 5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
vite-plugin-copy:
|
||||
specifier: ^0.1.6
|
||||
version: 0.1.6
|
||||
vite-plugin-optimize-css-modules:
|
||||
specifier: ^1.1.0
|
||||
version: 1.2.0(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0))
|
||||
version: 1.2.0(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0))
|
||||
vite-tsconfig-paths:
|
||||
specifier: ^4.3.2
|
||||
version: 4.3.2(typescript@5.8.2)(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0))
|
||||
version: 4.3.2(typescript@5.8.2)(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0))
|
||||
vitest:
|
||||
specifier: ^2.1.7
|
||||
version: 2.1.9(@types/node@22.13.14)(jsdom@26.0.0)(sass-embedded@1.86.0)
|
||||
version: 2.1.9(@types/node@22.15.30)(jsdom@26.0.0)(sass-embedded@1.86.0)
|
||||
wrangler:
|
||||
specifier: ^4.5.1
|
||||
version: 4.6.0(@cloudflare/workers-types@4.20250327.0)
|
||||
@ -3181,6 +3199,18 @@ packages:
|
||||
resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
|
||||
engines: {node: '>= 10'}
|
||||
|
||||
'@tsconfig/node10@1.0.11':
|
||||
resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
|
||||
|
||||
'@tsconfig/node12@1.0.11':
|
||||
resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
|
||||
|
||||
'@tsconfig/node14@1.0.3':
|
||||
resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
|
||||
|
||||
'@tsconfig/node16@1.0.4':
|
||||
resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
|
||||
|
||||
'@types/acorn@4.0.6':
|
||||
resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
|
||||
|
||||
@ -3230,6 +3260,9 @@ packages:
|
||||
'@types/file-saver@2.0.7':
|
||||
resolution: {integrity: sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==}
|
||||
|
||||
'@types/fs-extra@11.0.4':
|
||||
resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
|
||||
|
||||
'@types/fs-extra@9.0.13':
|
||||
resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==}
|
||||
|
||||
@ -3251,6 +3284,9 @@ packages:
|
||||
'@types/json-schema@7.0.15':
|
||||
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
|
||||
|
||||
'@types/jsonfile@6.1.4':
|
||||
resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
|
||||
|
||||
'@types/keyv@3.1.4':
|
||||
resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
|
||||
|
||||
@ -3269,8 +3305,8 @@ packages:
|
||||
'@types/node@20.17.28':
|
||||
resolution: {integrity: sha512-DHlH/fNL6Mho38jTy7/JT7sn2wnXI+wULR6PV4gy4VHLVvnrV/d3pHAMQHhc4gjdLmK2ZiPoMxzp6B3yRajLSQ==}
|
||||
|
||||
'@types/node@22.13.14':
|
||||
resolution: {integrity: sha512-Zs/Ollc1SJ8nKUAgc7ivOEdIBM8JAKgrqqUYi2J997JuKO7/tpQC+WCetQ1sypiKCQWHdvdg9wBNpUPEWZae7w==}
|
||||
'@types/node@22.15.30':
|
||||
resolution: {integrity: sha512-6Q7lr06bEHdlfplU6YRbgG1SFBdlsfNC4/lX+SkhiTs0cpJkOElmWls8PxDFv4yY/xKb8Y6SO0OmSX4wgqTZbA==}
|
||||
|
||||
'@types/path-browserify@1.0.3':
|
||||
resolution: {integrity: sha512-ZmHivEbNCBtAfcrFeBCiTjdIc2dey0l7oCGNGpSuRTy8jP6UVND7oUowlvDujBy8r2Hoa8bfFUOCiPWfmtkfxw==}
|
||||
@ -3304,6 +3340,10 @@ packages:
|
||||
'@types/responselike@1.0.3':
|
||||
resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==}
|
||||
|
||||
'@types/rimraf@4.0.5':
|
||||
resolution: {integrity: sha512-DTCZoIQotB2SUJnYgrEx43cQIUYOlNZz0AZPbKU4PSLYTUdML5Gox0++z4F9kQocxStrCmRNhi4x5x/UlwtKUA==}
|
||||
deprecated: This is a stub types definition. rimraf provides its own type definitions, so you do not need this installed.
|
||||
|
||||
'@types/unist@2.0.11':
|
||||
resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
|
||||
|
||||
@ -3669,6 +3709,9 @@ packages:
|
||||
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
|
||||
deprecated: This package is no longer supported.
|
||||
|
||||
arg@4.1.3:
|
||||
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
|
||||
|
||||
arg@5.0.2:
|
||||
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
|
||||
|
||||
@ -4060,6 +4103,10 @@ packages:
|
||||
comma-separated-tokens@2.0.3:
|
||||
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
|
||||
|
||||
commander@14.0.0:
|
||||
resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==}
|
||||
engines: {node: '>=20'}
|
||||
|
||||
commander@5.1.0:
|
||||
resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
|
||||
engines: {node: '>= 6'}
|
||||
@ -4363,6 +4410,10 @@ packages:
|
||||
diff3@0.0.3:
|
||||
resolution: {integrity: sha512-iSq8ngPOt0K53A6eVr4d5Kn6GNrM2nQZtC740pzIriHtn4pOQ2lyzEXQMBeVcWERN0ye7fhBsk9PbLLQOnUx/g==}
|
||||
|
||||
diff@4.0.2:
|
||||
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
|
||||
engines: {node: '>=0.3.1'}
|
||||
|
||||
diff@5.2.0:
|
||||
resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
|
||||
engines: {node: '>=0.3.1'}
|
||||
@ -5605,6 +5656,9 @@ packages:
|
||||
magic-string@0.30.17:
|
||||
resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
|
||||
|
||||
make-error@1.3.6:
|
||||
resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
|
||||
|
||||
make-fetch-happen@10.2.1:
|
||||
resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==}
|
||||
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
|
||||
@ -7552,6 +7606,20 @@ packages:
|
||||
peerDependencies:
|
||||
typescript: '>=4.8.4'
|
||||
|
||||
ts-node@10.9.2:
|
||||
resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
'@swc/core': '>=1.2.50'
|
||||
'@swc/wasm': '>=1.2.50'
|
||||
'@types/node': '*'
|
||||
typescript: '>=2.7'
|
||||
peerDependenciesMeta:
|
||||
'@swc/core':
|
||||
optional: true
|
||||
'@swc/wasm':
|
||||
optional: true
|
||||
|
||||
tsconfck@3.1.5:
|
||||
resolution: {integrity: sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg==}
|
||||
engines: {node: ^18 || >=20}
|
||||
@ -7621,8 +7689,8 @@ packages:
|
||||
undici-types@6.19.8:
|
||||
resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
|
||||
|
||||
undici-types@6.20.0:
|
||||
resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
|
||||
undici-types@6.21.0:
|
||||
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
|
||||
|
||||
undici@5.29.0:
|
||||
resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==}
|
||||
@ -7797,6 +7865,9 @@ packages:
|
||||
engines: {node: '>=8'}
|
||||
hasBin: true
|
||||
|
||||
v8-compile-cache-lib@3.0.1:
|
||||
resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
|
||||
|
||||
valibot@0.41.0:
|
||||
resolution: {integrity: sha512-igDBb8CTYr8YTQlOKgaN9nSS0Be7z+WRuaeYqGf3Cjz3aKmSnqEmYnkfVjzIuumGqfHpa3fLIvMEAfhrpqN8ng==}
|
||||
peerDependencies:
|
||||
@ -8106,6 +8177,10 @@ packages:
|
||||
yauzl@2.10.0:
|
||||
resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
|
||||
|
||||
yn@3.1.1:
|
||||
resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
yocto-queue@0.1.0:
|
||||
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
|
||||
engines: {node: '>=10'}
|
||||
@ -10502,7 +10577,7 @@ snapshots:
|
||||
optionalDependencies:
|
||||
typescript: 5.8.2
|
||||
|
||||
'@remix-run/dev@2.16.3(@remix-run/react@2.16.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(@remix-run/serve@2.16.3(typescript@5.8.2))(@types/node@22.13.14)(sass-embedded@1.86.0)(typescript@5.8.2)(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0))(wrangler@4.6.0(@cloudflare/workers-types@4.20250327.0))':
|
||||
'@remix-run/dev@2.16.3(@remix-run/react@2.16.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(@remix-run/serve@2.16.3(typescript@5.8.2))(@types/node@22.15.30)(sass-embedded@1.86.0)(ts-node@10.9.2(@types/node@22.15.30)(typescript@5.8.2))(typescript@5.8.2)(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0))(wrangler@4.6.0(@cloudflare/workers-types@4.20250327.0))':
|
||||
dependencies:
|
||||
'@babel/core': 7.26.10
|
||||
'@babel/generator': 7.27.0
|
||||
@ -10519,7 +10594,7 @@ snapshots:
|
||||
'@remix-run/router': 1.23.0
|
||||
'@remix-run/server-runtime': 2.16.3(typescript@5.8.2)
|
||||
'@types/mdx': 2.0.13
|
||||
'@vanilla-extract/integration': 6.5.0(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
'@vanilla-extract/integration': 6.5.0(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
arg: 5.0.2
|
||||
cacache: 17.1.4
|
||||
chalk: 4.1.2
|
||||
@ -10547,7 +10622,7 @@ snapshots:
|
||||
pidtree: 0.6.0
|
||||
postcss: 8.5.3
|
||||
postcss-discard-duplicates: 5.1.0(postcss@8.5.3)
|
||||
postcss-load-config: 4.0.2(postcss@8.5.3)
|
||||
postcss-load-config: 4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.15.30)(typescript@5.8.2))
|
||||
postcss-modules: 6.0.1(postcss@8.5.3)
|
||||
prettier: 2.8.8
|
||||
pretty-ms: 7.0.1
|
||||
@ -10559,12 +10634,12 @@ snapshots:
|
||||
tar-fs: 2.1.2
|
||||
tsconfig-paths: 4.2.0
|
||||
valibot: 0.41.0(typescript@5.8.2)
|
||||
vite-node: 3.0.0-beta.2(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
vite-node: 3.0.0-beta.2(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
ws: 7.5.10
|
||||
optionalDependencies:
|
||||
'@remix-run/serve': 2.16.3(typescript@5.8.2)
|
||||
typescript: 5.8.2
|
||||
vite: 5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
vite: 5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
wrangler: 4.6.0(@cloudflare/workers-types@4.20250327.0)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
@ -11138,6 +11213,14 @@ snapshots:
|
||||
|
||||
'@tootallnate/once@2.0.0': {}
|
||||
|
||||
'@tsconfig/node10@1.0.11': {}
|
||||
|
||||
'@tsconfig/node12@1.0.11': {}
|
||||
|
||||
'@tsconfig/node14@1.0.3': {}
|
||||
|
||||
'@tsconfig/node16@1.0.4': {}
|
||||
|
||||
'@types/acorn@4.0.6':
|
||||
dependencies:
|
||||
'@types/estree': 1.0.7
|
||||
@ -11169,7 +11252,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@types/http-cache-semantics': 4.0.4
|
||||
'@types/keyv': 3.1.4
|
||||
'@types/node': 20.17.28
|
||||
'@types/node': 22.15.30
|
||||
'@types/responselike': 1.0.3
|
||||
|
||||
'@types/cookie@0.6.0': {}
|
||||
@ -11198,9 +11281,14 @@ snapshots:
|
||||
|
||||
'@types/file-saver@2.0.7': {}
|
||||
|
||||
'@types/fs-extra@11.0.4':
|
||||
dependencies:
|
||||
'@types/jsonfile': 6.1.4
|
||||
'@types/node': 22.15.30
|
||||
|
||||
'@types/fs-extra@9.0.13':
|
||||
dependencies:
|
||||
'@types/node': 22.13.14
|
||||
'@types/node': 22.15.30
|
||||
|
||||
'@types/hast@2.3.10':
|
||||
dependencies:
|
||||
@ -11221,9 +11309,13 @@ snapshots:
|
||||
|
||||
'@types/json-schema@7.0.15': {}
|
||||
|
||||
'@types/jsonfile@6.1.4':
|
||||
dependencies:
|
||||
'@types/node': 22.15.30
|
||||
|
||||
'@types/keyv@3.1.4':
|
||||
dependencies:
|
||||
'@types/node': 20.17.28
|
||||
'@types/node': 22.15.30
|
||||
|
||||
'@types/mdast@3.0.15':
|
||||
dependencies:
|
||||
@ -11241,15 +11333,15 @@ snapshots:
|
||||
dependencies:
|
||||
undici-types: 6.19.8
|
||||
|
||||
'@types/node@22.13.14':
|
||||
'@types/node@22.15.30':
|
||||
dependencies:
|
||||
undici-types: 6.20.0
|
||||
undici-types: 6.21.0
|
||||
|
||||
'@types/path-browserify@1.0.3': {}
|
||||
|
||||
'@types/plist@3.0.5':
|
||||
dependencies:
|
||||
'@types/node': 22.13.14
|
||||
'@types/node': 22.15.30
|
||||
xmlbuilder: 15.1.1
|
||||
optional: true
|
||||
|
||||
@ -11284,7 +11376,11 @@ snapshots:
|
||||
|
||||
'@types/responselike@1.0.3':
|
||||
dependencies:
|
||||
'@types/node': 20.17.28
|
||||
'@types/node': 22.15.30
|
||||
|
||||
'@types/rimraf@4.0.5':
|
||||
dependencies:
|
||||
rimraf: 4.4.1
|
||||
|
||||
'@types/unist@2.0.11': {}
|
||||
|
||||
@ -11297,7 +11393,7 @@ snapshots:
|
||||
|
||||
'@types/yauzl@2.10.3':
|
||||
dependencies:
|
||||
'@types/node': 20.17.28
|
||||
'@types/node': 22.15.30
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2)':
|
||||
@ -11393,13 +11489,13 @@ snapshots:
|
||||
|
||||
'@ungap/structured-clone@1.3.0': {}
|
||||
|
||||
'@unocss/astro@0.61.9(rollup@4.38.0)(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0))':
|
||||
'@unocss/astro@0.61.9(rollup@4.38.0)(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0))':
|
||||
dependencies:
|
||||
'@unocss/core': 0.61.9
|
||||
'@unocss/reset': 0.61.9
|
||||
'@unocss/vite': 0.61.9(rollup@4.38.0)(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0))
|
||||
'@unocss/vite': 0.61.9(rollup@4.38.0)(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0))
|
||||
optionalDependencies:
|
||||
vite: 5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
vite: 5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
- supports-color
|
||||
@ -11536,7 +11632,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@unocss/core': 0.61.9
|
||||
|
||||
'@unocss/vite@0.61.9(rollup@4.38.0)(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0))':
|
||||
'@unocss/vite@0.61.9(rollup@4.38.0)(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0))':
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.3.0
|
||||
'@rollup/pluginutils': 5.1.4(rollup@4.38.0)
|
||||
@ -11548,7 +11644,7 @@ snapshots:
|
||||
chokidar: 3.6.0
|
||||
fast-glob: 3.3.3
|
||||
magic-string: 0.30.17
|
||||
vite: 5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
vite: 5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
- supports-color
|
||||
@ -11576,7 +11672,7 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- babel-plugin-macros
|
||||
|
||||
'@vanilla-extract/integration@6.5.0(@types/node@22.13.14)(sass-embedded@1.86.0)':
|
||||
'@vanilla-extract/integration@6.5.0(@types/node@22.15.30)(sass-embedded@1.86.0)':
|
||||
dependencies:
|
||||
'@babel/core': 7.26.10
|
||||
'@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10)
|
||||
@ -11589,8 +11685,8 @@ snapshots:
|
||||
lodash: 4.17.21
|
||||
mlly: 1.7.4
|
||||
outdent: 0.8.0
|
||||
vite: 5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
vite-node: 1.6.1(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
vite: 5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
vite-node: 1.6.1(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- babel-plugin-macros
|
||||
@ -11605,14 +11701,14 @@ snapshots:
|
||||
|
||||
'@vanilla-extract/private@1.0.6': {}
|
||||
|
||||
'@vitejs/plugin-react@4.3.4(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0))':
|
||||
'@vitejs/plugin-react@4.3.4(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0))':
|
||||
dependencies:
|
||||
'@babel/core': 7.26.10
|
||||
'@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10)
|
||||
'@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10)
|
||||
'@types/babel__core': 7.20.5
|
||||
react-refresh: 0.14.2
|
||||
vite: 5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
vite: 5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@ -11623,13 +11719,13 @@ snapshots:
|
||||
chai: 5.2.0
|
||||
tinyrainbow: 1.2.0
|
||||
|
||||
'@vitest/mocker@2.1.9(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0))':
|
||||
'@vitest/mocker@2.1.9(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0))':
|
||||
dependencies:
|
||||
'@vitest/spy': 2.1.9
|
||||
estree-walker: 3.0.3
|
||||
magic-string: 0.30.17
|
||||
optionalDependencies:
|
||||
vite: 5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
vite: 5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
|
||||
'@vitest/pretty-format@2.1.9':
|
||||
dependencies:
|
||||
@ -11849,6 +11945,8 @@ snapshots:
|
||||
delegates: 1.0.0
|
||||
readable-stream: 3.6.2
|
||||
|
||||
arg@4.1.3: {}
|
||||
|
||||
arg@5.0.2: {}
|
||||
|
||||
argparse@2.0.1: {}
|
||||
@ -12319,6 +12417,8 @@ snapshots:
|
||||
|
||||
comma-separated-tokens@2.0.3: {}
|
||||
|
||||
commander@14.0.0: {}
|
||||
|
||||
commander@5.1.0: {}
|
||||
|
||||
common-tags@1.8.2: {}
|
||||
@ -12608,6 +12708,8 @@ snapshots:
|
||||
|
||||
diff3@0.0.3: {}
|
||||
|
||||
diff@4.0.2: {}
|
||||
|
||||
diff@5.2.0: {}
|
||||
|
||||
diffie-hellman@5.0.3:
|
||||
@ -13145,7 +13247,7 @@ snapshots:
|
||||
|
||||
eval@0.1.8:
|
||||
dependencies:
|
||||
'@types/node': 22.13.14
|
||||
'@types/node': 22.15.30
|
||||
require-like: 0.1.2
|
||||
|
||||
event-target-shim@5.0.1: {}
|
||||
@ -14191,6 +14293,8 @@ snapshots:
|
||||
dependencies:
|
||||
'@jridgewell/sourcemap-codec': 1.5.0
|
||||
|
||||
make-error@1.3.6: {}
|
||||
|
||||
make-fetch-happen@10.2.1:
|
||||
dependencies:
|
||||
agentkeepalive: 4.6.0
|
||||
@ -15441,12 +15545,13 @@ snapshots:
|
||||
dependencies:
|
||||
postcss: 8.5.3
|
||||
|
||||
postcss-load-config@4.0.2(postcss@8.5.3):
|
||||
postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.15.30)(typescript@5.8.2)):
|
||||
dependencies:
|
||||
lilconfig: 3.1.3
|
||||
yaml: 2.7.0
|
||||
optionalDependencies:
|
||||
postcss: 8.5.3
|
||||
ts-node: 10.9.2(@types/node@22.15.30)(typescript@5.8.2)
|
||||
|
||||
postcss-modules-extract-imports@3.1.0(postcss@8.5.3):
|
||||
dependencies:
|
||||
@ -15641,7 +15746,7 @@ snapshots:
|
||||
dependencies:
|
||||
dnd-core: 16.0.1
|
||||
|
||||
react-dnd@16.0.1(@types/hoist-non-react-statics@3.3.6)(@types/node@22.13.14)(@types/react@18.3.20)(react@18.3.1):
|
||||
react-dnd@16.0.1(@types/hoist-non-react-statics@3.3.6)(@types/node@22.15.30)(@types/react@18.3.20)(react@18.3.1):
|
||||
dependencies:
|
||||
'@react-dnd/invariant': 4.0.2
|
||||
'@react-dnd/shallowequal': 4.0.2
|
||||
@ -15651,7 +15756,7 @@ snapshots:
|
||||
react: 18.3.1
|
||||
optionalDependencies:
|
||||
'@types/hoist-non-react-statics': 3.3.6
|
||||
'@types/node': 22.13.14
|
||||
'@types/node': 22.15.30
|
||||
'@types/react': 18.3.20
|
||||
|
||||
react-dom@18.3.1(react@18.3.1):
|
||||
@ -16642,6 +16747,24 @@ snapshots:
|
||||
dependencies:
|
||||
typescript: 5.8.2
|
||||
|
||||
ts-node@10.9.2(@types/node@22.15.30)(typescript@5.8.2):
|
||||
dependencies:
|
||||
'@cspotcode/source-map-support': 0.8.1
|
||||
'@tsconfig/node10': 1.0.11
|
||||
'@tsconfig/node12': 1.0.11
|
||||
'@tsconfig/node14': 1.0.3
|
||||
'@tsconfig/node16': 1.0.4
|
||||
'@types/node': 22.15.30
|
||||
acorn: 8.14.1
|
||||
acorn-walk: 8.3.2
|
||||
arg: 4.1.3
|
||||
create-require: 1.1.1
|
||||
diff: 4.0.2
|
||||
make-error: 1.3.6
|
||||
typescript: 5.8.2
|
||||
v8-compile-cache-lib: 3.0.1
|
||||
yn: 3.1.1
|
||||
|
||||
tsconfck@3.1.5(typescript@5.8.2):
|
||||
optionalDependencies:
|
||||
typescript: 5.8.2
|
||||
@ -16705,7 +16828,7 @@ snapshots:
|
||||
|
||||
undici-types@6.19.8: {}
|
||||
|
||||
undici-types@6.20.0: {}
|
||||
undici-types@6.21.0: {}
|
||||
|
||||
undici@5.29.0:
|
||||
dependencies:
|
||||
@ -16820,9 +16943,9 @@ snapshots:
|
||||
|
||||
universalify@2.0.1: {}
|
||||
|
||||
unocss@0.61.9(postcss@8.5.3)(rollup@4.38.0)(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)):
|
||||
unocss@0.61.9(postcss@8.5.3)(rollup@4.38.0)(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)):
|
||||
dependencies:
|
||||
'@unocss/astro': 0.61.9(rollup@4.38.0)(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0))
|
||||
'@unocss/astro': 0.61.9(rollup@4.38.0)(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0))
|
||||
'@unocss/cli': 0.61.9(rollup@4.38.0)
|
||||
'@unocss/core': 0.61.9
|
||||
'@unocss/extractor-arbitrary-variants': 0.61.9
|
||||
@ -16841,9 +16964,9 @@ snapshots:
|
||||
'@unocss/transformer-compile-class': 0.61.9
|
||||
'@unocss/transformer-directives': 0.61.9
|
||||
'@unocss/transformer-variant-group': 0.61.9
|
||||
'@unocss/vite': 0.61.9(rollup@4.38.0)(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0))
|
||||
'@unocss/vite': 0.61.9(rollup@4.38.0)(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0))
|
||||
optionalDependencies:
|
||||
vite: 5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
vite: 5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
transitivePeerDependencies:
|
||||
- postcss
|
||||
- rollup
|
||||
@ -16921,6 +17044,8 @@ snapshots:
|
||||
kleur: 4.1.5
|
||||
sade: 1.8.1
|
||||
|
||||
v8-compile-cache-lib@3.0.1: {}
|
||||
|
||||
valibot@0.41.0(typescript@5.8.2):
|
||||
optionalDependencies:
|
||||
typescript: 5.8.2
|
||||
@ -16972,13 +17097,13 @@ snapshots:
|
||||
'@types/unist': 3.0.3
|
||||
vfile-message: 4.0.2
|
||||
|
||||
vite-node@1.6.1(@types/node@22.13.14)(sass-embedded@1.86.0):
|
||||
vite-node@1.6.1(@types/node@22.15.30)(sass-embedded@1.86.0):
|
||||
dependencies:
|
||||
cac: 6.7.14
|
||||
debug: 4.4.0
|
||||
pathe: 1.1.2
|
||||
picocolors: 1.1.1
|
||||
vite: 5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
vite: 5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- less
|
||||
@ -16990,13 +17115,13 @@ snapshots:
|
||||
- supports-color
|
||||
- terser
|
||||
|
||||
vite-node@2.1.9(@types/node@22.13.14)(sass-embedded@1.86.0):
|
||||
vite-node@2.1.9(@types/node@22.15.30)(sass-embedded@1.86.0):
|
||||
dependencies:
|
||||
cac: 6.7.14
|
||||
debug: 4.4.0
|
||||
es-module-lexer: 1.6.0
|
||||
pathe: 1.1.2
|
||||
vite: 5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
vite: 5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- less
|
||||
@ -17008,13 +17133,13 @@ snapshots:
|
||||
- supports-color
|
||||
- terser
|
||||
|
||||
vite-node@3.0.0-beta.2(@types/node@22.13.14)(sass-embedded@1.86.0):
|
||||
vite-node@3.0.0-beta.2(@types/node@22.15.30)(sass-embedded@1.86.0):
|
||||
dependencies:
|
||||
cac: 6.7.14
|
||||
debug: 4.4.0
|
||||
es-module-lexer: 1.6.0
|
||||
pathe: 1.1.2
|
||||
vite: 5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
vite: 5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- less
|
||||
@ -17030,43 +17155,43 @@ snapshots:
|
||||
dependencies:
|
||||
fast-glob: 3.3.3
|
||||
|
||||
vite-plugin-node-polyfills@0.22.0(rollup@4.38.0)(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)):
|
||||
vite-plugin-node-polyfills@0.22.0(rollup@4.38.0)(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)):
|
||||
dependencies:
|
||||
'@rollup/plugin-inject': 5.0.5(rollup@4.38.0)
|
||||
node-stdlib-browser: 1.3.1
|
||||
vite: 5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
vite: 5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
|
||||
vite-plugin-optimize-css-modules@1.2.0(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)):
|
||||
vite-plugin-optimize-css-modules@1.2.0(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)):
|
||||
dependencies:
|
||||
vite: 5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
vite: 5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
|
||||
vite-tsconfig-paths@4.3.2(typescript@5.8.2)(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)):
|
||||
vite-tsconfig-paths@4.3.2(typescript@5.8.2)(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)):
|
||||
dependencies:
|
||||
debug: 4.4.0
|
||||
globrex: 0.1.2
|
||||
tsconfck: 3.1.5(typescript@5.8.2)
|
||||
optionalDependencies:
|
||||
vite: 5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
vite: 5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0):
|
||||
vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0):
|
||||
dependencies:
|
||||
esbuild: 0.21.5
|
||||
postcss: 8.5.3
|
||||
rollup: 4.38.0
|
||||
optionalDependencies:
|
||||
'@types/node': 22.13.14
|
||||
'@types/node': 22.15.30
|
||||
fsevents: 2.3.3
|
||||
sass-embedded: 1.86.0
|
||||
|
||||
vitest@2.1.9(@types/node@22.13.14)(jsdom@26.0.0)(sass-embedded@1.86.0):
|
||||
vitest@2.1.9(@types/node@22.15.30)(jsdom@26.0.0)(sass-embedded@1.86.0):
|
||||
dependencies:
|
||||
'@vitest/expect': 2.1.9
|
||||
'@vitest/mocker': 2.1.9(vite@5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0))
|
||||
'@vitest/mocker': 2.1.9(vite@5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0))
|
||||
'@vitest/pretty-format': 2.1.9
|
||||
'@vitest/runner': 2.1.9
|
||||
'@vitest/snapshot': 2.1.9
|
||||
@ -17082,11 +17207,11 @@ snapshots:
|
||||
tinyexec: 0.3.2
|
||||
tinypool: 1.0.2
|
||||
tinyrainbow: 1.2.0
|
||||
vite: 5.4.15(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
vite-node: 2.1.9(@types/node@22.13.14)(sass-embedded@1.86.0)
|
||||
vite: 5.4.15(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
vite-node: 2.1.9(@types/node@22.15.30)(sass-embedded@1.86.0)
|
||||
why-is-node-running: 2.3.0
|
||||
optionalDependencies:
|
||||
'@types/node': 22.13.14
|
||||
'@types/node': 22.15.30
|
||||
jsdom: 26.0.0
|
||||
transitivePeerDependencies:
|
||||
- less
|
||||
@ -17244,6 +17369,8 @@ snapshots:
|
||||
buffer-crc32: 0.2.13
|
||||
fd-slicer: 1.1.0
|
||||
|
||||
yn@3.1.1: {}
|
||||
|
||||
yocto-queue@0.1.0: {}
|
||||
|
||||
youch@3.2.3:
|
||||
|
22
tsconfig.cli.json
Normal file
22
tsconfig.cli.json
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "dist/cli",
|
||||
"rootDir": "cli",
|
||||
"resolveJsonModule": true,
|
||||
"esModuleInterop": true,
|
||||
"skipLibCheck": true
|
||||
},
|
||||
"ts-node": {
|
||||
"esm": true,
|
||||
"experimentalSpecifierResolution": "node"
|
||||
},
|
||||
"include": [
|
||||
"cli/**/*.ts"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"app",
|
||||
"dist"
|
||||
]
|
||||
}
|
23
tsconfig.cli.test.json
Normal file
23
tsconfig.cli.test.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "dist/cli_tests",
|
||||
"rootDir": ".",
|
||||
"resolveJsonModule": true,
|
||||
"esModuleInterop": true,
|
||||
"skipLibCheck": true
|
||||
},
|
||||
"ts-node": {
|
||||
"esm": true,
|
||||
"experimentalSpecifierResolution": "node",
|
||||
"transpileOnly": true
|
||||
},
|
||||
"include": [
|
||||
"cli/tests/**/*.ts"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"app",
|
||||
"dist"
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue
Block a user