@superblocksteam/shared 0.9333.0 → 0.9334.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/socket/tracedSocket.d.ts.map +1 -1
- package/dist/socket/tracedSocket.js +2 -1
- package/dist/socket/tracedSocket.js.map +1 -1
- package/dist/tracing/errorSanitizer.d.ts +9 -0
- package/dist/tracing/errorSanitizer.d.ts.map +1 -0
- package/dist/tracing/errorSanitizer.js +202 -0
- package/dist/tracing/errorSanitizer.js.map +1 -0
- package/dist/tracing/errorSanitizer.test.d.ts +2 -0
- package/dist/tracing/errorSanitizer.test.d.ts.map +1 -0
- package/dist/tracing/errorSanitizer.test.js +237 -0
- package/dist/tracing/errorSanitizer.test.js.map +1 -0
- package/dist/tracing/methodTracing.d.ts.map +1 -1
- package/dist/tracing/methodTracing.js +5 -4
- package/dist/tracing/methodTracing.js.map +1 -1
- package/dist-esm/socket/tracedSocket.d.ts.map +1 -1
- package/dist-esm/socket/tracedSocket.js +2 -1
- package/dist-esm/socket/tracedSocket.js.map +1 -1
- package/dist-esm/tracing/errorSanitizer.d.ts +9 -0
- package/dist-esm/tracing/errorSanitizer.d.ts.map +1 -0
- package/dist-esm/tracing/errorSanitizer.js +198 -0
- package/dist-esm/tracing/errorSanitizer.js.map +1 -0
- package/dist-esm/tracing/errorSanitizer.test.d.ts +2 -0
- package/dist-esm/tracing/errorSanitizer.test.d.ts.map +1 -0
- package/dist-esm/tracing/errorSanitizer.test.js +235 -0
- package/dist-esm/tracing/errorSanitizer.test.js.map +1 -0
- package/dist-esm/tracing/methodTracing.d.ts.map +1 -1
- package/dist-esm/tracing/methodTracing.js +5 -4
- package/dist-esm/tracing/methodTracing.js.map +1 -1
- package/package.json +1 -1
- package/src/socket/tracedSocket.ts +2 -1
- package/src/tracing/errorSanitizer.test.ts +323 -0
- package/src/tracing/errorSanitizer.ts +215 -0
- package/src/tracing/methodTracing.ts +5 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracedSocket.d.ts","sourceRoot":"","sources":["../../src/socket/tracedSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,MAAM,EAEP,MAAM,oBAAoB,CAAC;AAE5B,OAAO,SAAS,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"tracedSocket.d.ts","sourceRoot":"","sources":["../../src/socket/tracedSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,MAAM,EAEP,MAAM,oBAAoB,CAAC;AAE5B,OAAO,SAAS,MAAM,eAAe,CAAC;AAWtC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAmC9H,qBAAa,YAAY,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,OAAO,CACvH,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,MAAM,CAAS;gBAGrB,EAAE,EAAE,SAAS,EACb,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;QAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAC;KACpH;cAMa,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,EACpG,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC,EACvE,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,EACtC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAC1B,OAAO,CAAC,MAAM,CAAC;cAkCF,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC7D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASvG,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa;IAK/D,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKlE,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,IAAI;IAStF,OAAO,CAAC,QAAQ;IAQT,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;CAQpC"}
|
|
@@ -4,6 +4,7 @@ exports.TracedSocket = void 0;
|
|
|
4
4
|
const api_1 = require("@opentelemetry/api");
|
|
5
5
|
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
6
6
|
const observability_1 = require("../observability");
|
|
7
|
+
const errorSanitizer_1 = require("../tracing/errorSanitizer");
|
|
7
8
|
const socket_1 = require("./socket");
|
|
8
9
|
function isPromise(obj) {
|
|
9
10
|
return obj !== null && typeof obj === 'object' && typeof obj.then === 'function';
|
|
@@ -34,7 +35,7 @@ const endSpan = (traced, span) => {
|
|
|
34
35
|
function setHttpStatusFromError(span, error) {
|
|
35
36
|
// Simplified error handling without server-side dependencies
|
|
36
37
|
span.setAttribute(observability_1.OBS_TAG_HTTP_STATUS_CODE, 500);
|
|
37
|
-
span.recordException(error);
|
|
38
|
+
span.recordException((0, errorSanitizer_1.sanitizeError)(error));
|
|
38
39
|
span.setStatus({ code: api_1.SpanStatusCode.ERROR, message: error.message });
|
|
39
40
|
}
|
|
40
41
|
class TracedSocket extends socket_1.ISocket {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracedSocket.js","sourceRoot":"","sources":["../../src/socket/tracedSocket.ts"],"names":[],"mappings":";;;AAAA,4CAW4B;AAC5B,8EAAqH;AAErH,oDAQ0B;AAC1B,qCAA+D;AAG/D,SAAS,SAAS,CAAC,GAAY;IAC7B,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAQ,GAAwB,CAAC,IAAI,KAAK,UAAU,CAAC;AACzG,CAAC;AAED,+IAA+I;AAC/I,MAAM,OAAO,GAAG,CAAC,MAAwC,EAAE,IAAU,EAAE,EAAE;IACvE,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;QACxB,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;YACrB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;iBAC3B,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7E,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;SAC9B;aAAM;YACL,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;SACf;KACF;IAAC,OAAO,KAAK,EAAE;QACd,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,MAAM,KAAK,CAAC;KACb;AACH,CAAC,CAAC;AAEF,SAAS,sBAAsB,CAAC,IAAU,EAAE,KAAY;IACtD,6DAA6D;IAC7D,IAAI,CAAC,YAAY,CAAC,wCAAwB,EAAE,GAAG,CAAC,CAAC;IACjD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"tracedSocket.js","sourceRoot":"","sources":["../../src/socket/tracedSocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sanitizes errors before recording them in OpenTelemetry spans to prevent
|
|
3
|
+
* sensitive information from being sent to DataDog or other observability platforms.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Sanitizes an error object for safe recording in OpenTelemetry spans
|
|
7
|
+
*/
|
|
8
|
+
export declare function sanitizeError(error: unknown): Error;
|
|
9
|
+
//# sourceMappingURL=errorSanitizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorSanitizer.d.ts","sourceRoot":"","sources":["../../src/tracing/errorSanitizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0IH;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAsEnD"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Sanitizes errors before recording them in OpenTelemetry spans to prevent
|
|
4
|
+
* sensitive information from being sent to DataDog or other observability platforms.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.sanitizeError = void 0;
|
|
8
|
+
// Patterns that indicate sensitive information
|
|
9
|
+
const SENSITIVE_PATTERNS = [
|
|
10
|
+
// Tokens and keys - capture groups to preserve prefixes
|
|
11
|
+
/(\bbearer\s+)[a-zA-Z0-9\-._~+/]+=*/gi,
|
|
12
|
+
/(\bbasic\s+)\S+/gi,
|
|
13
|
+
/(\bjwt\s+)[a-zA-Z0-9\-._~+/]+=*/gi,
|
|
14
|
+
/(\btoken[:\s=]+)[a-zA-Z0-9\-._~+/]+=*/gi,
|
|
15
|
+
/(\bapi[_\s]?key[:\s=]+)[a-zA-Z0-9\-._~+/]+=*/gi,
|
|
16
|
+
/(\baccess[_\s]?token[:\s=]+)[a-zA-Z0-9\-._~+/]+=*/gi,
|
|
17
|
+
/(\brefresh[_\s]?token[:\s=]+)[a-zA-Z0-9\-._~+/]+=*/gi,
|
|
18
|
+
// JWT pattern (base64.base64.base64) - standalone tokens
|
|
19
|
+
/\b[A-Za-z0-9-_]{20,}\.[A-Za-z0-9-_]{20,}\.[A-Za-z0-9-_]{20,}\b/g
|
|
20
|
+
];
|
|
21
|
+
// Fields to completely remove from error objects
|
|
22
|
+
const COMPLETELY_REDACTED_FIELDS = [
|
|
23
|
+
'token',
|
|
24
|
+
'accesstoken',
|
|
25
|
+
'access_token',
|
|
26
|
+
'refreshtoken',
|
|
27
|
+
'refresh_token',
|
|
28
|
+
'jwt',
|
|
29
|
+
'bearer',
|
|
30
|
+
'apikey',
|
|
31
|
+
'api_key',
|
|
32
|
+
'secret',
|
|
33
|
+
'password',
|
|
34
|
+
'passwd',
|
|
35
|
+
'key',
|
|
36
|
+
'private_key',
|
|
37
|
+
'privatekey',
|
|
38
|
+
'credentials',
|
|
39
|
+
'auth',
|
|
40
|
+
'session',
|
|
41
|
+
'cookie'
|
|
42
|
+
];
|
|
43
|
+
// Fields that should have their values sanitized but structure preserved
|
|
44
|
+
const VALUE_SANITIZED_FIELDS = ['authorization', 'headers'];
|
|
45
|
+
/**
|
|
46
|
+
* Sanitizes a message string by replacing sensitive patterns
|
|
47
|
+
*/
|
|
48
|
+
function sanitizeMessage(message) {
|
|
49
|
+
if (!message)
|
|
50
|
+
return message;
|
|
51
|
+
let sanitized = message;
|
|
52
|
+
for (const pattern of SENSITIVE_PATTERNS) {
|
|
53
|
+
if (pattern.global) {
|
|
54
|
+
pattern.lastIndex = 0; // Reset regex state
|
|
55
|
+
}
|
|
56
|
+
if (pattern.source.includes('(')) {
|
|
57
|
+
// Pattern has capture groups - preserve prefix
|
|
58
|
+
sanitized = sanitized.replace(pattern, '$1[REDACTED]');
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
// Pattern matches entire sensitive value
|
|
62
|
+
sanitized = sanitized.replace(pattern, '[REDACTED]');
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return sanitized;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Sanitizes a stack trace by replacing sensitive patterns
|
|
69
|
+
*/
|
|
70
|
+
function sanitizeStackTrace(stack) {
|
|
71
|
+
if (!stack)
|
|
72
|
+
return stack;
|
|
73
|
+
return sanitizeMessage(stack);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Recursively sanitizes an object by removing/redacting sensitive fields
|
|
77
|
+
*/
|
|
78
|
+
function sanitizeObject(obj, depth = 0) {
|
|
79
|
+
if (depth > 5) {
|
|
80
|
+
// Prevent infinite recursion
|
|
81
|
+
return '[MAX_DEPTH_REACHED]';
|
|
82
|
+
}
|
|
83
|
+
if (obj === null || obj === undefined) {
|
|
84
|
+
return obj;
|
|
85
|
+
}
|
|
86
|
+
if (typeof obj === 'string') {
|
|
87
|
+
return sanitizeMessage(obj);
|
|
88
|
+
}
|
|
89
|
+
if (typeof obj === 'number' || typeof obj === 'boolean') {
|
|
90
|
+
return obj;
|
|
91
|
+
}
|
|
92
|
+
if (typeof obj !== 'object') {
|
|
93
|
+
return obj;
|
|
94
|
+
}
|
|
95
|
+
if (Array.isArray(obj)) {
|
|
96
|
+
return obj.map((item) => sanitizeObject(item, depth + 1));
|
|
97
|
+
}
|
|
98
|
+
const sanitized = {};
|
|
99
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
100
|
+
const lowerKey = key.toLowerCase();
|
|
101
|
+
// Check for value-sanitized fields first (more specific)
|
|
102
|
+
if (VALUE_SANITIZED_FIELDS.some((field) => lowerKey === field)) {
|
|
103
|
+
if (typeof value === 'string') {
|
|
104
|
+
sanitized[key] = sanitizeMessage(value);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
sanitized[key] = sanitizeObject(value, depth + 1);
|
|
108
|
+
}
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
// Then check for completely redacted fields
|
|
112
|
+
if (COMPLETELY_REDACTED_FIELDS.some((field) => lowerKey === field || lowerKey.includes(field))) {
|
|
113
|
+
sanitized[key] = '[REDACTED]';
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
// Special handling for common error properties
|
|
117
|
+
if (key === 'message') {
|
|
118
|
+
sanitized[key] = sanitizeMessage(value);
|
|
119
|
+
}
|
|
120
|
+
else if (key === 'stack') {
|
|
121
|
+
sanitized[key] = sanitizeStackTrace(value);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
sanitized[key] = sanitizeObject(value, depth + 1);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return sanitized;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Sanitizes an error object for safe recording in OpenTelemetry spans
|
|
131
|
+
*/
|
|
132
|
+
function sanitizeError(error) {
|
|
133
|
+
if (!error) {
|
|
134
|
+
return error;
|
|
135
|
+
}
|
|
136
|
+
// If it's already a sanitized error, return as-is
|
|
137
|
+
const errorWithSanitized = error;
|
|
138
|
+
if (errorWithSanitized._sanitized) {
|
|
139
|
+
return errorWithSanitized;
|
|
140
|
+
}
|
|
141
|
+
let sanitized;
|
|
142
|
+
if (error instanceof Error) {
|
|
143
|
+
// Create a new error with sanitized properties
|
|
144
|
+
sanitized = new Error(sanitizeMessage(error.message));
|
|
145
|
+
sanitized.name = error.name;
|
|
146
|
+
sanitized.stack = sanitizeStackTrace(error.stack || '');
|
|
147
|
+
// Copy and sanitize all enumerable properties
|
|
148
|
+
Object.keys(error).forEach((prop) => {
|
|
149
|
+
if (prop !== 'message' && prop !== 'name' && prop !== 'stack') {
|
|
150
|
+
const lowerProp = prop.toLowerCase();
|
|
151
|
+
const errorWithProps = error;
|
|
152
|
+
// Check for value-sanitized fields first (more specific)
|
|
153
|
+
if (VALUE_SANITIZED_FIELDS.some((field) => lowerProp === field)) {
|
|
154
|
+
if (typeof errorWithProps[prop] === 'string') {
|
|
155
|
+
sanitized[prop] = sanitizeMessage(errorWithProps[prop]);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
sanitized[prop] = sanitizeObject(errorWithProps[prop]);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
else if (COMPLETELY_REDACTED_FIELDS.some((field) => lowerProp === field || lowerProp.includes(field))) {
|
|
162
|
+
sanitized[prop] = '[REDACTED]';
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
sanitized[prop] = sanitizeObject(errorWithProps[prop]);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
// Also check non-enumerable properties that might have been added
|
|
170
|
+
Object.getOwnPropertyNames(error).forEach((prop) => {
|
|
171
|
+
if (prop !== 'message' && prop !== 'name' && prop !== 'stack' && !Object.prototype.propertyIsEnumerable.call(error, prop)) {
|
|
172
|
+
const lowerProp = prop.toLowerCase();
|
|
173
|
+
const errorWithProps = error;
|
|
174
|
+
// Check for value-sanitized fields first (more specific)
|
|
175
|
+
if (VALUE_SANITIZED_FIELDS.some((field) => lowerProp === field)) {
|
|
176
|
+
if (typeof errorWithProps[prop] === 'string') {
|
|
177
|
+
sanitized[prop] = sanitizeMessage(errorWithProps[prop]);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
sanitized[prop] = sanitizeObject(errorWithProps[prop]);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
else if (COMPLETELY_REDACTED_FIELDS.some((field) => lowerProp === field || lowerProp.includes(field))) {
|
|
184
|
+
sanitized[prop] = '[REDACTED]';
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
sanitized[prop] = sanitizeObject(errorWithProps[prop]);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
// For non-Error objects, sanitize the entire object
|
|
194
|
+
const sanitizedObj = sanitizeObject(error);
|
|
195
|
+
sanitized = sanitizedObj;
|
|
196
|
+
}
|
|
197
|
+
// Mark as sanitized to prevent double-processing
|
|
198
|
+
sanitized._sanitized = true;
|
|
199
|
+
return sanitized;
|
|
200
|
+
}
|
|
201
|
+
exports.sanitizeError = sanitizeError;
|
|
202
|
+
//# sourceMappingURL=errorSanitizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorSanitizer.js","sourceRoot":"","sources":["../../src/tracing/errorSanitizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorSanitizer.test.d.ts","sourceRoot":"","sources":["../../src/tracing/errorSanitizer.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const errorSanitizer_1 = require("./errorSanitizer");
|
|
4
|
+
describe('Error Sanitization', () => {
|
|
5
|
+
it('should redact JWT tokens from error messages', () => {
|
|
6
|
+
const error = new Error('Invalid token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c');
|
|
7
|
+
const sanitized = (0, errorSanitizer_1.sanitizeError)(error);
|
|
8
|
+
expect(sanitized.message).toBe('Invalid token: [REDACTED]');
|
|
9
|
+
expect(sanitized.message).not.toContain('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9');
|
|
10
|
+
});
|
|
11
|
+
it('should redact bearer tokens from error messages', () => {
|
|
12
|
+
const error = new Error('Authentication failed with bearer abc123token456');
|
|
13
|
+
const sanitized = (0, errorSanitizer_1.sanitizeError)(error);
|
|
14
|
+
expect(sanitized.message).toBe('Authentication failed with bearer [REDACTED]');
|
|
15
|
+
});
|
|
16
|
+
it('should redact API keys from error messages', () => {
|
|
17
|
+
const error = new Error('API request failed: api_key=sk_live_abc123def456');
|
|
18
|
+
const sanitized = (0, errorSanitizer_1.sanitizeError)(error);
|
|
19
|
+
expect(sanitized.message).toBe('API request failed: api_key=[REDACTED]');
|
|
20
|
+
});
|
|
21
|
+
it('should remove sensitive fields from error objects', () => {
|
|
22
|
+
const error = new Error('Test error');
|
|
23
|
+
error.token = 'secret-token-123';
|
|
24
|
+
error.apiKey = 'api-key-456';
|
|
25
|
+
error.password = 'mypassword';
|
|
26
|
+
error.requestData = {
|
|
27
|
+
username: 'john',
|
|
28
|
+
authorization: 'Bearer token123'
|
|
29
|
+
};
|
|
30
|
+
const sanitized = (0, errorSanitizer_1.sanitizeError)(error);
|
|
31
|
+
expect(sanitized.token).toBe('[REDACTED]');
|
|
32
|
+
expect(sanitized.apiKey).toBe('[REDACTED]');
|
|
33
|
+
expect(sanitized.password).toBe('[REDACTED]');
|
|
34
|
+
expect(sanitized.requestData.username).toBe('john'); // Non-sensitive field preserved
|
|
35
|
+
expect(sanitized.requestData.authorization).toBe('Bearer [REDACTED]');
|
|
36
|
+
});
|
|
37
|
+
it('should sanitize stack traces', () => {
|
|
38
|
+
const error = new Error('Test error');
|
|
39
|
+
error.stack = `Error: Invalid token eyJhbGciOiJIUzI1NiI...
|
|
40
|
+
at AuthService.validateToken (/app/src/auth.js:42:15)
|
|
41
|
+
at api_key=sk_live_abc123 (/app/src/api.js:20:10)`;
|
|
42
|
+
const sanitized = (0, errorSanitizer_1.sanitizeError)(error);
|
|
43
|
+
expect(sanitized.stack).toContain('[REDACTED]');
|
|
44
|
+
expect(sanitized.stack).not.toContain('eyJhbGciOiJIUzI1NiI');
|
|
45
|
+
expect(sanitized.stack).not.toContain('sk_live_abc123');
|
|
46
|
+
});
|
|
47
|
+
it('should preserve error type and non-sensitive properties', () => {
|
|
48
|
+
const error = new TypeError('Invalid token: abc123def456ghi789');
|
|
49
|
+
error.statusCode = 401;
|
|
50
|
+
error.userId = 'user-123';
|
|
51
|
+
const sanitized = (0, errorSanitizer_1.sanitizeError)(error);
|
|
52
|
+
expect(sanitized.name).toBe('TypeError');
|
|
53
|
+
expect(sanitized.statusCode).toBe(401);
|
|
54
|
+
expect(sanitized.userId).toBe('user-123');
|
|
55
|
+
expect(sanitized.message).toBe('Invalid token: [REDACTED]');
|
|
56
|
+
});
|
|
57
|
+
it('should handle non-Error objects', () => {
|
|
58
|
+
const errorObj = {
|
|
59
|
+
message: 'Auth failed with token abc123',
|
|
60
|
+
token: 'secret-token',
|
|
61
|
+
data: {
|
|
62
|
+
user: 'john',
|
|
63
|
+
password: 'secret123'
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const sanitized = (0, errorSanitizer_1.sanitizeError)(errorObj);
|
|
67
|
+
expect(sanitized.message).toBe('Auth failed with token [REDACTED]');
|
|
68
|
+
expect(sanitized.token).toBe('[REDACTED]');
|
|
69
|
+
expect(sanitized.data.user).toBe('john');
|
|
70
|
+
expect(sanitized.data.password).toBe('[REDACTED]');
|
|
71
|
+
});
|
|
72
|
+
it('should not double-sanitize already sanitized errors', () => {
|
|
73
|
+
const error = new Error('Invalid token: eyJhbGciOiJIUzI1NiI...');
|
|
74
|
+
const firstSanitization = (0, errorSanitizer_1.sanitizeError)(error);
|
|
75
|
+
const secondSanitization = (0, errorSanitizer_1.sanitizeError)(firstSanitization);
|
|
76
|
+
expect(firstSanitization.message).toBe(secondSanitization.message);
|
|
77
|
+
expect(firstSanitization._sanitized).toBe(true);
|
|
78
|
+
});
|
|
79
|
+
it('should handle null and undefined gracefully', () => {
|
|
80
|
+
expect((0, errorSanitizer_1.sanitizeError)(null)).toBe(null);
|
|
81
|
+
expect((0, errorSanitizer_1.sanitizeError)(undefined)).toBe(undefined);
|
|
82
|
+
});
|
|
83
|
+
describe('Headers Sanitization', () => {
|
|
84
|
+
it('should sanitize authorization headers while preserving structure', () => {
|
|
85
|
+
const error = new Error('Request failed');
|
|
86
|
+
error.headers = {
|
|
87
|
+
authorization: 'Bearer eyJhbGciOiJIUzI1NiI...',
|
|
88
|
+
'content-type': 'application/json',
|
|
89
|
+
'x-api-key': 'sk_live_abc123'
|
|
90
|
+
};
|
|
91
|
+
const sanitized = (0, errorSanitizer_1.sanitizeError)(error);
|
|
92
|
+
expect(sanitized.headers.authorization).toBe('Bearer [REDACTED]');
|
|
93
|
+
expect(sanitized.headers['content-type']).toBe('application/json'); // Non-sensitive preserved
|
|
94
|
+
expect(sanitized.headers['x-api-key']).toBe('[REDACTED]'); // Contains 'key' -> completely redacted
|
|
95
|
+
});
|
|
96
|
+
it('should sanitize headers in HTTP request/response objects', () => {
|
|
97
|
+
const error = new Error('HTTP request failed');
|
|
98
|
+
error.request = {
|
|
99
|
+
url: 'https://api.example.com/users',
|
|
100
|
+
method: 'GET',
|
|
101
|
+
headers: {
|
|
102
|
+
Authorization: 'Bearer token123',
|
|
103
|
+
Cookie: 'session=abc123; auth_token=xyz789',
|
|
104
|
+
'User-Agent': 'MyApp/1.0'
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
error.response = {
|
|
108
|
+
status: 401,
|
|
109
|
+
headers: {
|
|
110
|
+
'WWW-Authenticate': 'Bearer realm="api"',
|
|
111
|
+
'Set-Cookie': 'refresh_token=def456; HttpOnly',
|
|
112
|
+
'Content-Type': 'application/json'
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
const sanitized = (0, errorSanitizer_1.sanitizeError)(error);
|
|
116
|
+
// Request headers
|
|
117
|
+
expect(sanitized.request.headers.Authorization).toBe('Bearer [REDACTED]');
|
|
118
|
+
expect(sanitized.request.headers.Cookie).toBe('[REDACTED]'); // Contains 'cookie' -> completely redacted
|
|
119
|
+
expect(sanitized.request.headers['User-Agent']).toBe('MyApp/1.0');
|
|
120
|
+
// Response headers
|
|
121
|
+
expect(sanitized.response.headers['WWW-Authenticate']).toBe('[REDACTED]'); // Contains 'bearer' pattern -> redacted
|
|
122
|
+
expect(sanitized.response.headers['Set-Cookie']).toBe('[REDACTED]'); // Contains 'cookie' -> completely redacted
|
|
123
|
+
expect(sanitized.response.headers['Content-Type']).toBe('application/json');
|
|
124
|
+
});
|
|
125
|
+
it('should handle case-insensitive header names', () => {
|
|
126
|
+
const error = new Error('Request failed');
|
|
127
|
+
error.Headers = {
|
|
128
|
+
// Capital H - this field name doesn't contain sensitive keywords
|
|
129
|
+
AUTHORIZATION: 'Bearer token123',
|
|
130
|
+
authorization: 'Basic user:pass',
|
|
131
|
+
'X-API-KEY': 'secret-key'
|
|
132
|
+
};
|
|
133
|
+
const sanitized = (0, errorSanitizer_1.sanitizeError)(error);
|
|
134
|
+
// Headers (capital H) is not in VALUE_SANITIZED_FIELDS, so individual fields get processed normally
|
|
135
|
+
// But Basic auth pattern still applies for string value sanitization
|
|
136
|
+
expect(sanitized.Headers.AUTHORIZATION).toBe('Bearer [REDACTED]'); // Pattern matching on string value
|
|
137
|
+
expect(sanitized.Headers.authorization).toBe('Basic [REDACTED]'); // Basic auth pattern applies
|
|
138
|
+
expect(sanitized.Headers['X-API-KEY']).toBe('[REDACTED]'); // Contains 'key' -> completely redacted
|
|
139
|
+
});
|
|
140
|
+
it('should sanitize headers with various token formats', () => {
|
|
141
|
+
const errorObj = {
|
|
142
|
+
message: 'Authentication failed',
|
|
143
|
+
headers: {
|
|
144
|
+
authorization: 'JWT eyJhbGciOiJIUzI1NiI...',
|
|
145
|
+
'x-auth-token': 'Bearer abc123def456',
|
|
146
|
+
'api-key': 'sk_test_1234567890',
|
|
147
|
+
cookie: 'sessionId=sess_abc123; csrfToken=csrf_xyz789',
|
|
148
|
+
'x-forwarded-for': '192.168.1.1' // Should be preserved
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
const sanitized = (0, errorSanitizer_1.sanitizeError)(errorObj);
|
|
152
|
+
expect(sanitized.headers.authorization).toBe('JWT [REDACTED]');
|
|
153
|
+
expect(sanitized.headers['x-auth-token']).toBe('[REDACTED]'); // Contains 'auth' -> completely redacted
|
|
154
|
+
expect(sanitized.headers['api-key']).toBe('[REDACTED]'); // Contains 'key' -> completely redacted
|
|
155
|
+
expect(sanitized.headers.cookie).toBe('[REDACTED]'); // Contains 'cookie' -> completely redacted
|
|
156
|
+
expect(sanitized.headers['x-forwarded-for']).toBe('192.168.1.1');
|
|
157
|
+
});
|
|
158
|
+
it('should handle nested headers in complex objects', () => {
|
|
159
|
+
const error = new Error('Network error');
|
|
160
|
+
error.requestConfig = {
|
|
161
|
+
baseURL: 'https://api.example.com',
|
|
162
|
+
timeout: 5000,
|
|
163
|
+
headers: {
|
|
164
|
+
Authorization: 'Bearer eyJhbGciOiJIUzI1NiI...',
|
|
165
|
+
'Content-Type': 'application/json'
|
|
166
|
+
},
|
|
167
|
+
data: {
|
|
168
|
+
username: 'john',
|
|
169
|
+
password: 'secret123'
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
const sanitized = (0, errorSanitizer_1.sanitizeError)(error);
|
|
173
|
+
expect(sanitized.requestConfig.baseURL).toBe('https://api.example.com');
|
|
174
|
+
expect(sanitized.requestConfig.timeout).toBe(5000);
|
|
175
|
+
expect(sanitized.requestConfig.headers.Authorization).toBe('Bearer [REDACTED]');
|
|
176
|
+
expect(sanitized.requestConfig.headers['Content-Type']).toBe('application/json');
|
|
177
|
+
expect(sanitized.requestConfig.data.username).toBe('john');
|
|
178
|
+
expect(sanitized.requestConfig.data.password).toBe('[REDACTED]');
|
|
179
|
+
});
|
|
180
|
+
it('should handle headers as strings vs objects', () => {
|
|
181
|
+
const error = new Error('Invalid headers');
|
|
182
|
+
error.headers = 'Authorization: Bearer token123\r\nContent-Type: application/json';
|
|
183
|
+
error.requestHeaders = {
|
|
184
|
+
authorization: 'Basic dXNlcjpwYXNz',
|
|
185
|
+
'user-agent': 'MyApp/1.0'
|
|
186
|
+
};
|
|
187
|
+
const sanitized = (0, errorSanitizer_1.sanitizeError)(error);
|
|
188
|
+
// String headers get pattern-based sanitization (Bearer preserves prefix)
|
|
189
|
+
expect(sanitized.headers).toBe('Authorization: Bearer [REDACTED]\r\nContent-Type: application/json');
|
|
190
|
+
// Any field named 'authorization' should be value-sanitized regardless of parent object name
|
|
191
|
+
expect(sanitized.requestHeaders.authorization).toBe('Basic [REDACTED]');
|
|
192
|
+
expect(sanitized.requestHeaders['user-agent']).toBe('MyApp/1.0');
|
|
193
|
+
});
|
|
194
|
+
it('should redact GitHub tokens', () => {
|
|
195
|
+
const errorObj = {
|
|
196
|
+
message: 'GitHub API failed',
|
|
197
|
+
personalToken: 'ghp_1234567890abcdef1234567890abcdef12345678',
|
|
198
|
+
appToken: 'ghs_abcdef1234567890abcdef1234567890abcdef12',
|
|
199
|
+
finegrainedToken: 'github_pat_11ABCDEFG0001234567890_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890',
|
|
200
|
+
config: {
|
|
201
|
+
auth: 'token ghp_1234567890abcdef1234567890abcdef12345678'
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
const sanitized = (0, errorSanitizer_1.sanitizeError)(errorObj);
|
|
205
|
+
expect(sanitized.personalToken).toBe('[REDACTED]');
|
|
206
|
+
expect(sanitized.appToken).toBe('[REDACTED]');
|
|
207
|
+
expect(sanitized.finegrainedToken).toBe('[REDACTED]');
|
|
208
|
+
expect(sanitized.config.auth).toBe('[REDACTED]'); // "token <value>" pattern matches the whole thing
|
|
209
|
+
});
|
|
210
|
+
it('should handle mixed secrets in complex error objects', () => {
|
|
211
|
+
const error = new Error('Multiple services failed');
|
|
212
|
+
error.aws = {
|
|
213
|
+
accessKeyId: 'AKIAIOSFODNN7EXAMPLE',
|
|
214
|
+
secretAccessKey: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY',
|
|
215
|
+
sessionToken: 'aws_session_token_12345abcdef'
|
|
216
|
+
};
|
|
217
|
+
error.github = {
|
|
218
|
+
token: 'ghp_1234567890abcdef1234567890abcdef12345678'
|
|
219
|
+
};
|
|
220
|
+
error.nonSensitive = {
|
|
221
|
+
userId: 'user123',
|
|
222
|
+
timestamp: '2023-01-01T00:00:00Z'
|
|
223
|
+
};
|
|
224
|
+
const sanitized = (0, errorSanitizer_1.sanitizeError)(error);
|
|
225
|
+
// AWS credentials should be redacted
|
|
226
|
+
expect(sanitized.aws.accessKeyId).toBe('[REDACTED]');
|
|
227
|
+
expect(sanitized.aws.secretAccessKey).toBe('[REDACTED]');
|
|
228
|
+
expect(sanitized.aws.sessionToken).toBe('[REDACTED]');
|
|
229
|
+
// GitHub token should be redacted
|
|
230
|
+
expect(sanitized.github.token).toBe('[REDACTED]');
|
|
231
|
+
// Non-sensitive data should be preserved
|
|
232
|
+
expect(sanitized.nonSensitive.userId).toBe('user123');
|
|
233
|
+
expect(sanitized.nonSensitive.timestamp).toBe('2023-01-01T00:00:00Z');
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
//# sourceMappingURL=errorSanitizer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorSanitizer.test.js","sourceRoot":"","sources":["../../src/tracing/errorSanitizer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"methodTracing.d.ts","sourceRoot":"","sources":["../../src/tracing/methodTracing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,IAAI,EAAS,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"methodTracing.d.ts","sourceRoot":"","sources":["../../src/tracing/methodTracing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,IAAI,EAAS,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG3E;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,CA8CrI;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAC/B,IAAI,EACJ,MAAM,EACN,EAAE,EACF,MAAM,EACP,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,IAAI,CAAC;CACf,GAAG,OAAO,CAAC,CAAC,CAAC,CA+Bb;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAmBxH;AAiBD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,QASpF"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.addTracingToMethods = exports.executeTraced = exports.traceFunction = exports.traceMethod = void 0;
|
|
4
4
|
const api_1 = require("@opentelemetry/api");
|
|
5
|
+
const errorSanitizer_1 = require("./errorSanitizer");
|
|
5
6
|
/**
|
|
6
7
|
* helper function to wrap a class method with tracing
|
|
7
8
|
* @param className - The class name
|
|
@@ -35,7 +36,7 @@ function traceMethod(className, methodName, descriptor, tracer) {
|
|
|
35
36
|
return res;
|
|
36
37
|
})
|
|
37
38
|
.catch((err) => {
|
|
38
|
-
span.recordException(err);
|
|
39
|
+
span.recordException((0, errorSanitizer_1.sanitizeError)(err));
|
|
39
40
|
span.end();
|
|
40
41
|
throw err;
|
|
41
42
|
});
|
|
@@ -45,7 +46,7 @@ function traceMethod(className, methodName, descriptor, tracer) {
|
|
|
45
46
|
return result;
|
|
46
47
|
}
|
|
47
48
|
catch (err) {
|
|
48
|
-
span.recordException(err);
|
|
49
|
+
span.recordException((0, errorSanitizer_1.sanitizeError)(err));
|
|
49
50
|
span.end();
|
|
50
51
|
throw err;
|
|
51
52
|
}
|
|
@@ -68,7 +69,7 @@ function traceFunction({ name, tracer, fn, parent }) {
|
|
|
68
69
|
return res;
|
|
69
70
|
})
|
|
70
71
|
.catch((err) => {
|
|
71
|
-
span.recordException(err);
|
|
72
|
+
span.recordException((0, errorSanitizer_1.sanitizeError)(err));
|
|
72
73
|
span.end();
|
|
73
74
|
throw err;
|
|
74
75
|
});
|
|
@@ -77,7 +78,7 @@ function traceFunction({ name, tracer, fn, parent }) {
|
|
|
77
78
|
return result;
|
|
78
79
|
}
|
|
79
80
|
catch (err) {
|
|
80
|
-
span.recordException(err);
|
|
81
|
+
span.recordException((0, errorSanitizer_1.sanitizeError)(err));
|
|
81
82
|
span.end();
|
|
82
83
|
throw err;
|
|
83
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"methodTracing.js","sourceRoot":"","sources":["../../src/tracing/methodTracing.ts"],"names":[],"mappings":";;;AAAA,4CAA2E;
|
|
1
|
+
{"version":3,"file":"methodTracing.js","sourceRoot":"","sources":["../../src/tracing/methodTracing.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracedSocket.d.ts","sourceRoot":"","sources":["../../src/socket/tracedSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,MAAM,EAEP,MAAM,oBAAoB,CAAC;AAE5B,OAAO,SAAS,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"tracedSocket.d.ts","sourceRoot":"","sources":["../../src/socket/tracedSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,MAAM,EAEP,MAAM,oBAAoB,CAAC;AAE5B,OAAO,SAAS,MAAM,eAAe,CAAC;AAWtC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAmC9H,qBAAa,YAAY,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,OAAO,CACvH,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,MAAM,CAAS;gBAGrB,EAAE,EAAE,SAAS,EACb,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;QAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAC;KACpH;cAMa,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,EACpG,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC,EACvE,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,EACtC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAC1B,OAAO,CAAC,MAAM,CAAC;cAkCF,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC7D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASvG,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa;IAK/D,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKlE,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,IAAI;IAStF,OAAO,CAAC,QAAQ;IAQT,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;CAQpC"}
|