aziosxjs 0.4.0 → 1.0.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.
Files changed (96) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +92 -267
  3. package/dist/cache/memoryCache.d.ts +4 -0
  4. package/dist/cache/memoryCache.js +32 -0
  5. package/dist/cache/memoryCache.js.map +1 -0
  6. package/dist/core/Azios.d.ts +33 -3
  7. package/dist/core/Azios.js +119 -2
  8. package/dist/core/Azios.js.map +1 -1
  9. package/dist/core/createInstance.js +3 -0
  10. package/dist/core/createInstance.js.map +1 -1
  11. package/dist/core/dispatchRequest.d.ts +1 -2
  12. package/dist/core/dispatchRequest.js +68 -42
  13. package/dist/core/dispatchRequest.js.map +1 -1
  14. package/dist/core/requestStore.d.ts +3 -0
  15. package/dist/core/requestStore.js +16 -0
  16. package/dist/core/requestStore.js.map +1 -0
  17. package/dist/errors/AziosError.d.ts +2 -2
  18. package/dist/errors/AziosError.js +6 -3
  19. package/dist/errors/AziosError.js.map +1 -1
  20. package/dist/helpers/buildURL.d.ts +1 -0
  21. package/dist/helpers/buildURL.js +27 -0
  22. package/dist/helpers/buildURL.js.map +1 -1
  23. package/dist/index.d.ts +15 -0
  24. package/dist/index.js +50 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/middleware/MiddlewarePipeline.d.ts +54 -0
  27. package/dist/middleware/MiddlewarePipeline.js +122 -0
  28. package/dist/middleware/MiddlewarePipeline.js.map +1 -0
  29. package/dist/middleware/compose.d.ts +1 -0
  30. package/dist/middleware/compose.js +25 -0
  31. package/dist/middleware/compose.js.map +1 -0
  32. package/dist/middleware/middlewareManager.d.ts +4 -0
  33. package/dist/middleware/middlewareManager.js +12 -0
  34. package/dist/middleware/middlewareManager.js.map +1 -0
  35. package/dist/plugins/pluginManager.d.ts +44 -0
  36. package/dist/plugins/pluginManager.js +120 -0
  37. package/dist/plugins/pluginManager.js.map +1 -0
  38. package/dist/rateLimiter/rateLimiter.d.ts +1 -0
  39. package/dist/rateLimiter/rateLimiter.js +31 -0
  40. package/dist/rateLimiter/rateLimiter.js.map +1 -0
  41. package/dist/runtimes/AdapterFactory.d.ts +22 -0
  42. package/dist/runtimes/AdapterFactory.js +43 -0
  43. package/dist/runtimes/AdapterFactory.js.map +1 -0
  44. package/dist/runtimes/HttpAdapter.d.ts +23 -0
  45. package/dist/runtimes/HttpAdapter.js +10 -0
  46. package/dist/runtimes/HttpAdapter.js.map +1 -0
  47. package/dist/runtimes/UniversalHttpAdapter.d.ts +19 -0
  48. package/dist/runtimes/UniversalHttpAdapter.js +114 -0
  49. package/dist/runtimes/UniversalHttpAdapter.js.map +1 -0
  50. package/dist/runtimes/detectRuntime.d.ts +34 -0
  51. package/dist/runtimes/detectRuntime.js +77 -0
  52. package/dist/runtimes/detectRuntime.js.map +1 -0
  53. package/dist/types/config.d.ts +8 -1
  54. package/dist/types/index.d.ts +5 -0
  55. package/dist/types/index.js +22 -0
  56. package/dist/types/index.js.map +1 -0
  57. package/dist/types/middleware.d.ts +16 -0
  58. package/dist/types/middleware.js +3 -0
  59. package/dist/types/middleware.js.map +1 -0
  60. package/dist/types/plugin.d.ts +43 -0
  61. package/dist/types/plugin.js +3 -0
  62. package/dist/types/plugin.js.map +1 -0
  63. package/dist/types/request.d.ts +15 -0
  64. package/dist/types/response.d.ts +23 -1
  65. package/package.json +24 -5
  66. package/src/adapters/httpAdapter.ts +0 -0
  67. package/src/adapters/index.ts +0 -0
  68. package/src/adapters/xhrAdapter.ts +0 -0
  69. package/src/cache/memoryCache.ts +45 -0
  70. package/src/config/mergeConfig.ts +0 -0
  71. package/src/core/Azios.ts +184 -0
  72. package/src/core/createInstance.ts +23 -0
  73. package/src/core/dispatchRequest.ts +111 -0
  74. package/src/core/requestMethods.ts +0 -0
  75. package/src/core/requestStore.ts +13 -0
  76. package/src/errors/AziosError.ts +26 -0
  77. package/src/helpers/buildURL.ts +44 -0
  78. package/src/helpers/normalizeHeaders.ts +0 -0
  79. package/src/helpers/parseHeaders.ts +0 -0
  80. package/src/index.ts +64 -0
  81. package/src/interceptors/InterceptorManager.ts +30 -0
  82. package/src/middleware/MiddlewarePipeline.ts +155 -0
  83. package/src/middleware/compose.ts +33 -0
  84. package/src/middleware/middlewareManager.ts +9 -0
  85. package/src/plugins/pluginManager.ts +143 -0
  86. package/src/rateLimiter/rateLimiter.ts +36 -0
  87. package/src/runtimes/AdapterFactory.ts +46 -0
  88. package/src/runtimes/HttpAdapter.ts +26 -0
  89. package/src/runtimes/UniversalHttpAdapter.ts +136 -0
  90. package/src/runtimes/detectRuntime.ts +85 -0
  91. package/src/types/config.ts +30 -0
  92. package/src/types/index.ts +5 -0
  93. package/src/types/middleware.ts +21 -0
  94. package/src/types/plugin.ts +50 -0
  95. package/src/types/request.ts +39 -0
  96. package/src/types/response.ts +37 -0
