@lakphy/local-router 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -10826,6 +10826,7 @@ async function buildLogEventDetail(id, parsed, location, context) {
10826
10826
  },
10827
10827
  upstream: {
10828
10828
  targetUrl: maskedEvent.target_url,
10829
+ proxyUrl: maskedEvent.proxy_url ?? null,
10829
10830
  providerRequestId: maskedEvent.provider_request_id,
10830
10831
  errorType: maskedEvent.error_type,
10831
10832
  errorMessage: maskedEvent.error_message,
@@ -11661,6 +11662,20 @@ function extractProviderRequestId(headers) {
11661
11662
  }
11662
11663
  return null;
11663
11664
  }
11665
+ function maskUrlCredentials(rawUrl) {
11666
+ try {
11667
+ const parsed = new URL(rawUrl);
11668
+ if (!parsed.username && !parsed.password)
11669
+ return rawUrl;
11670
+ if (parsed.username)
11671
+ parsed.username = "****";
11672
+ if (parsed.password)
11673
+ parsed.password = "****";
11674
+ return parsed.toString();
11675
+ } catch {
11676
+ return rawUrl;
11677
+ }
11678
+ }
11664
11679
 
11665
11680
  // src/openapi.ts
11666
11681
  var openAPISpec = {
@@ -12813,7 +12828,7 @@ function buildResponseHeaders(upstream) {
12813
12828
  });
12814
12829
  return headers;
12815
12830
  }
