logixia 2.0.6 → 2.0.8

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.
Files changed (131) hide show
  1. package/README.md +9 -0
  2. package/dist/{async-context-2mbUKhcl.mjs → async-context-COuvmwsS.mjs} +2 -2
  3. package/dist/{async-context-2mbUKhcl.mjs.map → async-context-COuvmwsS.mjs.map} +1 -1
  4. package/dist/{async-context-DUFMDYAr.js → async-context-Dv0bmPC-.js} +3 -3
  5. package/dist/{async-context-DUFMDYAr.js.map → async-context-Dv0bmPC-.js.map} +1 -1
  6. package/dist/{azure-monitor.transport-C1RWAumT.mjs → azure-monitor.transport-Coz5Gesu.mjs} +5 -5
  7. package/dist/{azure-monitor.transport-C1RWAumT.mjs.map → azure-monitor.transport-Coz5Gesu.mjs.map} +1 -1
  8. package/dist/{azure-monitor.transport-Bu4S2I2q.js → azure-monitor.transport-D6ryi8rA.js} +5 -5
  9. package/dist/{azure-monitor.transport-Bu4S2I2q.js.map → azure-monitor.transport-D6ryi8rA.js.map} +1 -1
  10. package/dist/azure.js +1 -1
  11. package/dist/azure.mjs +1 -1
  12. package/dist/{batch-buffer-C7Am4Mw-.js → batch-buffer-CFzKnuNZ.js} +3 -3
  13. package/dist/{batch-buffer-C7Am4Mw-.js.map → batch-buffer-CFzKnuNZ.js.map} +1 -1
  14. package/dist/{batch-buffer-BvXLDPlV.mjs → batch-buffer-CQUWDMYq.mjs} +3 -3
  15. package/dist/{batch-buffer-BvXLDPlV.mjs.map → batch-buffer-CQUWDMYq.mjs.map} +1 -1
  16. package/dist/browser.js +25 -1
  17. package/dist/browser.js.map +1 -1
  18. package/dist/browser.mjs +25 -1
  19. package/dist/browser.mjs.map +1 -1
  20. package/dist/{builder-yFvJrz7o.js → builder-BTzvPGHN.js} +82 -15
  21. package/dist/builder-BTzvPGHN.js.map +1 -0
  22. package/dist/{builder-DhNhvOkt.mjs → builder-DKL7WcIN.mjs} +71 -10
  23. package/dist/builder-DKL7WcIN.mjs.map +1 -0
  24. package/dist/cloudwatch.js +1 -1
  25. package/dist/cloudwatch.mjs +1 -1
  26. package/dist/{cloudwatch.transport-DZqF2xZO.mjs → cloudwatch.transport-Cr1aeTGj.mjs} +6 -6
  27. package/dist/{cloudwatch.transport-DZqF2xZO.mjs.map → cloudwatch.transport-Cr1aeTGj.mjs.map} +1 -1
  28. package/dist/{cloudwatch.transport-Ch1Uae-0.js → cloudwatch.transport-D4G5xYfG.js} +6 -6
  29. package/dist/{cloudwatch.transport-Ch1Uae-0.js.map → cloudwatch.transport-D4G5xYfG.js.map} +1 -1
  30. package/dist/correlation.d.mts +6 -0
  31. package/dist/correlation.d.mts.map +1 -1
  32. package/dist/correlation.d.ts +6 -0
  33. package/dist/correlation.d.ts.map +1 -1
  34. package/dist/correlation.js +4 -2
  35. package/dist/correlation.js.map +1 -1
  36. package/dist/correlation.mjs +4 -2
  37. package/dist/correlation.mjs.map +1 -1
  38. package/dist/{entry-fields-BSLkzw18.js → entry-fields-CVwoQplO.js} +3 -3
  39. package/dist/{entry-fields-BSLkzw18.js.map → entry-fields-CVwoQplO.js.map} +1 -1
  40. package/dist/{entry-fields-J1OBi24o.mjs → entry-fields-DNTKQxoU.mjs} +2 -2
  41. package/dist/{entry-fields-J1OBi24o.mjs.map → entry-fields-DNTKQxoU.mjs.map} +1 -1
  42. package/dist/gcp.js +1 -1
  43. package/dist/gcp.mjs +1 -1
  44. package/dist/{gcp.transport-Dy2Lf8FI.js → gcp.transport-CVuRpchl.js} +6 -6
  45. package/dist/{gcp.transport-Dy2Lf8FI.js.map → gcp.transport-CVuRpchl.js.map} +1 -1
  46. package/dist/{gcp.transport-DVCmnA3b.mjs → gcp.transport-LLK2bw2-.mjs} +6 -6
  47. package/dist/{gcp.transport-DVCmnA3b.mjs.map → gcp.transport-LLK2bw2-.mjs.map} +1 -1
  48. package/dist/{index-BSTtFcQ6.d.mts → index-BAkPHp5D.d.mts} +9 -1
  49. package/dist/index-BAkPHp5D.d.mts.map +1 -0
  50. package/dist/{index-CFDGkI8n.d.ts → index-e7LowmAu.d.ts} +9 -1
  51. package/dist/index-e7LowmAu.d.ts.map +1 -0
  52. package/dist/index.d.mts +11 -3
  53. package/dist/index.d.mts.map +1 -1
  54. package/dist/index.d.ts +11 -3
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +17 -16
  57. package/dist/index.js.map +1 -1
  58. package/dist/index.mjs +8 -8
  59. package/dist/internal-log-Cy5nF1ZL.mjs +63 -0
  60. package/dist/internal-log-Cy5nF1ZL.mjs.map +1 -0
  61. package/dist/internal-log-DwqTjhpb.js +80 -0
  62. package/dist/internal-log-DwqTjhpb.js.map +1 -0
  63. package/dist/{logitron-logger-D_MYYrQt.d.ts → logitron-logger-Qh3y9-WH.d.ts} +2 -2
  64. package/dist/{logitron-logger-D_MYYrQt.d.ts.map → logitron-logger-Qh3y9-WH.d.ts.map} +1 -1
  65. package/dist/{logitron-logger-D22Yb61K.d.mts → logitron-logger-sYuk8fOb.d.mts} +2 -2
  66. package/dist/{logitron-logger-D22Yb61K.d.mts.map → logitron-logger-sYuk8fOb.d.mts.map} +1 -1
  67. package/dist/middleware.d.mts +1 -1
  68. package/dist/middleware.d.ts +1 -1
  69. package/dist/middleware.js +8 -8
  70. package/dist/middleware.js.map +1 -1
  71. package/dist/middleware.mjs +3 -3
  72. package/dist/nest.d.mts +12 -3
  73. package/dist/nest.d.mts.map +1 -1
  74. package/dist/nest.d.ts +12 -3
  75. package/dist/nest.d.ts.map +1 -1
  76. package/dist/nest.js +128 -20
  77. package/dist/nest.js.map +1 -1
  78. package/dist/nest.mjs +128 -20
  79. package/dist/nest.mjs.map +1 -1
  80. package/dist/{otel-DyeH6DVR.js → otel-ChnVYRLA.js} +5 -5
  81. package/dist/{otel-DyeH6DVR.js.map → otel-ChnVYRLA.js.map} +1 -1
  82. package/dist/{otel-Dt5riXuE.mjs → otel-DOuwGPCd.mjs} +5 -5
  83. package/dist/{otel-Dt5riXuE.mjs.map → otel-DOuwGPCd.mjs.map} +1 -1
  84. package/dist/{safe-stringify-B5p5ktFe.mjs → safe-stringify--7gbe95n.mjs} +2 -2
  85. package/dist/{safe-stringify-B5p5ktFe.mjs.map → safe-stringify--7gbe95n.mjs.map} +1 -1
  86. package/dist/{safe-stringify-J3sh-7YM.js → safe-stringify-CN7icp8S.js} +5 -5
  87. package/dist/{safe-stringify-J3sh-7YM.js.map → safe-stringify-CN7icp8S.js.map} +1 -1
  88. package/dist/{search-DA3ft3X5.d.mts → search-D-8HJADE.d.mts} +2 -2
  89. package/dist/{search-DA3ft3X5.d.mts.map → search-D-8HJADE.d.mts.map} +1 -1
  90. package/dist/{search-DEl3Pe47.d.ts → search-DPwTKPve.d.ts} +2 -2
  91. package/dist/{search-DEl3Pe47.d.ts.map → search-DPwTKPve.d.ts.map} +1 -1
  92. package/dist/search.d.mts +1 -1
  93. package/dist/search.d.ts +1 -1
  94. package/dist/{secret-config-CmK2wVkr.js → secret-config-BvFl2dC8.js} +7 -8
  95. package/dist/{secret-config-CmK2wVkr.js.map → secret-config-BvFl2dC8.js.map} +1 -1
  96. package/dist/{secret-config-Dhb6pqTU.mjs → secret-config-ByGq7kJd.mjs} +2 -3
  97. package/dist/{secret-config-Dhb6pqTU.mjs.map → secret-config-ByGq7kJd.mjs.map} +1 -1
  98. package/dist/sensitive-names-CHMowujD.js +276 -0
  99. package/dist/sensitive-names-CHMowujD.js.map +1 -0
  100. package/dist/sensitive-names-o__1PUUR.mjs +217 -0
  101. package/dist/sensitive-names-o__1PUUR.mjs.map +1 -0
  102. package/dist/{slack.transport-BTEwsREY.mjs → slack.transport-CSj1j0_X.mjs} +6 -6
  103. package/dist/{slack.transport-BTEwsREY.mjs.map → slack.transport-CSj1j0_X.mjs.map} +1 -1
  104. package/dist/{slack.transport-UbYvOdKx.js → slack.transport-zLQ9MGxS.js} +6 -6
  105. package/dist/{slack.transport-UbYvOdKx.js.map → slack.transport-zLQ9MGxS.js.map} +1 -1
  106. package/dist/testing.d.mts +1 -1
  107. package/dist/testing.d.ts +1 -1
  108. package/dist/transports.d.mts +1 -1
  109. package/dist/transports.d.ts +1 -1
  110. package/dist/transports.js +6 -6
  111. package/dist/transports.mjs +6 -6
  112. package/dist/worker-entry.js +25 -1
  113. package/dist/worker.js +1 -1
  114. package/dist/worker.mjs +1 -1
  115. package/dist/{worker.transport-BmmOKb1-.mjs → worker.transport-D78xhNhB.mjs} +3 -3
  116. package/dist/{worker.transport-BmmOKb1-.mjs.map → worker.transport-D78xhNhB.mjs.map} +1 -1
  117. package/dist/{worker.transport-DxxbqQCG.js → worker.transport-DQDv1nAJ.js} +3 -3
  118. package/dist/{worker.transport-DxxbqQCG.js.map → worker.transport-DQDv1nAJ.js.map} +1 -1
  119. package/package.json +1 -1
  120. package/dist/builder-DhNhvOkt.mjs.map +0 -1
  121. package/dist/builder-yFvJrz7o.js.map +0 -1
  122. package/dist/index-BSTtFcQ6.d.mts.map +0 -1
  123. package/dist/index-CFDGkI8n.d.ts.map +0 -1
  124. package/dist/internal-log-Bg4V1cPg.mjs +0 -170
  125. package/dist/internal-log-Bg4V1cPg.mjs.map +0 -1
  126. package/dist/internal-log-By4Govmu.js +0 -223
  127. package/dist/internal-log-By4Govmu.js.map +0 -1
  128. package/dist/own-property-BWkibepN.js +0 -40
  129. package/dist/own-property-BWkibepN.js.map +0 -1
  130. package/dist/own-property-CjFw9qwZ.mjs +0 -29
  131. package/dist/own-property-CjFw9qwZ.mjs.map +0 -1
