accessio 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 (53) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +487 -0
  3. package/cjs/accessio.cjs +208 -0
  4. package/cjs/accessio.cjs.map +1 -0
  5. package/cjs/constants/errorCodes.cjs +76 -0
  6. package/cjs/constants/errorCodes.cjs.map +1 -0
  7. package/cjs/core/accessioError.cjs +93 -0
  8. package/cjs/core/accessioError.cjs.map +1 -0
  9. package/cjs/core/buildURL.cjs +100 -0
  10. package/cjs/core/buildURL.cjs.map +1 -0
  11. package/cjs/core/mergeConfig.cjs +73 -0
  12. package/cjs/core/mergeConfig.cjs.map +1 -0
  13. package/cjs/core/request.cjs +259 -0
  14. package/cjs/core/request.cjs.map +1 -0
  15. package/cjs/core/retry.cjs +109 -0
  16. package/cjs/core/retry.cjs.map +1 -0
  17. package/cjs/defaults/index.cjs +55 -0
  18. package/cjs/defaults/index.cjs.map +1 -0
  19. package/cjs/defaults/transforms.cjs +59 -0
  20. package/cjs/defaults/transforms.cjs.map +1 -0
  21. package/cjs/helpers/debug.cjs +96 -0
  22. package/cjs/helpers/debug.cjs.map +1 -0
  23. package/cjs/helpers/parseHeaders.cjs +52 -0
  24. package/cjs/helpers/parseHeaders.cjs.map +1 -0
  25. package/cjs/helpers/rateLimiter.cjs +98 -0
  26. package/cjs/helpers/rateLimiter.cjs.map +1 -0
  27. package/cjs/helpers/settle.cjs +50 -0
  28. package/cjs/helpers/settle.cjs.map +1 -0
  29. package/cjs/helpers/transformData.cjs +57 -0
  30. package/cjs/helpers/transformData.cjs.map +1 -0
  31. package/cjs/index.cjs +121 -0
  32. package/cjs/index.cjs.map +1 -0
  33. package/cjs/interceptors/interceptorManager.cjs +31 -0
  34. package/cjs/interceptors/interceptorManager.cjs.map +1 -0
  35. package/index.d.ts +454 -0
  36. package/package.json +116 -0
  37. package/src/accessio.ts +251 -0
  38. package/src/constants/errorCodes.ts +29 -0
  39. package/src/core/accessioError.ts +74 -0
  40. package/src/core/buildURL.ts +99 -0
  41. package/src/core/mergeConfig.ts +78 -0
  42. package/src/core/request.ts +284 -0
  43. package/src/core/retry.ts +117 -0
  44. package/src/defaults/index.ts +36 -0
  45. package/src/defaults/transforms.ts +44 -0
  46. package/src/helpers/debug.ts +103 -0
  47. package/src/helpers/parseHeaders.ts +35 -0
  48. package/src/helpers/rateLimiter.ts +96 -0
  49. package/src/helpers/settle.ts +26 -0
  50. package/src/helpers/transformData.ts +36 -0
  51. package/src/index.ts +102 -0
  52. package/src/interceptors/interceptorManager.ts +5 -0
  53. package/src/types.ts +159 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/accessio.ts"],"sourcesContent":["import InterceptorManager from './interceptors/interceptorManager';\nimport AccessioError from './core/accessioError';\nimport mergeConfig from './core/mergeConfig';\nimport dispatchRequest from './core/request';\nimport buildURL from './core/buildURL';\nimport retryRequest from './core/retry';\nimport { logRequest, logResponse, logError } from './helpers/debug';\nimport { rateLimitedRequest } from './helpers/rateLimiter';\nimport type {\n AccessioRequestConfig,\n AccessioResponse,\n Interceptors,\n InterceptorHandler,\n} from './types';\n\nexport class Accessio {\n defaults: AccessioRequestConfig;\n interceptors: Interceptors;\n\n constructor(instanceConfig: AccessioRequestConfig = {}) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n request<T = any>(\n configOrUrl: string | AccessioRequestConfig,\n config?: AccessioRequestConfig,\n ): Promise<AccessioResponse<T>> {\n if (typeof configOrUrl === 'string') {\n config = { ...config, url: configOrUrl };\n } else {\n config = configOrUrl ? { ...configOrUrl } : {};\n }\n\n const mergedConfig = mergeConfig(this.defaults, config);\n\n mergedConfig.method = (mergedConfig.method || 'get').toLowerCase();\n\n if (!mergedConfig.url && !mergedConfig.baseURL) {\n throw new AccessioError(\n 'Request URL is required. Provide a `url` or `baseURL` in the config.',\n AccessioError.ERR_BAD_OPTION,\n mergedConfig,\n null,\n null,\n );\n }\n\n const requestInterceptors: any[] = [];\n const responseInterceptors: any[] = [];\n\n this.interceptors.request.forEach((interceptor: InterceptorHandler) => {\n if (interceptor.runWhen && !interceptor.runWhen(mergedConfig)) {\n return;\n }\n requestInterceptors.unshift(interceptor);\n });\n\n this.interceptors.response.forEach((interceptor: InterceptorHandler) => {\n responseInterceptors.push(interceptor);\n });\n\n let promise: Promise<any> = Promise.resolve(mergedConfig);\n\n for (const interceptor of requestInterceptors) {\n promise = promise.then(\n (value: any) => {\n if (interceptor.fulfilled) {\n return interceptor.fulfilled(value);\n }\n return value;\n },\n interceptor.rejected,\n );\n }\n\n promise = promise.then((cfg: any) => {\n const fullUrl = buildURL(\n cfg.url ?? '',\n cfg.baseURL,\n cfg.params,\n cfg.paramsSerializer,\n );\n\n logRequest(cfg, fullUrl);\n\n const enrichedCfg =\n fullUrl !== (cfg.url || '')\n ? { ...cfg, _builtUrl: fullUrl }\n : cfg;\n\n const dispatchFn = cfg.rateLimiter\n ? (config: AccessioRequestConfig) =>\n rateLimitedRequest(dispatchRequest, config.rateLimiter!, config)\n : dispatchRequest;\n\n return retryRequest(dispatchFn, enrichedCfg);\n });\n\n promise = promise.then(\n (value: any) => {\n logResponse(value);\n return value;\n },\n (error: any) => {\n logError(error, mergedConfig);\n throw error;\n },\n );\n\n for (const interceptor of responseInterceptors) {\n promise = promise.then(\n (value: any) => {\n if (interceptor.fulfilled) {\n return interceptor.fulfilled(value);\n }\n return value;\n },\n interceptor.rejected,\n );\n }\n\n return promise;\n }\n\n getUri(config?: AccessioRequestConfig): string {\n const merged = mergeConfig(this.defaults, config);\n return buildURL(\n merged.url ?? '',\n merged.baseURL,\n merged.params,\n merged.paramsSerializer,\n );\n }\n\n get<T = any>(\n url: string,\n config?: AccessioRequestConfig,\n ): Promise<AccessioResponse<T>> {\n return this.request<T>(\n mergeConfig(config || {}, { method: 'get', url }),\n );\n }\n\n delete<T = any>(\n url: string,\n config?: AccessioRequestConfig,\n ): Promise<AccessioResponse<T>> {\n return this.request<T>(\n mergeConfig(config || {}, { method: 'delete', url }),\n );\n }\n\n head<T = any>(\n url: string,\n config?: AccessioRequestConfig,\n ): Promise<AccessioResponse<T>> {\n return this.request<T>(\n mergeConfig(config || {}, { method: 'head', url }),\n );\n }\n\n options<T = any>(\n url: string,\n config?: AccessioRequestConfig,\n ): Promise<AccessioResponse<T>> {\n return this.request<T>(\n mergeConfig(config || {}, { method: 'options', url }),\n );\n }\n\n post<T = any>(\n url: string,\n data?: any,\n config?: AccessioRequestConfig,\n ): Promise<AccessioResponse<T>> {\n return this.request<T>(\n mergeConfig(config || {}, { method: 'post', url, data }),\n );\n }\n\n put<T = any>(\n url: string,\n data?: any,\n config?: AccessioRequestConfig,\n ): Promise<AccessioResponse<T>> {\n return this.request<T>(\n mergeConfig(config || {}, { method: 'put', url, data }),\n );\n }\n\n patch<T = any>(\n url: string,\n data?: any,\n config?: AccessioRequestConfig,\n ): Promise<AccessioResponse<T>> {\n return this.request<T>(\n mergeConfig(config || {}, { method: 'patch', url, data }),\n );\n }\n\n postForm<T = any>(\n url: string,\n data?: any,\n config?: AccessioRequestConfig,\n ): Promise<AccessioResponse<T>> {\n return this.request<T>(\n mergeConfig(config || {}, {\n method: 'post',\n url,\n data,\n headers: { 'Content-Type': 'multipart/form-data' },\n }),\n );\n }\n\n putForm<T = any>(\n url: string,\n data?: any,\n config?: AccessioRequestConfig,\n ): Promise<AccessioResponse<T>> {\n return this.request<T>(\n mergeConfig(config || {}, {\n method: 'put',\n url,\n data,\n headers: { 'Content-Type': 'multipart/form-data' },\n }),\n );\n }\n\n patchForm<T = any>(\n url: string,\n data?: any,\n config?: AccessioRequestConfig,\n ): Promise<AccessioResponse<T>> {\n return this.request<T>(\n mergeConfig(config || {}, {\n method: 'patch',\n url,\n data,\n headers: { 'Content-Type': 'multipart/form-data' },\n }),\n );\n }\n}\n\nexport default Accessio;\n"],"mappings":"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","names":["InterceptorManager","mergeConfig","AccessioError","buildURL","config","dispatchRequest","retryRequest"]}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var errorCodes_exports = {};
