chargebee 3.7.0 → 3.8.0-beta.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 +66 -0
- package/cjs/RequestWrapper.js +117 -56
- package/cjs/asyncApiSupport.js +7 -7
- package/cjs/coreCommon.js +4 -4
- package/cjs/createChargebee.js +16 -15
- package/cjs/environment.js +1 -1
- package/cjs/net/ClientInterface.js +2 -2
- package/cjs/net/FetchClient.js +6 -6
- package/cjs/net/NodeClient.js +4 -4
- package/cjs/resources/api_endpoints.js +2064 -270
- package/cjs/util.js +61 -36
- package/esm/RequestWrapper.js +115 -54
- package/esm/asyncApiSupport.js +1 -1
- package/esm/coreCommon.js +2 -2
- package/esm/createChargebee.js +6 -5
- package/esm/environment.js +1 -1
- package/esm/net/ClientInterface.js +1 -1
- package/esm/net/FetchClient.js +1 -1
- package/esm/net/NodeClient.js +1 -1
- package/esm/resources/api_endpoints.js +2064 -270
- package/esm/util.js +59 -36
- package/package.json +1 -1
- package/types/index.d.ts +23 -0
package/esm/util.js
CHANGED
|
@@ -2,48 +2,43 @@ export const extend = (deep, target, copy) => {
|
|
|
2
2
|
_extendsFn(deep, target, copy);
|
|
3
3
|
};
|
|
4
4
|
const _extendsFn = (...args) => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
if (
|
|
28
|
-
|
|
29
|
-
(typeof copy === 'object' || (copyIsArray = isArray(copy)))) {
|
|
30
|
-
if (copyIsArray) {
|
|
31
|
-
copyIsArray = false;
|
|
32
|
-
clone = src && isArray(src) ? src : [];
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
clone = src && typeof src === 'object' ? src : {};
|
|
36
|
-
}
|
|
37
|
-
target[name] = extend(deep, clone, copy);
|
|
5
|
+
let options, name, src, copy, copyIsArray, clone;
|
|
6
|
+
let target = args[0] || {};
|
|
7
|
+
let i = 1;
|
|
8
|
+
const length = args.length;
|
|
9
|
+
let deep = false;
|
|
10
|
+
if (typeof target === 'boolean') {
|
|
11
|
+
deep = target;
|
|
12
|
+
target = args[1] || {};
|
|
13
|
+
i = 2;
|
|
14
|
+
}
|
|
15
|
+
if (typeof target !== 'object' && typeof target !== 'function') {
|
|
16
|
+
target = {};
|
|
17
|
+
}
|
|
18
|
+
for (; i < length; i++) {
|
|
19
|
+
if ((options = args[i]) !== null && options !== undefined) {
|
|
20
|
+
for (name in options) {
|
|
21
|
+
src = target[name];
|
|
22
|
+
copy = options[name];
|
|
23
|
+
if (target === copy) {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (deep && copy && (typeof copy === 'object' || isArray(copy))) {
|
|
27
|
+
if (isArray(copy)) {
|
|
28
|
+
clone = isArray(src) ? src : [];
|
|
38
29
|
}
|
|
39
|
-
else
|
|
40
|
-
|
|
30
|
+
else {
|
|
31
|
+
clone = isObject(src) ? src : {};
|
|
41
32
|
}
|
|
33
|
+
target[name] = _extendsFn(deep, clone, copy);
|
|
34
|
+
}
|
|
35
|
+
else if (copy !== undefined) {
|
|
36
|
+
target[name] = copy;
|
|
42
37
|
}
|
|
43
38
|
}
|
|
44
39
|
}
|
|
45
|
-
return target;
|
|
46
40
|
}
|
|
41
|
+
return target;
|
|
47
42
|
};
|
|
48
43
|
export const isArray = (obj) => {
|
|
49
44
|
return (Array.isArray(obj) ||
|
|
@@ -205,3 +200,31 @@ export function encodeParams(paramObj, serialized, scope, index, jsonKeys, level
|
|
|
205
200
|
}
|
|
206
201
|
return serialized.join('&').replace(/%20/g, '+');
|
|
207
202
|
}
|
|
203
|
+
export function log(env, { level = 'INFO', message = '', context = {}, functionName = '' }) {
|
|
204
|
+
if (!env.enableDebugLogs) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
const timestamp = new Date().toISOString();
|
|
208
|
+
const service = 'chargebee-node';
|
|
209
|
+
const metaString = Object.entries(context)
|
|
210
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
211
|
+
.join(', ');
|
|
212
|
+
const logLine = `[${timestamp}] [${level.toUpperCase()}] [${service}] ${functionName} - ${message}${metaString ? ` (${metaString})` : ''}`;
|
|
213
|
+
console.debug(logLine);
|
|
214
|
+
}
|
|
215
|
+
import { randomBytes } from 'crypto';
|
|
216
|
+
export function generateUUIDv4() {
|
|
217
|
+
const bytes = randomBytes(16);
|
|
218
|
+
// Set version to 4 (UUIDv4)
|
|
219
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
220
|
+
// Set variant to 10xxxxxx
|
|
221
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
222
|
+
const hex = bytes.toString('hex');
|
|
223
|
+
return [
|
|
224
|
+
hex.slice(0, 8),
|
|
225
|
+
hex.slice(8, 12),
|
|
226
|
+
hex.slice(12, 16),
|
|
227
|
+
hex.slice(16, 20),
|
|
228
|
+
hex.slice(20),
|
|
229
|
+
].join('-');
|
|
230
|
+
}
|
package/package.json
CHANGED
package/types/index.d.ts
CHANGED
|
@@ -121,6 +121,29 @@ export type Config = {
|
|
|
121
121
|
* @hostSuffix url host suffix, default value is .chargebee.com
|
|
122
122
|
*/
|
|
123
123
|
hostSuffix?: string;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* @retryConfig retry configuration for the client, default value is { enabled: false, maxRetries: 3, delayMs: 1000, retryOn: [500, 502, 503, 504]}
|
|
127
|
+
*/
|
|
128
|
+
retryConfig?: RetryConfig;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* @enableDebugLogs whether to enable debug logs, default value is false
|
|
132
|
+
*/
|
|
133
|
+
enableDebugLogs?: boolean;
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
export type RetryConfig = {
|
|
137
|
+
/**
|
|
138
|
+
* @enabled whether to enable retry logic, default value is false
|
|
139
|
+
* @maxRetries maximum number of retries, default value is 3
|
|
140
|
+
* @delayMs delay in milliseconds between retries, default value is 1000ms
|
|
141
|
+
* @retryOn array of HTTP status codes to retry on, default value is [500, 502, 503, 504]
|
|
142
|
+
*/
|
|
143
|
+
enabled?: boolean;
|
|
144
|
+
maxRetries?: number;
|
|
145
|
+
delayMs?: number;
|
|
146
|
+
retryOn?: Array<number>;
|
|
124
147
|
};
|
|
125
148
|
declare module 'chargebee' {
|
|
126
149
|
export default class Chargebee {
|