@elyonar/einvoice-js 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,20 +1,20 @@
1
1
  # @elyonar/einvoice-js
2
2
 
3
- Official TypeScript/JavaScript SDK for the [E-Invoice Nigeria](https://einvoice.ng) platform.
3
+ Official TypeScript/JavaScript SDK for the E-Invoice platform — streamlining electronic invoicing and tax compliance.
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/@elyonar/einvoice-js)](https://www.npmjs.com/package/@elyonar/einvoice-js)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
7
7
 
8
8
  ## Features
9
9
 
10
- - Full coverage of all E-Invoice APIs (invoices, sellers, buyers, billing)
11
- - First-class TypeScript support with complete type definitions
12
- - Automatic retry with exponential backoff and jitter
13
- - Rate limit handling with `Retry-After` support
14
- - Webhook signature verification (HMAC-SHA256 with replay protection)
15
- - Zero runtime dependencies — uses native `fetch`, `crypto`, and `AbortController`
16
- - Dual ESM/CJS builds for maximum compatibility
17
- - Node.js 18+ support
10
+ - **Complete API coverage** Invoices, sellers, buyers, and billing management
11
+ - **Type-safe** — First-class TypeScript support with comprehensive type definitions
12
+ - **Resilient** — Automatic retry with exponential backoff and jitter
13
+ - **Rate limit aware** — Smart handling with `Retry-After` support
14
+ - **Secure webhooks** HMAC-SHA256 signature verification with replay protection
15
+ - **Zero dependencies**Uses native `fetch`, `crypto`, and `AbortController`
16
+ - **Dual builds** — ESM and CommonJS for maximum compatibility
17
+ - **Modern** — Node.js 18+ support with environment auto-detection
18
18
 
19
19
  ## Installation
20
20
 
@@ -27,6 +27,7 @@ npm install @elyonar/einvoice-js
27
27
  ```typescript
28
28
  import { EInvoice } from '@elyonar/einvoice-js';
29
29
 
30
+ // Minimal setup - environment auto-detected from API key
30
31
  const client = new EInvoice({ apiKey: 'sk_test_...' });
31
32
 
32
33
  // Create an invoice
@@ -48,23 +49,41 @@ console.log(result.data.jobId); // 'job_abc123'
48
49
 
49
50
  ## Configuration
50
51
 
52
+ The SDK works out of the box with intelligent defaults:
53
+
54
+ ```typescript
55
+ // That's it! Environment auto-detected from API key
56
+ const client = new EInvoice({ apiKey: 'sk_test_...' });
57
+ ```
58
+
59
+ **Environment auto-detection:**
60
+ - `sk_test_*` → Local development (`https://local-api.einvoice.ng`)
61
+ - `sk_live_*` → Production (`https://gateway.einvoice.ng`)
62
+
63
+ **Built-in resilience:**
64
+ - Automatic retry with exponential backoff (3 attempts)
65
+ - Smart rate limit handling
66
+ - 30-second default timeout
67
+
68
+ ### Custom Configuration (Optional)
69
+
70
+ Override defaults only when needed:
71
+
51
72
  ```typescript
52
73
  const client = new EInvoice({
53
- apiKey: 'sk_live_...', // Required
54
- baseUrl: 'https://api.einvoice.ng', // Default
55
- timeout: 30000, // 30s default
56
- maxRetries: 3, // Default
57
- retryBaseDelay: 1000, // 1s default
74
+ apiKey: 'sk_live_...',
75
+ options: {
76
+ baseUrl: 'https://custom-region.api.einvoice.ng', // Override auto-detection
77
+ timeout: 60000, // 60s for slow networks
78
+ },
58
79
  });
59
80
  ```
60
81
 
61
82
  | Option | Type | Default | Description |
62
83
  |--------|------|---------|-------------|
63
- | `apiKey` | `string` | — | **Required.** Your API key (`sk_live_*` or `sk_test_*`) |
64
- | `baseUrl` | `string` | `https://api.einvoice.ng` | API gateway URL |
65
- | `timeout` | `number` | `30000` | Request timeout in ms |
66
- | `maxRetries` | `number` | `3` | Max retries for 5xx/429 errors |
67
- | `retryBaseDelay` | `number` | `1000` | Base delay for exponential backoff (ms) |
84
+ | `apiKey` | `string` | — | **Required.** API key (auto-detects environment) |
85
+ | `options.baseUrl` | `string` | Auto-detected | Override API gateway URL |
86
+ | `options.timeout` | `number` | `30000` | Request timeout (ms) |
68
87
 
69
88
  ## API Reference
70
89
 
@@ -1,28 +1,74 @@
1
1
  import type { ApiResponse, RequestOptions as PerRequestOptions } from '../types/common.js';
2
+ /**
3
+ * Retry configuration for failed requests.
4
+ */
5
+ export interface RetryConfig {
6
+ /**
7
+ * Maximum number of retry attempts for failed requests.
8
+ * Only 5xx errors and 429 rate limits are retried.
9
+ * @default 3
10
+ */
11
+ maxAttempts?: number;
12
+ /**
13
+ * Base delay for exponential backoff (in milliseconds).
14
+ * @default 1000
15
+ */
16
+ baseDelay?: number;
17
+ }
18
+ /**
19
+ * HTTP client options for configuring request behavior.
20
+ */
21
+ export interface HttpClientOptions {
22
+ /**
23
+ * Base URL of the API gateway.
24
+ * @default 'https://api.einvoice.ng'
25
+ */
26
+ baseUrl?: string;
27
+ /**
28
+ * Request timeout in milliseconds.
29
+ * @default 30000
30
+ */
31
+ timeout?: number;
32
+ /**
33
+ * Retry configuration for failed requests.
34
+ */
35
+ retry?: RetryConfig;
36
+ /**
37
+ * Default headers to include in all requests.
38
+ * These can be overridden on a per-request basis.
39
+ */
40
+ headers?: Record<string, string>;
41
+ }
42
+ /**
43
+ * Main SDK configuration.
44
+ */
2
45
  export interface HttpClientConfig {
3
46
  /**
4
47
  * API key for authentication. Must start with `sk_live_` or `sk_test_`.
5
48
  */
6
49
  apiKey: string;
7
50
  /**
8
- * Base URL of the E-Invoice API gateway.
9
- * @default 'https://api.einvoice.ng'
51
+ * HTTP client options for configuring request behavior.
52
+ */
53
+ options?: HttpClientOptions;
54
+ /**
55
+ * @deprecated Use `options.baseUrl` instead.
56
+ * Base URL of the API gateway.
10
57
  */
11
58
  baseUrl?: string;
12
59
  /**
60
+ * @deprecated Use `options.timeout` instead.
13
61
  * Request timeout in milliseconds.
14
- * @default 30000
15
62
  */
16
63
  timeout?: number;
17
64
  /**
18
- * Maximum number of retry attempts for failed requests.
19
- * Only 5xx errors and 429 rate limits are retried.
20
- * @default 3
65
+ * @deprecated Use `options.retry.maxAttempts` instead.
66
+ * Maximum number of retry attempts.
21
67
  */
22
68
  maxRetries?: number;
23
69
  /**
24
- * Base delay for exponential backoff (in milliseconds).
25
- * @default 1000
70
+ * @deprecated Use `options.retry.baseDelay` instead.
71
+ * Base delay for exponential backoff.
26
72
  */
27
73
  retryBaseDelay?: number;
28
74
  }
@@ -39,7 +85,13 @@ export declare class HttpClient {
39
85
  private readonly timeout;
40
86
  private readonly maxRetries;
41
87
  private readonly retryBaseDelay;
88
+ private readonly defaultHeaders;
42
89
  constructor(config: HttpClientConfig);
90
+ /**
91
+ * Determine the default base URL based on the API key prefix.
92
+ * @internal
93
+ */
94
+ private getDefaultBaseUrl;
43
95
  /**
44
96
  * Make an authenticated HTTP request to the E-Invoice API.
45
97
  */
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/client/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,IAAI,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAY3F,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC9D,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAMD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAE5B,MAAM,EAAE,gBAAgB;IAYpC;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YA2D5D,OAAO;IAgCrB,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,KAAK;CAGd"}
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/client/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,IAAI,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAY3F;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAM5B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC9D,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAMD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;gBAE5C,MAAM,EAAE,gBAAgB;IAqBpC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YA2D5D,OAAO;IAiCrB,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,KAAK;CAGd"}
@@ -11,15 +11,34 @@ class HttpClient {
11
11
  timeout;
12
12
  maxRetries;
13
13
  retryBaseDelay;
14
+ defaultHeaders;
14
15
  constructor(config) {
15
16
  if (!config.apiKey) {
16
17
  throw new errors_js_1.EInvoiceConfigError('API key is required. Pass `apiKey` to the client constructor.');
17
18
  }
18
- this.baseUrl = (config.baseUrl ?? 'https://api.einvoice.ng').replace(/\/$/, '');
19
19
  this.apiKey = config.apiKey;
20
- this.timeout = config.timeout ?? 30_000;
21
- this.maxRetries = config.maxRetries ?? 3;
22
- this.retryBaseDelay = config.retryBaseDelay ?? 1000;
20
+ // Support both new nested structure and legacy flat structure
21
+ // Priority: options.* > flat properties > defaults
22
+ const opts = config.options ?? {};
23
+ // Auto-detect baseUrl from API key prefix (test vs live)
24
+ const defaultBaseUrl = this.getDefaultBaseUrl(config.apiKey);
25
+ this.baseUrl = (opts.baseUrl ?? config.baseUrl ?? defaultBaseUrl).replace(/\/$/, '');
26
+ this.timeout = opts.timeout ?? config.timeout ?? 30_000;
27
+ this.maxRetries = opts.retry?.maxAttempts ?? config.maxRetries ?? 3;
28
+ this.retryBaseDelay = opts.retry?.baseDelay ?? config.retryBaseDelay ?? 1000;
29
+ this.defaultHeaders = opts.headers ?? {};
30
+ }
31
+ /**
32
+ * Determine the default base URL based on the API key prefix.
33
+ * @internal
34
+ */
35
+ getDefaultBaseUrl(apiKey) {
36
+ // If API key starts with sk_test_, use local development environment
37
+ if (apiKey.startsWith('sk_test_')) {
38
+ return 'https://local-api.einvoice.ng';
39
+ }
40
+ // Default to production gateway for live keys or any other format
41
+ return 'https://gateway.einvoice.ng';
23
42
  }
24
43
  /**
25
44
  * Make an authenticated HTTP request to the E-Invoice API.
@@ -73,6 +92,7 @@ class HttpClient {
73
92
  'Authorization': `Bearer ${this.apiKey}`,
74
93
  'Content-Type': 'application/json',
75
94
  'Accept': 'application/json',
95
+ ...this.defaultHeaders,
76
96
  ...options.requestOptions?.headers,
77
97
  };
78
98
  const controller = new AbortController();
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/client/http-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/client/http-client.ts"],"names":[],"mappings":"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"}
@@ -7,11 +7,14 @@ import { BillingService } from './services/billing.js';
7
7
  * The main E-Invoice SDK client.
8
8
  *
9
9
  * Provides access to all E-Invoice platform APIs through typed service objects.
10
+ * The SDK automatically detects the environment from your API key and configures
11
+ * sensible defaults for timeout, retries, and rate limiting.
10
12
  *
11
13
  * @example
12
14
  * ```ts
13
15
  * import { EInvoice } from '@elyonar/einvoice-js';
14
16
  *
17
+ * // Minimal setup - environment auto-detected from API key
15
18
  * const client = new EInvoice({ apiKey: 'sk_test_...' });
16
19
  *
17
20
  * // Invoices
@@ -25,6 +28,18 @@ import { BillingService } from './services/billing.js';
25
28
  * // Billing
26
29
  * const balance = await client.billing.getAccount();
27
30
  * ```
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * // Custom configuration (optional)
35
+ * const client = new EInvoice({
36
+ * apiKey: 'sk_live_...',
37
+ * options: {
38
+ * baseUrl: 'https://custom-region.api.einvoice.ng',
39
+ * timeout: 60000,
40
+ * },
41
+ * });
42
+ * ```
28
43
  */
29
44
  export declare class EInvoice {
30
45
  /** @internal */
@@ -48,19 +63,24 @@ export declare class EInvoice {
48
63
  /**
49
64
  * Create a new E-Invoice SDK client.
50
65
  *
51
- * @param config - Client configuration. At minimum, `apiKey` is required.
66
+ * The SDK automatically detects the environment from your API key:
67
+ * - `sk_test_*` → Local development environment
68
+ * - `sk_live_*` → Production environment
69
+ *
70
+ * @param config - Client configuration. Only `apiKey` is required.
52
71
  *
53
72
  * @example
54
73
  * ```ts
55
- * // Minimal configuration
74
+ * // Minimal - that's all you need!
56
75
  * const client = new EInvoice({ apiKey: 'sk_test_...' });
57
76
  *
58
- * // Full configuration
77
+ * // Custom configuration (optional)
59
78
  * const client = new EInvoice({
60
79
  * apiKey: 'sk_live_...',
61
- * baseUrl: 'https://api.einvoice.ng',
62
- * timeout: 15000,
63
- * maxRetries: 2,
80
+ * options: {
81
+ * baseUrl: 'https://custom-region.api.einvoice.ng',
82
+ * timeout: 60000,
83
+ * },
64
84
  * });
65
85
  * ```
66
86
  */
@@ -1 +1 @@
1
- {"version":3,"file":"einvoice.d.ts","sourceRoot":"","sources":["../../src/einvoice.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,QAAQ;IACnB,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC;;OAEG;IACH,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAEzC;;OAEG;IACH,SAAgB,OAAO,EAAE,aAAa,CAAC;IAEvC;;OAEG;IACH,SAAgB,MAAM,EAAE,YAAY,CAAC;IAErC;;OAEG;IACH,SAAgB,OAAO,EAAE,cAAc,CAAC;IAExC;;;;;;;;;;;;;;;;;;OAkBG;gBACS,MAAM,EAAE,gBAAgB;CAQrC"}
1
+ {"version":3,"file":"einvoice.d.ts","sourceRoot":"","sources":["../../src/einvoice.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBAAa,QAAQ;IACnB,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC;;OAEG;IACH,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAEzC;;OAEG;IACH,SAAgB,OAAO,EAAE,aAAa,CAAC;IAEvC;;OAEG;IACH,SAAgB,MAAM,EAAE,YAAY,CAAC;IAErC;;OAEG;IACH,SAAgB,OAAO,EAAE,cAAc,CAAC;IAExC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;gBACS,MAAM,EAAE,gBAAgB;CAQrC"}
@@ -10,11 +10,14 @@ const billing_js_1 = require("./services/billing.js");
10
10
  * The main E-Invoice SDK client.
11
11
  *
12
12
  * Provides access to all E-Invoice platform APIs through typed service objects.
13
+ * The SDK automatically detects the environment from your API key and configures
14
+ * sensible defaults for timeout, retries, and rate limiting.
13
15
  *
14
16
  * @example
15
17
  * ```ts
16
18
  * import { EInvoice } from '@elyonar/einvoice-js';
17
19
  *
20
+ * // Minimal setup - environment auto-detected from API key
18
21
  * const client = new EInvoice({ apiKey: 'sk_test_...' });
19
22
  *
20
23
  * // Invoices
@@ -28,6 +31,18 @@ const billing_js_1 = require("./services/billing.js");
28
31
  * // Billing
29
32
  * const balance = await client.billing.getAccount();
30
33
  * ```
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * // Custom configuration (optional)
38
+ * const client = new EInvoice({
39
+ * apiKey: 'sk_live_...',
40
+ * options: {
41
+ * baseUrl: 'https://custom-region.api.einvoice.ng',
42
+ * timeout: 60000,
43
+ * },
44
+ * });
45
+ * ```
31
46
  */
32
47
  class EInvoice {
33
48
  /** @internal */
@@ -51,19 +66,24 @@ class EInvoice {
51
66
  /**
52
67
  * Create a new E-Invoice SDK client.
53
68
  *
54
- * @param config - Client configuration. At minimum, `apiKey` is required.
69
+ * The SDK automatically detects the environment from your API key:
70
+ * - `sk_test_*` → Local development environment
71
+ * - `sk_live_*` → Production environment
72
+ *
73
+ * @param config - Client configuration. Only `apiKey` is required.
55
74
  *
56
75
  * @example
57
76
  * ```ts
58
- * // Minimal configuration
77
+ * // Minimal - that's all you need!
59
78
  * const client = new EInvoice({ apiKey: 'sk_test_...' });
60
79
  *
61
- * // Full configuration
80
+ * // Custom configuration (optional)
62
81
  * const client = new EInvoice({
63
82
  * apiKey: 'sk_live_...',
64
- * baseUrl: 'https://api.einvoice.ng',
65
- * timeout: 15000,
66
- * maxRetries: 2,
83
+ * options: {
84
+ * baseUrl: 'https://custom-region.api.einvoice.ng',
85
+ * timeout: 60000,
86
+ * },
67
87
  * });
68
88
  * ```
69
89
  */
@@ -1 +1 @@
1
- {"version":3,"file":"einvoice.js","sourceRoot":"","sources":["../../src/einvoice.ts"],"names":[],"mappings":";;;AAAA,4DAAqD;AAErD,wDAAwD;AACxD,sDAAsD;AACtD,oDAAoD;AACpD,sDAAuD;AAEvD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAa,QAAQ;IACnB,gBAAgB;IACC,UAAU,CAAa;IAExC;;OAEG;IACa,QAAQ,CAAiB;IAEzC;;OAEG;IACa,OAAO,CAAgB;IAEvC;;OAEG;IACa,MAAM,CAAe;IAErC;;OAEG;IACa,OAAO,CAAiB;IAExC;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,MAAwB;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,2BAAU,CAAC,MAAM,CAAC,CAAC;QAEzC,IAAI,CAAC,QAAQ,GAAG,IAAI,4BAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,0BAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,2BAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;CACF;AAnDD,4BAmDC"}
1
+ {"version":3,"file":"einvoice.js","sourceRoot":"","sources":["../../src/einvoice.ts"],"names":[],"mappings":";;;AAAA,4DAAqD;AAErD,wDAAwD;AACxD,sDAAsD;AACtD,oDAAoD;AACpD,sDAAuD;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAa,QAAQ;IACnB,gBAAgB;IACC,UAAU,CAAa;IAExC;;OAEG;IACa,QAAQ,CAAiB;IAEzC;;OAEG;IACa,OAAO,CAAgB;IAEvC;;OAEG;IACa,MAAM,CAAe;IAErC;;OAEG;IACa,OAAO,CAAiB;IAExC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,YAAY,MAAwB;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,2BAAU,CAAC,MAAM,CAAC,CAAC;QAEzC,IAAI,CAAC,QAAQ,GAAG,IAAI,4BAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,0BAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,2BAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;CACF;AAxDD,4BAwDC"}
@@ -4,7 +4,7 @@ export { SellerService } from './services/sellers.js';
4
4
  export { BuyerService } from './services/buyers.js';
5
5
  export { BillingService } from './services/billing.js';
6
6
  export { HttpClient } from './client/http-client.js';
7
- export type { HttpClientConfig } from './client/http-client.js';
7
+ export type { HttpClientConfig, HttpClientOptions, RetryConfig } from './client/http-client.js';
8
8
  export { EInvoiceError, EInvoiceApiError, EInvoiceRateLimitError, EInvoiceTimeoutError, EInvoiceConfigError, EInvoiceWebhookError, } from './errors.js';
9
9
  export { verifyWebhook } from './webhooks/verify.js';
10
10
  export type { VerifyWebhookOptions } from './webhooks/verify.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAKzC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAKhE,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAKrB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAKjE,YAAY,EAEV,WAAW,EACX,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,cAAc,EAGd,WAAW,EACX,aAAa,EACb,aAAa,EACb,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,OAAO,EACP,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EAGnB,SAAS,EACT,WAAW,EACX,qBAAqB,EACrB,MAAM,EACN,KAAK,EACL,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EAGZ,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EACP,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EAGpB,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAKzC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAKhG,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAKrB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAKjE,YAAY,EAEV,WAAW,EACX,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,cAAc,EAGd,WAAW,EACX,aAAa,EACb,aAAa,EACb,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,OAAO,EACP,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EAGnB,SAAS,EACT,WAAW,EACX,qBAAqB,EACrB,MAAM,EACN,KAAK,EACL,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EAGZ,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EACP,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EAGpB,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC"}
@@ -1,28 +1,74 @@
1
1
  import type { ApiResponse, RequestOptions as PerRequestOptions } from '../types/common.js';
2
+ /**
3
+ * Retry configuration for failed requests.
4
+ */
5
+ export interface RetryConfig {
6
+ /**
7
+ * Maximum number of retry attempts for failed requests.
8
+ * Only 5xx errors and 429 rate limits are retried.
9
+ * @default 3
10
+ */
11
+ maxAttempts?: number;
12
+ /**
13
+ * Base delay for exponential backoff (in milliseconds).
14
+ * @default 1000
15
+ */
16
+ baseDelay?: number;
17
+ }
18
+ /**
19
+ * HTTP client options for configuring request behavior.
20
+ */
21
+ export interface HttpClientOptions {
22
+ /**
23
+ * Base URL of the API gateway.
24
+ * @default 'https://api.einvoice.ng'
25
+ */
26
+ baseUrl?: string;
27
+ /**
28
+ * Request timeout in milliseconds.
29
+ * @default 30000
30
+ */
31
+ timeout?: number;
32
+ /**
33
+ * Retry configuration for failed requests.
34
+ */
35
+ retry?: RetryConfig;
36
+ /**
37
+ * Default headers to include in all requests.
38
+ * These can be overridden on a per-request basis.
39
+ */
40
+ headers?: Record<string, string>;
41
+ }
42
+ /**
43
+ * Main SDK configuration.
44
+ */
2
45
  export interface HttpClientConfig {
3
46
  /**
4
47
  * API key for authentication. Must start with `sk_live_` or `sk_test_`.
5
48
  */
6
49
  apiKey: string;
7
50
  /**
8
- * Base URL of the E-Invoice API gateway.
9
- * @default 'https://api.einvoice.ng'
51
+ * HTTP client options for configuring request behavior.
52
+ */
53
+ options?: HttpClientOptions;
54
+ /**
55
+ * @deprecated Use `options.baseUrl` instead.
56
+ * Base URL of the API gateway.
10
57
  */
11
58
  baseUrl?: string;
12
59
  /**
60
+ * @deprecated Use `options.timeout` instead.
13
61
  * Request timeout in milliseconds.
14
- * @default 30000
15
62
  */
16
63
  timeout?: number;
17
64
  /**
18
- * Maximum number of retry attempts for failed requests.
19
- * Only 5xx errors and 429 rate limits are retried.
20
- * @default 3
65
+ * @deprecated Use `options.retry.maxAttempts` instead.
66
+ * Maximum number of retry attempts.
21
67
  */
22
68
  maxRetries?: number;
23
69
  /**
24
- * Base delay for exponential backoff (in milliseconds).
25
- * @default 1000
70
+ * @deprecated Use `options.retry.baseDelay` instead.
71
+ * Base delay for exponential backoff.
26
72
  */
27
73
  retryBaseDelay?: number;
28
74
  }
@@ -39,7 +85,13 @@ export declare class HttpClient {
39
85
  private readonly timeout;
40
86
  private readonly maxRetries;
41
87
  private readonly retryBaseDelay;
88
+ private readonly defaultHeaders;
42
89
  constructor(config: HttpClientConfig);
90
+ /**
91
+ * Determine the default base URL based on the API key prefix.
92
+ * @internal
93
+ */
94
+ private getDefaultBaseUrl;
43
95
  /**
44
96
  * Make an authenticated HTTP request to the E-Invoice API.
45
97
  */
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/client/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,IAAI,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAY3F,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC9D,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAMD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAE5B,MAAM,EAAE,gBAAgB;IAYpC;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YA2D5D,OAAO;IAgCrB,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,KAAK;CAGd"}
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/client/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,IAAI,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAY3F;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAM5B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC9D,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAMD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;gBAE5C,MAAM,EAAE,gBAAgB;IAqBpC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YA2D5D,OAAO;IAiCrB,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,KAAK;CAGd"}
@@ -8,15 +8,34 @@ export class HttpClient {
8
8
  timeout;
9
9
  maxRetries;
10
10
  retryBaseDelay;
11
+ defaultHeaders;
11
12
  constructor(config) {
12
13
  if (!config.apiKey) {
13
14
  throw new EInvoiceConfigError('API key is required. Pass `apiKey` to the client constructor.');
14
15
  }
15
- this.baseUrl = (config.baseUrl ?? 'https://api.einvoice.ng').replace(/\/$/, '');
16
16
  this.apiKey = config.apiKey;
17
- this.timeout = config.timeout ?? 30_000;
18
- this.maxRetries = config.maxRetries ?? 3;
19
- this.retryBaseDelay = config.retryBaseDelay ?? 1000;
17
+ // Support both new nested structure and legacy flat structure
18
+ // Priority: options.* > flat properties > defaults
19
+ const opts = config.options ?? {};
20
+ // Auto-detect baseUrl from API key prefix (test vs live)
21
+ const defaultBaseUrl = this.getDefaultBaseUrl(config.apiKey);
22
+ this.baseUrl = (opts.baseUrl ?? config.baseUrl ?? defaultBaseUrl).replace(/\/$/, '');
23
+ this.timeout = opts.timeout ?? config.timeout ?? 30_000;
24
+ this.maxRetries = opts.retry?.maxAttempts ?? config.maxRetries ?? 3;
25
+ this.retryBaseDelay = opts.retry?.baseDelay ?? config.retryBaseDelay ?? 1000;
26
+ this.defaultHeaders = opts.headers ?? {};
27
+ }
28
+ /**
29
+ * Determine the default base URL based on the API key prefix.
30
+ * @internal
31
+ */
32
+ getDefaultBaseUrl(apiKey) {
33
+ // If API key starts with sk_test_, use local development environment
34
+ if (apiKey.startsWith('sk_test_')) {
35
+ return 'https://local-api.einvoice.ng';
36
+ }
37
+ // Default to production gateway for live keys or any other format
38
+ return 'https://gateway.einvoice.ng';
20
39
  }
21
40
  /**
22
41
  * Make an authenticated HTTP request to the E-Invoice API.
@@ -70,6 +89,7 @@ export class HttpClient {
70
89
  'Authorization': `Bearer ${this.apiKey}`,
71
90
  'Content-Type': 'application/json',
72
91
  'Accept': 'application/json',
92
+ ...this.defaultHeaders,
73
93
  ...options.requestOptions?.headers,
74
94
  };
75
95
  const controller = new AbortController();
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/client/http-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/client/http-client.ts"],"names":[],"mappings":"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"}
@@ -7,11 +7,14 @@ import { BillingService } from './services/billing.js';
7
7
  * The main E-Invoice SDK client.
8
8
  *
9
9
  * Provides access to all E-Invoice platform APIs through typed service objects.
10
+ * The SDK automatically detects the environment from your API key and configures
11
+ * sensible defaults for timeout, retries, and rate limiting.
10
12
  *
11
13
  * @example
12
14
  * ```ts
13
15
  * import { EInvoice } from '@elyonar/einvoice-js';
14
16
  *
17
+ * // Minimal setup - environment auto-detected from API key
15
18
  * const client = new EInvoice({ apiKey: 'sk_test_...' });
16
19
  *
17
20
  * // Invoices
@@ -25,6 +28,18 @@ import { BillingService } from './services/billing.js';
25
28
  * // Billing
26
29
  * const balance = await client.billing.getAccount();
27
30
  * ```
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * // Custom configuration (optional)
35
+ * const client = new EInvoice({
36
+ * apiKey: 'sk_live_...',
37
+ * options: {
38
+ * baseUrl: 'https://custom-region.api.einvoice.ng',
39
+ * timeout: 60000,
40
+ * },
41
+ * });
42
+ * ```
28
43
  */
29
44
  export declare class EInvoice {
30
45
  /** @internal */
@@ -48,19 +63,24 @@ export declare class EInvoice {
48
63
  /**
49
64
  * Create a new E-Invoice SDK client.
50
65
  *
51
- * @param config - Client configuration. At minimum, `apiKey` is required.
66
+ * The SDK automatically detects the environment from your API key:
67
+ * - `sk_test_*` → Local development environment
68
+ * - `sk_live_*` → Production environment
69
+ *
70
+ * @param config - Client configuration. Only `apiKey` is required.
52
71
  *
53
72
  * @example
54
73
  * ```ts
55
- * // Minimal configuration
74
+ * // Minimal - that's all you need!
56
75
  * const client = new EInvoice({ apiKey: 'sk_test_...' });
57
76
  *
58
- * // Full configuration
77
+ * // Custom configuration (optional)
59
78
  * const client = new EInvoice({
60
79
  * apiKey: 'sk_live_...',
61
- * baseUrl: 'https://api.einvoice.ng',
62
- * timeout: 15000,
63
- * maxRetries: 2,
80
+ * options: {
81
+ * baseUrl: 'https://custom-region.api.einvoice.ng',
82
+ * timeout: 60000,
83
+ * },
64
84
  * });
65
85
  * ```
66
86
  */
@@ -1 +1 @@
1
- {"version":3,"file":"einvoice.d.ts","sourceRoot":"","sources":["../../src/einvoice.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,QAAQ;IACnB,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC;;OAEG;IACH,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAEzC;;OAEG;IACH,SAAgB,OAAO,EAAE,aAAa,CAAC;IAEvC;;OAEG;IACH,SAAgB,MAAM,EAAE,YAAY,CAAC;IAErC;;OAEG;IACH,SAAgB,OAAO,EAAE,cAAc,CAAC;IAExC;;;;;;;;;;;;;;;;;;OAkBG;gBACS,MAAM,EAAE,gBAAgB;CAQrC"}
1
+ {"version":3,"file":"einvoice.d.ts","sourceRoot":"","sources":["../../src/einvoice.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBAAa,QAAQ;IACnB,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC;;OAEG;IACH,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAEzC;;OAEG;IACH,SAAgB,OAAO,EAAE,aAAa,CAAC;IAEvC;;OAEG;IACH,SAAgB,MAAM,EAAE,YAAY,CAAC;IAErC;;OAEG;IACH,SAAgB,OAAO,EAAE,cAAc,CAAC;IAExC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;gBACS,MAAM,EAAE,gBAAgB;CAQrC"}
@@ -7,11 +7,14 @@ import { BillingService } from './services/billing.js';
7
7
  * The main E-Invoice SDK client.
8
8
  *
9
9
  * Provides access to all E-Invoice platform APIs through typed service objects.
10
+ * The SDK automatically detects the environment from your API key and configures
11
+ * sensible defaults for timeout, retries, and rate limiting.
10
12
  *
11
13
  * @example
12
14
  * ```ts
13
15
  * import { EInvoice } from '@elyonar/einvoice-js';
14
16
  *
17
+ * // Minimal setup - environment auto-detected from API key
15
18
  * const client = new EInvoice({ apiKey: 'sk_test_...' });
16
19
  *
17
20
  * // Invoices
@@ -25,6 +28,18 @@ import { BillingService } from './services/billing.js';
25
28
  * // Billing
26
29
  * const balance = await client.billing.getAccount();
27
30
  * ```
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * // Custom configuration (optional)
35
+ * const client = new EInvoice({
36
+ * apiKey: 'sk_live_...',
37
+ * options: {
38
+ * baseUrl: 'https://custom-region.api.einvoice.ng',
39
+ * timeout: 60000,
40
+ * },
41
+ * });
42
+ * ```
28
43
  */
29
44
  export class EInvoice {
30
45
  /** @internal */
@@ -48,19 +63,24 @@ export class EInvoice {
48
63
  /**
49
64
  * Create a new E-Invoice SDK client.
50
65
  *
51
- * @param config - Client configuration. At minimum, `apiKey` is required.
66
+ * The SDK automatically detects the environment from your API key:
67
+ * - `sk_test_*` → Local development environment
68
+ * - `sk_live_*` → Production environment
69
+ *
70
+ * @param config - Client configuration. Only `apiKey` is required.
52
71
  *
53
72
  * @example
54
73
  * ```ts
55
- * // Minimal configuration
74
+ * // Minimal - that's all you need!
56
75
  * const client = new EInvoice({ apiKey: 'sk_test_...' });
57
76
  *
58
- * // Full configuration
77
+ * // Custom configuration (optional)
59
78
  * const client = new EInvoice({
60
79
  * apiKey: 'sk_live_...',
61
- * baseUrl: 'https://api.einvoice.ng',
62
- * timeout: 15000,
63
- * maxRetries: 2,
80
+ * options: {
81
+ * baseUrl: 'https://custom-region.api.einvoice.ng',
82
+ * timeout: 60000,
83
+ * },
64
84
  * });
65
85
  * ```
66
86
  */
@@ -1 +1 @@
1
- {"version":3,"file":"einvoice.js","sourceRoot":"","sources":["../../src/einvoice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,QAAQ;IACnB,gBAAgB;IACC,UAAU,CAAa;IAExC;;OAEG;IACa,QAAQ,CAAiB;IAEzC;;OAEG;IACa,OAAO,CAAgB;IAEvC;;OAEG;IACa,MAAM,CAAe;IAErC;;OAEG;IACa,OAAO,CAAiB;IAExC;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,MAAwB;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAEzC,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;CACF"}
1
+ {"version":3,"file":"einvoice.js","sourceRoot":"","sources":["../../src/einvoice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,OAAO,QAAQ;IACnB,gBAAgB;IACC,UAAU,CAAa;IAExC;;OAEG;IACa,QAAQ,CAAiB;IAEzC;;OAEG;IACa,OAAO,CAAgB;IAEvC;;OAEG;IACa,MAAM,CAAe;IAErC;;OAEG;IACa,OAAO,CAAiB;IAExC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,YAAY,MAAwB;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAEzC,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;CACF"}
@@ -4,7 +4,7 @@ export { SellerService } from './services/sellers.js';
4
4
  export { BuyerService } from './services/buyers.js';
5
5
  export { BillingService } from './services/billing.js';
6
6
  export { HttpClient } from './client/http-client.js';
7
- export type { HttpClientConfig } from './client/http-client.js';
7
+ export type { HttpClientConfig, HttpClientOptions, RetryConfig } from './client/http-client.js';
8
8
  export { EInvoiceError, EInvoiceApiError, EInvoiceRateLimitError, EInvoiceTimeoutError, EInvoiceConfigError, EInvoiceWebhookError, } from './errors.js';
9
9
  export { verifyWebhook } from './webhooks/verify.js';
10
10
  export type { VerifyWebhookOptions } from './webhooks/verify.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAKzC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAKhE,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAKrB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAKjE,YAAY,EAEV,WAAW,EACX,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,cAAc,EAGd,WAAW,EACX,aAAa,EACb,aAAa,EACb,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,OAAO,EACP,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EAGnB,SAAS,EACT,WAAW,EACX,qBAAqB,EACrB,MAAM,EACN,KAAK,EACL,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EAGZ,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EACP,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EAGpB,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAKzC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAKhG,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAKrB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAKjE,YAAY,EAEV,WAAW,EACX,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,cAAc,EAGd,WAAW,EACX,aAAa,EACb,aAAa,EACb,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,OAAO,EACP,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EAGnB,SAAS,EACT,WAAW,EACX,qBAAqB,EACrB,MAAM,EACN,KAAK,EACL,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EAGZ,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EACP,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EAGpB,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@elyonar/einvoice-js",
3
- "version": "0.1.0",
4
- "description": "Official TypeScript/JavaScript SDK for the E-Invoice Nigeria platform",
3
+ "version": "0.2.1",
4
+ "description": "Official TypeScript/JavaScript SDK for the E-Invoice platform — streamlining electronic invoicing and tax compliance",
5
5
  "author": "Elyonar <dev@elyonar.com>",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -68,13 +68,14 @@
68
68
  "keywords": [
69
69
  "einvoice",
70
70
  "e-invoice",
71
- "nigeria",
72
- "firs",
71
+ "electronic-invoice",
72
+ "tax-compliance",
73
73
  "tax",
74
74
  "invoice",
75
75
  "billing",
76
76
  "sdk",
77
- "api-client"
77
+ "api-client",
78
+ "typescript"
78
79
  ],
79
80
  "repository": {
80
81
  "type": "git",