
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
Bridge between Axios, CodeceptJS, and Playwright REST APIs with a unified interface.
npm install flex-rest
import BaseApi from 'flex-rest';
const api = new BaseApi({
token: 'your-bearer-token',
allowInsecureSSL: false,
logFile: 'output/api_logs.txt' // optional
});
const response = await api.get('https://api.example.com/users');
const user = await api.post('https://api.example.com/users', { name: 'John' });
await api.put('https://api.example.com/users/1', { name: 'Jane' });
await api.delete('https://api.example.com/users/1');
import BaseApi from 'flex-rest';
interface User {
id: number;
name: string;
email: string;
}
class UserApi extends BaseApi {
private baseUrl = 'https://api.example.com';
constructor() {
super({
token: 'your-token',
logFile: 'output/user_api.txt' // separate log file per service
});
}
async getUsers() {
return this.get<User[]>(`${this.baseUrl}/users`);
}
async createUser(data: { name: string; email: string }) {
return this.post<User>(`${this.baseUrl}/users`, data);
}
async updateUser(id: number, data: Partial<User>) {
return this.put<User>(`${this.baseUrl}/users/${id}`, data);
}
async deleteUser(id: number) {
return this.delete(`${this.baseUrl}/users/${id}`);
}
}
const api = new UserApi();
const users = await api.getUsers();
BaseApi automatically detects CodeceptJS context. No additional setup needed:
import BaseApi from 'flex-rest';
class MyApi extends BaseApi {
async getUsers() {
return this.get('https://api.example.com/users');
}
}
// In your CodeceptJS test
Scenario('test API', async ({ I }) => {
const api = new MyApi({ token: 'test-token' });
const response = await api.getUsers();
// Uses I.sendGetRequest automatically
});
import { PlaywrightApi } from 'flex-rest';
import { request } from '@playwright/test';
const apiContext = await request.newContext();
const api = new PlaywrightApi(apiContext, 'your-bearer-token');
const response = await api.get('https://api.example.com/users');
const user = await api.post('https://api.example.com/users', { name: 'John' });
token?: string - Bearer token for authenticationallowInsecureSSL?: boolean - Allow self-signed certificateslogFile?: string - Custom log file path (default: output/api_logs.txt)All APIs support:
get<T>(url: string, headers?: object): Promise<HttpResponse<T>>post<T>(url: string, payload?: any, headers?: object): Promise<HttpResponse<T>>put<T>(url: string, payload?: any, headers?: object): Promise<HttpResponse<T>>delete<T>(url: string, headers?: object): Promise<HttpResponse<T>>head<T>(url: string, headers?: object): Promise<HttpResponse<T>>interface HttpResponse<T> {
status: number;
data: T;
headers?: Record<string, any>;
}
Use generics to type your responses:
interface TokenResponse {
access_token: string;
expires_in: number;
}
const response = await api.post<TokenResponse>('/auth/token', credentials);
const token = response.data.access_token; // fully typed
npm install
npm test
npm run build
package.jsonv1.0.0)Setup: Add NPM_TOKEN secret to your GitHub repository settings with your npm access token.
MIT
FAQs
Bridge between Axios, CodeceptJS, and Playwright REST APIs
The npm package flex-rest receives a total of 9 weekly downloads. As such, flex-rest popularity was classified as not popular.
We found that flex-rest demonstrated a healthy version release cadence and project activity because the last version was released less than 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.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.