pi-kiosk-shared 2.2.30 → 2.2.32
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/api.d.ts.map +1 -1
- package/dist/api.js +23 -0
- package/dist/api.js.map +1 -1
- package/dist/clientLogRedaction.d.ts +1 -0
- package/dist/clientLogRedaction.d.ts.map +1 -1
- package/dist/clientLogRedaction.js +4 -35
- package/dist/clientLogRedaction.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/logging/correlationContext.d.ts +12 -0
- package/dist/logging/correlationContext.d.ts.map +1 -0
- package/dist/logging/correlationContext.js +19 -0
- package/dist/logging/correlationContext.js.map +1 -0
- package/dist/logging/createClientLogger.d.ts +20 -0
- package/dist/logging/createClientLogger.d.ts.map +1 -0
- package/dist/logging/createClientLogger.js +123 -0
- package/dist/logging/createClientLogger.js.map +1 -0
- package/dist/logging/createScopedLogger.d.ts +15 -0
- package/dist/logging/createScopedLogger.d.ts.map +1 -0
- package/dist/logging/createScopedLogger.js +36 -0
- package/dist/logging/createScopedLogger.js.map +1 -0
- package/dist/logging/index.d.ts +17 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +13 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/isUnexpectedClientError.d.ts +10 -0
- package/dist/logging/isUnexpectedClientError.d.ts.map +1 -0
- package/dist/logging/isUnexpectedClientError.js +99 -0
- package/dist/logging/isUnexpectedClientError.js.map +1 -0
- package/dist/logging/logRepeatCap.d.ts +15 -0
- package/dist/logging/logRepeatCap.d.ts.map +1 -0
- package/dist/logging/logRepeatCap.js +24 -0
- package/dist/logging/logRepeatCap.js.map +1 -0
- package/dist/logging/logSchema.d.ts +22 -0
- package/dist/logging/logSchema.d.ts.map +1 -0
- package/dist/logging/logSchema.js +15 -0
- package/dist/logging/logSchema.js.map +1 -0
- package/dist/logging/readRequestId.d.ts +8 -0
- package/dist/logging/readRequestId.d.ts.map +1 -0
- package/dist/logging/readRequestId.js +19 -0
- package/dist/logging/readRequestId.js.map +1 -0
- package/dist/logging/reportClientError.d.ts +17 -0
- package/dist/logging/reportClientError.d.ts.map +1 -0
- package/dist/logging/reportClientError.js +20 -0
- package/dist/logging/reportClientError.js.map +1 -0
- package/dist/logging/sanitizeMeta.d.ts +11 -0
- package/dist/logging/sanitizeMeta.d.ts.map +1 -0
- package/dist/logging/sanitizeMeta.js +27 -0
- package/dist/logging/sanitizeMeta.js.map +1 -0
- package/dist/sensitiveMetaKeys.d.ts +17 -0
- package/dist/sensitiveMetaKeys.d.ts.map +1 -0
- package/dist/sensitiveMetaKeys.js +52 -0
- package/dist/sensitiveMetaKeys.js.map +1 -0
- package/dist/sentry/initSentry.d.ts +7 -0
- package/dist/sentry/initSentry.d.ts.map +1 -1
- package/dist/sentry/initSentry.js +21 -0
- package/dist/sentry/initSentry.js.map +1 -1
- package/dist/ui/tvShim.d.ts +1 -1
- package/dist/ui/tvShim.js +1 -1
- package/package.json +44 -1
- package/src/tokens/brand-bridge.css +1 -1
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B;;;CAGhC,CAAC;AAEX;;;;;;GAMG;AAIH,eAAO,MAAM,aAAa;;;IAIxB,0FAA0F;;IAE1F,8FAA8F;;;;;;;;;;;;;;;IAmB9F,6EAA6E;;;;IAI7E,2EAA2E;;IAE3E,wEAAwE;;IAExE,4FAA4F;;;;;;;;;;;;;;;;;IAmB5F,yCAAyC;;IAEzC,gDAAgD;;;;;;;;;CAWxC,CAAC;AAIX;;;;;;;GAOG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAS;gBAG5B,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM;IAWvB,OAAO,CAAC,wBAAwB;YAclB,OAAO;IA2Ff,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI5E;;OAEG;IACG,cAAc,CAAC,CAAC,EACpB,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAqC3D,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAOrD,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAOpD,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAG9C;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,EAChB,cAAc,MAAM,EACpB,aAAa,MAAM,EACnB,eAAe,MAAM,KACpB,SAKF,CAAC"}
|
package/dist/api.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { readRequestId, setClientCorrelationId, } from './logging/index.js';
|
|
2
|
+
import { setSentryCorrelationId } from './sentry/initSentry.js';
|
|
1
3
|
/**
|
|
2
4
|
* Shared API Utilities
|
|
3
5
|
*
|
|
@@ -156,17 +158,28 @@ export class APIClient {
|
|
|
156
158
|
const retryAfter = response.headers.get('Retry-After');
|
|
157
159
|
let code;
|
|
158
160
|
let message = response.statusText;
|
|
161
|
+
let requestId = readRequestId(response);
|
|
159
162
|
try {
|
|
160
163
|
const parsed = (await response.json());
|
|
161
164
|
message = parsed?.error ?? parsed?.message ?? message;
|
|
162
165
|
code = parsed?.code;
|
|
166
|
+
if (requestId === undefined && typeof parsed?.requestId === 'string') {
|
|
167
|
+
requestId = parsed.requestId;
|
|
168
|
+
}
|
|
163
169
|
}
|
|
164
170
|
catch {
|
|
165
171
|
// keep statusText
|
|
166
172
|
}
|
|
173
|
+
if (requestId !== undefined) {
|
|
174
|
+
setClientCorrelationId(requestId);
|
|
175
|
+
setSentryCorrelationId(requestId);
|
|
176
|
+
}
|
|
167
177
|
const err = new Error(`HTTP ${response.status}: ${message}`);
|
|
168
178
|
err.statusCode = response.status;
|
|
169
179
|
err.code = code;
|
|
180
|
+
if (requestId !== undefined) {
|
|
181
|
+
err.requestId = requestId;
|
|
182
|
+
}
|
|
170
183
|
if (retryAfter) {
|
|
171
184
|
const sec = Number(retryAfter);
|
|
172
185
|
if (Number.isFinite(sec) && sec > 0) {
|
|
@@ -175,6 +188,11 @@ export class APIClient {
|
|
|
175
188
|
}
|
|
176
189
|
throw err;
|
|
177
190
|
}
|
|
191
|
+
const okId = readRequestId(response);
|
|
192
|
+
if (okId !== undefined) {
|
|
193
|
+
setClientCorrelationId(okId);
|
|
194
|
+
setSentryCorrelationId(okId);
|
|
195
|
+
}
|
|
178
196
|
return response.json();
|
|
179
197
|
}
|
|
180
198
|
async get(endpoint, headers) {
|
|
@@ -203,6 +221,11 @@ export class APIClient {
|
|
|
203
221
|
}
|
|
204
222
|
const response = await fetch(url, { method: 'GET', headers });
|
|
205
223
|
const etag = response.headers.get('etag');
|
|
224
|
+
const conditionalId = readRequestId(response);
|
|
225
|
+
if (conditionalId !== undefined) {
|
|
226
|
+
setClientCorrelationId(conditionalId);
|
|
227
|
+
setSentryCorrelationId(conditionalId);
|
|
228
|
+
}
|
|
206
229
|
if (response.status === 304) {
|
|
207
230
|
return { status: 304, etag };
|
|
208
231
|
}
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Client log metadata redaction (enterprise hardening v1.2.3).
|
|
3
3
|
* Used by admin, kiosk, and customer structured loggers before console transport.
|
|
4
4
|
*/
|
|
5
|
+
export { CLIENT_ONLY_SENSITIVE_META_KEYS, SHARED_SENSITIVE_META_KEYS, } from './sensitiveMetaKeys.js';
|
|
5
6
|
/** Redact tokens, emails, and card-like digit runs in free-text log messages. */
|
|
6
7
|
export declare function redactStringSecrets(value: string): string;
|
|
7
8
|
/** Redact structured metadata before console transport or JSON log lines. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientLogRedaction.d.ts","sourceRoot":"","sources":["../src/clientLogRedaction.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"clientLogRedaction.d.ts","sourceRoot":"","sources":["../src/clientLogRedaction.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAahC,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUzD;AAoCD,6EAA6E;AAC7E,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAKrC"}
|
|
@@ -2,42 +2,11 @@
|
|
|
2
2
|
* Client log metadata redaction (enterprise hardening v1.2.3).
|
|
3
3
|
* Used by admin, kiosk, and customer structured loggers before console transport.
|
|
4
4
|
*/
|
|
5
|
+
import { CLIENT_ONLY_SENSITIVE_META_KEYS, SHARED_SENSITIVE_META_KEYS, } from './sensitiveMetaKeys.js';
|
|
6
|
+
export { CLIENT_ONLY_SENSITIVE_META_KEYS, SHARED_SENSITIVE_META_KEYS, } from './sensitiveMetaKeys.js';
|
|
5
7
|
const SENSITIVE_KEYS = new Set([
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
'token',
|
|
9
|
-
'authorization',
|
|
10
|
-
'authtoken',
|
|
11
|
-
'authToken',
|
|
12
|
-
'sessiontoken',
|
|
13
|
-
'sessionToken',
|
|
14
|
-
'refreshtoken',
|
|
15
|
-
'refreshToken',
|
|
16
|
-
'accesstoken',
|
|
17
|
-
'accessToken',
|
|
18
|
-
'password',
|
|
19
|
-
'secret',
|
|
20
|
-
'credentialsecret',
|
|
21
|
-
'credentialsSecret',
|
|
22
|
-
'accountslug',
|
|
23
|
-
'accountSlug',
|
|
24
|
-
'errortext',
|
|
25
|
-
'errorText',
|
|
26
|
-
'responsebody',
|
|
27
|
-
'responseBody',
|
|
28
|
-
'rawbody',
|
|
29
|
-
'rawBody',
|
|
30
|
-
'customeremail',
|
|
31
|
-
'customerEmail',
|
|
32
|
-
'email',
|
|
33
|
-
'phone',
|
|
34
|
-
'phonenumber',
|
|
35
|
-
'phoneNumber',
|
|
36
|
-
'code',
|
|
37
|
-
'otp',
|
|
38
|
-
'cardnumber',
|
|
39
|
-
'cardNumber',
|
|
40
|
-
'pan',
|
|
8
|
+
...SHARED_SENSITIVE_META_KEYS,
|
|
9
|
+
...CLIENT_ONLY_SENSITIVE_META_KEYS,
|
|
41
10
|
]);
|
|
42
11
|
const MAX_DEPTH = 4;
|
|
43
12
|
function isSensitiveKey(key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientLogRedaction.js","sourceRoot":"","sources":["../src/clientLogRedaction.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,
|
|
1
|
+
{"version":3,"file":"clientLogRedaction.js","sourceRoot":"","sources":["../src/clientLogRedaction.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAEhC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAS;IACrC,GAAG,0BAA0B;IAC7B,GAAG,+BAA+B;CACnC,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,CAAC,CAAC;AAEpB,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,kCAAkC,EAAE,cAAc,CAAC,CAAC;IACtE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,qDAAqD,EAAE,cAAc,CAAC,CAAC;IACzF,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IACtD,GAAG,GAAG,GAAG,CAAC,OAAO,CACf,iDAAiD,EACjD,kBAAkB,CACnB,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,KAAa;IAChD,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;QACtB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC;SAC5C,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,mBAAmB,CACjC,IAAyC;IAEzC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,WAAW,CAAC,IAAI,EAAE,CAAC,CAA4B,CAAC;AACzD,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -49,6 +49,7 @@ export * from './complianceDevCaps.js';
|
|
|
49
49
|
export * from './customerFailureRecovery.js';
|
|
50
50
|
export * from './labels/localizedLabel.js';
|
|
51
51
|
export * from './clientLogRedaction.js';
|
|
52
|
+
export { SHARED_SENSITIVE_META_KEYS, type SharedSensitiveMetaKey, } from './sensitiveMetaKeys.js';
|
|
52
53
|
export * from './catalogImageUrl.js';
|
|
53
54
|
export * from './catalogImageTelemetry.js';
|
|
54
55
|
export * from './buildKioskLineKey.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -49,6 +49,7 @@ export * from './complianceDevCaps.js';
|
|
|
49
49
|
export * from './customerFailureRecovery.js';
|
|
50
50
|
export * from './labels/localizedLabel.js';
|
|
51
51
|
export * from './clientLogRedaction.js';
|
|
52
|
+
export { SHARED_SENSITIVE_META_KEYS, } from './sensitiveMetaKeys.js';
|
|
52
53
|
export * from './catalogImageUrl.js';
|
|
53
54
|
export * from './catalogImageTelemetry.js';
|
|
54
55
|
export * from './buildKioskLineKey.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module-level last-seen correlation id convenience for Sentry tags / diagnostics.
|
|
3
|
+
*
|
|
4
|
+
* Limitation: this is process/tab-global last-write-wins — concurrent in-flight
|
|
5
|
+
* requests can overwrite each other. Prefer passing `correlationId` explicitly
|
|
6
|
+
* in logger meta on error paths; do not treat this alone as request Consistency.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getClientCorrelationId(): string | undefined;
|
|
9
|
+
export declare function setClientCorrelationId(id: string | undefined): void;
|
|
10
|
+
/** Test-only reset. */
|
|
11
|
+
export declare function resetClientCorrelationIdForTests(): void;
|
|
12
|
+
//# sourceMappingURL=correlationContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correlationContext.d.ts","sourceRoot":"","sources":["../../src/logging/correlationContext.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,SAAS,CAE3D;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAEnE;AAED,uBAAuB;AACvB,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module-level last-seen correlation id convenience for Sentry tags / diagnostics.
|
|
3
|
+
*
|
|
4
|
+
* Limitation: this is process/tab-global last-write-wins — concurrent in-flight
|
|
5
|
+
* requests can overwrite each other. Prefer passing `correlationId` explicitly
|
|
6
|
+
* in logger meta on error paths; do not treat this alone as request Consistency.
|
|
7
|
+
*/
|
|
8
|
+
let lastCorrelationId;
|
|
9
|
+
export function getClientCorrelationId() {
|
|
10
|
+
return lastCorrelationId;
|
|
11
|
+
}
|
|
12
|
+
export function setClientCorrelationId(id) {
|
|
13
|
+
lastCorrelationId = id;
|
|
14
|
+
}
|
|
15
|
+
/** Test-only reset. */
|
|
16
|
+
export function resetClientCorrelationIdForTests() {
|
|
17
|
+
lastCorrelationId = undefined;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=correlationContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correlationContext.js","sourceRoot":"","sources":["../../src/logging/correlationContext.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,IAAI,iBAAqC,CAAC;AAE1C,MAAM,UAAU,sBAAsB;IACpC,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EAAsB;IAC3D,iBAAiB,GAAG,EAAE,CAAC;AACzB,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,gCAAgC;IAC9C,iBAAiB,GAAG,SAAS,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured client-side logger factory (gold = admin `appLogger`).
|
|
3
|
+
*
|
|
4
|
+
* Transport uses indirect `globalThis.console` access to satisfy zero direct
|
|
5
|
+
* `console.*` policy scans.
|
|
6
|
+
*/
|
|
7
|
+
import type { ClientLogger, ClientLoggerMeta } from './logSchema.js';
|
|
8
|
+
export type { ClientLogger, ClientLoggerMeta };
|
|
9
|
+
export interface CreateClientLoggerOptions {
|
|
10
|
+
readonly app: string;
|
|
11
|
+
/** Inject last-known / request correlation id into every emit when set. */
|
|
12
|
+
readonly getCorrelationId?: () => string | undefined;
|
|
13
|
+
/** Optional release/build version field when known. */
|
|
14
|
+
readonly readVersion?: () => string | undefined;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Creates a client logger with gold admin parity (flatten, error overload, debug gating).
|
|
18
|
+
*/
|
|
19
|
+
export declare function createClientLogger(options: CreateClientLoggerOptions): ClientLogger;
|
|
20
|
+
//# sourceMappingURL=createClientLogger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createClientLogger.d.ts","sourceRoot":"","sources":["../../src/logging/createClientLogger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGrE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAE/C,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACrD,uDAAuD;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACjD;AAoGD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,YAAY,CAkCnF"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured client-side logger factory (gold = admin `appLogger`).
|
|
3
|
+
*
|
|
4
|
+
* Transport uses indirect `globalThis.console` access to satisfy zero direct
|
|
5
|
+
* `console.*` policy scans.
|
|
6
|
+
*/
|
|
7
|
+
import { redactClientLogMeta, redactStringSecrets } from '../clientLogRedaction.js';
|
|
8
|
+
import { sanitizeMetaForLogEntry } from './sanitizeMeta.js';
|
|
9
|
+
function readEnvironment() {
|
|
10
|
+
if (typeof process !== 'undefined' && typeof process.env['NODE_ENV'] === 'string') {
|
|
11
|
+
return process.env['NODE_ENV'];
|
|
12
|
+
}
|
|
13
|
+
return 'development';
|
|
14
|
+
}
|
|
15
|
+
function isProductionEnvironment() {
|
|
16
|
+
return readEnvironment() === 'production';
|
|
17
|
+
}
|
|
18
|
+
function isDevEnvironment() {
|
|
19
|
+
const env = readEnvironment();
|
|
20
|
+
return env === 'development' || env === 'test';
|
|
21
|
+
}
|
|
22
|
+
function serializeLogValue(value) {
|
|
23
|
+
if (value instanceof Error) {
|
|
24
|
+
return { message: value.message, name: value.name, stack: value.stack };
|
|
25
|
+
}
|
|
26
|
+
if (typeof value === 'object' && value !== null) {
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
function normalizeMeta(rest) {
|
|
32
|
+
if (rest.length === 0) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
if (rest.length === 1) {
|
|
36
|
+
const only = rest[0];
|
|
37
|
+
if (only instanceof Error) {
|
|
38
|
+
return serializeLogValue(only);
|
|
39
|
+
}
|
|
40
|
+
if (typeof only === 'object' && only !== null && !Array.isArray(only)) {
|
|
41
|
+
return only;
|
|
42
|
+
}
|
|
43
|
+
return { detail: serializeLogValue(only) };
|
|
44
|
+
}
|
|
45
|
+
return { details: rest.map((value) => serializeLogValue(value)) };
|
|
46
|
+
}
|
|
47
|
+
function prepareMeta(meta) {
|
|
48
|
+
const sanitized = sanitizeMetaForLogEntry(meta);
|
|
49
|
+
if (!sanitized) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
return redactClientLogMeta(sanitized);
|
|
53
|
+
}
|
|
54
|
+
function emit(app, level, message, meta, options) {
|
|
55
|
+
const correlationId = options.getCorrelationId?.();
|
|
56
|
+
const version = options.readVersion?.();
|
|
57
|
+
const merged = {
|
|
58
|
+
...(correlationId !== undefined && meta?.['correlationId'] === undefined
|
|
59
|
+
? { correlationId }
|
|
60
|
+
: {}),
|
|
61
|
+
...(version !== undefined && version.length > 0 ? { version } : {}),
|
|
62
|
+
...meta,
|
|
63
|
+
};
|
|
64
|
+
const safeMeta = prepareMeta(Object.keys(merged).length > 0 ? merged : undefined);
|
|
65
|
+
const safeMessage = isProductionEnvironment() ? redactStringSecrets(message) : message;
|
|
66
|
+
const entry = {
|
|
67
|
+
timestamp: new Date().toISOString(),
|
|
68
|
+
level,
|
|
69
|
+
app,
|
|
70
|
+
message: safeMessage,
|
|
71
|
+
environment: readEnvironment(),
|
|
72
|
+
...safeMeta,
|
|
73
|
+
};
|
|
74
|
+
const line = isProductionEnvironment() ? JSON.stringify(entry) : `[${app}] ${message}`;
|
|
75
|
+
const sink = globalThis.console;
|
|
76
|
+
const sinkMeta = safeMeta ?? {};
|
|
77
|
+
if (level === 'error') {
|
|
78
|
+
sink.error(line, sinkMeta);
|
|
79
|
+
}
|
|
80
|
+
else if (level === 'warn') {
|
|
81
|
+
sink.warn(line, sinkMeta);
|
|
82
|
+
}
|
|
83
|
+
else if (level === 'debug') {
|
|
84
|
+
if (isDevEnvironment()) {
|
|
85
|
+
sink.log(line, sinkMeta);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
sink.log(line, sinkMeta);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Creates a client logger with gold admin parity (flatten, error overload, debug gating).
|
|
94
|
+
*/
|
|
95
|
+
export function createClientLogger(options) {
|
|
96
|
+
const { app } = options;
|
|
97
|
+
return {
|
|
98
|
+
info: (message, ...rest) => {
|
|
99
|
+
emit(app, 'info', message, normalizeMeta(rest), options);
|
|
100
|
+
},
|
|
101
|
+
warn: (message, ...rest) => {
|
|
102
|
+
emit(app, 'warn', message, normalizeMeta(rest), options);
|
|
103
|
+
},
|
|
104
|
+
error: (messageOrError, ...rest) => {
|
|
105
|
+
if (typeof messageOrError !== 'string') {
|
|
106
|
+
emit(app, 'error', 'Unhandled error', normalizeMeta([messageOrError, ...rest]), options);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
let meta = normalizeMeta(rest);
|
|
110
|
+
if (rest[0] instanceof Error) {
|
|
111
|
+
meta = {
|
|
112
|
+
...serializeLogValue(rest[0]),
|
|
113
|
+
...normalizeMeta(rest.slice(1)),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
emit(app, 'error', messageOrError, meta, options);
|
|
117
|
+
},
|
|
118
|
+
debug: (message, ...rest) => {
|
|
119
|
+
emit(app, 'debug', message, normalizeMeta(rest), options);
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=createClientLogger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createClientLogger.js","sourceRoot":"","sources":["../../src/logging/createClientLogger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAY5D,SAAS,eAAe;IACtB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,QAAQ,EAAE,CAAC;QAClF,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,uBAAuB;IAC9B,OAAO,eAAe,EAAE,KAAK,YAAY,CAAC;AAC5C,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,OAAO,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,MAAM,CAAC;AACjD,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAC1E,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,IAAe;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,IAAI,YAAY,KAAK,EAAE,CAAC;YAC1B,OAAO,iBAAiB,CAAC,IAAI,CAAqB,CAAC;QACrD,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtE,OAAO,IAAwB,CAAC;QAClC,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7C,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,WAAW,CAAC,IAAkC;IACrD,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,mBAAmB,CAAC,SAAS,CAAqB,CAAC;AAC5D,CAAC;AAED,SAAS,IAAI,CACX,GAAW,EACX,KAA0C,EAC1C,OAAe,EACf,IAAkC,EAClC,OAAkC;IAElC,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;IACxC,MAAM,MAAM,GAAiC;QAC3C,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,EAAE,CAAC,eAAe,CAAC,KAAK,SAAS;YACtE,CAAC,CAAC,EAAE,aAAa,EAAE;YACnB,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,IAAI;KACR,CAAC;IACF,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,uBAAuB,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAEvF,MAAM,KAAK,GAAG;QACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK;QACL,GAAG;QACH,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,eAAe,EAAE;QAC9B,GAAG,QAAQ;KACZ,CAAC;IAEF,MAAM,IAAI,GAAG,uBAAuB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;IACvF,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC;IAChC,MAAM,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;IAEhC,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;SAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5B,CAAC;SAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAC7B,IAAI,gBAAgB,EAAE,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAkC;IACnE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAExB,OAAO;QACL,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,IAAe,EAAQ,EAAE;YAClD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,IAAe,EAAQ,EAAE;YAClD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;QAED,KAAK,EAAE,CAAC,cAAgC,EAAE,GAAG,IAAe,EAAQ,EAAE;YACpE,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;gBACvC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBACzF,OAAO;YACT,CAAC;YAED,IAAI,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YAE/B,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,EAAE,CAAC;gBAC7B,IAAI,GAAG;oBACL,GAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAsB;oBACnD,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAChC,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;QAED,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,IAAe,EAAQ,EAAE;YACnD,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module-scoped client logger — merges scope into meta like admin `createAppLogger`.
|
|
3
|
+
*/
|
|
4
|
+
import type { ClientLogger } from './logSchema.js';
|
|
5
|
+
export interface ClientLoggerScope {
|
|
6
|
+
readonly module?: string;
|
|
7
|
+
readonly feature?: string;
|
|
8
|
+
readonly operation?: string;
|
|
9
|
+
}
|
|
10
|
+
export type ScopedClientLogger = ClientLogger;
|
|
11
|
+
/**
|
|
12
|
+
* Wraps a base client logger so every call includes the given scope fields.
|
|
13
|
+
*/
|
|
14
|
+
export declare function createScopedLogger(base: ClientLogger, scope: ClientLoggerScope): ScopedClientLogger;
|
|
15
|
+
//# sourceMappingURL=createScopedLogger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createScopedLogger.d.ts","sourceRoot":"","sources":["../../src/logging/createScopedLogger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,gBAAgB,CAAC;AAErE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAkB9C;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,iBAAiB,GACvB,kBAAkB,CAepB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module-scoped client logger — merges scope into meta like admin `createAppLogger`.
|
|
3
|
+
*/
|
|
4
|
+
function mergeScope(scope, rest) {
|
|
5
|
+
if (rest.length === 0) {
|
|
6
|
+
return [scope];
|
|
7
|
+
}
|
|
8
|
+
const first = rest[0];
|
|
9
|
+
if (typeof first === 'object' &&
|
|
10
|
+
first !== null &&
|
|
11
|
+
!Array.isArray(first) &&
|
|
12
|
+
!(first instanceof Error)) {
|
|
13
|
+
return [{ ...scope, ...first }, ...rest.slice(1)];
|
|
14
|
+
}
|
|
15
|
+
return [scope, ...rest];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Wraps a base client logger so every call includes the given scope fields.
|
|
19
|
+
*/
|
|
20
|
+
export function createScopedLogger(base, scope) {
|
|
21
|
+
return {
|
|
22
|
+
info: (message, ...rest) => {
|
|
23
|
+
base.info(message, ...mergeScope(scope, rest));
|
|
24
|
+
},
|
|
25
|
+
warn: (message, ...rest) => {
|
|
26
|
+
base.warn(message, ...mergeScope(scope, rest));
|
|
27
|
+
},
|
|
28
|
+
error: (messageOrError, ...rest) => {
|
|
29
|
+
base.error(messageOrError, ...mergeScope(scope, rest));
|
|
30
|
+
},
|
|
31
|
+
debug: (message, ...rest) => {
|
|
32
|
+
base.debug(message, ...mergeScope(scope, rest));
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=createScopedLogger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createScopedLogger.js","sourceRoot":"","sources":["../../src/logging/createScopedLogger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,SAAS,UAAU,CAAC,KAAwB,EAAE,IAAe;IAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EACzB,CAAC;QACD,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,GAAI,KAA0B,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAkB,EAClB,KAAwB;IAExB,OAAO;QACL,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,KAAK,EAAE,CAAC,cAAc,EAAE,GAAG,IAAI,EAAE,EAAE;YACjC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;YAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAClD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared client logging public API (`pi-kiosk-shared/logging`).
|
|
3
|
+
*/
|
|
4
|
+
export type { ClientLogger, ClientLoggerMeta, ClientLogLevel, ReservedClientLogEntryKey, } from './logSchema.js';
|
|
5
|
+
export { RESERVED_CLIENT_LOG_ENTRY_KEYS } from './logSchema.js';
|
|
6
|
+
export { createClientLogger } from './createClientLogger.js';
|
|
7
|
+
export type { CreateClientLoggerOptions } from './createClientLogger.js';
|
|
8
|
+
export { createScopedLogger } from './createScopedLogger.js';
|
|
9
|
+
export type { ClientLoggerScope, ScopedClientLogger } from './createScopedLogger.js';
|
|
10
|
+
export { getClientCorrelationId, setClientCorrelationId, resetClientCorrelationIdForTests, } from './correlationContext.js';
|
|
11
|
+
export { readRequestId } from './readRequestId.js';
|
|
12
|
+
export { sanitizeMetaForLogEntry } from './sanitizeMeta.js';
|
|
13
|
+
export { shouldEmitLogRepeat, getLogRepeatCount, resetLogRepeatCapForTests, DEFAULT_CLIENT_LOG_REPEAT_CAP, } from './logRepeatCap.js';
|
|
14
|
+
export { isUnexpectedClientError } from './isUnexpectedClientError.js';
|
|
15
|
+
export { reportClientError } from './reportClientError.js';
|
|
16
|
+
export type { CaptureClientErrorFn, ReportClientErrorOptions } from './reportClientError.js';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAErF,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared client logging public API (`pi-kiosk-shared/logging`).
|
|
3
|
+
*/
|
|
4
|
+
export { RESERVED_CLIENT_LOG_ENTRY_KEYS } from './logSchema.js';
|
|
5
|
+
export { createClientLogger } from './createClientLogger.js';
|
|
6
|
+
export { createScopedLogger } from './createScopedLogger.js';
|
|
7
|
+
export { getClientCorrelationId, setClientCorrelationId, resetClientCorrelationIdForTests, } from './correlationContext.js';
|
|
8
|
+
export { readRequestId } from './readRequestId.js';
|
|
9
|
+
export { sanitizeMetaForLogEntry } from './sanitizeMeta.js';
|
|
10
|
+
export { shouldEmitLogRepeat, getLogRepeatCount, resetLogRepeatCapForTests, DEFAULT_CLIENT_LOG_REPEAT_CAP, } from './logRepeatCap.js';
|
|
11
|
+
export { isUnexpectedClientError } from './isUnexpectedClientError.js';
|
|
12
|
+
export { reportClientError } from './reportClientError.js';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classify whether a client error should be reported to Sentry (unexpected)
|
|
3
|
+
* vs domain/expected HTTP failures (logger only / breadcrumbs).
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Returns true when the error should be captured by Sentry (5xx, network, unknown).
|
|
7
|
+
* Returns false for domain 4xx with errorCode, validation errors, and 409 conflicts.
|
|
8
|
+
*/
|
|
9
|
+
export declare function isUnexpectedClientError(error: unknown): boolean;
|
|
10
|
+
//# sourceMappingURL=isUnexpectedClientError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isUnexpectedClientError.d.ts","sourceRoot":"","sources":["../../src/logging/isUnexpectedClientError.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyDH;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA+C/D"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classify whether a client error should be reported to Sentry (unexpected)
|
|
3
|
+
* vs domain/expected HTTP failures (logger only / breadcrumbs).
|
|
4
|
+
*/
|
|
5
|
+
function readStatus(error) {
|
|
6
|
+
const record = error;
|
|
7
|
+
const candidates = [record['statusCode'], record['status'], record['httpStatus']];
|
|
8
|
+
for (const value of candidates) {
|
|
9
|
+
if (typeof value === 'number' && Number.isFinite(value)) {
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
function readErrorCode(error) {
|
|
16
|
+
const record = error;
|
|
17
|
+
const candidates = [record['errorCode'], record['code']];
|
|
18
|
+
for (const value of candidates) {
|
|
19
|
+
if (typeof value === 'string' && value.trim().length > 0) {
|
|
20
|
+
return value.trim();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
function isValidationError(error, status, code) {
|
|
26
|
+
const name = typeof error.name === 'string'
|
|
27
|
+
? error.name
|
|
28
|
+
: '';
|
|
29
|
+
if (name === 'ValidationError') {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
if (code === 'VALIDATION_ERROR' || code === 'VALIDATION') {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
if (status === 400 && (code?.includes('VALID') ?? false)) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
function isNetworkFailure(error, status) {
|
|
41
|
+
if (status !== undefined) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
if (error instanceof TypeError) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
if (typeof error === 'object' && error !== null) {
|
|
48
|
+
const name = error.name;
|
|
49
|
+
const code = readErrorCode(error);
|
|
50
|
+
if (name === 'NetworkError' || code === 'NETWORK_ERROR') {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Returns true when the error should be captured by Sentry (5xx, network, unknown).
|
|
58
|
+
* Returns false for domain 4xx with errorCode, validation errors, and 409 conflicts.
|
|
59
|
+
*/
|
|
60
|
+
export function isUnexpectedClientError(error) {
|
|
61
|
+
if (error === null || error === undefined) {
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
if (typeof error !== 'object') {
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
const status = readStatus(error);
|
|
68
|
+
const code = readErrorCode(error);
|
|
69
|
+
if (isNetworkFailure(error, status)) {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
if (status !== undefined && status >= 500) {
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
if (status === 409) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
if (isValidationError(error, status, code)) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
if (status !== undefined && status >= 400 && status < 500 && code !== undefined) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
// Domain-shaped AppError / API envelope without HTTP status but with a known code
|
|
85
|
+
// and no 5xx status — treat as expected when code is present and not network/unknown.
|
|
86
|
+
if (status === undefined && code !== undefined && code !== 'UNKNOWN_ERROR' && code !== 'NETWORK_ERROR') {
|
|
87
|
+
const name = typeof error.name === 'string'
|
|
88
|
+
? error.name
|
|
89
|
+
: '';
|
|
90
|
+
if (name === 'AppError' || name === 'AuthenticationError' || name === 'NotFoundError'
|
|
91
|
+
|| name === 'PaymentError' || name === 'InventoryError' || name === 'KioskError'
|
|
92
|
+
|| name === 'SalesPointError') {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// Plain Error / unknown without domain errorCode → unexpected
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=isUnexpectedClientError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isUnexpectedClientError.js","sourceRoot":"","sources":["../../src/logging/isUnexpectedClientError.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple Map-based repeat cap for frontend hot-loop logging.
|
|
3
|
+
* Callers decide how to emit; this only tracks whether another emit is allowed.
|
|
4
|
+
*/
|
|
5
|
+
export declare const DEFAULT_CLIENT_LOG_REPEAT_CAP = 10;
|
|
6
|
+
/**
|
|
7
|
+
* Increments the counter for `key` and returns whether the caller should emit
|
|
8
|
+
* (true while count ≤ maxRepeats).
|
|
9
|
+
*/
|
|
10
|
+
export declare function shouldEmitLogRepeat(key: string, maxRepeats?: number): boolean;
|
|
11
|
+
/** Current count for a key (0 if never seen). */
|
|
12
|
+
export declare function getLogRepeatCount(key: string): number;
|
|
13
|
+
/** Test-only reset of repeat counters. */
|
|
14
|
+
export declare function resetLogRepeatCapForTests(): void;
|
|
15
|
+
//# sourceMappingURL=logRepeatCap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logRepeatCap.d.ts","sourceRoot":"","sources":["../../src/logging/logRepeatCap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAIhD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,UAAU,GAAE,MAAsC,GACjD,OAAO,CAIT;AAED,iDAAiD;AACjD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,0CAA0C;AAC1C,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple Map-based repeat cap for frontend hot-loop logging.
|
|
3
|
+
* Callers decide how to emit; this only tracks whether another emit is allowed.
|
|
4
|
+
*/
|
|
5
|
+
export const DEFAULT_CLIENT_LOG_REPEAT_CAP = 10;
|
|
6
|
+
const repeatCounts = new Map();
|
|
7
|
+
/**
|
|
8
|
+
* Increments the counter for `key` and returns whether the caller should emit
|
|
9
|
+
* (true while count ≤ maxRepeats).
|
|
10
|
+
*/
|
|
11
|
+
export function shouldEmitLogRepeat(key, maxRepeats = DEFAULT_CLIENT_LOG_REPEAT_CAP) {
|
|
12
|
+
const count = (repeatCounts.get(key) ?? 0) + 1;
|
|
13
|
+
repeatCounts.set(key, count);
|
|
14
|
+
return count <= maxRepeats;
|
|
15
|
+
}
|
|
16
|
+
/** Current count for a key (0 if never seen). */
|
|
17
|
+
export function getLogRepeatCount(key) {
|
|
18
|
+
return repeatCounts.get(key) ?? 0;
|
|
19
|
+
}
|
|
20
|
+
/** Test-only reset of repeat counters. */
|
|
21
|
+
export function resetLogRepeatCapForTests() {
|
|
22
|
+
repeatCounts.clear();
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=logRepeatCap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logRepeatCap.js","sourceRoot":"","sources":["../../src/logging/logRepeatCap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEhD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE/C;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAW,EACX,aAAqB,6BAA6B;IAElD,MAAM,KAAK,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/C,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,KAAK,IAAI,UAAU,CAAC;AAC7B,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,yBAAyB;IACvC,YAAY,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client logger metadata schema and reserved flat-entry keys.
|
|
3
|
+
*/
|
|
4
|
+
/** Keys that must not be supplied via structured metadata (would break flat log formatting). */
|
|
5
|
+
export declare const RESERVED_CLIENT_LOG_ENTRY_KEYS: readonly ["level", "message", "timestamp", "service", "app", "environment", "appEnv", "deploymentEnvironment"];
|
|
6
|
+
export type ReservedClientLogEntryKey = (typeof RESERVED_CLIENT_LOG_ENTRY_KEYS)[number];
|
|
7
|
+
export type ClientLoggerMeta = {
|
|
8
|
+
module?: string;
|
|
9
|
+
feature?: string;
|
|
10
|
+
operation?: string;
|
|
11
|
+
correlationId?: string;
|
|
12
|
+
errorCode?: string;
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
};
|
|
15
|
+
export type ClientLogLevel = 'info' | 'warn' | 'error' | 'debug';
|
|
16
|
+
export interface ClientLogger {
|
|
17
|
+
info: (message: string, ...rest: unknown[]) => void;
|
|
18
|
+
warn: (message: string, ...rest: unknown[]) => void;
|
|
19
|
+
error: (messageOrError: string | unknown, ...rest: unknown[]) => void;
|
|
20
|
+
debug: (message: string, ...rest: unknown[]) => void;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=logSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logSchema.d.ts","sourceRoot":"","sources":["../../src/logging/logSchema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,gGAAgG;AAChG,eAAO,MAAM,8BAA8B,gHASjC,CAAC;AAEX,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AAExF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpD,KAAK,EAAE,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACtE,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACtD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client logger metadata schema and reserved flat-entry keys.
|
|
3
|
+
*/
|
|
4
|
+
/** Keys that must not be supplied via structured metadata (would break flat log formatting). */
|
|
5
|
+
export const RESERVED_CLIENT_LOG_ENTRY_KEYS = [
|
|
6
|
+
'level',
|
|
7
|
+
'message',
|
|
8
|
+
'timestamp',
|
|
9
|
+
'service',
|
|
10
|
+
'app',
|
|
11
|
+
'environment',
|
|
12
|
+
'appEnv',
|
|
13
|
+
'deploymentEnvironment',
|
|
14
|
+
];
|
|
15
|
+
//# sourceMappingURL=logSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logSchema.js","sourceRoot":"","sources":["../../src/logging/logSchema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,gGAAgG;AAChG,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,OAAO;IACP,SAAS;IACT,WAAW;IACX,SAAS;IACT,KAAK;IACL,aAAa;IACb,QAAQ;IACR,uBAAuB;CACf,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse `X-Request-ID` from a Fetch Response (length capped at 128).
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Returns the response `X-Request-ID` header when present and within length limits.
|
|
6
|
+
*/
|
|
7
|
+
export declare function readRequestId(response: Response): string | undefined;
|
|
8
|
+
//# sourceMappingURL=readRequestId.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readRequestId.d.ts","sourceRoot":"","sources":["../../src/logging/readRequestId.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAUpE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse `X-Request-ID` from a Fetch Response (length capped at 128).
|
|
3
|
+
*/
|
|
4
|
+
const MAX_REQUEST_ID_LENGTH = 128;
|
|
5
|
+
/**
|
|
6
|
+
* Returns the response `X-Request-ID` header when present and within length limits.
|
|
7
|
+
*/
|
|
8
|
+
export function readRequestId(response) {
|
|
9
|
+
const raw = response.headers.get('X-Request-ID') ?? response.headers.get('x-request-id');
|
|
10
|
+
if (raw === null || raw === undefined) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
const trimmed = raw.trim();
|
|
14
|
+
if (trimmed.length === 0 || trimmed.length > MAX_REQUEST_ID_LENGTH) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
return trimmed;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=readRequestId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readRequestId.js","sourceRoot":"","sources":["../../src/logging/readRequestId.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,QAAkB;IAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzF,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QACnE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Report unexpected client errors via an injected capture function.
|
|
3
|
+
* MUST NOT static-import `@sentry/*` — apps inject `captureException` (or equivalent).
|
|
4
|
+
*/
|
|
5
|
+
export type CaptureClientErrorFn = (error: unknown, extra?: Record<string, unknown>) => void;
|
|
6
|
+
export interface ReportClientErrorOptions {
|
|
7
|
+
readonly capture?: CaptureClientErrorFn;
|
|
8
|
+
readonly extra?: Record<string, unknown>;
|
|
9
|
+
/** When false, skip the unexpected classifier and never capture. Default true. */
|
|
10
|
+
readonly onlyUnexpected?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Invokes `capture` for unexpected errors only (unless `onlyUnexpected: false`).
|
|
14
|
+
* No-ops when `capture` is omitted.
|
|
15
|
+
*/
|
|
16
|
+
export declare function reportClientError(error: unknown, options?: ReportClientErrorOptions): void;
|
|
17
|
+
//# sourceMappingURL=reportClientError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reportClientError.d.ts","sourceRoot":"","sources":["../../src/logging/reportClientError.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,MAAM,oBAAoB,GAAG,CACjC,KAAK,EAAE,OAAO,EACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,IAAI,CAAC;AAEV,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,kFAAkF;IAClF,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,wBAA6B,GACrC,IAAI,CASN"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Report unexpected client errors via an injected capture function.
|
|
3
|
+
* MUST NOT static-import `@sentry/*` — apps inject `captureException` (or equivalent).
|
|
4
|
+
*/
|
|
5
|
+
import { isUnexpectedClientError } from './isUnexpectedClientError.js';
|
|
6
|
+
/**
|
|
7
|
+
* Invokes `capture` for unexpected errors only (unless `onlyUnexpected: false`).
|
|
8
|
+
* No-ops when `capture` is omitted.
|
|
9
|
+
*/
|
|
10
|
+
export function reportClientError(error, options = {}) {
|
|
11
|
+
const { capture, extra, onlyUnexpected = true } = options;
|
|
12
|
+
if (capture === undefined) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (onlyUnexpected && !isUnexpectedClientError(error)) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
capture(error, extra);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=reportClientError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reportClientError.js","sourceRoot":"","sources":["../../src/logging/reportClientError.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAcvE;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAc,EACd,UAAoC,EAAE;IAEtC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC1D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IACD,IAAI,cAAc,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strip reserved flat-entry keys from client log metadata
|
|
3
|
+
* (port of backend `sanitizeMetaForLogEntry`).
|
|
4
|
+
*/
|
|
5
|
+
import { type ClientLoggerMeta } from './logSchema.js';
|
|
6
|
+
/**
|
|
7
|
+
* Removes reserved keys that would collide with the flat log entry shape.
|
|
8
|
+
* A reserved `message` value is relocated to `logContext`.
|
|
9
|
+
*/
|
|
10
|
+
export declare function sanitizeMetaForLogEntry(meta: ClientLoggerMeta | Record<string, unknown> | undefined): Record<string, unknown> | undefined;
|
|
11
|
+
//# sourceMappingURL=sanitizeMeta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitizeMeta.d.ts","sourceRoot":"","sources":["../../src/logging/sanitizeMeta.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAIxB;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC3D,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAerC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strip reserved flat-entry keys from client log metadata
|
|
3
|
+
* (port of backend `sanitizeMetaForLogEntry`).
|
|
4
|
+
*/
|
|
5
|
+
import { RESERVED_CLIENT_LOG_ENTRY_KEYS, } from './logSchema.js';
|
|
6
|
+
const RESERVED_LOG_ENTRY_KEYS = new Set(RESERVED_CLIENT_LOG_ENTRY_KEYS);
|
|
7
|
+
/**
|
|
8
|
+
* Removes reserved keys that would collide with the flat log entry shape.
|
|
9
|
+
* A reserved `message` value is relocated to `logContext`.
|
|
10
|
+
*/
|
|
11
|
+
export function sanitizeMetaForLogEntry(meta) {
|
|
12
|
+
if (!meta) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
const safe = {};
|
|
16
|
+
for (const [key, value] of Object.entries(meta)) {
|
|
17
|
+
if (RESERVED_LOG_ENTRY_KEYS.has(key)) {
|
|
18
|
+
if (key === 'message') {
|
|
19
|
+
safe['logContext'] = value;
|
|
20
|
+
}
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
safe[key] = value;
|
|
24
|
+
}
|
|
25
|
+
return Object.keys(safe).length > 0 ? safe : undefined;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=sanitizeMeta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitizeMeta.js","sourceRoot":"","sources":["../../src/logging/sanitizeMeta.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,8BAA8B,GAE/B,MAAM,gBAAgB,CAAC;AAExB,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAS,8BAA8B,CAAC,CAAC;AAEhF;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAA4D;IAE5D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;YAC7B,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keys-only SSOT for log metadata redaction.
|
|
3
|
+
*
|
|
4
|
+
* Backend imports {@link SHARED_SENSITIVE_META_KEYS} only — never OTP field `code`
|
|
5
|
+
* (domain `code` / `errorCode` are legitimate API fields in Railway JSON).
|
|
6
|
+
* Client merges {@link CLIENT_ONLY_SENSITIVE_META_KEYS} on top.
|
|
7
|
+
*/
|
|
8
|
+
/** Shared deny-list keys (FE + BE). Does NOT include OTP `code`. */
|
|
9
|
+
export declare const SHARED_SENSITIVE_META_KEYS: readonly ["apitoken", "apiToken", "token", "authorization", "authtoken", "authToken", "sessiontoken", "sessionToken", "refreshtoken", "refreshToken", "accesstoken", "accessToken", "password", "secret", "credentialsecret", "credentialsSecret", "accountslug", "accountSlug", "errortext", "errorText", "responsebody", "responseBody", "rawbody", "rawBody", "customeremail", "customerEmail", "email", "phone", "phonenumber", "phoneNumber", "otp", "iban", "cvv", "cardnumber", "cardNumber", "pan"];
|
|
10
|
+
/**
|
|
11
|
+
* FE-only sensitive keys — MUST NOT be mirrored onto the backend deny-list.
|
|
12
|
+
* OTP / verification `code` would collide with domain API fields.
|
|
13
|
+
*/
|
|
14
|
+
export declare const CLIENT_ONLY_SENSITIVE_META_KEYS: readonly ["code"];
|
|
15
|
+
export type SharedSensitiveMetaKey = (typeof SHARED_SENSITIVE_META_KEYS)[number];
|
|
16
|
+
export type ClientOnlySensitiveMetaKey = (typeof CLIENT_ONLY_SENSITIVE_META_KEYS)[number];
|
|
17
|
+
//# sourceMappingURL=sensitiveMetaKeys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sensitiveMetaKeys.d.ts","sourceRoot":"","sources":["../src/sensitiveMetaKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,oEAAoE;AACpE,eAAO,MAAM,0BAA0B,6eAqC7B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,+BAA+B,mBAAoB,CAAC;AAEjE,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AACjF,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keys-only SSOT for log metadata redaction.
|
|
3
|
+
*
|
|
4
|
+
* Backend imports {@link SHARED_SENSITIVE_META_KEYS} only — never OTP field `code`
|
|
5
|
+
* (domain `code` / `errorCode` are legitimate API fields in Railway JSON).
|
|
6
|
+
* Client merges {@link CLIENT_ONLY_SENSITIVE_META_KEYS} on top.
|
|
7
|
+
*/
|
|
8
|
+
/** Shared deny-list keys (FE + BE). Does NOT include OTP `code`. */
|
|
9
|
+
export const SHARED_SENSITIVE_META_KEYS = [
|
|
10
|
+
'apitoken',
|
|
11
|
+
'apiToken',
|
|
12
|
+
'token',
|
|
13
|
+
'authorization',
|
|
14
|
+
'authtoken',
|
|
15
|
+
'authToken',
|
|
16
|
+
'sessiontoken',
|
|
17
|
+
'sessionToken',
|
|
18
|
+
'refreshtoken',
|
|
19
|
+
'refreshToken',
|
|
20
|
+
'accesstoken',
|
|
21
|
+
'accessToken',
|
|
22
|
+
'password',
|
|
23
|
+
'secret',
|
|
24
|
+
'credentialsecret',
|
|
25
|
+
'credentialsSecret',
|
|
26
|
+
'accountslug',
|
|
27
|
+
'accountSlug',
|
|
28
|
+
'errortext',
|
|
29
|
+
'errorText',
|
|
30
|
+
'responsebody',
|
|
31
|
+
'responseBody',
|
|
32
|
+
'rawbody',
|
|
33
|
+
'rawBody',
|
|
34
|
+
'customeremail',
|
|
35
|
+
'customerEmail',
|
|
36
|
+
'email',
|
|
37
|
+
'phone',
|
|
38
|
+
'phonenumber',
|
|
39
|
+
'phoneNumber',
|
|
40
|
+
'otp',
|
|
41
|
+
'iban',
|
|
42
|
+
'cvv',
|
|
43
|
+
'cardnumber',
|
|
44
|
+
'cardNumber',
|
|
45
|
+
'pan',
|
|
46
|
+
];
|
|
47
|
+
/**
|
|
48
|
+
* FE-only sensitive keys — MUST NOT be mirrored onto the backend deny-list.
|
|
49
|
+
* OTP / verification `code` would collide with domain API fields.
|
|
50
|
+
*/
|
|
51
|
+
export const CLIENT_ONLY_SENSITIVE_META_KEYS = ['code'];
|
|
52
|
+
//# sourceMappingURL=sensitiveMetaKeys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sensitiveMetaKeys.js","sourceRoot":"","sources":["../src/sensitiveMetaKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,oEAAoE;AACpE,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,UAAU;IACV,UAAU;IACV,OAAO;IACP,eAAe;IACf,WAAW;IACX,WAAW;IACX,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,aAAa;IACb,UAAU;IACV,QAAQ;IACR,kBAAkB;IAClB,mBAAmB;IACnB,aAAa;IACb,aAAa;IACb,WAAW;IACX,WAAW;IACX,cAAc;IACd,cAAc;IACd,SAAS;IACT,SAAS;IACT,eAAe;IACf,eAAe;IACf,OAAO;IACP,OAAO;IACP,aAAa;IACb,aAAa;IACb,KAAK;IACL,MAAM;IACN,KAAK;IACL,YAAY;IACZ,YAAY;IACZ,KAAK;CACG,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,MAAM,CAAU,CAAC"}
|
|
@@ -7,6 +7,13 @@ export interface InitSentryOptions {
|
|
|
7
7
|
readonly app: SentryAppName;
|
|
8
8
|
readonly isProd: boolean;
|
|
9
9
|
}
|
|
10
|
+
/** Whether {@link initSentry} completed successfully (prod + DSN). */
|
|
11
|
+
export declare function isSentryInitialized(): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Tag the active Sentry scope with `correlationId` for Railway ↔ Sentry join.
|
|
14
|
+
* No-op when Sentry has not been initialized.
|
|
15
|
+
*/
|
|
16
|
+
export declare function setSentryCorrelationId(id: string): void;
|
|
10
17
|
export declare function initSentry(options: InitSentryOptions): void;
|
|
11
18
|
export declare function captureException(error: unknown, context?: Record<string, unknown>): void;
|
|
12
19
|
export declare function captureBoundaryError(error: Error, errorInfo: ErrorInfo): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initSentry.d.ts","sourceRoot":"","sources":["../../src/sentry/initSentry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"initSentry.d.ts","sourceRoot":"","sources":["../../src/sentry/initSentry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAID,sEAAsE;AACtE,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAKvD;AAoBD,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAiC3D;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI,CASN;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CAgB7E"}
|
|
@@ -4,6 +4,20 @@
|
|
|
4
4
|
import * as Sentry from '@sentry/react';
|
|
5
5
|
import { redactClientLogMeta, redactStringSecrets } from '../clientLogRedaction.js';
|
|
6
6
|
let initialized = false;
|
|
7
|
+
/** Whether {@link initSentry} completed successfully (prod + DSN). */
|
|
8
|
+
export function isSentryInitialized() {
|
|
9
|
+
return initialized;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Tag the active Sentry scope with `correlationId` for Railway ↔ Sentry join.
|
|
13
|
+
* No-op when Sentry has not been initialized.
|
|
14
|
+
*/
|
|
15
|
+
export function setSentryCorrelationId(id) {
|
|
16
|
+
if (!initialized) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
Sentry.setTag('correlationId', id);
|
|
20
|
+
}
|
|
7
21
|
function scrubEvent(event) {
|
|
8
22
|
if (event.message) {
|
|
9
23
|
event.message = redactStringSecrets(event.message);
|
|
@@ -31,6 +45,13 @@ export function initSentry(options) {
|
|
|
31
45
|
release: options.release,
|
|
32
46
|
sendDefaultPii: false,
|
|
33
47
|
sampleRate: 1.0,
|
|
48
|
+
maxBreadcrumbs: 50,
|
|
49
|
+
beforeBreadcrumb(breadcrumb) {
|
|
50
|
+
if (options.isProd && breadcrumb.category === 'console') {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
return breadcrumb;
|
|
54
|
+
},
|
|
34
55
|
beforeSend: scrubEvent,
|
|
35
56
|
initialScope: {
|
|
36
57
|
tags: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initSentry.js","sourceRoot":"","sources":["../../src/sentry/initSentry.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAYpF,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,SAAS,UAAU,CAAC,KAAwB;IAC1C,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,KAAK,CAAC,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,KAAK,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAgC,CAGvE,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,KAAK,CAAC,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAmC,CAE7E,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAA0B;IACnD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC;YACV,GAAG;YACH,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,aAAa;YACjD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,cAAc,EAAE,KAAK;YACrB,UAAU,EAAE,GAAG;YACf,UAAU,EAAE,UAAU;YACtB,YAAY,EAAE;gBACZ,IAAI,EAAE;oBACJ,GAAG,EAAE,OAAO,CAAC,GAAG;iBACjB;aACF;SACF,CAAC,CAAC;QACH,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,gDAAgD;IAClD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,KAAc,EACd,OAAiC;IAEjC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GACT,OAAO,KAAK,SAAS;QACnB,CAAC,CAAE,mBAAmB,CAAC,OAAO,CAA6B;QAC3D,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAY,EAAE,SAAoB;IACrE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC;IAC1C,MAAM,cAAc,GAClB,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;QACzC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC;QAC/B,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE;QAC7B,QAAQ,EAAE;YACR,KAAK,EAAE;gBACL,cAAc;aACf;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"initSentry.js","sourceRoot":"","sources":["../../src/sentry/initSentry.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/tvShim.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Admin may import `pi-kiosk-shared/ui/tvShim` when code must match the 0.3 recipe
|
|
6
6
|
* contract; admin-local components continue using tv ^3.2.
|
|
7
7
|
*
|
|
8
|
-
* @see docs/FRONTEND/ADR-FE-TV-001-DECISION.md
|
|
8
|
+
* @see up-backend/docs/FRONTEND/ADR-FE-TV-001-DECISION.md
|
|
9
9
|
*/
|
|
10
10
|
export { tv, type VariantProps } from 'tailwind-variants';
|
|
11
11
|
//# sourceMappingURL=tvShim.d.ts.map
|
package/dist/ui/tvShim.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Admin may import `pi-kiosk-shared/ui/tvShim` when code must match the 0.3 recipe
|
|
6
6
|
* contract; admin-local components continue using tv ^3.2.
|
|
7
7
|
*
|
|
8
|
-
* @see docs/FRONTEND/ADR-FE-TV-001-DECISION.md
|
|
8
|
+
* @see up-backend/docs/FRONTEND/ADR-FE-TV-001-DECISION.md
|
|
9
9
|
*/
|
|
10
10
|
export { tv } from 'tailwind-variants';
|
|
11
11
|
//# sourceMappingURL=tvShim.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-kiosk-shared",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.32",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "Shared types, API contracts, and error classes for Pi Kiosk system",
|
|
@@ -95,6 +95,21 @@
|
|
|
95
95
|
"import": "./dist/clientLogRedaction.js",
|
|
96
96
|
"require": "./dist/clientLogRedaction.js"
|
|
97
97
|
},
|
|
98
|
+
"./sensitiveMetaKeys": {
|
|
99
|
+
"types": "./dist/sensitiveMetaKeys.d.ts",
|
|
100
|
+
"import": "./dist/sensitiveMetaKeys.js",
|
|
101
|
+
"require": "./dist/sensitiveMetaKeys.js"
|
|
102
|
+
},
|
|
103
|
+
"./logging": {
|
|
104
|
+
"types": "./dist/logging/index.d.ts",
|
|
105
|
+
"import": "./dist/logging/index.js",
|
|
106
|
+
"require": "./dist/logging/index.js"
|
|
107
|
+
},
|
|
108
|
+
"./logging/createClientLogger": {
|
|
109
|
+
"types": "./dist/logging/createClientLogger.d.ts",
|
|
110
|
+
"import": "./dist/logging/createClientLogger.js",
|
|
111
|
+
"require": "./dist/logging/createClientLogger.js"
|
|
112
|
+
},
|
|
98
113
|
"./barcode-scanner": {
|
|
99
114
|
"types": "./dist/barcode-scanner.d.ts",
|
|
100
115
|
"import": "./dist/barcode-scanner.js",
|
|
@@ -169,6 +184,34 @@
|
|
|
169
184
|
"require": "./dist/theme/ThemeProvider.js"
|
|
170
185
|
}
|
|
171
186
|
},
|
|
187
|
+
"typesVersions": {
|
|
188
|
+
"*": {
|
|
189
|
+
"sensitiveMetaKeys": [
|
|
190
|
+
"./dist/sensitiveMetaKeys.d.ts"
|
|
191
|
+
],
|
|
192
|
+
"clientLogRedaction": [
|
|
193
|
+
"./dist/clientLogRedaction.d.ts"
|
|
194
|
+
],
|
|
195
|
+
"analyticsEvents": [
|
|
196
|
+
"./dist/analyticsEvents.d.ts"
|
|
197
|
+
],
|
|
198
|
+
"analyticsApiTypes": [
|
|
199
|
+
"./dist/analyticsApiTypes.d.ts"
|
|
200
|
+
],
|
|
201
|
+
"analyticsExploreCaps": [
|
|
202
|
+
"./dist/analyticsExploreCaps.d.ts"
|
|
203
|
+
],
|
|
204
|
+
"crossTab": [
|
|
205
|
+
"./dist/crossTab/index.d.ts"
|
|
206
|
+
],
|
|
207
|
+
"logging": [
|
|
208
|
+
"./dist/logging/index.d.ts"
|
|
209
|
+
],
|
|
210
|
+
"logging/createClientLogger": [
|
|
211
|
+
"./dist/logging/createClientLogger.d.ts"
|
|
212
|
+
]
|
|
213
|
+
}
|
|
214
|
+
},
|
|
172
215
|
"peerDependencies": {
|
|
173
216
|
"@marsidev/react-turnstile": "^1.0.0",
|
|
174
217
|
"@sentry/react": "^8.0.0",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* DECISION-1 Option C: --brand-consumer-accent (Canva) + --brand-admin-accent (PO mockups)
|
|
5
5
|
* Import before theme.css or admin-theme.css once MFE-v3-S-01 wires consumers.
|
|
6
6
|
*
|
|
7
|
-
* @see rpappp/docs/FRONTEND/brand-palette.md
|
|
7
|
+
* @see rpappp/up-backend/docs/FRONTEND/brand-palette.md
|
|
8
8
|
* @source https://www.canva.com/colors/color-palettes/up-above/
|
|
9
9
|
*/
|
|
10
10
|
:root {
|