modelstat 0.13.0 → 0.14.0

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/cli.mjs CHANGED
@@ -10742,10 +10742,10 @@ var require_util = __commonJS({
10742
10742
  }
10743
10743
  return obj;
10744
10744
  }
10745
- function errorRequest(client, request3, err) {
10745
+ function errorRequest(client, request4, err) {
10746
10746
  try {
10747
- request3.onError(err);
10748
- assert(request3.aborted);
10747
+ request4.onError(err);
10748
+ assert(request4.aborted);
10749
10749
  } catch (err2) {
10750
10750
  client.emit("error", err2);
10751
10751
  }
@@ -11407,7 +11407,7 @@ var require_request = __commonJS({
11407
11407
  return this;
11408
11408
  }
11409
11409
  };
11410
- function processHeader(request3, key, val) {
11410
+ function processHeader(request4, key, val) {
11411
11411
  if (val && (typeof val === "object" && !Array.isArray(val))) {
11412
11412
  throw new InvalidArgumentError(`invalid ${key} header`);
11413
11413
  } else if (val === void 0) {
@@ -11447,24 +11447,24 @@ var require_request = __commonJS({
11447
11447
  val = `${val}`;
11448
11448
  }
11449
11449
  if (headerName === "host") {
11450
- if (request3.host !== null) {
11450
+ if (request4.host !== null) {
11451
11451
  throw new InvalidArgumentError("duplicate host header");
11452
11452
  }
11453
11453
  if (typeof val !== "string") {
11454
11454
  throw new InvalidArgumentError("invalid host header");
11455
11455
  }
11456
- request3.host = val;
11456
+ request4.host = val;
11457
11457
  } else if (headerName === "content-length") {
11458
- if (request3.contentLength !== null) {
11458
+ if (request4.contentLength !== null) {
11459
11459
  throw new InvalidArgumentError("duplicate content-length header");
11460
11460
  }
11461
- request3.contentLength = parseInt(val, 10);
11462
- if (!Number.isFinite(request3.contentLength)) {
11461
+ request4.contentLength = parseInt(val, 10);
11462
+ if (!Number.isFinite(request4.contentLength)) {
11463
11463
  throw new InvalidArgumentError("invalid content-length header");
11464
11464
  }
11465
- } else if (request3.contentType === null && headerName === "content-type") {
11466
- request3.contentType = val;
11467
- request3.headers.push(key, val);
11465
+ } else if (request4.contentType === null && headerName === "content-type") {
11466
+ request4.contentType = val;
11467
+ request4.headers.push(key, val);
11468
11468
  } else if (headerName === "transfer-encoding" || headerName === "keep-alive" || headerName === "upgrade") {
11469
11469
  throw new InvalidArgumentError(`invalid ${headerName} header`);
11470
11470
  } else if (headerName === "connection") {
@@ -11478,13 +11478,13 @@ var require_request = __commonJS({
11478
11478
  throw new InvalidArgumentError("invalid connection header");
11479
11479
  }
11480
11480
  if (trimmed === "close") {
11481
- request3.reset = true;
11481
+ request4.reset = true;
11482
11482
  }
11483
11483
  }
11484
11484
  } else if (headerName === "expect") {
11485
11485
  throw new NotSupportedError("expect header not supported");
11486
11486
  } else {
11487
- request3.headers.push(key, val);
11487
+ request4.headers.push(key, val);
11488
11488
  }
11489
11489
  }
11490
11490
  module.exports = Request;
@@ -11732,9 +11732,9 @@ var require_dispatcher_base = __commonJS({
11732
11732
  }
11733
11733
  close(callback) {
11734
11734
  if (callback === void 0) {
11735
- return new Promise((resolve6, reject) => {
11735
+ return new Promise((resolve7, reject) => {
11736
11736
  this.close((err, data) => {
11737
- return err ? reject(err) : resolve6(data);
11737
+ return err ? reject(err) : resolve7(data);
11738
11738
  });
11739
11739
  });
11740
11740
  }
@@ -11772,9 +11772,9 @@ var require_dispatcher_base = __commonJS({
11772
11772
  err = null;
11773
11773
  }
11774
11774
  if (callback === void 0) {
11775
- return new Promise((resolve6, reject) => {
11775
+ return new Promise((resolve7, reject) => {
11776
11776
  this.destroy(err, (err2, data) => {
11777
- return err2 ? reject(err2) : resolve6(data);
11777
+ return err2 ? reject(err2) : resolve7(data);
11778
11778
  });
11779
11779
  });
11780
11780
  }
@@ -14040,11 +14040,11 @@ var require_util2 = __commonJS({
14040
14040
  function normalizeBinaryStringToUtf8(value) {
14041
14041
  return Buffer.from(value, "binary").toString("utf8");
14042
14042
  }
14043
- function requestCurrentURL(request3) {
14044
- return request3.urlList[request3.urlList.length - 1];
14043
+ function requestCurrentURL(request4) {
14044
+ return request4.urlList[request4.urlList.length - 1];
14045
14045
  }
14046
- function requestBadPort(request3) {
14047
- const url = requestCurrentURL(request3);
14046
+ function requestBadPort(request4) {
14047
+ const url = requestCurrentURL(request4);
14048
14048
  if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) {
14049
14049
  return "blocked";
14050
14050
  }
@@ -14082,10 +14082,10 @@ var require_util2 = __commonJS({
14082
14082
  }
14083
14083
  return policy;
14084
14084
  }
14085
- function setRequestReferrerPolicyOnRedirect(request3, actualResponse) {
14085
+ function setRequestReferrerPolicyOnRedirect(request4, actualResponse) {
14086
14086
  const policy = parseReferrerPolicy(actualResponse);
14087
14087
  if (policy !== "") {
14088
- request3.referrerPolicy = policy;
14088
+ request4.referrerPolicy = policy;
14089
14089
  }
14090
14090
  }
14091
14091
  function crossOriginResourcePolicyCheck() {
@@ -14102,33 +14102,33 @@ var require_util2 = __commonJS({
14102
14102
  header = httpRequest.mode;
14103
14103
  httpRequest.headersList.set("sec-fetch-mode", header, true);
14104
14104
  }
14105
- function appendRequestOriginHeader(request3) {
14106
- let serializedOrigin = request3.origin;
14105
+ function appendRequestOriginHeader(request4) {
14106
+ let serializedOrigin = request4.origin;
14107
14107
  if (serializedOrigin === "client" || serializedOrigin === void 0) {
14108
14108
  return;
14109
14109
  }
14110
- if (request3.responseTainting === "cors" || request3.mode === "websocket") {
14111
- request3.headersList.append("origin", serializedOrigin, true);
14112
- } else if (request3.method !== "GET" && request3.method !== "HEAD") {
14113
- switch (request3.referrerPolicy) {
14110
+ if (request4.responseTainting === "cors" || request4.mode === "websocket") {
14111
+ request4.headersList.append("origin", serializedOrigin, true);
14112
+ } else if (request4.method !== "GET" && request4.method !== "HEAD") {
14113
+ switch (request4.referrerPolicy) {
14114
14114
  case "no-referrer":
14115
14115
  serializedOrigin = null;
14116
14116
  break;
14117
14117
  case "no-referrer-when-downgrade":
14118
14118
  case "strict-origin":
14119
14119
  case "strict-origin-when-cross-origin":
14120
- if (request3.origin && urlHasHttpsScheme(request3.origin) && !urlHasHttpsScheme(requestCurrentURL(request3))) {
14120
+ if (request4.origin && urlHasHttpsScheme(request4.origin) && !urlHasHttpsScheme(requestCurrentURL(request4))) {
14121
14121
  serializedOrigin = null;
14122
14122
  }
14123
14123
  break;
14124
14124
  case "same-origin":
14125
- if (!sameOrigin(request3, requestCurrentURL(request3))) {
14125
+ if (!sameOrigin(request4, requestCurrentURL(request4))) {
14126
14126
  serializedOrigin = null;
14127
14127
  }
14128
14128
  break;
14129
14129
  default:
14130
14130
  }
14131
- request3.headersList.append("origin", serializedOrigin, true);
14131
+ request4.headersList.append("origin", serializedOrigin, true);
14132
14132
  }
14133
14133
  }
14134
14134
  function coarsenTime(timestamp, crossOriginIsolatedCapability) {
@@ -14182,18 +14182,18 @@ var require_util2 = __commonJS({
14182
14182
  referrerPolicy: policyContainer.referrerPolicy
14183
14183
  };
14184
14184
  }
14185
- function determineRequestsReferrer(request3) {
14186
- const policy = request3.referrerPolicy;
14185
+ function determineRequestsReferrer(request4) {
14186
+ const policy = request4.referrerPolicy;
14187
14187
  assert(policy);
14188
14188
  let referrerSource = null;
14189
- if (request3.referrer === "client") {
14189
+ if (request4.referrer === "client") {
14190
14190
  const globalOrigin = getGlobalOrigin();
14191
14191
  if (!globalOrigin || globalOrigin.origin === "null") {
14192
14192
  return "no-referrer";
14193
14193
  }
14194
14194
  referrerSource = new URL(globalOrigin);
14195
- } else if (webidl.is.URL(request3.referrer)) {
14196
- referrerSource = request3.referrer;
14195
+ } else if (webidl.is.URL(request4.referrer)) {
14196
+ referrerSource = request4.referrer;
14197
14197
  }
14198
14198
  let referrerURL = stripURLForReferrer(referrerSource);
14199
14199
  const referrerOrigin = stripURLForReferrer(referrerSource, true);
@@ -14211,14 +14211,14 @@ var require_util2 = __commonJS({
14211
14211
  case "unsafe-url":
14212
14212
  return referrerURL;
14213
14213
  case "strict-origin": {
14214
- const currentURL = requestCurrentURL(request3);
14214
+ const currentURL = requestCurrentURL(request4);
14215
14215
  if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {
14216
14216
  return "no-referrer";
14217
14217
  }
14218
14218
  return referrerOrigin;
14219
14219
  }
14220
14220
  case "strict-origin-when-cross-origin": {
14221
- const currentURL = requestCurrentURL(request3);
14221
+ const currentURL = requestCurrentURL(request4);
14222
14222
  if (sameOrigin(referrerURL, currentURL)) {
14223
14223
  return referrerURL;
14224
14224
  }
@@ -14228,17 +14228,17 @@ var require_util2 = __commonJS({
14228
14228
  return referrerOrigin;
14229
14229
  }
14230
14230
  case "same-origin":
14231
- if (sameOrigin(request3, referrerURL)) {
14231
+ if (sameOrigin(request4, referrerURL)) {
14232
14232
  return referrerURL;
14233
14233
  }
14234
14234
  return "no-referrer";
14235
14235
  case "origin-when-cross-origin":
14236
- if (sameOrigin(request3, referrerURL)) {
14236
+ if (sameOrigin(request4, referrerURL)) {
14237
14237
  return referrerURL;
14238
14238
  }
14239
14239
  return referrerOrigin;
14240
14240
  case "no-referrer-when-downgrade": {
14241
- const currentURL = requestCurrentURL(request3);
14241
+ const currentURL = requestCurrentURL(request4);
14242
14242
  if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {
14243
14243
  return "no-referrer";
14244
14244
  }
@@ -14305,7 +14305,7 @@ var require_util2 = __commonJS({
14305
14305
  if (url.protocol === "blob:") return true;
14306
14306
  return isOriginPotentiallyTrustworthy(url.origin);
14307
14307
  }
14308
- function tryUpgradeRequestToAPotentiallyTrustworthyURL(request3) {
14308
+ function tryUpgradeRequestToAPotentiallyTrustworthyURL(request4) {
14309
14309
  }
14310
14310
  function sameOrigin(A, B) {
14311
14311
  if (A.origin === B.origin && A.origin === "null") {
@@ -14684,7 +14684,7 @@ var require_util2 = __commonJS({
14684
14684
  }
14685
14685
  return gettingDecodingSplitting(value);
14686
14686
  }
14687
- function hasAuthenticationEntry(request3) {
14687
+ function hasAuthenticationEntry(request4) {
14688
14688
  return false;
14689
14689
  }
14690
14690
  function includesCredentials(url) {
@@ -15251,8 +15251,8 @@ var require_promise = __commonJS({
15251
15251
  function createDeferredPromise() {
15252
15252
  let res;
15253
15253
  let rej;
15254
- const promise = new Promise((resolve6, reject) => {
15255
- res = resolve6;
15254
+ const promise = new Promise((resolve7, reject) => {
15255
+ res = resolve7;
15256
15256
  rej = reject;
15257
15257
  });
15258
15258
  return { promise, resolve: res, reject: rej };
@@ -15869,11 +15869,11 @@ var require_client_h1 = __commonJS({
15869
15869
  if (socket.destroyed) {
15870
15870
  return -1;
15871
15871
  }
15872
- const request3 = client[kQueue][client[kRunningIdx]];
15873
- if (!request3) {
15872
+ const request4 = client[kQueue][client[kRunningIdx]];
15873
+ if (!request4) {
15874
15874
  return -1;
15875
15875
  }
15876
- request3.onResponseStarted();
15876
+ request4.onResponseStarted();
15877
15877
  return 0;
15878
15878
  }
15879
15879
  /**
@@ -15935,9 +15935,9 @@ var require_client_h1 = __commonJS({
15935
15935
  assert(!socket.destroyed);
15936
15936
  assert(!this.paused);
15937
15937
  assert((headers.length & 1) === 0);
15938
- const request3 = client[kQueue][client[kRunningIdx]];
15939
- assert(request3);
15940
- assert(request3.upgrade || request3.method === "CONNECT");
15938
+ const request4 = client[kQueue][client[kRunningIdx]];
15939
+ assert(request4);
15940
+ assert(request4.upgrade || request4.method === "CONNECT");
15941
15941
  this.statusCode = 0;
15942
15942
  this.statusText = "";
15943
15943
  this.shouldKeepAlive = false;
@@ -15954,7 +15954,7 @@ var require_client_h1 = __commonJS({
15954
15954
  client[kQueue][client[kRunningIdx]++] = null;
15955
15955
  client.emit("disconnect", client[kUrl], [client], new InformationalError("upgrade"));
15956
15956
  try {
15957
- request3.onUpgrade(statusCode, headers, socket);
15957
+ request4.onUpgrade(statusCode, headers, socket);
15958
15958
  } catch (err) {
15959
15959
  util2.destroy(socket, err);
15960
15960
  }
@@ -15971,8 +15971,8 @@ var require_client_h1 = __commonJS({
15971
15971
  if (socket.destroyed) {
15972
15972
  return -1;
15973
15973
  }
15974
- const request3 = client[kQueue][client[kRunningIdx]];
15975
- if (!request3) {
15974
+ const request4 = client[kQueue][client[kRunningIdx]];
15975
+ if (!request4) {
15976
15976
  return -1;
15977
15977
  }
15978
15978
  assert(!this.upgrade);
@@ -15981,23 +15981,23 @@ var require_client_h1 = __commonJS({
15981
15981
  util2.destroy(socket, new SocketError("bad response", util2.getSocketInfo(socket)));
15982
15982
  return -1;
15983
15983
  }
15984
- if (upgrade && !request3.upgrade) {
15984
+ if (upgrade && !request4.upgrade) {
15985
15985
  util2.destroy(socket, new SocketError("bad upgrade", util2.getSocketInfo(socket)));
15986
15986
  return -1;
15987
15987
  }
15988
15988
  assert(this.timeoutType === TIMEOUT_HEADERS);
15989
15989
  this.statusCode = statusCode;
15990
15990
  this.shouldKeepAlive = shouldKeepAlive || // Override llhttp value which does not allow keepAlive for HEAD.
15991
- request3.method === "HEAD" && !socket[kReset] && this.connection.toLowerCase() === "keep-alive";
15991
+ request4.method === "HEAD" && !socket[kReset] && this.connection.toLowerCase() === "keep-alive";
15992
15992
  if (this.statusCode >= 200) {
15993
- const bodyTimeout = request3.bodyTimeout != null ? request3.bodyTimeout : client[kBodyTimeout];
15993
+ const bodyTimeout = request4.bodyTimeout != null ? request4.bodyTimeout : client[kBodyTimeout];
15994
15994
  this.setTimeout(bodyTimeout, TIMEOUT_BODY);
15995
15995
  } else if (this.timeout) {
15996
15996
  if (this.timeout.refresh) {
15997
15997
  this.timeout.refresh();
15998
15998
  }
15999
15999
  }
16000
- if (request3.method === "CONNECT") {
16000
+ if (request4.method === "CONNECT") {
16001
16001
  assert(client[kRunning] === 1);
16002
16002
  this.upgrade = true;
16003
16003
  return 2;
@@ -16028,11 +16028,11 @@ var require_client_h1 = __commonJS({
16028
16028
  } else {
16029
16029
  socket[kReset] = true;
16030
16030
  }
16031
- const pause = request3.onHeaders(statusCode, headers, this.resume, statusText) === false;
16032
- if (request3.aborted) {
16031
+ const pause = request4.onHeaders(statusCode, headers, this.resume, statusText) === false;
16032
+ if (request4.aborted) {
16033
16033
  return -1;
16034
16034
  }
16035
- if (request3.method === "HEAD") {
16035
+ if (request4.method === "HEAD") {
16036
16036
  return 1;
16037
16037
  }
16038
16038
  if (statusCode < 200) {
@@ -16053,8 +16053,8 @@ var require_client_h1 = __commonJS({
16053
16053
  if (socket.destroyed) {
16054
16054
  return -1;
16055
16055
  }
16056
- const request3 = client[kQueue][client[kRunningIdx]];
16057
- assert(request3);
16056
+ const request4 = client[kQueue][client[kRunningIdx]];
16057
+ assert(request4);
16058
16058
  assert(this.timeoutType === TIMEOUT_BODY);
16059
16059
  if (this.timeout) {
16060
16060
  if (this.timeout.refresh) {
@@ -16067,7 +16067,7 @@ var require_client_h1 = __commonJS({
16067
16067
  return -1;
16068
16068
  }
16069
16069
  this.bytesRead += buf.length;
16070
- if (request3.onData(buf) === false) {
16070
+ if (request4.onData(buf) === false) {
16071
16071
  return constants.ERROR.PAUSED;
16072
16072
  }
16073
16073
  return 0;
@@ -16085,8 +16085,8 @@ var require_client_h1 = __commonJS({
16085
16085
  }
16086
16086
  assert(statusCode >= 100);
16087
16087
  assert((this.headers.length & 1) === 0);
16088
- const request3 = client[kQueue][client[kRunningIdx]];
16089
- assert(request3);
16088
+ const request4 = client[kQueue][client[kRunningIdx]];
16089
+ assert(request4);
16090
16090
  this.statusCode = 0;
16091
16091
  this.statusText = "";
16092
16092
  this.bytesRead = 0;
@@ -16098,11 +16098,11 @@ var require_client_h1 = __commonJS({
16098
16098
  if (statusCode < 200) {
16099
16099
  return 0;
16100
16100
  }
16101
- if (request3.method !== "HEAD" && contentLength && bytesRead !== parseInt(contentLength, 10)) {
16101
+ if (request4.method !== "HEAD" && contentLength && bytesRead !== parseInt(contentLength, 10)) {
16102
16102
  util2.destroy(socket, new ResponseContentLengthMismatchError());
16103
16103
  return -1;
16104
16104
  }
16105
- request3.onComplete(headers);
16105
+ request4.onComplete(headers);
16106
16106
  client[kQueue][client[kRunningIdx]++] = null;
16107
16107
  if (socket[kWriting]) {
16108
16108
  assert(client[kRunning] === 0);
@@ -16167,8 +16167,8 @@ var require_client_h1 = __commonJS({
16167
16167
  return {
16168
16168
  version: "h1",
16169
16169
  defaultPipelining: 1,
16170
- write(request3) {
16171
- return writeH1(client, request3);
16170
+ write(request4) {
16171
+ return writeH1(client, request4);
16172
16172
  },
16173
16173
  resume() {
16174
16174
  resumeH1(client);
@@ -16195,18 +16195,18 @@ var require_client_h1 = __commonJS({
16195
16195
  * @param {import('../core/request.js')} request
16196
16196
  * @returns {boolean}
16197
16197
  */
16198
- busy(request3) {
16198
+ busy(request4) {
16199
16199
  if (socket[kWriting] || socket[kReset] || socket[kBlocking]) {
16200
16200
  return true;
16201
16201
  }
16202
- if (request3) {
16203
- if (client[kRunning] > 0 && !request3.idempotent) {
16202
+ if (request4) {
16203
+ if (client[kRunning] > 0 && !request4.idempotent) {
16204
16204
  return true;
16205
16205
  }
16206
- if (client[kRunning] > 0 && (request3.upgrade || request3.method === "CONNECT")) {
16206
+ if (client[kRunning] > 0 && (request4.upgrade || request4.method === "CONNECT")) {
16207
16207
  return true;
16208
16208
  }
16209
- if (client[kRunning] > 0 && util2.bodyLength(request3.body) !== 0 && (util2.isStream(request3.body) || util2.isAsyncIterable(request3.body) || util2.isFormDataLike(request3.body))) {
16209
+ if (client[kRunning] > 0 && util2.bodyLength(request4.body) !== 0 && (util2.isStream(request4.body) || util2.isAsyncIterable(request4.body) || util2.isFormDataLike(request4.body))) {
16210
16210
  return true;
16211
16211
  }
16212
16212
  }
@@ -16252,13 +16252,13 @@ var require_client_h1 = __commonJS({
16252
16252
  assert(client[kPending] === 0);
16253
16253
  const requests = client[kQueue].splice(client[kRunningIdx]);
16254
16254
  for (let i = 0; i < requests.length; i++) {
16255
- const request3 = requests[i];
16256
- util2.errorRequest(client, request3, err);
16255
+ const request4 = requests[i];
16256
+ util2.errorRequest(client, request4, err);
16257
16257
  }
16258
16258
  } else if (client[kRunning] > 0 && err.code !== "UND_ERR_INFO") {
16259
- const request3 = client[kQueue][client[kRunningIdx]];
16259
+ const request4 = client[kQueue][client[kRunningIdx]];
16260
16260
  client[kQueue][client[kRunningIdx]++] = null;
16261
- util2.errorRequest(client, request3, err);
16261
+ util2.errorRequest(client, request4, err);
16262
16262
  }
16263
16263
  client[kPendingIdx] = client[kRunningIdx];
16264
16264
  assert(client[kRunning] === 0);
@@ -16286,8 +16286,8 @@ var require_client_h1 = __commonJS({
16286
16286
  }
16287
16287
  } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {
16288
16288
  if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {
16289
- const request3 = client[kQueue][client[kRunningIdx]];
16290
- const headersTimeout = request3.headersTimeout != null ? request3.headersTimeout : client[kHeadersTimeout];
16289
+ const request4 = client[kQueue][client[kRunningIdx]];
16290
+ const headersTimeout = request4.headersTimeout != null ? request4.headersTimeout : client[kHeadersTimeout];
16291
16291
  socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS);
16292
16292
  }
16293
16293
  }
@@ -16296,21 +16296,21 @@ var require_client_h1 = __commonJS({
16296
16296
  function shouldSendContentLength(method) {
16297
16297
  return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT";
16298
16298
  }
16299
- function writeH1(client, request3) {
16300
- const { method, path, host, upgrade, blocking, reset } = request3;
16301
- let { body, headers, contentLength } = request3;
16299
+ function writeH1(client, request4) {
16300
+ const { method, path, host, upgrade, blocking, reset } = request4;
16301
+ let { body, headers, contentLength } = request4;
16302
16302
  const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH" || method === "QUERY" || method === "PROPFIND" || method === "PROPPATCH";
16303
16303
  if (util2.isFormDataLike(body)) {
16304
16304
  if (!extractBody) {
16305
16305
  extractBody = require_body().extractBody;
16306
16306
  }
16307
16307
  const [bodyStream, contentType] = extractBody(body);
16308
- if (request3.contentType == null) {
16308
+ if (request4.contentType == null) {
16309
16309
  headers.push("content-type", contentType);
16310
16310
  }
16311
16311
  body = bodyStream.stream;
16312
16312
  contentLength = bodyStream.length;
16313
- } else if (util2.isBlobLike(body) && request3.contentType == null && body.type) {
16313
+ } else if (util2.isBlobLike(body) && request4.contentType == null && body.type) {
16314
16314
  headers.push("content-type", body.type);
16315
16315
  }
16316
16316
  if (body && typeof body.read === "function") {
@@ -16319,33 +16319,33 @@ var require_client_h1 = __commonJS({
16319
16319
  const bodyLength = util2.bodyLength(body);
16320
16320
  contentLength = bodyLength ?? contentLength;
16321
16321
  if (contentLength === null) {
16322
- contentLength = request3.contentLength;
16322
+ contentLength = request4.contentLength;
16323
16323
  }
16324
16324
  if (contentLength === 0 && !expectsPayload) {
16325
16325
  contentLength = null;
16326
16326
  }
16327
- if (shouldSendContentLength(method) && contentLength > 0 && request3.contentLength !== null && request3.contentLength !== contentLength) {
16327
+ if (shouldSendContentLength(method) && contentLength > 0 && request4.contentLength !== null && request4.contentLength !== contentLength) {
16328
16328
  if (client[kStrictContentLength]) {
16329
- util2.errorRequest(client, request3, new RequestContentLengthMismatchError());
16329
+ util2.errorRequest(client, request4, new RequestContentLengthMismatchError());
16330
16330
  return false;
16331
16331
  }
16332
16332
  process.emitWarning(new RequestContentLengthMismatchError());
16333
16333
  }
16334
16334
  const socket = client[kSocket];
16335
16335
  const abort = (err) => {
16336
- if (request3.aborted || request3.completed) {
16336
+ if (request4.aborted || request4.completed) {
16337
16337
  return;
16338
16338
  }
16339
- util2.errorRequest(client, request3, err || new RequestAbortedError());
16339
+ util2.errorRequest(client, request4, err || new RequestAbortedError());
16340
16340
  util2.destroy(body);
16341
16341
  util2.destroy(socket, new InformationalError("aborted"));
16342
16342
  };
16343
16343
  try {
16344
- request3.onConnect(abort);
16344
+ request4.onConnect(abort);
16345
16345
  } catch (err) {
16346
- util2.errorRequest(client, request3, err);
16346
+ util2.errorRequest(client, request4, err);
16347
16347
  }
16348
- if (request3.aborted) {
16348
+ if (request4.aborted) {
16349
16349
  return false;
16350
16350
  }
16351
16351
  if (method === "HEAD") {
@@ -16364,7 +16364,7 @@ var require_client_h1 = __commonJS({
16364
16364
  socket[kBlocking] = true;
16365
16365
  }
16366
16366
  if (socket.setTypeOfService) {
16367
- socket.setTypeOfService(request3.typeOfService);
16367
+ socket.setTypeOfService(request4.typeOfService);
16368
16368
  }
16369
16369
  let header = `${method} ${path} HTTP/1.1\r
16370
16370
  `;
@@ -16399,31 +16399,31 @@ upgrade: ${upgrade}\r
16399
16399
  }
16400
16400
  }
16401
16401
  if (channels.sendHeaders.hasSubscribers) {
16402
- channels.sendHeaders.publish({ request: request3, headers: header, socket });
16402
+ channels.sendHeaders.publish({ request: request4, headers: header, socket });
16403
16403
  }
16404
16404
  if (!body || bodyLength === 0) {
16405
- writeBuffer(abort, null, client, request3, socket, contentLength, header, expectsPayload);
16405
+ writeBuffer(abort, null, client, request4, socket, contentLength, header, expectsPayload);
16406
16406
  } else if (util2.isBuffer(body)) {
16407
- writeBuffer(abort, body, client, request3, socket, contentLength, header, expectsPayload);
16407
+ writeBuffer(abort, body, client, request4, socket, contentLength, header, expectsPayload);
16408
16408
  } else if (util2.isBlobLike(body)) {
16409
16409
  if (typeof body.stream === "function") {
16410
- writeIterable(abort, body.stream(), client, request3, socket, contentLength, header, expectsPayload);
16410
+ writeIterable(abort, body.stream(), client, request4, socket, contentLength, header, expectsPayload);
16411
16411
  } else {
16412
- writeBlob(abort, body, client, request3, socket, contentLength, header, expectsPayload);
16412
+ writeBlob(abort, body, client, request4, socket, contentLength, header, expectsPayload);
16413
16413
  }
16414
16414
  } else if (util2.isStream(body)) {
16415
- writeStream(abort, body, client, request3, socket, contentLength, header, expectsPayload);
16415
+ writeStream(abort, body, client, request4, socket, contentLength, header, expectsPayload);
16416
16416
  } else if (util2.isIterable(body)) {
16417
- writeIterable(abort, body, client, request3, socket, contentLength, header, expectsPayload);
16417
+ writeIterable(abort, body, client, request4, socket, contentLength, header, expectsPayload);
16418
16418
  } else {
16419
16419
  assert(false);
16420
16420
  }
16421
16421
  return true;
16422
16422
  }
16423
- function writeStream(abort, body, client, request3, socket, contentLength, header, expectsPayload) {
16423
+ function writeStream(abort, body, client, request4, socket, contentLength, header, expectsPayload) {
16424
16424
  assert(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined");
16425
16425
  let finished = false;
16426
- const writer = new AsyncWriter({ abort, socket, request: request3, contentLength, client, expectsPayload, header });
16426
+ const writer = new AsyncWriter({ abort, socket, request: request4, contentLength, client, expectsPayload, header });
16427
16427
  const onData = function(chunk) {
16428
16428
  if (finished) {
16429
16429
  return;
@@ -16489,7 +16489,7 @@ upgrade: ${upgrade}\r
16489
16489
  setImmediate(onClose);
16490
16490
  }
16491
16491
  }
16492
- function writeBuffer(abort, body, client, request3, socket, contentLength, header, expectsPayload) {
16492
+ function writeBuffer(abort, body, client, request4, socket, contentLength, header, expectsPayload) {
16493
16493
  try {
16494
16494
  if (!body) {
16495
16495
  if (contentLength === 0) {
@@ -16509,18 +16509,18 @@ upgrade: ${upgrade}\r
16509
16509
  `, "latin1");
16510
16510
  socket.write(body);
16511
16511
  socket.uncork();
16512
- request3.onBodySent(body);
16513
- if (!expectsPayload && request3.reset !== false) {
16512
+ request4.onBodySent(body);
16513
+ if (!expectsPayload && request4.reset !== false) {
16514
16514
  socket[kReset] = true;
16515
16515
  }
16516
16516
  }
16517
- request3.onRequestSent();
16517
+ request4.onRequestSent();
16518
16518
  client[kResume]();
16519
16519
  } catch (err) {
16520
16520
  abort(err);
16521
16521
  }
16522
16522
  }
16523
- async function writeBlob(abort, body, client, request3, socket, contentLength, header, expectsPayload) {
16523
+ async function writeBlob(abort, body, client, request4, socket, contentLength, header, expectsPayload) {
16524
16524
  assert(contentLength === body.size, "blob body must have content length");
16525
16525
  try {
16526
16526
  if (contentLength != null && contentLength !== body.size) {
@@ -16533,9 +16533,9 @@ upgrade: ${upgrade}\r
16533
16533
  `, "latin1");
16534
16534
  socket.write(buffer);
16535
16535
  socket.uncork();
16536
- request3.onBodySent(buffer);
16537
- request3.onRequestSent();
16538
- if (!expectsPayload && request3.reset !== false) {
16536
+ request4.onBodySent(buffer);
16537
+ request4.onRequestSent();
16538
+ if (!expectsPayload && request4.reset !== false) {
16539
16539
  socket[kReset] = true;
16540
16540
  }
16541
16541
  client[kResume]();
@@ -16543,7 +16543,7 @@ upgrade: ${upgrade}\r
16543
16543
  abort(err);
16544
16544
  }
16545
16545
  }
16546
- async function writeIterable(abort, body, client, request3, socket, contentLength, header, expectsPayload) {
16546
+ async function writeIterable(abort, body, client, request4, socket, contentLength, header, expectsPayload) {
16547
16547
  assert(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined");
16548
16548
  let callback = null;
16549
16549
  function onDrain() {
@@ -16553,16 +16553,16 @@ upgrade: ${upgrade}\r
16553
16553
  cb();
16554
16554
  }
16555
16555
  }
16556
- const waitForDrain = () => new Promise((resolve6, reject) => {
16556
+ const waitForDrain = () => new Promise((resolve7, reject) => {
16557
16557
  assert(callback === null);
16558
16558
  if (socket[kError]) {
16559
16559
  reject(socket[kError]);
16560
16560
  } else {
16561
- callback = resolve6;
16561
+ callback = resolve7;
16562
16562
  }
16563
16563
  });
16564
16564
  socket.on("close", onDrain).on("drain", onDrain);
16565
- const writer = new AsyncWriter({ abort, socket, request: request3, contentLength, client, expectsPayload, header });
16565
+ const writer = new AsyncWriter({ abort, socket, request: request4, contentLength, client, expectsPayload, header });
16566
16566
  try {
16567
16567
  for await (const chunk of body) {
16568
16568
  if (socket[kError]) {
@@ -16591,9 +16591,9 @@ upgrade: ${upgrade}\r
16591
16591
  * @param {boolean} arg.expectsPayload
16592
16592
  * @param {string} arg.header
16593
16593
  */
16594
- constructor({ abort, socket, request: request3, contentLength, client, expectsPayload, header }) {
16594
+ constructor({ abort, socket, request: request4, contentLength, client, expectsPayload, header }) {
16595
16595
  this.socket = socket;
16596
- this.request = request3;
16596
+ this.request = request4;
16597
16597
  this.contentLength = contentLength;
16598
16598
  this.client = client;
16599
16599
  this.bytesWritten = 0;
@@ -16607,7 +16607,7 @@ upgrade: ${upgrade}\r
16607
16607
  * @returns
16608
16608
  */
16609
16609
  write(chunk) {
16610
- const { socket, request: request3, contentLength, client, bytesWritten, expectsPayload, header } = this;
16610
+ const { socket, request: request4, contentLength, client, bytesWritten, expectsPayload, header } = this;
16611
16611
  if (socket[kError]) {
16612
16612
  throw socket[kError];
16613
16613
  }
@@ -16626,7 +16626,7 @@ upgrade: ${upgrade}\r
16626
16626
  }
16627
16627
  socket.cork();
16628
16628
  if (bytesWritten === 0) {
16629
- if (!expectsPayload && request3.reset !== false) {
16629
+ if (!expectsPayload && request4.reset !== false) {
16630
16630
  socket[kReset] = true;
16631
16631
  }
16632
16632
  if (contentLength === null) {
@@ -16646,7 +16646,7 @@ ${len.toString(16)}\r
16646
16646
  this.bytesWritten += len;
16647
16647
  const ret = socket.write(chunk);
16648
16648
  socket.uncork();
16649
- request3.onBodySent(chunk);
16649
+ request4.onBodySent(chunk);
16650
16650
  if (!ret) {
16651
16651
  if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {
16652
16652
  if (socket[kParser].timeout.refresh) {
@@ -16660,8 +16660,8 @@ ${len.toString(16)}\r
16660
16660
  * @returns {void}
16661
16661
  */
16662
16662
  end() {
16663
- const { socket, contentLength, client, bytesWritten, expectsPayload, header, request: request3 } = this;
16664
- request3.onRequestSent();
16663
+ const { socket, contentLength, client, bytesWritten, expectsPayload, header, request: request4 } = this;
16664
+ request4.onRequestSent();
16665
16665
  socket[kWriting] = false;
16666
16666
  if (socket[kError]) {
16667
16667
  throw socket[kError];
@@ -16838,8 +16838,8 @@ var require_client_h2 = __commonJS({
16838
16838
  * @param {import('../core/request.js')} request
16839
16839
  * @returns {boolean}
16840
16840
  */
16841
- write(request3) {
16842
- return writeH2(client, request3);
16841
+ write(request4) {
16842
+ return writeH2(client, request4);
16843
16843
  },
16844
16844
  /**
16845
16845
  * @returns {void}
@@ -16868,14 +16868,14 @@ var require_client_h2 = __commonJS({
16868
16868
  * @param {import('../core/request.js')} request
16869
16869
  * @returns {boolean}
16870
16870
  */
16871
- busy(request3) {
16872
- if (request3 != null) {
16871
+ busy(request4) {
16872
+ if (request4 != null) {
16873
16873
  if (client[kRunning] > 0) {
16874
- if (request3.idempotent === false) return true;
16875
- if ((request3.upgrade === "websocket" || request3.method === "CONNECT") && session[kRemoteSettings] === false) return true;
16876
- if (util2.bodyLength(request3.body) !== 0 && (util2.isStream(request3.body) || util2.isAsyncIterable(request3.body) || util2.isFormDataLike(request3.body))) return true;
16874
+ if (request4.idempotent === false) return true;
16875
+ if ((request4.upgrade === "websocket" || request4.method === "CONNECT") && session[kRemoteSettings] === false) return true;
16876
+ if (util2.bodyLength(request4.body) !== 0 && (util2.isStream(request4.body) || util2.isAsyncIterable(request4.body) || util2.isFormDataLike(request4.body))) return true;
16877
16877
  } else {
16878
- return (request3.upgrade === "websocket" || request3.method === "CONNECT") && session[kRemoteSettings] === false;
16878
+ return (request4.upgrade === "websocket" || request4.method === "CONNECT") && session[kRemoteSettings] === false;
16879
16879
  }
16880
16880
  }
16881
16881
  return false;
@@ -16960,9 +16960,9 @@ var require_client_h2 = __commonJS({
16960
16960
  this[kHTTP2Session] = null;
16961
16961
  util2.destroy(this[kSocket], err);
16962
16962
  if (client[kRunningIdx] < client[kQueue].length) {
16963
- const request3 = client[kQueue][client[kRunningIdx]];
16963
+ const request4 = client[kQueue][client[kRunningIdx]];
16964
16964
  client[kQueue][client[kRunningIdx]++] = null;
16965
- util2.errorRequest(client, request3, err);
16965
+ util2.errorRequest(client, request4, err);
16966
16966
  client[kPendingIdx] = client[kRunningIdx];
16967
16967
  }
16968
16968
  assert(client[kRunning] === 0);
@@ -16984,8 +16984,8 @@ var require_client_h2 = __commonJS({
16984
16984
  assert(client[kPending] === 0);
16985
16985
  const requests = client[kQueue].splice(client[kRunningIdx]);
16986
16986
  for (let i = 0; i < requests.length; i++) {
16987
- const request3 = requests[i];
16988
- util2.errorRequest(client, request3, err);
16987
+ const request4 = requests[i];
16988
+ util2.errorRequest(client, request4, err);
16989
16989
  }
16990
16990
  }
16991
16991
  }
@@ -17016,13 +17016,13 @@ var require_client_h2 = __commonJS({
17016
17016
  function shouldSendContentLength(method) {
17017
17017
  return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT";
17018
17018
  }
17019
- function writeH2(client, request3) {
17020
- const requestTimeout = request3.bodyTimeout ?? client[kBodyTimeout];
17019
+ function writeH2(client, request4) {
17020
+ const requestTimeout = request4.bodyTimeout ?? client[kBodyTimeout];
17021
17021
  const session = client[kHTTP2Session];
17022
- const { method, path, host, upgrade, expectContinue, signal, protocol, headers: reqHeaders } = request3;
17023
- let { body } = request3;
17022
+ const { method, path, host, upgrade, expectContinue, signal, protocol, headers: reqHeaders } = request4;
17023
+ let { body } = request4;
17024
17024
  if (upgrade != null && upgrade !== "websocket") {
17025
- util2.errorRequest(client, request3, new InvalidArgumentError(`Custom upgrade "${upgrade}" not supported over HTTP/2`));
17025
+ util2.errorRequest(client, request4, new InvalidArgumentError(`Custom upgrade "${upgrade}" not supported over HTTP/2`));
17026
17026
  return false;
17027
17027
  }
17028
17028
  const headers = {};
@@ -17056,11 +17056,11 @@ var require_client_h2 = __commonJS({
17056
17056
  headers[HTTP2_HEADER_AUTHORITY] = host || `${hostname3}${port ? `:${port}` : ""}`;
17057
17057
  headers[HTTP2_HEADER_METHOD] = method;
17058
17058
  const abort = (err) => {
17059
- if (request3.aborted || request3.completed) {
17059
+ if (request4.aborted || request4.completed) {
17060
17060
  return;
17061
17061
  }
17062
17062
  err = err || new RequestAbortedError();
17063
- util2.errorRequest(client, request3, err);
17063
+ util2.errorRequest(client, request4, err);
17064
17064
  if (stream != null) {
17065
17065
  stream.removeAllListeners("data");
17066
17066
  stream.close();
@@ -17070,18 +17070,18 @@ var require_client_h2 = __commonJS({
17070
17070
  util2.destroy(body, err);
17071
17071
  };
17072
17072
  try {
17073
- request3.onConnect(abort);
17073
+ request4.onConnect(abort);
17074
17074
  } catch (err) {
17075
- util2.errorRequest(client, request3, err);
17075
+ util2.errorRequest(client, request4, err);
17076
17076
  }
17077
- if (request3.aborted) {
17077
+ if (request4.aborted) {
17078
17078
  return false;
17079
17079
  }
17080
17080
  if (upgrade || method === "CONNECT") {
17081
17081
  session.ref();
17082
17082
  if (upgrade === "websocket") {
17083
17083
  if (session[kEnableConnectProtocol] === false) {
17084
- util2.errorRequest(client, request3, new InformationalError("HTTP/2: Extended CONNECT protocol not supported by server"));
17084
+ util2.errorRequest(client, request4, new InformationalError("HTTP/2: Extended CONNECT protocol not supported by server"));
17085
17085
  session.unref();
17086
17086
  return false;
17087
17087
  }
@@ -17097,7 +17097,7 @@ var require_client_h2 = __commonJS({
17097
17097
  stream[kHTTP2Stream] = true;
17098
17098
  stream.once("response", (headers2, _flags) => {
17099
17099
  const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2;
17100
- request3.onUpgrade(statusCode, parseH2Headers(realHeaders), stream);
17100
+ request4.onUpgrade(statusCode, parseH2Headers(realHeaders), stream);
17101
17101
  ++session[kOpenStreams];
17102
17102
  client[kQueue][client[kRunningIdx]++] = null;
17103
17103
  });
@@ -17117,7 +17117,7 @@ var require_client_h2 = __commonJS({
17117
17117
  stream[kHTTP2Stream] = true;
17118
17118
  stream.on("response", (headers2) => {
17119
17119
  const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2;
17120
- request3.onUpgrade(statusCode, parseH2Headers(realHeaders), stream);
17120
+ request4.onUpgrade(statusCode, parseH2Headers(realHeaders), stream);
17121
17121
  ++session[kOpenStreams];
17122
17122
  client[kQueue][client[kRunningIdx]++] = null;
17123
17123
  });
@@ -17143,14 +17143,14 @@ var require_client_h2 = __commonJS({
17143
17143
  contentLength = bodyStream.length;
17144
17144
  }
17145
17145
  if (contentLength == null) {
17146
- contentLength = request3.contentLength;
17146
+ contentLength = request4.contentLength;
17147
17147
  }
17148
17148
  if (!expectsPayload) {
17149
17149
  contentLength = null;
17150
17150
  }
17151
- if (shouldSendContentLength(method) && contentLength > 0 && request3.contentLength != null && request3.contentLength !== contentLength) {
17151
+ if (shouldSendContentLength(method) && contentLength > 0 && request4.contentLength != null && request4.contentLength !== contentLength) {
17152
17152
  if (client[kStrictContentLength]) {
17153
- util2.errorRequest(client, request3, new RequestContentLengthMismatchError());
17153
+ util2.errorRequest(client, request4, new RequestContentLengthMismatchError());
17154
17154
  return false;
17155
17155
  }
17156
17156
  process.emitWarning(new RequestContentLengthMismatchError());
@@ -17166,7 +17166,7 @@ var require_client_h2 = __commonJS({
17166
17166
  header += `${key}: ${headers[key]}\r
17167
17167
  `;
17168
17168
  }
17169
- channels.sendHeaders.publish({ request: request3, headers: header, socket: session[kSocket] });
17169
+ channels.sendHeaders.publish({ request: request4, headers: header, socket: session[kSocket] });
17170
17170
  }
17171
17171
  const shouldEndStream = method === "GET" || method === "HEAD" || body === null;
17172
17172
  if (expectContinue) {
@@ -17187,20 +17187,20 @@ var require_client_h2 = __commonJS({
17187
17187
  let responseReceived = false;
17188
17188
  stream.once("response", (headers2) => {
17189
17189
  const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2;
17190
- request3.onResponseStarted();
17190
+ request4.onResponseStarted();
17191
17191
  responseReceived = true;
17192
- if (request3.aborted) {
17192
+ if (request4.aborted) {
17193
17193
  stream.removeAllListeners("data");
17194
17194
  return;
17195
17195
  }
17196
- if (request3.onHeaders(Number(statusCode), parseH2Headers(realHeaders), stream.resume.bind(stream), "") === false) {
17196
+ if (request4.onHeaders(Number(statusCode), parseH2Headers(realHeaders), stream.resume.bind(stream), "") === false) {
17197
17197
  stream.pause();
17198
17198
  }
17199
17199
  stream.on("data", (chunk) => {
17200
- if (request3.aborted || request3.completed) {
17200
+ if (request4.aborted || request4.completed) {
17201
17201
  return;
17202
17202
  }
17203
- if (request3.onData(chunk) === false) {
17203
+ if (request4.onData(chunk) === false) {
17204
17204
  stream.pause();
17205
17205
  }
17206
17206
  });
@@ -17208,8 +17208,8 @@ var require_client_h2 = __commonJS({
17208
17208
  stream.once("end", () => {
17209
17209
  stream.removeAllListeners("data");
17210
17210
  if (responseReceived) {
17211
- if (!request3.aborted && !request3.completed) {
17212
- request3.onComplete({});
17211
+ if (!request4.aborted && !request4.completed) {
17212
+ request4.onComplete({});
17213
17213
  }
17214
17214
  client[kQueue][client[kRunningIdx]++] = null;
17215
17215
  client[kResume]();
@@ -17248,11 +17248,11 @@ var require_client_h2 = __commonJS({
17248
17248
  abort(err);
17249
17249
  });
17250
17250
  stream.once("trailers", (trailers) => {
17251
- if (request3.aborted || request3.completed) {
17251
+ if (request4.aborted || request4.completed) {
17252
17252
  return;
17253
17253
  }
17254
17254
  stream.removeAllListeners("data");
17255
- request3.onComplete(trailers);
17255
+ request4.onComplete(trailers);
17256
17256
  });
17257
17257
  return true;
17258
17258
  function writeBodyH2() {
@@ -17262,7 +17262,7 @@ var require_client_h2 = __commonJS({
17262
17262
  stream,
17263
17263
  null,
17264
17264
  client,
17265
- request3,
17265
+ request4,
17266
17266
  client[kSocket],
17267
17267
  contentLength,
17268
17268
  expectsPayload
@@ -17273,7 +17273,7 @@ var require_client_h2 = __commonJS({
17273
17273
  stream,
17274
17274
  body,
17275
17275
  client,
17276
- request3,
17276
+ request4,
17277
17277
  client[kSocket],
17278
17278
  contentLength,
17279
17279
  expectsPayload
@@ -17285,7 +17285,7 @@ var require_client_h2 = __commonJS({
17285
17285
  stream,
17286
17286
  body.stream(),
17287
17287
  client,
17288
- request3,
17288
+ request4,
17289
17289
  client[kSocket],
17290
17290
  contentLength,
17291
17291
  expectsPayload
@@ -17296,7 +17296,7 @@ var require_client_h2 = __commonJS({
17296
17296
  stream,
17297
17297
  body,
17298
17298
  client,
17299
- request3,
17299
+ request4,
17300
17300
  client[kSocket],
17301
17301
  contentLength,
17302
17302
  expectsPayload
@@ -17310,7 +17310,7 @@ var require_client_h2 = __commonJS({
17310
17310
  stream,
17311
17311
  body,
17312
17312
  client,
17313
- request3,
17313
+ request4,
17314
17314
  contentLength
17315
17315
  );
17316
17316
  } else if (util2.isIterable(body)) {
@@ -17319,7 +17319,7 @@ var require_client_h2 = __commonJS({
17319
17319
  stream,
17320
17320
  body,
17321
17321
  client,
17322
- request3,
17322
+ request4,
17323
17323
  client[kSocket],
17324
17324
  contentLength,
17325
17325
  expectsPayload
@@ -17329,7 +17329,7 @@ var require_client_h2 = __commonJS({
17329
17329
  }
17330
17330
  }
17331
17331
  }
17332
- function writeBuffer(abort, h2stream, body, client, request3, socket, contentLength, expectsPayload) {
17332
+ function writeBuffer(abort, h2stream, body, client, request4, socket, contentLength, expectsPayload) {
17333
17333
  try {
17334
17334
  if (body != null && util2.isBuffer(body)) {
17335
17335
  assert(contentLength === body.byteLength, "buffer body must have content length");
@@ -17337,18 +17337,18 @@ var require_client_h2 = __commonJS({
17337
17337
  h2stream.write(body);
17338
17338
  h2stream.uncork();
17339
17339
  h2stream.end();
17340
- request3.onBodySent(body);
17340
+ request4.onBodySent(body);
17341
17341
  }
17342
17342
  if (!expectsPayload) {
17343
17343
  socket[kReset] = true;
17344
17344
  }
17345
- request3.onRequestSent();
17345
+ request4.onRequestSent();
17346
17346
  client[kResume]();
17347
17347
  } catch (error) {
17348
17348
  abort(error);
17349
17349
  }
17350
17350
  }
17351
- function writeStream(abort, socket, expectsPayload, h2stream, body, client, request3, contentLength) {
17351
+ function writeStream(abort, socket, expectsPayload, h2stream, body, client, request4, contentLength) {
17352
17352
  assert(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined");
17353
17353
  const pipe = pipeline2(
17354
17354
  body,
@@ -17359,7 +17359,7 @@ var require_client_h2 = __commonJS({
17359
17359
  abort(err);
17360
17360
  } else {
17361
17361
  util2.removeAllListeners(pipe);
17362
- request3.onRequestSent();
17362
+ request4.onRequestSent();
17363
17363
  if (!expectsPayload) {
17364
17364
  socket[kReset] = true;
17365
17365
  }
@@ -17369,10 +17369,10 @@ var require_client_h2 = __commonJS({
17369
17369
  );
17370
17370
  util2.addListener(pipe, "data", onPipeData);
17371
17371
  function onPipeData(chunk) {
17372
- request3.onBodySent(chunk);
17372
+ request4.onBodySent(chunk);
17373
17373
  }
17374
17374
  }
17375
- async function writeBlob(abort, h2stream, body, client, request3, socket, contentLength, expectsPayload) {
17375
+ async function writeBlob(abort, h2stream, body, client, request4, socket, contentLength, expectsPayload) {
17376
17376
  assert(contentLength === body.size, "blob body must have content length");
17377
17377
  try {
17378
17378
  if (contentLength != null && contentLength !== body.size) {
@@ -17383,8 +17383,8 @@ var require_client_h2 = __commonJS({
17383
17383
  h2stream.write(buffer);
17384
17384
  h2stream.uncork();
17385
17385
  h2stream.end();
17386
- request3.onBodySent(buffer);
17387
- request3.onRequestSent();
17386
+ request4.onBodySent(buffer);
17387
+ request4.onRequestSent();
17388
17388
  if (!expectsPayload) {
17389
17389
  socket[kReset] = true;
17390
17390
  }
@@ -17393,7 +17393,7 @@ var require_client_h2 = __commonJS({
17393
17393
  abort(err);
17394
17394
  }
17395
17395
  }
17396
- async function writeIterable(abort, h2stream, body, client, request3, socket, contentLength, expectsPayload) {
17396
+ async function writeIterable(abort, h2stream, body, client, request4, socket, contentLength, expectsPayload) {
17397
17397
  assert(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined");
17398
17398
  let callback = null;
17399
17399
  function onDrain() {
@@ -17403,12 +17403,12 @@ var require_client_h2 = __commonJS({
17403
17403
  cb();
17404
17404
  }
17405
17405
  }
17406
- const waitForDrain = () => new Promise((resolve6, reject) => {
17406
+ const waitForDrain = () => new Promise((resolve7, reject) => {
17407
17407
  assert(callback === null);
17408
17408
  if (socket[kError]) {
17409
17409
  reject(socket[kError]);
17410
17410
  } else {
17411
- callback = resolve6;
17411
+ callback = resolve7;
17412
17412
  }
17413
17413
  });
17414
17414
  h2stream.on("close", onDrain).on("drain", onDrain);
@@ -17418,13 +17418,13 @@ var require_client_h2 = __commonJS({
17418
17418
  throw socket[kError];
17419
17419
  }
17420
17420
  const res = h2stream.write(chunk);
17421
- request3.onBodySent(chunk);
17421
+ request4.onBodySent(chunk);
17422
17422
  if (!res) {
17423
17423
  await waitForDrain();
17424
17424
  }
17425
17425
  }
17426
17426
  h2stream.end();
17427
- request3.onRequestSent();
17427
+ request4.onRequestSent();
17428
17428
  if (!expectsPayload) {
17429
17429
  socket[kReset] = true;
17430
17430
  }
@@ -17704,10 +17704,10 @@ var require_client = __commonJS({
17704
17704
  this.once("connect", cb);
17705
17705
  }
17706
17706
  [kDispatch](opts, handler) {
17707
- const request3 = new Request(this[kUrl].origin, opts, handler);
17708
- this[kQueue].push(request3);
17707
+ const request4 = new Request(this[kUrl].origin, opts, handler);
17708
+ this[kQueue].push(request4);
17709
17709
  if (this[kResuming]) {
17710
- } else if (util2.bodyLength(request3.body) == null && util2.isIterable(request3.body)) {
17710
+ } else if (util2.bodyLength(request4.body) == null && util2.isIterable(request4.body)) {
17711
17711
  this[kResuming] = 1;
17712
17712
  queueMicrotask(() => resume(this));
17713
17713
  } else {
@@ -17719,27 +17719,27 @@ var require_client = __commonJS({
17719
17719
  return this[kNeedDrain] < 2;
17720
17720
  }
17721
17721
  [kClose]() {
17722
- return new Promise((resolve6) => {
17722
+ return new Promise((resolve7) => {
17723
17723
  if (this[kSize]) {
17724
- this[kClosedResolve] = resolve6;
17724
+ this[kClosedResolve] = resolve7;
17725
17725
  } else {
17726
- resolve6(null);
17726
+ resolve7(null);
17727
17727
  }
17728
17728
  });
17729
17729
  }
17730
17730
  [kDestroy](err) {
17731
- return new Promise((resolve6) => {
17731
+ return new Promise((resolve7) => {
17732
17732
  const requests = this[kQueue].splice(this[kPendingIdx]);
17733
17733
  for (let i = 0; i < requests.length; i++) {
17734
- const request3 = requests[i];
17735
- util2.errorRequest(this, request3, err);
17734
+ const request4 = requests[i];
17735
+ util2.errorRequest(this, request4, err);
17736
17736
  }
17737
17737
  const callback = () => {
17738
17738
  if (this[kClosedResolve]) {
17739
17739
  this[kClosedResolve]();
17740
17740
  this[kClosedResolve] = null;
17741
17741
  }
17742
- resolve6(null);
17742
+ resolve7(null);
17743
17743
  };
17744
17744
  if (this[kHTTPContext]) {
17745
17745
  this[kHTTPContext].destroy(err, callback);
@@ -17756,8 +17756,8 @@ var require_client = __commonJS({
17756
17756
  assert(client[kPendingIdx] === client[kRunningIdx]);
17757
17757
  const requests = client[kQueue].splice(client[kRunningIdx]);
17758
17758
  for (let i = 0; i < requests.length; i++) {
17759
- const request3 = requests[i];
17760
- util2.errorRequest(client, request3, err);
17759
+ const request4 = requests[i];
17760
+ util2.errorRequest(client, request4, err);
17761
17761
  }
17762
17762
  assert(client[kSize] === 0);
17763
17763
  }
@@ -17867,8 +17867,8 @@ var require_client = __commonJS({
17867
17867
  if (err.code === "ERR_TLS_CERT_ALTNAME_INVALID") {
17868
17868
  assert(client[kRunning] === 0);
17869
17869
  while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {
17870
- const request3 = client[kQueue][client[kPendingIdx]++];
17871
- util2.errorRequest(client, request3, err);
17870
+ const request4 = client[kQueue][client[kPendingIdx]++];
17871
+ util2.errorRequest(client, request4, err);
17872
17872
  }
17873
17873
  } else {
17874
17874
  onError(client, err);
@@ -17923,15 +17923,15 @@ var require_client = __commonJS({
17923
17923
  if (client[kRunning] >= (getPipelining(client) || 1)) {
17924
17924
  return;
17925
17925
  }
17926
- const request3 = client[kQueue][client[kPendingIdx]];
17927
- if (request3 === null) {
17926
+ const request4 = client[kQueue][client[kPendingIdx]];
17927
+ if (request4 === null) {
17928
17928
  return;
17929
17929
  }
17930
- if (client[kUrl].protocol === "https:" && client[kServerName] !== request3.servername) {
17930
+ if (client[kUrl].protocol === "https:" && client[kServerName] !== request4.servername) {
17931
17931
  if (client[kRunning] > 0) {
17932
17932
  return;
17933
17933
  }
17934
- client[kServerName] = request3.servername;
17934
+ client[kServerName] = request4.servername;
17935
17935
  client[kHTTPContext]?.destroy(new InformationalError("servername changed"), () => {
17936
17936
  client[kHTTPContext] = null;
17937
17937
  resume(client);
@@ -17947,10 +17947,10 @@ var require_client = __commonJS({
17947
17947
  if (client[kHTTPContext].destroyed) {
17948
17948
  return;
17949
17949
  }
17950
- if (client[kHTTPContext].busy(request3)) {
17950
+ if (client[kHTTPContext].busy(request4)) {
17951
17951
  return;
17952
17952
  }
17953
- if (!request3.aborted && client[kHTTPContext].write(request3)) {
17953
+ if (!request4.aborted && client[kHTTPContext].write(request4)) {
17954
17954
  client[kPendingIdx]++;
17955
17955
  } else {
17956
17956
  client[kQueue].splice(client[kPendingIdx], 1);
@@ -18144,8 +18144,8 @@ var require_pool_base = __commonJS({
18144
18144
  }
18145
18145
  return Promise.all(closeAll);
18146
18146
  } else {
18147
- return new Promise((resolve6) => {
18148
- this[kClosedResolve] = resolve6;
18147
+ return new Promise((resolve7) => {
18148
+ this[kClosedResolve] = resolve7;
18149
18149
  });
18150
18150
  }
18151
18151
  }
@@ -18982,13 +18982,13 @@ var require_socks5_client = __commonJS({
18982
18982
  }
18983
18983
  debug("starting handshake with", this.authMethods.length, "auth methods");
18984
18984
  this.state = STATES.HANDSHAKING;
18985
- const request3 = Buffer2.alloc(2 + this.authMethods.length);
18986
- request3[0] = SOCKS_VERSION;
18987
- request3[1] = this.authMethods.length;
18985
+ const request4 = Buffer2.alloc(2 + this.authMethods.length);
18986
+ request4[0] = SOCKS_VERSION;
18987
+ request4[1] = this.authMethods.length;
18988
18988
  this.authMethods.forEach((method, i) => {
18989
- request3[2 + i] = method;
18989
+ request4[2 + i] = method;
18990
18990
  });
18991
- this.socket.write(request3);
18991
+ this.socket.write(request4);
18992
18992
  }
18993
18993
  /**
18994
18994
  * Handle handshake response from server
@@ -19030,13 +19030,13 @@ var require_socks5_client = __commonJS({
19030
19030
  if (usernameBuffer.length > 255 || passwordBuffer.length > 255) {
19031
19031
  throw new InvalidArgumentError("Username or password too long");
19032
19032
  }
19033
- const request3 = Buffer2.alloc(3 + usernameBuffer.length + passwordBuffer.length);
19034
- request3[0] = 1;
19035
- request3[1] = usernameBuffer.length;
19036
- usernameBuffer.copy(request3, 2);
19037
- request3[2 + usernameBuffer.length] = passwordBuffer.length;
19038
- passwordBuffer.copy(request3, 3 + usernameBuffer.length);
19039
- this.socket.write(request3);
19033
+ const request4 = Buffer2.alloc(3 + usernameBuffer.length + passwordBuffer.length);
19034
+ request4[0] = 1;
19035
+ request4[1] = usernameBuffer.length;
19036
+ usernameBuffer.copy(request4, 2);
19037
+ request4[2 + usernameBuffer.length] = passwordBuffer.length;
19038
+ passwordBuffer.copy(request4, 3 + usernameBuffer.length);
19039
+ this.socket.write(request4);
19040
19040
  }
19041
19041
  /**
19042
19042
  * Handle authentication response
@@ -19068,22 +19068,22 @@ var require_socks5_client = __commonJS({
19068
19068
  }
19069
19069
  debug("connecting to", address, port);
19070
19070
  this.state = STATES.CONNECTING;
19071
- const request3 = this.buildConnectRequest(COMMANDS.CONNECT, address, port);
19072
- this.socket.write(request3);
19071
+ const request4 = this.buildConnectRequest(COMMANDS.CONNECT, address, port);
19072
+ this.socket.write(request4);
19073
19073
  }
19074
19074
  /**
19075
19075
  * Build a SOCKS5 request
19076
19076
  */
19077
19077
  buildConnectRequest(command, address, port) {
19078
19078
  const { type: addressType, buffer: addressBuffer } = parseAddress(address);
19079
- const request3 = Buffer2.alloc(4 + addressBuffer.length + 2);
19080
- request3[0] = SOCKS_VERSION;
19081
- request3[1] = command;
19082
- request3[2] = 0;
19083
- request3[3] = addressType;
19084
- addressBuffer.copy(request3, 4);
19085
- request3.writeUInt16BE(port, 4 + addressBuffer.length);
19086
- return request3;
19079
+ const request4 = Buffer2.alloc(4 + addressBuffer.length + 2);
19080
+ request4[0] = SOCKS_VERSION;
19081
+ request4[1] = command;
19082
+ request4[2] = 0;
19083
+ request4[3] = addressType;
19084
+ addressBuffer.copy(request4, 4);
19085
+ request4.writeUInt16BE(port, 4 + addressBuffer.length);
19086
+ return request4;
19087
19087
  }
19088
19088
  /**
19089
19089
  * Handle CONNECT response
@@ -19237,10 +19237,10 @@ var require_socks5_proxy_agent = __commonJS({
19237
19237
  const proxyHost = this[kProxyUrl].hostname;
19238
19238
  const proxyPort = parseInt(this[kProxyUrl].port) || 1080;
19239
19239
  debug("creating SOCKS5 connection to", proxyHost, proxyPort);
19240
- const socket = await new Promise((resolve6, reject) => {
19240
+ const socket = await new Promise((resolve7, reject) => {
19241
19241
  const onConnect = () => {
19242
19242
  socket2.removeListener("error", onError);
19243
- resolve6(socket2);
19243
+ resolve7(socket2);
19244
19244
  };
19245
19245
  const onError = (err) => {
19246
19246
  socket2.removeListener("connect", onConnect);
@@ -19259,14 +19259,14 @@ var require_socks5_proxy_agent = __commonJS({
19259
19259
  socket.destroy();
19260
19260
  });
19261
19261
  await socks5Client.handshake();
19262
- await new Promise((resolve6, reject) => {
19262
+ await new Promise((resolve7, reject) => {
19263
19263
  const timeout = setTimeout(() => {
19264
19264
  reject(new Error("SOCKS5 authentication timeout"));
19265
19265
  }, 5e3);
19266
19266
  const onAuthenticated = () => {
19267
19267
  clearTimeout(timeout);
19268
19268
  socks5Client.removeListener("error", onError);
19269
- resolve6();
19269
+ resolve7();
19270
19270
  };
19271
19271
  const onError = (err) => {
19272
19272
  clearTimeout(timeout);
@@ -19275,14 +19275,14 @@ var require_socks5_proxy_agent = __commonJS({
19275
19275
  };
19276
19276
  if (socks5Client.state === "authenticated") {
19277
19277
  clearTimeout(timeout);
19278
- resolve6();
19278
+ resolve7();
19279
19279
  } else {
19280
19280
  socks5Client.once("authenticated", onAuthenticated);
19281
19281
  socks5Client.once("error", onError);
19282
19282
  }
19283
19283
  });
19284
19284
  await socks5Client.connect(targetHost, targetPort);
19285
- await new Promise((resolve6, reject) => {
19285
+ await new Promise((resolve7, reject) => {
19286
19286
  const timeout = setTimeout(() => {
19287
19287
  reject(new Error("SOCKS5 connection timeout"));
19288
19288
  }, 5e3);
@@ -19290,7 +19290,7 @@ var require_socks5_proxy_agent = __commonJS({
19290
19290
  debug("SOCKS5 tunnel established to", targetHost, targetPort, "via", info);
19291
19291
  clearTimeout(timeout);
19292
19292
  socks5Client.removeListener("error", onError);
19293
- resolve6();
19293
+ resolve7();
19294
19294
  };
19295
19295
  const onError = (err) => {
19296
19296
  clearTimeout(timeout);
@@ -19331,8 +19331,8 @@ var require_socks5_proxy_agent = __commonJS({
19331
19331
  servername: targetHost,
19332
19332
  ...connectOpts.tls || {}
19333
19333
  });
19334
- await new Promise((resolve6, reject) => {
19335
- finalSocket.once("secureConnect", resolve6);
19334
+ await new Promise((resolve7, reject) => {
19335
+ finalSocket.once("secureConnect", resolve7);
19336
19336
  finalSocket.once("error", reject);
19337
19337
  });
19338
19338
  }
@@ -20357,7 +20357,7 @@ var require_readable = __commonJS({
20357
20357
  if (this._readableState.closeEmitted) {
20358
20358
  return Promise.resolve(null);
20359
20359
  }
20360
- return new Promise((resolve6, reject) => {
20360
+ return new Promise((resolve7, reject) => {
20361
20361
  if (this[kContentLength] && this[kContentLength] > limit || this[kBytesRead] > limit) {
20362
20362
  this.destroy(new AbortError());
20363
20363
  }
@@ -20371,11 +20371,11 @@ var require_readable = __commonJS({
20371
20371
  if (signal.aborted) {
20372
20372
  reject(signal.reason ?? new AbortError());
20373
20373
  } else {
20374
- resolve6(null);
20374
+ resolve7(null);
20375
20375
  }
20376
20376
  });
20377
20377
  } else {
20378
- this.on("close", resolve6);
20378
+ this.on("close", resolve7);
20379
20379
  }
20380
20380
  this.on("error", noop).on("data", () => {
20381
20381
  if (this[kBytesRead] > limit) {
@@ -20403,7 +20403,7 @@ var require_readable = __commonJS({
20403
20403
  }
20404
20404
  function consume(stream, type) {
20405
20405
  assert(!stream[kConsume]);
20406
- return new Promise((resolve6, reject) => {
20406
+ return new Promise((resolve7, reject) => {
20407
20407
  if (isUnusable(stream)) {
20408
20408
  const rState = stream._readableState;
20409
20409
  if (rState.destroyed && rState.closeEmitted === false) {
@@ -20418,7 +20418,7 @@ var require_readable = __commonJS({
20418
20418
  stream[kConsume] = {
20419
20419
  type,
20420
20420
  stream,
20421
- resolve: resolve6,
20421
+ resolve: resolve7,
20422
20422
  reject,
20423
20423
  length: 0,
20424
20424
  body: []
@@ -20492,18 +20492,18 @@ var require_readable = __commonJS({
20492
20492
  return buffer;
20493
20493
  }
20494
20494
  function consumeEnd(consume2, encoding) {
20495
- const { type, body, resolve: resolve6, stream, length } = consume2;
20495
+ const { type, body, resolve: resolve7, stream, length } = consume2;
20496
20496
  try {
20497
20497
  if (type === "text") {
20498
- resolve6(chunksDecode(body, length, encoding));
20498
+ resolve7(chunksDecode(body, length, encoding));
20499
20499
  } else if (type === "json") {
20500
- resolve6(JSON.parse(chunksDecode(body, length, encoding)));
20500
+ resolve7(JSON.parse(chunksDecode(body, length, encoding)));
20501
20501
  } else if (type === "arrayBuffer") {
20502
- resolve6(chunksConcat(body, length).buffer);
20502
+ resolve7(chunksConcat(body, length).buffer);
20503
20503
  } else if (type === "blob") {
20504
- resolve6(new Blob(body, { type: stream[kContentType] }));
20504
+ resolve7(new Blob(body, { type: stream[kContentType] }));
20505
20505
  } else if (type === "bytes") {
20506
- resolve6(chunksConcat(body, length));
20506
+ resolve7(chunksConcat(body, length));
20507
20507
  }
20508
20508
  consumeFinish(consume2);
20509
20509
  } catch (err) {
@@ -20691,11 +20691,11 @@ var require_api_request = __commonJS({
20691
20691
  }
20692
20692
  }
20693
20693
  };
20694
- function request3(opts, callback) {
20694
+ function request4(opts, callback) {
20695
20695
  if (callback === void 0) {
20696
- return new Promise((resolve6, reject) => {
20697
- request3.call(this, opts, (err, data) => {
20698
- return err ? reject(err) : resolve6(data);
20696
+ return new Promise((resolve7, reject) => {
20697
+ request4.call(this, opts, (err, data) => {
20698
+ return err ? reject(err) : resolve7(data);
20699
20699
  });
20700
20700
  });
20701
20701
  }
@@ -20710,7 +20710,7 @@ var require_api_request = __commonJS({
20710
20710
  queueMicrotask(() => callback(err, { opaque }));
20711
20711
  }
20712
20712
  }
20713
- module.exports = request3;
20713
+ module.exports = request4;
20714
20714
  module.exports.RequestHandler = RequestHandler;
20715
20715
  }
20716
20716
  });
@@ -20907,9 +20907,9 @@ var require_api_stream = __commonJS({
20907
20907
  };
20908
20908
  function stream(opts, factory, callback) {
20909
20909
  if (callback === void 0) {
20910
- return new Promise((resolve6, reject) => {
20910
+ return new Promise((resolve7, reject) => {
20911
20911
  stream.call(this, opts, factory, (err, data) => {
20912
- return err ? reject(err) : resolve6(data);
20912
+ return err ? reject(err) : resolve7(data);
20913
20913
  });
20914
20914
  });
20915
20915
  }
@@ -21197,9 +21197,9 @@ var require_api_upgrade = __commonJS({
21197
21197
  };
21198
21198
  function upgrade(opts, callback) {
21199
21199
  if (callback === void 0) {
21200
- return new Promise((resolve6, reject) => {
21200
+ return new Promise((resolve7, reject) => {
21201
21201
  upgrade.call(this, opts, (err, data) => {
21202
- return err ? reject(err) : resolve6(data);
21202
+ return err ? reject(err) : resolve7(data);
21203
21203
  });
21204
21204
  });
21205
21205
  }
@@ -21292,9 +21292,9 @@ var require_api_connect = __commonJS({
21292
21292
  };
21293
21293
  function connect(opts, callback) {
21294
21294
  if (callback === void 0) {
21295
- return new Promise((resolve6, reject) => {
21295
+ return new Promise((resolve7, reject) => {
21296
21296
  connect.call(this, opts, (err, data) => {
21297
- return err ? reject(err) : resolve6(data);
21297
+ return err ? reject(err) : resolve7(data);
21298
21298
  });
21299
21299
  });
21300
21300
  }
@@ -22567,8 +22567,8 @@ var require_snapshot_utils = __commonJS({
22567
22567
  var require_snapshot_recorder = __commonJS({
22568
22568
  "../../node_modules/.pnpm/undici@7.25.0/node_modules/undici/lib/mock/snapshot-recorder.js"(exports, module) {
22569
22569
  "use strict";
22570
- var { writeFile: writeFile2, readFile: readFile2, mkdir: mkdir3 } = __require("fs/promises");
22571
- var { dirname: dirname9, resolve: resolve6 } = __require("path");
22570
+ var { writeFile: writeFile3, readFile: readFile2, mkdir: mkdir4 } = __require("fs/promises");
22571
+ var { dirname: dirname9, resolve: resolve7 } = __require("path");
22572
22572
  var { setTimeout: setTimeout2, clearTimeout: clearTimeout2 } = __require("timers");
22573
22573
  var { InvalidArgumentError, UndiciError } = require_errors();
22574
22574
  var { hashId, isUrlExcludedFactory, normalizeHeaders, createHeaderFilters } = require_snapshot_utils();
@@ -22693,8 +22693,8 @@ var require_snapshot_recorder = __commonJS({
22693
22693
  if (this.isUrlExcluded(requestOpts)) {
22694
22694
  return;
22695
22695
  }
22696
- const request3 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
22697
- const hash = createRequestHash(request3);
22696
+ const request4 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
22697
+ const hash = createRequestHash(request4);
22698
22698
  const normalizedHeaders = normalizeHeaders(response.headers);
22699
22699
  const responseData = {
22700
22700
  statusCode: response.statusCode,
@@ -22712,7 +22712,7 @@ var require_snapshot_recorder = __commonJS({
22712
22712
  existingSnapshot.timestamp = (/* @__PURE__ */ new Date()).toISOString();
22713
22713
  } else {
22714
22714
  this.#snapshots.set(hash, {
22715
- request: request3,
22715
+ request: request4,
22716
22716
  responses: [responseData],
22717
22717
  // Always store as array for consistency
22718
22718
  callCount: 0,
@@ -22746,8 +22746,8 @@ var require_snapshot_recorder = __commonJS({
22746
22746
  if (this.isUrlExcluded(requestOpts)) {
22747
22747
  return void 0;
22748
22748
  }
22749
- const request3 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
22750
- const hash = createRequestHash(request3);
22749
+ const request4 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
22750
+ const hash = createRequestHash(request4);
22751
22751
  const snapshot = this.#snapshots.get(hash);
22752
22752
  if (!snapshot) return void 0;
22753
22753
  const currentCallCount = snapshot.callCount || 0;
@@ -22769,7 +22769,7 @@ var require_snapshot_recorder = __commonJS({
22769
22769
  throw new InvalidArgumentError("Snapshot path is required");
22770
22770
  }
22771
22771
  try {
22772
- const data = await readFile2(resolve6(path), "utf8");
22772
+ const data = await readFile2(resolve7(path), "utf8");
22773
22773
  const parsed = JSON.parse(data);
22774
22774
  if (Array.isArray(parsed)) {
22775
22775
  this.#snapshots.clear();
@@ -22798,13 +22798,13 @@ var require_snapshot_recorder = __commonJS({
22798
22798
  if (!path) {
22799
22799
  throw new InvalidArgumentError("Snapshot path is required");
22800
22800
  }
22801
- const resolvedPath = resolve6(path);
22802
- await mkdir3(dirname9(resolvedPath), { recursive: true });
22801
+ const resolvedPath = resolve7(path);
22802
+ await mkdir4(dirname9(resolvedPath), { recursive: true });
22803
22803
  const data = Array.from(this.#snapshots.entries()).map(([hash, snapshot]) => ({
22804
22804
  hash,
22805
22805
  snapshot
22806
22806
  }));
22807
- await writeFile2(resolvedPath, JSON.stringify(data, null, 2), { flush: true });
22807
+ await writeFile3(resolvedPath, JSON.stringify(data, null, 2), { flush: true });
22808
22808
  }
22809
22809
  /**
22810
22810
  * Clears all recorded snapshots
@@ -22842,8 +22842,8 @@ var require_snapshot_recorder = __commonJS({
22842
22842
  * @returns {boolean} - True if snapshot was deleted, false if not found
22843
22843
  */
22844
22844
  deleteSnapshot(requestOpts) {
22845
- const request3 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
22846
- const hash = createRequestHash(request3);
22845
+ const request4 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
22846
+ const hash = createRequestHash(request4);
22847
22847
  return this.#snapshots.delete(hash);
22848
22848
  }
22849
22849
  /**
@@ -22852,8 +22852,8 @@ var require_snapshot_recorder = __commonJS({
22852
22852
  * @returns {SnapshotInfo|null} - Snapshot information or null if not found
22853
22853
  */
22854
22854
  getSnapshotInfo(requestOpts) {
22855
- const request3 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
22856
- const hash = createRequestHash(request3);
22855
+ const request4 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
22856
+ const hash = createRequestHash(request4);
22857
22857
  const snapshot = this.#snapshots.get(hash);
22858
22858
  if (!snapshot) return null;
22859
22859
  return {
@@ -23144,16 +23144,16 @@ var require_snapshot_agent = __commonJS({
23144
23144
  */
23145
23145
  #setupMockInterceptors() {
23146
23146
  for (const snapshot of this[kSnapshotRecorder].getSnapshots()) {
23147
- const { request: request3, responses, response } = snapshot;
23148
- const url = new URL(request3.url);
23147
+ const { request: request4, responses, response } = snapshot;
23148
+ const url = new URL(request4.url);
23149
23149
  const mockPool = this.get(url.origin);
23150
23150
  const responseData = responses ? responses[0] : response;
23151
23151
  if (!responseData) continue;
23152
23152
  mockPool.intercept({
23153
23153
  path: url.pathname + url.search,
23154
- method: request3.method,
23155
- headers: request3.headers,
23156
- body: request3.body
23154
+ method: request4.method,
23155
+ headers: request4.headers,
23156
+ body: request4.body
23157
23157
  }).reply(responseData.statusCode, responseData.body, {
23158
23158
  headers: responseData.headers,
23159
23159
  trailers: responseData.trailers
@@ -27870,7 +27870,7 @@ var require_request2 = __commonJS({
27870
27870
  webidl.argumentLengthCheck(arguments, 1, prefix);
27871
27871
  input = webidl.converters.RequestInfo(input);
27872
27872
  init = webidl.converters.RequestInit(init);
27873
- let request3 = null;
27873
+ let request4 = null;
27874
27874
  let fallbackMode = null;
27875
27875
  const baseUrl = environmentSettingsObject.settingsObject.baseUrl;
27876
27876
  let signal = null;
@@ -27887,18 +27887,18 @@ var require_request2 = __commonJS({
27887
27887
  "Request cannot be constructed from a URL that includes credentials: " + input
27888
27888
  );
27889
27889
  }
27890
- request3 = makeRequest({ urlList: [parsedURL] });
27890
+ request4 = makeRequest({ urlList: [parsedURL] });
27891
27891
  fallbackMode = "cors";
27892
27892
  } else {
27893
27893
  assert(webidl.is.Request(input));
27894
- request3 = input.#state;
27894
+ request4 = input.#state;
27895
27895
  signal = input.#signal;
27896
27896
  this.#dispatcher = init.dispatcher || input.#dispatcher;
27897
27897
  }
27898
27898
  const origin = environmentSettingsObject.settingsObject.origin;
27899
27899
  let window2 = "client";
27900
- if (request3.window?.constructor?.name === "EnvironmentSettingsObject" && sameOrigin(request3.window, origin)) {
27901
- window2 = request3.window;
27900
+ if (request4.window?.constructor?.name === "EnvironmentSettingsObject" && sameOrigin(request4.window, origin)) {
27901
+ window2 = request4.window;
27902
27902
  }
27903
27903
  if (init.window != null) {
27904
27904
  throw new TypeError(`'window' option '${window2}' must be null`);
@@ -27906,66 +27906,66 @@ var require_request2 = __commonJS({
27906
27906
  if ("window" in init) {
27907
27907
  window2 = "no-window";
27908
27908
  }
27909
- request3 = makeRequest({
27909
+ request4 = makeRequest({
27910
27910
  // URL request’s URL.
27911
27911
  // undici implementation note: this is set as the first item in request's urlList in makeRequest
27912
27912
  // method request’s method.
27913
- method: request3.method,
27913
+ method: request4.method,
27914
27914
  // header list A copy of request’s header list.
27915
27915
  // undici implementation note: headersList is cloned in makeRequest
27916
- headersList: request3.headersList,
27916
+ headersList: request4.headersList,
27917
27917
  // unsafe-request flag Set.
27918
- unsafeRequest: request3.unsafeRequest,
27918
+ unsafeRequest: request4.unsafeRequest,
27919
27919
  // client This’s relevant settings object.
27920
27920
  client: environmentSettingsObject.settingsObject,
27921
27921
  // window window.
27922
27922
  window: window2,
27923
27923
  // priority request’s priority.
27924
- priority: request3.priority,
27924
+ priority: request4.priority,
27925
27925
  // origin request’s origin. The propagation of the origin is only significant for navigation requests
27926
27926
  // being handled by a service worker. In this scenario a request can have an origin that is different
27927
27927
  // from the current client.
27928
- origin: request3.origin,
27928
+ origin: request4.origin,
27929
27929
  // referrer request’s referrer.
27930
- referrer: request3.referrer,
27930
+ referrer: request4.referrer,
27931
27931
  // referrer policy request’s referrer policy.
27932
- referrerPolicy: request3.referrerPolicy,
27932
+ referrerPolicy: request4.referrerPolicy,
27933
27933
  // mode request’s mode.
27934
- mode: request3.mode,
27934
+ mode: request4.mode,
27935
27935
  // credentials mode request’s credentials mode.
27936
- credentials: request3.credentials,
27936
+ credentials: request4.credentials,
27937
27937
  // cache mode request’s cache mode.
27938
- cache: request3.cache,
27938
+ cache: request4.cache,
27939
27939
  // redirect mode request’s redirect mode.
27940
- redirect: request3.redirect,
27940
+ redirect: request4.redirect,
27941
27941
  // integrity metadata request’s integrity metadata.
27942
- integrity: request3.integrity,
27942
+ integrity: request4.integrity,
27943
27943
  // keepalive request’s keepalive.
27944
- keepalive: request3.keepalive,
27944
+ keepalive: request4.keepalive,
27945
27945
  // reload-navigation flag request’s reload-navigation flag.
27946
- reloadNavigation: request3.reloadNavigation,
27946
+ reloadNavigation: request4.reloadNavigation,
27947
27947
  // history-navigation flag request’s history-navigation flag.
27948
- historyNavigation: request3.historyNavigation,
27948
+ historyNavigation: request4.historyNavigation,
27949
27949
  // URL list A clone of request’s URL list.
27950
- urlList: [...request3.urlList]
27950
+ urlList: [...request4.urlList]
27951
27951
  });
27952
27952
  const initHasKey = Object.keys(init).length !== 0;
27953
27953
  if (initHasKey) {
27954
- if (request3.mode === "navigate") {
27955
- request3.mode = "same-origin";
27954
+ if (request4.mode === "navigate") {
27955
+ request4.mode = "same-origin";
27956
27956
  }
27957
- request3.reloadNavigation = false;
27958
- request3.historyNavigation = false;
27959
- request3.origin = "client";
27960
- request3.referrer = "client";
27961
- request3.referrerPolicy = "";
27962
- request3.url = request3.urlList[request3.urlList.length - 1];
27963
- request3.urlList = [request3.url];
27957
+ request4.reloadNavigation = false;
27958
+ request4.historyNavigation = false;
27959
+ request4.origin = "client";
27960
+ request4.referrer = "client";
27961
+ request4.referrerPolicy = "";
27962
+ request4.url = request4.urlList[request4.urlList.length - 1];
27963
+ request4.urlList = [request4.url];
27964
27964
  }
27965
27965
  if (init.referrer !== void 0) {
27966
27966
  const referrer = init.referrer;
27967
27967
  if (referrer === "") {
27968
- request3.referrer = "no-referrer";
27968
+ request4.referrer = "no-referrer";
27969
27969
  } else {
27970
27970
  let parsedReferrer;
27971
27971
  try {
@@ -27974,14 +27974,14 @@ var require_request2 = __commonJS({
27974
27974
  throw new TypeError(`Referrer "${referrer}" is not a valid URL.`, { cause: err });
27975
27975
  }
27976
27976
  if (parsedReferrer.protocol === "about:" && parsedReferrer.hostname === "client" || origin && !sameOrigin(parsedReferrer, environmentSettingsObject.settingsObject.baseUrl)) {
27977
- request3.referrer = "client";
27977
+ request4.referrer = "client";
27978
27978
  } else {
27979
- request3.referrer = parsedReferrer;
27979
+ request4.referrer = parsedReferrer;
27980
27980
  }
27981
27981
  }
27982
27982
  }
27983
27983
  if (init.referrerPolicy !== void 0) {
27984
- request3.referrerPolicy = init.referrerPolicy;
27984
+ request4.referrerPolicy = init.referrerPolicy;
27985
27985
  }
27986
27986
  let mode;
27987
27987
  if (init.mode !== void 0) {
@@ -27996,33 +27996,33 @@ var require_request2 = __commonJS({
27996
27996
  });
27997
27997
  }
27998
27998
  if (mode != null) {
27999
- request3.mode = mode;
27999
+ request4.mode = mode;
28000
28000
  }
28001
28001
  if (init.credentials !== void 0) {
28002
- request3.credentials = init.credentials;
28002
+ request4.credentials = init.credentials;
28003
28003
  }
28004
28004
  if (init.cache !== void 0) {
28005
- request3.cache = init.cache;
28005
+ request4.cache = init.cache;
28006
28006
  }
28007
- if (request3.cache === "only-if-cached" && request3.mode !== "same-origin") {
28007
+ if (request4.cache === "only-if-cached" && request4.mode !== "same-origin") {
28008
28008
  throw new TypeError(
28009
28009
  "'only-if-cached' can be set only with 'same-origin' mode"
28010
28010
  );
28011
28011
  }
28012
28012
  if (init.redirect !== void 0) {
28013
- request3.redirect = init.redirect;
28013
+ request4.redirect = init.redirect;
28014
28014
  }
28015
28015
  if (init.integrity != null) {
28016
- request3.integrity = String(init.integrity);
28016
+ request4.integrity = String(init.integrity);
28017
28017
  }
28018
28018
  if (init.keepalive !== void 0) {
28019
- request3.keepalive = Boolean(init.keepalive);
28019
+ request4.keepalive = Boolean(init.keepalive);
28020
28020
  }
28021
28021
  if (init.method !== void 0) {
28022
28022
  let method = init.method;
28023
28023
  const mayBeNormalized = normalizedMethodRecords[method];
28024
28024
  if (mayBeNormalized !== void 0) {
28025
- request3.method = mayBeNormalized;
28025
+ request4.method = mayBeNormalized;
28026
28026
  } else {
28027
28027
  if (!isValidHTTPToken(method)) {
28028
28028
  throw new TypeError(`'${method}' is not a valid HTTP method.`);
@@ -28032,9 +28032,9 @@ var require_request2 = __commonJS({
28032
28032
  throw new TypeError(`'${method}' HTTP method is unsupported.`);
28033
28033
  }
28034
28034
  method = normalizedMethodRecordsBase[upperCase] ?? method;
28035
- request3.method = method;
28035
+ request4.method = method;
28036
28036
  }
28037
- if (!patchMethodWarning && request3.method === "patch") {
28037
+ if (!patchMethodWarning && request4.method === "patch") {
28038
28038
  process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.", {
28039
28039
  code: "UNDICI-FETCH-patch"
28040
28040
  });
@@ -28044,7 +28044,7 @@ var require_request2 = __commonJS({
28044
28044
  if (init.signal !== void 0) {
28045
28045
  signal = init.signal;
28046
28046
  }
28047
- this.#state = request3;
28047
+ this.#state = request4;
28048
28048
  const ac = new AbortController();
28049
28049
  this.#signal = ac.signal;
28050
28050
  if (signal != null) {
@@ -28062,12 +28062,12 @@ var require_request2 = __commonJS({
28062
28062
  }
28063
28063
  }
28064
28064
  this.#headers = new Headers(kConstruct);
28065
- setHeadersList(this.#headers, request3.headersList);
28065
+ setHeadersList(this.#headers, request4.headersList);
28066
28066
  setHeadersGuard(this.#headers, "request");
28067
28067
  if (mode === "no-cors") {
28068
- if (!corsSafeListedMethodsSet.has(request3.method)) {
28068
+ if (!corsSafeListedMethodsSet.has(request4.method)) {
28069
28069
  throw new TypeError(
28070
- `'${request3.method} is unsupported in no-cors mode.`
28070
+ `'${request4.method} is unsupported in no-cors mode.`
28071
28071
  );
28072
28072
  }
28073
28073
  setHeadersGuard(this.#headers, "request-no-cors");
@@ -28086,14 +28086,14 @@ var require_request2 = __commonJS({
28086
28086
  }
28087
28087
  }
28088
28088
  const inputBody = webidl.is.Request(input) ? input.#state.body : null;
28089
- if ((init.body != null || inputBody != null) && (request3.method === "GET" || request3.method === "HEAD")) {
28089
+ if ((init.body != null || inputBody != null) && (request4.method === "GET" || request4.method === "HEAD")) {
28090
28090
  throw new TypeError("Request with GET/HEAD method cannot have body.");
28091
28091
  }
28092
28092
  let initBody = null;
28093
28093
  if (init.body != null) {
28094
28094
  const [extractedBody, contentType] = extractBody(
28095
28095
  init.body,
28096
- request3.keepalive
28096
+ request4.keepalive
28097
28097
  );
28098
28098
  initBody = extractedBody;
28099
28099
  if (contentType && !getHeadersList(this.#headers).contains("content-type", true)) {
@@ -28105,12 +28105,12 @@ var require_request2 = __commonJS({
28105
28105
  if (initBody != null && init.duplex == null) {
28106
28106
  throw new TypeError("RequestInit: duplex option is required when sending a body.");
28107
28107
  }
28108
- if (request3.mode !== "same-origin" && request3.mode !== "cors") {
28108
+ if (request4.mode !== "same-origin" && request4.mode !== "cors") {
28109
28109
  throw new TypeError(
28110
28110
  'If request is made from ReadableStream, mode should be "same-origin" or "cors"'
28111
28111
  );
28112
28112
  }
28113
- request3.useCORSPreflightFlag = true;
28113
+ request4.useCORSPreflightFlag = true;
28114
28114
  }
28115
28115
  let finalBody = inputOrInitBody;
28116
28116
  if (initBody == null && inputBody != null) {
@@ -28300,42 +28300,42 @@ var require_request2 = __commonJS({
28300
28300
  * @param {Request} request
28301
28301
  * @param {AbortSignal} newSignal
28302
28302
  */
28303
- static setRequestSignal(request3, newSignal) {
28304
- request3.#signal = newSignal;
28305
- return request3;
28303
+ static setRequestSignal(request4, newSignal) {
28304
+ request4.#signal = newSignal;
28305
+ return request4;
28306
28306
  }
28307
28307
  /**
28308
28308
  * @param {Request} request
28309
28309
  */
28310
- static getRequestDispatcher(request3) {
28311
- return request3.#dispatcher;
28310
+ static getRequestDispatcher(request4) {
28311
+ return request4.#dispatcher;
28312
28312
  }
28313
28313
  /**
28314
28314
  * @param {Request} request
28315
28315
  * @param {import('../../dispatcher/dispatcher')} newDispatcher
28316
28316
  */
28317
- static setRequestDispatcher(request3, newDispatcher) {
28318
- request3.#dispatcher = newDispatcher;
28317
+ static setRequestDispatcher(request4, newDispatcher) {
28318
+ request4.#dispatcher = newDispatcher;
28319
28319
  }
28320
28320
  /**
28321
28321
  * @param {Request} request
28322
28322
  * @param {Headers} newHeaders
28323
28323
  */
28324
- static setRequestHeaders(request3, newHeaders) {
28325
- request3.#headers = newHeaders;
28324
+ static setRequestHeaders(request4, newHeaders) {
28325
+ request4.#headers = newHeaders;
28326
28326
  }
28327
28327
  /**
28328
28328
  * @param {Request} request
28329
28329
  */
28330
- static getRequestState(request3) {
28331
- return request3.#state;
28330
+ static getRequestState(request4) {
28331
+ return request4.#state;
28332
28332
  }
28333
28333
  /**
28334
28334
  * @param {Request} request
28335
28335
  * @param {any} newState
28336
28336
  */
28337
- static setRequestState(request3, newState) {
28338
- request3.#state = newState;
28337
+ static setRequestState(request4, newState) {
28338
+ request4.#state = newState;
28339
28339
  }
28340
28340
  };
28341
28341
  var { setRequestSignal, getRequestDispatcher, setRequestDispatcher, setRequestHeaders, getRequestState, setRequestState } = Request;
@@ -28390,23 +28390,23 @@ var require_request2 = __commonJS({
28390
28390
  headersList: init.headersList ? new HeadersList(init.headersList) : new HeadersList()
28391
28391
  };
28392
28392
  }
28393
- function cloneRequest(request3) {
28394
- const newRequest = makeRequest({ ...request3, body: null });
28395
- if (request3.body != null) {
28396
- newRequest.body = cloneBody(request3.body);
28393
+ function cloneRequest(request4) {
28394
+ const newRequest = makeRequest({ ...request4, body: null });
28395
+ if (request4.body != null) {
28396
+ newRequest.body = cloneBody(request4.body);
28397
28397
  }
28398
28398
  return newRequest;
28399
28399
  }
28400
28400
  function fromInnerRequest(innerRequest, dispatcher, signal, guard) {
28401
- const request3 = new Request(kConstruct);
28402
- setRequestState(request3, innerRequest);
28403
- setRequestDispatcher(request3, dispatcher);
28404
- setRequestSignal(request3, signal);
28401
+ const request4 = new Request(kConstruct);
28402
+ setRequestState(request4, innerRequest);
28403
+ setRequestDispatcher(request4, dispatcher);
28404
+ setRequestSignal(request4, signal);
28405
28405
  const headers = new Headers(kConstruct);
28406
- setRequestHeaders(request3, headers);
28406
+ setRequestHeaders(request4, headers);
28407
28407
  setHeadersList(headers, innerRequest.headersList);
28408
28408
  setHeadersGuard(headers, guard);
28409
- return request3;
28409
+ return request4;
28410
28410
  }
28411
28411
  Object.defineProperties(Request.prototype, {
28412
28412
  method: kEnumerableProperty,
@@ -28798,14 +28798,14 @@ var require_fetch = __commonJS({
28798
28798
  p.reject(e);
28799
28799
  return p.promise;
28800
28800
  }
28801
- const request3 = getRequestState(requestObject);
28801
+ const request4 = getRequestState(requestObject);
28802
28802
  if (requestObject.signal.aborted) {
28803
- abortFetch(p, request3, null, requestObject.signal.reason, null);
28803
+ abortFetch(p, request4, null, requestObject.signal.reason, null);
28804
28804
  return p.promise;
28805
28805
  }
28806
- const globalObject = request3.client.globalObject;
28806
+ const globalObject = request4.client.globalObject;
28807
28807
  if (globalObject?.constructor?.name === "ServiceWorkerGlobalScope") {
28808
- request3.serviceWorkers = "none";
28808
+ request4.serviceWorkers = "none";
28809
28809
  }
28810
28810
  let responseObject = null;
28811
28811
  let locallyAborted = false;
@@ -28817,7 +28817,7 @@ var require_fetch = __commonJS({
28817
28817
  assert(controller != null);
28818
28818
  controller.abort(requestObject.signal.reason);
28819
28819
  const realResponse = responseObject?.deref();
28820
- abortFetch(p, request3, realResponse, requestObject.signal.reason, controller.controller);
28820
+ abortFetch(p, request4, realResponse, requestObject.signal.reason, controller.controller);
28821
28821
  }
28822
28822
  );
28823
28823
  const processResponse = (response) => {
@@ -28825,7 +28825,7 @@ var require_fetch = __commonJS({
28825
28825
  return;
28826
28826
  }
28827
28827
  if (response.aborted) {
28828
- abortFetch(p, request3, responseObject, controller.serializedAbortReason, controller.controller);
28828
+ abortFetch(p, request4, responseObject, controller.serializedAbortReason, controller.controller);
28829
28829
  return;
28830
28830
  }
28831
28831
  if (response.type === "error") {
@@ -28837,7 +28837,7 @@ var require_fetch = __commonJS({
28837
28837
  p = null;
28838
28838
  };
28839
28839
  controller = fetching({
28840
- request: request3,
28840
+ request: request4,
28841
28841
  processResponseEndOfBody: handleFetchDone,
28842
28842
  processResponse,
28843
28843
  dispatcher: getRequestDispatcher(requestObject),
@@ -28884,12 +28884,12 @@ var require_fetch = __commonJS({
28884
28884
  );
28885
28885
  }
28886
28886
  var markResourceTiming = performance.markResourceTiming;
28887
- function abortFetch(p, request3, responseObject, error, controller) {
28887
+ function abortFetch(p, request4, responseObject, error, controller) {
28888
28888
  if (p) {
28889
28889
  p.reject(error);
28890
28890
  }
28891
- if (request3.body?.stream != null && isReadable(request3.body.stream)) {
28892
- request3.body.stream.cancel(error).catch((err) => {
28891
+ if (request4.body?.stream != null && isReadable(request4.body.stream)) {
28892
+ request4.body.stream.cancel(error).catch((err) => {
28893
28893
  if (err.code === "ERR_INVALID_STATE") {
28894
28894
  return;
28895
28895
  }
@@ -28905,7 +28905,7 @@ var require_fetch = __commonJS({
28905
28905
  }
28906
28906
  }
28907
28907
  function fetching({
28908
- request: request3,
28908
+ request: request4,
28909
28909
  processRequestBodyChunkLength,
28910
28910
  processRequestEndOfBody,
28911
28911
  processResponse,
@@ -28920,9 +28920,9 @@ var require_fetch = __commonJS({
28920
28920
  assert(dispatcher);
28921
28921
  let taskDestination = null;
28922
28922
  let crossOriginIsolatedCapability = false;
28923
- if (request3.client != null) {
28924
- taskDestination = request3.client.globalObject;
28925
- crossOriginIsolatedCapability = request3.client.crossOriginIsolatedCapability;
28923
+ if (request4.client != null) {
28924
+ taskDestination = request4.client.globalObject;
28925
+ crossOriginIsolatedCapability = request4.client.crossOriginIsolatedCapability;
28926
28926
  }
28927
28927
  const currentTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability);
28928
28928
  const timingInfo = createOpaqueTimingInfo({
@@ -28930,7 +28930,7 @@ var require_fetch = __commonJS({
28930
28930
  });
28931
28931
  const fetchParams = {
28932
28932
  controller: new Fetch(dispatcher),
28933
- request: request3,
28933
+ request: request4,
28934
28934
  timingInfo,
28935
28935
  processRequestBodyChunkLength,
28936
28936
  processRequestEndOfBody,
@@ -28942,79 +28942,79 @@ var require_fetch = __commonJS({
28942
28942
  // Keep requestObject alive to prevent its AbortController from being GC'd
28943
28943
  requestObject
28944
28944
  };
28945
- assert(!request3.body || request3.body.stream);
28946
- if (request3.window === "client") {
28947
- request3.window = request3.client?.globalObject?.constructor?.name === "Window" ? request3.client : "no-window";
28945
+ assert(!request4.body || request4.body.stream);
28946
+ if (request4.window === "client") {
28947
+ request4.window = request4.client?.globalObject?.constructor?.name === "Window" ? request4.client : "no-window";
28948
28948
  }
28949
- if (request3.origin === "client") {
28950
- request3.origin = request3.client.origin;
28949
+ if (request4.origin === "client") {
28950
+ request4.origin = request4.client.origin;
28951
28951
  }
28952
- if (request3.policyContainer === "client") {
28953
- if (request3.client != null) {
28954
- request3.policyContainer = clonePolicyContainer(
28955
- request3.client.policyContainer
28952
+ if (request4.policyContainer === "client") {
28953
+ if (request4.client != null) {
28954
+ request4.policyContainer = clonePolicyContainer(
28955
+ request4.client.policyContainer
28956
28956
  );
28957
28957
  } else {
28958
- request3.policyContainer = makePolicyContainer();
28958
+ request4.policyContainer = makePolicyContainer();
28959
28959
  }
28960
28960
  }
28961
- if (!request3.headersList.contains("accept", true)) {
28961
+ if (!request4.headersList.contains("accept", true)) {
28962
28962
  const value = "*/*";
28963
- request3.headersList.append("accept", value, true);
28963
+ request4.headersList.append("accept", value, true);
28964
28964
  }
28965
- if (!request3.headersList.contains("accept-language", true)) {
28966
- request3.headersList.append("accept-language", "*", true);
28965
+ if (!request4.headersList.contains("accept-language", true)) {
28966
+ request4.headersList.append("accept-language", "*", true);
28967
28967
  }
28968
- if (request3.priority === null) {
28968
+ if (request4.priority === null) {
28969
28969
  }
28970
- if (subresourceSet.has(request3.destination)) {
28970
+ if (subresourceSet.has(request4.destination)) {
28971
28971
  }
28972
28972
  mainFetch(fetchParams, false);
28973
28973
  return fetchParams.controller;
28974
28974
  }
28975
28975
  async function mainFetch(fetchParams, recursive) {
28976
28976
  try {
28977
- const request3 = fetchParams.request;
28977
+ const request4 = fetchParams.request;
28978
28978
  let response = null;
28979
- if (request3.localURLsOnly && !urlIsLocal(requestCurrentURL(request3))) {
28979
+ if (request4.localURLsOnly && !urlIsLocal(requestCurrentURL(request4))) {
28980
28980
  response = makeNetworkError("local URLs only");
28981
28981
  }
28982
- tryUpgradeRequestToAPotentiallyTrustworthyURL(request3);
28983
- if (requestBadPort(request3) === "blocked") {
28982
+ tryUpgradeRequestToAPotentiallyTrustworthyURL(request4);
28983
+ if (requestBadPort(request4) === "blocked") {
28984
28984
  response = makeNetworkError("bad port");
28985
28985
  }
28986
- if (request3.referrerPolicy === "") {
28987
- request3.referrerPolicy = request3.policyContainer.referrerPolicy;
28986
+ if (request4.referrerPolicy === "") {
28987
+ request4.referrerPolicy = request4.policyContainer.referrerPolicy;
28988
28988
  }
28989
- if (request3.referrer !== "no-referrer") {
28990
- request3.referrer = determineRequestsReferrer(request3);
28989
+ if (request4.referrer !== "no-referrer") {
28990
+ request4.referrer = determineRequestsReferrer(request4);
28991
28991
  }
28992
28992
  if (response === null) {
28993
- const currentURL = requestCurrentURL(request3);
28993
+ const currentURL = requestCurrentURL(request4);
28994
28994
  if (
28995
28995
  // - request’s current URL’s origin is same origin with request’s origin,
28996
28996
  // and request’s response tainting is "basic"
28997
- sameOrigin(currentURL, request3.url) && request3.responseTainting === "basic" || // request’s current URL’s scheme is "data"
28997
+ sameOrigin(currentURL, request4.url) && request4.responseTainting === "basic" || // request’s current URL’s scheme is "data"
28998
28998
  currentURL.protocol === "data:" || // - request’s mode is "navigate" or "websocket"
28999
- (request3.mode === "navigate" || request3.mode === "websocket")
28999
+ (request4.mode === "navigate" || request4.mode === "websocket")
29000
29000
  ) {
29001
- request3.responseTainting = "basic";
29001
+ request4.responseTainting = "basic";
29002
29002
  response = await schemeFetch(fetchParams);
29003
- } else if (request3.mode === "same-origin") {
29003
+ } else if (request4.mode === "same-origin") {
29004
29004
  response = makeNetworkError('request mode cannot be "same-origin"');
29005
- } else if (request3.mode === "no-cors") {
29006
- if (request3.redirect !== "follow") {
29005
+ } else if (request4.mode === "no-cors") {
29006
+ if (request4.redirect !== "follow") {
29007
29007
  response = makeNetworkError(
29008
29008
  'redirect mode cannot be "follow" for "no-cors" request'
29009
29009
  );
29010
29010
  } else {
29011
- request3.responseTainting = "opaque";
29011
+ request4.responseTainting = "opaque";
29012
29012
  response = await schemeFetch(fetchParams);
29013
29013
  }
29014
- } else if (!urlIsHttpHttpsScheme(requestCurrentURL(request3))) {
29014
+ } else if (!urlIsHttpHttpsScheme(requestCurrentURL(request4))) {
29015
29015
  response = makeNetworkError("URL scheme must be a HTTP(S) scheme");
29016
29016
  } else {
29017
- request3.responseTainting = "cors";
29017
+ request4.responseTainting = "cors";
29018
29018
  response = await httpFetch(fetchParams);
29019
29019
  }
29020
29020
  }
@@ -29022,13 +29022,13 @@ var require_fetch = __commonJS({
29022
29022
  return response;
29023
29023
  }
29024
29024
  if (response.status !== 0 && !response.internalResponse) {
29025
- if (request3.responseTainting === "cors") {
29025
+ if (request4.responseTainting === "cors") {
29026
29026
  }
29027
- if (request3.responseTainting === "basic") {
29027
+ if (request4.responseTainting === "basic") {
29028
29028
  response = filterResponse(response, "basic");
29029
- } else if (request3.responseTainting === "cors") {
29029
+ } else if (request4.responseTainting === "cors") {
29030
29030
  response = filterResponse(response, "cors");
29031
- } else if (request3.responseTainting === "opaque") {
29031
+ } else if (request4.responseTainting === "opaque") {
29032
29032
  response = filterResponse(response, "opaque");
29033
29033
  } else {
29034
29034
  assert(false);
@@ -29036,26 +29036,26 @@ var require_fetch = __commonJS({
29036
29036
  }
29037
29037
  let internalResponse = response.status === 0 ? response : response.internalResponse;
29038
29038
  if (internalResponse.urlList.length === 0) {
29039
- internalResponse.urlList.push(...request3.urlList);
29039
+ internalResponse.urlList.push(...request4.urlList);
29040
29040
  }
29041
- if (!request3.timingAllowFailed) {
29041
+ if (!request4.timingAllowFailed) {
29042
29042
  response.timingAllowPassed = true;
29043
29043
  }
29044
- if (response.type === "opaque" && internalResponse.status === 206 && internalResponse.rangeRequested && !request3.headers.contains("range", true)) {
29044
+ if (response.type === "opaque" && internalResponse.status === 206 && internalResponse.rangeRequested && !request4.headers.contains("range", true)) {
29045
29045
  response = internalResponse = makeNetworkError();
29046
29046
  }
29047
- if (response.status !== 0 && (request3.method === "HEAD" || request3.method === "CONNECT" || nullBodyStatus.includes(internalResponse.status))) {
29047
+ if (response.status !== 0 && (request4.method === "HEAD" || request4.method === "CONNECT" || nullBodyStatus.includes(internalResponse.status))) {
29048
29048
  internalResponse.body = null;
29049
29049
  fetchParams.controller.dump = true;
29050
29050
  }
29051
- if (request3.integrity) {
29051
+ if (request4.integrity) {
29052
29052
  const processBodyError = (reason) => fetchFinale(fetchParams, makeNetworkError(reason));
29053
- if (request3.responseTainting === "opaque" || response.body == null) {
29053
+ if (request4.responseTainting === "opaque" || response.body == null) {
29054
29054
  processBodyError(response.error);
29055
29055
  return;
29056
29056
  }
29057
29057
  const processBody = (bytes) => {
29058
- if (!bytesMatch(bytes, request3.integrity)) {
29058
+ if (!bytesMatch(bytes, request4.integrity)) {
29059
29059
  processBodyError("integrity mismatch");
29060
29060
  return;
29061
29061
  }
@@ -29074,8 +29074,8 @@ var require_fetch = __commonJS({
29074
29074
  if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {
29075
29075
  return Promise.resolve(makeAppropriateNetworkError(fetchParams));
29076
29076
  }
29077
- const { request: request3 } = fetchParams;
29078
- const { protocol: scheme } = requestCurrentURL(request3);
29077
+ const { request: request4 } = fetchParams;
29078
+ const { protocol: scheme } = requestCurrentURL(request4);
29079
29079
  switch (scheme) {
29080
29080
  case "about:": {
29081
29081
  return Promise.resolve(makeNetworkError("about scheme is not supported"));
@@ -29084,19 +29084,19 @@ var require_fetch = __commonJS({
29084
29084
  if (!resolveObjectURL) {
29085
29085
  resolveObjectURL = __require("buffer").resolveObjectURL;
29086
29086
  }
29087
- const blobURLEntry = requestCurrentURL(request3);
29087
+ const blobURLEntry = requestCurrentURL(request4);
29088
29088
  if (blobURLEntry.search.length !== 0) {
29089
29089
  return Promise.resolve(makeNetworkError("NetworkError when attempting to fetch resource."));
29090
29090
  }
29091
29091
  const blob = resolveObjectURL(blobURLEntry.toString());
29092
- if (request3.method !== "GET" || !webidl.is.Blob(blob)) {
29092
+ if (request4.method !== "GET" || !webidl.is.Blob(blob)) {
29093
29093
  return Promise.resolve(makeNetworkError("invalid method"));
29094
29094
  }
29095
29095
  const response = makeResponse();
29096
29096
  const fullLength = blob.size;
29097
29097
  const serializedFullLength = isomorphicEncode(`${fullLength}`);
29098
29098
  const type = blob.type;
29099
- if (!request3.headersList.contains("range", true)) {
29099
+ if (!request4.headersList.contains("range", true)) {
29100
29100
  const bodyWithType = extractBody(blob);
29101
29101
  response.statusText = "OK";
29102
29102
  response.body = bodyWithType[0];
@@ -29104,7 +29104,7 @@ var require_fetch = __commonJS({
29104
29104
  response.headersList.set("content-type", type, true);
29105
29105
  } else {
29106
29106
  response.rangeRequested = true;
29107
- const rangeHeader = request3.headersList.get("range", true);
29107
+ const rangeHeader = request4.headersList.get("range", true);
29108
29108
  const rangeValue = simpleRangeHeaderValue(rangeHeader, true);
29109
29109
  if (rangeValue === "failure") {
29110
29110
  return Promise.resolve(makeNetworkError("failed to fetch the data URL"));
@@ -29135,7 +29135,7 @@ var require_fetch = __commonJS({
29135
29135
  return Promise.resolve(response);
29136
29136
  }
29137
29137
  case "data:": {
29138
- const currentURL = requestCurrentURL(request3);
29138
+ const currentURL = requestCurrentURL(request4);
29139
29139
  const dataURLStruct = dataURLProcessor(currentURL);
29140
29140
  if (dataURLStruct === "failure") {
29141
29141
  return Promise.resolve(makeNetworkError("failed to fetch the data URL"));
@@ -29224,41 +29224,41 @@ var require_fetch = __commonJS({
29224
29224
  }
29225
29225
  }
29226
29226
  async function httpFetch(fetchParams) {
29227
- const request3 = fetchParams.request;
29227
+ const request4 = fetchParams.request;
29228
29228
  let response = null;
29229
29229
  let actualResponse = null;
29230
29230
  const timingInfo = fetchParams.timingInfo;
29231
- if (request3.serviceWorkers === "all") {
29231
+ if (request4.serviceWorkers === "all") {
29232
29232
  }
29233
29233
  if (response === null) {
29234
- if (request3.redirect === "follow") {
29235
- request3.serviceWorkers = "none";
29234
+ if (request4.redirect === "follow") {
29235
+ request4.serviceWorkers = "none";
29236
29236
  }
29237
29237
  actualResponse = response = await httpNetworkOrCacheFetch(fetchParams);
29238
- if (request3.responseTainting === "cors" && corsCheck(request3, response) === "failure") {
29238
+ if (request4.responseTainting === "cors" && corsCheck(request4, response) === "failure") {
29239
29239
  return makeNetworkError("cors failure");
29240
29240
  }
29241
- if (TAOCheck(request3, response) === "failure") {
29242
- request3.timingAllowFailed = true;
29241
+ if (TAOCheck(request4, response) === "failure") {
29242
+ request4.timingAllowFailed = true;
29243
29243
  }
29244
29244
  }
29245
- if ((request3.responseTainting === "opaque" || response.type === "opaque") && crossOriginResourcePolicyCheck(
29246
- request3.origin,
29247
- request3.client,
29248
- request3.destination,
29245
+ if ((request4.responseTainting === "opaque" || response.type === "opaque") && crossOriginResourcePolicyCheck(
29246
+ request4.origin,
29247
+ request4.client,
29248
+ request4.destination,
29249
29249
  actualResponse
29250
29250
  ) === "blocked") {
29251
29251
  return makeNetworkError("blocked");
29252
29252
  }
29253
29253
  if (redirectStatusSet.has(actualResponse.status)) {
29254
- if (request3.redirect !== "manual") {
29254
+ if (request4.redirect !== "manual") {
29255
29255
  fetchParams.controller.connection.destroy(void 0, false);
29256
29256
  }
29257
- if (request3.redirect === "error") {
29257
+ if (request4.redirect === "error") {
29258
29258
  response = makeNetworkError("unexpected redirect");
29259
- } else if (request3.redirect === "manual") {
29259
+ } else if (request4.redirect === "manual") {
29260
29260
  response = actualResponse;
29261
- } else if (request3.redirect === "follow") {
29261
+ } else if (request4.redirect === "follow") {
29262
29262
  response = await httpRedirectFetch(fetchParams, response);
29263
29263
  } else {
29264
29264
  assert(false);
@@ -29268,13 +29268,13 @@ var require_fetch = __commonJS({
29268
29268
  return response;
29269
29269
  }
29270
29270
  function httpRedirectFetch(fetchParams, response) {
29271
- const request3 = fetchParams.request;
29271
+ const request4 = fetchParams.request;
29272
29272
  const actualResponse = response.internalResponse ? response.internalResponse : response;
29273
29273
  let locationURL;
29274
29274
  try {
29275
29275
  locationURL = responseLocationURL(
29276
29276
  actualResponse,
29277
- requestCurrentURL(request3).hash
29277
+ requestCurrentURL(request4).hash
29278
29278
  );
29279
29279
  if (locationURL == null) {
29280
29280
  return response;
@@ -29285,63 +29285,63 @@ var require_fetch = __commonJS({
29285
29285
  if (!urlIsHttpHttpsScheme(locationURL)) {
29286
29286
  return Promise.resolve(makeNetworkError("URL scheme must be a HTTP(S) scheme"));
29287
29287
  }
29288
- if (request3.redirectCount === 20) {
29288
+ if (request4.redirectCount === 20) {
29289
29289
  return Promise.resolve(makeNetworkError("redirect count exceeded"));
29290
29290
  }
29291
- request3.redirectCount += 1;
29292
- if (request3.mode === "cors" && (locationURL.username || locationURL.password) && !sameOrigin(request3, locationURL)) {
29291
+ request4.redirectCount += 1;
29292
+ if (request4.mode === "cors" && (locationURL.username || locationURL.password) && !sameOrigin(request4, locationURL)) {
29293
29293
  return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"'));
29294
29294
  }
29295
- if (request3.responseTainting === "cors" && (locationURL.username || locationURL.password)) {
29295
+ if (request4.responseTainting === "cors" && (locationURL.username || locationURL.password)) {
29296
29296
  return Promise.resolve(makeNetworkError(
29297
29297
  'URL cannot contain credentials for request mode "cors"'
29298
29298
  ));
29299
29299
  }
29300
- if (actualResponse.status !== 303 && request3.body != null && request3.body.source == null) {
29300
+ if (actualResponse.status !== 303 && request4.body != null && request4.body.source == null) {
29301
29301
  return Promise.resolve(makeNetworkError());
29302
29302
  }
29303
- if ([301, 302].includes(actualResponse.status) && request3.method === "POST" || actualResponse.status === 303 && !GET_OR_HEAD.includes(request3.method)) {
29304
- request3.method = "GET";
29305
- request3.body = null;
29303
+ if ([301, 302].includes(actualResponse.status) && request4.method === "POST" || actualResponse.status === 303 && !GET_OR_HEAD.includes(request4.method)) {
29304
+ request4.method = "GET";
29305
+ request4.body = null;
29306
29306
  for (const headerName of requestBodyHeader) {
29307
- request3.headersList.delete(headerName);
29307
+ request4.headersList.delete(headerName);
29308
29308
  }
29309
29309
  }
29310
- if (!sameOrigin(requestCurrentURL(request3), locationURL)) {
29311
- request3.headersList.delete("authorization", true);
29312
- request3.headersList.delete("proxy-authorization", true);
29313
- request3.headersList.delete("cookie", true);
29314
- request3.headersList.delete("host", true);
29310
+ if (!sameOrigin(requestCurrentURL(request4), locationURL)) {
29311
+ request4.headersList.delete("authorization", true);
29312
+ request4.headersList.delete("proxy-authorization", true);
29313
+ request4.headersList.delete("cookie", true);
29314
+ request4.headersList.delete("host", true);
29315
29315
  }
29316
- if (request3.body != null) {
29317
- assert(request3.body.source != null);
29318
- request3.body = safelyExtractBody(request3.body.source)[0];
29316
+ if (request4.body != null) {
29317
+ assert(request4.body.source != null);
29318
+ request4.body = safelyExtractBody(request4.body.source)[0];
29319
29319
  }
29320
29320
  const timingInfo = fetchParams.timingInfo;
29321
29321
  timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability);
29322
29322
  if (timingInfo.redirectStartTime === 0) {
29323
29323
  timingInfo.redirectStartTime = timingInfo.startTime;
29324
29324
  }
29325
- request3.urlList.push(locationURL);
29326
- setRequestReferrerPolicyOnRedirect(request3, actualResponse);
29325
+ request4.urlList.push(locationURL);
29326
+ setRequestReferrerPolicyOnRedirect(request4, actualResponse);
29327
29327
  return mainFetch(fetchParams, true);
29328
29328
  }
29329
29329
  async function httpNetworkOrCacheFetch(fetchParams, isAuthenticationFetch = false, isNewConnectionFetch = false) {
29330
- const request3 = fetchParams.request;
29330
+ const request4 = fetchParams.request;
29331
29331
  let httpFetchParams = null;
29332
29332
  let httpRequest = null;
29333
29333
  let response = null;
29334
29334
  const httpCache = null;
29335
29335
  const revalidatingFlag = false;
29336
- if (request3.window === "no-window" && request3.redirect === "error") {
29336
+ if (request4.window === "no-window" && request4.redirect === "error") {
29337
29337
  httpFetchParams = fetchParams;
29338
- httpRequest = request3;
29338
+ httpRequest = request4;
29339
29339
  } else {
29340
- httpRequest = cloneRequest(request3);
29340
+ httpRequest = cloneRequest(request4);
29341
29341
  httpFetchParams = { ...fetchParams };
29342
29342
  httpFetchParams.request = httpRequest;
29343
29343
  }
29344
- const includeCredentials = request3.credentials === "include" || request3.credentials === "same-origin" && request3.responseTainting === "basic";
29344
+ const includeCredentials = request4.credentials === "include" || request4.credentials === "same-origin" && request4.responseTainting === "basic";
29345
29345
  const contentLength = httpRequest.body ? httpRequest.body.length : null;
29346
29346
  let contentLengthHeaderValue = null;
29347
29347
  if (httpRequest.body == null && ["POST", "PUT"].includes(httpRequest.method)) {
@@ -29428,14 +29428,14 @@ var require_fetch = __commonJS({
29428
29428
  response.rangeRequested = true;
29429
29429
  }
29430
29430
  response.requestIncludesCredentials = includeCredentials;
29431
- if (response.status === 401 && httpRequest.responseTainting !== "cors" && includeCredentials && (request3.useURLCredentials !== void 0 || isTraversableNavigable(request3.traversableForUserPrompts))) {
29432
- if (request3.body != null) {
29433
- if (request3.body.source == null) {
29431
+ if (response.status === 401 && httpRequest.responseTainting !== "cors" && includeCredentials && (request4.useURLCredentials !== void 0 || isTraversableNavigable(request4.traversableForUserPrompts))) {
29432
+ if (request4.body != null) {
29433
+ if (request4.body.source == null) {
29434
29434
  return response;
29435
29435
  }
29436
- request3.body = safelyExtractBody(request3.body.source)[0];
29436
+ request4.body = safelyExtractBody(request4.body.source)[0];
29437
29437
  }
29438
- if (request3.useURLCredentials === void 0 || isAuthenticationFetch) {
29438
+ if (request4.useURLCredentials === void 0 || isAuthenticationFetch) {
29439
29439
  if (isCancelled(fetchParams)) {
29440
29440
  return makeAppropriateNetworkError(fetchParams);
29441
29441
  }
@@ -29445,7 +29445,7 @@ var require_fetch = __commonJS({
29445
29445
  response = await httpNetworkOrCacheFetch(fetchParams, true);
29446
29446
  }
29447
29447
  if (response.status === 407) {
29448
- if (request3.window === "no-window") {
29448
+ if (request4.window === "no-window") {
29449
29449
  return makeNetworkError();
29450
29450
  }
29451
29451
  if (isCancelled(fetchParams)) {
@@ -29457,7 +29457,7 @@ var require_fetch = __commonJS({
29457
29457
  // response’s status is 421
29458
29458
  response.status === 421 && // isNewConnectionFetch is false
29459
29459
  !isNewConnectionFetch && // request’s body is null, or request’s body is non-null and request’s body’s source is non-null
29460
- (request3.body == null || request3.body.source != null)
29460
+ (request4.body == null || request4.body.source != null)
29461
29461
  ) {
29462
29462
  if (isCancelled(fetchParams)) {
29463
29463
  return makeAppropriateNetworkError(fetchParams);
@@ -29487,21 +29487,21 @@ var require_fetch = __commonJS({
29487
29487
  }
29488
29488
  }
29489
29489
  };
29490
- const request3 = fetchParams.request;
29490
+ const request4 = fetchParams.request;
29491
29491
  let response = null;
29492
29492
  const timingInfo = fetchParams.timingInfo;
29493
29493
  const httpCache = null;
29494
29494
  if (httpCache == null) {
29495
- request3.cache = "no-store";
29495
+ request4.cache = "no-store";
29496
29496
  }
29497
29497
  const newConnection = forceNewConnection ? "yes" : "no";
29498
- if (request3.mode === "websocket") {
29498
+ if (request4.mode === "websocket") {
29499
29499
  } else {
29500
29500
  }
29501
29501
  let requestBody = null;
29502
- if (request3.body == null && fetchParams.processRequestEndOfBody) {
29502
+ if (request4.body == null && fetchParams.processRequestEndOfBody) {
29503
29503
  queueMicrotask(() => fetchParams.processRequestEndOfBody());
29504
- } else if (request3.body != null) {
29504
+ } else if (request4.body != null) {
29505
29505
  const processBodyChunk = async function* (bytes) {
29506
29506
  if (isCancelled(fetchParams)) {
29507
29507
  return;
@@ -29529,7 +29529,7 @@ var require_fetch = __commonJS({
29529
29529
  };
29530
29530
  requestBody = (async function* () {
29531
29531
  try {
29532
- for await (const bytes of request3.body.stream) {
29532
+ for await (const bytes of request4.body.stream) {
29533
29533
  yield* processBodyChunk(bytes);
29534
29534
  }
29535
29535
  processEndOfBody();
@@ -29636,19 +29636,19 @@ var require_fetch = __commonJS({
29636
29636
  }
29637
29637
  return response;
29638
29638
  function dispatch({ body }) {
29639
- const url = requestCurrentURL(request3);
29639
+ const url = requestCurrentURL(request4);
29640
29640
  const agent = fetchParams.controller.dispatcher;
29641
29641
  const path = url.pathname + url.search;
29642
29642
  const hasTrailingQuestionMark = url.search.length === 0 && url.href[url.href.length - url.hash.length - 1] === "?";
29643
- return new Promise((resolve6, reject) => agent.dispatch(
29643
+ return new Promise((resolve7, reject) => agent.dispatch(
29644
29644
  {
29645
29645
  path: hasTrailingQuestionMark ? `${path}?` : path,
29646
29646
  origin: url.origin,
29647
- method: request3.method,
29648
- body: agent.isMockActive ? request3.body && (request3.body.source || request3.body.stream) : body,
29649
- headers: request3.headersList.entries,
29647
+ method: request4.method,
29648
+ body: agent.isMockActive ? request4.body && (request4.body.source || request4.body.stream) : body,
29649
+ headers: request4.headersList.entries,
29650
29650
  maxRedirections: 0,
29651
- upgrade: request3.mode === "websocket" ? "websocket" : void 0
29651
+ upgrade: request4.mode === "websocket" ? "websocket" : void 0
29652
29652
  },
29653
29653
  {
29654
29654
  body: null,
@@ -29685,9 +29685,9 @@ var require_fetch = __commonJS({
29685
29685
  }
29686
29686
  const location = headersList.get("location", true);
29687
29687
  this.body = new Readable2({ read: resume });
29688
- const willFollow = location && request3.redirect === "follow" && redirectStatusSet.has(status2);
29688
+ const willFollow = location && request4.redirect === "follow" && redirectStatusSet.has(status2);
29689
29689
  const decoders = [];
29690
- if (request3.method !== "HEAD" && request3.method !== "CONNECT" && !nullBodyStatus.includes(status2) && !willFollow) {
29690
+ if (request4.method !== "HEAD" && request4.method !== "CONNECT" && !nullBodyStatus.includes(status2) && !willFollow) {
29691
29691
  const contentEncoding = headersList.get("content-encoding", true);
29692
29692
  const codings = contentEncoding ? contentEncoding.toLowerCase().split(",") : [];
29693
29693
  const maxContentEncodings = 5;
@@ -29728,7 +29728,7 @@ var require_fetch = __commonJS({
29728
29728
  }
29729
29729
  }
29730
29730
  const onError = this.onError.bind(this);
29731
- resolve6({
29731
+ resolve7({
29732
29732
  status: status2,
29733
29733
  statusText,
29734
29734
  headersList,
@@ -29781,7 +29781,7 @@ var require_fetch = __commonJS({
29781
29781
  headersList.append(headerName, String(value), true);
29782
29782
  }
29783
29783
  }
29784
- resolve6({
29784
+ resolve7({
29785
29785
  status: status2,
29786
29786
  statusText: STATUS_CODES[status2],
29787
29787
  headersList,
@@ -29805,7 +29805,7 @@ var require_fetch = __commonJS({
29805
29805
  headersList.append(nameStr, value.toString("latin1"), true);
29806
29806
  }
29807
29807
  }
29808
- resolve6({
29808
+ resolve7({
29809
29809
  status: status2,
29810
29810
  statusText: STATUS_CODES[status2],
29811
29811
  headersList,
@@ -29883,31 +29883,31 @@ var require_cache3 = __commonJS({
29883
29883
  webidl.util.markAsUncloneable(this);
29884
29884
  this.#relevantRequestResponseList = arguments[1];
29885
29885
  }
29886
- async match(request3, options = {}) {
29886
+ async match(request4, options = {}) {
29887
29887
  webidl.brandCheck(this, _Cache);
29888
29888
  const prefix = "Cache.match";
29889
29889
  webidl.argumentLengthCheck(arguments, 1, prefix);
29890
- request3 = webidl.converters.RequestInfo(request3);
29890
+ request4 = webidl.converters.RequestInfo(request4);
29891
29891
  options = webidl.converters.CacheQueryOptions(options, prefix, "options");
29892
- const p = this.#internalMatchAll(request3, options, 1);
29892
+ const p = this.#internalMatchAll(request4, options, 1);
29893
29893
  if (p.length === 0) {
29894
29894
  return;
29895
29895
  }
29896
29896
  return p[0];
29897
29897
  }
29898
- async matchAll(request3 = void 0, options = {}) {
29898
+ async matchAll(request4 = void 0, options = {}) {
29899
29899
  webidl.brandCheck(this, _Cache);
29900
29900
  const prefix = "Cache.matchAll";
29901
- if (request3 !== void 0) request3 = webidl.converters.RequestInfo(request3);
29901
+ if (request4 !== void 0) request4 = webidl.converters.RequestInfo(request4);
29902
29902
  options = webidl.converters.CacheQueryOptions(options, prefix, "options");
29903
- return this.#internalMatchAll(request3, options);
29903
+ return this.#internalMatchAll(request4, options);
29904
29904
  }
29905
- async add(request3) {
29905
+ async add(request4) {
29906
29906
  webidl.brandCheck(this, _Cache);
29907
29907
  const prefix = "Cache.add";
29908
29908
  webidl.argumentLengthCheck(arguments, 1, prefix);
29909
- request3 = webidl.converters.RequestInfo(request3);
29910
- const requests = [request3];
29909
+ request4 = webidl.converters.RequestInfo(request4);
29910
+ const requests = [request4];
29911
29911
  const responseArrayPromise = this.addAll(requests);
29912
29912
  return await responseArrayPromise;
29913
29913
  }
@@ -29917,19 +29917,19 @@ var require_cache3 = __commonJS({
29917
29917
  webidl.argumentLengthCheck(arguments, 1, prefix);
29918
29918
  const responsePromises = [];
29919
29919
  const requestList = [];
29920
- for (let request3 of requests) {
29921
- if (request3 === void 0) {
29920
+ for (let request4 of requests) {
29921
+ if (request4 === void 0) {
29922
29922
  throw webidl.errors.conversionFailed({
29923
29923
  prefix,
29924
29924
  argument: "Argument 1",
29925
29925
  types: ["undefined is not allowed"]
29926
29926
  });
29927
29927
  }
29928
- request3 = webidl.converters.RequestInfo(request3);
29929
- if (typeof request3 === "string") {
29928
+ request4 = webidl.converters.RequestInfo(request4);
29929
+ if (typeof request4 === "string") {
29930
29930
  continue;
29931
29931
  }
29932
- const r = getRequestState(request3);
29932
+ const r = getRequestState(request4);
29933
29933
  if (!urlIsHttpHttpsScheme(r.url) || r.method !== "GET") {
29934
29934
  throw webidl.errors.exception({
29935
29935
  header: prefix,
@@ -29938,8 +29938,8 @@ var require_cache3 = __commonJS({
29938
29938
  }
29939
29939
  }
29940
29940
  const fetchControllers = [];
29941
- for (const request3 of requests) {
29942
- const r = getRequestState(new Request(request3));
29941
+ for (const request4 of requests) {
29942
+ const r = getRequestState(new Request(request4));
29943
29943
  if (!urlIsHttpHttpsScheme(r.url)) {
29944
29944
  throw webidl.errors.exception({
29945
29945
  header: prefix,
@@ -30016,17 +30016,17 @@ var require_cache3 = __commonJS({
30016
30016
  });
30017
30017
  return cacheJobPromise.promise;
30018
30018
  }
30019
- async put(request3, response) {
30019
+ async put(request4, response) {
30020
30020
  webidl.brandCheck(this, _Cache);
30021
30021
  const prefix = "Cache.put";
30022
30022
  webidl.argumentLengthCheck(arguments, 2, prefix);
30023
- request3 = webidl.converters.RequestInfo(request3);
30023
+ request4 = webidl.converters.RequestInfo(request4);
30024
30024
  response = webidl.converters.Response(response, prefix, "response");
30025
30025
  let innerRequest = null;
30026
- if (webidl.is.Request(request3)) {
30027
- innerRequest = getRequestState(request3);
30026
+ if (webidl.is.Request(request4)) {
30027
+ innerRequest = getRequestState(request4);
30028
30028
  } else {
30029
- innerRequest = getRequestState(new Request(request3));
30029
+ innerRequest = getRequestState(new Request(request4));
30030
30030
  }
30031
30031
  if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== "GET") {
30032
30032
  throw webidl.errors.exception({
@@ -30097,21 +30097,21 @@ var require_cache3 = __commonJS({
30097
30097
  });
30098
30098
  return cacheJobPromise.promise;
30099
30099
  }
30100
- async delete(request3, options = {}) {
30100
+ async delete(request4, options = {}) {
30101
30101
  webidl.brandCheck(this, _Cache);
30102
30102
  const prefix = "Cache.delete";
30103
30103
  webidl.argumentLengthCheck(arguments, 1, prefix);
30104
- request3 = webidl.converters.RequestInfo(request3);
30104
+ request4 = webidl.converters.RequestInfo(request4);
30105
30105
  options = webidl.converters.CacheQueryOptions(options, prefix, "options");
30106
30106
  let r = null;
30107
- if (webidl.is.Request(request3)) {
30108
- r = getRequestState(request3);
30107
+ if (webidl.is.Request(request4)) {
30108
+ r = getRequestState(request4);
30109
30109
  if (r.method !== "GET" && !options.ignoreMethod) {
30110
30110
  return false;
30111
30111
  }
30112
30112
  } else {
30113
- assert(typeof request3 === "string");
30114
- r = getRequestState(new Request(request3));
30113
+ assert(typeof request4 === "string");
30114
+ r = getRequestState(new Request(request4));
30115
30115
  }
30116
30116
  const operations = [];
30117
30117
  const operation = {
@@ -30143,25 +30143,25 @@ var require_cache3 = __commonJS({
30143
30143
  * @param {import('../../../types/cache').CacheQueryOptions} options
30144
30144
  * @returns {Promise<readonly Request[]>}
30145
30145
  */
30146
- async keys(request3 = void 0, options = {}) {
30146
+ async keys(request4 = void 0, options = {}) {
30147
30147
  webidl.brandCheck(this, _Cache);
30148
30148
  const prefix = "Cache.keys";
30149
- if (request3 !== void 0) request3 = webidl.converters.RequestInfo(request3);
30149
+ if (request4 !== void 0) request4 = webidl.converters.RequestInfo(request4);
30150
30150
  options = webidl.converters.CacheQueryOptions(options, prefix, "options");
30151
30151
  let r = null;
30152
- if (request3 !== void 0) {
30153
- if (webidl.is.Request(request3)) {
30154
- r = getRequestState(request3);
30152
+ if (request4 !== void 0) {
30153
+ if (webidl.is.Request(request4)) {
30154
+ r = getRequestState(request4);
30155
30155
  if (r.method !== "GET" && !options.ignoreMethod) {
30156
30156
  return [];
30157
30157
  }
30158
- } else if (typeof request3 === "string") {
30159
- r = getRequestState(new Request(request3));
30158
+ } else if (typeof request4 === "string") {
30159
+ r = getRequestState(new Request(request4));
30160
30160
  }
30161
30161
  }
30162
30162
  const promise = createDeferredPromise();
30163
30163
  const requests = [];
30164
- if (request3 === void 0) {
30164
+ if (request4 === void 0) {
30165
30165
  for (const requestResponse of this.#relevantRequestResponseList) {
30166
30166
  requests.push(requestResponse[0]);
30167
30167
  }
@@ -30173,9 +30173,9 @@ var require_cache3 = __commonJS({
30173
30173
  }
30174
30174
  queueMicrotask(() => {
30175
30175
  const requestList = [];
30176
- for (const request4 of requests) {
30176
+ for (const request5 of requests) {
30177
30177
  const requestObject = fromInnerRequest(
30178
- request4,
30178
+ request5,
30179
30179
  void 0,
30180
30180
  new AbortController().signal,
30181
30181
  "immutable"
@@ -30294,9 +30294,9 @@ var require_cache3 = __commonJS({
30294
30294
  * @param {import('../../../types/cache').CacheQueryOptions | undefined} options
30295
30295
  * @returns {boolean}
30296
30296
  */
30297
- #requestMatchesCachedItem(requestQuery, request3, response = null, options) {
30297
+ #requestMatchesCachedItem(requestQuery, request4, response = null, options) {
30298
30298
  const queryURL = new URL(requestQuery.url);
30299
- const cachedURL = new URL(request3.url);
30299
+ const cachedURL = new URL(request4.url);
30300
30300
  if (options?.ignoreSearch) {
30301
30301
  cachedURL.search = "";
30302
30302
  queryURL.search = "";
@@ -30312,7 +30312,7 @@ var require_cache3 = __commonJS({
30312
30312
  if (fieldValue === "*") {
30313
30313
  return false;
30314
30314
  }
30315
- const requestValue = request3.headersList.get(fieldValue);
30315
+ const requestValue = request4.headersList.get(fieldValue);
30316
30316
  const queryValue = requestQuery.headersList.get(fieldValue);
30317
30317
  if (requestValue !== queryValue) {
30318
30318
  return false;
@@ -30320,20 +30320,20 @@ var require_cache3 = __commonJS({
30320
30320
  }
30321
30321
  return true;
30322
30322
  }
30323
- #internalMatchAll(request3, options, maxResponses = Infinity) {
30323
+ #internalMatchAll(request4, options, maxResponses = Infinity) {
30324
30324
  let r = null;
30325
- if (request3 !== void 0) {
30326
- if (webidl.is.Request(request3)) {
30327
- r = getRequestState(request3);
30325
+ if (request4 !== void 0) {
30326
+ if (webidl.is.Request(request4)) {
30327
+ r = getRequestState(request4);
30328
30328
  if (r.method !== "GET" && !options.ignoreMethod) {
30329
30329
  return [];
30330
30330
  }
30331
- } else if (typeof request3 === "string") {
30332
- r = getRequestState(new Request(request3));
30331
+ } else if (typeof request4 === "string") {
30332
+ r = getRequestState(new Request(request4));
30333
30333
  }
30334
30334
  }
30335
30335
  const responses = [];
30336
- if (request3 === void 0) {
30336
+ if (request4 === void 0) {
30337
30337
  for (const requestResponse of this.#relevantRequestResponseList) {
30338
30338
  responses.push(requestResponse[1]);
30339
30339
  }
@@ -30425,21 +30425,21 @@ var require_cachestorage = __commonJS({
30425
30425
  }
30426
30426
  webidl.util.markAsUncloneable(this);
30427
30427
  }
30428
- async match(request3, options = {}) {
30428
+ async match(request4, options = {}) {
30429
30429
  webidl.brandCheck(this, _CacheStorage);
30430
30430
  webidl.argumentLengthCheck(arguments, 1, "CacheStorage.match");
30431
- request3 = webidl.converters.RequestInfo(request3);
30431
+ request4 = webidl.converters.RequestInfo(request4);
30432
30432
  options = webidl.converters.MultiCacheQueryOptions(options);
30433
30433
  if (options.cacheName != null) {
30434
30434
  if (this.#caches.has(options.cacheName)) {
30435
30435
  const cacheList = this.#caches.get(options.cacheName);
30436
30436
  const cache3 = new Cache(kConstruct, cacheList);
30437
- return await cache3.match(request3, options);
30437
+ return await cache3.match(request4, options);
30438
30438
  }
30439
30439
  } else {
30440
30440
  for (const cacheList of this.#caches.values()) {
30441
30441
  const cache3 = new Cache(kConstruct, cacheList);
30442
- const response = await cache3.match(request3, options);
30442
+ const response = await cache3.match(request4, options);
30443
30443
  if (response !== void 0) {
30444
30444
  return response;
30445
30445
  }
@@ -31598,7 +31598,7 @@ var require_connection = __commonJS({
31598
31598
  function establishWebSocketConnection(url, protocols, client, handler, options) {
31599
31599
  const requestURL = url;
31600
31600
  requestURL.protocol = url.protocol === "ws:" ? "http:" : "https:";
31601
- const request3 = makeRequest({
31601
+ const request4 = makeRequest({
31602
31602
  urlList: [requestURL],
31603
31603
  client,
31604
31604
  serviceWorkers: "none",
@@ -31611,18 +31611,18 @@ var require_connection = __commonJS({
31611
31611
  });
31612
31612
  if (options.headers) {
31613
31613
  const headersList = getHeadersList(new Headers(options.headers));
31614
- request3.headersList = headersList;
31614
+ request4.headersList = headersList;
31615
31615
  }
31616
31616
  const keyValue = crypto2.randomBytes(16).toString("base64");
31617
- request3.headersList.append("sec-websocket-key", keyValue, true);
31618
- request3.headersList.append("sec-websocket-version", "13", true);
31617
+ request4.headersList.append("sec-websocket-key", keyValue, true);
31618
+ request4.headersList.append("sec-websocket-version", "13", true);
31619
31619
  for (const protocol of protocols) {
31620
- request3.headersList.append("sec-websocket-protocol", protocol, true);
31620
+ request4.headersList.append("sec-websocket-protocol", protocol, true);
31621
31621
  }
31622
31622
  const permessageDeflate = "permessage-deflate; client_max_window_bits";
31623
- request3.headersList.append("sec-websocket-extensions", permessageDeflate, true);
31623
+ request4.headersList.append("sec-websocket-extensions", permessageDeflate, true);
31624
31624
  const controller = fetching({
31625
- request: request3,
31625
+ request: request4,
31626
31626
  useParallelQueue: true,
31627
31627
  dispatcher: options.dispatcher,
31628
31628
  processResponse(response) {
@@ -31669,7 +31669,7 @@ var require_connection = __commonJS({
31669
31669
  }
31670
31670
  const secProtocol = response.headersList.get("Sec-WebSocket-Protocol");
31671
31671
  if (secProtocol !== null) {
31672
- const requestProtocols = getDecodeSplit("sec-websocket-protocol", request3.headersList);
31672
+ const requestProtocols = getDecodeSplit("sec-websocket-protocol", request4.headersList);
31673
31673
  if (!requestProtocols.includes(secProtocol)) {
31674
31674
  failWebsocketConnection(handler, 1002, "Protocol was not set in the opening handshake.");
31675
31675
  return;
@@ -34816,6 +34816,21 @@ var init_config2 = __esm({
34816
34816
  });
34817
34817
 
34818
34818
  // src/api.ts
34819
+ var api_exports = {};
34820
+ __export(api_exports, {
34821
+ DeviceMeUnauthorized: () => DeviceMeUnauthorized,
34822
+ fetchBackfillDaySessions: () => fetchBackfillDaySessions,
34823
+ fetchBackfillDays: () => fetchBackfillDays,
34824
+ fetchDeviceMe: () => fetchDeviceMe,
34825
+ fetchDeviceViewByClaim: () => fetchDeviceViewByClaim,
34826
+ fetchDeviceViewJobsByClaim: () => fetchDeviceViewJobsByClaim,
34827
+ fetchDeviceViewLedgerByClaim: () => fetchDeviceViewLedgerByClaim,
34828
+ postControlScan: () => postControlScan,
34829
+ reportDiscovery: () => reportDiscovery,
34830
+ rotateDeviceSecret: () => rotateDeviceSecret,
34831
+ selfRegister: () => selfRegister,
34832
+ uploadBatch: () => uploadBatch
34833
+ });
34819
34834
  async function selfRegister(input) {
34820
34835
  const res = await (0, import_undici.request)(`${state.apiUrl}/v1/devices/self-register`, {
34821
34836
  method: "POST",
@@ -34898,7 +34913,7 @@ async function fetchDeviceViewLedgerByClaim(claimCode) {
34898
34913
  }
34899
34914
  function ingestClient() {
34900
34915
  if (_ingest) return _ingest;
34901
- const logger2 = createLogger("daemon.ingest");
34916
+ const logger3 = createLogger("daemon.ingest");
34902
34917
  _ingest = new IngestClient({
34903
34918
  apiUrl: state.apiUrl,
34904
34919
  auth: {
@@ -34914,7 +34929,7 @@ function ingestClient() {
34914
34929
  }
34915
34930
  }
34916
34931
  },
34917
- logger: logger2
34932
+ logger: logger3
34918
34933
  });
34919
34934
  return _ingest;
34920
34935
  }
@@ -34949,6 +34964,34 @@ function fetchBackfillDays() {
34949
34964
  function fetchBackfillDaySessions(day) {
34950
34965
  return backfillGet(`?day=${encodeURIComponent(day)}`);
34951
34966
  }
34967
+ function controlPort() {
34968
+ return Number(process.env.MODELSTAT_LOCAL_INGEST_PORT) || 4319;
34969
+ }
34970
+ async function postControlScan(body, opts = {}) {
34971
+ const port = opts.port ?? controlPort();
34972
+ try {
34973
+ const res = await (0, import_undici.request)(`http://127.0.0.1:${port}/v1/control/scan`, {
34974
+ method: "POST",
34975
+ headers: { "content-type": "application/json" },
34976
+ body: JSON.stringify(body),
34977
+ // A `wait:true` scan can take a while (cold-ish summariser, big session);
34978
+ // give it room but don't hang forever. undici's headersTimeout/bodyTimeout
34979
+ // default to 30s — lift them for the waiting case.
34980
+ headersTimeout: body.wait ? 6e5 : 5e3,
34981
+ bodyTimeout: body.wait ? 6e5 : 5e3
34982
+ });
34983
+ if (res.statusCode >= 300) {
34984
+ const message = await res.body.text().catch(() => "");
34985
+ return { kind: "error", status: res.statusCode, message };
34986
+ }
34987
+ const data = await res.body.json().catch(() => ({}));
34988
+ return { kind: "ok", started: data.started === true, scanned: data.scanned === true };
34989
+ } catch (e) {
34990
+ const code = e.code;
34991
+ if (code === "ECONNREFUSED" || code === "ECONNRESET") return { kind: "no_daemon" };
34992
+ return { kind: "error", status: 0, message: e.message };
34993
+ }
34994
+ }
34952
34995
  var import_undici, DeviceMeUnauthorized, _ingest;
34953
34996
  var init_api = __esm({
34954
34997
  "src/api.ts"() {
@@ -36248,7 +36291,7 @@ async function ensureLlamaModel(cfg = defaultLlamaConfig()) {
36248
36291
  const tmp = `${cfg.modelPath}.partial`;
36249
36292
  const { createWriteStream } = await import("fs");
36250
36293
  const { Readable: Readable2 } = await import("stream");
36251
- const { rename: rename2 } = await import("fs/promises");
36294
+ const { rename: rename3 } = await import("fs/promises");
36252
36295
  const out = createWriteStream(tmp);
36253
36296
  const isTty = Boolean(process.stdout.isTTY);
36254
36297
  let received = 0;
@@ -36286,15 +36329,15 @@ async function ensureLlamaModel(cfg = defaultLlamaConfig()) {
36286
36329
  lastLog = now;
36287
36330
  }
36288
36331
  });
36289
- await new Promise((resolve6, reject) => {
36332
+ await new Promise((resolve7, reject) => {
36290
36333
  nodeStream.pipe(out);
36291
- out.on("finish", () => resolve6());
36334
+ out.on("finish", () => resolve7());
36292
36335
  out.on("error", reject);
36293
36336
  nodeStream.on("error", reject);
36294
36337
  });
36295
36338
  renderProgress(true);
36296
36339
  if (isTty) process.stdout.write("\n");
36297
- await rename2(tmp, cfg.modelPath);
36340
+ await rename3(tmp, cfg.modelPath);
36298
36341
  console.log(`[modelstat] summariser model ready (${cfg.modelPath})`);
36299
36342
  return cfg.modelPath;
36300
36343
  }
@@ -37155,6 +37198,12 @@ var init_pipeline2 = __esm({
37155
37198
  });
37156
37199
 
37157
37200
  // src/scan.ts
37201
+ var scan_exports = {};
37202
+ __export(scan_exports, {
37203
+ discoverJobs: () => discoverJobs,
37204
+ scanAll: () => scanAll,
37205
+ scanSession: () => scanSession
37206
+ });
37158
37207
  import { readdir, stat as stat2 } from "fs/promises";
37159
37208
  import { homedir as homedir5 } from "os";
37160
37209
  import { join as join7 } from "path";
@@ -37218,13 +37267,66 @@ async function scanAll(cb = {}) {
37218
37267
  const deviceId = state.deviceId;
37219
37268
  if (!deviceId) throw new Error("daemon not enrolled \u2014 run `register` first");
37220
37269
  const jobs = await discoverJobs(deviceId);
37221
- const ordered = (await Promise.all(
37270
+ const ordered = await orderJobsNewestFirst(jobs);
37271
+ return runScanOverJobs(
37272
+ ordered,
37273
+ deviceId,
37274
+ { maxFiles: MAX_FILES_PER_SCAN, forceReadAll: false },
37275
+ cb
37276
+ );
37277
+ }
37278
+ async function scanSession(target = {}, cb = {}) {
37279
+ const deviceId = state.deviceId;
37280
+ if (!deviceId) throw new Error("daemon not enrolled \u2014 run `register` first");
37281
+ const all = await discoverJobs(deviceId);
37282
+ let selected;
37283
+ if (target.file) {
37284
+ const existing = all.find((j) => j.path === target.file);
37285
+ selected = existing ? [existing] : [jobForFile(deviceId, target.file)];
37286
+ } else if (target.sessionIds && target.sessionIds.length > 0) {
37287
+ const wanted = new Set(target.sessionIds);
37288
+ selected = all.filter((j) => {
37289
+ const sid = sessionIdForPath(j.path);
37290
+ return sid != null && wanted.has(sid);
37291
+ });
37292
+ } else {
37293
+ const ordered = await orderJobsNewestFirst(all);
37294
+ selected = ordered.slice(0, 1);
37295
+ }
37296
+ if (selected.length === 0) {
37297
+ return {
37298
+ filesScanned: 0,
37299
+ filesUnchanged: 0,
37300
+ batchesUploaded: 0,
37301
+ eventsUploaded: 0,
37302
+ segmentsUploaded: 0,
37303
+ morePending: false
37304
+ };
37305
+ }
37306
+ return runScanOverJobs(selected, deviceId, { maxFiles: null, forceReadAll: true }, cb);
37307
+ }
37308
+ function sessionIdForPath(path) {
37309
+ return deriveSessionIdFromFilename(path) ?? deriveSessionIdFromRolloutPath(path);
37310
+ }
37311
+ function jobForFile(deviceId, full) {
37312
+ const isCodex = full.includes("/.codex/sessions/") && /rollout-.*\.jsonl$/.test(full);
37313
+ return {
37314
+ path: full,
37315
+ parse: async (sink) => {
37316
+ const r = isCodex ? await parseCodexRollout({ deviceId, sourceFile: full, onEvents: sink }) : await parseClaudeCodeJsonl({ deviceId, sourceFile: full, onEvents: sink });
37317
+ return { toolCalls: r.toolCalls ?? [], scriptContexts: r.scriptContexts ?? [] };
37318
+ }
37319
+ };
37320
+ }
37321
+ async function orderJobsNewestFirst(jobs) {
37322
+ return (await Promise.all(
37222
37323
  jobs.map(async (j) => ({
37223
37324
  job: j,
37224
37325
  mtimeMs: (await stat2(j.path).catch(() => null))?.mtimeMs ?? 0
37225
37326
  }))
37226
37327
  )).sort((a, b) => b.mtimeMs - a.mtimeMs).map((x) => x.job);
37227
- const MAX_FILES_PER_SCAN = 12;
37328
+ }
37329
+ async function runScanOverJobs(ordered, deviceId, opts, cb) {
37228
37330
  let morePending = false;
37229
37331
  let filesScanned = 0;
37230
37332
  let filesUnchanged = 0;
@@ -37312,7 +37414,7 @@ async function scanAll(cb = {}) {
37312
37414
  cb.onFile?.(job.path, i, ordered.length);
37313
37415
  const cur = state.getCursor(job.path);
37314
37416
  const cs = await quickChecksum(job.path).catch(() => null);
37315
- if (cs && cur && cur.size === cs.size && cur.tailHash === cs.tailHash) {
37417
+ if (!opts.forceReadAll && cs && cur && cur.size === cs.size && cur.tailHash === cs.tailHash) {
37316
37418
  filesUnchanged += 1;
37317
37419
  continue;
37318
37420
  }
@@ -37332,7 +37434,7 @@ async function scanAll(cb = {}) {
37332
37434
  } catch (e) {
37333
37435
  console.warn(` ! parse failed for ${job.path}:`, e.message);
37334
37436
  }
37335
- if (filesScanned >= MAX_FILES_PER_SCAN) {
37437
+ if (opts.maxFiles !== null && filesScanned >= opts.maxFiles) {
37336
37438
  morePending = true;
37337
37439
  break;
37338
37440
  }
@@ -37347,7 +37449,7 @@ async function scanAll(cb = {}) {
37347
37449
  morePending
37348
37450
  };
37349
37451
  }
37350
- var DAEMON_VERSION, BATCH_MAX_EVENTS, BATCH_MAX_TOOL_CALLS, BATCH_BUFFER_HARD_CAP, ZERO_TOKENS;
37452
+ var DAEMON_VERSION, BATCH_MAX_EVENTS, BATCH_MAX_TOOL_CALLS, BATCH_BUFFER_HARD_CAP, ZERO_TOKENS, MAX_FILES_PER_SCAN;
37351
37453
  var init_scan = __esm({
37352
37454
  "src/scan.ts"() {
37353
37455
  "use strict";
@@ -37358,7 +37460,7 @@ var init_scan = __esm({
37358
37460
  init_api();
37359
37461
  init_config2();
37360
37462
  init_pipeline2();
37361
- DAEMON_VERSION = true ? "daemon-0.13.0" : "daemon-dev";
37463
+ DAEMON_VERSION = true ? "daemon-0.14.0" : "daemon-dev";
37362
37464
  BATCH_MAX_EVENTS = INGEST_BATCH_MAX_EVENTS;
37363
37465
  BATCH_MAX_TOOL_CALLS = 2e4;
37364
37466
  BATCH_BUFFER_HARD_CAP = BATCH_MAX_EVENTS * 2;
@@ -37369,6 +37471,7 @@ var init_scan = __esm({
37369
37471
  cache_read: 0,
37370
37472
  reasoning: 0
37371
37473
  };
37474
+ MAX_FILES_PER_SCAN = 12;
37372
37475
  }
37373
37476
  });
37374
37477
 
@@ -37595,8 +37698,105 @@ var init_update = __esm({
37595
37698
  }
37596
37699
  });
37597
37700
 
37701
+ // src/insights.ts
37702
+ var insights_exports = {};
37703
+ __export(insights_exports, {
37704
+ cacheSessionInsights: () => cacheSessionInsights,
37705
+ fetchSessionInsights: () => fetchSessionInsights,
37706
+ refreshSessionInsights: () => refreshSessionInsights,
37707
+ sessionInsightsPath: () => sessionInsightsPath
37708
+ });
37709
+ import { mkdir as mkdir2, rename, writeFile } from "fs/promises";
37710
+ function sessionsDir() {
37711
+ return homePath("sessions");
37712
+ }
37713
+ function sessionInsightsPath(sessionId) {
37714
+ return homePath("sessions", `${encodeURIComponent(sessionId)}.json`);
37715
+ }
37716
+ async function fetchSessionInsights(sessionIds, opts = {}) {
37717
+ const bearer = state.bearer;
37718
+ if (!bearer) return null;
37719
+ if (sessionIds.length === 0) return null;
37720
+ try {
37721
+ const res = await (0, import_undici2.request)(`${state.apiUrl}/v1/mcp/call`, {
37722
+ method: "POST",
37723
+ headers: { "content-type": "application/json", authorization: `Bearer ${bearer}` },
37724
+ body: JSON.stringify({
37725
+ name: "session_insights",
37726
+ arguments: { session_ids: sessionIds, eager: opts.eager === true }
37727
+ })
37728
+ });
37729
+ if (res.statusCode >= 300) {
37730
+ await res.body.dump();
37731
+ return null;
37732
+ }
37733
+ const body = await res.body.json();
37734
+ if (body.isError) return null;
37735
+ const text = body.content?.find((c) => c.type === "text")?.text ?? body.content?.[0]?.text;
37736
+ if (!text) return null;
37737
+ return JSON.parse(text);
37738
+ } catch (e) {
37739
+ logger.warn(`session_insights fetch failed: ${e.message}`);
37740
+ return null;
37741
+ }
37742
+ }
37743
+ async function cacheSessionInsights(sessionId, insights) {
37744
+ const path = sessionInsightsPath(sessionId);
37745
+ const payload = { ...insights, cached_at: (/* @__PURE__ */ new Date()).toISOString() };
37746
+ try {
37747
+ await mkdir2(sessionsDir(), { recursive: true });
37748
+ const tmp = `${path}.tmp`;
37749
+ await writeFile(tmp, JSON.stringify(payload));
37750
+ await rename(tmp, path);
37751
+ } catch (e) {
37752
+ logger.warn(`session insights cache write failed for ${sessionId}: ${e.message}`);
37753
+ }
37754
+ }
37755
+ async function refreshSessionInsights(sessionIds) {
37756
+ if (sessionIds.length === 0) return;
37757
+ const cacheKey = sessionIds[0];
37758
+ let insights = await fetchSessionInsights(sessionIds, { eager: true });
37759
+ if (insights) await cacheSessionInsights(cacheKey, insights);
37760
+ for (const delay of POLL_DELAYS_MS) {
37761
+ if (!insights || insights.status !== "analyzing") break;
37762
+ await sleep2(delay);
37763
+ const next = await fetchSessionInsights(sessionIds, { eager: false });
37764
+ if (next) {
37765
+ insights = next;
37766
+ await cacheSessionInsights(cacheKey, next);
37767
+ }
37768
+ }
37769
+ }
37770
+ function sleep2(ms) {
37771
+ return new Promise((r) => setTimeout(r, ms));
37772
+ }
37773
+ var import_undici2, logger, POLL_DELAYS_MS;
37774
+ var init_insights = __esm({
37775
+ "src/insights.ts"() {
37776
+ "use strict";
37777
+ import_undici2 = __toESM(require_undici(), 1);
37778
+ init_logger();
37779
+ init_config2();
37780
+ init_paths();
37781
+ logger = createLogger("daemon.insights");
37782
+ POLL_DELAYS_MS = [1200, 2e3, 3e3, 4e3];
37783
+ }
37784
+ });
37785
+
37598
37786
  // src/receiver.ts
37599
37787
  import { createServer } from "http";
37788
+ import { homedir as homedir7 } from "os";
37789
+ import { resolve as resolve4, sep } from "path";
37790
+ function transcriptRoots() {
37791
+ const home2 = homedir7();
37792
+ return [resolve4(home2, ".claude/projects"), resolve4(home2, ".codex/sessions")];
37793
+ }
37794
+ function isAllowedTranscriptFile(file) {
37795
+ const target = resolve4(file);
37796
+ return transcriptRoots().some(
37797
+ (root) => target === root || target.startsWith(root + sep)
37798
+ );
37799
+ }
37600
37800
  function queue() {
37601
37801
  if (!store) store = new FileQueueStore(homePath("sdk-ingest-queue.json"));
37602
37802
  return store;
@@ -37671,36 +37871,51 @@ function localQueueDepth() {
37671
37871
  }
37672
37872
  function startLocalIngestReceiver(opts = {}) {
37673
37873
  const port = opts.port ?? (Number(process.env.MODELSTAT_LOCAL_INGEST_PORT) || DEFAULT_LOCAL_INGEST_PORT);
37674
- return new Promise((resolve6) => {
37675
- const server = createServer((req, res) => void handle(req, res));
37874
+ const controlRunner = opts.onControlScan ? createControlRunner(opts.onControlScan) : null;
37875
+ return new Promise((resolve7) => {
37876
+ const server = createServer((req, res) => void handle(req, res, controlRunner));
37676
37877
  let settled = false;
37677
37878
  server.on("error", (err) => {
37678
37879
  if (settled) return;
37679
37880
  settled = true;
37680
- logger.warn(
37881
+ logger2.warn(
37681
37882
  `local ingest receiver disabled \u2014 SDK local_daemon mode unavailable: ${err.code ?? err.message} on 127.0.0.1:${port}`
37682
37883
  );
37683
- resolve6(null);
37884
+ resolve7(null);
37684
37885
  });
37685
37886
  server.listen(port, "127.0.0.1", () => {
37686
37887
  settled = true;
37687
37888
  const addr = server.address();
37688
37889
  const boundPort = typeof addr === "object" && addr ? addr.port : port;
37689
- logger.info(`local ingest receiver on http://127.0.0.1:${boundPort}/v1/ingest`);
37690
- resolve6({
37890
+ logger2.info(`local ingest receiver on http://127.0.0.1:${boundPort}/v1/ingest`);
37891
+ resolve7({
37691
37892
  port: boundPort,
37692
37893
  close: () => new Promise((r) => server.close(() => r()))
37693
37894
  });
37694
37895
  });
37695
37896
  });
37696
37897
  }
37697
- async function handle(req, res) {
37898
+ function createControlRunner(handler) {
37899
+ let active = null;
37900
+ return {
37901
+ run(target) {
37902
+ const prev = active ?? Promise.resolve();
37903
+ const next = prev.catch(() => void 0).then(() => handler(target));
37904
+ active = next.catch(() => void 0);
37905
+ return next;
37906
+ }
37907
+ };
37908
+ }
37909
+ async function handle(req, res, controlRunner) {
37698
37910
  const send = (code, body) => {
37699
37911
  res.writeHead(code, { "content-type": "application/json" });
37700
37912
  res.end(JSON.stringify(body));
37701
37913
  };
37702
37914
  const path = (req.url ?? "").split("?")[0];
37703
37915
  if (req.method === "GET" && path === "/healthz") return send(200, { ok: true });
37916
+ if (req.method === "POST" && path === "/v1/control/scan") {
37917
+ return handleControlScan(req, send, controlRunner);
37918
+ }
37704
37919
  if (req.method !== "POST" || path !== "/v1/ingest" && path !== "/v1/ingest/raw") {
37705
37920
  return send(404, { error: "not found" });
37706
37921
  }
@@ -37731,11 +37946,56 @@ async function handle(req, res) {
37731
37946
  const accepted = await enqueue(parsed);
37732
37947
  return send(200, { accepted, queued: true });
37733
37948
  } catch (e) {
37734
- logger.warn(`local ingest enqueue failed: ${e.message}`);
37949
+ logger2.warn(`local ingest enqueue failed: ${e.message}`);
37735
37950
  return send(500, { error: "enqueue failed" });
37736
37951
  }
37737
37952
  }
37738
- var logger, DEFAULT_LOCAL_INGEST_PORT, MAX_BODY_BYTES, store, pipeline, draining;
37953
+ async function handleControlScan(req, send, controlRunner) {
37954
+ if (!controlRunner) return send(503, { error: "control scan unavailable" });
37955
+ const chunks = [];
37956
+ let size = 0;
37957
+ try {
37958
+ for await (const chunk of req) {
37959
+ size += chunk.length;
37960
+ if (size > 64 * 1024) {
37961
+ send(413, { error: "control body too large" });
37962
+ req.destroy();
37963
+ return;
37964
+ }
37965
+ chunks.push(chunk);
37966
+ }
37967
+ } catch {
37968
+ return send(400, { error: "read error" });
37969
+ }
37970
+ let body;
37971
+ try {
37972
+ const raw = chunks.length ? Buffer.concat(chunks).toString("utf8") : "{}";
37973
+ body = JSON.parse(raw);
37974
+ } catch {
37975
+ return send(400, { error: "invalid json" });
37976
+ }
37977
+ const sessionIds = Array.isArray(body.session_ids) ? body.session_ids.filter((s) => typeof s === "string" && s.length > 0) : void 0;
37978
+ let file;
37979
+ if (body.file !== void 0) {
37980
+ if (typeof body.file !== "string" || !isAllowedTranscriptFile(body.file)) {
37981
+ return send(400, { error: "file must be under ~/.claude/projects or ~/.codex/sessions" });
37982
+ }
37983
+ file = body.file;
37984
+ }
37985
+ const target = { sessionIds, file };
37986
+ const run = controlRunner.run(target);
37987
+ if (body.wait === true) {
37988
+ try {
37989
+ await run;
37990
+ return send(200, { ok: true, scanned: true });
37991
+ } catch (e) {
37992
+ return send(500, { error: `scan failed: ${e.message}` });
37993
+ }
37994
+ }
37995
+ void run.catch((e) => logger2.warn(`control scan failed: ${e.message}`));
37996
+ return send(200, { ok: true, started: true });
37997
+ }
37998
+ var logger2, DEFAULT_LOCAL_INGEST_PORT, MAX_BODY_BYTES, store, pipeline, draining;
37739
37999
  var init_receiver = __esm({
37740
38000
  "src/receiver.ts"() {
37741
38001
  "use strict";
@@ -37745,7 +38005,7 @@ var init_receiver = __esm({
37745
38005
  init_api();
37746
38006
  init_paths();
37747
38007
  init_pipeline2();
37748
- logger = createLogger("daemon.local-ingest");
38008
+ logger2 = createLogger("daemon.local-ingest");
37749
38009
  DEFAULT_LOCAL_INGEST_PORT = 4319;
37750
38010
  MAX_BODY_BYTES = 16 * 1024 * 1024;
37751
38011
  store = null;
@@ -38074,11 +38334,11 @@ var init_src4 = __esm({
38074
38334
  });
38075
38335
 
38076
38336
  // ../../packages/remote-config/src/node.ts
38077
- import { chmod, mkdir as mkdir2, readFile, rename, writeFile } from "fs/promises";
38078
- import { homedir as homedir7 } from "os";
38337
+ import { chmod, mkdir as mkdir3, readFile, rename as rename2, writeFile as writeFile2 } from "fs/promises";
38338
+ import { homedir as homedir8 } from "os";
38079
38339
  import { join as join10 } from "path";
38080
38340
  function defaultRoot() {
38081
- return join10(homedir7(), ".modelstat", "config");
38341
+ return join10(homedir8(), ".modelstat", "config");
38082
38342
  }
38083
38343
  function safeKind(kind) {
38084
38344
  if (!/^[a-z0-9_-]{1,64}$/.test(kind)) throw new Error(`unsafe config kind: ${kind}`);
@@ -38088,8 +38348,8 @@ function createNodeDiskCache(opts = {}) {
38088
38348
  const dir = opts.dir ?? defaultRoot();
38089
38349
  async function writeAtomic2(path, data) {
38090
38350
  const tmp = `${path}.${process.pid}.tmp`;
38091
- await writeFile(tmp, data, { mode: 384 });
38092
- await rename(tmp, path);
38351
+ await writeFile2(tmp, data, { mode: 384 });
38352
+ await rename2(tmp, path);
38093
38353
  try {
38094
38354
  await chmod(path, 384);
38095
38355
  } catch {
@@ -38107,7 +38367,7 @@ function createNodeDiskCache(opts = {}) {
38107
38367
  },
38108
38368
  async write(kind, payload) {
38109
38369
  const k = safeKind(kind);
38110
- await mkdir2(dir, { recursive: true, mode: 448 });
38370
+ await mkdir3(dir, { recursive: true, mode: 448 });
38111
38371
  await writeAtomic2(join10(dir, `${k}.json`), `${JSON.stringify(payload)}
38112
38372
  `);
38113
38373
  }
@@ -39031,7 +39291,7 @@ var init_handler = __esm({
39031
39291
  this._addToNodeFs(path, initialAdd, wh, depth + 1);
39032
39292
  }
39033
39293
  }).on(EV.ERROR, this._boundHandleError);
39034
- return new Promise((resolve6, reject) => {
39294
+ return new Promise((resolve7, reject) => {
39035
39295
  if (!stream)
39036
39296
  return reject();
39037
39297
  stream.once(STR_END, () => {
@@ -39040,7 +39300,7 @@ var init_handler = __esm({
39040
39300
  return;
39041
39301
  }
39042
39302
  const wasThrottled = throttler ? throttler.clear() : false;
39043
- resolve6(void 0);
39303
+ resolve7(void 0);
39044
39304
  previous.getChildren().filter((item) => {
39045
39305
  return item !== directory && !current.has(item);
39046
39306
  }).forEach((item) => {
@@ -39994,7 +40254,7 @@ async function sendHeartbeat() {
39994
40254
  if (!bearer || !deviceId) return;
39995
40255
  const body = { ...snapshotBody(), device_id: deviceId };
39996
40256
  try {
39997
- const res = await (0, import_undici2.request)(`${state.apiUrl}/v1/daemon/heartbeat`, {
40257
+ const res = await (0, import_undici3.request)(`${state.apiUrl}/v1/daemon/heartbeat`, {
39998
40258
  method: "POST",
39999
40259
  headers: { "content-type": "application/json", authorization: `Bearer ${bearer}` },
40000
40260
  body: JSON.stringify(body)
@@ -40013,10 +40273,10 @@ async function sendHeartbeat() {
40013
40273
  writeLocalStatus(body).catch(() => void 0);
40014
40274
  }
40015
40275
  async function rotateRunawayLogs() {
40016
- const { homedir: homedir9 } = await import("os");
40276
+ const { homedir: homedir10 } = await import("os");
40017
40277
  const { join: join14 } = await import("path");
40018
- const { open: open2, stat: stat7, truncate, writeFile: writeFile2 } = await import("fs/promises");
40019
- const dir = join14(homedir9(), ".modelstat", "logs");
40278
+ const { open: open2, stat: stat7, truncate, writeFile: writeFile3 } = await import("fs/promises");
40279
+ const dir = join14(homedir10(), ".modelstat", "logs");
40020
40280
  for (const name of ["out.log", "err.log"]) {
40021
40281
  const p = join14(dir, name);
40022
40282
  try {
@@ -40027,7 +40287,7 @@ async function rotateRunawayLogs() {
40027
40287
  try {
40028
40288
  const buf = Buffer.alloc(keep);
40029
40289
  await fh.read(buf, 0, keep, st.size - keep);
40030
- await writeFile2(p.replace(/\.log$/, ".old.log"), buf);
40290
+ await writeFile3(p.replace(/\.log$/, ".old.log"), buf);
40031
40291
  } finally {
40032
40292
  await fh.close();
40033
40293
  }
@@ -40041,20 +40301,20 @@ async function rotateRunawayLogs() {
40041
40301
  }
40042
40302
  async function writeLocalStatus(snapshot) {
40043
40303
  const { join: join14 } = await import("path");
40044
- const { writeFile: writeFile2, mkdir: mkdir3, rename: rename2 } = await import("fs/promises");
40304
+ const { writeFile: writeFile3, mkdir: mkdir4, rename: rename3 } = await import("fs/promises");
40045
40305
  const { modelstatHome: modelstatHome2 } = await Promise.resolve().then(() => (init_paths(), paths_exports));
40046
40306
  if (!lastStatusPath) {
40047
40307
  const dir = modelstatHome2();
40048
40308
  try {
40049
- await mkdir3(dir, { recursive: true });
40309
+ await mkdir4(dir, { recursive: true });
40050
40310
  } catch {
40051
40311
  }
40052
40312
  lastStatusPath = join14(dir, "last-status.json");
40053
40313
  }
40054
40314
  const tmp = `${lastStatusPath}.tmp`;
40055
40315
  try {
40056
- await writeFile2(tmp, JSON.stringify({ ...snapshot, written_at: (/* @__PURE__ */ new Date()).toISOString() }));
40057
- await rename2(tmp, lastStatusPath);
40316
+ await writeFile3(tmp, JSON.stringify({ ...snapshot, written_at: (/* @__PURE__ */ new Date()).toISOString() }));
40317
+ await rename3(tmp, lastStatusPath);
40058
40318
  } catch {
40059
40319
  }
40060
40320
  }
@@ -40123,6 +40383,38 @@ async function runScanCycle(reason) {
40123
40383
  function requestScan(reason) {
40124
40384
  return scanRunner.trigger(reason);
40125
40385
  }
40386
+ async function runEagerSessionScan(target) {
40387
+ setPhase("scanning", "Eager scan (current session)");
40388
+ try {
40389
+ const r = await scanSession(target, {
40390
+ onProgress(p) {
40391
+ if (p.segment === 0) setPhase("processing", "Analyzing current session");
40392
+ else setPhase("processing", `Summarising segment ${p.segment}/${p.segmentTotal}`);
40393
+ },
40394
+ onUpload({ segments }) {
40395
+ setPhase("uploading", `Uploading ${segments} segments`);
40396
+ setStat("segments_sending", segments);
40397
+ },
40398
+ onUploaded({ events, segments }) {
40399
+ bumpStat("events_uploaded", events);
40400
+ setStat("segments_sent", state.bumpSegmentsSent(segments));
40401
+ setStat("segments_sending", 0);
40402
+ status.lastEventAt = (/* @__PURE__ */ new Date()).toISOString();
40403
+ }
40404
+ });
40405
+ if (target.sessionIds && target.sessionIds.length > 0) {
40406
+ await refreshSessionInsights(target.sessionIds);
40407
+ }
40408
+ setPhase("watching", "Waiting for new events");
40409
+ setMessage(
40410
+ r.segmentsUploaded > 0 ? `Eager scan: ${r.segmentsUploaded} segments uploaded` : "Eager scan: nothing new"
40411
+ );
40412
+ } catch (e) {
40413
+ setStat("segments_sending", 0);
40414
+ setPhase("watching", `Eager scan failed: ${describeErrorWithCause(e)}`);
40415
+ throw e;
40416
+ }
40417
+ }
40126
40418
  function basename4(p) {
40127
40419
  return p.split("/").pop() ?? p;
40128
40420
  }
@@ -40189,7 +40481,13 @@ async function runDaemon(opts = {}) {
40189
40481
  console.warn(`[modelstat] summariser preflight error (continuing): ${err.message}`);
40190
40482
  setMessage(`summariser preflight error (continuing): ${err.message}`);
40191
40483
  }
40192
- const localIngest = await startLocalIngestReceiver();
40484
+ const localIngest = await startLocalIngestReceiver({
40485
+ // Serve the loopback control endpoint so `modelstat scan --session` can
40486
+ // warm this running daemon (summariser already loaded) instead of
40487
+ // cold-spawning its own — and so the eager scan refreshes the local
40488
+ // insights cache the statusline reads.
40489
+ onControlScan: runEagerSessionScan
40490
+ });
40193
40491
  const LOCAL_DRAIN_INTERVAL_MS = 5e3;
40194
40492
  let localDrainTimer = null;
40195
40493
  if (localIngest) {
@@ -40224,9 +40522,9 @@ async function runDaemon(opts = {}) {
40224
40522
  setMessage(`policy refresh unavailable: ${err.message}`);
40225
40523
  }
40226
40524
  const chokidar = (await Promise.resolve().then(() => (init_esm2(), esm_exports))).default;
40227
- const { homedir: homedir9, platform: platform7 } = await import("os");
40525
+ const { homedir: homedir10, platform: platform7 } = await import("os");
40228
40526
  const { join: join14 } = await import("path");
40229
- const home2 = homedir9();
40527
+ const home2 = homedir10();
40230
40528
  const dirs = [
40231
40529
  join14(home2, ".claude/projects"),
40232
40530
  join14(home2, ".codex/sessions"),
@@ -40288,24 +40586,25 @@ async function runDaemon(opts = {}) {
40288
40586
  await new Promise(() => {
40289
40587
  });
40290
40588
  }
40291
- var import_undici2, DAEMON_VERSION2, HEARTBEAT_INTERVAL_MS, SCAN_INTERVAL_MS, DISCOVERY_INTERVAL_MS, SUMMARISER_RECOVERY_MIN_INTERVAL_MS, status, LOCAL_FLUSH_THROTTLE_MS, localFlushTimer, localFlushPending, lastVerdict, LOG_MAX_BYTES, LOG_TAIL_KEEP_BYTES, lastStatusPath, scanRunner;
40589
+ var import_undici3, DAEMON_VERSION2, HEARTBEAT_INTERVAL_MS, SCAN_INTERVAL_MS, DISCOVERY_INTERVAL_MS, SUMMARISER_RECOVERY_MIN_INTERVAL_MS, status, LOCAL_FLUSH_THROTTLE_MS, localFlushTimer, localFlushPending, lastVerdict, LOG_MAX_BYTES, LOG_TAIL_KEEP_BYTES, lastStatusPath, scanRunner;
40292
40590
  var init_daemon = __esm({
40293
40591
  "src/daemon.ts"() {
40294
40592
  "use strict";
40295
40593
  init_logger();
40296
40594
  init_src2();
40297
- import_undici2 = __toESM(require_undici(), 1);
40595
+ import_undici3 = __toESM(require_undici(), 1);
40298
40596
  init_api();
40299
40597
  init_config2();
40300
40598
  init_lock();
40301
40599
  init_machine_key();
40600
+ init_insights();
40302
40601
  init_receiver();
40303
40602
  init_reconcile();
40304
40603
  init_runtime_state();
40305
40604
  init_scan();
40306
40605
  init_single_flight();
40307
40606
  init_update();
40308
- DAEMON_VERSION2 = true ? "daemon-0.13.0" : "daemon-dev";
40607
+ DAEMON_VERSION2 = true ? "daemon-0.14.0" : "daemon-dev";
40309
40608
  HEARTBEAT_INTERVAL_MS = 1e4;
40310
40609
  SCAN_INTERVAL_MS = 5 * 60 * 1e3;
40311
40610
  DISCOVERY_INTERVAL_MS = 6e4;
@@ -40337,10 +40636,10 @@ __export(watch_exports, {
40337
40636
  watchForever: () => watchForever
40338
40637
  });
40339
40638
  import { existsSync as existsSync12 } from "fs";
40340
- import { homedir as homedir8, platform as platform5 } from "os";
40639
+ import { homedir as homedir9, platform as platform5 } from "os";
40341
40640
  import { join as join13 } from "path";
40342
40641
  function resolveWatchDirs() {
40343
- const home2 = homedir8();
40642
+ const home2 = homedir9();
40344
40643
  const xdgConfig = process.env.XDG_CONFIG_HOME ?? join13(home2, ".config");
40345
40644
  const xdgData = process.env.XDG_DATA_HOME ?? join13(home2, ".local/share");
40346
40645
  const candidates = [
@@ -40831,16 +41130,16 @@ function createLineSplitter(onLine) {
40831
41130
  };
40832
41131
  }
40833
41132
  function runTrayBuild(cwd, buildScript, progress) {
40834
- return new Promise((resolve6) => {
41133
+ return new Promise((resolve7) => {
40835
41134
  const child = spawn("bash", [buildScript], { cwd });
40836
41135
  const splitter = createLineSplitter((line) => progress?.onLine?.(line));
40837
41136
  const pump = (chunk) => splitter.push(chunk.toString("utf8"));
40838
41137
  child.stdout?.on("data", pump);
40839
41138
  child.stderr?.on("data", pump);
40840
- child.on("error", () => resolve6(null));
41139
+ child.on("error", () => resolve7(null));
40841
41140
  child.on("close", (code) => {
40842
41141
  splitter.flush();
40843
- resolve6(code);
41142
+ resolve7(code);
40844
41143
  });
40845
41144
  });
40846
41145
  }
@@ -40912,7 +41211,7 @@ async function confirmPrompt(question, defaultYes) {
40912
41211
  if (process.stdin.isTTY !== true) return defaultYes;
40913
41212
  const rl = createInterface3({ input: process.stdin, output: process.stdout });
40914
41213
  try {
40915
- const raw = await new Promise((resolve6) => rl.question(question, resolve6));
41214
+ const raw = await new Promise((resolve7) => rl.question(question, resolve7));
40916
41215
  const ans = raw.trim().toLowerCase();
40917
41216
  if (ans === "") return defaultYes;
40918
41217
  if (ans === "y" || ans === "yes") return true;
@@ -40937,7 +41236,7 @@ function tryOpenBrowser(url) {
40937
41236
  return false;
40938
41237
  }
40939
41238
  }
40940
- var DAEMON_VERSION3 = true ? "daemon-0.13.0" : "daemon-dev";
41239
+ var DAEMON_VERSION3 = true ? "daemon-0.14.0" : "daemon-dev";
40941
41240
  function osFamily() {
40942
41241
  const p = platform6();
40943
41242
  if (p === "darwin") return "macos";
@@ -40950,6 +41249,33 @@ function osArch() {
40950
41249
  if (a === "arm64") return "arm64";
40951
41250
  return "other";
40952
41251
  }
41252
+ function flagValue(args, flag) {
41253
+ for (let i = 0; i < args.length; i++) {
41254
+ const a = args[i];
41255
+ if (a === flag) return args[i + 1];
41256
+ if (a.startsWith(`${flag}=`)) return a.slice(flag.length + 1);
41257
+ }
41258
+ return void 0;
41259
+ }
41260
+ function flagValues(args, flag) {
41261
+ const out = [];
41262
+ for (let i = 0; i < args.length; i++) {
41263
+ const a = args[i];
41264
+ if (a === flag) {
41265
+ const v = args[i + 1];
41266
+ if (v !== void 0 && !v.startsWith("--")) out.push(v);
41267
+ } else if (a.startsWith(`${flag}=`)) {
41268
+ out.push(a.slice(flag.length + 1));
41269
+ }
41270
+ }
41271
+ return out;
41272
+ }
41273
+ function numericFlag(args, flag) {
41274
+ const raw = flagValue(args, flag);
41275
+ if (raw === void 0) return void 0;
41276
+ const n = Number(raw);
41277
+ return Number.isFinite(n) ? n : void 0;
41278
+ }
40953
41279
  function intendedDeviceUuid() {
40954
41280
  const salt = process.env.MODELSTAT_DEVICE_SALT?.trim();
40955
41281
  const key = salt ? `${machineKey()}:${salt}` : machineKey();
@@ -41308,7 +41634,17 @@ async function cmdDiscover() {
41308
41634
  });
41309
41635
  console.log("\u2713 reported to backend");
41310
41636
  }
41311
- async function cmdScan() {
41637
+ async function cmdScan(rest) {
41638
+ const sessionIds = flagValues(rest, "--session");
41639
+ const file = flagValue(rest, "--file");
41640
+ if (sessionIds.length > 0 || file) {
41641
+ return cmdScanSession({
41642
+ sessionIds,
41643
+ file,
41644
+ wait: rest.includes("--wait"),
41645
+ port: numericFlag(rest, "--port")
41646
+ });
41647
+ }
41312
41648
  const { preflightSummariser: preflightSummariser2 } = await Promise.resolve().then(() => (init_pipeline2(), pipeline_exports));
41313
41649
  const { label, degraded } = await preflightSummariser2();
41314
41650
  console.log(
@@ -41332,6 +41668,47 @@ async function cmdScan() {
41332
41668
  } catch {
41333
41669
  }
41334
41670
  }
41671
+ async function cmdScanSession(opts) {
41672
+ const { postControlScan: postControlScan2 } = await Promise.resolve().then(() => (init_api(), api_exports));
41673
+ const target = {
41674
+ ...opts.sessionIds.length ? { session_ids: opts.sessionIds } : {},
41675
+ ...opts.file ? { file: opts.file } : {}
41676
+ };
41677
+ const outcome = await postControlScan2({ ...target, wait: opts.wait }, { port: opts.port });
41678
+ if (outcome.kind === "ok") {
41679
+ console.log(
41680
+ opts.wait ? "\u2713 daemon force-scanned the session" : "\u2713 asked the running daemon to force-scan the session"
41681
+ );
41682
+ return;
41683
+ }
41684
+ if (outcome.kind === "error") {
41685
+ console.error(`\u2717 daemon control scan failed (${outcome.status}): ${outcome.message}`);
41686
+ process.exit(1);
41687
+ }
41688
+ console.log("no running daemon on the control port \u2014 scanning in-process\u2026");
41689
+ const { preflightSummariser: preflightSummariser2 } = await Promise.resolve().then(() => (init_pipeline2(), pipeline_exports));
41690
+ const { label, degraded } = await preflightSummariser2();
41691
+ console.log(
41692
+ degraded ? `[modelstat] \u26A0 summariser DEGRADED \u2014 ${label}; extractive fallback, ingest continues` : `[modelstat] summariser preflight ok: ${label}`
41693
+ );
41694
+ const { scanSession: scanSession2 } = await Promise.resolve().then(() => (init_scan(), scan_exports));
41695
+ const r = await scanSession2({
41696
+ ...opts.sessionIds.length ? { sessionIds: opts.sessionIds } : {},
41697
+ ...opts.file ? { file: opts.file } : {}
41698
+ });
41699
+ console.log(
41700
+ `Done: ${r.filesScanned} files scanned, ${r.batchesUploaded} batches, ${r.segmentsUploaded} segments, ${r.eventsUploaded} events uploaded`
41701
+ );
41702
+ if (opts.sessionIds.length > 0) {
41703
+ const { refreshSessionInsights: refreshSessionInsights2 } = await Promise.resolve().then(() => (init_insights(), insights_exports));
41704
+ await refreshSessionInsights2(opts.sessionIds);
41705
+ }
41706
+ try {
41707
+ const { disposeLlama: disposeLlama2 } = await Promise.resolve().then(() => (init_node(), node_exports));
41708
+ await disposeLlama2();
41709
+ } catch {
41710
+ }
41711
+ }
41335
41712
  async function cmdRescan() {
41336
41713
  const { PROCESSING_VERSION: PROCESSING_VERSION2 } = await Promise.resolve().then(() => (init_processing_version(), processing_version_exports));
41337
41714
  state.wipeCursors();
@@ -41651,7 +42028,7 @@ async function main() {
41651
42028
  case "discover":
41652
42029
  return cmdDiscover();
41653
42030
  case "scan":
41654
- return cmdScan();
42031
+ return cmdScan(rest);
41655
42032
  case "rescan":
41656
42033
  return cmdRescan();
41657
42034
  case "watch":
@@ -41702,6 +42079,9 @@ async function main() {
41702
42079
  console.log();
41703
42080
  console.log("Dev / one-shots:");
41704
42081
  console.log(" npx modelstat@latest scan \u2014 one-shot parse + upload of local JSONL");
42082
+ console.log(
42083
+ " npx modelstat@latest scan --session <id> \u2014 eager force-scan ONE session now (--file <path>, --wait)"
42084
+ );
41705
42085
  console.log(
41706
42086
  " npx modelstat@latest rescan \u2014 wipe file cursors so the next scan re-reads & re-summarises everything"
41707
42087
  );