aziosxjs 1.0.0 → 1.0.2

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/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  declare const azios: import("./types/request").AziosInstance;
2
+ export default azios;
2
3
  export type { AziosRequestConfig } from "./types/config";
3
4
  export type { AziosResponse } from "./types/response";
4
5
  export type { AziosInstance } from "./types/request";
@@ -11,7 +12,10 @@ export { default as PluginManager } from "./plugins/pluginManager";
11
12
  export { default as MiddlewarePipeline } from "./middleware/MiddlewarePipeline";
12
13
  export type { RequestMiddleware, ResponseMiddleware } from "./middleware/MiddlewarePipeline";
13
14
  export { detectRuntime, currentRuntime, isRuntime, isServerRuntime, isBrowserRuntime, RuntimeType } from "./runtimes/detectRuntime";
15
+ export { default as RequestMonitor } from "./monitoring/RequestMonitor";
16
+ export type { RequestLog } from "./monitoring/RequestMonitor";
17
+ export { default as AuthManager, createAuthPlugin } from "./auth/AuthManager";
18
+ export type { TokenConfig, AuthEndpoints, AuthManager as IAuthManager } from "./auth/AuthManager";
14
19
  export { default as AdapterFactory } from "./runtimes/AdapterFactory";
15
20
  export { getCache, setCache, clearCache } from "./cache/memoryCache";
16
21
  export { schedule } from "./rateLimiter/rateLimiter";
17
- export default azios;
package/dist/index.js CHANGED
@@ -3,12 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.schedule = exports.clearCache = exports.setCache = exports.getCache = exports.AdapterFactory = exports.RuntimeType = exports.isBrowserRuntime = exports.isServerRuntime = exports.isRuntime = exports.currentRuntime = exports.detectRuntime = exports.MiddlewarePipeline = exports.PluginManager = exports.createInstance = exports.Azios = exports.InterceptorManager = exports.AziosError = void 0;
6
+ exports.schedule = exports.clearCache = exports.setCache = exports.getCache = exports.AdapterFactory = exports.createAuthPlugin = exports.AuthManager = exports.RequestMonitor = exports.RuntimeType = exports.isBrowserRuntime = exports.isServerRuntime = exports.isRuntime = exports.currentRuntime = exports.detectRuntime = exports.MiddlewarePipeline = exports.PluginManager = exports.createInstance = exports.Azios = exports.InterceptorManager = exports.AziosError = void 0;
7
7
  const createInstance_1 = require("./core/createInstance");
8
8
  // Export main instance
9
9
  const azios = (0, createInstance_1.createInstance)({
10
10
  url: ""
11
11
  });
12
+ exports.default = azios;
12
13
  // ============================================
13
14
  // Class Exports
14
15
  // ============================================
