SDK / TypeScript + Node.js
Consistent SDK naming, types, and calls.
Each API uses an @pontx/<api-slug> package, generated types, and a dedicated CLI so discovery, verification, and production integration stay aligned.
pontx-hub searchpontx-hub showpontx-hub previewpontx-hub sdkThe shared package contract
Package names are predictable, types come from the approved OAS, and Hub verifies the exact published release.
@pontx/<api-slug>Node.js ≥ 18ESM + CommonJSTypeScript declarationspnpm add @pontx/frankfurterClient shapes follow authentication
Every SDK shares the naming and typing contract; exports accurately reflect each API's auth and call model.
import currencyExchangeClient from "@pontx/frankfurter";
const result = await currencyExchangeClient.exchangeRates.getLatestRates({
base: "USD",
symbols: "JPY,CNY"
});import { createMassiveClient } from "@pontx/massive";
const client = createMassiveClient({
apiKey: process.env.MASSIVE_API_KEY!
});
const result = await client.common.getPreviousClose("AAPL", {});import { Dida365OAuthClient } from "@pontx/dida365";
const client = new Dida365OAuthClient({
client_id: process.env.DIDA365_CLIENT_ID!,
client_secret: process.env.DIDA365_CLIENT_SECRET!
});
await client.authenticate();Endpoint methods are generated from OAS controller/tag and operationId. Follow each API's SDK page instead of assuming every provider has the same auth constructor.
Dedicated API CLIs
A published SDK may also expose pontx-<api-slug>, backed by the same generated contract.
pnpm add --global @pontx/frankfurter
pontx-frankfurter call exchangeRates.getLatestRates --base USD --symbols JPY,CNY --dry-runSearch, resource inspection, Hub preview, and controlled proxy calls.
Ships with the SDK for local development, CI, and API-specific scripts.
Versions and release boundaries
Visitors install published releases. Hub verifies them but never publishes npm packages on a visitor's behalf.
Breaking OAS or generated API changes
Backward-compatible Endpoints or fields
Documentation or generator fixes