infinium-o2 0.1.0
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/LICENSE +21 -0
- package/README.md +550 -0
- package/dist/cjs/asyncClient.d.ts +119 -0
- package/dist/cjs/asyncClient.d.ts.map +1 -0
- package/dist/cjs/asyncClient.js +464 -0
- package/dist/cjs/asyncClient.js.map +1 -0
- package/dist/cjs/client.d.ts +92 -0
- package/dist/cjs/client.d.ts.map +1 -0
- package/dist/cjs/client.js +354 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/errors.d.ts +102 -0
- package/dist/cjs/errors.d.ts.map +1 -0
- package/dist/cjs/errors.js +218 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/index.d.ts +12 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +61 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/types.d.ts +231 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +23 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils.d.ts +130 -0
- package/dist/cjs/utils.d.ts.map +1 -0
- package/dist/cjs/utils.js +381 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/esm/asyncClient.d.ts +119 -0
- package/dist/esm/asyncClient.d.ts.map +1 -0
- package/dist/esm/asyncClient.js +457 -0
- package/dist/esm/asyncClient.js.map +1 -0
- package/dist/esm/client.d.ts +92 -0
- package/dist/esm/client.d.ts.map +1 -0
- package/dist/esm/client.js +347 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/errors.d.ts +102 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js +200 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/index.d.ts +12 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +17 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/types.d.ts +231 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +20 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils.d.ts +130 -0
- package/dist/esm/utils.d.ts.map +1 -0
- package/dist/esm/utils.js +355 -0
- package/dist/esm/utils.js.map +1 -0
- package/package.json +94 -0
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for the Infinium SDK.
|
|
3
|
+
*/
|
|
4
|
+
import { AgentType } from './types';
|
|
5
|
+
import { ValidationError } from './errors';
|
|
6
|
+
/**
|
|
7
|
+
* Default console logger implementation.
|
|
8
|
+
*/
|
|
9
|
+
export class ConsoleLogger {
|
|
10
|
+
level;
|
|
11
|
+
constructor(level = 'INFO') {
|
|
12
|
+
this.level = level;
|
|
13
|
+
}
|
|
14
|
+
shouldLog(level) {
|
|
15
|
+
const levels = ['DEBUG', 'INFO', 'WARN', 'ERROR'];
|
|
16
|
+
return levels.indexOf(level) >= levels.indexOf(this.level);
|
|
17
|
+
}
|
|
18
|
+
formatMessage(level, message, meta) {
|
|
19
|
+
const timestamp = new Date().toISOString();
|
|
20
|
+
const metaStr = meta ? ` ${JSON.stringify(meta)}` : '';
|
|
21
|
+
return `[${timestamp}] ${level}: ${message}${metaStr}`;
|
|
22
|
+
}
|
|
23
|
+
debug(message, meta) {
|
|
24
|
+
if (this.shouldLog('DEBUG')) {
|
|
25
|
+
console.log(this.formatMessage('DEBUG', message, meta));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
info(message, meta) {
|
|
29
|
+
if (this.shouldLog('INFO')) {
|
|
30
|
+
console.log(this.formatMessage('INFO', message, meta));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
warn(message, meta) {
|
|
34
|
+
if (this.shouldLog('WARN')) {
|
|
35
|
+
console.warn(this.formatMessage('WARN', message, meta));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
error(message, meta) {
|
|
39
|
+
if (this.shouldLog('ERROR')) {
|
|
40
|
+
console.error(this.formatMessage('ERROR', message, meta));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Rate limiter implementation using token bucket algorithm.
|
|
46
|
+
*/
|
|
47
|
+
export class RateLimiter {
|
|
48
|
+
tokens;
|
|
49
|
+
lastRefillTime;
|
|
50
|
+
maxTokens;
|
|
51
|
+
tokensPerSecond;
|
|
52
|
+
constructor(config) {
|
|
53
|
+
this.tokensPerSecond = config.requestsPerSecond;
|
|
54
|
+
this.maxTokens = config.burstSize || config.requestsPerSecond;
|
|
55
|
+
this.tokens = this.maxTokens;
|
|
56
|
+
this.lastRefillTime = Date.now();
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Check if a request can be made.
|
|
60
|
+
*/
|
|
61
|
+
canMakeRequest() {
|
|
62
|
+
this.refillTokens();
|
|
63
|
+
if (this.tokens >= 1) {
|
|
64
|
+
this.tokens -= 1;
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get time to wait before next request can be made.
|
|
71
|
+
*/
|
|
72
|
+
getWaitTime() {
|
|
73
|
+
this.refillTokens();
|
|
74
|
+
if (this.tokens >= 1) {
|
|
75
|
+
return 0;
|
|
76
|
+
}
|
|
77
|
+
return Math.ceil((1 - this.tokens) * (1000 / this.tokensPerSecond));
|
|
78
|
+
}
|
|
79
|
+
refillTokens() {
|
|
80
|
+
const now = Date.now();
|
|
81
|
+
const timePassed = (now - this.lastRefillTime) / 1000;
|
|
82
|
+
const tokensToAdd = timePassed * this.tokensPerSecond;
|
|
83
|
+
this.tokens = Math.min(this.maxTokens, this.tokens + tokensToAdd);
|
|
84
|
+
this.lastRefillTime = now;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Validate agent credentials.
|
|
89
|
+
*/
|
|
90
|
+
export function validateAgentCredentials(agentId, agentSecret) {
|
|
91
|
+
if (!agentId || typeof agentId !== 'string' || !agentId.trim()) {
|
|
92
|
+
throw new ValidationError('agent_id is required and must be a non-empty string', 'agentId');
|
|
93
|
+
}
|
|
94
|
+
if (!agentSecret || typeof agentSecret !== 'string' || !agentSecret.trim()) {
|
|
95
|
+
throw new ValidationError('agent_secret is required and must be a non-empty string', 'agentSecret');
|
|
96
|
+
}
|
|
97
|
+
// Additional security validation
|
|
98
|
+
if (agentId.trim().length < 3) {
|
|
99
|
+
throw new ValidationError('agent_id must be at least 3 characters long', 'agentId');
|
|
100
|
+
}
|
|
101
|
+
if (agentSecret.trim().length < 8) {
|
|
102
|
+
throw new ValidationError('agent_secret must be at least 8 characters long', 'agentSecret');
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Validate ISO 8601 datetime string.
|
|
107
|
+
*/
|
|
108
|
+
export function validateIsoDatetime(datetimeStr) {
|
|
109
|
+
try {
|
|
110
|
+
const date = new Date(datetimeStr);
|
|
111
|
+
return !Number.isNaN(date.getTime()) && datetimeStr.includes('T');
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Validate agent type.
|
|
119
|
+
*/
|
|
120
|
+
export function validateAgentType(agentType) {
|
|
121
|
+
const upperType = agentType.toUpperCase();
|
|
122
|
+
if (Object.values(AgentType).includes(upperType)) {
|
|
123
|
+
return upperType;
|
|
124
|
+
}
|
|
125
|
+
throw new ValidationError(`Invalid agent_type: ${agentType}. Valid options: ${Object.values(AgentType).join(', ')}`, 'agentType');
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Validate duration value.
|
|
129
|
+
*/
|
|
130
|
+
export function validateDuration(duration) {
|
|
131
|
+
if (typeof duration !== 'number' ||
|
|
132
|
+
Number.isNaN(duration) ||
|
|
133
|
+
duration < 0 ||
|
|
134
|
+
!Number.isFinite(duration)) {
|
|
135
|
+
throw new ValidationError('duration must be a finite non-negative number', 'duration');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Validate required field.
|
|
140
|
+
*/
|
|
141
|
+
export function validateRequiredField(value, fieldName, expectedType = 'string') {
|
|
142
|
+
if (value === undefined || value === null) {
|
|
143
|
+
throw new ValidationError(`${fieldName} is required`, fieldName);
|
|
144
|
+
}
|
|
145
|
+
if (typeof value !== expectedType) {
|
|
146
|
+
throw new ValidationError(`${fieldName} must be of type ${expectedType}`, fieldName);
|
|
147
|
+
}
|
|
148
|
+
if (expectedType === 'string' && !value.trim()) {
|
|
149
|
+
throw new ValidationError(`${fieldName} cannot be empty`, fieldName);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Get current ISO datetime string.
|
|
154
|
+
*/
|
|
155
|
+
export function getCurrentIsoDatetime() {
|
|
156
|
+
return new Date().toISOString();
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Convert object to JSON safely.
|
|
160
|
+
*/
|
|
161
|
+
export function safeJsonStringify(obj) {
|
|
162
|
+
try {
|
|
163
|
+
return JSON.stringify(obj);
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
return '{}';
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Parse JSON safely.
|
|
171
|
+
*/
|
|
172
|
+
export function safeJsonParse(str) {
|
|
173
|
+
try {
|
|
174
|
+
return JSON.parse(str);
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Deep merge two objects.
|
|
182
|
+
*/
|
|
183
|
+
export function mergeObjects(target, source) {
|
|
184
|
+
const result = { ...target };
|
|
185
|
+
for (const key in source) {
|
|
186
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
187
|
+
const sourceValue = source[key];
|
|
188
|
+
const targetValue = result[key];
|
|
189
|
+
if (sourceValue &&
|
|
190
|
+
typeof sourceValue === 'object' &&
|
|
191
|
+
!Array.isArray(sourceValue) &&
|
|
192
|
+
targetValue &&
|
|
193
|
+
typeof targetValue === 'object' &&
|
|
194
|
+
!Array.isArray(targetValue)) {
|
|
195
|
+
result[key] = mergeObjects(targetValue, sourceValue);
|
|
196
|
+
}
|
|
197
|
+
else if (sourceValue !== undefined) {
|
|
198
|
+
result[key] = sourceValue;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return result;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Sleep for specified milliseconds.
|
|
206
|
+
*/
|
|
207
|
+
export function sleep(ms) {
|
|
208
|
+
return new Promise(resolve => {
|
|
209
|
+
setTimeout(resolve, ms);
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Exponential backoff calculation.
|
|
214
|
+
*/
|
|
215
|
+
export function calculateBackoff(attempt, baseDelay, factor = 2, maxDelay = 30000) {
|
|
216
|
+
const delay = baseDelay * factor ** (attempt - 1);
|
|
217
|
+
return Math.min(delay, maxDelay);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Retry function with exponential backoff.
|
|
221
|
+
*/
|
|
222
|
+
export async function retryWithBackoff(fn, config) {
|
|
223
|
+
let lastError;
|
|
224
|
+
for (let attempt = 1; attempt <= config.attempts; attempt++) {
|
|
225
|
+
try {
|
|
226
|
+
return await fn();
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
lastError = error;
|
|
230
|
+
// Check if we should retry this error
|
|
231
|
+
if (config.retryCondition && !config.retryCondition(error)) {
|
|
232
|
+
throw error;
|
|
233
|
+
}
|
|
234
|
+
// If this is the last attempt, throw the error
|
|
235
|
+
if (attempt === config.attempts) {
|
|
236
|
+
throw error;
|
|
237
|
+
}
|
|
238
|
+
// Calculate delay and wait
|
|
239
|
+
const delay = calculateBackoff(attempt, config.delay, config.factor, config.maxDelay);
|
|
240
|
+
await sleep(delay);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
throw lastError;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Check if error should be retried.
|
|
247
|
+
*/
|
|
248
|
+
export function shouldRetryError(error) {
|
|
249
|
+
if (error && typeof error === 'object' && 'response' in error) {
|
|
250
|
+
const { response } = error;
|
|
251
|
+
if (response) {
|
|
252
|
+
const { status } = response;
|
|
253
|
+
// Retry on server errors and rate limiting
|
|
254
|
+
return status >= 500 || status === 429;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
// Retry on network errors
|
|
258
|
+
if (error && typeof error === 'object' && 'code' in error) {
|
|
259
|
+
const { code } = error;
|
|
260
|
+
return ['ECONNRESET', 'ENOTFOUND', 'ECONNREFUSED', 'ETIMEDOUT'].includes(code);
|
|
261
|
+
}
|
|
262
|
+
return false;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Generate user agent string.
|
|
266
|
+
*/
|
|
267
|
+
export function generateUserAgent(sdkVersion) {
|
|
268
|
+
const nodeVersion = process.version;
|
|
269
|
+
const { platform } = process;
|
|
270
|
+
const { arch } = process;
|
|
271
|
+
return `infinium-node/${sdkVersion} (${platform}; ${arch}) Node.js/${nodeVersion}`;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Validate URL format.
|
|
275
|
+
*/
|
|
276
|
+
export function validateUrl(url) {
|
|
277
|
+
try {
|
|
278
|
+
new URL(url);
|
|
279
|
+
return true;
|
|
280
|
+
}
|
|
281
|
+
catch {
|
|
282
|
+
return false;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Clean and normalize URL.
|
|
287
|
+
*/
|
|
288
|
+
export function normalizeUrl(url) {
|
|
289
|
+
try {
|
|
290
|
+
const parsed = new URL(url);
|
|
291
|
+
return parsed.origin + parsed.pathname.replace(/\/+$/, '');
|
|
292
|
+
}
|
|
293
|
+
catch {
|
|
294
|
+
throw new ValidationError('Invalid URL format', 'baseUrl');
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Convert camelCase to snake_case.
|
|
299
|
+
*/
|
|
300
|
+
export function camelToSnakeCase(str) {
|
|
301
|
+
return str.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`);
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Convert snake_case to camelCase.
|
|
305
|
+
*/
|
|
306
|
+
export function snakeToCamelCase(str) {
|
|
307
|
+
return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Convert object keys from camelCase to snake_case.
|
|
311
|
+
*/
|
|
312
|
+
export function objectToSnakeCase(obj) {
|
|
313
|
+
const result = {};
|
|
314
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
315
|
+
const snakeKey = camelToSnakeCase(key);
|
|
316
|
+
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
317
|
+
result[snakeKey] = objectToSnakeCase(value);
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
result[snakeKey] = value;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
return result;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Convert object keys from snake_case to camelCase.
|
|
327
|
+
*/
|
|
328
|
+
export function objectToCamelCase(obj) {
|
|
329
|
+
const result = {};
|
|
330
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
331
|
+
const camelKey = snakeToCamelCase(key);
|
|
332
|
+
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
333
|
+
result[camelKey] = objectToCamelCase(value);
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
result[camelKey] = value;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
return result;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Setup logging for the SDK.
|
|
343
|
+
*/
|
|
344
|
+
export function setupLogging(enabled = false, level = 'INFO') {
|
|
345
|
+
if (!enabled) {
|
|
346
|
+
return {
|
|
347
|
+
debug: () => { },
|
|
348
|
+
info: () => { },
|
|
349
|
+
warn: () => { },
|
|
350
|
+
error: () => { },
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
return new ConsoleLogger(level);
|
|
354
|
+
}
|
|
355
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "infinium-o2",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Official Node.js SDK for Infinium Hosted MCP Bridge API - Enable AI agents to send task data and analytics to the Infinium platform",
|
|
5
|
+
"main": "dist/cjs/index.js",
|
|
6
|
+
"module": "dist/esm/index.js",
|
|
7
|
+
"types": "dist/esm/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/esm/index.js",
|
|
11
|
+
"require": "./dist/cjs/index.js",
|
|
12
|
+
"types": "./dist/esm/index.d.ts"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist/**/*",
|
|
17
|
+
"README.md",
|
|
18
|
+
"LICENSE"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "npm run clean && npm run build:esm && npm run build:cjs",
|
|
22
|
+
"build:esm": "tsc -p tsconfig.esm.json && echo {\"type\":\"module\"} > dist/esm/package.json",
|
|
23
|
+
"build:cjs": "tsc -p tsconfig.cjs.json && echo {\"type\":\"commonjs\"} > dist/cjs/package.json",
|
|
24
|
+
"build:watch": "npm run build:esm -- --watch",
|
|
25
|
+
"clean": "rimraf dist",
|
|
26
|
+
"test": "jest",
|
|
27
|
+
"test:watch": "jest --watch",
|
|
28
|
+
"test:coverage": "jest --coverage",
|
|
29
|
+
"lint": "eslint src/**/*.ts",
|
|
30
|
+
"lint:fix": "eslint src/**/*.ts --fix",
|
|
31
|
+
"format": "prettier --write src/**/*.ts",
|
|
32
|
+
"format:check": "prettier --check src/**/*.ts",
|
|
33
|
+
"prepublishOnly": "npm run build && npm run test && npm run lint",
|
|
34
|
+
"prepare": "npm run build",
|
|
35
|
+
"dev": "ts-node-dev --respawn --transpile-only src/index.ts",
|
|
36
|
+
"test-simple": "npm run build && node test-simple.js"
|
|
37
|
+
},
|
|
38
|
+
"keywords": [
|
|
39
|
+
"infinium",
|
|
40
|
+
"mcp",
|
|
41
|
+
"api",
|
|
42
|
+
"sdk",
|
|
43
|
+
"agent",
|
|
44
|
+
"automation",
|
|
45
|
+
"typescript",
|
|
46
|
+
"nodejs"
|
|
47
|
+
],
|
|
48
|
+
"author": {
|
|
49
|
+
"name": "Xyen Digital",
|
|
50
|
+
"email": "support@xyendigital.com"
|
|
51
|
+
},
|
|
52
|
+
"license": "MIT",
|
|
53
|
+
"repository": {
|
|
54
|
+
"type": "git",
|
|
55
|
+
"url": "https://github.com/xyendigital/infinium-npm-sdk.git"
|
|
56
|
+
},
|
|
57
|
+
"bugs": {
|
|
58
|
+
"url": "https://github.com/xyendigital/infinium-npm-sdk/issues"
|
|
59
|
+
},
|
|
60
|
+
"homepage": "https://github.com/xyendigital/infinium-npm-sdk#readme",
|
|
61
|
+
"engines": {
|
|
62
|
+
"node": ">=20.0.0",
|
|
63
|
+
"npm": ">=9.0.0"
|
|
64
|
+
},
|
|
65
|
+
"dependencies": {
|
|
66
|
+
"axios": "^1.6.0",
|
|
67
|
+
"axios-retry": "^4.0.0"
|
|
68
|
+
},
|
|
69
|
+
"devDependencies": {
|
|
70
|
+
"@types/jest": "^29.5.0",
|
|
71
|
+
"@types/node": "^20.0.0",
|
|
72
|
+
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
|
73
|
+
"@typescript-eslint/parser": "^6.21.0",
|
|
74
|
+
"eslint": "^8.50.0",
|
|
75
|
+
"eslint-config-airbnb-base": "^15.0.0",
|
|
76
|
+
"eslint-config-prettier": "^9.1.2",
|
|
77
|
+
"eslint-plugin-import": "^2.32.0",
|
|
78
|
+
"eslint-plugin-prettier": "^5.0.0",
|
|
79
|
+
"jest": "^29.7.0",
|
|
80
|
+
"prettier": "^3.0.0",
|
|
81
|
+
"rimraf": "^5.0.0",
|
|
82
|
+
"ts-jest": "^29.1.0",
|
|
83
|
+
"ts-node": "^10.9.2",
|
|
84
|
+
"ts-node-dev": "^2.0.0",
|
|
85
|
+
"typescript": "^5.9.3"
|
|
86
|
+
},
|
|
87
|
+
"optionalDependencies": {
|
|
88
|
+
"dotenv": "^16.3.0"
|
|
89
|
+
},
|
|
90
|
+
"publishConfig": {
|
|
91
|
+
"access": "public",
|
|
92
|
+
"registry": "https://registry.npmjs.org/"
|
|
93
|
+
}
|
|
94
|
+
}
|