urllib 4.6.2 → 4.6.4
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/commonjs/FormData.js +7 -2
- package/dist/commonjs/HttpClient.js +1 -1
- package/dist/commonjs/index.d.ts +1 -0
- package/dist/commonjs/index.js +4 -2
- package/dist/esm/FormData.js +7 -2
- package/dist/esm/HttpClient.js +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +2 -1
- package/dist/package.json +1 -1
- package/package.json +1 -1
- package/src/FormData.ts +7 -1
- package/src/index.ts +1 -0
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.FormData = void 0;
|
7
7
|
const node_path_1 = __importDefault(require("node:path"));
|
8
8
|
const form_data_1 = __importDefault(require("form-data"));
|
9
|
+
// eslint-disable-next-line
|
10
|
+
const NON_ASCII_RE = /[^\x00-\x7F]/i;
|
9
11
|
class FormData extends form_data_1.default {
|
10
12
|
_getContentDisposition(value, options) {
|
11
13
|
// support non-ascii filename
|
@@ -29,10 +31,13 @@ class FormData extends form_data_1.default {
|
|
29
31
|
if (filename) {
|
30
32
|
// https://datatracker.ietf.org/doc/html/rfc6266#section-4.1
|
31
33
|
// support non-ascii filename
|
32
|
-
contentDisposition = 'filename="' + filename + '"
|
34
|
+
contentDisposition = 'filename="' + filename + '"';
|
35
|
+
if (NON_ASCII_RE.test(filename)) {
|
36
|
+
contentDisposition += '; filename*=UTF-8\'\'' + encodeURIComponent(filename);
|
37
|
+
}
|
33
38
|
}
|
34
39
|
return contentDisposition;
|
35
40
|
}
|
36
41
|
}
|
37
42
|
exports.FormData = FormData;
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybURhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRm9ybURhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMERBQTZCO0FBQzdCLDBEQUFrQztBQUVsQywyQkFBMkI7QUFDM0IsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDO0FBRXJDLE1BQWEsUUFBUyxTQUFRLG1CQUFTO0lBQ3JDLHNCQUFzQixDQUFDLEtBQVUsRUFBRSxPQUFZO1FBQzdDLDZCQUE2QjtRQUM3QixrREFBa0Q7UUFDbEQsSUFBSSxRQUFRLENBQUM7UUFDYixJQUFJLGtCQUFrQixDQUFDO1FBRXZCLElBQUksT0FBTyxPQUFPLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLHFDQUFxQztZQUNyQyxRQUFRLEdBQUcsbUJBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEUsQ0FBQzthQUFNLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4RCxrQ0FBa0M7WUFDbEMsaURBQWlEO1lBQ2pELDhDQUE4QztZQUM5QyxRQUFRLEdBQUcsbUJBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RSxDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUNqRSx1QkFBdUI7WUFDdkIsUUFBUSxHQUFHLG1CQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBRUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLDREQUE0RDtZQUM1RCw2QkFBNkI7WUFDN0Isa0JBQWtCLEdBQUcsWUFBWSxHQUFHLFFBQVEsR0FBRyxHQUFHLENBQUM7WUFDbkQsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hDLGtCQUFrQixJQUFJLHVCQUF1QixHQUFHLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9FLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUEvQkQsNEJBK0JDIn0=
|
@@ -36,7 +36,7 @@ function noop() {
|
|
36
36
|
// noop
|
37
37
|
}
|
38
38
|
const debug = (0, node_util_1.debuglog)('urllib:HttpClient');
|
39
|
-
exports.VERSION = '4.6.
|
39
|
+
exports.VERSION = '4.6.4';
|
40
40
|
// 'node-urllib/4.0.0 Node.js/18.19.0 (darwin; x64)'
|
41
41
|
exports.HEADER_USER_AGENT = `node-urllib/${exports.VERSION} Node.js/${process.version.substring(1)} (${process.platform}; ${process.arch})`;
|
42
42
|
function getFileName(stream) {
|
package/dist/commonjs/index.d.ts
CHANGED
@@ -11,6 +11,7 @@ export { SocketInfo, Timing, RawResponseWithMeta, HttpClientResponse, } from './
|
|
11
11
|
export { IncomingHttpHeaders, } from './IncomingHttpHeaders.js';
|
12
12
|
export * from './HttpClientError.js';
|
13
13
|
export { FetchFactory, fetch } from './fetch.js';
|
14
|
+
export { FormData as WebFormData } from './FormData.js';
|
14
15
|
declare const _default: {
|
15
16
|
request: typeof request;
|
16
17
|
curl: typeof curl;
|
package/dist/commonjs/index.js
CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
15
|
};
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
-
exports.FetchFactory = exports.USER_AGENT = exports.HttpClient2 = exports.HttpClient = exports.FormData = exports.Headers = exports.Response = exports.Request = exports.getGlobalDispatcher = exports.setGlobalDispatcher = exports.Dispatcher = exports.Agent = exports.ProxyAgent = exports.MockAgent = void 0;
|
17
|
+
exports.WebFormData = exports.FetchFactory = exports.USER_AGENT = exports.HttpClient2 = exports.HttpClient = exports.FormData = exports.Headers = exports.Response = exports.Request = exports.getGlobalDispatcher = exports.setGlobalDispatcher = exports.Dispatcher = exports.Agent = exports.ProxyAgent = exports.MockAgent = void 0;
|
18
18
|
exports.getDefaultHttpClient = getDefaultHttpClient;
|
19
19
|
exports.request = request;
|
20
20
|
exports.curl = curl;
|
@@ -71,9 +71,11 @@ __exportStar(require("./HttpClientError.js"), exports);
|
|
71
71
|
var fetch_js_1 = require("./fetch.js");
|
72
72
|
Object.defineProperty(exports, "FetchFactory", { enumerable: true, get: function () { return fetch_js_1.FetchFactory; } });
|
73
73
|
Object.defineProperty(exports, "fetch", { enumerable: true, get: function () { return fetch_js_1.fetch; } });
|
74
|
+
var FormData_js_1 = require("./FormData.js");
|
75
|
+
Object.defineProperty(exports, "WebFormData", { enumerable: true, get: function () { return FormData_js_1.FormData; } });
|
74
76
|
exports.default = {
|
75
77
|
request,
|
76
78
|
curl,
|
77
79
|
USER_AGENT: HttpClient_js_1.HEADER_USER_AGENT,
|
78
80
|
};
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSxvREFLQztBQUVELDBCQWFDO0FBT0Qsb0JBRUM7QUF4Q0QsK0JBQTJCO0FBQzNCLHlDQUE0QztBQUU1QyxJQUFBLHlCQUFjLEdBQUUsQ0FBQztBQUVqQixtREFBZ0U7QUFHaEUsSUFBSSxVQUFzQixDQUFDO0FBQzNCLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxVQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFNUMsU0FBZ0Isb0JBQW9CO0lBQ2xDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixVQUFVLEdBQUcsSUFBSSwwQkFBVSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFTSxLQUFLLFVBQVUsT0FBTyxDQUFVLEdBQWUsRUFBRSxPQUF3QjtJQUM5RSxJQUFJLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUN4QixJQUFJLHNCQUFzQixHQUFHLHVCQUF1QixDQUFDLEdBQUcsQ0FBYSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDNUIsc0JBQXNCLEdBQUcsSUFBSSwwQkFBVSxDQUFDO2dCQUN0QyxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRTthQUM1QyxDQUFDLENBQUM7WUFDSCx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFDRCxPQUFPLE1BQU0sc0JBQXNCLENBQUMsT0FBTyxDQUFJLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsT0FBTyxNQUFNLG9CQUFvQixFQUFFLENBQUMsT0FBTyxDQUFJLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBRUQsMkRBQTJEO0FBQzNELFFBQVE7QUFDUixvQ0FBb0M7QUFDcEMsb0JBQW9CO0FBQ3BCLE1BQU07QUFDQyxLQUFLLFVBQVUsSUFBSSxDQUFVLEdBQWUsRUFBRSxPQUF3QjtJQUMzRSxPQUFPLE1BQU0sT0FBTyxDQUFJLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsaUNBTWdCO0FBTGQsbUdBQUEsU0FBUyxPQUFBO0FBQUUsb0dBQUEsVUFBVSxPQUFBO0FBQUUsK0ZBQUEsS0FBSyxPQUFBO0FBQUUsb0dBQUEsVUFBVSxPQUFBO0FBQ3hDLDZHQUFBLG1CQUFtQixPQUFBO0FBQUUsNkdBQUEsbUJBQW1CLE9BQUE7QUFDeEMsaUdBQUEsT0FBTyxPQUFBO0FBQ1Asa0dBQUEsUUFBUSxPQUFBO0FBQ1IsaUdBQUEsT0FBTyxPQUFBO0FBQUUsa0dBQUEsUUFBUSxPQUFBO0FBRW5CLDJEQUEyRDtBQUMzRCxpREFHeUI7QUFGdkIsMkdBQUEsVUFBVSxPQUFBO0FBQUUsNEdBQUEsVUFBVSxPQUFlO0FBQUUsMkdBQUEsaUJBQWlCLE9BQWM7QUFpQnhFLHVEQUFxQztBQUNyQyx1Q0FBaUQ7QUFBeEMsd0dBQUEsWUFBWSxPQUFBO0FBQUUsaUdBQUEsS0FBSyxPQUFBO0FBQzVCLDZDQUF3RDtBQUEvQywwR0FBQSxRQUFRLE9BQWU7QUFFaEMsa0JBQWU7SUFDYixPQUFPO0lBQ1AsSUFBSTtJQUNKLFVBQVUsRUFBRSxpQ0FBaUI7Q0FDOUIsQ0FBQyJ9
|
package/dist/esm/FormData.js
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
import path from 'node:path';
|
2
2
|
import _FormData from 'form-data';
|
3
|
+
// eslint-disable-next-line
|
4
|
+
const NON_ASCII_RE = /[^\x00-\x7F]/i;
|
3
5
|
export class FormData extends _FormData {
|
4
6
|
_getContentDisposition(value, options) {
|
5
7
|
// support non-ascii filename
|
@@ -23,9 +25,12 @@ export class FormData extends _FormData {
|
|
23
25
|
if (filename) {
|
24
26
|
// https://datatracker.ietf.org/doc/html/rfc6266#section-4.1
|
25
27
|
// support non-ascii filename
|
26
|
-
contentDisposition = 'filename="' + filename + '"
|
28
|
+
contentDisposition = 'filename="' + filename + '"';
|
29
|
+
if (NON_ASCII_RE.test(filename)) {
|
30
|
+
contentDisposition += '; filename*=UTF-8\'\'' + encodeURIComponent(filename);
|
31
|
+
}
|
27
32
|
}
|
28
33
|
return contentDisposition;
|
29
34
|
}
|
30
35
|
}
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybURhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRm9ybURhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUVsQywyQkFBMkI7QUFDM0IsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDO0FBRXJDLE1BQU0sT0FBTyxRQUFTLFNBQVEsU0FBUztJQUNyQyxzQkFBc0IsQ0FBQyxLQUFVLEVBQUUsT0FBWTtRQUM3Qyw2QkFBNkI7UUFDN0Isa0RBQWtEO1FBQ2xELElBQUksUUFBUSxDQUFDO1FBQ2IsSUFBSSxrQkFBa0IsQ0FBQztRQUV2QixJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN6QyxxQ0FBcUM7WUFDckMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEUsQ0FBQzthQUFNLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4RCxrQ0FBa0M7WUFDbEMsaURBQWlEO1lBQ2pELDhDQUE4QztZQUM5QyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pFLENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ2pFLHVCQUF1QjtZQUN2QixRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUVELElBQUksUUFBUSxFQUFFLENBQUM7WUFDYiw0REFBNEQ7WUFDNUQsNkJBQTZCO1lBQzdCLGtCQUFrQixHQUFHLFlBQVksR0FBRyxRQUFRLEdBQUcsR0FBRyxDQUFDO1lBQ25ELElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUNoQyxrQkFBa0IsSUFBSSx1QkFBdUIsR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvRSxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztDQUNGIn0=
|
package/dist/esm/HttpClient.js
CHANGED
@@ -30,7 +30,7 @@ function noop() {
|
|
30
30
|
// noop
|
31
31
|
}
|
32
32
|
const debug = debuglog('urllib:HttpClient');
|
33
|
-
export const VERSION = '4.6.
|
33
|
+
export const VERSION = '4.6.4';
|
34
34
|
// 'node-urllib/4.0.0 Node.js/18.19.0 (darwin; x64)'
|
35
35
|
export const HEADER_USER_AGENT = `node-urllib/${VERSION} Node.js/${process.version.substring(1)} (${process.platform}; ${process.arch})`;
|
36
36
|
function getFileName(stream) {
|
package/dist/esm/index.d.ts
CHANGED
@@ -11,6 +11,7 @@ export { SocketInfo, Timing, RawResponseWithMeta, HttpClientResponse, } from './
|
|
11
11
|
export { IncomingHttpHeaders, } from './IncomingHttpHeaders.js';
|
12
12
|
export * from './HttpClientError.js';
|
13
13
|
export { FetchFactory, fetch } from './fetch.js';
|
14
|
+
export { FormData as WebFormData } from './FormData.js';
|
14
15
|
declare const _default: {
|
15
16
|
request: typeof request;
|
16
17
|
curl: typeof curl;
|
package/dist/esm/index.js
CHANGED
@@ -36,9 +36,10 @@ export { MockAgent, ProxyAgent, Agent, Dispatcher, setGlobalDispatcher, getGloba
|
|
36
36
|
export { HttpClient, HttpClient as HttpClient2, HEADER_USER_AGENT as USER_AGENT, } from './HttpClient.js';
|
37
37
|
export * from './HttpClientError.js';
|
38
38
|
export { FetchFactory, fetch } from './fetch.js';
|
39
|
+
export { FormData as WebFormData } from './FormData.js';
|
39
40
|
export default {
|
40
41
|
request,
|
41
42
|
curl,
|
42
43
|
USER_AGENT: HEADER_USER_AGENT,
|
43
44
|
};
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTVDLGNBQWMsRUFBRSxDQUFDO0FBRWpCLE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdoRSxJQUFJLFVBQXNCLENBQUM7QUFDM0IsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUU1QyxNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsT0FBTyxDQUFVLEdBQWUsRUFBRSxPQUF3QjtJQUM5RSxJQUFJLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUN4QixJQUFJLHNCQUFzQixHQUFHLHVCQUF1QixDQUFDLEdBQUcsQ0FBYSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDNUIsc0JBQXNCLEdBQUcsSUFBSSxVQUFVLENBQUM7Z0JBQ3RDLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFO2FBQzVDLENBQUMsQ0FBQztZQUNILHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUNELE9BQU8sTUFBTSxzQkFBc0IsQ0FBQyxPQUFPLENBQUksR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxPQUFPLE1BQU0sb0JBQW9CLEVBQUUsQ0FBQyxPQUFPLENBQUksR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRCwyREFBMkQ7QUFDM0QsUUFBUTtBQUNSLG9DQUFvQztBQUNwQyxvQkFBb0I7QUFDcEIsTUFBTTtBQUNOLE1BQU0sQ0FBQyxLQUFLLFVBQVUsSUFBSSxDQUFVLEdBQWUsRUFBRSxPQUF3QjtJQUMzRSxPQUFPLE1BQU0sT0FBTyxDQUFJLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsT0FBTyxFQUNMLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFDeEMsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQ3hDLE9BQU8sRUFDUCxRQUFRLEVBQ1IsT0FBTyxFQUFFLFFBQVEsR0FDbEIsTUFBTSxRQUFRLENBQUM7QUFDaEIsMkRBQTJEO0FBQzNELE9BQU8sRUFDTCxVQUFVLEVBQUUsVUFBVSxJQUFJLFdBQVcsRUFBRSxpQkFBaUIsSUFBSSxVQUFVLEdBRXZFLE1BQU0saUJBQWlCLENBQUM7QUFlekIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxJQUFJLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RCxlQUFlO0lBQ2IsT0FBTztJQUNQLElBQUk7SUFDSixVQUFVLEVBQUUsaUJBQWlCO0NBQzlCLENBQUMifQ==
|
package/dist/package.json
CHANGED
package/package.json
CHANGED
package/src/FormData.ts
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
import path from 'node:path';
|
2
2
|
import _FormData from 'form-data';
|
3
3
|
|
4
|
+
// eslint-disable-next-line
|
5
|
+
const NON_ASCII_RE = /[^\x00-\x7F]/i;
|
6
|
+
|
4
7
|
export class FormData extends _FormData {
|
5
8
|
_getContentDisposition(value: any, options: any) {
|
6
9
|
// support non-ascii filename
|
@@ -24,7 +27,10 @@ export class FormData extends _FormData {
|
|
24
27
|
if (filename) {
|
25
28
|
// https://datatracker.ietf.org/doc/html/rfc6266#section-4.1
|
26
29
|
// support non-ascii filename
|
27
|
-
contentDisposition = 'filename="' + filename + '"
|
30
|
+
contentDisposition = 'filename="' + filename + '"';
|
31
|
+
if (NON_ASCII_RE.test(filename)) {
|
32
|
+
contentDisposition += '; filename*=UTF-8\'\'' + encodeURIComponent(filename);
|
33
|
+
}
|
28
34
|
}
|
29
35
|
|
30
36
|
return contentDisposition;
|
package/src/index.ts
CHANGED