@gcmdev/faxios 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/adapters/fetch-helpers.d.ts +1 -1
- package/dist/lib/adapters/fetch-helpers.d.ts.map +1 -1
- package/dist/lib/adapters/fetch.d.ts +4 -1
- package/dist/lib/adapters/fetch.d.ts.map +1 -1
- package/dist/lib/adapters/fetch.js +210 -92
- package/dist/lib/adapters/fetch.js.map +1 -1
- package/dist/lib/cancel/CanceledError.d.ts +1 -1
- package/dist/lib/cancel/CanceledError.d.ts.map +1 -1
- package/dist/lib/core/Faxios.d.ts +3 -3
- package/dist/lib/core/Faxios.d.ts.map +1 -1
- package/dist/lib/core/Faxios.js +8 -4
- package/dist/lib/core/Faxios.js.map +1 -1
- package/dist/lib/core/FaxiosError.d.ts +2 -2
- package/dist/lib/core/FaxiosError.d.ts.map +1 -1
- package/dist/lib/core/FaxiosHeaders.d.ts +8 -8
- package/dist/lib/core/FaxiosHeaders.d.ts.map +1 -1
- package/dist/lib/core/FaxiosHeaders.js +31 -7
- package/dist/lib/core/FaxiosHeaders.js.map +1 -1
- package/dist/lib/core/define.d.ts +3 -3
- package/dist/lib/core/define.d.ts.map +1 -1
- package/dist/lib/core/dispatchRequest.d.ts +1 -1
- package/dist/lib/core/dispatchRequest.d.ts.map +1 -1
- package/dist/lib/core/dispatchRequest.js +6 -1
- package/dist/lib/core/dispatchRequest.js.map +1 -1
- package/dist/lib/core/mergeConfig.d.ts +2 -2
- package/dist/lib/core/mergeConfig.d.ts.map +1 -1
- package/dist/lib/core/mergeConfig.js +40 -2
- package/dist/lib/core/mergeConfig.js.map +1 -1
- package/dist/lib/core/route.d.ts +1 -1
- package/dist/lib/core/route.d.ts.map +1 -1
- package/dist/lib/core/route.js +2 -5
- package/dist/lib/core/route.js.map +1 -1
- package/dist/lib/core/transformData.d.ts +2 -2
- package/dist/lib/core/transformData.d.ts.map +1 -1
- package/dist/lib/core/validateSchema.d.ts +2 -2
- package/dist/lib/core/validateSchema.d.ts.map +1 -1
- package/dist/lib/env/data.d.ts +1 -1
- package/dist/lib/env/data.js +1 -1
- package/dist/lib/faxios.d.ts +50 -50
- package/dist/lib/faxios.d.ts.map +1 -1
- package/dist/lib/helpers/cloneConfig.d.ts +0 -1
- package/dist/lib/helpers/cloneConfig.d.ts.map +1 -1
- package/dist/lib/helpers/cloneConfig.js +2 -2
- package/dist/lib/helpers/cloneConfig.js.map +1 -1
- package/dist/lib/helpers/cookies.d.ts +1 -1
- package/dist/lib/helpers/cookies.d.ts.map +1 -1
- package/dist/lib/helpers/formDataToJSON.d.ts +1 -1
- package/dist/lib/helpers/formDataToJSON.d.ts.map +1 -1
- package/dist/lib/helpers/formDataToJSON.js +1 -1
- package/dist/lib/helpers/formDataToJSON.js.map +1 -1
- package/dist/lib/helpers/parseHeaders.d.ts +1 -1
- package/dist/lib/helpers/parseHeaders.d.ts.map +1 -1
- package/dist/lib/helpers/progressEventReducer.d.ts.map +1 -1
- package/dist/lib/helpers/progressEventReducer.js +14 -1
- package/dist/lib/helpers/progressEventReducer.js.map +1 -1
- package/dist/lib/helpers/substitutePathParams.d.ts.map +1 -1
- package/dist/lib/helpers/substitutePathParams.js +11 -3
- package/dist/lib/helpers/substitutePathParams.js.map +1 -1
- package/dist/lib/helpers/toFormData.d.ts.map +1 -1
- package/dist/lib/helpers/toFormData.js +16 -20
- package/dist/lib/helpers/toFormData.js.map +1 -1
- package/dist/lib/helpers/trackStream.d.ts.map +1 -1
- package/dist/lib/helpers/trackStream.js +27 -3
- package/dist/lib/helpers/trackStream.js.map +1 -1
- package/dist/lib/helpers/validator.d.ts +1 -1
- package/dist/lib/helpers/validator.d.ts.map +1 -1
- package/dist/lib/platform.d.ts.map +1 -1
- package/dist/lib/plugins/authBearer.d.ts +9 -5
- package/dist/lib/plugins/authBearer.d.ts.map +1 -1
- package/dist/lib/plugins/authBearer.js +6 -0
- package/dist/lib/plugins/authBearer.js.map +1 -1
- package/dist/lib/plugins/definePlugin.d.ts +3 -3
- package/dist/lib/plugins/definePlugin.d.ts.map +1 -1
- package/dist/lib/plugins/retry.d.ts +23 -23
- package/dist/lib/plugins/retry.d.ts.map +1 -1
- package/dist/lib/plugins/timing.d.ts +8 -8
- package/dist/lib/plugins/timing.d.ts.map +1 -1
- package/dist/lib/types/standard-schema.d.ts +6 -6
- package/dist/lib/types/standard-schema.d.ts.map +1 -1
- package/dist/lib/types.d.ts +106 -92
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/utils.d.ts +4 -3
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +18 -5
- package/dist/lib/utils.js.map +1 -1
- package/package.json +7 -4
- package/skills/configure-requests/SKILL.md +14 -8
- package/skills/configure-requests/references/axios-differences.md +1 -1
- package/skills/configure-requests/references/plugins.md +37 -6
- package/src/index.ts +15 -15
- package/src/lib/adapters/fetch-helpers.ts +3 -3
- package/src/lib/adapters/fetch.ts +263 -144
- package/src/lib/cancel/CanceledError.ts +1 -1
- package/src/lib/core/Faxios.ts +17 -13
- package/src/lib/core/FaxiosError.ts +3 -3
- package/src/lib/core/FaxiosHeaders.ts +50 -23
- package/src/lib/core/define.ts +7 -7
- package/src/lib/core/dispatchRequest.ts +8 -3
- package/src/lib/core/mergeConfig.ts +42 -4
- package/src/lib/core/prepareRequest.ts +1 -1
- package/src/lib/core/route.ts +3 -6
- package/src/lib/core/transformData.ts +2 -2
- package/src/lib/core/validateSchema.ts +4 -4
- package/src/lib/defaults/index.ts +1 -1
- package/src/lib/env/data.ts +1 -1
- package/src/lib/faxios.ts +55 -55
- package/src/lib/helpers/HttpStatusCode.ts +1 -1
- package/src/lib/helpers/cloneConfig.ts +2 -3
- package/src/lib/helpers/composeSignals.ts +4 -4
- package/src/lib/helpers/cookies.ts +3 -3
- package/src/lib/helpers/formDataToJSON.ts +4 -4
- package/src/lib/helpers/parseHeaders.ts +2 -2
- package/src/lib/helpers/progressEventReducer.ts +15 -2
- package/src/lib/helpers/sanitizeHeaderValue.ts +1 -1
- package/src/lib/helpers/substitutePathParams.ts +13 -3
- package/src/lib/helpers/throttle.ts +1 -1
- package/src/lib/helpers/toFormData.ts +26 -28
- package/src/lib/helpers/trackStream.ts +40 -12
- package/src/lib/helpers/validator.ts +3 -3
- package/src/lib/platform.ts +4 -4
- package/src/lib/plugins/authBearer.ts +14 -9
- package/src/lib/plugins/definePlugin.ts +3 -3
- package/src/lib/plugins/retry.ts +27 -27
- package/src/lib/plugins/timing.ts +5 -5
- package/src/lib/types/standard-schema.ts +6 -6
- package/src/lib/types.ts +139 -125
- package/src/lib/utils.ts +30 -15
|
@@ -1,14 +1,22 @@
|
|
|
1
|
+
import FaxiosError from "../core/FaxiosError.js";
|
|
2
|
+
// `.` and `..` (raw or percent-encoded) would become a dot segment that the URL parser resolves,
|
|
3
|
+
// moving the request to another path.
|
|
4
|
+
const DOT_SEGMENT = /^(?:\.|%2e){1,2}$/i;
|
|
1
5
|
/** Expects raw (unencoded) param values — applies encodeURIComponent here. */
|
|
2
6
|
export function substitutePathParams(url, params) {
|
|
3
7
|
return url.replace(/\{([^{}]+)\}/g, (_match, key) => {
|
|
4
8
|
if (!Object.prototype.hasOwnProperty.call(params, key)) {
|
|
5
|
-
throw new
|
|
9
|
+
throw new FaxiosError(`Path param "${key}" not found in pathParams`, FaxiosError.ERR_BAD_OPTION_VALUE);
|
|
6
10
|
}
|
|
7
11
|
const val = params[key];
|
|
8
12
|
if (val == null) {
|
|
9
|
-
throw new
|
|
13
|
+
throw new FaxiosError(`Path param "${key}" is null or undefined`, FaxiosError.ERR_BAD_OPTION_VALUE);
|
|
10
14
|
}
|
|
11
|
-
|
|
15
|
+
const str = String(val);
|
|
16
|
+
if (DOT_SEGMENT.test(str)) {
|
|
17
|
+
throw new FaxiosError(`Path param "${key}" must not be "." or ".." (or a percent-encoded form)`, FaxiosError.ERR_BAD_OPTION_VALUE);
|
|
18
|
+
}
|
|
19
|
+
return encodeURIComponent(str);
|
|
12
20
|
});
|
|
13
21
|
}
|
|
14
22
|
//# sourceMappingURL=substitutePathParams.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"substitutePathParams.js","sourceRoot":"","sources":["../../../src/lib/helpers/substitutePathParams.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAAC,GAAW,EAAE,MAA+B;IAC/E,OAAO,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,GAAW,EAAE,EAAE;QAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"substitutePathParams.js","sourceRoot":"","sources":["../../../src/lib/helpers/substitutePathParams.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,+BAA+B;AAEjD,iGAAiG;AACjG,sCAAsC;AACtC,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAEzC,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAAC,GAAW,EAAE,MAA+B;IAC/E,OAAO,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,GAAW,EAAE,EAAE;QAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,WAAW,CAAC,eAAe,GAAG,2BAA2B,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC;QACzG,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAChB,MAAM,IAAI,WAAW,CAAC,eAAe,GAAG,wBAAwB,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC;QACtG,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,WAAW,CAAC,eAAe,GAAG,uDAAuD,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC;QACrI,CAAC;QACD,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toFormData.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/toFormData.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"toFormData.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/toFormData.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA0B,eAAe,EAAqB,oBAAoB;AAK9F,eAAO,MAAM,2BAA2B,MAAM,CAAC;AA2D/C;;;;;;;;;;;;IAYI;AAEJ;;;;;;;;GAQG;AACH,iBAAS,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,CAwMvH;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -81,7 +81,7 @@ const predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {
|
|
|
81
81
|
*/
|
|
82
82
|
function toFormData(obj, formData, options) {
|
|
83
83
|
if (!utils.isObject(obj)) {
|
|
84
|
-
throw new
|
|
84
|
+
throw new FaxiosError("target must be an object", FaxiosError.ERR_BAD_REQUEST);
|
|
85
85
|
}
|
|
86
86
|
const FormDataCtor = globalThis["FormData"];
|
|
87
87
|
if (!formData) {
|
|
@@ -89,25 +89,27 @@ function toFormData(obj, formData, options) {
|
|
|
89
89
|
throw new FaxiosError("FormData is not available in this environment", FaxiosError.ERR_NOT_SUPPORT);
|
|
90
90
|
formData = new FormDataCtor();
|
|
91
91
|
}
|
|
92
|
-
|
|
92
|
+
// Null-prototype destination: `visitor`, `maxDepth` and `Blob` are read below, and a polluted
|
|
93
|
+
// Object.prototype must not supply them.
|
|
94
|
+
options = utils.toFlatObject(options, Object.assign(Object.create(null), {
|
|
93
95
|
metaTokens: true,
|
|
94
96
|
dots: false,
|
|
95
97
|
indexes: false,
|
|
96
|
-
}, false, function defined(option, source) {
|
|
98
|
+
}), false, function defined(option, source) {
|
|
97
99
|
return !utils.isUndefined(source[option]);
|
|
98
100
|
});
|
|
99
101
|
const metaTokens = options["metaTokens"];
|
|
100
102
|
const visitor = (options["visitor"] || defaultVisitor);
|
|
101
103
|
const dots = options["dots"];
|
|
102
104
|
const indexes = options["indexes"];
|
|
103
|
-
const _Blob = options["Blob"] ||
|
|
105
|
+
const _Blob = (options["Blob"] || globalThis["Blob"]);
|
|
104
106
|
const maxDepth = options["maxDepth"] === undefined
|
|
105
107
|
? DEFAULT_FORM_DATA_MAX_DEPTH
|
|
106
108
|
: options["maxDepth"];
|
|
107
|
-
const useBlob = _Blob && utils.isSpecCompliantForm(formData);
|
|
109
|
+
const useBlob = typeof _Blob === "function" && utils.isSpecCompliantForm(formData);
|
|
108
110
|
const stack = [];
|
|
109
111
|
if (!utils.isFunction(visitor)) {
|
|
110
|
-
throw new
|
|
112
|
+
throw new FaxiosError("visitor must be a function", FaxiosError.ERR_BAD_OPTION_VALUE);
|
|
111
113
|
}
|
|
112
114
|
function convertValue(value) {
|
|
113
115
|
if (value === null)
|
|
@@ -118,15 +120,11 @@ function toFormData(obj, formData, options) {
|
|
|
118
120
|
if (utils.isBoolean(value)) {
|
|
119
121
|
return String(value);
|
|
120
122
|
}
|
|
121
|
-
if (!useBlob && utils.isBlob(value)) {
|
|
122
|
-
throw new FaxiosError("
|
|
123
|
+
if (!useBlob && (utils.isBlob(value) || utils.isArrayBuffer(value) || utils.isTypedArray(value))) {
|
|
124
|
+
throw new FaxiosError("Binary FormData values need a spec-compliant FormData and a Blob constructor (set the `Blob` option)", FaxiosError.ERR_NOT_SUPPORT);
|
|
123
125
|
}
|
|
124
126
|
if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {
|
|
125
|
-
|
|
126
|
-
if (useBlob && typeof BlobCtor === "function") {
|
|
127
|
-
return new BlobCtor([value]);
|
|
128
|
-
}
|
|
129
|
-
throw new FaxiosError("Blob is required for binary FormData values in this environment", FaxiosError.ERR_NOT_SUPPORT);
|
|
127
|
+
return new _Blob([value]);
|
|
130
128
|
}
|
|
131
129
|
return value;
|
|
132
130
|
}
|
|
@@ -201,17 +199,18 @@ function toFormData(obj, formData, options) {
|
|
|
201
199
|
formData.append(renderKey(path, key, dots), convertValue(value));
|
|
202
200
|
return false;
|
|
203
201
|
}
|
|
204
|
-
const exposedHelpers =
|
|
205
|
-
|
|
202
|
+
const exposedHelpers = {
|
|
203
|
+
...predicates,
|
|
204
|
+
defaultVisitor,
|
|
206
205
|
convertValue,
|
|
207
206
|
isVisitable,
|
|
208
|
-
}
|
|
207
|
+
};
|
|
209
208
|
function build(value, path, depth = 0) {
|
|
210
209
|
if (utils.isUndefined(value))
|
|
211
210
|
return;
|
|
212
211
|
throwIfMaxDepthExceeded(depth);
|
|
213
212
|
if (stack.indexOf(value) !== -1) {
|
|
214
|
-
throw new
|
|
213
|
+
throw new FaxiosError("Circular reference detected in " + (path ?? []).join("."), FaxiosError.ERR_BAD_REQUEST);
|
|
215
214
|
}
|
|
216
215
|
stack.push(value);
|
|
217
216
|
utils.forEach(value, function each(el, key) {
|
|
@@ -223,9 +222,6 @@ function toFormData(obj, formData, options) {
|
|
|
223
222
|
});
|
|
224
223
|
stack.pop();
|
|
225
224
|
}
|
|
226
|
-
if (!utils.isObject(obj)) {
|
|
227
|
-
throw new TypeError("data must be an object");
|
|
228
|
-
}
|
|
229
225
|
build(obj);
|
|
230
226
|
return formData;
|
|
231
227
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toFormData.js","sourceRoot":"","sources":["../../../src/lib/helpers/toFormData.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,WAAW,+BAA+B;AAGjD,OAAO,KAAK,oBAAoB;AAEhC,8EAA8E;AAC9E,oDAAoD;AACpD,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAE/C;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACrD,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,SAAS,CAAC,IAA+C,EAAE,GAAoB,EAAE,IAAa;IACrG,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,IAAI;SACR,MAAM,CAAC,GAAG,CAAC;SACX,GAAG,CAAC,SAAS,IAAI,CAAC,KAAsB,EAAE,CAAS;QAClD,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;IAChD,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,GAAY;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,GAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,IAAwB,EAAE,SAAS,MAAM,CAAC,IAAY;IACrG,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;IAYI;AAEJ;;;;;;;;GAQG;AACH,SAAS,UAAU,CAAC,GAAY,EAAE,QAAiC,EAAE,OAAiC;IACpG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"toFormData.js","sourceRoot":"","sources":["../../../src/lib/helpers/toFormData.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trackStream.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/trackStream.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"trackStream.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/trackStream.ts"],"names":[],"mappings":"AAsGA,eAAO,MAAM,WAAW,GAAI,QAAQ,OAAO,EAAE,WAAW,MAAM,GAAG,SAAS,EAAE,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,KAAG,OAgDxK,CAAC"}
|
|
@@ -1,4 +1,25 @@
|
|
|
1
|
+
import FaxiosError from "../core/FaxiosError.js";
|
|
2
|
+
import utils from "../utils.js";
|
|
1
3
|
const ReadableStreamGlobal = globalThis["ReadableStream"];
|
|
4
|
+
const textEncoder = typeof TextEncoder === "function" ? new TextEncoder() : undefined;
|
|
5
|
+
// View the chunk's bytes without copying them. Strings are UTF-8 encoded; anything else is not
|
|
6
|
+
// a byte chunk and is rejected rather than silently converted.
|
|
7
|
+
const toBytes = (chunk) => {
|
|
8
|
+
if (chunk instanceof Uint8Array) {
|
|
9
|
+
return chunk;
|
|
10
|
+
}
|
|
11
|
+
if (utils.isArrayBufferView(chunk)) {
|
|
12
|
+
const view = chunk;
|
|
13
|
+
return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);
|
|
14
|
+
}
|
|
15
|
+
if (utils.isArrayBuffer(chunk)) {
|
|
16
|
+
return new Uint8Array(chunk);
|
|
17
|
+
}
|
|
18
|
+
if (utils.isString(chunk) && textEncoder) {
|
|
19
|
+
return textEncoder.encode(chunk);
|
|
20
|
+
}
|
|
21
|
+
throw new FaxiosError("Stream chunk must be a Uint8Array, another ArrayBufferView, an ArrayBuffer or a string, got " + utils.kindOf(chunk), FaxiosError.ERR_BAD_REQUEST);
|
|
22
|
+
};
|
|
2
23
|
const streamChunk = function* (chunk, chunkSize) {
|
|
3
24
|
const len = chunk.byteLength;
|
|
4
25
|
if (!chunkSize || len < chunkSize) {
|
|
@@ -9,13 +30,13 @@ const streamChunk = function* (chunk, chunkSize) {
|
|
|
9
30
|
let end;
|
|
10
31
|
while (pos < len) {
|
|
11
32
|
end = pos + chunkSize;
|
|
12
|
-
yield chunk.
|
|
33
|
+
yield chunk.subarray(pos, end);
|
|
13
34
|
pos = end;
|
|
14
35
|
}
|
|
15
36
|
};
|
|
16
37
|
const readBytes = async function* (iterable, chunkSize) {
|
|
17
38
|
for await (const chunk of readStream(iterable)) {
|
|
18
|
-
yield* streamChunk(chunk, chunkSize);
|
|
39
|
+
yield* streamChunk(toBytes(chunk), chunkSize);
|
|
19
40
|
}
|
|
20
41
|
};
|
|
21
42
|
const readStream = async function* (stream) {
|
|
@@ -63,9 +84,12 @@ export const trackStream = (stream, chunkSize, onProgress, onFinish) => {
|
|
|
63
84
|
const loadedBytes = (bytes += len);
|
|
64
85
|
onProgress(loadedBytes);
|
|
65
86
|
}
|
|
66
|
-
controller.enqueue(
|
|
87
|
+
controller.enqueue(value);
|
|
67
88
|
}
|
|
68
89
|
catch (err) {
|
|
90
|
+
// Cancel the source so its lock and connection are released. The original error wins
|
|
91
|
+
// over a failure to cancel.
|
|
92
|
+
await iterator.return(undefined).catch(() => { });
|
|
69
93
|
_onFinish(err);
|
|
70
94
|
throw err;
|
|
71
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trackStream.js","sourceRoot":"","sources":["../../../src/lib/helpers/trackStream.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"trackStream.js","sourceRoot":"","sources":["../../../src/lib/helpers/trackStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export type ValidatorFn = (value: unknown, opt?: string, opts?: unknown) => bool
|
|
|
8
8
|
*
|
|
9
9
|
* @returns {object}
|
|
10
10
|
*/
|
|
11
|
-
declare function assertOptions(options: unknown, schema: Record<string,
|
|
11
|
+
declare function assertOptions(options: unknown, schema: Record<string, undefined | ValidatorFn>, allowUnknown: boolean): void;
|
|
12
12
|
declare const _default: {
|
|
13
13
|
assertOptions: typeof assertOptions;
|
|
14
14
|
validators: Record<string, ValidatorFn | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/validator.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,GAAG,MAAM,CAAC;AAmE7F;;;;;;;;GAQG;AAEH,iBAAS,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/validator.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,GAAG,MAAM,CAAC;AAmE7F;;;;;;;;GAQG;AAEH,iBAAS,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC,EAAE,YAAY,EAAE,OAAO,GAAG,IAAI,CA0BrH;;;;;AAED,wBAGE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/lib/platform.ts"],"names":[],"mappings":"AAEA,OAAO,qBAAqB,2CAA2C;;;;;;;;
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/lib/platform.ts"],"names":[],"mappings":"AAEA,OAAO,qBAAqB,2CAA2C;;;;;;;;6BAKhD,MAAM;6BAFN,KAAK,CAAC,OAAO,CAAC,KAAK,MAAM;;;;;;;kBAGtB,MAAM;oBAAc,MAAM;;;;AAsBpD,wBAaE"}
|
|
@@ -6,10 +6,6 @@ export type AuthBearerCapability = {
|
|
|
6
6
|
};
|
|
7
7
|
};
|
|
8
8
|
export type AuthBearerOptions = {
|
|
9
|
-
/** Replace a header the request already has. Default `false`: an explicit header is kept. */
|
|
10
|
-
overwrite?: boolean;
|
|
11
|
-
/** Put before the token, separated by a space. Default `"Bearer"`; `""` sends the bare token. */
|
|
12
|
-
scheme?: string;
|
|
13
9
|
/** The header to set. Default `"Authorization"`. */
|
|
14
10
|
header?: string;
|
|
15
11
|
/**
|
|
@@ -17,6 +13,10 @@ export type AuthBearerOptions = {
|
|
|
17
13
|
* with an absolute `baseURL`, only its origin; otherwise only relative request URLs.
|
|
18
14
|
*/
|
|
19
15
|
origins?: Array<string>;
|
|
16
|
+
/** Replace a header the request already has. Default `false`: an explicit header is kept. */
|
|
17
|
+
overwrite?: boolean;
|
|
18
|
+
/** Put before the token, separated by a space. Default `"Bearer"`; `""` sends the bare token. */
|
|
19
|
+
scheme?: string;
|
|
20
20
|
};
|
|
21
21
|
/**
|
|
22
22
|
* Sets `Authorization: Bearer <token>` on requests to the API it guards, asking `getToken` each
|
|
@@ -24,8 +24,12 @@ export type AuthBearerOptions = {
|
|
|
24
24
|
* can ask for a token too. A header the request already has is kept unless `overwrite` is set.
|
|
25
25
|
* The token goes only to the `baseURL` origin when `baseURL` is absolute, otherwise only to
|
|
26
26
|
* relative request URLs; `origins` replaces that rule.
|
|
27
|
+
*
|
|
28
|
+
* When `getToken` gives anything other than a non-empty string (`null`, `undefined`, `""`, a
|
|
29
|
+
* number, an object), the request is sent without the header, so a signed-out state never sends
|
|
30
|
+
* `Bearer null`. The parameter type stays `string`: the guard is for JavaScript callers and casts.
|
|
27
31
|
*/
|
|
28
|
-
export declare function authBearer(getToken: () => string |
|
|
32
|
+
export declare function authBearer(getToken: () => Promise<string> | string, options?: AuthBearerOptions): FaxiosPlugin<{
|
|
29
33
|
provides: AuthBearerCapability;
|
|
30
34
|
}>;
|
|
31
35
|
//# sourceMappingURL=authBearer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authBearer.d.ts","sourceRoot":"","sources":["../../../src/lib/plugins/authBearer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAA+B,oBAAoB;AAI7E,gEAAgE;AAChE,MAAM,MAAM,oBAAoB,GAAG;IAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;KAAE,CAAC;CAAE,CAAC;AAEnF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,
|
|
1
|
+
{"version":3,"file":"authBearer.d.ts","sourceRoot":"","sources":["../../../src/lib/plugins/authBearer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAA+B,oBAAoB;AAI7E,gEAAgE;AAChE,MAAM,MAAM,oBAAoB,GAAG;IAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;KAAE,CAAC;CAAE,CAAC;AAEnF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,6FAA6F;IAC7F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iGAAiG;IACjG,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AA6DF;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,YAAY,CAAC;IAAE,QAAQ,EAAE,oBAAoB,CAAC;CAAE,CAAC,CA8BvJ"}
|
|
@@ -64,6 +64,10 @@ function sendsTokenTo(config, origins) {
|
|
|
64
64
|
* can ask for a token too. A header the request already has is kept unless `overwrite` is set.
|
|
65
65
|
* The token goes only to the `baseURL` origin when `baseURL` is absolute, otherwise only to
|
|
66
66
|
* relative request URLs; `origins` replaces that rule.
|
|
67
|
+
*
|
|
68
|
+
* When `getToken` gives anything other than a non-empty string (`null`, `undefined`, `""`, a
|
|
69
|
+
* number, an object), the request is sent without the header, so a signed-out state never sends
|
|
70
|
+
* `Bearer null`. The parameter type stays `string`: the guard is for JavaScript callers and casts.
|
|
67
71
|
*/
|
|
68
72
|
export function authBearer(getToken, options = {}) {
|
|
69
73
|
if (typeof getToken !== "function") {
|
|
@@ -87,6 +91,8 @@ export function authBearer(getToken, options = {}) {
|
|
|
87
91
|
if ((!overwrite && ctx.config.headers.has(header)) || !sendsTokenTo(ctx.config, origins))
|
|
88
92
|
return next(ctx);
|
|
89
93
|
const token = await auth.getToken();
|
|
94
|
+
if (typeof token !== "string" || token === "")
|
|
95
|
+
return next(ctx);
|
|
90
96
|
// On a copy: middleware that calls next() again (retry installed before this plugin) comes
|
|
91
97
|
// back through here without the header, so every try asks for a fresh token.
|
|
92
98
|
const headers = new FaxiosHeaders(ctx.config.headers).set(header, scheme ? `${scheme} ${token}` : token, true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authBearer.js","sourceRoot":"","sources":["../../../src/lib/plugins/authBearer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"authBearer.js","sourceRoot":"","sources":["../../../src/lib/plugins/authBearer.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,13 +10,13 @@ type RequiredCapabilities<TCapabilities, TProvides> = [keyof TProvides] extends
|
|
|
10
10
|
* count as required. Returns the same object.
|
|
11
11
|
*/
|
|
12
12
|
export declare function definePlugin<TProvides = {}, TOptions = {}, TCapabilities = TProvides>(plugin: {
|
|
13
|
+
middleware: FaxiosMiddleware<TOptions, TCapabilities>;
|
|
13
14
|
name: string;
|
|
14
15
|
provides?: TProvides & NoInfer<Pick<TCapabilities, keyof TProvides & keyof TCapabilities>>;
|
|
15
|
-
middleware: FaxiosMiddleware<TOptions, TCapabilities>;
|
|
16
16
|
}): FaxiosPlugin<{
|
|
17
|
-
requires: RequiredCapabilities<TCapabilities, TProvides>;
|
|
18
|
-
provides: Slot<TProvides>;
|
|
19
17
|
options: Slot<TOptions>;
|
|
18
|
+
provides: Slot<TProvides>;
|
|
19
|
+
requires: RequiredCapabilities<TCapabilities, TProvides>;
|
|
20
20
|
}>;
|
|
21
21
|
export {};
|
|
22
22
|
//# sourceMappingURL=definePlugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definePlugin.d.ts","sourceRoot":"","sources":["../../../src/lib/plugins/definePlugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB;AAGlE,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;AAGvD,KAAK,oBAAoB,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,MAAM,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,GACnF,IAAI,CAAC,aAAa,CAAC,GACnB,IAAI,CAAC;KAAG,CAAC,IAAI,MAAM,aAAa,IAAI,CAAC,SAAS,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;CAAG,CAAC,CAAC;AAErG;;;;;GAKG;AAEH,wBAAgB,YAAY,CAAC,SAAS,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,aAAa,GAAG,SAAS,EAAE,MAAM,EAAE;IAC7F,IAAI,EAAE,MAAM,CAAC;IAGb,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"definePlugin.d.ts","sourceRoot":"","sources":["../../../src/lib/plugins/definePlugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB;AAGlE,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;AAGvD,KAAK,oBAAoB,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,MAAM,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,GACnF,IAAI,CAAC,aAAa,CAAC,GACnB,IAAI,CAAC;KAAG,CAAC,IAAI,MAAM,aAAa,IAAI,CAAC,SAAS,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;CAAG,CAAC,CAAC;AAErG;;;;;GAKG;AAEH,wBAAgB,YAAY,CAAC,SAAS,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,aAAa,GAAG,SAAS,EAAE,MAAM,EAAE;IAC7F,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACtD,IAAI,EAAE,MAAM,CAAC;IAGb,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,CAAC,CAAC;CAC5F,GAAG,YAAY,CAAC;IACf,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1B,QAAQ,EAAE,oBAAoB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;CAC1D,CAAC,CAGD"}
|
|
@@ -2,37 +2,36 @@ import type { FaxiosPlugin, Method } from "../types.js";
|
|
|
2
2
|
export type RetryOptions = {
|
|
3
3
|
/** Total tries, counting the first request. Default 3. */
|
|
4
4
|
attempts?: number;
|
|
5
|
-
/**
|
|
6
|
-
* Whether the try that just failed should be retried. `attempt` counts from 1.
|
|
7
|
-
* Default: network errors, timeouts and the `statuses`; never a cancellation. A custom `retryOn`
|
|
8
|
-
* replaces that whole predicate, so `statuses` is ignored when both are set. retryOn decides
|
|
9
|
-
* only within `methods`; to retry POST, list it in `methods`.
|
|
10
|
-
*/
|
|
11
|
-
retryOn?: (error: unknown, attempt: number) => boolean;
|
|
12
|
-
/**
|
|
13
|
-
* Response statuses the default predicate retries. Default 408, 429, 500, 502, 503 and 504.
|
|
14
|
-
* Ignored when `retryOn` is set.
|
|
15
|
-
*/
|
|
16
|
-
statuses?: ReadonlyArray<number>;
|
|
17
5
|
/**
|
|
18
6
|
* Milliseconds to wait before the next try, or a function of the try that failed. Default 100ms,
|
|
19
7
|
* doubling. Capped at `maxDelay`, then jittered. A 429 or 503 with a `Retry-After` header waits
|
|
20
8
|
* that long instead, unless `respectRetryAfter` is `false`.
|
|
21
9
|
*/
|
|
22
|
-
delay?:
|
|
23
|
-
/** The most the computed backoff waits, in milliseconds. Default 30 000. Doesn't apply to `Retry-After`. */
|
|
24
|
-
maxDelay?: number;
|
|
10
|
+
delay?: ((attempt: number, error: unknown) => number) | number;
|
|
25
11
|
/**
|
|
26
12
|
* `"full"` (default) waits a random time between 0 and the capped backoff, so clients that failed
|
|
27
13
|
* together don't retry together; `"none"` waits the capped backoff. Doesn't apply to `Retry-After`.
|
|
28
14
|
*/
|
|
29
15
|
jitter?: "full" | "none";
|
|
16
|
+
/** The most the computed backoff waits, in milliseconds. Default 30 000. Doesn't apply to `Retry-After`. */
|
|
17
|
+
maxDelay?: number;
|
|
30
18
|
/**
|
|
31
19
|
* The longest `Retry-After` (seconds or an HTTP date, on a 429 or 503) to wait, in milliseconds.
|
|
32
20
|
* Default 300 000 (5 minutes). A longer one rejects with the response's error instead of retrying.
|
|
33
21
|
* Ignored when `respectRetryAfter` is `false`.
|
|
34
22
|
*/
|
|
35
23
|
maxRetryAfter?: number;
|
|
24
|
+
/**
|
|
25
|
+
* HTTP methods that may be retried, in any case. Default: GET, HEAD, OPTIONS, PUT, DELETE and
|
|
26
|
+
* QUERY. POST and PATCH aren't idempotent, so add them only if your API dedupes repeats. A request
|
|
27
|
+
* whose method isn't listed is never retried, whatever `retryOn` or `statuses` say.
|
|
28
|
+
*/
|
|
29
|
+
methods?: ReadonlyArray<Method>;
|
|
30
|
+
/**
|
|
31
|
+
* Called before each wait with the error, the try that failed and the wait in milliseconds. If it
|
|
32
|
+
* throws, the request rejects with that error and stops retrying.
|
|
33
|
+
*/
|
|
34
|
+
onRetry?: (error: unknown, attempt: number, delayMs: number) => void;
|
|
36
35
|
/**
|
|
37
36
|
* Whether a 429 or 503's `Retry-After` header sets the wait. Default `true`. With `false`, every
|
|
38
37
|
* retry waits the computed backoff and `maxRetryAfter` doesn't apply; which requests retry doesn't
|
|
@@ -40,20 +39,21 @@ export type RetryOptions = {
|
|
|
40
39
|
*/
|
|
41
40
|
respectRetryAfter?: boolean;
|
|
42
41
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
42
|
+
* Whether the try that just failed should be retried. `attempt` counts from 1.
|
|
43
|
+
* Default: network errors, timeouts and the `statuses`; never a cancellation. A custom `retryOn`
|
|
44
|
+
* replaces that whole predicate, so `statuses` is ignored when both are set. retryOn decides
|
|
45
|
+
* only within `methods`; to retry POST, list it in `methods`.
|
|
45
46
|
*/
|
|
46
|
-
|
|
47
|
+
retryOn?: (error: unknown, attempt: number) => boolean;
|
|
47
48
|
/**
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* whose method isn't listed is never retried, whatever `retryOn` or `statuses` say.
|
|
49
|
+
* Response statuses the default predicate retries. Default 408, 429, 500, 502, 503 and 504.
|
|
50
|
+
* Ignored when `retryOn` is set.
|
|
51
51
|
*/
|
|
52
|
-
|
|
52
|
+
statuses?: ReadonlyArray<number>;
|
|
53
53
|
};
|
|
54
54
|
/** Per-request override: `false` turns retries off, an object overrides the plugin's options. */
|
|
55
55
|
export type RetryRequestOptions = {
|
|
56
|
-
retry?:
|
|
56
|
+
retry?: false | RetryOptions;
|
|
57
57
|
};
|
|
58
58
|
/**
|
|
59
59
|
* Retries failed requests by calling `next` again. Each `next` dispatches its own copy of the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/lib/plugins/retry.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAiB,YAAY,EAAwE,MAAM,EAAE,oBAAoB;AAgD7I,MAAM,MAAM,YAAY,GAAG;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/lib/plugins/retry.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAiB,YAAY,EAAwE,MAAM,EAAE,oBAAoB;AAgD7I,MAAM,MAAM,YAAY,GAAG;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,GAAG,MAAM,CAAC;IAC/D;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,4GAA4G;IAC5G,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACvD;;;OAGG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,iGAAiG;AACjG,MAAM,MAAM,mBAAmB,GAAG;IAAE,KAAK,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC;CAAE,CAAC;AAkGpE;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,YAAY,CAAC;IAAE,OAAO,EAAE,mBAAmB,CAAC;CAAE,CAAC,CAiCjG"}
|
|
@@ -4,22 +4,22 @@ import type { FaxiosPlugin } from "../types.js";
|
|
|
4
4
|
* headers or body, so an event is safe to log.
|
|
5
5
|
*/
|
|
6
6
|
export type TimingEvent = {
|
|
7
|
-
/** The request method, upper-cased (`"GET"`). */
|
|
8
|
-
method: string;
|
|
9
|
-
/** The full request URL without its query string and fragment. */
|
|
10
|
-
url: string;
|
|
11
7
|
/**
|
|
12
8
|
* The try number from `retry`: each try's when installed after it, the final try's when
|
|
13
9
|
* installed before it. Absent without `retry`.
|
|
14
10
|
*/
|
|
15
11
|
attempt?: number;
|
|
16
12
|
durationMs: number;
|
|
13
|
+
/** The request method, upper-cased (`"GET"`). */
|
|
14
|
+
method: string;
|
|
15
|
+
/** The full request URL without its query string and fragment. */
|
|
16
|
+
url: string;
|
|
17
17
|
} & ({
|
|
18
|
-
status: number;
|
|
19
|
-
error?: undefined;
|
|
20
|
-
} | {
|
|
21
|
-
status?: undefined;
|
|
22
18
|
error: unknown;
|
|
19
|
+
status?: undefined;
|
|
20
|
+
} | {
|
|
21
|
+
error?: undefined;
|
|
22
|
+
status: number;
|
|
23
23
|
});
|
|
24
24
|
/**
|
|
25
25
|
* Measures the time around `next` and calls `onTiming` once per request with the method, URL,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../../../src/lib/plugins/timing.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,YAAY,EAAE,oBAAoB;AAK/D;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB
|
|
1
|
+
{"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../../../src/lib/plugins/timing.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,YAAY,EAAE,oBAAoB;AAK/D;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAAE,GAAG;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;CAAE,CAAC,CAAC;AAsBvF;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,YAAY,CAuB3E"}
|
|
@@ -8,26 +8,26 @@ export interface StandardSchemaV1<Input = unknown, Output = Input> {
|
|
|
8
8
|
}
|
|
9
9
|
export declare namespace StandardSchemaV1 {
|
|
10
10
|
interface Props<Input = unknown, Output = Input> {
|
|
11
|
-
readonly version: 1;
|
|
12
|
-
readonly vendor: string;
|
|
13
11
|
readonly types?: Types<Input, Output>;
|
|
14
|
-
readonly validate: (value: unknown) => Result<Output
|
|
12
|
+
readonly validate: (value: unknown) => Promise<Result<Output>> | Result<Output>;
|
|
13
|
+
readonly vendor: string;
|
|
14
|
+
readonly version: 1;
|
|
15
15
|
}
|
|
16
16
|
interface Types<Input = unknown, Output = Input> {
|
|
17
17
|
readonly input: Input;
|
|
18
18
|
readonly output: Output;
|
|
19
19
|
}
|
|
20
|
-
type Result<Output> = SuccessResult<Output
|
|
20
|
+
type Result<Output> = FailureResult | SuccessResult<Output>;
|
|
21
21
|
interface SuccessResult<Output> {
|
|
22
|
-
readonly value: Output;
|
|
23
22
|
readonly issues?: undefined;
|
|
23
|
+
readonly value: Output;
|
|
24
24
|
}
|
|
25
25
|
interface FailureResult {
|
|
26
26
|
readonly issues: ReadonlyArray<Issue>;
|
|
27
27
|
}
|
|
28
28
|
interface Issue {
|
|
29
29
|
readonly message: string;
|
|
30
|
-
readonly path?: ReadonlyArray<
|
|
30
|
+
readonly path?: ReadonlyArray<PathSegment | PropertyKey> | undefined;
|
|
31
31
|
}
|
|
32
32
|
interface PathSegment {
|
|
33
33
|
readonly key: PropertyKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard-schema.d.ts","sourceRoot":"","sources":["../../../src/lib/types/standard-schema.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAIH,MAAM,WAAW,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;IAC/D,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC7D;AAED,MAAM,CAAC,OAAO,WAAW,gBAAgB,CAAC;IACxC,UAAU,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;QAC7C,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"standard-schema.d.ts","sourceRoot":"","sources":["../../../src/lib/types/standard-schema.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAIH,MAAM,WAAW,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;IAC/D,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC7D;AAED,MAAM,CAAC,OAAO,WAAW,gBAAgB,CAAC;IACxC,UAAU,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;QAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,QAAQ,CAAC,QAAQ,EAAE,CACjB,KAAK,EAAE,OAAO,KACX,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;KACrB;IAED,UAAU,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;QAC7C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB;IAED,KAAK,MAAM,CAAC,MAAM,IAAI,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAE5D,UAAU,aAAa,CAAC,MAAM;QAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;QAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB;IAED,UAAU,aAAa;QACrB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;KACvC;IAED,UAAU,KAAK;QACb,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,EACV,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC,GACxC,SAAS,CAAC;KACf;IAED,UAAU,WAAW;QACnB,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;KAC3B;IAED,KAAK,UAAU,CAAC,MAAM,SAAS,gBAAgB,IAAI,WAAW,CAC5D,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAC7B,CAAC,OAAO,CAAC,CAAC;IAEX,KAAK,WAAW,CAAC,MAAM,SAAS,gBAAgB,IAAI,WAAW,CAC7D,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAC7B,CAAC,QAAQ,CAAC,CAAC;CACb"}
|