@@ -1,170 +0,0 @@
1
- // src/utils/sensitive-names.ts
2
- /**
3
- * The one list of sensitive names. Log redaction (redact.utils), the HTTP logger
4
- * middleware and transport secret handling (transports/secret-config) all read it,
5
- * so the lists cannot drift. No imports: safe from any module, including browser code.
6
- */
7
- /** Field names redacted by name, wherever they appear in logged data. */
8
- const SENSITIVE_KEY_NAMES = [
9
- "password",
10
- "passwd",
11
- "secret",
12
- "token",
13
- "apiKey",
14
- "api_key",
15
- "accessToken",
16
- "access_token",
17
- "refreshToken",
18
- "refresh_token",
19
- "authorization",
20
- "credentials",
21
- "privateKey",
22
- "private_key",
23
- "clientSecret",
24
- "client_secret",
25
- "cookie",
26
- "set-cookie",
27
- "x-api-key",
28
- "session",
29
- "proxy-authorization",
30
- "x-auth-token",
31
- "x-access-token",
32
- "aws_secret_access_key",
33
- "awsSecretAccessKey",
34
- "secretAccessKey"
35
- ];
36
- /**
37
- * Extra names that only mean "secret" inside transport configuration, where
38
- * short words like `key` or `signature` are credentials, not log fields.
39
- */
40
- const TRANSPORT_CONFIG_SECRET_NAMES = [
41
- "writeKey",
42
- "apiSecret",
43
- "connectionString",
44
- "sessionToken",
45
- "passphrase",
46
- "signature",
47
- "pwd",
48
- "pfx",
49
- "cert",
50
- "key",
51
- "auth"
52
- ];
53
- /** Request headers whose values are never logged. */
54
- const DEFAULT_REDACT_HEADERS = [
55
- "authorization",
56
- "cookie",
57
- "set-cookie",
58
- "x-api-key",
59
- "proxy-authorization",
60
- "x-auth-token",
61
- "x-access-token",
62
- "x-csrf-token",
63
- "x-amz-security-token"
64
- ];
65
- /** Query-string parameters whose values are never logged. */
66
- const DEFAULT_REDACT_QUERY_PARAMS = [
67
- "token",
68
- "access_token",
69
- "refresh_token",
70
- "code",
71
- "password",
72
- "secret",
73
- "api_key",
74
- "apikey",
75
- "key",
76
- "signature",
77
- "sig",
78
- "auth"
79
- ];
80
- function safeDecode(value) {
81
- try {
82
- return decodeURIComponent(value.replace(/\+/g, " "));
83
- } catch {
84
- return value;
85
- }
86
- }
87
- /** Replace the values of sensitive query parameters, leaving the rest verbatim. */
88
- function redactUrlQuery(url, redactParams) {
89
- const q = url.indexOf("?");
90
- if (q === -1) return url;
91
- const hashAt = url.indexOf("#", q);
92
- const query = url.slice(q + 1, hashAt === -1 ? void 0 : hashAt);
93
- const hash = hashAt === -1 ? "" : url.slice(hashAt);
94
- const cleaned = query.split("&").map((pair) => {
95
- const eq = pair.indexOf("=");
96
- const rawKey = eq === -1 ? pair : pair.slice(0, eq);
97
- const decoded = safeDecode(rawKey);
98
- const bracket = decoded.indexOf("[");
99
- const name = (bracket === -1 ? decoded : decoded.slice(0, bracket)).toLowerCase();
100
- return redactParams.has(name) && eq !== -1 ? `${rawKey}=[REDACTED]` : pair;
101
- }).join("&");
102
- return `${url.slice(0, q)}?${cleaned}${hash}`;
103
- }
104
- /** Lower-cased lookup set of the default names plus any extras. */
105
- function buildNameSet(defaults, extra) {
106
- return new Set([...defaults, ...extra ?? []].map((n) => n.toLowerCase()));
107
- }
108
- // src/utils/internal-log.ts
109
- /**
110
- * Internal logging helpers for use within the logixia library itself.
111
- *
112
- * These functions write directly to stderr/stdout without going through
113
- * LogixiaLogger — this avoids circular dependencies and ensures internal
114
- * diagnostics still surface even when the logger is misconfigured.
115
- *
116
- * Library code must NEVER call console.log/warn/error directly. Use these
117
- * helpers instead so that internal output can be silenced in tests by setting
118
- * the LOGIXIA_SILENT_INTERNAL=1 environment variable.
119
- */
120
- /**
121
- * Read the silence flag on each call rather than caching it at import time, so
122
- * setting LOGIXIA_SILENT_INTERNAL=1 AFTER the module is first imported (e.g. in
123
- * a test setup file) still takes effect — the documented test-silencing
124
- * behavior was previously unreliable because the value was frozen at load.
125
- */
126
- function isSilent() {
127
- var _process$env;
128
- if (typeof process !== "undefined" && ((_process$env = process.env) === null || _process$env === void 0 ? void 0 : _process$env.LOGIXIA_SILENT_INTERNAL) === "1") return true;
129
- const flag = globalThis["LOGIXIA_SILENT_INTERNAL"];
130
- return flag === "1" || flag === 1 || flag === true;
131
- }
132
- /**
133
- * Write a line to stderr, falling back to the matching console method where
134
- * `process` is unavailable (browsers, Cloudflare Workers, Deno without Node compat).
135
- */
136
- function writeLine(method, line) {
137
- var _process$stderr;
138
- if (typeof process !== "undefined" && typeof ((_process$stderr = process.stderr) === null || _process$stderr === void 0 ? void 0 : _process$stderr.write) === "function") process.stderr.write(`${line}\n`);
139
- else if (typeof console !== "undefined" && typeof console[method] === "function") console[method](line);
140
- }
141
- /**
142
- * Emit an internal debug/info message to stderr.
143
- * Use for field-enable/disable notifications that a developer might want to see
144
- * during development but should not appear in production log streams.
145
- */
146
- function internalLog(message) {
147
- if (!isSilent()) writeLine("log", `[logixia] ${message}`);
148
- }
149
- /**
150
- * Emit an internal warning to stderr.
151
- * Use when something is misconfigured but logixia can continue operating.
152
- */
153
- function internalWarn(message) {
154
- if (!isSilent()) writeLine("warn", `[logixia:warn] ${message}`);
155
- }
156
- /**
157
- * Emit an internal error to stderr.
158
- * Use when a transport write fails or a serious internal error occurs.
159
- */
160
- function internalError(message, error) {
161
- if (!isSilent()) {
162
- let errStr = "";
163
- if (error instanceof Error) errStr = ` — ${error.message}`;
164
- else if (error != null) errStr = ` — ${String(error)}`;
165
- writeLine("error", `[logixia:error] ${message}${errStr}`);
166
- }
167
- }
168
- export { DEFAULT_REDACT_QUERY_PARAMS as a, buildNameSet as c, DEFAULT_REDACT_HEADERS as i, redactUrlQuery as l, internalLog as n, SENSITIVE_KEY_NAMES as o, internalWarn as r, TRANSPORT_CONFIG_SECRET_NAMES as s, internalError as t };
169
-
170
- //# sourceMappingURL=internal-log-Bg4V1cPg.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"internal-log-Bg4V1cPg.mjs","names":[],"sources":["../src/utils/sensitive-names.ts","../src/utils/internal-log.ts"],"sourcesContent":["/**\n * The one list of sensitive names. Log redaction (redact.utils), the HTTP logger\n * middleware and transport secret handling (transports/secret-config) all read it,\n * so the lists cannot drift. No imports: safe from any module, including browser code.\n */\n\n/** Field names redacted by name, wherever they appear in logged data. */\nexport const SENSITIVE_KEY_NAMES: readonly string[] = [\n 'password',\n 'passwd',\n 'secret',\n 'token',\n 'apiKey',\n 'api_key',\n 'accessToken',\n 'access_token',\n 'refreshToken',\n 'refresh_token',\n 'authorization',\n 'credentials',\n 'privateKey',\n 'private_key',\n 'clientSecret',\n 'client_secret',\n 'cookie',\n 'set-cookie',\n 'x-api-key',\n 'session',\n 'proxy-authorization',\n 'x-auth-token',\n 'x-access-token',\n 'aws_secret_access_key',\n 'awsSecretAccessKey',\n 'secretAccessKey',\n];\n\n/**\n * Extra names that only mean \"secret\" inside transport configuration, where\n * short words like `key` or `signature` are credentials, not log fields.\n */\nexport const TRANSPORT_CONFIG_SECRET_NAMES: readonly string[] = [\n 'writeKey',\n 'apiSecret',\n 'connectionString',\n 'sessionToken',\n 'passphrase',\n 'signature',\n 'pwd',\n 'pfx',\n 'cert',\n 'key',\n 'auth',\n];\n\n/** Request headers whose values are never logged. */\nexport const DEFAULT_REDACT_HEADERS: readonly string[] = [\n 'authorization',\n 'cookie',\n 'set-cookie',\n 'x-api-key',\n 'proxy-authorization',\n 'x-auth-token',\n 'x-access-token',\n 'x-csrf-token',\n 'x-amz-security-token',\n];\n\n/** Query-string parameters whose values are never logged. */\nexport const DEFAULT_REDACT_QUERY_PARAMS: readonly string[] = [\n 'token',\n 'access_token',\n 'refresh_token',\n 'code',\n 'password',\n 'secret',\n 'api_key',\n 'apikey',\n 'key',\n 'signature',\n 'sig',\n 'auth',\n];\n\nfunction safeDecode(value: string): string {\n try {\n return decodeURIComponent(value.replace(/\\+/g, ' '));\n } catch {\n return value;\n }\n}\n\n/** Replace the values of sensitive query parameters, leaving the rest verbatim. */\nexport function redactUrlQuery(url: string, redactParams: ReadonlySet<string>): string {\n const q = url.indexOf('?');\n if (q === -1) return url;\n const hashAt = url.indexOf('#', q);\n const query = url.slice(q + 1, hashAt === -1 ? undefined : hashAt);\n const hash = hashAt === -1 ? '' : url.slice(hashAt);\n const cleaned = query\n .split('&')\n .map((pair) => {\n const eq = pair.indexOf('=');\n const rawKey = eq === -1 ? pair : pair.slice(0, eq);\n const decoded = safeDecode(rawKey);\n const bracket = decoded.indexOf('[');\n const name = (bracket === -1 ? decoded : decoded.slice(0, bracket)).toLowerCase();\n return redactParams.has(name) && eq !== -1 ? `${rawKey}=[REDACTED]` : pair;\n })\n .join('&');\n return `${url.slice(0, q)}?${cleaned}${hash}`;\n}\n\n/** Lower-cased lookup set of the default names plus any extras. */\nexport function buildNameSet(\n defaults: readonly string[],\n extra: readonly string[] | undefined\n): Set<string> {\n return new Set([...defaults, ...(extra ?? [])].map((n) => n.toLowerCase()));\n}\n","/**\n * Internal logging helpers for use within the logixia library itself.\n *\n * These functions write directly to stderr/stdout without going through\n * LogixiaLogger — this avoids circular dependencies and ensures internal\n * diagnostics still surface even when the logger is misconfigured.\n *\n * Library code must NEVER call console.log/warn/error directly. Use these\n * helpers instead so that internal output can be silenced in tests by setting\n * the LOGIXIA_SILENT_INTERNAL=1 environment variable.\n */\n\n/**\n * Read the silence flag on each call rather than caching it at import time, so\n * setting LOGIXIA_SILENT_INTERNAL=1 AFTER the module is first imported (e.g. in\n * a test setup file) still takes effect — the documented test-silencing\n * behavior was previously unreliable because the value was frozen at load.\n */\nfunction isSilent(): boolean {\n if (typeof process !== 'undefined' && process.env?.LOGIXIA_SILENT_INTERNAL === '1') return true;\n const flag = (globalThis as Record<string, unknown>)['LOGIXIA_SILENT_INTERNAL'];\n return flag === '1' || flag === 1 || flag === true;\n}\n\ntype ConsoleMethod = 'log' | 'warn' | 'error';\n\n/**\n * Write a line to stderr, falling back to the matching console method where\n * `process` is unavailable (browsers, Cloudflare Workers, Deno without Node compat).\n */\nfunction writeLine(method: ConsoleMethod, line: string): void {\n if (typeof process !== 'undefined' && typeof process.stderr?.write === 'function') {\n process.stderr.write(`${line}\\n`);\n } else if (typeof console !== 'undefined' && typeof console[method] === 'function') {\n console[method](line);\n }\n}\n\n/**\n * Emit an internal debug/info message to stderr.\n * Use for field-enable/disable notifications that a developer might want to see\n * during development but should not appear in production log streams.\n */\nexport function internalLog(message: string): void {\n if (!isSilent()) {\n writeLine('log', `[logixia] ${message}`);\n }\n}\n\n/**\n * Emit an internal warning to stderr.\n * Use when something is misconfigured but logixia can continue operating.\n */\nexport function internalWarn(message: string): void {\n if (!isSilent()) {\n writeLine('warn', `[logixia:warn] ${message}`);\n }\n}\n\n/**\n * Emit an internal error to stderr.\n * Use when a transport write fails or a serious internal error occurs.\n */\nexport function internalError(message: string, error?: unknown): void {\n if (!isSilent()) {\n let errStr = '';\n if (error instanceof Error) {\n errStr = ` — ${error.message}`;\n } else if (error != null) {\n errStr = ` — ${String(error)}`;\n }\n writeLine('error', `[logixia:error] ${message}${errStr}`);\n }\n}\n"],"mappings":"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"}
@@ -1,223 +0,0 @@
1
- // src/utils/sensitive-names.ts
2
- /**
3
- * The one list of sensitive names. Log redaction (redact.utils), the HTTP logger
4
- * middleware and transport secret handling (transports/secret-config) all read it,
5
- * so the lists cannot drift. No imports: safe from any module, including browser code.
6
- */
7
- /** Field names redacted by name, wherever they appear in logged data. */
8
- const SENSITIVE_KEY_NAMES = [
9
- "password",
10
- "passwd",
11
- "secret",
12
- "token",
13
- "apiKey",
14
- "api_key",
15
- "accessToken",
16
- "access_token",
17
- "refreshToken",
18
- "refresh_token",
19
- "authorization",
20
- "credentials",
21
- "privateKey",
22
- "private_key",
23
- "clientSecret",
24
- "client_secret",
25
- "cookie",
26
- "set-cookie",
27
- "x-api-key",
28
- "session",
29
- "proxy-authorization",
30
- "x-auth-token",
31
- "x-access-token",
32
- "aws_secret_access_key",
33
- "awsSecretAccessKey",
34
- "secretAccessKey"
35
- ];
36
- /**
37
- * Extra names that only mean "secret" inside transport configuration, where
38
- * short words like `key` or `signature` are credentials, not log fields.
39
- */
40
- const TRANSPORT_CONFIG_SECRET_NAMES = [
41
- "writeKey",
42
- "apiSecret",
43
- "connectionString",
44
- "sessionToken",
45
- "passphrase",
46
- "signature",
47
- "pwd",
48
- "pfx",
49
- "cert",
50
- "key",
51
- "auth"
52
- ];
53
- /** Request headers whose values are never logged. */
54
- const DEFAULT_REDACT_HEADERS = [
55
- "authorization",
56
- "cookie",
57
- "set-cookie",
58
- "x-api-key",
59
- "proxy-authorization",
60
- "x-auth-token",
61
- "x-access-token",
62
- "x-csrf-token",
63
- "x-amz-security-token"
64
- ];
65
- /** Query-string parameters whose values are never logged. */
66
- const DEFAULT_REDACT_QUERY_PARAMS = [
67
- "token",
68
- "access_token",
69
- "refresh_token",
70
- "code",
71
- "password",
72
- "secret",
73
- "api_key",
74
- "apikey",
75
- "key",
76
- "signature",
77
- "sig",
78
- "auth"
79
- ];
80
- function safeDecode(value) {
81
- try {
82
- return decodeURIComponent(value.replace(/\+/g, " "));
83
- } catch {
84
- return value;
85
- }
86
- }
87
- /** Replace the values of sensitive query parameters, leaving the rest verbatim. */
88
- function redactUrlQuery(url, redactParams) {
89
- const q = url.indexOf("?");
90
- if (q === -1) return url;
91
- const hashAt = url.indexOf("#", q);
92
- const query = url.slice(q + 1, hashAt === -1 ? void 0 : hashAt);
93
- const hash = hashAt === -1 ? "" : url.slice(hashAt);
94
- const cleaned = query.split("&").map((pair) => {
95
- const eq = pair.indexOf("=");
96
- const rawKey = eq === -1 ? pair : pair.slice(0, eq);
97
- const decoded = safeDecode(rawKey);
98
- const bracket = decoded.indexOf("[");
99
- const name = (bracket === -1 ? decoded : decoded.slice(0, bracket)).toLowerCase();
100
- return redactParams.has(name) && eq !== -1 ? `${rawKey}=[REDACTED]` : pair;
101
- }).join("&");
102
- return `${url.slice(0, q)}?${cleaned}${hash}`;
103
- }
104
- /** Lower-cased lookup set of the default names plus any extras. */
105
- function buildNameSet(defaults, extra) {
106
- return new Set([...defaults, ...extra ?? []].map((n) => n.toLowerCase()));
107
- }
108
- // src/utils/internal-log.ts
109
- /**
110
- * Internal logging helpers for use within the logixia library itself.
111
- *
112
- * These functions write directly to stderr/stdout without going through
113
- * LogixiaLogger — this avoids circular dependencies and ensures internal
114
- * diagnostics still surface even when the logger is misconfigured.
115
- *
116
- * Library code must NEVER call console.log/warn/error directly. Use these
117
- * helpers instead so that internal output can be silenced in tests by setting
118
- * the LOGIXIA_SILENT_INTERNAL=1 environment variable.
119
- */
120
- /**
121
- * Read the silence flag on each call rather than caching it at import time, so
122
- * setting LOGIXIA_SILENT_INTERNAL=1 AFTER the module is first imported (e.g. in
123
- * a test setup file) still takes effect — the documented test-silencing
124
- * behavior was previously unreliable because the value was frozen at load.
125
- */
126
- function isSilent() {
127
- var _process$env;
128
- if (typeof process !== "undefined" && ((_process$env = process.env) === null || _process$env === void 0 ? void 0 : _process$env.LOGIXIA_SILENT_INTERNAL) === "1") return true;
129
- const flag = globalThis["LOGIXIA_SILENT_INTERNAL"];
130
- return flag === "1" || flag === 1 || flag === true;
131
- }
132
- /**
133
- * Write a line to stderr, falling back to the matching console method where
134
- * `process` is unavailable (browsers, Cloudflare Workers, Deno without Node compat).
135
- */
136
- function writeLine(method, line) {
137
- var _process$stderr;
138
- if (typeof process !== "undefined" && typeof ((_process$stderr = process.stderr) === null || _process$stderr === void 0 ? void 0 : _process$stderr.write) === "function") process.stderr.write(`${line}\n`);
139
- else if (typeof console !== "undefined" && typeof console[method] === "function") console[method](line);
140
- }
141
- /**
142
- * Emit an internal debug/info message to stderr.
143
- * Use for field-enable/disable notifications that a developer might want to see
144
- * during development but should not appear in production log streams.
145
- */
146
- function internalLog(message) {
147
- if (!isSilent()) writeLine("log", `[logixia] ${message}`);
148
- }
149
- /**
150
- * Emit an internal warning to stderr.
151
- * Use when something is misconfigured but logixia can continue operating.
152
- */
153
- function internalWarn(message) {
154
- if (!isSilent()) writeLine("warn", `[logixia:warn] ${message}`);
155
- }
156
- /**
157
- * Emit an internal error to stderr.
158
- * Use when a transport write fails or a serious internal error occurs.
159
- */
160
- function internalError(message, error) {
161
- if (!isSilent()) {
162
- let errStr = "";
163
- if (error instanceof Error) errStr = ` — ${error.message}`;
164
- else if (error != null) errStr = ` — ${String(error)}`;
165
- writeLine("error", `[logixia:error] ${message}${errStr}`);
166
- }
167
- }
168
- Object.defineProperty(exports, "DEFAULT_REDACT_HEADERS", {
169
- enumerable: true,
170
- get: function() {
171
- return DEFAULT_REDACT_HEADERS;
172
- }
173
- });
174
- Object.defineProperty(exports, "DEFAULT_REDACT_QUERY_PARAMS", {
175
- enumerable: true,
176
- get: function() {
177
- return DEFAULT_REDACT_QUERY_PARAMS;
178
- }
179
- });
180
- Object.defineProperty(exports, "SENSITIVE_KEY_NAMES", {
181
- enumerable: true,
182
- get: function() {
183
- return SENSITIVE_KEY_NAMES;
184
- }
185
- });
186
- Object.defineProperty(exports, "TRANSPORT_CONFIG_SECRET_NAMES", {
187
- enumerable: true,
188
- get: function() {
189
- return TRANSPORT_CONFIG_SECRET_NAMES;
190
- }
191
- });
192
- Object.defineProperty(exports, "buildNameSet", {
193
- enumerable: true,
194
- get: function() {
195
- return buildNameSet;
196
- }
197
- });
198
- Object.defineProperty(exports, "internalError", {
199
- enumerable: true,
200
- get: function() {
201
- return internalError;
202
- }
203
- });
204
- Object.defineProperty(exports, "internalLog", {
205
- enumerable: true,
206
- get: function() {
207
- return internalLog;
208
- }
209
- });
210
- Object.defineProperty(exports, "internalWarn", {
211
- enumerable: true,
212
- get: function() {
213
- return internalWarn;
214
- }
215
- });
216
- Object.defineProperty(exports, "redactUrlQuery", {
217
- enumerable: true,
218
- get: function() {
219
- return redactUrlQuery;
220
- }
221
- });
222
-
223
- //# sourceMappingURL=internal-log-By4Govmu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"internal-log-By4Govmu.js","names":[],"sources":["../src/utils/sensitive-names.ts","../src/utils/internal-log.ts"],"sourcesContent":["/**\n * The one list of sensitive names. Log redaction (redact.utils), the HTTP logger\n * middleware and transport secret handling (transports/secret-config) all read it,\n * so the lists cannot drift. No imports: safe from any module, including browser code.\n */\n\n/** Field names redacted by name, wherever they appear in logged data. */\nexport const SENSITIVE_KEY_NAMES: readonly string[] = [\n 'password',\n 'passwd',\n 'secret',\n 'token',\n 'apiKey',\n 'api_key',\n 'accessToken',\n 'access_token',\n 'refreshToken',\n 'refresh_token',\n 'authorization',\n 'credentials',\n 'privateKey',\n 'private_key',\n 'clientSecret',\n 'client_secret',\n 'cookie',\n 'set-cookie',\n 'x-api-key',\n 'session',\n 'proxy-authorization',\n 'x-auth-token',\n 'x-access-token',\n 'aws_secret_access_key',\n 'awsSecretAccessKey',\n 'secretAccessKey',\n];\n\n/**\n * Extra names that only mean \"secret\" inside transport configuration, where\n * short words like `key` or `signature` are credentials, not log fields.\n */\nexport const TRANSPORT_CONFIG_SECRET_NAMES: readonly string[] = [\n 'writeKey',\n 'apiSecret',\n 'connectionString',\n 'sessionToken',\n 'passphrase',\n 'signature',\n 'pwd',\n 'pfx',\n 'cert',\n 'key',\n 'auth',\n];\n\n/** Request headers whose values are never logged. */\nexport const DEFAULT_REDACT_HEADERS: readonly string[] = [\n 'authorization',\n 'cookie',\n 'set-cookie',\n 'x-api-key',\n 'proxy-authorization',\n 'x-auth-token',\n 'x-access-token',\n 'x-csrf-token',\n 'x-amz-security-token',\n];\n\n/** Query-string parameters whose values are never logged. */\nexport const DEFAULT_REDACT_QUERY_PARAMS: readonly string[] = [\n 'token',\n 'access_token',\n 'refresh_token',\n 'code',\n 'password',\n 'secret',\n 'api_key',\n 'apikey',\n 'key',\n 'signature',\n 'sig',\n 'auth',\n];\n\nfunction safeDecode(value: string): string {\n try {\n return decodeURIComponent(value.replace(/\\+/g, ' '));\n } catch {\n return value;\n }\n}\n\n/** Replace the values of sensitive query parameters, leaving the rest verbatim. */\nexport function redactUrlQuery(url: string, redactParams: ReadonlySet<string>): string {\n const q = url.indexOf('?');\n if (q === -1) return url;\n const hashAt = url.indexOf('#', q);\n const query = url.slice(q + 1, hashAt === -1 ? undefined : hashAt);\n const hash = hashAt === -1 ? '' : url.slice(hashAt);\n const cleaned = query\n .split('&')\n .map((pair) => {\n const eq = pair.indexOf('=');\n const rawKey = eq === -1 ? pair : pair.slice(0, eq);\n const decoded = safeDecode(rawKey);\n const bracket = decoded.indexOf('[');\n const name = (bracket === -1 ? decoded : decoded.slice(0, bracket)).toLowerCase();\n return redactParams.has(name) && eq !== -1 ? `${rawKey}=[REDACTED]` : pair;\n })\n .join('&');\n return `${url.slice(0, q)}?${cleaned}${hash}`;\n}\n\n/** Lower-cased lookup set of the default names plus any extras. */\nexport function buildNameSet(\n defaults: readonly string[],\n extra: readonly string[] | undefined\n): Set<string> {\n return new Set([...defaults, ...(extra ?? [])].map((n) => n.toLowerCase()));\n}\n","/**\n * Internal logging helpers for use within the logixia library itself.\n *\n * These functions write directly to stderr/stdout without going through\n * LogixiaLogger — this avoids circular dependencies and ensures internal\n * diagnostics still surface even when the logger is misconfigured.\n *\n * Library code must NEVER call console.log/warn/error directly. Use these\n * helpers instead so that internal output can be silenced in tests by setting\n * the LOGIXIA_SILENT_INTERNAL=1 environment variable.\n */\n\n/**\n * Read the silence flag on each call rather than caching it at import time, so\n * setting LOGIXIA_SILENT_INTERNAL=1 AFTER the module is first imported (e.g. in\n * a test setup file) still takes effect — the documented test-silencing\n * behavior was previously unreliable because the value was frozen at load.\n */\nfunction isSilent(): boolean {\n if (typeof process !== 'undefined' && process.env?.LOGIXIA_SILENT_INTERNAL === '1') return true;\n const flag = (globalThis as Record<string, unknown>)['LOGIXIA_SILENT_INTERNAL'];\n return flag === '1' || flag === 1 || flag === true;\n}\n\ntype ConsoleMethod = 'log' | 'warn' | 'error';\n\n/**\n * Write a line to stderr, falling back to the matching console method where\n * `process` is unavailable (browsers, Cloudflare Workers, Deno without Node compat).\n */\nfunction writeLine(method: ConsoleMethod, line: string): void {\n if (typeof process !== 'undefined' && typeof process.stderr?.write === 'function') {\n process.stderr.write(`${line}\\n`);\n } else if (typeof console !== 'undefined' && typeof console[method] === 'function') {\n console[method](line);\n }\n}\n\n/**\n * Emit an internal debug/info message to stderr.\n * Use for field-enable/disable notifications that a developer might want to see\n * during development but should not appear in production log streams.\n */\nexport function internalLog(message: string): void {\n if (!isSilent()) {\n writeLine('log', `[logixia] ${message}`);\n }\n}\n\n/**\n * Emit an internal warning to stderr.\n * Use when something is misconfigured but logixia can continue operating.\n */\nexport function internalWarn(message: string): void {\n if (!isSilent()) {\n writeLine('warn', `[logixia:warn] ${message}`);\n }\n}\n\n/**\n * Emit an internal error to stderr.\n * Use when a transport write fails or a serious internal error occurs.\n */\nexport function internalError(message: string, error?: unknown): void {\n if (!isSilent()) {\n let errStr = '';\n if (error instanceof Error) {\n errStr = ` — ${error.message}`;\n } else if (error != null) {\n errStr = ` — ${String(error)}`;\n }\n writeLine('error', `[logixia:error] ${message}${errStr}`);\n }\n}\n"],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- // src/utils/own-property.ts
2
- /**
3
- * True for the one key that must never be assigned with `target[key] = value`.
4
- *
5
- * Assigning `constructor` or `prototype` on a fresh plain object only creates an
6
- * own property, which is harmless. Only `__proto__` invokes the prototype setter.
7
- */
8
- function isProtoKey(key) {
9
- return key === "__proto__";
10
- }
11
- /**
12
- * Copy `value` onto `target[key]` as an own, enumerable data property.
13
- *
14
- * Normal keys use a plain assignment, which is the fast path. `__proto__` goes
15
- * through `Object.defineProperty` so that a key taken from logged or parsed data
16
- * becomes an own property instead of replacing the object's prototype.
17
- */
18
- function assignOwn(target, key, value) {
19
- if (key === "__proto__") Object.defineProperty(target, key, {
20
- value,
21
- enumerable: true,
22
- writable: true,
23
- configurable: true
24
- });
25
- else target[key] = value;
26
- }
27
- Object.defineProperty(exports, "assignOwn", {
28
- enumerable: true,
29
- get: function() {
30
- return assignOwn;
31
- }
32
- });
33
- Object.defineProperty(exports, "isProtoKey", {
34
- enumerable: true,
35
- get: function() {
36
- return isProtoKey;
37
- }
38
- });
39
-
40
- //# sourceMappingURL=own-property-BWkibepN.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"own-property-BWkibepN.js","names":[],"sources":["../src/utils/own-property.ts"],"sourcesContent":["/**\n * True for the one key that must never be assigned with `target[key] = value`.\n *\n * Assigning `constructor` or `prototype` on a fresh plain object only creates an\n * own property, which is harmless. Only `__proto__` invokes the prototype setter.\n */\nexport function isProtoKey(key: string): boolean {\n return key === '__proto__';\n}\n\n/**\n * Copy `value` onto `target[key]` as an own, enumerable data property.\n *\n * Normal keys use a plain assignment, which is the fast path. `__proto__` goes\n * through `Object.defineProperty` so that a key taken from logged or parsed data\n * becomes an own property instead of replacing the object's prototype.\n */\nexport function assignOwn(target: object, key: string, value: unknown): void {\n if (key === '__proto__') {\n Object.defineProperty(target, key, {\n value,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n } else {\n (target as Record<string, unknown>)[key] = value;\n }\n}\n"],"mappings":";;;;;;;AAMA,SAAgB,WAAW,KAAsB;CAC/C,OAAO,QAAQ;AACjB;;;;;;;;AASA,SAAgB,UAAU,QAAgB,KAAa,OAAsB;CAC3E,IAAI,QAAQ,aACV,OAAO,eAAe,QAAQ,KAAK;EACjC;EACA,YAAY;EACZ,UAAU;EACV,cAAc;CAChB,CAAC;MAED,OAAoC,OAAO;AAE/C"}
@@ -1,29 +0,0 @@
1
- // src/utils/own-property.ts
2
- /**
3
- * True for the one key that must never be assigned with `target[key] = value`.
4
- *
5
- * Assigning `constructor` or `prototype` on a fresh plain object only creates an
6
- * own property, which is harmless. Only `__proto__` invokes the prototype setter.
7
- */
8
- function isProtoKey(key) {
9
- return key === "__proto__";
10
- }
11
- /**
12
- * Copy `value` onto `target[key]` as an own, enumerable data property.
13
- *
14
- * Normal keys use a plain assignment, which is the fast path. `__proto__` goes
15
- * through `Object.defineProperty` so that a key taken from logged or parsed data
16
- * becomes an own property instead of replacing the object's prototype.
17
- */
18
- function assignOwn(target, key, value) {
19
- if (key === "__proto__") Object.defineProperty(target, key, {
20
- value,
21
- enumerable: true,
22
- writable: true,
23
- configurable: true
24
- });
25
- else target[key] = value;
26
- }
27
- export { isProtoKey as n, assignOwn as t };
28
-
29
- //# sourceMappingURL=own-property-CjFw9qwZ.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"own-property-CjFw9qwZ.mjs","names":[],"sources":["../src/utils/own-property.ts"],"sourcesContent":["/**\n * True for the one key that must never be assigned with `target[key] = value`.\n *\n * Assigning `constructor` or `prototype` on a fresh plain object only creates an\n * own property, which is harmless. Only `__proto__` invokes the prototype setter.\n */\nexport function isProtoKey(key: string): boolean {\n return key === '__proto__';\n}\n\n/**\n * Copy `value` onto `target[key]` as an own, enumerable data property.\n *\n * Normal keys use a plain assignment, which is the fast path. `__proto__` goes\n * through `Object.defineProperty` so that a key taken from logged or parsed data\n * becomes an own property instead of replacing the object's prototype.\n */\nexport function assignOwn(target: object, key: string, value: unknown): void {\n if (key === '__proto__') {\n Object.defineProperty(target, key, {\n value,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n } else {\n (target as Record<string, unknown>)[key] = value;\n }\n}\n"],"mappings":";;;;;;;AAMA,SAAgB,WAAW,KAAsB;CAC/C,OAAO,QAAQ;AACjB;;;;;;;;AASA,SAAgB,UAAU,QAAgB,KAAa,OAAsB;CAC3E,IAAI,QAAQ,aACV,OAAO,eAAe,QAAQ,KAAK;EACjC;EACA,YAAY;EACZ,UAAU;EACV,cAAc;CAChB,CAAC;MAED,OAAoC,OAAO;AAE/C"}