urllib 3.22.1 → 3.22.2

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.
@@ -67,7 +67,7 @@ class BlobFromStream {
67
67
  return 'Blob';
68
68
  }
69
69
  }
70
- exports.HEADER_USER_AGENT = (0, default_user_agent_1.default)('node-urllib', '3.22.1');
70
+ exports.HEADER_USER_AGENT = (0, default_user_agent_1.default)('node-urllib', '3.22.2');
71
71
  function getFileName(stream) {
72
72
  const filePath = stream.path;
73
73
  if (filePath) {
@@ -56,6 +56,21 @@ node_net_1.Socket.prototype.destroy = function (err) {
56
56
  }
57
57
  return this[kDestroy](err);
58
58
  };
59
+ function getRequestOpaque(request, kHandler) {
60
+ if (!kHandler)
61
+ return;
62
+ const handler = request[kHandler];
63
+ // maxRedirects = 0 will get [Symbol(handler)]: RequestHandler {
64
+ // responseHeaders: null,
65
+ // opaque: {
66
+ // [Symbol(request id)]: 1,
67
+ // [Symbol(request start time)]: 465.0712921619415,
68
+ // [Symbol(enable request timing or not)]: true,
69
+ // [Symbol(request timing)]: [Object],
70
+ // [Symbol(request original opaque)]: undefined
71
+ // }
72
+ return handler?.opts?.opaque ?? handler?.opaque;
73
+ }
59
74
  function initDiagnosticsChannel() {
60
75
  // makre sure init global DiagnosticsChannel once
61
76
  if (initedDiagnosticsChannel)
@@ -75,7 +90,7 @@ function initDiagnosticsChannel() {
75
90
  }
76
91
  }
77
92
  }
78
- const opaque = request[kHandler]?.opts?.opaque;
93
+ const opaque = getRequestOpaque(request, kHandler);
79
94
  // ignore non HttpClient Request
80
95
  if (!opaque || !opaque[symbols_js_1.default.kRequestId])
81
96
  return;
