Vector Pro Node.js SDK
TypeScript SDK for the Vector Pro API
TypeScriptNode.jsapisdkvector-pro
The official Node.js SDK for the Vector Pro API. Full TypeScript support with exported types for all API responses and a clean, resource-based API design.
Installation
npm install vector-pro-sdk
Quick Start
import { VectorProClient } from 'vector-pro-sdk';
const client = new VectorProClient({
apiKey: 'your-api-key',
});
// List sites
const sites = await client.sites.list();
// Create a site
const site = await client.sites.create({
partner_customer_id: 'customer-123',
dev_php_version: '8.3',
});
// Get a specific site
const site = await client.sites.get('site-id');
// Manage environments
const envs = await client.environments.list('site-id');
await client.environments.deploy('site-id', 'production');
await client.environments.rollback('site-id', 'production');
// Database operations
await client.sites.db.createExport('site-id');
await client.sites.db.importDirect('site-id', { dropTables: true });
// WAF management
await client.sites.waf.addBlockedIP('site-id', '1.2.3.4');
await client.sites.waf.listRateLimits('site-id');
// Account management
const summary = await client.account.getSummary();
await client.account.apiKeys.create({ name: 'ci-token' });
await client.account.secrets.create({ key: 'MY_SECRET', value: 'secret-value' });
// Webhooks
await client.webhooks.create({
url: 'https://example.com/webhook',
events: ['site.created', 'deployment.completed'],
});
TypeScript Support
Full TypeScript support with exported types for all API responses:
import { VectorProClient } from 'vector-pro-sdk';
import type { Site, Environment, ApiResponse, ListResponse } from 'vector-pro-sdk';
const client = new VectorProClient({ apiKey: 'your-api-key' });
// Responses are fully typed
const sites: ListResponse<Site> = await client.sites.list();
const site: ApiResponse<Site> = await client.sites.get('site-id');
// Access typed data
sites.data?.forEach(site => {
console.log(site.id, site.status);
});
Error Handling
import { VectorProClient, VectorProApiError } from 'vector-pro-sdk';
try {
await client.sites.get('invalid-id');
} catch (error) {
if (error instanceof VectorProApiError) {
console.log(error.status); // HTTP status code
console.log(error.body); // Response body
}
}
API Reference
Sites
client.sites.list(options?)
client.sites.get(siteId)
client.sites.create(data)
client.sites.update(siteId, data)
client.sites.delete(siteId)
client.sites.clone(siteId, data?)
client.sites.suspend(siteId)
client.sites.unsuspend(siteId)
client.sites.getLogs(siteId, options?)
client.sites.purgeCache(siteId, options?)
Sites - Database
client.sites.db.importDirect(siteId, options?)
client.sites.db.createImportSession(siteId, data?)
client.sites.db.runImport(siteId, importId)
client.sites.db.getImportStatus(siteId, importId)
client.sites.db.createExport(siteId, options?)
client.sites.db.getExportStatus(siteId, exportId)
Sites - WAF
client.sites.waf.listAllowedReferrers(siteId)
client.sites.waf.addAllowedReferrer(siteId, hostname)
client.sites.waf.removeAllowedReferrer(siteId, hostname)
client.sites.waf.listBlockedReferrers(siteId)
client.sites.waf.addBlockedReferrer(siteId, hostname)
client.sites.waf.removeBlockedReferrer(siteId, hostname)
client.sites.waf.listBlockedIPs(siteId)
client.sites.waf.addBlockedIP(siteId, ip)
client.sites.waf.removeBlockedIP(siteId, ip)
client.sites.waf.listRateLimits(siteId)
client.sites.waf.createRateLimit(siteId, data)
client.sites.waf.getRateLimit(siteId, ruleId)
client.sites.waf.updateRateLimit(siteId, ruleId, data)
client.sites.waf.deleteRateLimit(siteId, ruleId)
Sites - SSH Keys
client.sites.sshKeys.list(siteId, options?)
client.sites.sshKeys.add(siteId, data)
client.sites.sshKeys.remove(siteId, keyId)
Sites - SSL
client.sites.ssl.getStatus(siteId, envId)
client.sites.ssl.nudge(siteId, envId, options?)
Environments
client.environments.list(siteId, options?)
client.environments.get(siteId, envId)
client.environments.create(siteId, data)
client.environments.update(siteId, envId, data)
client.environments.delete(siteId, envId)
client.environments.deploy(siteId, envId)
client.environments.rollback(siteId, envId, targetDeploymentId?)
client.environments.resetDatabasePassword(siteId, envId)
Environments - Deployments
client.environments.deployments.list(siteId, envId, options?)
client.environments.deployments.get(siteId, envId, deploymentId)
Environments - Secrets
client.environments.secrets.list(siteId, envId, options?)
client.environments.secrets.create(siteId, envId, data)
client.environments.secrets.get(siteId, envId, secretId)
client.environments.secrets.update(siteId, envId, secretId, data)
client.environments.secrets.delete(siteId, envId, secretId)
Account
client.account.getSummary()
client.account.sshKeys.list(options?)
client.account.sshKeys.create(data)
client.account.sshKeys.get(keyId)
client.account.sshKeys.delete(keyId)
client.account.apiKeys.list(options?)
client.account.apiKeys.create(data)
client.account.apiKeys.delete(tokenId)
client.account.secrets.list(options?)
client.account.secrets.create(data)
client.account.secrets.get(secretId)
client.account.secrets.update(secretId, data)
client.account.secrets.delete(secretId)
Webhooks
client.webhooks.list(options?)
client.webhooks.get(webhookId)
client.webhooks.create(data)
client.webhooks.update(webhookId, data)
client.webhooks.delete(webhookId)
client.webhooks.rotateSecret(webhookId)
client.webhooks.listLogs(webhookId, options?)
Events & PHP Versions
client.events.list(options?)
client.phpVersions.list()