Skip to content

Commit 28d0508

Browse files
authored
Release 9.0.0 (#103)
1 parent 65464a1 commit 28d0508

194 files changed

Lines changed: 5437 additions & 671 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ License:
33
The MIT License (MIT)
44
http://opensource.org/licenses/MIT
55

6-
Copyright (c) 2014 - 2025 APIMATIC Limited
6+
Copyright (c) 2014 - 2026 APIMATIC Limited
77

88
Permission is hereby granted, free of charge, to any person obtaining a copy
99
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 91 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -29,28 +29,30 @@ curl -u <api_key>:x -H Accept:application/json -H Content-Type:application/json
2929
Run the following command from your project directory to install the package from npm:
3030

3131
```bash
32-
npm install @maxio-com/advanced-billing-sdk@8.0.0
32+
npm install @maxio-com/advanced-billing-sdk@9.0.0
3333
```
3434

35-
For additional package details, see the [Npm page for the @maxio-com/advanced-billing-sdk@8.0.0 npm](https://www.npmjs.com/package/@maxio-com/advanced-billing-sdk/v/8.0.0).
35+
For additional package details, see the [Npm page for the @maxio-com/advanced-billing-sdk@9.0.0 npm](https://www.npmjs.com/package/@maxio-com/advanced-billing-sdk/v/9.0.0).
3636

3737
## Initialize the API Client
3838

39-
**_Note:_** Documentation for the client can be found [here.](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/client.md)
39+
**_Note:_** Documentation for the client can be found [here.](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/client.md)
4040

4141
The following parameters are configurable for the API Client:
4242

4343
| Parameter | Type | Description |
4444
| --- | --- | --- |
4545
| site | `string` | The subdomain for your Advanced Billing site.<br>*Default*: `'subdomain'` |
46-
| environment | `Environment` | The API environment. <br> **Default: `Environment.US`** |
46+
| environment | [`Environment`](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/README.md#environments) | The API environment. <br> **Default: `Environment.US`** |
4747
| timeout | `number` | Timeout for API calls.<br>*Default*: `120000` |
48-
| httpClientOptions | [`Partial<HttpClientOptions>`](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/http-client-options.md) | Stable configurable http client options. |
48+
| httpClientOptions | [`Partial<HttpClientOptions>`](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/http-client-options.md) | Stable configurable http client options. |
4949
| unstableHttpClientOptions | `any` | Unstable configurable http client options. |
50-
| basicAuthCredentials | [`BasicAuthCredentials`](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/auth/basic-authentication.md) | The credential object for basicAuth |
50+
| basicAuthCredentials | [`BasicAuthCredentials`](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/auth/basic-authentication.md) | The credential object for basicAuth |
5151

5252
The API client can be initialized as follows:
5353

54+
### Code-Based Client Initialization
55+
5456
```ts
5557
import { Client, Environment } from '@maxio-com/advanced-billing-sdk';
5658

@@ -65,6 +67,47 @@ const client = new Client({
6567
});
6668
```
6769

70+
### Configuration-Based Client Initialization
71+
72+
```ts
73+
import * as path from 'path';
74+
import * as fs from 'fs';
75+
import { Client } from '@maxio-com/advanced-billing-sdk';
76+
77+
// Provide absolute path for the configuration file
78+
const absolutePath = path.resolve('./config.json');
79+
80+
// Read the configuration file content
81+
const fileContent = fs.readFileSync(absolutePath, 'utf-8');
82+
83+
// Initialize client from JSON configuration content
84+
const client = Client.fromJsonConfig(fileContent);
85+
```
86+
87+
See the [Configuration-Based Client Initialization](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/configuration-based-client-initialization.md) section for details.
88+
89+
### Environment-Based Client Initialization
90+
91+
```ts
92+
import * as dotenv from 'dotenv';
93+
import * as path from 'path';
94+
import * as fs from 'fs';
95+
import { Client } from '@maxio-com/advanced-billing-sdk';
96+
97+
// Optional - Provide absolute path for the .env file
98+
const absolutePath = path.resolve('./.env');
99+
100+
if (fs.existsSync(absolutePath)) {
101+
// Load environment variables from .env file
102+
dotenv.config({ path: absolutePath, override: true });
103+
}
104+
105+
// Initialize client using environment variables
106+
const client = Client.fromEnvironment(process.env);
107+
```
108+
109+
See the [Environment-Based Client Initialization](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/environment-based-client-initialization.md) section for details.
110+
68111
## Environments
69112

70113
The SDK can be configured to use a different environment for making API calls. Available environments are:
@@ -80,57 +123,60 @@ The SDK can be configured to use a different environment for making API calls. A
80123

81124
This API uses the following authentication schemes.
82125

83-
* [`BasicAuth (Basic Authentication)`](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/auth/basic-authentication.md)
126+
* [`BasicAuth (Basic Authentication)`](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/auth/basic-authentication.md)
84127

85128
## List of APIs
86129

87-
* [API Exports](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/api-exports.md)
88-
* [Advance Invoice](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/advance-invoice.md)
89-
* [Billing Portal](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/billing-portal.md)
90-
* [Component Price Points](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/component-price-points.md)
91-
* [Custom Fields](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/custom-fields.md)
92-
* [Events-Based Billing Segments](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/events-based-billing-segments.md)
93-
* [Payment Profiles](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/payment-profiles.md)
94-
* [Product Families](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/product-families.md)
95-
* [Product Price Points](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/product-price-points.md)
96-
* [Proforma Invoices](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/proforma-invoices.md)
97-
* [Reason Codes](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/reason-codes.md)
98-
* [Referral Codes](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/referral-codes.md)
99-
* [Sales Commissions](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/sales-commissions.md)
100-
* [Subscription Components](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/subscription-components.md)
101-
* [Subscription Groups](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/subscription-groups.md)
102-
* [Subscription Group Invoice Account](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/subscription-group-invoice-account.md)
103-
* [Subscription Group Status](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/subscription-group-status.md)
104-
* [Subscription Invoice Account](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/subscription-invoice-account.md)
105-
* [Subscription Notes](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/subscription-notes.md)
106-
* [Subscription Products](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/subscription-products.md)
107-
* [Subscription Status](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/subscription-status.md)
108-
* [Coupons](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/coupons.md)
109-
* [Components](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/components.md)
110-
* [Customers](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/customers.md)
111-
* [Events](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/events.md)
112-
* [Insights](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/insights.md)
113-
* [Invoices](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/invoices.md)
114-
* [Offers](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/offers.md)
115-
* [Products](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/products.md)
116-
* [Sites](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/sites.md)
117-
* [Subscriptions](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/subscriptions.md)
118-
* [Webhooks](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/controllers/webhooks.md)
130+
* [API Exports](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/api-exports.md)
131+
* [Advance Invoice](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/advance-invoice.md)
132+
* [Billing Portal](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/billing-portal.md)
133+
* [Component Price Points](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/component-price-points.md)
134+
* [Custom Fields](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/custom-fields.md)
135+
* [Events-Based Billing Segments](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/events-based-billing-segments.md)
136+
* [Payment Profiles](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/payment-profiles.md)
137+
* [Product Families](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/product-families.md)
138+
* [Product Price Points](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/product-price-points.md)
139+
* [Proforma Invoices](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/proforma-invoices.md)
140+
* [Reason Codes](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/reason-codes.md)
141+
* [Referral Codes](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/referral-codes.md)
142+
* [Sales Commissions](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/sales-commissions.md)
143+
* [Subscription Components](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/subscription-components.md)
144+
* [Subscription Groups](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/subscription-groups.md)
145+
* [Subscription Group Invoice Account](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/subscription-group-invoice-account.md)
146+
* [Subscription Group Status](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/subscription-group-status.md)
147+
* [Subscription Invoice Account](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/subscription-invoice-account.md)
148+
* [Subscription Notes](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/subscription-notes.md)
149+
* [Subscription Products](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/subscription-products.md)
150+
* [Subscription Renewals](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/subscription-renewals.md)
151+
* [Subscription Status](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/subscription-status.md)
152+
* [Coupons](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/coupons.md)
153+
* [Components](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/components.md)
154+
* [Customers](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/customers.md)
155+
* [Events](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/events.md)
156+
* [Insights](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/insights.md)
157+
* [Invoices](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/invoices.md)
158+
* [Offers](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/offers.md)
159+
* [Products](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/products.md)
160+
* [Sites](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/sites.md)
161+
* [Subscriptions](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/subscriptions.md)
162+
* [Webhooks](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/controllers/webhooks.md)
119163

120164
## SDK Infrastructure
121165

122166
### Configuration
123167

124-
* [HttpClientOptions](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/http-client-options.md)
125-
* [RetryConfiguration](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/retry-configuration.md)
126-
* [ProxySettings](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/proxy-settings.md)
168+
* [HttpClientOptions](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/http-client-options.md)
169+
* [RetryConfiguration](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/retry-configuration.md)
170+
* [ProxySettings](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/proxy-settings.md)
171+
* [Configuration-Based Client Initialization](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/configuration-based-client-initialization.md)
172+
* [Environment-Based Client Initialization](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/environment-based-client-initialization.md)
127173

128174
### HTTP
129175

130-
* [HttpRequest](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/http-request.md)
176+
* [HttpRequest](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/http-request.md)
131177

132178
### Utilities
133179

134-
* [ApiResponse](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/api-response.md)
135-
* [ApiError](https://www.github.com/maxio-com/ab-typescript-sdk/tree/8.0.0/doc/api-error.md)
180+
* [ApiResponse](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/api-response.md)
181+
* [ApiError](https://www.github.com/maxio-com/ab-typescript-sdk/tree/9.0.0/doc/api-error.md)
136182

doc/auth/basic-authentication.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ Documentation for accessing and setting credentials for BasicAuth.
99

1010
| Name | Type | Description | Setter |
1111
| --- | --- | --- | --- |
12-
| BasicAuthUserName | `string` | The username to use with basic authentication | `username` |
13-
| BasicAuthPassword | `string` | The password to use with basic authentication | `password` |
12+
| basicAuthUserName | `string` | The username to use with basic authentication | `username` |
13+
| basicAuthPassword | `string` | The password to use with basic authentication | `password` |
1414

1515

1616

doc/client.md

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,16 @@ The following parameters are configurable for the API Client:
66
| Parameter | Type | Description |
77
| --- | --- | --- |
88
| site | `string` | The subdomain for your Advanced Billing site.<br>*Default*: `'subdomain'` |
9-
| environment | `Environment` | The API environment. <br> **Default: `Environment.US`** |
9+
| environment | [`Environment`](../README.md#environments) | The API environment. <br> **Default: `Environment.US`** |
1010
| timeout | `number` | Timeout for API calls.<br>*Default*: `120000` |
1111
| httpClientOptions | [`Partial<HttpClientOptions>`](../doc/http-client-options.md) | Stable configurable http client options. |
1212
| unstableHttpClientOptions | `any` | Unstable configurable http client options. |
1313
| basicAuthCredentials | [`BasicAuthCredentials`](auth/basic-authentication.md) | The credential object for basicAuth |
1414

1515
The API client can be initialized as follows:
1616

17+
## Code-Based Client Initialization
18+
1719
```ts
1820
import { Client, Environment } from '@maxio-com/advanced-billing-sdk';
1921

@@ -28,3 +30,44 @@ const client = new Client({
2830
});
2931
```
3032

33+
## Configuration-Based Client Initialization
34+
35+
```ts
36+
import * as path from 'path';
37+
import * as fs from 'fs';
38+
import { Client } from '@maxio-com/advanced-billing-sdk';
39+
40+
// Provide absolute path for the configuration file
41+
const absolutePath = path.resolve('./config.json');
42+
43+
// Read the configuration file content
44+
const fileContent = fs.readFileSync(absolutePath, 'utf-8');
45+
46+
// Initialize client from JSON configuration content
47+
const client = Client.fromJsonConfig(fileContent);
48+
```
49+
50+
See the [Configuration-Based Client Initialization](../doc/configuration-based-client-initialization.md) section for details.
51+
52+
## Environment-Based Client Initialization
53+
54+
```ts
55+
import * as dotenv from 'dotenv';
56+
import * as path from 'path';
57+
import * as fs from 'fs';
58+
import { Client } from '@maxio-com/advanced-billing-sdk';
59+
60+
// Optional - Provide absolute path for the .env file
61+
const absolutePath = path.resolve('./.env');
62+
63+
if (fs.existsSync(absolutePath)) {
64+
// Load environment variables from .env file
65+
dotenv.config({ path: absolutePath, override: true });
66+
}
67+
68+
// Initialize client using environment variables
69+
const client = Client.fromEnvironment(process.env);
70+
```
71+
72+
See the [Environment-Based Client Initialization](../doc/environment-based-client-initialization.md) section for details.
73+
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
2+
# Configuration-Based Client Initialization
3+
4+
The SDK client can be initialized directly from a JSON configuration file using the `fromJsonConfig` static method available on the `Client` class.` This allows you to store and load configuration settings from JSON files, making it easier to organize and manage different configurations across environments.
5+
6+
## Node.js Environment
7+
8+
In Node.js environments, you can use the `fs` module to read the configuration file from the file system.
9+
10+
```ts
11+
import * as path from 'path';
12+
import * as fs from 'fs';
13+
import { Client } from '@maxio-com/advanced-billing-sdk';
14+
15+
// Provide absolute path for the .env file
16+
const absolutePath = path.resolve('./config.json');
17+
18+
// Read the configuration file content
19+
const fileContent = fs.readFileSync(absolutePath, 'utf-8');
20+
21+
// Initialize client from JSON configuration content
22+
const client = Client.fromJsonConfig(fileContent);
23+
```
24+
25+
## Browser Environment
26+
27+
In browser environments, you can use the `import` function to load the configuration file.
28+
29+
```ts
30+
import { Client } from '@maxio-com/advanced-billing-sdk';
31+
32+
// Load configuration using dynamic import
33+
const configModule = await import('./config.json', { assert: { type: 'json' } });
34+
35+
// Initialize client from JSON configuration content
36+
const client = Client.fromJsonConfig(JSON.stringify(configModule.default));
37+
```
38+
39+
## Example Configuration File
40+
41+
```json
42+
{
43+
"timeout": 30000,
44+
"environment": "US",
45+
"site": "subdomain",
46+
"basicAuthCredentials": {
47+
"username": "username",
48+
"password": "password"
49+
},
50+
"httpClientOptions": {
51+
"timeout": 30000,
52+
"retryConfig": {
53+
"maxNumberOfRetries": 3,
54+
"retryOnTimeout": true,
55+
"retryInterval": 10,
56+
"maximumRetryWaitTime": 120,
57+
"backoffFactor": 2,
58+
"httpStatusCodesToRetry": [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
59+
"httpMethodsToRetry": ["GET", "PUT", "DELETE"]
60+
},
61+
"proxySettings": {
62+
"address": "http://localhost:3000",
63+
"port": 8080,
64+
"auth": {
65+
"username": "username",
66+
"password": "password"
67+
}
68+
}
69+
}
70+
}
71+
```
72+

0 commit comments

Comments
 (0)