@@ -129,9 +144,7 @@ function initDiagnosticsChannel() {
129
144
  // This message is published right before the first byte of the request is written to the socket.
130
145
  subscribe('undici:client:sendHeaders', (message, name) => {
131
146
  const { request, socket } = message;
132
- if (!kHandler)
133
- return;
134
- const opaque = request[kHandler]?.opts?.opaque;
147
+ const opaque = getRequestOpaque(request, kHandler);
135
148
  if (!opaque || !opaque[symbols_js_1.default.kRequestId])
136
149
  return;
137
150
  socket[symbols_js_1.default.kHandledRequests]++;
@@ -150,9 +163,7 @@ function initDiagnosticsChannel() {
150
163
  });
151
164
  subscribe('undici:request:bodySent', (message, name) => {
152
165
  const { request } = message;
153
- if (!kHandler)
154
- return;
155
- const opaque = request[kHandler]?.opts?.opaque;
166
+ const opaque = getRequestOpaque(request, kHandler);
156
167
  if (!opaque || !opaque[symbols_js_1.default.kRequestId])
157
168
  return;
158
169
  debug('[%s] Request#%d send body', name, opaque[symbols_js_1.default.kRequestId]);
@@ -163,9 +174,7 @@ function initDiagnosticsChannel() {
163
174
  // This message is published after the response headers have been received, i.e. the response has been completed.
164
175
  subscribe('undici:request:headers', (message, name) => {
165
176
  const { request, response } = message;
166
- if (!kHandler)
167
- return;
168
- const opaque = request[kHandler]?.opts?.opaque;
177
+ const opaque = getRequestOpaque(request, kHandler);
169
178
  if (!opaque || !opaque[symbols_js_1.default.kRequestId])
170
179
  return;
171
180
  // get socket from opaque
@@ -179,9 +188,7 @@ function initDiagnosticsChannel() {
179
188
  // This message is published after the response body and trailers have been received, i.e. the response has been completed.
180
189
  subscribe('undici:request:trailers', (message, name) => {
181
190
  const { request } = message;
182
- if (!kHandler)
183
- return;
184
- const opaque = request[kHandler]?.opts?.opaque;
191
+ const opaque = getRequestOpaque(request, kHandler);
185
192
  if (!opaque || !opaque[symbols_js_1.default.kRequestId])
186
193
  return;
187
194
  debug('[%s] Request#%d get response body and trailers', name, opaque[symbols_js_1.default.kRequestId]);
@@ -61,7 +61,7 @@ class BlobFromStream {
61
61
  return 'Blob';
62
62
  }
63
63
  }
64
- export const HEADER_USER_AGENT = createUserAgent('node-urllib', '3.22.1');
64
+ export const HEADER_USER_AGENT = createUserAgent('node-urllib', '3.22.2');
65
65
  function getFileName(stream) {
66
66
  const filePath = stream.path;
67
67
  if (filePath) {
@@ -50,6 +50,21 @@ Socket.prototype.destroy = function (err) {
50
50
  }
51
51
  return this[kDestroy](err);
52
52
  };
53
+ function getRequestOpaque(request, kHandler) {
54
+ if (!kHandler)
55
+ return;
56
+ const handler = request[kHandler];
57
+ // maxRedirects = 0 will get [Symbol(handler)]: RequestHandler {
58
+ // responseHeaders: null,
59
+ // opaque: {
60
+ // [Symbol(request id)]: 1,
61
+ // [Symbol(request start time)]: 465.0712921619415,
62
+ // [Symbol(enable request timing or not)]: true,
63
+ // [Symbol(request timing)]: [Object],
64
+ // [Symbol(request original opaque)]: undefined
65
+ // }
66
+ return handler?.opts?.opaque ?? handler?.opaque;
67
+ }
53
68
  export function initDiagnosticsChannel() {
54
69
  // makre sure init global DiagnosticsChannel once
55
70
  if (initedDiagnosticsChannel)
@@ -69,7 +84,7 @@ export function initDiagnosticsChannel() {
69
84
  }
70
85
  }
71
86
  }
72
- const opaque = request[kHandler]?.opts?.opaque;
87
+ const opaque = getRequestOpaque(request, kHandler);
73
88
  // ignore non HttpClient Request
74
89
  if (!opaque || !opaque[symbols.kRequestId])
75
90
  return;
@@ -123,9 +138,7 @@ export function initDiagnosticsChannel() {
123
138
  // This message is published right before the first byte of the request is written to the socket.
124
139
  subscribe('undici:client:sendHeaders', (message, name) => {
125
140
  const { request, socket } = message;
126
- if (!kHandler)
127
- return;
128
- const opaque = request[kHandler]?.opts?.opaque;
141
+ const opaque = getRequestOpaque(request, kHandler);
129
142
  if (!opaque || !opaque[symbols.kRequestId])
130
143
  return;
131
144
  socket[symbols.kHandledRequests]++;
@@ -144,9 +157,7 @@ export function initDiagnosticsChannel() {
144
157
  });
145
158
  subscribe('undici:request:bodySent', (message, name) => {
146
159
  const { request } = message;
147
- if (!kHandler)
148
- return;
149
- const opaque = request[kHandler]?.opts?.opaque;
160
+ const opaque = getRequestOpaque(request, kHandler);
150
161
  if (!opaque || !opaque[symbols.kRequestId])
151
162
  return;
152
163
  debug('[%s] Request#%d send body', name, opaque[symbols.kRequestId]);
@@ -157,9 +168,7 @@ export function initDiagnosticsChannel() {
157
168
  // This message is published after the response headers have been received, i.e. the response has been completed.
158
169
  subscribe('undici:request:headers', (message, name) => {
159
170
  const { request, response } = message;
160
- if (!kHandler)
161
- return;
162
- const opaque = request[kHandler]?.opts?.opaque;
171
+ const opaque = getRequestOpaque(request, kHandler);
163
172
  if (!opaque || !opaque[symbols.kRequestId])
164
173
  return;
165
174
  // get socket from opaque
@@ -173,9 +182,7 @@ export function initDiagnosticsChannel() {
173
182
  // This message is published after the response body and trailers have been received, i.e. the response has been completed.
174
183
  subscribe('undici:request:trailers', (message, name) => {
175
184
  const { request } = message;
176
- if (!kHandler)
177
- return;
178
- const opaque = request[kHandler]?.opts?.opaque;
185
+ const opaque = getRequestOpaque(request, kHandler);
179
186
  if (!opaque || !opaque[symbols.kRequestId])
180
187
  return;
181
188
  debug('[%s] Request#%d get response body and trailers', name, opaque[symbols.kRequestId]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "urllib",
3
- "version": "3.22.1",
3
+ "version": "3.22.2",
4
4
  "publishConfig": {
5
5
  "tag": "latest"
6
6
  },
@@ -55,7 +55,7 @@
55
55
  "pump": "^3.0.0",
56
56
  "qs": "^6.11.2",
57
57
  "type-fest": "^4.3.1",
58
- "undici": "^5.22.1",
58
+ "undici": "^5.28.2",
59
59
  "ylru": "^1.3.2"
60
60
  },
61
61
  "devDependencies": {
@@ -54,6 +54,21 @@ Socket.prototype.destroy = function(err?: any) {
54
54
  return this[kDestroy](err);
55
55
  };
56
56
 
57
+ function getRequestOpaque(request: DiagnosticsChannel.Request, kHandler?: symbol) {
58
+ if (!kHandler) return;
59
+ const handler = request[kHandler];
60
+ // maxRedirects = 0 will get [Symbol(handler)]: RequestHandler {
61
+ // responseHeaders: null,
62
+ // opaque: {
63
+ // [Symbol(request id)]: 1,
64
+ // [Symbol(request start time)]: 465.0712921619415,
65
+ // [Symbol(enable request timing or not)]: true,
66
+ // [Symbol(request timing)]: [Object],
67
+ // [Symbol(request original opaque)]: undefined
68
+ // }
69
+ return handler?.opts?.opaque ?? handler?.opaque;
70
+ }
71
+
57
72
  export function initDiagnosticsChannel() {
58
73
  // makre sure init global DiagnosticsChannel once
59
74
  if (initedDiagnosticsChannel) return;
@@ -73,7 +88,7 @@ export function initDiagnosticsChannel() {
73
88
  }
74
89
  }
75
90
  }
76
- const opaque = request[kHandler]?.opts?.opaque;
91
+ const opaque = getRequestOpaque(request, kHandler);
77
92
  // ignore non HttpClient Request
78
93
  if (!opaque || !opaque[symbols.kRequestId]) return;
79
94
  debug('[%s] Request#%d %s %s, path: %s, headers: %o',
@@ -131,8 +146,7 @@ export function initDiagnosticsChannel() {
131
146
  // This message is published right before the first byte of the request is written to the socket.
132
147
  subscribe('undici:client:sendHeaders', (message, name) => {
133
148
  const { request, socket } = message as DiagnosticsChannel.ClientSendHeadersMessage;
134
- if (!kHandler) return;
135
- const opaque = request[kHandler]?.opts?.opaque;
149
+ const opaque = getRequestOpaque(request, kHandler);
136
150
  if (!opaque || !opaque[symbols.kRequestId]) return;
137
151
 
138
152
  socket[symbols.kHandledRequests]++;
@@ -154,8 +168,7 @@ export function initDiagnosticsChannel() {
154
168
 
155
169
  subscribe('undici:request:bodySent', (message, name) => {
156
170
  const { request } = message as DiagnosticsChannel.RequestBodySentMessage;
157
- if (!kHandler) return;
158
- const opaque = request[kHandler]?.opts?.opaque;
171
+ const opaque = getRequestOpaque(request, kHandler);
159
172
  if (!opaque || !opaque[symbols.kRequestId]) return;
160
173
 
161
174
  debug('[%s] Request#%d send body', name, opaque[symbols.kRequestId]);
@@ -166,8 +179,7 @@ export function initDiagnosticsChannel() {
166
179
  // This message is published after the response headers have been received, i.e. the response has been completed.
167
180
  subscribe('undici:request:headers', (message, name) => {
168
181
  const { request, response } = message as DiagnosticsChannel.RequestHeadersMessage;
169
- if (!kHandler) return;
170
- const opaque = request[kHandler]?.opts?.opaque;
182
+ const opaque = getRequestOpaque(request, kHandler);
171
183
  if (!opaque || !opaque[symbols.kRequestId]) return;
172
184
 
173
185
  // get socket from opaque
@@ -184,8 +196,7 @@ export function initDiagnosticsChannel() {
184
196
  // This message is published after the response body and trailers have been received, i.e. the response has been completed.
185
197
  subscribe('undici:request:trailers', (message, name) => {
186
198
  const { request } = message as DiagnosticsChannel.RequestTrailersMessage;
187
- if (!kHandler) return;
188
- const opaque = request[kHandler]?.opts?.opaque;
199
+ const opaque = getRequestOpaque(request, kHandler);
189
200
  if (!opaque || !opaque[symbols.kRequestId]) return;
190
201
 
191
202
  debug('[%s] Request#%d get response body and trailers', name, opaque[symbols.kRequestId]);