@@ -0,0 +1,44 @@
1
+ import type { AziosPlugin } from '../types/plugin';
2
+ import type { AziosInstance } from '../types/request';
3
+ import type { AziosRequestConfig } from '../types/config';
4
+ import type { AziosResponse } from '../types/response';
5
+ /**
6
+ * PluginManager handles plugin lifecycle and hook execution
7
+ * Production-grade plugin system with error handling and validation
8
+ */
9
+ export default class PluginManager {
10
+ private plugins;
11
+ /**
12
+ * Install a plugin and trigger its onInstall hook
13
+ * @throws Error if plugin name is already registered
14
+ */
15
+ install(plugin: AziosPlugin, instance: AziosInstance): Promise<void>;
16
+ /**
17
+ * Uninstall a plugin and trigger its onUninstall hook
18
+ */
19
+ uninstall(pluginName: string, instance: AziosInstance): Promise<void>;
20
+ /**
21
+ * Execute beforeRequest hooks from all plugins
22
+ */
23
+ executeBeforeRequestHooks(config: AziosRequestConfig): Promise<AziosRequestConfig>;
24
+ /**
25
+ * Execute afterResponse hooks from all plugins
26
+ */
27
+ executeAfterResponseHooks(response: AziosResponse): Promise<AziosResponse>;
28
+ /**
29
+ * Execute onError hooks from all plugins
30
+ */
31
+ executeOnErrorHooks(error: Error): Promise<Error>;
32
+ /**
33
+ * Get all currently installed plugins
34
+ */
35
+ getInstalledPlugins(): AziosPlugin[];
36
+ /**
37
+ * Check if a plugin is installed
38
+ */
39
+ isPluginInstalled(name: string): boolean;
40
+ /**
41
+ * Clear all plugins
42
+ */
43
+ clear(): void;
44
+ }
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * PluginManager handles plugin lifecycle and hook execution
5
+ * Production-grade plugin system with error handling and validation
6
+ */
7
+ class PluginManager {
8
+ constructor() {
9
+ this.plugins = {};
10
+ }
11
+ /**
12
+ * Install a plugin and trigger its onInstall hook
13
+ * @throws Error if plugin name is already registered
14
+ */
15
+ async install(plugin, instance) {
16
+ if (this.plugins[plugin.name]) {
17
+ throw new Error(`Plugin "${plugin.name}" is already installed`);
18
+ }
19
+ this.plugins[plugin.name] = plugin;
20
+ try {
21
+ if (plugin.hooks.onInstall) {
22
+ await plugin.hooks.onInstall(instance);
23
+ }
24
+ }
25
+ catch (err) {
26
+ // Rollback on error
27
+ delete this.plugins[plugin.name];
28
+ throw err;
29
+ }
30
+ }
31
+ /**
32
+ * Uninstall a plugin and trigger its onUninstall hook
33
+ */
34
+ async uninstall(pluginName, instance) {
35
+ const plugin = this.plugins[pluginName];
36
+ if (!plugin) {
37
+ throw new Error(`Plugin "${pluginName}" is not installed`);
38
+ }
39
+ try {
40
+ if (plugin.hooks.onUninstall) {
41
+ await plugin.hooks.onUninstall(instance);
42
+ }
43
+ }
44
+ finally {
45
+ delete this.plugins[pluginName];
46
+ }
47
+ }
48
+ /**
49
+ * Execute beforeRequest hooks from all plugins
50
+ */
51
+ async executeBeforeRequestHooks(config) {
52
+ let result = config;
53
+ for (const plugin of Object.values(this.plugins)) {
54
+ if (plugin.hooks.beforeRequest) {
55
+ try {
56
+ result = await plugin.hooks.beforeRequest(result);
57
+ }
58
+ catch (err) {
59
+ throw new Error(`Plugin "${plugin.name}" beforeRequest hook failed: ${err instanceof Error ? err.message : String(err)}`);
60
+ }
61
+ }
62
+ }
63
+ return result;
64
+ }
65
+ /**
66
+ * Execute afterResponse hooks from all plugins
67
+ */
68
+ async executeAfterResponseHooks(response) {
69
+ let result = response;
70
+ for (const plugin of Object.values(this.plugins)) {
71
+ if (plugin.hooks.afterResponse) {
72
+ try {
73
+ result = await plugin.hooks.afterResponse(result);
74
+ }
75
+ catch (err) {
76
+ throw new Error(`Plugin "${plugin.name}" afterResponse hook failed: ${err instanceof Error ? err.message : String(err)}`);
77
+ }
78
+ }
79
+ }
80
+ return result;
81
+ }
82
+ /**
83
+ * Execute onError hooks from all plugins
84
+ */
85
+ async executeOnErrorHooks(error) {
86
+ let result = error;
87
+ for (const plugin of Object.values(this.plugins)) {
88
+ if (plugin.hooks.onError) {
89
+ try {
90
+ result = await plugin.hooks.onError(result);
91
+ }
92
+ catch (err) {
93
+ // Log but don't throw - error handlers should not crash
94
+ console.warn(`Plugin "${plugin.name}" onError hook failed:`, err instanceof Error ? err.message : String(err));
95
+ }
96
+ }
97
+ }
98
+ return result;
99
+ }
100
+ /**
101
+ * Get all currently installed plugins
102
+ */
103
+ getInstalledPlugins() {
104
+ return Object.values(this.plugins);
105
+ }
106
+ /**
107
+ * Check if a plugin is installed
108
+ */
109
+ isPluginInstalled(name) {
110
+ return name in this.plugins;
111
+ }
112
+ /**
113
+ * Clear all plugins
114
+ */
115
+ clear() {
116
+ this.plugins = {};
117
+ }
118
+ }
119
+ exports.default = PluginManager;
120
+ //# sourceMappingURL=pluginManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginManager.js","sourceRoot":"","sources":["../../src/plugins/pluginManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function schedule(task: Function, limit: number): Promise<unknown>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.schedule = schedule;
4
+ let queue = [];
5
+ let activeRequests = 0;
6
+ function schedule(task, limit) {
7
+ return new Promise((resolve, reject) => {
8
+ const run = async () => {
9
+ activeRequests++;
10
+ try {
11
+ const result = await task();
12
+ resolve(result);
13
+ }
14
+ catch (err) {
15
+ reject(err);
16
+ }
17
+ activeRequests--;
18
+ if (queue.length) {
19
+ const next = queue.shift();
20
+ next && next();
21
+ }
22
+ };
23
+ if (activeRequests < limit) {
24
+ run();
25
+ }
26
+ else {
27
+ queue.push(run);
28
+ }
29
+ });
30
+ }
31
+ //# sourceMappingURL=rateLimiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateLimiter.js","sourceRoot":"","sources":["../../src/rateLimiter/rateLimiter.ts"],"names":[],"mappings":";;AAGA,4BAgCC;AAnCD,IAAI,KAAK,GAAe,EAAE,CAAC;AAC3B,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,SAAgB,QAAQ,CAAC,IAAc,EAAE,KAAa;IAEpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAErC,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;YAErB,cAAc,EAAE,CAAC;YAEjB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;gBAC5B,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;YAED,cAAc,EAAE,CAAC;YAEjB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC3B,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,CAAC;QAEH,CAAC,CAAC;QAEF,IAAI,cAAc,GAAG,KAAK,EAAE,CAAC;YAC3B,GAAG,EAAE,CAAC;QACR,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;IAEH,CAAC,CAAC,CAAC;AAEL,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { HttpAdapter } from './HttpAdapter';
2
+ import { RuntimeType } from './detectRuntime';
3
+ /**
4
+ * Adapter factory for selecting the appropriate HTTP adapter
5
+ * Uses universal Fetch API when available with fallbacks for specific runtimes
6
+ */
7
+ export declare class AdapterFactory {
8
+ private static adapters;
9
+ /**
10
+ * Get or create adapter for current runtime
11
+ */
12
+ static getAdapter(): HttpAdapter;
13
+ /**
14
+ * Register custom adapter for specific runtime
15
+ */
16
+ static registerAdapter(runtime: RuntimeType, adapter: HttpAdapter): void;
17
+ /**
18
+ * Clear adapter cache
19
+ */
20
+ static clearCache(): void;
21
+ }
22
+ export default AdapterFactory;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AdapterFactory = void 0;
7
+ const detectRuntime_1 = require("./detectRuntime");
8
+ const UniversalHttpAdapter_1 = __importDefault(require("./UniversalHttpAdapter"));
9
+ /**
10
+ * Adapter factory for selecting the appropriate HTTP adapter
11
+ * Uses universal Fetch API when available with fallbacks for specific runtimes
12
+ */
13
+ class AdapterFactory {
14
+ /**
15
+ * Get or create adapter for current runtime
16
+ */
17
+ static getAdapter() {
18
+ if (!this.adapters.has(detectRuntime_1.currentRuntime)) {
19
+ this.adapters.set(detectRuntime_1.currentRuntime, new UniversalHttpAdapter_1.default());
20
+ }
21
+ const adapter = this.adapters.get(detectRuntime_1.currentRuntime);
22
+ if (!adapter.isSupported()) {
23
+ throw new Error(`No supported HTTP adapter found for runtime: ${detectRuntime_1.currentRuntime}`);
24
+ }
25
+ return adapter;
26
+ }
27
+ /**
28
+ * Register custom adapter for specific runtime
29
+ */
30
+ static registerAdapter(runtime, adapter) {
31
+ this.adapters.set(runtime, adapter);
32
+ }
33
+ /**
34
+ * Clear adapter cache
35
+ */
36
+ static clearCache() {
37
+ this.adapters.clear();
38
+ }
39
+ }
40
+ exports.AdapterFactory = AdapterFactory;
41
+ AdapterFactory.adapters = new Map();
42
+ exports.default = AdapterFactory;
43
+ //# sourceMappingURL=AdapterFactory.js.map
@@ -0,0 +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"}
@@ -0,0 +1,23 @@
1
+ import type { AziosRequestConfig } from '../types/config';
2
+ import type { AziosResponse } from '../types/response';
3
+ /**
4
+ * Universal HTTP adapter interface
5
+ * Abstracts HTTP functionality across different runtimes
6
+ */
7
+ export interface HttpAdapter {
8
+ /**
9
+ * Execute an HTTP request
10
+ */
11
+ request(config: AziosRequestConfig): Promise<AziosResponse>;
12
+ /**
13
+ * Method to check if adapter supports the current runtime
14
+ */
15
+ isSupported(): boolean;
16
+ }
17
+ /**
18
+ * Base adapter class with common logic
19
+ */
20
+ export declare abstract class BaseAdapter implements HttpAdapter {
21
+ abstract request(config: AziosRequestConfig): Promise<AziosResponse>;
22
+ abstract isSupported(): boolean;
23
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseAdapter = void 0;
4
+ /**
5
+ * Base adapter class with common logic
6
+ */
7
+ class BaseAdapter {
8
+ }
9
+ exports.BaseAdapter = BaseAdapter;
10
+ //# sourceMappingURL=HttpAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpAdapter.js","sourceRoot":"","sources":["../../src/runtimes/HttpAdapter.ts"],"names":[],"mappings":";;;AAmBA;;GAEG;AACH,MAAsB,WAAW;CAGhC;AAHD,kCAGC"}
@@ -0,0 +1,19 @@
1
+ import type { AziosRequestConfig } from '../types/config';
2
+ import type { AziosResponse } from '../types/response';
3
+ import { BaseAdapter } from './HttpAdapter';
4
+ /**
5
+ * Unified HTTP adapter using Fetch API
6
+ * Works across Node 18+, browsers, Bun, Deno, and edge runtimes
7
+ * Falls back to runtime-specific implementations if needed
8
+ */
9
+ export declare class UniversalHttpAdapter extends BaseAdapter {
10
+ /**
11
+ * Check if Fetch API is available
12
+ */
13
+ isSupported(): boolean;
14
+ /**
15
+ * Execute HTTP request using Fetch API
16
+ */
17
+ request(config: AziosRequestConfig): Promise<AziosResponse>;
18
+ }
19
+ export default UniversalHttpAdapter;
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.UniversalHttpAdapter = void 0;
7
+ const HttpAdapter_1 = require("./HttpAdapter");
8
+ const AziosError_1 = __importDefault(require("../errors/AziosError"));
9
+ /**
10
+ * Unified HTTP adapter using Fetch API
11
+ * Works across Node 18+, browsers, Bun, Deno, and edge runtimes
12
+ * Falls back to runtime-specific implementations if needed
13
+ */
14
+ class UniversalHttpAdapter extends HttpAdapter_1.BaseAdapter {
15
+ /**
16
+ * Check if Fetch API is available
17
+ */
18
+ isSupported() {
19
+ return typeof fetch !== 'undefined';
20
+ }
21
+ /**
22
+ * Execute HTTP request using Fetch API
23
+ */
24
+ async request(config) {
25
+ if (!this.isSupported()) {
26
+ throw new AziosError_1.default('Fetch API is not available in this runtime', 'UNSUPPORTED_RUNTIME', config);
27
+ }
28
+ try {
29
+ const { url, method = 'GET', headers, data, timeout, signal } = config;
30
+ const baseURL = config.baseURL ? config.baseURL : '';
31
+ const fullURL = new URL(baseURL + url);
32
+ // Add query parameters
33
+ if (config.params) {
34
+ Object.entries(config.params).forEach(([key, value]) => {
35
+ if (value !== null && value !== undefined) {
36
+ if (Array.isArray(value)) {
37
+ value.forEach(v => fullURL.searchParams.append(key, String(v)));
38
+ }
39
+ else {
40
+ fullURL.searchParams.set(key, String(value));
41
+ }
42
+ }
43
+ });
44
+ }
45
+ // Prepare request body
46
+ let body = null;
47
+ if (data) {
48
+ body = typeof data === 'string' ? data : JSON.stringify(data);
49
+ }
50
+ // Set up timeout if specified (using AbortController)
51
+ let timeoutId;
52
+ const controller = new AbortController();
53
+ const finalSignal = signal || controller.signal;
54
+ if (timeout) {
55
+ timeoutId = setTimeout(() => {
56
+ controller.abort();
57
+ }, timeout);
58
+ }
59
+ // Execute fetch
60
+ const response = await fetch(fullURL.toString(), {
61
+ method,
62
+ headers: {
63
+ 'Content-Type': 'application/json',
64
+ ...headers
65
+ },
66
+ body,
67
+ signal: finalSignal
68
+ });
69
+ if (timeoutId) {
70
+ clearTimeout(timeoutId);
71
+ }
72
+ // Parse response body
73
+ let responseData;
74
+ if (response.status === 204) {
75
+ // No content
76
+ responseData = null;
77
+ }
78
+ else {
79
+ const contentType = response.headers.get('content-type');
80
+ if (contentType === null || contentType === void 0 ? void 0 : contentType.includes('application/json')) {
81
+ try {
82
+ responseData = await response.json();
83
+ }
84
+ catch (_a) {
85
+ responseData = await response.text();
86
+ }
87
+ }
88
+ else {
89
+ responseData = await response.text();
90
+ }
91
+ }
92
+ const aziosResponse = {
93
+ data: responseData,
94
+ status: response.status,
95
+ statusText: response.statusText,
96
+ headers: Object.fromEntries(response.headers.entries()),
97
+ config
98
+ };
99
+ return aziosResponse;
100
+ }
101
+ catch (err) {
102
+ if (err instanceof TypeError && err.message.includes('aborted')) {
103
+ throw new AziosError_1.default('Request aborted', 'ABORTED', config);
104
+ }
105
+ if (err instanceof AziosError_1.default) {
106
+ throw err;
107
+ }
108
+ throw new AziosError_1.default(err instanceof Error ? err.message : 'Network request failed', 'NETWORK_ERROR', config, undefined, err instanceof Error ? err : new Error(String(err)));
109
+ }
110
+ }
111
+ }
112
+ exports.UniversalHttpAdapter = UniversalHttpAdapter;
113
+ exports.default = UniversalHttpAdapter;
114
+ //# sourceMappingURL=UniversalHttpAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UniversalHttpAdapter.js","sourceRoot":"","sources":["../../src/runtimes/UniversalHttpAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Runtime detection utilities
3
+ * Identifies the current JavaScript runtime environment
4
+ * Supports: Node.js, Browser, Bun, Deno, Cloudflare Workers/Edge
5
+ */
6
+ export declare enum RuntimeType {
7
+ Node = "node",
8
+ Browser = "browser",
9
+ Bun = "bun",
10
+ Deno = "deno",
11
+ Edge = "edge",
12
+ Unknown = "unknown"
13
+ }
14
+ /**
15
+ * Detects the current runtime environment
16
+ * Production-grade detection with reliable environment checks
17
+ */
18
+ export declare function detectRuntime(): RuntimeType;
19
+ /**
20
+ * Get current runtime for use in adapters
21
+ */
22
+ export declare const currentRuntime: RuntimeType;
23
+ /**
24
+ * Check if running in a specific runtime
25
+ */
26
+ export declare function isRuntime(runtime: RuntimeType): boolean;
27
+ /**
28
+ * Check if running in server-side runtime
29
+ */
30
+ export declare function isServerRuntime(): boolean;
31
+ /**
32
+ * Check if running in browser runtime
33
+ */
34
+ export declare function isBrowserRuntime(): boolean;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ /**
3
+ * Runtime detection utilities
4
+ * Identifies the current JavaScript runtime environment
5
+ * Supports: Node.js, Browser, Bun, Deno, Cloudflare Workers/Edge
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.currentRuntime = exports.RuntimeType = void 0;
9
+ exports.detectRuntime = detectRuntime;
10
+ exports.isRuntime = isRuntime;
11
+ exports.isServerRuntime = isServerRuntime;
12
+ exports.isBrowserRuntime = isBrowserRuntime;
13
+ var RuntimeType;
14
+ (function (RuntimeType) {
15
+ RuntimeType["Node"] = "node";
16
+ RuntimeType["Browser"] = "browser";
17
+ RuntimeType["Bun"] = "bun";
18
+ RuntimeType["Deno"] = "deno";
19
+ RuntimeType["Edge"] = "edge";
20
+ RuntimeType["Unknown"] = "unknown";
21
+ })(RuntimeType || (exports.RuntimeType = RuntimeType = {}));
22
+ /**
23
+ * Detects the current runtime environment
24
+ * Production-grade detection with reliable environment checks
25
+ */
26
+ function detectRuntime() {
27
+ // Check for Deno
28
+ if (typeof globalThis.Deno !== 'undefined') {
29
+ return RuntimeType.Deno;
30
+ }
31
+ // Check for Bun
32
+ if (typeof globalThis.Bun !== 'undefined') {
33
+ return RuntimeType.Bun;
34
+ }
35
+ // Check for Cloudflare Workers / Edge
36
+ if (typeof globalThis.caches !== 'undefined' &&
37
+ typeof globalThis.ENVIRONMENT !== 'undefined') {
38
+ return RuntimeType.Edge;
39
+ }
40
+ // Check for Node.js
41
+ if (typeof process !== 'undefined' &&
42
+ process.versions &&
43
+ process.versions.node) {
44
+ return RuntimeType.Node;
45
+ }
46
+ // Check for Browser
47
+ if (typeof globalThis.window !== 'undefined' && typeof globalThis.document !== 'undefined') {
48
+ return RuntimeType.Browser;
49
+ }
50
+ return RuntimeType.Unknown;
51
+ }
52
+ /**
53
+ * Get current runtime for use in adapters
54
+ */
55
+ exports.currentRuntime = detectRuntime();
56
+ /**
57
+ * Check if running in a specific runtime
58
+ */
59
+ function isRuntime(runtime) {
60
+ return exports.currentRuntime === runtime;
61
+ }
62
+ /**
63
+ * Check if running in server-side runtime
64
+ */
65
+ function isServerRuntime() {
66
+ return (exports.currentRuntime === RuntimeType.Node ||
67
+ exports.currentRuntime === RuntimeType.Bun ||
68
+ exports.currentRuntime === RuntimeType.Deno ||
69
+ exports.currentRuntime === RuntimeType.Edge);
70
+ }
71
+ /**
72
+ * Check if running in browser runtime
73
+ */
74
+ function isBrowserRuntime() {
75
+ return exports.currentRuntime === RuntimeType.Browser;
76
+ }
77
+ //# sourceMappingURL=detectRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectRuntime.js","sourceRoot":"","sources":["../../src/runtimes/detectRuntime.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAeH,sCAkCC;AAUD,8BAEC;AAKD,0CAOC;AAKD,4CAEC;AA9ED,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,0BAAW,CAAA;IACX,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,kCAAmB,CAAA;AACrB,CAAC,EAPW,WAAW,2BAAX,WAAW,QAOtB;AAED;;;GAGG;AACH,SAAgB,aAAa;IAC3B,iBAAiB;IACjB,IAAI,OAAQ,UAAkB,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACpD,OAAO,WAAW,CAAC,IAAI,CAAA;IACzB,CAAC;IAED,gBAAgB;IAChB,IAAI,OAAQ,UAAkB,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;QACnD,OAAO,WAAW,CAAC,GAAG,CAAA;IACxB,CAAC;IAED,sCAAsC;IACtC,IACE,OAAQ,UAAkB,CAAC,MAAM,KAAK,WAAW;QACjD,OAAQ,UAAkB,CAAC,WAAW,KAAK,WAAW,EACtD,CAAC;QACD,OAAO,WAAW,CAAC,IAAI,CAAA;IACzB,CAAC;IAED,oBAAoB;IACpB,IACE,OAAO,OAAO,KAAK,WAAW;QAC9B,OAAO,CAAC,QAAQ;QAChB,OAAO,CAAC,QAAQ,CAAC,IAAI,EACrB,CAAC;QACD,OAAO,WAAW,CAAC,IAAI,CAAA;IACzB,CAAC;IAED,oBAAoB;IACpB,IAAI,OAAQ,UAAkB,CAAC,MAAM,KAAK,WAAW,IAAI,OAAQ,UAAkB,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7G,OAAO,WAAW,CAAC,OAAO,CAAA;IAC5B,CAAC;IAED,OAAO,WAAW,CAAC,OAAO,CAAA;AAC5B,CAAC;AAED;;GAEG;AACU,QAAA,cAAc,GAAG,aAAa,EAAE,CAAA;AAE7C;;GAEG;AACH,SAAgB,SAAS,CAAC,OAAoB;IAC5C,OAAO,sBAAc,KAAK,OAAO,CAAA;AACnC,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe;IAC7B,OAAO,CACL,sBAAc,KAAK,WAAW,CAAC,IAAI;QACnC,sBAAc,KAAK,WAAW,CAAC,GAAG;QAClC,sBAAc,KAAK,WAAW,CAAC,IAAI;QACnC,sBAAc,KAAK,WAAW,CAAC,IAAI,CACpC,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB;IAC9B,OAAO,sBAAc,KAAK,WAAW,CAAC,OAAO,CAAA;AAC/C,CAAC"}
@@ -1,9 +1,16 @@
1
1
  export interface AziosRequestConfig {
2
- url: string;
2
+ url?: string;
3
3
  method?: string;
4
4
  baseURL?: string;
5
5
  headers?: Record<string, any>;
6
6
  params?: Record<string, any>;
7
7
  data?: any;
8
8
  timeout?: number;
9
+ responseType?: string;
10
+ signal?: AbortSignal;
11
+ retry?: number;
12
+ retryDelay?: number;
13
+ cache?: boolean;
14
+ cacheTTL?: number;
15
+ rateLimit?: number;
9
16
  }
@@ -0,0 +1,5 @@
1
+ export * from './config';
2
+ export * from './request';
3
+ export * from './response';
4
+ export * from './plugin';
5
+ export * from './middleware';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./config"), exports);
18
+ __exportStar(require("./request"), exports);
19
+ __exportStar(require("./response"), exports);
20
+ __exportStar(require("./plugin"), exports);
21
+ __exportStar(require("./middleware"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,4CAAyB;AACzB,6CAA0B;AAC1B,2CAAwB;AACxB,+CAA4B"}
@@ -0,0 +1,16 @@
1
+ import { AziosRequestConfig } from './config';
2
+ import { AziosResponse } from './response';
3
+ /**
4
+ * Middleware function type for request/response processing
5
+ * Koa-style middleware pattern that receives context and next function
6
+ */
7
+ export type AziosMiddleware = (config: AziosRequestConfig, next: (cfg?: AziosRequestConfig) => Promise<AziosResponse>) => Promise<AziosResponse>;
8
+ /**
9
+ * Middleware context for tracking state across pipeline
10
+ */
11
+ export interface MiddlewareContext {
12
+ startTime?: number;
13
+ endTime?: number;
14
+ config: AziosRequestConfig;
15
+ metadata?: Record<string, any>;
16
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/types/middleware.ts"],"names":[],"mappings":""}