urllib 3.24.0 → 3.25.1
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.
@@ -68,7 +68,7 @@ class BlobFromStream {
|
|
68
68
|
return 'Blob';
|
69
69
|
}
|
70
70
|
}
|
71
|
-
exports.HEADER_USER_AGENT = (0, default_user_agent_1.default)('node-urllib', '3.
|
71
|
+
exports.HEADER_USER_AGENT = (0, default_user_agent_1.default)('node-urllib', '3.25.1');
|
72
72
|
function getFileName(stream) {
|
73
73
|
const filePath = stream.path;
|
74
74
|
if (filePath) {
|
@@ -356,7 +356,8 @@ class HttpClient extends node_events_1.EventEmitter {
|
|
356
356
|
}
|
357
357
|
else if (typeof args.files === 'object') {
|
358
358
|
for (const field in args.files) {
|
359
|
-
|
359
|
+
// set custom fileName
|
360
|
+
uploadFiles.push([field, args.files[field], field]);
|
360
361
|
}
|
361
362
|
}
|
362
363
|
// set normal fields first
|
@@ -365,7 +366,7 @@ class HttpClient extends node_events_1.EventEmitter {
|
|
365
366
|
formData.append(field, args.data[field]);
|
366
367
|
}
|
367
368
|
}
|
368
|
-
for (const [index, [field, file]] of uploadFiles.entries()) {
|
369
|
+
for (const [index, [field, file, customFileName]] of uploadFiles.entries()) {
|
369
370
|
if (typeof file === 'string') {
|
370
371
|
// FIXME: support non-ascii filename
|
371
372
|
// const fileName = encodeURIComponent(basename(file));
|
@@ -375,10 +376,10 @@ class HttpClient extends node_events_1.EventEmitter {
|
|
375
376
|
formData.append(field, new BlobFromStream(fileReadable, mime_types_1.default.lookup(fileName) || ''), fileName);
|
376
377
|
}
|
377
378
|
else if (Buffer.isBuffer(file)) {
|
378
|
-
formData.append(field, new node_buffer_1.Blob([file]), `bufferfile${index}`);
|
379
|
+
formData.append(field, new node_buffer_1.Blob([file]), customFileName || `bufferfile${index}`);
|
379
380
|
}
|
380
381
|
else if (file instanceof node_stream_1.Readable || (0, utils_js_1.isReadable)(file)) {
|
381
|
-
const fileName = getFileName(file) || `streamfile${index}`;
|
382
|
+
const fileName = getFileName(file) || customFileName || `streamfile${index}`;
|
382
383
|
formData.append(field, new BlobFromStream(file, mime_types_1.default.lookup(fileName) || ''), fileName);
|
383
384
|
isStreamingRequest = true;
|
384
385
|
}
|
@@ -179,8 +179,13 @@ function initDiagnosticsChannel() {
|
|
179
179
|
return;
|
180
180
|
// get socket from opaque
|
181
181
|
const socket = opaque[symbols_js_1.default.kRequestSocket];
|
182
|
-
socket
|
183
|
-
|
182
|
+
if (socket) {
|
183
|
+
socket[symbols_js_1.default.kHandledResponses]++;
|
184
|
+
debug('[%s] Request#%d get %s response headers on Socket#%d (handled %d responses, sock: %o)', name, opaque[symbols_js_1.default.kRequestId], response.statusCode, socket[symbols_js_1.default.kSocketId], socket[symbols_js_1.default.kHandledResponses], formatSocket(socket));
|
185
|
+
}
|
186
|
+
else {
|
187
|
+
debug('[%s] Request#%d get %s response headers on Unknown Socket', name, opaque[symbols_js_1.default.kRequestId], response.statusCode);
|
188
|
+
}
|
184
189
|
if (!opaque[symbols_js_1.default.kEnableRequestTiming])
|
185
190
|
return;
|
186
191
|
opaque[symbols_js_1.default.kRequestTiming].waiting = (0, utils_js_1.performanceTime)(opaque[symbols_js_1.default.kRequestStartTime]);
|
@@ -189,8 +194,9 @@ function initDiagnosticsChannel() {
|
|
189
194
|
subscribe('undici:request:trailers', (message, name) => {
|
190
195
|
const { request } = message;
|
191
196
|
const opaque = getRequestOpaque(request, kHandler);
|
192
|
-
if (!opaque || !opaque[symbols_js_1.default.kRequestId])
|
197
|
+
if (!opaque || !opaque[symbols_js_1.default.kRequestId]) {
|
193
198
|
return;
|
199
|
+
}
|
194
200
|
debug('[%s] Request#%d get response body and trailers', name, opaque[symbols_js_1.default.kRequestId]);
|
195
201
|
if (!opaque[symbols_js_1.default.kEnableRequestTiming])
|
196
202
|
return;
|
package/dist/esm/HttpClient.js
CHANGED
@@ -62,7 +62,7 @@ class BlobFromStream {
|
|
62
62
|
return 'Blob';
|
63
63
|
}
|
64
64
|
}
|
65
|
-
export const HEADER_USER_AGENT = createUserAgent('node-urllib', '3.
|
65
|
+
export const HEADER_USER_AGENT = createUserAgent('node-urllib', '3.25.1');
|
66
66
|
function getFileName(stream) {
|
67
67
|
const filePath = stream.path;
|
68
68
|
if (filePath) {
|
@@ -350,7 +350,8 @@ export class HttpClient extends EventEmitter {
|
|
350
350
|
}
|
351
351
|
else if (typeof args.files === 'object') {
|
352
352
|
for (const field in args.files) {
|
353
|
-
|
353
|
+
// set custom fileName
|
354
|
+
uploadFiles.push([field, args.files[field], field]);
|
354
355
|
}
|
355
356
|
}
|
356
357
|
// set normal fields first
|
@@ -359,7 +360,7 @@ export class HttpClient extends EventEmitter {
|
|
359
360
|
formData.append(field, args.data[field]);
|
360
361
|
}
|
361
362
|
}
|
362
|
-
for (const [index, [field, file]] of uploadFiles.entries()) {
|
363
|
+
for (const [index, [field, file, customFileName]] of uploadFiles.entries()) {
|
363
364
|
if (typeof file === 'string') {
|
364
365
|
// FIXME: support non-ascii filename
|
365
366
|
// const fileName = encodeURIComponent(basename(file));
|
@@ -369,10 +370,10 @@ export class HttpClient extends EventEmitter {
|
|
369
370
|
formData.append(field, new BlobFromStream(fileReadable, mime.lookup(fileName) || ''), fileName);
|
370
371
|
}
|
371
372
|
else if (Buffer.isBuffer(file)) {
|
372
|
-
formData.append(field, new Blob([file]), `bufferfile${index}`);
|
373
|
+
formData.append(field, new Blob([file]), customFileName || `bufferfile${index}`);
|
373
374
|
}
|
374
375
|
else if (file instanceof Readable || isReadable(file)) {
|
375
|
-
const fileName = getFileName(file) || `streamfile${index}`;
|
376
|
+
const fileName = getFileName(file) || customFileName || `streamfile${index}`;
|
376
377
|
formData.append(field, new BlobFromStream(file, mime.lookup(fileName) || ''), fileName);
|
377
378
|
isStreamingRequest = true;
|
378
379
|
}
|
@@ -173,8 +173,13 @@ export function initDiagnosticsChannel() {
|
|
173
173
|
return;
|
174
174
|
// get socket from opaque
|
175
175
|
const socket = opaque[symbols.kRequestSocket];
|
176
|
-
socket
|
177
|
-
|
176
|
+
if (socket) {
|
177
|
+
socket[symbols.kHandledResponses]++;
|
178
|
+
debug('[%s] Request#%d get %s response headers on Socket#%d (handled %d responses, sock: %o)', name, opaque[symbols.kRequestId], response.statusCode, socket[symbols.kSocketId], socket[symbols.kHandledResponses], formatSocket(socket));
|
179
|
+
}
|
180
|
+
else {
|
181
|
+
debug('[%s] Request#%d get %s response headers on Unknown Socket', name, opaque[symbols.kRequestId], response.statusCode);
|
182
|
+
}
|
178
183
|
if (!opaque[symbols.kEnableRequestTiming])
|
179
184
|
return;
|
180
185
|
opaque[symbols.kRequestTiming].waiting = performanceTime(opaque[symbols.kRequestStartTime]);
|
@@ -183,8 +188,9 @@ export function initDiagnosticsChannel() {
|
|
183
188
|
subscribe('undici:request:trailers', (message, name) => {
|
184
189
|
const { request } = message;
|
185
190
|
const opaque = getRequestOpaque(request, kHandler);
|
186
|
-
if (!opaque || !opaque[symbols.kRequestId])
|
191
|
+
if (!opaque || !opaque[symbols.kRequestId]) {
|
187
192
|
return;
|
193
|
+
}
|
188
194
|
debug('[%s] Request#%d get response body and trailers', name, opaque[symbols.kRequestId]);
|
189
195
|
if (!opaque[symbols.kEnableRequestTiming])
|
190
196
|
return;
|
package/package.json
CHANGED
package/src/HttpClient.ts
CHANGED
@@ -440,7 +440,7 @@ export class HttpClient extends EventEmitter {
|
|
440
440
|
requestOptions.method = 'POST';
|
441
441
|
}
|
442
442
|
const formData = new FormData();
|
443
|
-
const uploadFiles: [string, string | Readable | Buffer][] = [];
|
443
|
+
const uploadFiles: [string, string | Readable | Buffer, string?][] = [];
|
444
444
|
if (Array.isArray(args.files)) {
|
445
445
|
for (const [ index, file ] of args.files.entries()) {
|
446
446
|
const field = index === 0 ? 'file' : `file${index}`;
|
@@ -452,7 +452,8 @@ export class HttpClient extends EventEmitter {
|
|
452
452
|
uploadFiles.push([ 'file', args.files ]);
|
453
453
|
} else if (typeof args.files === 'object') {
|
454
454
|
for (const field in args.files) {
|
455
|
-
|
455
|
+
// set custom fileName
|
456
|
+
uploadFiles.push([ field, args.files[field], field ]);
|
456
457
|
}
|
457
458
|
}
|
458
459
|
// set normal fields first
|
@@ -461,7 +462,7 @@ export class HttpClient extends EventEmitter {
|
|
461
462
|
formData.append(field, args.data[field]);
|
462
463
|
}
|
463
464
|
}
|
464
|
-
for (const [ index, [ field, file ]] of uploadFiles.entries()) {
|
465
|
+
for (const [ index, [ field, file, customFileName ]] of uploadFiles.entries()) {
|
465
466
|
if (typeof file === 'string') {
|
466
467
|
// FIXME: support non-ascii filename
|
467
468
|
// const fileName = encodeURIComponent(basename(file));
|
@@ -470,9 +471,9 @@ export class HttpClient extends EventEmitter {
|
|
470
471
|
const fileReadable = createReadStream(file);
|
471
472
|
formData.append(field, new BlobFromStream(fileReadable, mime.lookup(fileName) || ''), fileName);
|
472
473
|
} else if (Buffer.isBuffer(file)) {
|
473
|
-
formData.append(field, new Blob([ file ]), `bufferfile${index}`);
|
474
|
+
formData.append(field, new Blob([ file ]), customFileName || `bufferfile${index}`);
|
474
475
|
} else if (file instanceof Readable || isReadable(file as any)) {
|
475
|
-
const fileName = getFileName(file) || `streamfile${index}`;
|
476
|
+
const fileName = getFileName(file) || customFileName || `streamfile${index}`;
|
476
477
|
formData.append(field, new BlobFromStream(file, mime.lookup(fileName) || ''), fileName);
|
477
478
|
isStreamingRequest = true;
|
478
479
|
}
|
@@ -184,10 +184,15 @@ export function initDiagnosticsChannel() {
|
|
184
184
|
|
185
185
|
// get socket from opaque
|
186
186
|
const socket = opaque[symbols.kRequestSocket];
|
187
|
-
socket
|
188
|
-
|
189
|
-
|
190
|
-
|
187
|
+
if (socket) {
|
188
|
+
socket[symbols.kHandledResponses]++;
|
189
|
+
debug('[%s] Request#%d get %s response headers on Socket#%d (handled %d responses, sock: %o)',
|
190
|
+
name, opaque[symbols.kRequestId], response.statusCode, socket[symbols.kSocketId], socket[symbols.kHandledResponses],
|
191
|
+
formatSocket(socket));
|
192
|
+
} else {
|
193
|
+
debug('[%s] Request#%d get %s response headers on Unknown Socket',
|
194
|
+
name, opaque[symbols.kRequestId], response.statusCode);
|
195
|
+
}
|
191
196
|
|
192
197
|
if (!opaque[symbols.kEnableRequestTiming]) return;
|
193
198
|
opaque[symbols.kRequestTiming].waiting = performanceTime(opaque[symbols.kRequestStartTime]);
|
@@ -197,7 +202,9 @@ export function initDiagnosticsChannel() {
|
|
197
202
|
subscribe('undici:request:trailers', (message, name) => {
|
198
203
|
const { request } = message as DiagnosticsChannel.RequestTrailersMessage;
|
199
204
|
const opaque = getRequestOpaque(request, kHandler);
|
200
|
-
if (!opaque || !opaque[symbols.kRequestId])
|
205
|
+
if (!opaque || !opaque[symbols.kRequestId]) {
|
206
|
+
return;
|
207
|
+
}
|
201
208
|
|
202
209
|
debug('[%s] Request#%d get response body and trailers', name, opaque[symbols.kRequestId]);
|
203
210
|
|