@gcmdev/faxios 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +1817 -0
  3. package/dist/index.d.ts +21 -0
  4. package/dist/index.js +25 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/lib/adapters/fetch-helpers.d.ts +16 -0
  7. package/dist/lib/adapters/fetch-helpers.js +91 -0
  8. package/dist/lib/adapters/fetch-helpers.js.map +1 -0
  9. package/dist/lib/adapters/fetch.d.ts +3 -0
  10. package/dist/lib/adapters/fetch.js +417 -0
  11. package/dist/lib/adapters/fetch.js.map +1 -0
  12. package/dist/lib/cancel/CanceledError.d.ts +15 -0
  13. package/dist/lib/cancel/CanceledError.js +20 -0
  14. package/dist/lib/cancel/CanceledError.js.map +1 -0
  15. package/dist/lib/cancel/isCancel.d.ts +1 -0
  16. package/dist/lib/cancel/isCancel.js +5 -0
  17. package/dist/lib/cancel/isCancel.js.map +1 -0
  18. package/dist/lib/core/Faxios.d.ts +68 -0
  19. package/dist/lib/core/Faxios.js +269 -0
  20. package/dist/lib/core/Faxios.js.map +1 -0
  21. package/dist/lib/core/FaxiosError.d.ts +71 -0
  22. package/dist/lib/core/FaxiosError.js +192 -0
  23. package/dist/lib/core/FaxiosError.js.map +1 -0
  24. package/dist/lib/core/FaxiosHeaders.d.ts +45 -0
  25. package/dist/lib/core/FaxiosHeaders.js +299 -0
  26. package/dist/lib/core/FaxiosHeaders.js.map +1 -0
  27. package/dist/lib/core/InterceptorManager.d.ts +9 -0
  28. package/dist/lib/core/InterceptorManager.js +28 -0
  29. package/dist/lib/core/InterceptorManager.js.map +1 -0
  30. package/dist/lib/core/buildFullPath.d.ts +11 -0
  31. package/dist/lib/core/buildFullPath.js +41 -0
  32. package/dist/lib/core/buildFullPath.js.map +1 -0
  33. package/dist/lib/core/define.d.ts +28 -0
  34. package/dist/lib/core/define.js +35 -0
  35. package/dist/lib/core/define.js.map +1 -0
  36. package/dist/lib/core/dispatchRequest.d.ts +2 -0
  37. package/dist/lib/core/dispatchRequest.js +127 -0
  38. package/dist/lib/core/dispatchRequest.js.map +1 -0
  39. package/dist/lib/core/mergeConfig.d.ts +11 -0
  40. package/dist/lib/core/mergeConfig.js +152 -0
  41. package/dist/lib/core/mergeConfig.js.map +1 -0
  42. package/dist/lib/core/prepareRequest.d.ts +3 -0
  43. package/dist/lib/core/prepareRequest.js +112 -0
  44. package/dist/lib/core/prepareRequest.js.map +1 -0
  45. package/dist/lib/core/route.d.ts +14 -0
  46. package/dist/lib/core/route.js +24 -0
  47. package/dist/lib/core/route.js.map +1 -0
  48. package/dist/lib/core/settle.d.ts +2 -0
  49. package/dist/lib/core/settle.js +12 -0
  50. package/dist/lib/core/settle.js.map +1 -0
  51. package/dist/lib/core/transformData.d.ts +8 -0
  52. package/dist/lib/core/transformData.js +16 -0
  53. package/dist/lib/core/transformData.js.map +1 -0
  54. package/dist/lib/core/validateSchema.d.ts +6 -0
  55. package/dist/lib/core/validateSchema.js +32 -0
  56. package/dist/lib/core/validateSchema.js.map +1 -0
  57. package/dist/lib/defaults/index.d.ts +3 -0
  58. package/dist/lib/defaults/index.js +150 -0
  59. package/dist/lib/defaults/index.js.map +1 -0
  60. package/dist/lib/defaults/transitional.d.ts +9 -0
  61. package/dist/lib/defaults/transitional.js +10 -0
  62. package/dist/lib/defaults/transitional.js.map +1 -0
  63. package/dist/lib/env/data.d.ts +1 -0
  64. package/dist/lib/env/data.js +2 -0
  65. package/dist/lib/env/data.js.map +1 -0
  66. package/dist/lib/faxios.d.ts +99 -0
  67. package/dist/lib/faxios.js +68 -0
  68. package/dist/lib/faxios.js.map +1 -0
  69. package/dist/lib/helpers/FaxiosURLSearchParams.d.ts +7 -0
  70. package/dist/lib/helpers/FaxiosURLSearchParams.js +44 -0
  71. package/dist/lib/helpers/FaxiosURLSearchParams.js.map +1 -0
  72. package/dist/lib/helpers/HttpStatusCode.d.ts +72 -0
  73. package/dist/lib/helpers/HttpStatusCode.js +76 -0
  74. package/dist/lib/helpers/HttpStatusCode.js.map +1 -0
  75. package/dist/lib/helpers/buildURL.d.ts +19 -0
  76. package/dist/lib/helpers/buildURL.js +60 -0
  77. package/dist/lib/helpers/buildURL.js.map +1 -0
  78. package/dist/lib/helpers/combineURLs.d.ts +1 -0
  79. package/dist/lib/helpers/combineURLs.js +14 -0
  80. package/dist/lib/helpers/combineURLs.js.map +1 -0
  81. package/dist/lib/helpers/composeSignals.d.ts +8 -0
  82. package/dist/lib/helpers/composeSignals.js +48 -0
  83. package/dist/lib/helpers/composeSignals.js.map +1 -0
  84. package/dist/lib/helpers/cookies.d.ts +6 -0
  85. package/dist/lib/helpers/cookies.js +58 -0
  86. package/dist/lib/helpers/cookies.js.map +1 -0
  87. package/dist/lib/helpers/estimateDataURLDecodedBytes.d.ts +1 -0
  88. package/dist/lib/helpers/estimateDataURLDecodedBytes.js +91 -0
  89. package/dist/lib/helpers/estimateDataURLDecodedBytes.js.map +1 -0
  90. package/dist/lib/helpers/formDataToJSON.d.ts +9 -0
  91. package/dist/lib/helpers/formDataToJSON.js +98 -0
  92. package/dist/lib/helpers/formDataToJSON.js.map +1 -0
  93. package/dist/lib/helpers/isAbsoluteURL.d.ts +1 -0
  94. package/dist/lib/helpers/isAbsoluteURL.js +14 -0
  95. package/dist/lib/helpers/isAbsoluteURL.js.map +1 -0
  96. package/dist/lib/helpers/isFaxiosError.d.ts +8 -0
  97. package/dist/lib/helpers/isFaxiosError.js +13 -0
  98. package/dist/lib/helpers/isFaxiosError.js.map +1 -0
  99. package/dist/lib/helpers/isURLSameOrigin.d.ts +2 -0
  100. package/dist/lib/helpers/isURLSameOrigin.js +10 -0
  101. package/dist/lib/helpers/isURLSameOrigin.js.map +1 -0
  102. package/dist/lib/helpers/parseHeaders.d.ts +16 -0
  103. package/dist/lib/helpers/parseHeaders.js +70 -0
  104. package/dist/lib/helpers/parseHeaders.js.map +1 -0
  105. package/dist/lib/helpers/progressEventReducer.d.ts +5 -0
  106. package/dist/lib/helpers/progressEventReducer.js +45 -0
  107. package/dist/lib/helpers/progressEventReducer.js.map +1 -0
  108. package/dist/lib/helpers/sanitizeHeaderValue.d.ts +4 -0
  109. package/dist/lib/helpers/sanitizeHeaderValue.js +43 -0
  110. package/dist/lib/helpers/sanitizeHeaderValue.js.map +1 -0
  111. package/dist/lib/helpers/speedometer.d.ts +8 -0
  112. package/dist/lib/helpers/speedometer.js +42 -0
  113. package/dist/lib/helpers/speedometer.js.map +1 -0
  114. package/dist/lib/helpers/substitutePathParams.d.ts +2 -0
  115. package/dist/lib/helpers/substitutePathParams.js +14 -0
  116. package/dist/lib/helpers/substitutePathParams.js.map +1 -0
  117. package/dist/lib/helpers/throttle.d.ts +8 -0
  118. package/dist/lib/helpers/throttle.js +42 -0
  119. package/dist/lib/helpers/throttle.js.map +1 -0
  120. package/dist/lib/helpers/toFormData.d.ts +26 -0
  121. package/dist/lib/helpers/toFormData.js +233 -0
  122. package/dist/lib/helpers/toFormData.js.map +1 -0
  123. package/dist/lib/helpers/toURLEncodedForm.d.ts +2 -0
  124. package/dist/lib/helpers/toURLEncodedForm.js +8 -0
  125. package/dist/lib/helpers/toURLEncodedForm.js.map +1 -0
  126. package/dist/lib/helpers/trackStream.d.ts +1 -0
  127. package/dist/lib/helpers/trackStream.js +81 -0
  128. package/dist/lib/helpers/trackStream.js.map +1 -0
  129. package/dist/lib/helpers/validator.d.ts +16 -0
  130. package/dist/lib/helpers/validator.js +86 -0
  131. package/dist/lib/helpers/validator.js.map +1 -0
  132. package/dist/lib/platform.d.ts +22 -0
  133. package/dist/lib/platform.js +26 -0
  134. package/dist/lib/platform.js.map +1 -0
  135. package/dist/lib/types/standard-schema.d.ts +37 -0
  136. package/dist/lib/types/standard-schema.js +8 -0
  137. package/dist/lib/types/standard-schema.js.map +1 -0
  138. package/dist/lib/types.d.ts +219 -0
  139. package/dist/lib/types.js +5 -0
  140. package/dist/lib/types.js.map +1 -0
  141. package/dist/lib/utils.d.ts +143 -0
  142. package/dist/lib/utils.js +805 -0
  143. package/dist/lib/utils.js.map +1 -0
  144. package/package.json +110 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildURL.js","sourceRoot":"","sources":["../../../src/lib/helpers/buildURL.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,KAAK,oBAAoB;AAChC,OAAO,qBAAqB,mCAAmC;AAE/D;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM,CAAC,GAAW;IAChC,OAAO,kBAAkB,CAAC,GAAG,CAAC;SAC3B,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAW,EAAE,MAAgB,EAAE,OAAiB;IAC/E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;QACxC,CAAC,CAAC;YACA,SAAS,EAAE,OAAO;SACnB;QACD,CAAC,CAAC,OAAO,CAAC;IAEZ,4EAA4E;IAC5E,4EAA4E;IAC5E,gCAAgC;IAChC,MAAM,OAAO,GAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAA2C,IAAI,MAAM,CAAC;IAC3G,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAgE,CAAC;IAE5H,IAAI,gBAAoC,CAAC;IAEzC,IAAI,WAAW,EAAE,CAAC;QAChB,gBAAgB,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;SACI,CAAC;QACJ,gBAAgB,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAChD,CAAC,CAAE,MAAsC,CAAC,QAAQ,EAAE;YACpD,CAAC,CAAC,IAAK,qBAAwI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxL,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEvC,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;YACzB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QACpC,CAAC;QACD,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC;IAClE,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1 @@
