open-index/open-npm huggingface dataset:
npm package: @mikeyzhang75/zai-payments
Description: Zai API Typescript/Javascript Bindings
Author: MikeyZhang75
Latest version: 1.0.0

<h1 align="center">Zai Node.js Client</h1>
<p>
  <a href="https://www.npmjs.com/package/@mikeyzhang75/zai-payments" target="_blank">
    <img alt="Version" src="https://img.shields.io/npm/v/@mikeyzhang75/zai-payments.svg">
  </a>
  <a href="#" target="_blank">
    <img alt="License: Apache--2.0" src="https://img.shields.io/badge/License-Apache--2.0-yellow.svg" />
  </a>
</p>

An (unofficial) Zai Typescript/Javascript client

types are swagger generated from - https://developer.hellozai.com/reference/overview

# Usage

yarn

```sh
yarn add @mikeyzhang75/zai-payments
```

npm

```sh
npm install --save @mikeyzhang75/zai-payments
```

bun

```sh
bun add @mikeyzhang75/zai-payments
```

## Contributing

### Install

```sh
bun install
```

### Run tests

```sh
bun spec
```

### Type checking

```sh
bun typecheck
```

### Linting & Formatting

```sh
bun check:fix
```

## Author

👤 **MikeyZhang75 <mikeyzhang75@icloud.com>**

## Generating updated types

**Before generating types**, you must define the current Swagger version:

1. Download the desired Swagger spec version from [Zai Developer Docs](https://developer.hellozai.com/reference/overview)
2. Save it as `swagger.yaml` in the root directory
3. Run the type generation command:

```bash
npx swagger-typescript-api -p ./swagger.yaml -o ./src -n types.ts --no-client
```

**Note**: Always verify the Swagger spec version matches your target Zai API version to ensure type compatibility.

## Example

```typescript
import { createClient } from "@mikeyzhang75/zai-payments";

const baseURL = process.env.AP_SANDPIT
  ? "https://test.api.promisepay.com/"
  : "https://secure.api.promisepay.com/";

const authBaseURL = process.env.AP_SANDPIT
  ? "https://au-0000.sandbox.auth.assemblypay.com/"
  : "https://au-0000.auth.assemblypay.com/";

const dataURL = process.env.AP_SANDPIT
  ? "https://sandbox.au-0000.api.assemblypay.com/"
  : "https://au-0000.api.assemblypay.com/";

export const client = createClient({
  clientId: process.env.AP_CLIENT_ID,
  clientSecret: process.env.AP_CLIENT_SECRET,
  scope: process.env.AP_CLIENT_SCOPE,
  baseURL,
  authBaseURL,
  dataURL,
});

const itemResponse = await client.items.showItem(
  "6865E25F-3CFE-4C8C-8673-9231E0A19CF5"
);

console.log(itemResponse.items);
```