20
+ __export(errorCodes_exports, {
21
+ ECONNABORTED: () => ECONNABORTED,
22
+ ERR_BAD_OPTION: () => ERR_BAD_OPTION,
23
+ ERR_BAD_OPTION_VALUE: () => ERR_BAD_OPTION_VALUE,
24
+ ERR_BAD_REQUEST: () => ERR_BAD_REQUEST,
25
+ ERR_BAD_RESPONSE: () => ERR_BAD_RESPONSE,
26
+ ERR_CANCELED: () => ERR_CANCELED,
27
+ ERR_FR_TOO_MANY_REDIRECTS: () => ERR_FR_TOO_MANY_REDIRECTS,
28
+ ERR_INVALID_URL: () => ERR_INVALID_URL,
29
+ ERR_NETWORK: () => ERR_NETWORK,
30
+ ERR_NOT_SUPPORT: () => ERR_NOT_SUPPORT,
31
+ ETIMEDOUT: () => ETIMEDOUT,
32
+ default: () => errorCodes_default
33
+ });
34
+ module.exports = __toCommonJS(errorCodes_exports);
35
+ const ErrorCodes = {
36
+ ERR_BAD_OPTION_VALUE: "ERR_BAD_OPTION_VALUE",
37
+ ERR_BAD_OPTION: "ERR_BAD_OPTION",
38
+ ECONNABORTED: "ECONNABORTED",
39
+ ETIMEDOUT: "ETIMEDOUT",
40
+ ERR_NETWORK: "ERR_NETWORK",
41
+ ERR_FR_TOO_MANY_REDIRECTS: "ERR_FR_TOO_MANY_REDIRECTS",
42
+ ERR_BAD_RESPONSE: "ERR_BAD_RESPONSE",
43
+ ERR_BAD_REQUEST: "ERR_BAD_REQUEST",
44
+ ERR_CANCELED: "ERR_CANCELED",
45
+ ERR_NOT_SUPPORT: "ERR_NOT_SUPPORT",
46
+ ERR_INVALID_URL: "ERR_INVALID_URL"
47
+ };
48
+ var errorCodes_default = ErrorCodes;
49
+ const {
50
+ ERR_BAD_OPTION_VALUE,
51
+ ERR_BAD_OPTION,
52
+ ECONNABORTED,
53
+ ETIMEDOUT,
54
+ ERR_NETWORK,
55
+ ERR_FR_TOO_MANY_REDIRECTS,
56
+ ERR_BAD_RESPONSE,
57
+ ERR_BAD_REQUEST,
58
+ ERR_CANCELED,
59
+ ERR_NOT_SUPPORT,
60
+ ERR_INVALID_URL
61
+ } = ErrorCodes;
62
+ // Annotate the CommonJS export names for ESM import in node:
63
+ 0 && (module.exports = {
64
+ ECONNABORTED,
65
+ ERR_BAD_OPTION,
66
+ ERR_BAD_OPTION_VALUE,
67
+ ERR_BAD_REQUEST,
68
+ ERR_BAD_RESPONSE,
69
+ ERR_CANCELED,
70
+ ERR_FR_TOO_MANY_REDIRECTS,
71
+ ERR_INVALID_URL,
72
+ ERR_NETWORK,
73
+ ERR_NOT_SUPPORT,
74
+ ETIMEDOUT
75
+ });
76
+ //# sourceMappingURL=errorCodes.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/constants/errorCodes.ts"],"sourcesContent":["const ErrorCodes = {\n ERR_BAD_OPTION_VALUE: 'ERR_BAD_OPTION_VALUE',\n ERR_BAD_OPTION: 'ERR_BAD_OPTION',\n ECONNABORTED: 'ECONNABORTED',\n ETIMEDOUT: 'ETIMEDOUT',\n ERR_NETWORK: 'ERR_NETWORK',\n ERR_FR_TOO_MANY_REDIRECTS: 'ERR_FR_TOO_MANY_REDIRECTS',\n ERR_BAD_RESPONSE: 'ERR_BAD_RESPONSE',\n ERR_BAD_REQUEST: 'ERR_BAD_REQUEST',\n ERR_CANCELED: 'ERR_CANCELED',\n ERR_NOT_SUPPORT: 'ERR_NOT_SUPPORT',\n ERR_INVALID_URL: 'ERR_INVALID_URL',\n} as const;\n\nexport default ErrorCodes;\n\nexport const {\n ERR_BAD_OPTION_VALUE,\n ERR_BAD_OPTION,\n ECONNABORTED,\n ETIMEDOUT,\n ERR_NETWORK,\n ERR_FR_TOO_MANY_REDIRECTS,\n ERR_BAD_RESPONSE,\n ERR_BAD_REQUEST,\n ERR_CANCELED,\n ERR_NOT_SUPPORT,\n ERR_INVALID_URL,\n} = ErrorCodes;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAM,aAAa;AAAA,EACjB,sBAAsB;AAAA,EACtB,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,WAAW;AAAA,EACX,aAAa;AAAA,EACb,2BAA2B;AAAA,EAC3B,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,iBAAiB;AACnB;AAEA,IAAO,qBAAQ;AAER,MAAM;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAI;","names":[]}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var accessioError_exports = {};
30
+ __export(accessioError_exports, {
31
+ AccessioError: () => AccessioError,
32
+ default: () => accessioError_default
33
+ });
34
+ module.exports = __toCommonJS(accessioError_exports);
35
+ var import_errorCodes = __toESM(require("../constants/errorCodes"), 1);
36
+ class AccessioError extends Error {
37
+ static ERR_BAD_OPTION_VALUE = import_errorCodes.default.ERR_BAD_OPTION_VALUE;
38
+ static ERR_BAD_OPTION = import_errorCodes.default.ERR_BAD_OPTION;
39
+ static ECONNABORTED = import_errorCodes.default.ECONNABORTED;
40
+ static ETIMEDOUT = import_errorCodes.default.ETIMEDOUT;
41
+ static ERR_NETWORK = import_errorCodes.default.ERR_NETWORK;
42
+ static ERR_FR_TOO_MANY_REDIRECTS = import_errorCodes.default.ERR_FR_TOO_MANY_REDIRECTS;
43
+ static ERR_BAD_RESPONSE = import_errorCodes.default.ERR_BAD_RESPONSE;
44
+ static ERR_BAD_REQUEST = import_errorCodes.default.ERR_BAD_REQUEST;
45
+ static ERR_CANCELED = import_errorCodes.default.ERR_CANCELED;
46
+ static ERR_NOT_SUPPORT = import_errorCodes.default.ERR_NOT_SUPPORT;
47
+ static ERR_INVALID_URL = import_errorCodes.default.ERR_INVALID_URL;
48
+ code;
49
+ config;
50
+ request;
51
+ response;
52
+ isAccessioError;
53
+ cause;
54
+ constructor(message, code, config, request, response) {
55
+ super(message);
56
+ this.name = "AccessioError";
57
+ this.code = code ?? null;
58
+ this.config = config ?? null;
59
+ this.request = request ?? null;
60
+ this.response = response ?? null;
61
+ this.isAccessioError = true;
62
+ if (Error.captureStackTrace) {
63
+ Error.captureStackTrace(this, AccessioError);
64
+ }
65
+ }
66
+ toJSON() {
67
+ return {
68
+ name: this.name,
69
+ message: this.message,
70
+ code: this.code,
71
+ status: this.response ? this.response.status : null,
72
+ config: this.config
73
+ };
74
+ }
75
+ static from(error, code, config, request, response) {
76
+ const accessioError = new AccessioError(
77
+ error.message,
78
+ code,
79
+ config,
80
+ request,
81
+ response
82
+ );
83
+ accessioError.cause = error;
84
+ accessioError.stack = error.stack;
85
+ return accessioError;
86
+ }
87
+ }
88
+ var accessioError_default = AccessioError;
89
+ // Annotate the CommonJS export names for ESM import in node:
90
+ 0 && (module.exports = {
91
+ AccessioError
92
+ });
93
+ //# sourceMappingURL=accessioError.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/core/accessioError.ts"],"sourcesContent":["import ErrorCodes from '../constants/errorCodes';\nimport type { AccessioRequestConfig, AccessioResponse } from '../types';\n\nexport class AccessioError extends Error {\n static ERR_BAD_OPTION_VALUE: string = ErrorCodes.ERR_BAD_OPTION_VALUE;\n static ERR_BAD_OPTION: string = ErrorCodes.ERR_BAD_OPTION;\n static ECONNABORTED: string = ErrorCodes.ECONNABORTED;\n static ETIMEDOUT: string = ErrorCodes.ETIMEDOUT;\n static ERR_NETWORK: string = ErrorCodes.ERR_NETWORK;\n static ERR_FR_TOO_MANY_REDIRECTS: string = ErrorCodes.ERR_FR_TOO_MANY_REDIRECTS;\n static ERR_BAD_RESPONSE: string = ErrorCodes.ERR_BAD_RESPONSE;\n static ERR_BAD_REQUEST: string = ErrorCodes.ERR_BAD_REQUEST;\n static ERR_CANCELED: string = ErrorCodes.ERR_CANCELED;\n static ERR_NOT_SUPPORT: string = ErrorCodes.ERR_NOT_SUPPORT;\n static ERR_INVALID_URL: string = ErrorCodes.ERR_INVALID_URL;\n\n readonly code: string | null;\n readonly config: AccessioRequestConfig | null;\n readonly request: unknown;\n readonly response: AccessioResponse | null;\n readonly isAccessioError: true;\n cause?: Error;\n\n constructor(\n message: string,\n code: string | null,\n config: AccessioRequestConfig | null,\n request: unknown,\n response: AccessioResponse | null,\n ) {\n super(message);\n this.name = 'AccessioError';\n this.code = code ?? null;\n this.config = config ?? null;\n this.request = request ?? null;\n this.response = response ?? null;\n this.isAccessioError = true;\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, AccessioError);\n }\n }\n\n toJSON(): Record<string, unknown> {\n return {\n name: this.name,\n message: this.message,\n code: this.code,\n status: this.response ? this.response.status : null,\n config: this.config,\n };\n }\n\n static from(\n error: Error,\n code: string,\n config: AccessioRequestConfig | null,\n request: unknown,\n response: AccessioResponse | null,\n ): AccessioError {\n const accessioError = new AccessioError(\n error.message,\n code,\n config,\n request,\n response,\n );\n accessioError.cause = error;\n accessioError.stack = error.stack;\n return accessioError;\n }\n}\n\nexport default AccessioError;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAuB;AAGhB,MAAM,sBAAsB,MAAM;AAAA,EACvC,OAAO,uBAA+B,kBAAAA,QAAW;AAAA,EACjD,OAAO,iBAAyB,kBAAAA,QAAW;AAAA,EAC3C,OAAO,eAAuB,kBAAAA,QAAW;AAAA,EACzC,OAAO,YAAoB,kBAAAA,QAAW;AAAA,EACtC,OAAO,cAAsB,kBAAAA,QAAW;AAAA,EACxC,OAAO,4BAAoC,kBAAAA,QAAW;AAAA,EACtD,OAAO,mBAA2B,kBAAAA,QAAW;AAAA,EAC7C,OAAO,kBAA0B,kBAAAA,QAAW;AAAA,EAC5C,OAAO,eAAuB,kBAAAA,QAAW;AAAA,EACzC,OAAO,kBAA0B,kBAAAA,QAAW;AAAA,EAC5C,OAAO,kBAA0B,kBAAAA,QAAW;AAAA,EAEnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACT;AAAA,EAEA,YACE,SACA,MACA,QACA,SACA,UACA;AACA,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,OAAO,QAAQ;AACpB,SAAK,SAAS,UAAU;AACxB,SAAK,UAAU,WAAW;AAC1B,SAAK,WAAW,YAAY;AAC5B,SAAK,kBAAkB;AAEvB,QAAI,MAAM,mBAAmB;AAC3B,YAAM,kBAAkB,MAAM,aAAa;AAAA,IAC7C;AAAA,EACF;AAAA,EAEA,SAAkC;AAChC,WAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK,WAAW,KAAK,SAAS,SAAS;AAAA,MAC/C,QAAQ,KAAK;AAAA,IACf;AAAA,EACF;AAAA,EAEA,OAAO,KACL,OACA,MACA,QACA,SACA,UACe;AACf,UAAM,gBAAgB,IAAI;AAAA,MACxB,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,kBAAc,QAAQ;AACtB,kBAAc,QAAQ,MAAM;AAC5B,WAAO;AAAA,EACT;AACF;AAEA,IAAO,wBAAQ;","names":["ErrorCodes"]}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var buildURL_exports = {};
20
+ __export(buildURL_exports, {
21
+ combineURLs: () => combineURLs,
22
+ default: () => buildURL,
23
+ isAbsoluteURL: () => isAbsoluteURL,
24
+ serializeParams: () => serializeParams
25
+ });
26
+ module.exports = __toCommonJS(buildURL_exports);
27
+ function serializeParams(params, paramsSerializer) {
28
+ if (!params) return "";
29
+ if (typeof paramsSerializer === "function") {
30
+ return paramsSerializer(params);
31
+ }
32
+ if (typeof URLSearchParams !== "undefined" && params instanceof URLSearchParams) {
33
+ return params.toString();
34
+ }
35
+ const parts = [];
36
+ function encode(prefix, value) {
37
+ if (value === null || value === void 0) {
38
+ return;
39
+ }
40
+ if (Array.isArray(value)) {
41
+ value.forEach((item, index) => {
42
+ if (typeof item === "object" && item !== null) {
43
+ encode(`${prefix}[${index}]`, item);
44
+ } else {
45
+ encode(`${prefix}[]`, item);
46
+ }
47
+ });
48
+ } else if (typeof value === "object" && !(value instanceof Date)) {
49
+ Object.keys(value).forEach((key) => {
50
+ encode(`${prefix}[${key}]`, value[key]);
51
+ });
52
+ } else {
53
+ const encodedValue = value instanceof Date ? value.toISOString() : value;
54
+ parts.push(
55
+ `${encodeURIComponent(prefix)}=${encodeURIComponent(
56
+ encodedValue
57
+ )}`
58
+ );
59
+ }
60
+ }
61
+ Object.keys(params).forEach((key) => {
62
+ encode(key, params[key]);
63
+ });
64
+ return parts.join("&");
65
+ }
66
+ function combineURLs(baseURL, relativeURL) {
67
+ if (!baseURL) return relativeURL || "";
68
+ if (!relativeURL) return baseURL;
69
+ let base = baseURL;
70
+ while (base.endsWith("/")) {
71
+ base = base.slice(0, -1);
72
+ }
73
+ let relative = relativeURL;
74
+ while (relative.startsWith("/")) {
75
+ relative = relative.slice(1);
76
+ }
77
+ return `${base}/${relative}`;
78
+ }
79
+ function isAbsoluteURL(url) {
80
+ return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
81
+ }
82
+ function buildURL(url, baseURL, params, paramsSerializer) {
83
+ let fullURL = baseURL && !isAbsoluteURL(url) ? combineURLs(baseURL, url) : url || "";
84
+ const serialized = serializeParams(params, paramsSerializer);
85
+ if (serialized) {
86
+ const hashIndex = fullURL.indexOf("#");
87
+ if (hashIndex !== -1) {
88
+ fullURL = fullURL.slice(0, hashIndex);
89
+ }
90
+ fullURL += (fullURL.indexOf("?") === -1 ? "?" : "&") + serialized;
91
+ }
92
+ return fullURL;
93
+ }
94
+ // Annotate the CommonJS export names for ESM import in node:
95
+ 0 && (module.exports = {
96
+ combineURLs,
97
+ isAbsoluteURL,
98
+ serializeParams
99
+ });
100
+ //# sourceMappingURL=buildURL.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/core/buildURL.ts"],"sourcesContent":["import type { ParamsSerializer } from '../types';\n\nfunction serializeParams(\n params: Record<string, unknown>,\n paramsSerializer?: ParamsSerializer,\n): string {\n if (!params) return '';\n\n if (typeof paramsSerializer === 'function') {\n return paramsSerializer(params);\n }\n\n if (\n typeof URLSearchParams !== 'undefined' &&\n params instanceof URLSearchParams\n ) {\n return params.toString();\n }\n\n const parts: string[] = [];\n\n function encode(prefix: string, value: unknown): void {\n if (value === null || value === undefined) {\n return;\n }\n\n if (Array.isArray(value)) {\n value.forEach((item, index) => {\n if (typeof item === 'object' && item !== null) {\n encode(`${prefix}[${index}]`, item);\n } else {\n encode(`${prefix}[]`, item);\n }\n });\n } else if (typeof value === 'object' && !(value instanceof Date)) {\n Object.keys(value as Record<string, unknown>).forEach((key) => {\n encode(`${prefix}[${key}]`, (value as Record<string, unknown>)[key]);\n });\n } else {\n const encodedValue = value instanceof Date ? value.toISOString() : value;\n parts.push(\n `${encodeURIComponent(prefix)}=${encodeURIComponent(\n encodedValue as string,\n )}`,\n );\n }\n }\n\n Object.keys(params).forEach((key) => {\n encode(key, params[key]);\n });\n\n return parts.join('&');\n}\n\nfunction combineURLs(baseURL: string, relativeURL: string): string {\n if (!baseURL) return relativeURL || '';\n if (!relativeURL) return baseURL;\n\n let base = baseURL;\n while (base.endsWith('/')) {\n base = base.slice(0, -1);\n }\n\n let relative = relativeURL;\n while (relative.startsWith('/')) {\n relative = relative.slice(1);\n }\n\n return `${base}/${relative}`;\n}\n\nfunction isAbsoluteURL(url: string): boolean {\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\nexport default function buildURL(\n url: string,\n baseURL?: string,\n params?: Record<string, unknown>,\n paramsSerializer?: ParamsSerializer,\n): string {\n let fullURL =\n baseURL && !isAbsoluteURL(url) ? combineURLs(baseURL, url) : url || '';\n\n const serialized = serializeParams(params as Record<string, unknown>, paramsSerializer);\n if (serialized) {\n const hashIndex = fullURL.indexOf('#');\n if (hashIndex !== -1) {\n fullURL = fullURL.slice(0, hashIndex);\n }\n fullURL +=\n (fullURL.indexOf('?') === -1 ? '?' : '&') + serialized;\n }\n\n return fullURL;\n}\n\nexport { serializeParams, combineURLs, isAbsoluteURL };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,SAAS,gBACP,QACA,kBACQ;AACR,MAAI,CAAC,OAAQ,QAAO;AAEpB,MAAI,OAAO,qBAAqB,YAAY;AAC1C,WAAO,iBAAiB,MAAM;AAAA,EAChC;AAEA,MACE,OAAO,oBAAoB,eAC3B,kBAAkB,iBAClB;AACA,WAAO,OAAO,SAAS;AAAA,EACzB;AAEA,QAAM,QAAkB,CAAC;AAEzB,WAAS,OAAO,QAAgB,OAAsB;AACpD,QAAI,UAAU,QAAQ,UAAU,QAAW;AACzC;AAAA,IACF;AAEA,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,YAAM,QAAQ,CAAC,MAAM,UAAU;AAC7B,YAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC7C,iBAAO,GAAG,MAAM,IAAI,KAAK,KAAK,IAAI;AAAA,QACpC,OAAO;AACL,iBAAO,GAAG,MAAM,MAAM,IAAI;AAAA,QAC5B;AAAA,MACF,CAAC;AAAA,IACH,WAAW,OAAO,UAAU,YAAY,EAAE,iBAAiB,OAAO;AAChE,aAAO,KAAK,KAAgC,EAAE,QAAQ,CAAC,QAAQ;AAC7D,eAAO,GAAG,MAAM,IAAI,GAAG,KAAM,MAAkC,GAAG,CAAC;AAAA,MACrE,CAAC;AAAA,IACH,OAAO;AACL,YAAM,eAAe,iBAAiB,OAAO,MAAM,YAAY,IAAI;AACnE,YAAM;AAAA,QACJ,GAAG,mBAAmB,MAAM,CAAC,IAAI;AAAA,UAC/B;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAEA,SAAO,KAAK,MAAM,EAAE,QAAQ,CAAC,QAAQ;AACnC,WAAO,KAAK,OAAO,GAAG,CAAC;AAAA,EACzB,CAAC;AAED,SAAO,MAAM,KAAK,GAAG;AACvB;AAEA,SAAS,YAAY,SAAiB,aAA6B;AACjE,MAAI,CAAC,QAAS,QAAO,eAAe;AACpC,MAAI,CAAC,YAAa,QAAO;AAEzB,MAAI,OAAO;AACX,SAAO,KAAK,SAAS,GAAG,GAAG;AACzB,WAAO,KAAK,MAAM,GAAG,EAAE;AAAA,EACzB;AAEA,MAAI,WAAW;AACf,SAAO,SAAS,WAAW,GAAG,GAAG;AAC/B,eAAW,SAAS,MAAM,CAAC;AAAA,EAC7B;AAEA,SAAO,GAAG,IAAI,IAAI,QAAQ;AAC5B;AAEA,SAAS,cAAc,KAAsB;AAC3C,SAAO,8BAA8B,KAAK,GAAG;AAC/C;AAEe,SAAR,SACL,KACA,SACA,QACA,kBACQ;AACR,MAAI,UACF,WAAW,CAAC,cAAc,GAAG,IAAI,YAAY,SAAS,GAAG,IAAI,OAAO;AAEtE,QAAM,aAAa,gBAAgB,QAAmC,gBAAgB;AACtF,MAAI,YAAY;AACd,UAAM,YAAY,QAAQ,QAAQ,GAAG;AACrC,QAAI,cAAc,IAAI;AACpB,gBAAU,QAAQ,MAAM,GAAG,SAAS;AAAA,IACtC;AACA,gBACG,QAAQ,QAAQ,GAAG,MAAM,KAAK,MAAM,OAAO;AAAA,EAChD;AAEA,SAAO;AACT;","names":[]}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var mergeConfig_exports = {};
20
+ __export(mergeConfig_exports, {
21
+ deepMerge: () => deepMerge,
22
+ default: () => mergeConfig
23
+ });
24
+ module.exports = __toCommonJS(mergeConfig_exports);
25
+ function deepMerge(...sources) {
26
+ const result = {};
27
+ for (const source of sources) {
28
+ if (!source || typeof source !== "object") continue;
29
+ for (const key of Object.keys(source)) {
30
+ const value = source[key];
31
+ if (value && typeof value === "object" && !Array.isArray(value)) {
32
+ if (value instanceof Date || value instanceof RegExp || value instanceof Map || value instanceof Set || value instanceof Error || typeof ArrayBuffer !== "undefined" && value instanceof ArrayBuffer || typeof Blob !== "undefined" && value instanceof Blob) {
33
+ result[key] = value;
34
+ } else if (result[key] && typeof result[key] === "object" && !Array.isArray(result[key])) {
35
+ result[key] = deepMerge(result[key], value);
36
+ } else {
37
+ result[key] = deepMerge(value);
38
+ }
39
+ } else if (value !== void 0) {
40
+ result[key] = value;
41
+ }
42
+ }
43
+ }
44
+ return result;
45
+ }
46
+ const requestOnlyKeys = /* @__PURE__ */ new Set(["url", "data", "signal"]);
47
+ const deepMergeKeys = /* @__PURE__ */ new Set(["headers"]);
48
+ function mergeConfig(config1 = {}, config2 = {}) {
49
+ const merged = {};
50
+ const allKeys = /* @__PURE__ */ new Set([
51
+ ...Object.keys(config1),
52
+ ...Object.keys(config2)
53
+ ]);
54
+ for (const key of allKeys) {
55
+ const val1 = config1[key];
56
+ const val2 = config2[key];
57
+ if (requestOnlyKeys.has(key)) {
58
+ if (val2 !== void 0) {
59
+ merged[key] = val2;
60
+ }
61
+ } else if (deepMergeKeys.has(key)) {
62
+ merged[key] = deepMerge(val1 || {}, val2 || {});
63
+ } else {
64
+ merged[key] = val2 !== void 0 ? val2 : val1;
65
+ }
66
+ }
67
+ return merged;
68
+ }
69
+ // Annotate the CommonJS export names for ESM import in node:
70
+ 0 && (module.exports = {
71
+ deepMerge
72
+ });
73
+ //# sourceMappingURL=mergeConfig.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/core/mergeConfig.ts"],"sourcesContent":["import type { AccessioRequestConfig } from '../types';\n\nfunction deepMerge(...sources: any[]): Record<string, any> {\n const result: Record<string, any> = {};\n\n for (const source of sources) {\n if (!source || typeof source !== 'object') continue;\n\n for (const key of Object.keys(source)) {\n const value = source[key];\n\n if (\n value &&\n typeof value === 'object' &&\n !Array.isArray(value)\n ) {\n if (\n value instanceof Date ||\n value instanceof RegExp ||\n value instanceof Map ||\n value instanceof Set ||\n value instanceof Error ||\n (typeof ArrayBuffer !== 'undefined' &&\n value instanceof ArrayBuffer) ||\n (typeof Blob !== 'undefined' && value instanceof Blob)\n ) {\n result[key] = value;\n } else if (\n result[key] &&\n typeof result[key] === 'object' &&\n !Array.isArray(result[key])\n ) {\n result[key] = deepMerge(result[key], value);\n } else {\n result[key] = deepMerge(value);\n }\n } else if (value !== undefined) {\n result[key] = value;\n }\n }\n }\n\n return result;\n}\n\nconst requestOnlyKeys = new Set<string>(['url', 'data', 'signal']);\nconst deepMergeKeys = new Set<string>(['headers']);\n\nexport default function mergeConfig(\n config1: AccessioRequestConfig = {},\n config2: AccessioRequestConfig = {},\n): AccessioRequestConfig {\n const merged: any = {};\n\n const allKeys = new Set<string>([\n ...Object.keys(config1),\n ...Object.keys(config2),\n ]);\n\n for (const key of allKeys) {\n const val1 = config1[key as keyof AccessioRequestConfig];\n const val2 = config2[key as keyof AccessioRequestConfig];\n\n if (requestOnlyKeys.has(key)) {\n if (val2 !== undefined) {\n merged[key] = val2;\n }\n } else if (deepMergeKeys.has(key)) {\n merged[key] = deepMerge(val1 || {}, val2 || {});\n } else {\n merged[key] = val2 !== undefined ? val2 : val1;\n }\n }\n\n return merged;\n}\n\nexport { deepMerge };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,SAAS,aAAa,SAAqC;AACzD,QAAM,SAA8B,CAAC;AAErC,aAAW,UAAU,SAAS;AAC5B,QAAI,CAAC,UAAU,OAAO,WAAW,SAAU;AAE3C,eAAW,OAAO,OAAO,KAAK,MAAM,GAAG;AACrC,YAAM,QAAQ,OAAO,GAAG;AAExB,UACE,SACA,OAAO,UAAU,YACjB,CAAC,MAAM,QAAQ,KAAK,GACpB;AACA,YACE,iBAAiB,QACjB,iBAAiB,UACjB,iBAAiB,OACjB,iBAAiB,OACjB,iBAAiB,SAChB,OAAO,gBAAgB,eACtB,iBAAiB,eAClB,OAAO,SAAS,eAAe,iBAAiB,MACjD;AACA,iBAAO,GAAG,IAAI;AAAA,QAChB,WACE,OAAO,GAAG,KACV,OAAO,OAAO,GAAG,MAAM,YACvB,CAAC,MAAM,QAAQ,OAAO,GAAG,CAAC,GAC1B;AACA,iBAAO,GAAG,IAAI,UAAU,OAAO,GAAG,GAAG,KAAK;AAAA,QAC5C,OAAO;AACL,iBAAO,GAAG,IAAI,UAAU,KAAK;AAAA,QAC/B;AAAA,MACF,WAAW,UAAU,QAAW;AAC9B,eAAO,GAAG,IAAI;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,MAAM,kBAAkB,oBAAI,IAAY,CAAC,OAAO,QAAQ,QAAQ,CAAC;AACjE,MAAM,gBAAgB,oBAAI,IAAY,CAAC,SAAS,CAAC;AAElC,SAAR,YACL,UAAiC,CAAC,GAClC,UAAiC,CAAC,GACX;AACvB,QAAM,SAAc,CAAC;AAErB,QAAM,UAAU,oBAAI,IAAY;AAAA,IAC9B,GAAG,OAAO,KAAK,OAAO;AAAA,IACtB,GAAG,OAAO,KAAK,OAAO;AAAA,EACxB,CAAC;AAED,aAAW,OAAO,SAAS;AACzB,UAAM,OAAO,QAAQ,GAAkC;AACvD,UAAM,OAAO,QAAQ,GAAkC;AAEvD,QAAI,gBAAgB,IAAI,GAAG,GAAG;AAC5B,UAAI,SAAS,QAAW;AACtB,eAAO,GAAG,IAAI;AAAA,MAChB;AAAA,IACF,WAAW,cAAc,IAAI,GAAG,GAAG;AACjC,aAAO,GAAG,IAAI,UAAU,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC;AAAA,IAChD,OAAO;AACL,aAAO,GAAG,IAAI,SAAS,SAAY,OAAO;AAAA,IAC5C;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
@@ -0,0 +1,259 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var request_exports = {};
30
+ __export(request_exports, {
31
+ default: () => dispatchRequest
32
+ });
33
+ module.exports = __toCommonJS(request_exports);
34
+ var import_buildURL = __toESM(require("./buildURL"), 1);
35
+ var import_accessioError = __toESM(require("./accessioError"), 1);
36
+ var import_parseHeaders = __toESM(require("../helpers/parseHeaders"), 1);
37
+ var import_transformData = __toESM(require("../helpers/transformData"), 1);
38
+ var import_settle = __toESM(require("../helpers/settle"), 1);
39
+ const METHOD_KEYS = /* @__PURE__ */ new Set([
40
+ "common",
41
+ "delete",
42
+ "get",
43
+ "head",
44
+ "options",
45
+ "post",
46
+ "put",
47
+ "patch"
48
+ ]);
49
+ function flattenHeaders(headers, method) {
50
+ if (!headers) return {};
51
+ const merged = {};
52
+ const methodLower = (method || "get").toLowerCase();
53
+ if (headers["common"]) {
54
+ Object.assign(merged, headers["common"]);
55
+ }
56
+ if (headers[methodLower]) {
57
+ Object.assign(merged, headers[methodLower]);
58
+ }
59
+ for (const key in headers) {
60
+ if (Object.prototype.hasOwnProperty.call(headers, key) && !METHOD_KEYS.has(key)) {
61
+ merged[key] = headers[key];
62
+ }
63
+ }
64
+ return merged;
65
+ }
66
+ function removeContentType(headers) {
67
+ const key = Object.keys(headers).find(
68
+ (k) => k.toLowerCase() === "content-type"
69
+ );
70
+ if (key) {
71
+ delete headers[key];
72
+ }
73
+ }
74
+ function buildTransformArray(transform) {
75
+ if (!transform) return [];
76
+ if (Array.isArray(transform)) return transform;
77
+ return [transform];
78
+ }
79
+ function dispatchRequest(config) {
80
+ const fullURL = config._builtUrl || (0, import_buildURL.default)(
81
+ config.url ?? "",
82
+ config.baseURL,
83
+ config.params,
84
+ config.paramsSerializer
85
+ );
86
+ const flatHeaders = flattenHeaders(
87
+ config.headers,
88
+ config.method
89
+ );
90
+ const requestTransforms = buildTransformArray(config.transformRequest);
91
+ const requestData = (0, import_transformData.default)(
92
+ requestTransforms,
93
+ config.data,
94
+ flatHeaders,
95
+ config
96
+ );
97
+ if (requestData === null || requestData === void 0 || typeof FormData !== "undefined" && requestData instanceof FormData) {
98
+ removeContentType(flatHeaders);
99
+ }
100
+ if (config.auth) {
101
+ const username = config.auth.username || "";
102
+ const password = config.auth.password || "";
103
+ const credentials = `${username}:${password}`;
104
+ let encoded;
105
+ if (typeof Buffer !== "undefined") {
106
+ encoded = Buffer.from(credentials).toString("base64");
107
+ } else {
108
+ const bytes = new TextEncoder().encode(credentials);
109
+ const binString = Array.from(
110
+ bytes,
111
+ (x) => String.fromCodePoint(x)
112
+ ).join("");
113
+ encoded = btoa(binString);
114
+ }
115
+ flatHeaders["Authorization"] = `Basic ${encoded}`;
116
+ }
117
+ const fetchOptions = {
118
+ method: (config.method || "GET").toUpperCase(),
119
+ headers: flatHeaders
120
+ };
121
+ const methodsWithBody = ["POST", "PUT", "PATCH", "DELETE"];
122
+ if (methodsWithBody.includes(fetchOptions.method) && requestData !== void 0 && requestData !== null) {
123
+ fetchOptions.body = requestData;
124
+ }
125
+ if (config.withCredentials) {
126
+ fetchOptions.credentials = "include";
127
+ }
128
+ let abortController = null;
129
+ let timeoutId = null;
130
+ let isTimedOut = false;
131
+ let onUserAbort = null;
132
+ if (config.timeout && config.timeout > 0) {
133
+ abortController = new AbortController();
134
+ timeoutId = setTimeout(() => {
135
+ isTimedOut = true;
136
+ abortController.abort(
137
+ new import_accessioError.default(
138
+ `timeout of ${config.timeout}ms exceeded`,
139
+ import_accessioError.default.ETIMEDOUT,
140
+ config,
141
+ null,
142
+ null
143
+ )
144
+ );
145
+ }, config.timeout);
146
+ if (config.signal) {
147
+ if (typeof AbortSignal.any === "function") {
148
+ fetchOptions.signal = AbortSignal.any([
149
+ config.signal,
150
+ abortController.signal
151
+ ]);
152
+ } else {
153
+ if (config.signal.aborted) {
154
+ abortController.abort(config.signal.reason);
155
+ } else {
156
+ onUserAbort = () => {
157
+ abortController.abort(config.signal.reason);
158
+ };
159
+ config.signal.addEventListener("abort", onUserAbort, {
160
+ once: true
161
+ });
162
+ }
163
+ fetchOptions.signal = abortController.signal;
164
+ }
165
+ } else {
166
+ fetchOptions.signal = abortController.signal;
167
+ }
168
+ } else if (config.signal) {
169
+ fetchOptions.signal = config.signal;
170
+ }
171
+ const requestStartTime = Date.now();
172
+ return fetch(fullURL, fetchOptions).then(async (fetchResponse) => {
173
+ let responseData;
174
+ const responseType = config.responseType || "json";
175
+ try {
176
+ switch (responseType) {
177
+ case "arraybuffer":
178
+ responseData = await fetchResponse.arrayBuffer();
179
+ break;
180
+ case "blob":
181
+ responseData = await fetchResponse.blob();
182
+ break;
183
+ case "text":
184
+ responseData = await fetchResponse.text();
185
+ break;
186
+ case "stream":
187
+ responseData = fetchResponse.body;
188
+ break;
189
+ case "json":
190
+ default:
191
+ responseData = await fetchResponse.text();
192
+ break;
193
+ }
194
+ } catch (readError) {
195
+ throw import_accessioError.default.from(
196
+ readError,
197
+ import_accessioError.default.ERR_BAD_RESPONSE,
198
+ config,
199
+ fetchResponse,
200
+ null
201
+ );
202
+ }
203
+ const responseHeaders = (0, import_parseHeaders.default)(fetchResponse.headers);
204
+ const responseTransforms = buildTransformArray(config.transformResponse);
205
+ responseData = (0, import_transformData.default)(
206
+ responseTransforms,
207
+ responseData,
208
+ responseHeaders,
209
+ config
210
+ );
211
+ const response = {
212
+ data: responseData,
213
+ status: fetchResponse.status,
214
+ statusText: fetchResponse.statusText,
215
+ headers: responseHeaders,
216
+ config,
217
+ request: fetchResponse,
218
+ duration: Date.now() - requestStartTime
219
+ };
220
+ return new Promise((resolve, reject) => {
221
+ (0, import_settle.default)(resolve, reject, response, config);
222
+ });
223
+ }).catch((error) => {
224
+ if (error instanceof import_accessioError.default) {
225
+ throw error;
226
+ }
227
+ if (error instanceof Error && error.name === "AbortError") {
228
+ if (isTimedOut) {
229
+ throw new import_accessioError.default(
230
+ `timeout of ${config.timeout}ms exceeded`,
231
+ import_accessioError.default.ETIMEDOUT,
232
+ config,
233
+ null,
234
+ null
235
+ );
236
+ }
237
+ throw new import_accessioError.default(
238
+ "Request aborted",
239
+ import_accessioError.default.ERR_CANCELED,
240
+ config,
241
+ null,
242
+ null
243
+ );
244
+ }
245
+ throw import_accessioError.default.from(
246
+ error instanceof Error ? error : new Error(String(error)),
247
+ import_accessioError.default.ERR_NETWORK,
248
+ config,
249
+ null,
250
+ null
251
+ );
252
+ }).finally(() => {
253
+ if (timeoutId) clearTimeout(timeoutId);
254
+ if (config.signal && onUserAbort) {
255
+ config.signal.removeEventListener("abort", onUserAbort);
256
+ }
257
+ });
258
+ }
259
+ //# sourceMappingURL=request.cjs.map