1
+ export default function combineURLs(baseURL: string, relativeURL?: string): string;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ export default function combineURLs(baseURL, relativeURL) {
3
+ if (!relativeURL)
4
+ return baseURL;
5
+ // Scan indices, slice once — no regex (ReDoS risk on 100k-slash inputs in browser engines)
6
+ let i = baseURL.length - 1;
7
+ while (i >= 0 && baseURL.charCodeAt(i) === 47)
8
+ i--;
9
+ let j = 0;
10
+ while (j < relativeURL.length && relativeURL.charCodeAt(j) === 47)
11
+ j++;
12
+ return baseURL.slice(0, i + 1) + "/" + relativeURL.slice(j);
13
+ }
14
+ //# sourceMappingURL=combineURLs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combineURLs.js","sourceRoot":"","sources":["../../../src/lib/helpers/combineURLs.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,OAAe,EAAE,WAAoB;IACvE,IAAI,CAAC,WAAW;QAAE,OAAO,OAAO,CAAC;IACjC,2FAA2F;IAC3F,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE;QAAE,CAAC,EAAE,CAAC;IACnD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE;QAAE,CAAC,EAAE,CAAC;IACvE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,8 @@
1
+ type AbortHandler = (this: AbortSignal & {
2
+ reason?: unknown;
3
+ }, reason: unknown) => void;
4
+ export type ExtendedAbortSignal = AbortSignal & {
5
+ unsubscribe?: (() => void) | ((handler: AbortHandler) => void);
6
+ };
7
+ declare const composeSignals: (signals: Array<unknown> | null | undefined, timeout?: number, timeoutMessage?: string) => ExtendedAbortSignal | undefined;
8
+ export default composeSignals;
@@ -0,0 +1,48 @@
1
+ import CanceledError from "../cancel/CanceledError.js";
2
+ import FaxiosError from "../core/FaxiosError.js";
3
+ import utils from "../utils.js";
4
+ const composeSignals = (signals, timeout, timeoutMessage) => {
5
+ let activeSignals = signals ? signals.filter(Boolean) : [];
6
+ if (!timeout && !activeSignals.length) {
7
+ return;
8
+ }
9
+ const controller = new AbortController();
10
+ let aborted = false;
11
+ const onabort = function (reason) {
12
+ if (!aborted) {
13
+ aborted = true;
14
+ unsubscribe();
15
+ const err = reason instanceof Error ? reason : this.reason;
16
+ const errMsg = err instanceof Error ? err.message : err;
17
+ const abortErr = err instanceof FaxiosError ? err : new CanceledError(errMsg, undefined, undefined);
18
+ controller.abort(abortErr);
19
+ }
20
+ };
21
+ let timer = timeout
22
+ ? setTimeout(() => {
23
+ timer = null;
24
+ onabort.call(controller.signal, new FaxiosError(timeoutMessage || `timeout of ${timeout}ms exceeded`, FaxiosError.ETIMEDOUT));
25
+ }, timeout)
26
+ : null;
27
+ const unsubscribe = () => {
28
+ if (!activeSignals) {
29
+ return;
30
+ }
31
+ if (timer) {
32
+ clearTimeout(timer);
33
+ }
34
+ timer = null;
35
+ activeSignals.forEach(signal => {
36
+ signal.unsubscribe
37
+ ? (signal.unsubscribe)(onabort)
38
+ : signal.removeEventListener("abort", onabort);
39
+ });
40
+ activeSignals = null;
41
+ };
42
+ activeSignals.forEach(signal => signal.addEventListener("abort", onabort));
43
+ const { signal } = controller;
44
+ signal.unsubscribe = () => utils.asap(unsubscribe);
45
+ return signal;
46
+ };
47
+ export default composeSignals;
48
+ //# sourceMappingURL=composeSignals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composeSignals.js","sourceRoot":"","sources":["../../../src/lib/helpers/composeSignals.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,mCAAmC;AACvD,OAAO,WAAW,+BAA+B;AACjD,OAAO,KAAK,oBAAoB;AAahC,MAAM,cAAc,GAAG,CAAC,OAA0C,EAAE,OAAgB,EAAE,cAAuB,EAAmC,EAAE;IAChJ,IAAI,aAAa,GAA6B,OAAO,CAAC,CAAC,CAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5G,IAAI,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IAEzC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,OAAO,GAAiB,UAAqD,MAAe;QAChG,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,IAAI,CAAC;YACf,WAAW,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3D,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAE,GAA0B,CAAC;YAChF,MAAM,QAAQ,GAAG,GAAG,YAAY,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACpG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,KAAK,GACP,OAAO;QACL,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;YAChB,KAAK,GAAG,IAAI,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,WAAW,CAAC,cAAc,IAAI,cAAc,OAAO,aAAa,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QAChI,CAAC,EAAE,OAAO,CAAC;QACX,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAC/B,IAAI,KAAK,EAAE,CAAC;YAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QACnC,KAAK,GAAG,IAAI,CAAC;QACb,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,WAAW;gBAChB,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC;gBAC/B,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QACH,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC,CAAC;IAEF,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAE3E,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAE7B,MAA8B,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE5E,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ declare const _default: {
2
+ write(name: string, value: string, expires?: number, path?: string, domain?: string, secure?: boolean, sameSite?: string): void;
3
+ read(name: string): string | null;
4
+ remove(name: string): void;
5
+ };
6
+ export default _default;
@@ -0,0 +1,58 @@
1
+ import platform from "../platform.js";
2
+ import utils from "../utils.js";
3
+ const _globalThis = globalThis;
4
+ export default platform.hasStandardBrowserEnv
5
+ ? // Standard browser envs support document.cookie
6
+ {
7
+ write(name, value, expires, path, domain, secure, sameSite) {
8
+ if (!_globalThis.document)
9
+ return;
10
+ const cookie = [`${name}=${encodeURIComponent(value)}`];
11
+ if (utils.isNumber(expires)) {
12
+ cookie.push(`expires=${new Date(expires).toUTCString()}`);
13
+ }
14
+ if (utils.isString(path)) {
15
+ cookie.push(`path=${path}`);
16
+ }
17
+ if (utils.isString(domain)) {
18
+ cookie.push(`domain=${domain}`);
19
+ }
20
+ if (secure === true) {
21
+ cookie.push("secure");
22
+ }
23
+ if (utils.isString(sameSite)) {
24
+ cookie.push(`SameSite=${sameSite}`);
25
+ }
26
+ _globalThis.document.cookie = cookie.join("; ");
27
+ },
28
+ read(name) {
29
+ if (!_globalThis.document)
30
+ return null;
31
+ // Match name=value by splitting on the semicolon separator instead of building a
32
+ // RegExp from `name` — interpolating an unescaped string into a RegExp would let
33
+ // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or
34
+ // match the wrong cookie. Browsers may serialize cookie pairs as either ";" or
35
+ // "; ", so ignore optional whitespace before each cookie name.
36
+ const cookies = (_globalThis.document.cookie ?? "").split(";");
37
+ for (let i = 0; i < cookies.length; i++) {
38
+ const cookie = cookies[i].replace(/^\s+/, "");
39
+ const eq = cookie.indexOf("=");
40
+ if (eq !== -1 && cookie.slice(0, eq) === name) {
41
+ return decodeURIComponent(cookie.slice(eq + 1));
42
+ }
43
+ }
44
+ return null;
45
+ },
46
+ remove(name) {
47
+ this.write(name, "", Date.now() - 86400000, "/");
48
+ },
49
+ }
50
+ : // Non-standard browser env (web workers, react-native) lack needed support.
51
+ {
52
+ write() { },
53
+ read() {
54
+ return null;
55
+ },
56
+ remove() { },
57
+ };
58
+ //# sourceMappingURL=cookies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../../src/lib/helpers/cookies.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,uBAAuB;AACtC,OAAO,KAAK,oBAAoB;AAQhC,MAAM,WAAW,GAAG,UAAkD,CAAC;AAEvE,eAAe,QAAQ,CAAC,qBAAqB;IAC3C,CAAC,CAAC,gDAAgD;QAClD;YACE,KAAK,CAAC,IAAY,EAAE,KAAa,EAAE,OAAgB,EAAE,IAAa,EAAE,MAAe,EAAE,MAAgB,EAAE,QAAiB;gBACtH,IAAI,CAAC,WAAW,CAAC,QAAQ;oBAAE,OAAO;gBAElC,MAAM,MAAM,GAAG,CAAE,GAAG,IAAI,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAE,CAAC;gBAE1D,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC7D,CAAC;gBACD,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzB,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;gBAC9B,CAAC;gBACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;gBAClC,CAAC;gBACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxB,CAAC;gBACD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;gBACtC,CAAC;gBAED,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,CAAC,IAAY;gBACf,IAAI,CAAC,WAAW,CAAC,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBACvC,iFAAiF;gBACjF,iFAAiF;gBACjF,mFAAmF;gBACnF,+EAA+E;gBAC/E,+DAA+D;gBAC/D,MAAM,OAAO,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC/B,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;wBAC9C,OAAO,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,CAAC,IAAY;gBACjB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;YACnD,CAAC;SACsB;IACzB,CAAC,CAAC,4EAA4E;QAC9E;YACE,KAAK,KAAI,CAAC;YACV,IAAI;gBACF,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAI,CAAC;SACY,CAAC"}
@@ -0,0 +1 @@
1
+ export default function estimateDataURLDecodedBytes(url: string): number;
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Estimate decoded byte length of a data:// URL *without* allocating large buffers.
3
+ * - For base64: compute exact decoded size using length and padding;
4
+ * handle %XX at the character-count level (no string allocation).
5
+ * - For non-base64: compute the exact percent-decoded UTF-8 byte length.
6
+ *
7
+ * @param {string} url
8
+ * @returns {number}
9
+ */
10
+ const isHexDigit = (charCode) => (charCode >= 48 && charCode <= 57) ||
11
+ (charCode >= 65 && charCode <= 70) ||
12
+ (charCode >= 97 && charCode <= 102);
13
+ const isPercentEncodedByte = (str, i, len) => i + 2 < len &&
14
+ isHexDigit(str.charCodeAt(i + 1)) &&
15
+ isHexDigit(str.charCodeAt(i + 2));
16
+ function countBase64Padding(body, len) {
17
+ let pad = 0;
18
+ let i = len;
19
+ while (pad < 2 && i > 0) {
20
+ if (body.charCodeAt(i - 1) === 61 /* '=' */) {
21
+ pad++;
22
+ i--;
23
+ }
24
+ else if (i >= 3 && body.charCodeAt(i - 3) === 37 /* '%' */ && body.charCodeAt(i - 2) === 51 /* '3' */ &&
25
+ (body.charCodeAt(i - 1) === 68 || body.charCodeAt(i - 1) === 100) /* 'D'|'d' */) {
26
+ pad++;
27
+ i -= 3;
28
+ }
29
+ else {
30
+ break;
31
+ }
32
+ }
33
+ return pad;
34
+ }
35
+ function estimateBase64DecodedBytes(body) {
36
+ let effectiveLen = body.length;
37
+ const len = body.length;
38
+ for (let i = 0; i < len; i++) {
39
+ if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {
40
+ const a = body.charCodeAt(i + 1);
41
+ const b = body.charCodeAt(i + 2);
42
+ if (isHexDigit(a) && isHexDigit(b)) {
43
+ effectiveLen -= 2;
44
+ i += 2;
45
+ }
46
+ }
47
+ }
48
+ const pad = countBase64Padding(body, len);
49
+ const bytes = Math.floor(effectiveLen / 4) * 3 - pad;
50
+ return bytes > 0 ? bytes : 0;
51
+ }
52
+ // Returns [utf8Bytes, extraCharsToSkip]
53
+ function utf8CharBytes(body, i, len) {
54
+ const c = body.charCodeAt(i);
55
+ if (c === 37 /* '%' */ && isPercentEncodedByte(body, i, len))
56
+ return [1, 2];
57
+ if (c < 0x80)
58
+ return [1, 0];
59
+ if (c < 0x800)
60
+ return [2, 0];
61
+ if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {
62
+ const next = body.charCodeAt(i + 1);
63
+ if (next >= 0xdc00 && next <= 0xdfff)
64
+ return [4, 1];
65
+ }
66
+ return [3, 0];
67
+ }
68
+ // Compute UTF-8 byte length directly from UTF-16 code units without allocating
69
+ // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).
70
+ function estimateUtf8BodyBytes(body) {
71
+ let bytes = 0;
72
+ for (let i = 0, len = body.length; i < len; i++) {
73
+ const [b, skip] = utf8CharBytes(body, i, len);
74
+ bytes += b;
75
+ i += skip;
76
+ }
77
+ return bytes;
78
+ }
79
+ export default function estimateDataURLDecodedBytes(url) {
80
+ if (!url || typeof url !== "string")
81
+ return 0;
82
+ if (!url.startsWith("data:"))
83
+ return 0;
84
+ const comma = url.indexOf(",");
85
+ if (comma < 0)
86
+ return 0;
87
+ const meta = url.slice(5, comma);
88
+ const body = url.slice(comma + 1);
89
+ return /;base64/i.test(meta) ? estimateBase64DecodedBytes(body) : estimateUtf8BodyBytes(body);
90
+ }
91
+ //# sourceMappingURL=estimateDataURLDecodedBytes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateDataURLDecodedBytes.js","sourceRoot":"","sources":["../../../src/lib/helpers/estimateDataURLDecodedBytes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * It takes a FormData object and returns a JavaScript object
3
+ *
4
+ * @param {string} formData The FormData object to convert to JSON.
5
+ *
6
+ * @returns {Object<string, any> | null} The converted object.
7
+ */
8
+ declare function formDataToJSON(formData: unknown): Record<string, unknown> | null;
9
+ export default formDataToJSON;
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ import FaxiosError from "../core/FaxiosError.js";
3
+ import utils from "../utils.js";
4
+ import { DEFAULT_FORM_DATA_MAX_DEPTH } from "./toFormData.js";
5
+ const MAX_DEPTH = DEFAULT_FORM_DATA_MAX_DEPTH;
6
+ function throwIfDepthExceeded(index) {
7
+ if (index > MAX_DEPTH) {
8
+ throw new FaxiosError("FormData field is too deeply nested (" + index + " levels). Max depth: " + MAX_DEPTH, FaxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED);
9
+ }
10
+ }
11
+ /**
12
+ * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']
13
+ *
14
+ * @param {string} name - The name of the property to get.
15
+ *
16
+ * @returns An array of strings.
17
+ */
18
+ function parsePropPath(name) {
19
+ // foo[x][y][z]
20
+ // foo.x.y.z
21
+ // foo-x-y-z
22
+ // foo x y z
23
+ const path = [];
24
+ const pattern = /\w+|\[(\w*)]/g;
25
+ let match;
26
+ while ((match = pattern.exec(name)) !== null) {
27
+ throwIfDepthExceeded(path.length);
28
+ path.push(match[0] === "[]" ? "" : (match[1] ?? match[0]));
29
+ }
30
+ return path;
31
+ }
32
+ /**
33
+ * Convert an array to an object.
34
+ *
35
+ * @param {Array<any>} arr - The array to convert to an object.
36
+ *
37
+ * @returns An object with the same keys and values as the array.
38
+ */
39
+ function arrayToObject(arr) {
40
+ const obj = {};
41
+ const keys = Object.keys(arr);
42
+ let i;
43
+ const len = keys.length;
44
+ let key;
45
+ for (i = 0; i < len; i++) {
46
+ key = keys[i];
47
+ obj[key] = arr[key];
48
+ }
49
+ return obj;
50
+ }
51
+ /**
52
+ * It takes a FormData object and returns a JavaScript object
53
+ *
54
+ * @param {string} formData The FormData object to convert to JSON.
55
+ *
56
+ * @returns {Object<string, any> | null} The converted object.
57
+ */
58
+ function formDataToJSON(formData) {
59
+ function buildPath(path, value, target, index) {
60
+ throwIfDepthExceeded(index);
61
+ let name = path[index++];
62
+ if (name === "__proto__")
63
+ return true;
64
+ const isNumericKey = Number.isFinite(+name);
65
+ const isLast = index >= path.length;
66
+ name = !name && utils.isArray(target) ? target.length : name;
67
+ const key = String(name);
68
+ if (isLast) {
69
+ if (utils.hasOwnProp(target, key)) {
70
+ target[key] = utils.isArray(target[key])
71
+ ? target[key].concat(value)
72
+ : [target[key], value];
73
+ }
74
+ else {
75
+ target[key] = value;
76
+ }
77
+ return !isNumericKey;
78
+ }
79
+ if (!utils.hasOwnProp(target, key) || !utils.isObject(target[key])) {
80
+ target[key] = [];
81
+ }
82
+ const result = buildPath(path, value, target[key], index);
83
+ if (result && utils.isArray(target[key])) {
84
+ target[key] = arrayToObject(target[key]);
85
+ }
86
+ return !isNumericKey;
87
+ }
88
+ if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {
89
+ const obj = {};
90
+ utils.forEachEntry(formData, (name, value) => {
91
+ buildPath(parsePropPath(name), value, obj, 0);
92
+ });
93
+ return obj;
94
+ }
95
+ return null;
96
+ }
97
+ export default formDataToJSON;
98
+ //# sourceMappingURL=formDataToJSON.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formDataToJSON.js","sourceRoot":"","sources":["../../../src/lib/helpers/formDataToJSON.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export default function isAbsoluteURL(url: unknown): boolean;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ // ponytail: protocol-relative URLs (//) intentionally not supported — HTTPS-era fork
3
+ export default function isAbsoluteURL(url) {
4
+ if (typeof url !== "string")
5
+ return false;
6
+ try {
7
+ new URL(url);
8
+ return true;
9
+ }
10
+ catch {
11
+ return false;
12
+ }
13
+ }
14
+ //# sourceMappingURL=isAbsoluteURL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isAbsoluteURL.js","sourceRoot":"","sources":["../../../src/lib/helpers/isAbsoluteURL.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,qFAAqF;AACrF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,GAAY;IAChD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Determines whether the payload is an error thrown by Faxios
3
+ *
4
+ * @param {*} payload The value to test
5
+ *
6
+ * @returns {boolean} True if the payload is an error thrown by Faxios, otherwise false
7
+ */
8
+ export default function isFaxiosError(payload: unknown): boolean;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ import utils from "../utils.js";
3
+ /**
4
+ * Determines whether the payload is an error thrown by Faxios
5
+ *
6
+ * @param {*} payload The value to test
7
+ *
8
+ * @returns {boolean} True if the payload is an error thrown by Faxios, otherwise false
9
+ */
10
+ export default function isFaxiosError(payload) {
11
+ return utils.isObject(payload) && payload.isFaxiosError === true;
12
+ }
13
+ //# sourceMappingURL=isFaxiosError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isFaxiosError.js","sourceRoot":"","sources":["../../../src/lib/helpers/isFaxiosError.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,KAAK,oBAAoB;AAEhC;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,OAAgB;IACpD,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAK,OAAmC,CAAC,aAAa,KAAK,IAAI,CAAC;AAChG,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const _default: (url: string) => boolean;
2
+ export default _default;
@@ -0,0 +1,10 @@
1
+ import platform from "../platform.js";
2
+ export default platform.hasStandardBrowserEnv
3
+ ? ((origin, isMSIE) => (url) => {
4
+ const _url = new URL(url, platform.origin);
5
+ return (origin.protocol === _url.protocol &&
6
+ origin.host === _url.host &&
7
+ (isMSIE || origin.port === _url.port));
8
+ })(new URL(platform.origin), !!(/(msie|trident)/i.test(platform.navigator?.userAgent ?? "")))
9
+ : () => true;
10
+ //# sourceMappingURL=isURLSameOrigin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isURLSameOrigin.js","sourceRoot":"","sources":["../../../src/lib/helpers/isURLSameOrigin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,uBAAuB;AAEtC,eAAe,QAAQ,CAAC,qBAAqB;IAC3C,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,GAAW,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE3C,OAAO,CACL,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;YAC/B,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;YACzB,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CACxC,CAAC;IACJ,CAAC,CAAC,CACA,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EACxB,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAChE;IACD,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Parse headers into an object
3
+ *
4
+ * ```
5
+ * Date: Wed, 27 Aug 2014 08:58:49 GMT
6
+ * Content-Type: application/json
7
+ * Connection: keep-alive
8
+ * Transfer-Encoding: chunked
9
+ * ```
10
+ *
11
+ * @param {String} rawHeaders Headers needing to be parsed
12
+ *
13
+ * @returns {Object} Headers parsed into an object
14
+ */
15
+ declare const _default: (rawHeaders: string) => Record<string, string | Array<string>>;
16
+ export default _default;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ import utils from "../utils.js";
3
+ // RawFaxiosHeaders whose duplicates are ignored by node
4
+ // c.f. https://nodejs.org/api/http.html#http_message_headers
5
+ const ignoreDuplicateOf = utils.toObjectSet([
6
+ "age",
7
+ "authorization",
8
+ "content-length",
9
+ "content-type",
10
+ "etag",
11
+ "expires",
12
+ "from",
13
+ "host",
14
+ "if-modified-since",
15
+ "if-unmodified-since",
16
+ "last-modified",
17
+ "location",
18
+ "max-forwards",
19
+ "proxy-authorization",
20
+ "referer",
21
+ "retry-after",
22
+ "user-agent",
23
+ ], "");
24
+ /**
25
+ * Parse headers into an object
26
+ *
27
+ * ```
28
+ * Date: Wed, 27 Aug 2014 08:58:49 GMT
29
+ * Content-Type: application/json
30
+ * Connection: keep-alive
31
+ * Transfer-Encoding: chunked
32
+ * ```
33
+ *
34
+ * @param {String} rawHeaders Headers needing to be parsed
35
+ *
36
+ * @returns {Object} Headers parsed into an object
37
+ */
38
+ export default (rawHeaders) => {
39
+ const parsed = {};
40
+ let key;
41
+ let val;
42
+ let i;
43
+ rawHeaders &&
44
+ rawHeaders.split("\n")
45
+ .forEach(function parser(line) {
46
+ // eslint-disable-next-line big-o/no-array-lookup-in-loop
47
+ i = line.indexOf(":");
48
+ key = line.substring(0, i).trim()
49
+ .toLowerCase();
50
+ val = line.substring(i + 1).trim();
51
+ if (!key || (parsed[key] !== undefined && ignoreDuplicateOf[key] !== undefined)) {
52
+ return;
53
+ }
54
+ if (key === "set-cookie") {
55
+ const existing = parsed[key];
56
+ if (existing) {
57
+ existing.push(val);
58
+ }
59
+ else {
60
+ parsed[key] = [val];
61
+ }
62
+ }
63
+ else {
64
+ const existing = parsed[key];
65
+ parsed[key] = existing ? existing + ", " + val : val;
66
+ }
67
+ });
68
+ return parsed;
69
+ };
70
+ //# sourceMappingURL=parseHeaders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseHeaders.js","sourceRoot":"","sources":["../../../src/lib/helpers/parseHeaders.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,KAAK,oBAAoB;AAEhC,wDAAwD;AACxD,6DAA6D;AAC7D,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC;IAC1C,KAAK;IACL,eAAe;IACf,gBAAgB;IAChB,cAAc;IACd,MAAM;IACN,SAAS;IACT,MAAM;IACN,MAAM;IACN,mBAAmB;IACnB,qBAAqB;IACrB,eAAe;IACf,UAAU;IACV,cAAc;IACd,qBAAqB;IACrB,SAAS;IACT,aAAa;IACb,YAAY;CACb,EAAE,EAAE,CAAC,CAAC;AAEP;;;;;;;;;;;;;GAaG;AACH,eAAe,CAAC,UAAkB,EAA0C,EAAE;IAC5E,MAAM,MAAM,GAA2C,EAAE,CAAC;IAC1D,IAAI,GAAW,CAAC;IAChB,IAAI,GAAW,CAAC;IAChB,IAAI,CAAS,CAAC;IAEd,UAAU;QACR,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;aACnB,OAAO,CAAC,SAAS,MAAM,CAAC,IAAI;YAC3B,yDAAyD;YACzD,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtB,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;iBAC9B,WAAW,EAAE,CAAC;YACjB,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAEnC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC;gBAChF,OAAO;YACT,CAAC;YAED,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,QAAQ,EAAE,CAAC;oBACZ,QAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxC,CAAC;qBACI,CAAC;oBACJ,MAAM,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAC;gBACxB,CAAC;YACH,CAAC;iBACI,CAAC;gBACJ,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAuB,CAAC;gBACnD,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACvD,CAAC;QACH,CAAC,CAAC,CAAC;IAEP,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { FaxiosProgressEvent } from "../types.js";
2
+ import throttle from "./throttle.js";
3
+ export declare const progressEventReducer: (listener: (data: FaxiosProgressEvent) => void, isDownloadStream: boolean, freq?: number) => [(...args: Array<unknown>) => void, () => void];
4
+ export declare const progressEventDecorator: (total: number | undefined, throttled: ReturnType<typeof throttle>) => [(loaded: number) => void, () => void];
5
+ export declare const asyncDecorator: (fn: (...args: Array<unknown>) => unknown) => (...args: Array<unknown>) => void;
@@ -0,0 +1,45 @@
1
+ import utils from "../utils.js";
2
+ import speedometer from "./speedometer.js";
3
+ import throttle from "./throttle.js";
4
+ export const progressEventReducer = (listener, isDownloadStream, freq = 3) => {
5
+ let bytesNotified = 0;
6
+ const _speedometer = speedometer(50, 250);
7
+ return throttle((e) => {
8
+ if (!e || typeof e.loaded !== "number") {
9
+ return;
10
+ }
11
+ const ev = e;
12
+ const rawLoaded = ev.loaded;
13
+ const total = ev.lengthComputable ? ev.total : undefined;
14
+ const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;
15
+ const progressBytes = Math.max(0, loaded - bytesNotified);
16
+ const rate = _speedometer(progressBytes);
17
+ bytesNotified = Math.max(bytesNotified, loaded);
18
+ const data = {
19
+ loaded,
20
+ total,
21
+ progress: total ? loaded / total : undefined,
22
+ bytes: progressBytes,
23
+ rate: rate ? rate : undefined,
24
+ estimated: rate && total ? (total - loaded) / rate : undefined,
25
+ event: e,
26
+ lengthComputable: total != null,
27
+ download: isDownloadStream ? true : undefined,
28
+ upload: isDownloadStream ? undefined : true,
29
+ };
30
+ listener(data);
31
+ }, freq);
32
+ };
33
+ export const progressEventDecorator = (total, throttled) => {
34
+ const lengthComputable = total != null;
35
+ return [
36
+ (loaded) => throttled[0]({
37
+ lengthComputable,
38
+ total,
39
+ loaded,
40
+ }),
41
+ throttled[1],
42
+ ];
43
+ };
44
+ export const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));
45
+ //# sourceMappingURL=progressEventReducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progressEventReducer.js","sourceRoot":"","sources":["../../../src/lib/helpers/progressEventReducer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,oBAAoB;AAChC,OAAO,WAAW,yBAAyB;AAC3C,OAAO,QAAQ,sBAAsB;AAErC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAA6C,EAAE,gBAAyB,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE;IACzH,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,MAAM,YAAY,GAAG,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAE1C,OAAO,QAAQ,CAAC,CAAC,CAAU,EAAE,EAAE;QAC7B,IAAI,CAAC,CAAC,IAAI,OAAQ,CAA6B,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACpE,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,CAAoE,CAAC;QAChF,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC;QAC5B,MAAM,KAAK,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;QAEzC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAEhD,MAAM,IAAI,GAAwB;YAChC,MAAM;YACN,KAAK;YACL,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS;YAC5C,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC7B,SAAS,EAAE,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS;YAC9D,KAAK,EAAE,CAAC;YACR,gBAAgB,EAAE,KAAK,IAAI,IAAI;YAC/B,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC7C,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;SAC5C,CAAC;QAEF,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAyB,EAAE,SAAsC,EAA0C,EAAE;IAClJ,MAAM,gBAAgB,GAAG,KAAK,IAAI,IAAI,CAAC;IAEvC,OAAO;QACL,CAAC,MAAc,EAAE,EAAE,CACjB,SAAS,CAAC,CAAC,CAAC,CAAC;YACX,gBAAgB;YAChB,KAAK;YACL,MAAM;SACP,CAAC;QACJ,SAAS,CAAC,CAAC,CAAC;KACb,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GACzB,CAAC,EAAwC,EAAE,EAAE,CAC3C,CAAC,GAAG,IAAoB,EAAE,EAAE,CAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const sanitizeHeaderValue: (value: unknown) => string | string[];
2
+ export declare function toByteStringHeaderObject(headers: {
3
+ toJSON: () => Record<string, unknown>;
4
+ }): Record<string, unknown>;