
Research
5 Malicious Chrome Extensions Enable Session Hijacking in Enterprise HR and ERP Systems
Five coordinated Chrome extensions enable session hijacking and block security controls across enterprise HR and ERP platforms.
This package provides the JavaScript-to-Rust bridge that enables vite-plus to execute JavaScript tooling (like Vite, Vitest, and oxlint) from the Rust core. It uses NAPI-RS to create native Node.js bindings.
This package provides the JavaScript-to-Rust bridge that enables vite-plus to execute JavaScript tooling (like Vite, Vitest, and oxlint) from the Rust core. It uses NAPI-RS to create native Node.js bindings.
Add to your project's devDependencies:
pnpm add -D @voidzero-dev/vite-plus
# or
npm install -D @voidzero-dev/vite-plus
# or
yarn add -D @voidzero-dev/vite-plus
build command will use rolldown-vite to build your project.
npx vite build
test command will use vitest to test your project.
npx vite test
lint command will use oxlint to lint your project.
npx vite lint
You can use vite run to run any task that you want.
Run a task on the current project.
npx vite run <task-name>
Run all task with the same name in monorepo.
npx vite run -r <task-name>
The architecture follows a callback-based pattern where JavaScript functions resolve tool paths and pass them to Rust for execution:
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ JavaScript │────▶│ NAPI Bridge │────▶│ Rust Core │
│ (bin.ts) │ │ (binding/) │ │ (vite_task) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
Resolves tool Converts JS Executes tools
binary paths callbacks to Rust with resolved paths
src/)The JavaScript layer is responsible for resolving tool binary paths:
bin.ts: Entry point that initializes the CLI with tool resolversvite.ts: Resolves the Vite binary path for build commandstest.ts: Resolves the Vitest binary path for test commandslint.ts: Resolves the oxlint binary path for lintingindex.ts: Exports the defineConfig helper for Vite configurationEach resolver function returns:
{
binPath: string, // Absolute path to the tool's binary
envs: Record<string, string> // Environment variables to set
}
binding/)The binding layer provides the JavaScript-to-Rust bridge using NAPI-RS:
src/lib.rs: Defines the NAPI bindings and type conversionsindex.d.ts: TypeScript type definitions (auto-generated)index.js: Native module loader (auto-generated)The binding converts JavaScript callbacks into Rust futures using ThreadsafeFunction.
The Rust core (crates/vite_task) receives the tool resolvers through CliOptions:
pub struct CliOptions {
pub lint: LintFn, // Callback to resolve lint tool
pub vite: ViteFn, // Callback to resolve vite tool
pub test: TestFn, // Callback to resolve test tool
}
bin.ts calls run() with tool resolver functionsvite build):
When a user runs vite-plus build:
vite callback functionvite.ts resolves vite/bin/vite.js pathnode /path/to/vite.js build [args]# Build the native binding
pnpm build
# Or watch for changes
pnpm build:debug
src/:// src/mytool.ts
export async function mytool() {
const binPath = require.resolve('mytool/bin/cli.js');
return { binPath, envs: {} };
}
CliOptions in binding/src/lib.rs:pub struct CliOptions {
// ... existing fields
pub mytool: Arc<ThreadsafeFunction<(), Promise<JsCommandResolvedResult>>>,
}
bin.ts:import { mytool } from './mytool.js';
run({ lint, vite, test, mytool });
napi: Node-API bindings for Rustnapi-derive: Procedural macros for NAPIvite, vitest, oxlint: The actual tools being wrappedFAQs
This package provides the JavaScript-to-Rust bridge that enables vite-plus to execute JavaScript tooling (like Vite, Vitest, and oxlint) from the Rust core. It uses NAPI-RS to create native Node.js bindings.
We found that vite-plus demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Five coordinated Chrome extensions enable session hijacking and block security controls across enterprise HR and ERP platforms.

Research
Node.js patched a crash bug where AsyncLocalStorage could cause stack overflows to bypass error handlers and terminate production servers.

Research
/Security News
A malicious Chrome extension steals newly created MEXC API keys, exfiltrates them to Telegram, and enables full account takeover with trading and withdrawal rights.