urllib 4.6.2 → 4.6.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.
@@ -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 + '"; filename*=UTF-8\'\'' + encodeURIComponent(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybURhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRm9ybURhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMERBQTZCO0FBQzdCLDBEQUFrQztBQUVsQyxNQUFhLFFBQVMsU0FBUSxtQkFBUztJQUNyQyxzQkFBc0IsQ0FBQyxLQUFVLEVBQUUsT0FBWTtRQUM3Qyw2QkFBNkI7UUFDN0Isa0RBQWtEO1FBQ2xELElBQUksUUFBUSxDQUFDO1FBQ2IsSUFBSSxrQkFBa0IsQ0FBQztRQUV2QixJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN6QyxxQ0FBcUM7WUFDckMsUUFBUSxHQUFHLG1CQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEQsa0NBQWtDO1lBQ2xDLGlEQUFpRDtZQUNqRCw4Q0FBOEM7WUFDOUMsUUFBUSxHQUFHLG1CQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekUsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDakUsdUJBQXVCO1lBQ3ZCLFFBQVEsR0FBRyxtQkFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUVELElBQUksUUFBUSxFQUFFLENBQUM7WUFDYiw0REFBNEQ7WUFDNUQsNkJBQTZCO1lBQzdCLGtCQUFrQixHQUFHLFlBQVksR0FBRyxRQUFRLEdBQUcsd0JBQXdCLEdBQUcsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekcsQ0FBQztRQUVELE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBNUJELDRCQTRCQyJ9
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.2';
39
+ exports.VERSION = '4.6.3';
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) {
@@ -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 + '"; filename*=UTF-8\'\'' + encodeURIComponent(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybURhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRm9ybURhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUVsQyxNQUFNLE9BQU8sUUFBUyxTQUFRLFNBQVM7SUFDckMsc0JBQXNCLENBQUMsS0FBVSxFQUFFLE9BQVk7UUFDN0MsNkJBQTZCO1FBQzdCLGtEQUFrRDtRQUNsRCxJQUFJLFFBQVEsQ0FBQztRQUNiLElBQUksa0JBQWtCLENBQUM7UUFFdkIsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDekMscUNBQXFDO1lBQ3JDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEQsa0NBQWtDO1lBQ2xDLGlEQUFpRDtZQUNqRCw4Q0FBOEM7WUFDOUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RSxDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUNqRSx1QkFBdUI7WUFDdkIsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFFRCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsNERBQTREO1lBQzVELDZCQUE2QjtZQUM3QixrQkFBa0IsR0FBRyxZQUFZLEdBQUcsUUFBUSxHQUFHLHdCQUF3QixHQUFHLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pHLENBQUM7UUFFRCxPQUFPLGtCQUFrQixDQUFDO0lBQzVCLENBQUM7Q0FDRiJ9
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybURhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRm9ybURhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUVsQywyQkFBMkI7QUFDM0IsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDO0FBRXJDLE1BQU0sT0FBTyxRQUFTLFNBQVEsU0FBUztJQUNyQyxzQkFBc0IsQ0FBQyxLQUFVLEVBQUUsT0FBWTtRQUM3Qyw2QkFBNkI7UUFDN0Isa0RBQWtEO1FBQ2xELElBQUksUUFBUSxDQUFDO1FBQ2IsSUFBSSxrQkFBa0IsQ0FBQztRQUV2QixJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN6QyxxQ0FBcUM7WUFDckMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEUsQ0FBQzthQUFNLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4RCxrQ0FBa0M7WUFDbEMsaURBQWlEO1lBQ2pELDhDQUE4QztZQUM5QyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pFLENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ2pFLHVCQUF1QjtZQUN2QixRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUVELElBQUksUUFBUSxFQUFFLENBQUM7WUFDYiw0REFBNEQ7WUFDNUQsNkJBQTZCO1lBQzdCLGtCQUFrQixHQUFHLFlBQVksR0FBRyxRQUFRLEdBQUcsR0FBRyxDQUFDO1lBQ25ELElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUNoQyxrQkFBa0IsSUFBSSx1QkFBdUIsR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvRSxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztDQUNGIn0=
@@ -30,7 +30,7 @@ function noop() {
30
30
  // noop
31
31
  }
32
32
  const debug = debuglog('urllib:HttpClient');
33
- export const VERSION = '4.6.2';
33
+ export const VERSION = '4.6.3';
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/package.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "urllib",
3
- "version": "4.6.2"
3
+ "version": "4.6.3"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "urllib",
3
- "version": "4.6.2",
3
+ "version": "4.6.3",
4
4
  "publishConfig": {
5
5
  "tag": "latest"
6
6
  },
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 + '"; filename*=UTF-8\'\'' + encodeURIComponent(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;