12816
- function buildLogEvent(logMeta, targetUrl, tsEnd, overrides) {
12831
+ function buildLogEvent(logMeta, targetUrl, proxyUrl, tsEnd, overrides) {
12817
12832
  return {
12818
12833
  request_id: logMeta.requestId,
12819
12834
  ts_start: new Date(logMeta.tsStart).toISOString(),
@@ -12826,7 +12841,8 @@ function buildLogEvent(logMeta, targetUrl, tsEnd, overrides) {
12826
12841
  provider: logMeta.provider,
12827
12842
  model_in: logMeta.modelIn,
12828
12843
  model_out: logMeta.modelOut,
12829
- target_url: targetUrl,
12844
+ target_url: maskUrlCredentials(targetUrl),
12845
+ proxy_url: proxyUrl ? maskUrlCredentials(proxyUrl) : null,
12830
12846
  is_stream: logMeta.isStream,
12831
12847
  upstream_status: 0,
12832
12848
  content_type_req: logMeta.contentTypeReq,
@@ -12883,7 +12899,7 @@ async function proxyRequest(c2, options) {
12883
12899
  });
12884
12900
  } catch (err) {
12885
12901
  if (shouldLog) {
12886
- logger?.writeEvent(buildLogEvent(logMeta, options.targetUrl, Date.now(), {
12902
+ logger?.writeEvent(buildLogEvent(logMeta, options.targetUrl, proxy, Date.now(), {
12887
12903
  error_type: err instanceof Error ? err.constructor.name : "UnknownError",
12888
12904
  error_message: err instanceof Error ? err.message : String(err),
12889
12905
  ...requestBody !== undefined && { request_body: requestBody }
@@ -12923,7 +12939,7 @@ async function proxyRequest(c2, options) {
12923
12939
  });
12924
12940
  console.error("[logger] \u6D41\u5F0F\u65E5\u5FD7\u5904\u7406\u5931\u8D25:", err);
12925
12941
  } finally {
12926
- logger?.writeEvent(buildLogEvent(logMeta, options.targetUrl, Date.now(), {
12942
+ logger?.writeEvent(buildLogEvent(logMeta, options.targetUrl, proxy, Date.now(), {
12927
12943
  upstream_status: upstreamRes.status,
12928
12944
  content_type_res: contentTypeRes,
12929
12945
  response_headers: responseHeaders,
@@ -12954,7 +12970,7 @@ async function proxyRequest(c2, options) {
12954
12970
  if (logger?.bodyPolicy !== "off") {
12955
12971
  eventOverrides.response_body = responseText;
12956
12972
  }
12957
- logger?.writeEvent(buildLogEvent(logMeta, options.targetUrl, Date.now(), eventOverrides));
12973
+ logger?.writeEvent(buildLogEvent(logMeta, options.targetUrl, proxy, Date.now(), eventOverrides));
12958
12974
  return new Response(responseText, {
12959
12975
  status: upstreamRes.status,
12960
12976
  headers: responseHeaders
package/dist/entry.js CHANGED
@@ -10810,6 +10810,7 @@ async function buildLogEventDetail(id, parsed, location, context) {
10810
10810
  },
10811
10811
  upstream: {
10812
10812
  targetUrl: maskedEvent.target_url,
10813
+ proxyUrl: maskedEvent.proxy_url ?? null,
10813
10814
  providerRequestId: maskedEvent.provider_request_id,
10814
10815
  errorType: maskedEvent.error_type,
10815
10816
  errorMessage: maskedEvent.error_message,
@@ -11645,6 +11646,20 @@ function extractProviderRequestId(headers) {
11645
11646
  }
11646
11647
  return null;
11647
11648
  }
11649
+ function maskUrlCredentials(rawUrl) {
11650
+ try {
11651
+ const parsed = new URL(rawUrl);
11652
+ if (!parsed.username && !parsed.password)
11653
+ return rawUrl;
11654
+ if (parsed.username)
11655
+ parsed.username = "****";
11656
+ if (parsed.password)
11657
+ parsed.password = "****";
11658
+ return parsed.toString();
11659
+ } catch {
11660
+ return rawUrl;
11661
+ }
11662
+ }
11648
11663
 
11649
11664
  // src/openapi.ts
11650
11665
  var openAPISpec = {
@@ -12797,7 +12812,7 @@ function buildResponseHeaders(upstream) {
12797
12812
  });
12798
12813
  return headers;
12799
12814
  }
12800
- function buildLogEvent(logMeta, targetUrl, tsEnd, overrides) {
12815
+ function buildLogEvent(logMeta, targetUrl, proxyUrl, tsEnd, overrides) {
12801
12816
  return {
12802
12817
  request_id: logMeta.requestId,
12803
12818
  ts_start: new Date(logMeta.tsStart).toISOString(),
@@ -12810,7 +12825,8 @@ function buildLogEvent(logMeta, targetUrl, tsEnd, overrides) {
12810
12825
  provider: logMeta.provider,
12811
12826
  model_in: logMeta.modelIn,
12812
12827
  model_out: logMeta.modelOut,
12813
- target_url: targetUrl,
12828
+ target_url: maskUrlCredentials(targetUrl),
12829
+ proxy_url: proxyUrl ? maskUrlCredentials(proxyUrl) : null,
12814
12830
  is_stream: logMeta.isStream,
12815
12831
  upstream_status: 0,
12816
12832
  content_type_req: logMeta.contentTypeReq,
@@ -12867,7 +12883,7 @@ async function proxyRequest(c2, options) {
12867
12883
  });
12868
12884
  } catch (err) {
12869
12885
  if (shouldLog) {
12870
- logger?.writeEvent(buildLogEvent(logMeta, options.targetUrl, Date.now(), {
12886
+ logger?.writeEvent(buildLogEvent(logMeta, options.targetUrl, proxy, Date.now(), {
12871
12887
  error_type: err instanceof Error ? err.constructor.name : "UnknownError",
12872
12888
  error_message: err instanceof Error ? err.message : String(err),
12873
12889
  ...requestBody !== undefined && { request_body: requestBody }
@@ -12907,7 +12923,7 @@ async function proxyRequest(c2, options) {
12907
12923
  });
12908
12924
  console.error("[logger] \u6D41\u5F0F\u65E5\u5FD7\u5904\u7406\u5931\u8D25:", err);
12909
12925
  } finally {
12910
- logger?.writeEvent(buildLogEvent(logMeta, options.targetUrl, Date.now(), {
12926
+ logger?.writeEvent(buildLogEvent(logMeta, options.targetUrl, proxy, Date.now(), {
12911
12927
  upstream_status: upstreamRes.status,
12912
12928
  content_type_res: contentTypeRes,
12913
12929
  response_headers: responseHeaders,
@@ -12938,7 +12954,7 @@ async function proxyRequest(c2, options) {
12938
12954
  if (logger?.bodyPolicy !== "off") {
12939
12955
  eventOverrides.response_body = responseText;
12940
12956
  }
12941
- logger?.writeEvent(buildLogEvent(logMeta, options.targetUrl, Date.now(), eventOverrides));
12957
+ logger?.writeEvent(buildLogEvent(logMeta, options.targetUrl, proxy, Date.now(), eventOverrides));
12942
12958
  return new Response(responseText, {
12943
12959
  status: upstreamRes.status,
12944
12960
  headers: responseHeaders