npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@mocart-io/api

v1.18.1

Published

Generated TypeScript SDK for the Mocart Public API (read plane + run plane).

Readme

@mocart-io/api

Generated TypeScript SDK for the Mocart Public API — the read plane (products, assets, campaigns, creatives, deliveries) and the run plane (runs, presets). Full guides and reference: https://docs.mocart.io.

The npm scope @mocart was already taken by another publisher, so this package ships as @mocart-io/api under the mocart-io org instead of the plan's original @mocart/api.

Install

npm install @mocart-io/api

Zero runtime dependencies — the generated client embeds its own request/response core, so the only requirement is a fetch global (Node >=18, or any browser).

ESM only. This package ships "type": "module" with no CommonJS build or require export condition. import works from any ESM project (or a .mts/.mjs file, or a .ts file compiled with a Node16/NodeNext/Bundler moduleResolution) with no extra step. From a CommonJS project (a plain .ts/.js file with no "type": "module" in the nearest package.json), require() cannot load it — use a dynamic import() instead, which works from CommonJS too:

async function main(): Promise<void> {
  const { client, listProducts } = await import('@mocart-io/api');
  client.setConfig({ baseUrl: 'https://api.mocart.io/api/public/v1', auth: () => process.env.MOCART_API_KEY });
  const { data: products } = await listProducts({ query: { brandId: 'brand_...' } });
}

(A CommonJS project compiling with tsc to a module target older than ES2020 will down-level that import() back to a require(), which fails the same way — see scripts/ops/e2e-public-api.ts in this repo for the workaround that situation needs.)

Quickstart

import { client, listProducts, estimateRun, createRun, getRun } from '@mocart-io/api';

client.setConfig({
  baseUrl: 'https://api.mocart.io/api/public/v1',
  auth: () => process.env.MOCART_API_KEY,
});

const { data: products } = await listProducts({ query: { brandId: 'brand_...' } });

See https://docs.mocart.io/guides/quickstart for the full create-a-run flow, including Idempotency-Key and webhook signature verification.

Source of truth

This SDK is generated by @hey-api/openapi-ts from the repo's committed api-spec/openapi.json — never hand-edit anything under src/generated/, nor spec.lock.json. Regenerate with:

npm run generate

npm run sdk:check (repo root) does this in CI and fails the build if the committed output would change, so src/generated/ and package.json's version field always match the spec that shipped.

Versioning

The published version is api-spec/openapi.json's info.version field, kept in sync by scripts/sync-package-version.mjs as the last step of npm run generate. A spec version bump is therefore the only thing that bumps this package — there is no separate manual version step.

That same script writes spec.lock.json — { version, specSha256 }, the pair this generate run saw. npm run sdk:check (repo root) compares it against the committed one: a spec content change under an unchanged info.version fails the check (message names the exact fix — bump API_VERSION in src/modules/public-api/contract/openapi-document.ts) instead of silently regenerating a stale-but-same-numbered SDK that publish-sdk.sh would then skip republishing.

Publishing

Handled by scripts/deploy/publish-sdk.sh (repo root) as the LAST step of cloudbuild.yaml (after verify-sentry-mappings), gated on the target version not already existing on the npm registry — specifically an npm view --json E404 on that exact version; any other failure (network, auth, registry outage) refuses to publish rather than guessing. Never publish by hand outside that gate.