@@ -40,6 +41,17 @@ Object.defineProperty(exports, "isRuntime", { enumerable: true, get: function ()
40
41
  Object.defineProperty(exports, "isServerRuntime", { enumerable: true, get: function () { return detectRuntime_1.isServerRuntime; } });
41
42
  Object.defineProperty(exports, "isBrowserRuntime", { enumerable: true, get: function () { return detectRuntime_1.isBrowserRuntime; } });
42
43
  Object.defineProperty(exports, "RuntimeType", { enumerable: true, get: function () { return detectRuntime_1.RuntimeType; } });
44
+ // ============================================
45
+ // NEW: Monitoring System Exports
46
+ // ============================================
47
+ var RequestMonitor_1 = require("./monitoring/RequestMonitor");
48
+ Object.defineProperty(exports, "RequestMonitor", { enumerable: true, get: function () { return __importDefault(RequestMonitor_1).default; } });
49
+ // ============================================
50
+ // NEW: Authentication System Exports
51
+ // ============================================
52
+ var AuthManager_1 = require("./auth/AuthManager");
53
+ Object.defineProperty(exports, "AuthManager", { enumerable: true, get: function () { return __importDefault(AuthManager_1).default; } });
54
+ Object.defineProperty(exports, "createAuthPlugin", { enumerable: true, get: function () { return AuthManager_1.createAuthPlugin; } });
43
55
  var AdapterFactory_1 = require("./runtimes/AdapterFactory");
44
56
  Object.defineProperty(exports, "AdapterFactory", { enumerable: true, get: function () { return __importDefault(AdapterFactory_1).default; } });
45
57
  // ============================================
@@ -51,8 +63,4 @@ Object.defineProperty(exports, "setCache", { enumerable: true, get: function ()
51
63
  Object.defineProperty(exports, "clearCache", { enumerable: true, get: function () { return memoryCache_1.clearCache; } });
52
64
  var rateLimiter_1 = require("./rateLimiter/rateLimiter");
53
65
  Object.defineProperty(exports, "schedule", { enumerable: true, get: function () { return rateLimiter_1.schedule; } });
54
- // ============================================
55
- // Default Export
56
- // ============================================
57
- exports.default = azios;
58
66
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAsD;AAEtD,uBAAuB;AACvB,MAAM,KAAK,GAAG,IAAA,+BAAc,EAAC;IAC3B,GAAG,EAAE,EAAE;CACR,CAAC,CAAA;AAWF,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C,kDAA2D;AAAlD,yHAAA,OAAO,OAAc;AAC9B,wEAAiF;AAAxE,yIAAA,OAAO,OAAsB;AACtC,sCAA+C;AAAtC,+GAAA,OAAO,OAAS;AACzB,wDAAsD;AAA7C,gHAAA,cAAc,OAAA;AAEvB,+CAA+C;AAC/C,wBAAwB;AACxB,+CAA+C;AAE/C,yDAAkE;AAAzD,+HAAA,OAAO,OAAiB;AAEjC,+CAA+C;AAC/C,4BAA4B;AAC5B,+CAA+C;AAE/C,sEAA+E;AAAtE,yIAAA,OAAO,OAAsB;AAGtC,+CAA+C;AAC/C,0BAA0B;AAC1B,+CAA+C;AAE/C,0DAOiC;AAN/B,8GAAA,aAAa,OAAA;AACb,+GAAA,cAAc,OAAA;AACd,0GAAA,SAAS,OAAA;AACT,gHAAA,eAAe,OAAA;AACf,iHAAA,gBAAgB,OAAA;AAChB,4GAAA,WAAW,OAAA;AAEb,4DAAqE;AAA5D,iIAAA,OAAO,OAAkB;AAElC,+CAA+C;AAC/C,6BAA6B;AAC7B,+CAA+C;AAE/C,mDAAoE;AAA3D,uGAAA,QAAQ,OAAA;AAAE,uGAAA,QAAQ,OAAA;AAAE,yGAAA,UAAU,OAAA;AACvC,yDAAoD;AAA3C,uGAAA,QAAQ,OAAA;AAEjB,+CAA+C;AAC/C,iBAAiB;AACjB,+CAA+C;AAE/C,kBAAe,KAAK,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAsD;AAEtD,uBAAuB;AACvB,MAAM,KAAK,GAAG,IAAA,+BAAc,EAAC;IAC3B,GAAG,EAAE,EAAE;CACR,CAAC,CAAA;AAEF,kBAAe,KAAK,CAAA;AAWpB,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C,kDAA2D;AAAlD,yHAAA,OAAO,OAAc;AAC9B,wEAAiF;AAAxE,yIAAA,OAAO,OAAsB;AACtC,sCAA+C;AAAtC,+GAAA,OAAO,OAAS;AACzB,wDAAsD;AAA7C,gHAAA,cAAc,OAAA;AAEvB,+CAA+C;AAC/C,wBAAwB;AACxB,+CAA+C;AAE/C,yDAAkE;AAAzD,+HAAA,OAAO,OAAiB;AAEjC,+CAA+C;AAC/C,4BAA4B;AAC5B,+CAA+C;AAE/C,sEAA+E;AAAtE,yIAAA,OAAO,OAAsB;AAGtC,+CAA+C;AAC/C,0BAA0B;AAC1B,+CAA+C;AAE/C,0DAOiC;AAN/B,8GAAA,aAAa,OAAA;AACb,+GAAA,cAAc,OAAA;AACd,0GAAA,SAAS,OAAA;AACT,gHAAA,eAAe,OAAA;AACf,iHAAA,gBAAgB,OAAA;AAChB,4GAAA,WAAW,OAAA;AAGb,+CAA+C;AAC/C,iCAAiC;AACjC,+CAA+C;AAE/C,8DAAuE;AAA9D,iIAAA,OAAO,OAAkB;AAGlC,+CAA+C;AAC/C,qCAAqC;AACrC,+CAA+C;AAE/C,kDAA6E;AAApE,2HAAA,OAAO,OAAe;AAAE,+GAAA,gBAAgB,OAAA;AAEjD,4DAAqE;AAA5D,iIAAA,OAAO,OAAkB;AAElC,+CAA+C;AAC/C,6BAA6B;AAC7B,+CAA+C;AAE/C,mDAAoE;AAA3D,uGAAA,QAAQ,OAAA;AAAE,uGAAA,QAAQ,OAAA;AAAE,yGAAA,UAAU,OAAA;AACvC,yDAAoD;AAA3C,uGAAA,QAAQ,OAAA"}
@@ -0,0 +1,113 @@
1
+ import { AziosRequestConfig } from "../types/config";
2
+ import { AziosResponse } from "../types/response";
3
+ /**
4
+ * Represents a single tracked request/response cycle
5
+ */
6
+ export interface RequestLog {
7
+ id: string;
8
+ timestamp: number;
9
+ method: string;
10
+ url: string;
11
+ status?: number;
12
+ statusText?: string;
13
+ duration: number;
14
+ retries: number;
15
+ cached: boolean;
16
+ error?: {
17
+ message: string;
18
+ code?: string;
19
+ };
20
+ requestHeaders?: Record<string, any>;
21
+ responseHeaders?: Record<string, any>;
22
+ dataSize?: number;
23
+ }
24
+ /**
25
+ * Request Monitor - Track all requests for debugging and monitoring
26
+ * Production-grade request tracking system with history, filtering, and export
27
+ */
28
+ export default class RequestMonitor {
29
+ private enabled;
30
+ private maxEntries;
31
+ private logs;
32
+ private requestMetadata;
33
+ constructor(maxEntries?: number, enabled?: boolean);
34
+ /**
35
+ * Enable monitoring
36
+ */
37
+ enable(): void;
38
+ /**
39
+ * Disable monitoring
40
+ */
41
+ disable(): void;
42
+ /**
43
+ * Check if monitoring is enabled
44
+ */
45
+ isEnabled(): boolean;
46
+ /**
47
+ * Mark the start of a request
48
+ */
49
+ startRequest(config: AziosRequestConfig): string;
50
+ /**
51
+ * Mark the end of a successful request
52
+ */
53
+ endRequest(requestId: string, config: AziosRequestConfig, response: AziosResponse): void;
54
+ /**
55
+ * Mark the end of a failed request
56
+ */
57
+ endRequestWithError(requestId: string, config: AziosRequestConfig, error: Error | any): void;
58
+ /**
59
+ * Add a log entry and maintain maxEntries limit
60
+ */
61
+ private addLog;
62
+ /**
63
+ * Get all logged requests
64
+ */
65
+ getHistory(): RequestLog[];
66
+ /**
67
+ * Get logs filtered by method
68
+ */
69
+ getByMethod(method: string): RequestLog[];
70
+ /**
71
+ * Get logs filtered by URL pattern
72
+ */
73
+ getByUrl(pattern: string | RegExp): RequestLog[];
74
+ /**
75
+ * Get logs with errors
76
+ */
77
+ getErrors(): RequestLog[];
78
+ /**
79
+ * Get statistics
80
+ */
81
+ getStats(): {
82
+ totalRequests: number;
83
+ totalErrors: number;
84
+ totalCached: number;
85
+ averageDuration: number;
86
+ slowestRequest: number;
87
+ fastestRequest: number;
88
+ };
89
+ /**
90
+ * Clear all logs
91
+ */
92
+ clear(): void;
93
+ /**
94
+ * Export logs as JSON
95
+ */
96
+ exportJSON(): string;
97
+ /**
98
+ * Export logs as CSV
99
+ */
100
+ exportCSV(): string;
101
+ /**
102
+ * Get a formatted debug summary
103
+ */
104
+ getSummary(): string;
105
+ /**
106
+ * Generate unique request ID
107
+ */
108
+ private generateId;
109
+ /**
110
+ * Estimate data size in KB
111
+ */
112
+ private estimateSize;
113
+ }
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Request Monitor - Track all requests for debugging and monitoring
5
+ * Production-grade request tracking system with history, filtering, and export
6
+ */
7
+ class RequestMonitor {
8
+ constructor(maxEntries = 100, enabled = false) {
9
+ this.enabled = false;
10
+ this.maxEntries = 100;
11
+ this.logs = new Map();
12
+ this.requestMetadata = new Map();
13
+ this.maxEntries = maxEntries;
14
+ this.enabled = enabled;
15
+ }
16
+ /**
17
+ * Enable monitoring
18
+ */
19
+ enable() {
20
+ this.enabled = true;
21
+ }
22
+ /**
23
+ * Disable monitoring
24
+ */
25
+ disable() {
26
+ this.enabled = false;
27
+ }
28
+ /**
29
+ * Check if monitoring is enabled
30
+ */
31
+ isEnabled() {
32
+ return this.enabled;
33
+ }
34
+ /**
35
+ * Mark the start of a request
36
+ */
37
+ startRequest(config) {
38
+ if (!this.enabled)
39
+ return "";
40
+ const requestId = this.generateId();
41
+ this.requestMetadata.set(requestId, {
42
+ startTime: Date.now(),
43
+ retries: config.retry || 0,
44
+ cached: config.cache || false
45
+ });
46
+ return requestId;
47
+ }
48
+ /**
49
+ * Mark the end of a successful request
50
+ */
51
+ endRequest(requestId, config, response) {
52
+ if (!this.enabled || !requestId)
53
+ return;
54
+ const metadata = this.requestMetadata.get(requestId);
55
+ if (!metadata)
56
+ return;
57
+ const duration = Date.now() - metadata.startTime;
58
+ const log = {
59
+ id: requestId,
60
+ timestamp: Date.now(),
61
+ method: config.method || "GET",
62
+ url: config.url || "",
63
+ status: response.status,
64
+ statusText: response.statusText,
65
+ duration,
66
+ retries: metadata.retries,
67
+ cached: metadata.cached,
68
+ requestHeaders: config.headers,
69
+ responseHeaders: response.headers,
70
+ dataSize: this.estimateSize(response.data)
71
+ };
72
+ this.addLog(log);
73
+ this.requestMetadata.delete(requestId);
74
+ }
75
+ /**
76
+ * Mark the end of a failed request
77
+ */
78
+ endRequestWithError(requestId, config, error) {
79
+ if (!this.enabled || !requestId)
80
+ return;
81
+ const metadata = this.requestMetadata.get(requestId);
82
+ if (!metadata)
83
+ return;
84
+ const duration = Date.now() - metadata.startTime;
85
+ const log = {
86
+ id: requestId,
87
+ timestamp: Date.now(),
88
+ method: config.method || "GET",
89
+ url: config.url || "",
90
+ duration,
91
+ retries: metadata.retries,
92
+ cached: metadata.cached,
93
+ error: {
94
+ message: (error === null || error === void 0 ? void 0 : error.message) || "Unknown error",
95
+ code: error === null || error === void 0 ? void 0 : error.code
96
+ },
97
+ requestHeaders: config.headers
98
+ };
99
+ this.addLog(log);
100
+ this.requestMetadata.delete(requestId);
101
+ }
102
+ /**
103
+ * Add a log entry and maintain maxEntries limit
104
+ */
105
+ addLog(log) {
106
+ this.logs.set(log.id, log);
107
+ // Remove oldest entries if we exceed maxEntries
108
+ if (this.logs.size > this.maxEntries) {
109
+ const entriesToRemove = this.logs.size - this.maxEntries;
110
+ let removed = 0;
111
+ for (const [id, _] of this.logs) {
112
+ if (removed >= entriesToRemove)
113
+ break;
114
+ this.logs.delete(id);
115
+ removed++;
116
+ }
117
+ }
118
+ }
119
+ /**
120
+ * Get all logged requests
121
+ */
122
+ getHistory() {
123
+ return Array.from(this.logs.values());
124
+ }
125
+ /**
126
+ * Get logs filtered by method
127
+ */
128
+ getByMethod(method) {
129
+ return this.getHistory().filter(log => log.method.toUpperCase() === method.toUpperCase());
130
+ }
131
+ /**
132
+ * Get logs filtered by URL pattern
133
+ */
134
+ getByUrl(pattern) {
135
+ const regex = typeof pattern === "string" ? new RegExp(pattern) : pattern;
136
+ return this.getHistory().filter(log => regex.test(log.url));
137
+ }
138
+ /**
139
+ * Get logs with errors
140
+ */
141
+ getErrors() {
142
+ return this.getHistory().filter(log => log.error !== undefined);
143
+ }
144
+ /**
145
+ * Get statistics
146
+ */
147
+ getStats() {
148
+ const history = this.getHistory();
149
+ if (history.length === 0) {
150
+ return {
151
+ totalRequests: 0,
152
+ totalErrors: 0,
153
+ totalCached: 0,
154
+ averageDuration: 0,
155
+ slowestRequest: 0,
156
+ fastestRequest: 0
157
+ };
158
+ }
159
+ const errors = history.filter(log => log.error).length;
160
+ const cached = history.filter(log => log.cached).length;
161
+ const durations = history.map(log => log.duration);
162
+ const avgDuration = durations.reduce((a, b) => a + b, 0) / durations.length;
163
+ return {
164
+ totalRequests: history.length,
165
+ totalErrors: errors,
166
+ totalCached: cached,
167
+ averageDuration: Math.round(avgDuration),
168
+ slowestRequest: Math.max(...durations),
169
+ fastestRequest: Math.min(...durations)
170
+ };
171
+ }
172
+ /**
173
+ * Clear all logs
174
+ */
175
+ clear() {
176
+ this.logs.clear();
177
+ this.requestMetadata.clear();
178
+ }
179
+ /**
180
+ * Export logs as JSON
181
+ */
182
+ exportJSON() {
183
+ return JSON.stringify(this.getHistory(), null, 2);
184
+ }
185
+ /**
186
+ * Export logs as CSV
187
+ */
188
+ exportCSV() {
189
+ const history = this.getHistory();
190
+ if (history.length === 0) {
191
+ return "No logs to export";
192
+ }
193
+ const headers = [
194
+ "Timestamp",
195
+ "Method",
196
+ "URL",
197
+ "Status",
198
+ "Duration (ms)",
199
+ "Cached",
200
+ "Error"
201
+ ];
202
+ const rows = history.map(log => [
203
+ new Date(log.timestamp).toISOString(),
204
+ log.method,
205
+ log.url,
206
+ log.status || "N/A",
207
+ log.duration,
208
+ log.cached ? "Yes" : "No",
209
+ log.error ? log.error.message : "None"
210
+ ]);
211
+ const csvContent = [headers, ...rows]
212
+ .map(row => row.map(cell => `"${cell}"`).join(","))
213
+ .join("\n");
214
+ return csvContent;
215
+ }
216
+ /**
217
+ * Get a formatted debug summary
218
+ */
219
+ getSummary() {
220
+ const stats = this.getStats();
221
+ const errors = this.getErrors();
222
+ let summary = `
223
+ ╔══════════════════════════════════════════════╗
224
+ ║ 📊 AZIOS REQUEST MONITOR ║
225
+ ╚══════════════════════════════════════════════╝
226
+
227
+ 📈 Statistics:
228
+ • Total Requests: ${stats.totalRequests}
229
+ • Errors: ${stats.totalErrors}
230
+ • Cached: ${stats.totalCached}
231
+ • Avg Duration: ${stats.averageDuration}ms
232
+ • Slowest: ${stats.slowestRequest}ms
233
+ • Fastest: ${stats.fastestRequest}ms
234
+ `;
235
+ if (errors.length > 0) {
236
+ summary += `\n❌ Recent Errors:\n`;
237
+ errors.slice(-5).forEach(log => {
238
+ var _a;
239
+ summary += ` • ${log.method} ${log.url}: ${(_a = log.error) === null || _a === void 0 ? void 0 : _a.message}\n`;
240
+ });
241
+ }
242
+ return summary;
243
+ }
244
+ /**
245
+ * Generate unique request ID
246
+ */
247
+ generateId() {
248
+ return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
249
+ }
250
+ /**
251
+ * Estimate data size in KB
252
+ */
253
+ estimateSize(data) {
254
+ try {
255
+ const json = JSON.stringify(data);
256
+ return Math.round(json.length / 1024 * 100) / 100; // KB with 2 decimals
257
+ }
258
+ catch (_a) {
259
+ return 0;
260
+ }
261
+ }
262
+ }
263
+ exports.default = RequestMonitor;
264
+ //# sourceMappingURL=RequestMonitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestMonitor.js","sourceRoot":"","sources":["../../src/monitoring/RequestMonitor.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.AdapterFactory = void 0;
7
7
  const detectRuntime_1 = require("./detectRuntime");
8
8
  const UniversalHttpAdapter_1 = __importDefault(require("./UniversalHttpAdapter"));
9
+ const adapters_1 = require("../adapters");
9
10
  /**
10
11
  * Adapter factory for selecting the appropriate HTTP adapter
11
12
  * Uses universal Fetch API when available with fallbacks for specific runtimes
@@ -16,7 +17,20 @@ class AdapterFactory {
16
17
  */
17
18
  static getAdapter() {
18
19
  if (!this.adapters.has(detectRuntime_1.currentRuntime)) {
19
- this.adapters.set(detectRuntime_1.currentRuntime, new UniversalHttpAdapter_1.default());
20
+ let adapter;
21
+ // Try UniversalHttpAdapter first (works in Node 18+, browsers, etc.)
22
+ const universalAdapter = new UniversalHttpAdapter_1.default();
23
+ if (universalAdapter.isSupported()) {
24
+ adapter = universalAdapter;
25
+ }
26
+ else if (detectRuntime_1.currentRuntime === detectRuntime_1.RuntimeType.Node) {
27
+ // Fallback to NodeHttpAdapter for Node.js < 18
28
+ adapter = new adapters_1.NodeHttpAdapter();
29
+ }
30
+ else {
31
+ throw new Error(`No supported HTTP adapter found for runtime: ${detectRuntime_1.currentRuntime}`);
32
+ }
33
+ this.adapters.set(detectRuntime_1.currentRuntime, adapter);
20
34
  }
21
35
  const adapter = this.adapters.get(detectRuntime_1.currentRuntime);
22
36
  if (!adapter.isSupported()) {
@@ -1 +1 @@
1
- {"version":3,"file":"AdapterFactory.js","sourceRoot":"","sources":["../../src/runtimes/AdapterFactory.ts"],"names":[],"mappings":";;;;;;AACA,mDAA6D;AAC7D,kFAAyD;AAEzD;;;GAGG;AACH,MAAa,cAAc;IAGzB;;OAEG;IACH,MAAM,CAAC,UAAU;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,8BAAc,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,8BAAc,EAAE,IAAI,8BAAoB,EAAE,CAAC,CAAA;QAC/D,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,8BAAc,CAAE,CAAA;QAElD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,gDAAgD,8BAAc,EAAE,CACjE,CAAA;QACH,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAoB,EAAE,OAAoB;QAC/D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU;QACf,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC;;AAlCH,wCAmCC;AAlCgB,uBAAQ,GAAkC,IAAI,GAAG,EAAE,CAAA;AAoCpE,kBAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"AdapterFactory.js","sourceRoot":"","sources":["../../src/runtimes/AdapterFactory.ts"],"names":[],"mappings":";;;;;;AACA,mDAA6D;AAC7D,kFAAyD;AACzD,0CAA6C;AAE7C;;;GAGG;AACH,MAAa,cAAc;IAGzB;;OAEG;IACH,MAAM,CAAC,UAAU;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,8BAAc,CAAC,EAAE,CAAC;YACvC,IAAI,OAAoB,CAAA;YAExB,qEAAqE;YACrE,MAAM,gBAAgB,GAAG,IAAI,8BAAoB,EAAE,CAAA;YACnD,IAAI,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC;gBACnC,OAAO,GAAG,gBAAgB,CAAA;YAC5B,CAAC;iBAAM,IAAI,8BAAc,KAAK,2BAAW,CAAC,IAAI,EAAE,CAAC;gBAC/C,+CAA+C;gBAC/C,OAAO,GAAG,IAAI,0BAAe,EAAE,CAAA;YACjC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,gDAAgD,8BAAc,EAAE,CACjE,CAAA;YACH,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,8BAAc,EAAE,OAAO,CAAC,CAAA;QAC5C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,8BAAc,CAAE,CAAA;QAElD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,gDAAgD,8BAAc,EAAE,CACjE,CAAA;QACH,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAoB,EAAE,OAAoB;QAC/D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU;QACf,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC;;AAjDH,wCAkDC;AAjDgB,uBAAQ,GAAkC,IAAI,GAAG,EAAE,CAAA;AAmDpE,kBAAe,cAAc,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { AziosRequestConfig } from "./config";
2
2
  import { AziosResponse } from "./response";
3
3
  import InterceptorManager from "../interceptors/InterceptorManager";
4
+ import RequestMonitor from "../monitoring/RequestMonitor";
4
5
  import type { AziosPlugin } from "./plugin";
5
6
  import type { AziosMiddleware } from "./middleware";
6
7
  export interface AziosInstance {
@@ -20,4 +21,5 @@ export interface AziosInstance {
20
21
  installPlugin(plugin: AziosPlugin): Promise<void>;
21
22
  uninstallPlugin(name: string): Promise<void>;
22
23
  use(middleware: AziosMiddleware): void;
24
+ monitor: RequestMonitor;
23
25
  }
package/package.json CHANGED
@@ -1,49 +1,62 @@
1
- {
2
- "name": "aziosxjs",
3
- "version": "1.0.0",
4
- "description": "Lightweight, predictable HTTP client with plugins, middleware, and universal runtime support",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "scripts": {
8
- "build": "tsc",
9
- "test": "ts-node tests/all.test.ts",
10
- "test:sprint1": "ts-node examples/sprint2.ts",
11
- "test:sprint2": "ts-node examples/sprint2.ts",
12
- "test:sprint3": "ts-node examples/sprint3.ts",
13
- "test:sprint4": "ts-node examples/sprint4.ts",
14
- "test:sprint5:plugins": "ts-node examples/sprint5-plugins.ts",
15
- "test:sprint5:middleware": "ts-node examples/sprint5-middleware.ts",
16
- "test:sprint7": "ts-node examples/sprint7-universal.ts",
17
- "prepublishOnly": "npm run build"
18
- },
19
- "files": [
20
- "dist",
21
- "src"
22
- ],
23
- "keywords": [
24
- "http",
25
- "client",
26
- "axios",
27
- "request",
28
- "nodejs",
29
- "browser",
30
- "universal",
31
- "plugin",
32
- "middleware",
33
- "lightweight",
34
- "typescript"
35
- ],
36
- "author": "Azeem Ali",
37
- "license": "MIT",
38
- "repository": {
39
- "type": "git",
40
- "url": "https://github.com/azeemali2001/azios"
41
- },
42
- "homepage": "https://github.com/azeemali2001/azios",
43
- "bugs": {
44
- "url": "https://github.com/azeemali2001/azios/issues"
45
- },
46
- "devDependencies": {
47
- "typescript": "^5.0.0"
48
- }
49
- }
1
+ {
2
+ "name": "aziosxjs",
3
+ "version": "1.0.2",
4
+ "description": "🚀 Advanced HTTP client featuring request monitoring, auth management, plugins, middleware, and universal runtime support",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "build": "tsc",
9
+ "test": "ts-node tests/all.test.ts",
10
+ "test:sprint1": "ts-node tests/all.test.ts --sprint=1",
11
+ "test:sprint2": "ts-node tests/all.test.ts --sprint=2",
12
+ "test:sprint3": "ts-node tests/all.test.ts --sprint=3",
13
+ "test:sprint4": "ts-node tests/all.test.ts --sprint=4",
14
+ "test:sprint5": "ts-node tests/all.test.ts --sprint=5",
15
+ "test:sprint6": "ts-node tests/all.test.ts --sprint=6",
16
+ "test:sprint7": "ts-node tests/all.test.ts --sprint=7",
17
+ "test:sprint5:plugins": "ts-node examples/sprint5-plugins.ts",
18
+ "test:sprint5:middleware": "ts-node examples/sprint5-middleware.ts",
19
+ "test:sprint7:legacy": "ts-node examples/sprint7-universal.ts",
20
+ "test:sprint8:monitoring": "ts-node examples/sprint8-monitoring.ts",
21
+ "test:sprint8:auth": "ts-node examples/sprint8-auth.ts",
22
+ "prepublishOnly": "npm run build"
23
+ },
24
+ "files": [
25
+ "dist",
26
+ "src"
27
+ ],
28
+ "keywords": [
29
+ "http",
30
+ "client",
31
+ "axios",
32
+ "request",
33
+ "nodejs",
34
+ "browser",
35
+ "universal",
36
+ "plugin",
37
+ "middleware",
38
+ "lightweight",
39
+ "typescript",
40
+ "monitoring",
41
+ "auth",
42
+ "authentication",
43
+ "debug",
44
+ "request-tracking",
45
+ "token-refresh"
46
+ ],
47
+ "author": "Azeem Ali",
48
+ "license": "MIT",
49
+ "repository": {
50
+ "type": "git",
51
+ "url": "https://github.com/azeemali2001/azios"
52
+ },
53
+ "homepage": "https://github.com/azeemali2001/azios",
54
+ "bugs": {
55
+ "url": "https://github.com/azeemali2001/azios/issues"
56
+ },
57
+ "devDependencies": {
58
+ "@types/node": "^25.6.0",
59
+ "ts-node": "^10.9.2",
60
+ "typescript": "^5.0.0"
61
+ }
62
+ }