
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
depi-node-client
Advanced tools
GRPC Client for communicating with depi from node in typescript or javascript
This is published as depi-node-client at npmjs and contains the classes, plus utility functions at a higher level of abstraction, for the gRPC protocol buffers for depi.
The most stright forward way to communicate with depi is by using the depiUtils as shown below. If you are writing a vscode extension then look at the next section of how to obtain a session.
import { depiUtils } from 'depi-node-client';
const url = '127.0.0.1:5051';
const userName = 'demo';
const password = '123456';
// Start out by logging in.
const depiSession = await depiUtils.logInDepiClient(url, userName, password);
// Each call takes a session as first argument
const resourceGroups = await depiUtils.getResourceGroups(depiSession);
resourceGroups.forEach(rg => console.log(JSON.stringify(rg)));
// Finally logOut..
await logOut(depiSession);
This node-module also provides a set of calls into the Depi Browser vscode extension. These provide a way to reuse the server url, login credentials, etc. from the one depi extension, call out and reuse generic depi GUI functionality and a way to communicate (revealing resources) across extensions for differnet depi tools.
import { DepiExtensionApi, depiUtils } from 'depi-node-client';
const depiExtApi = new DepiExtensionApi(console.log);
// Each call will force the depi-extension to login in case it hasn't already.
await depiExtApi.showBlackboard();
// This will also force the depi-extension to login and additionally create a session tied to this instance of depiExtApi.
const depiSession = await depiExtApi.getDepiSession();
// Once the session is obtained the functions from depiUtils can be used right away.
const resourceGroups = await depiUtils.getResourceGroups(depiSession);
resourceGroups.forEach(rg => console.log(JSON.stringify(rg)));
// Finally logout and destroy the session
await depiExtApi.destroy();
Install dependencies:
npm install
# Apple M1 users should install for x64 due to grpc-tools not supporting arm64
npm install --target_arch=x64
Use proto compiler and ts-protoc-gen to generate the TypeScript files:
Important! This needs to be executed from the directory where this file is.
npm run build
To use the async API for the client. Including the following snippet when creating the depi-client instance.
These *Async methods are generate in the d.ts by generateAsyncTypes.js which is run as part of the build.
const { DepiClient } = require('./pbs/depi_grpc_pb');
const addAsyncMethods = require('./pbs/addAsyncMethods');
const client = new DepiClient('127.0.0.1:5150', grpc.credentials.createInsecure());
addAsyncMethods(client);
// Example using the async/promise methods,
const req = new depi.LoginRequest();
const loginResponse = await client.loginAsync(req);
Note that the recommended way to communicate with depi is thru the higher level methods from src/depiUtils.ts.
(Make sure to npm run build and check it's up-to-date). Also if adding a function in depi-utils - don't forget to add it to the default export!
npm run compilex.x.x) in package.jsongit commit -am "Node-client release x.x.x"git push origin mainnpm publish ./FAQs
GRPC Client for communicating with depi from node in typescript or javascript
The npm package depi-node-client receives a total of 1 weekly downloads. As such, depi-node-client popularity was classified as not popular.
We found that depi-node-client demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.