@leaflink/snitch 0.0.0-PR-53--b0ed16b → 0.0.0-PR-54--2552436
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/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/transports/datadog.d.ts +0 -9
- package/dist/transports/datadog.js +26 -29
- package/dist/transports/datadog.js.map +1 -1
- package/dist/transports/sentry.js +1 -8
- package/dist/transports/sentry.js.map +1 -1
- package/package.json +1 -2
- package/dist/transports/console.spec.d.ts +0 -1
- package/dist/transports/console.spec.js +0 -50
- package/dist/transports/console.spec.js.map +0 -1
- package/dist/transports/datadog.spec.d.ts +0 -1
- package/dist/transports/datadog.spec.js +0 -103
- package/dist/transports/datadog.spec.js.map +0 -1
- package/dist/transports/sentry.spec.d.ts +0 -1
- package/dist/transports/sentry.spec.js +0 -73
- package/dist/transports/sentry.spec.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -23,5 +23,5 @@ export declare class Logger {
|
|
|
23
23
|
declare const logger: Logger;
|
|
24
24
|
export default logger;
|
|
25
25
|
export { ConsoleTransport } from './transports/console.js';
|
|
26
|
-
export { DatadogTransport
|
|
26
|
+
export { DatadogTransport } from './transports/datadog.js';
|
|
27
27
|
export { SentryTransport } from './transports/sentry.js';
|
package/dist/index.js
CHANGED
|
@@ -41,6 +41,6 @@ export class Logger {
|
|
|
41
41
|
const logger = new Logger();
|
|
42
42
|
export default logger;
|
|
43
43
|
export { ConsoleTransport } from './transports/console.js';
|
|
44
|
-
export { DatadogTransport
|
|
44
|
+
export { DatadogTransport } from './transports/datadog.js';
|
|
45
45
|
export { SentryTransport } from './transports/sentry.js';
|
|
46
46
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAcF,MAAM,OAAO,MAAM;IACjB,UAAU,CAAc;IAExB,YAAY,IAAkC;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;IAC3C,CAAC;IAEO,IAAI,CAAC,KAAe,EAAE,OAAmB,EAAE,IAAc;QAC/D,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;YACvC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC5C,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;aACrC;SACF;IACH,CAAC;IAED,KAAK,CAAC,OAAmB,EAAE,IAAc;QACvC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,OAAmB,EAAE,IAAc;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,OAAmB,EAAE,IAAc;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,OAAmB,EAAE,IAAc;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAmB,EAAE,IAAc;QACvC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,SAAoB;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,eAAe;QACb,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;CACF;AAED,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAC5B,eAAe,MAAM,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAcF,MAAM,OAAO,MAAM;IACjB,UAAU,CAAc;IAExB,YAAY,IAAkC;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;IAC3C,CAAC;IAEO,IAAI,CAAC,KAAe,EAAE,OAAmB,EAAE,IAAc;QAC/D,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;YACvC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC5C,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;aACrC;SACF;IACH,CAAC;IAED,KAAK,CAAC,OAAmB,EAAE,IAAc;QACvC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,OAAmB,EAAE,IAAc;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,OAAmB,EAAE,IAAc;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,OAAmB,EAAE,IAAc;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAmB,EAAE,IAAc;QACvC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,SAAoB;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,eAAe;QACb,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;CACF;AAED,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAC5B,eAAe,MAAM,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -1,20 +1,11 @@
|
|
|
1
1
|
import type { datadogLogs } from '@datadog/browser-logs';
|
|
2
|
-
import type { DdLogs } from '@datadog/mobile-react-native';
|
|
3
2
|
import { LogFunction, LogLevel, Transport } from '../index.js';
|
|
4
3
|
export interface DatadogTransportOptions {
|
|
5
4
|
level?: LogLevel;
|
|
6
5
|
datadogLogsInstance: typeof datadogLogs;
|
|
7
6
|
}
|
|
8
|
-
export interface ReactNativeDatadogTransportOptions extends Omit<DatadogTransportOptions, 'datadogLogsInstance'> {
|
|
9
|
-
datadogLogsInstance: typeof DdLogs;
|
|
10
|
-
}
|
|
11
7
|
export declare class DatadogTransport implements Transport {
|
|
12
8
|
level: LogLevel;
|
|
13
9
|
log: LogFunction;
|
|
14
10
|
constructor(opts: DatadogTransportOptions);
|
|
15
11
|
}
|
|
16
|
-
export declare class ReactNativeDatadogTransport implements Transport {
|
|
17
|
-
level: LogLevel;
|
|
18
|
-
log: LogFunction;
|
|
19
|
-
constructor(opts: ReactNativeDatadogTransportOptions);
|
|
20
|
-
}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
function isEmpty(obj) {
|
|
2
|
+
for (const prop in obj) {
|
|
3
|
+
if (Object.hasOwn(obj, prop)) {
|
|
4
|
+
return false;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
1
9
|
export class DatadogTransport {
|
|
2
10
|
level;
|
|
3
11
|
log;
|
|
@@ -7,44 +15,33 @@ export class DatadogTransport {
|
|
|
7
15
|
// LogLevel maps directly to datadogLogsInstance logger methods
|
|
8
16
|
if (message instanceof Error) {
|
|
9
17
|
// Datadog logger has an optional third error param for exception handling
|
|
10
|
-
opts.datadogLogsInstance.logger[level](message.message, meta
|
|
18
|
+
opts.datadogLogsInstance.logger[level](message.message, isEmpty(meta)
|
|
19
|
+
? {}
|
|
20
|
+
: {
|
|
21
|
+
// Nested simply to avoid our custom meta properties mixing with datadog's built-in properties
|
|
22
|
+
extra: meta,
|
|
23
|
+
}, message);
|
|
11
24
|
}
|
|
12
25
|
else if (typeof message === 'string' && meta instanceof Error) {
|
|
13
26
|
opts.datadogLogsInstance.logger[level](message, {}, meta);
|
|
14
27
|
}
|
|
15
28
|
else if (typeof message === 'string') {
|
|
16
|
-
opts.datadogLogsInstance.logger[level](message, meta)
|
|
29
|
+
opts.datadogLogsInstance.logger[level](message, isEmpty(meta)
|
|
30
|
+
? {}
|
|
31
|
+
: {
|
|
32
|
+
// Nested simply to avoid our custom meta properties mixing with datadog's built-in properties
|
|
33
|
+
extra: meta,
|
|
34
|
+
});
|
|
17
35
|
}
|
|
18
36
|
else {
|
|
19
37
|
// Datadog requires a string for the message param. Our downstream usage currently provides
|
|
20
38
|
// either a string or an Error, but for future-proofing this just stringify the unknown object as message.
|
|
21
|
-
opts.datadogLogsInstance.logger[level](JSON.stringify(message), meta)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
level;
|
|
28
|
-
log;
|
|
29
|
-
constructor(opts) {
|
|
30
|
-
this.level = opts.level || 'info';
|
|
31
|
-
this.log = (message, meta = {}, level) => {
|
|
32
|
-
if (message instanceof Error) {
|
|
33
|
-
opts.datadogLogsInstance[level](message.message, message.name, message.message, message.stack, meta);
|
|
34
|
-
}
|
|
35
|
-
else if (typeof message === 'string') {
|
|
36
|
-
if (meta instanceof Error) {
|
|
37
|
-
opts.datadogLogsInstance[level](message, meta.name, meta.message, meta.stack);
|
|
38
|
-
}
|
|
39
|
-
else if (typeof meta === 'object') {
|
|
40
|
-
opts.datadogLogsInstance[level](message, meta);
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
opts.datadogLogsInstance[level](message, { meta });
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
opts.datadogLogsInstance[level](JSON.stringify(message), { meta });
|
|
39
|
+
opts.datadogLogsInstance.logger[level](JSON.stringify(message), isEmpty(meta)
|
|
40
|
+
? {}
|
|
41
|
+
: {
|
|
42
|
+
// Nested simply to avoid our custom meta properties mixing with datadog's built-in properties
|
|
43
|
+
extra: meta,
|
|
44
|
+
});
|
|
48
45
|
}
|
|
49
46
|
};
|
|
50
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../src/transports/datadog.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../src/transports/datadog.ts"],"names":[],"mappings":"AASA,SAAS,OAAO,CAAC,GAAW;IAC1B,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;QACtB,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,gBAAgB;IAC3B,KAAK,CAAW;IAChB,GAAG,CAAc;IAEjB,YAAY,IAA6B;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;QAClC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;YACvC,+DAA+D;YAC/D,IAAI,OAAO,YAAY,KAAK,EAAE;gBAC5B,0EAA0E;gBAC1E,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CACpC,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,IAAc,CAAC;oBACrB,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC;wBACE,8FAA8F;wBAC9F,KAAK,EAAE,IAAI;qBACZ,EACL,OAAO,CACR,CAAC;aACH;iBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,IAAI,YAAY,KAAK,EAAE;gBAC/D,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;aAC3D;iBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBACtC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CACpC,OAAO,EACP,OAAO,CAAC,IAAc,CAAC;oBACrB,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC;wBACE,8FAA8F;wBAC9F,KAAK,EAAE,IAAI;qBACZ,CACN,CAAC;aACH;iBAAM;gBACL,2FAA2F;gBAC3F,0GAA0G;gBAC1G,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CACpC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EACvB,OAAO,CAAC,IAAc,CAAC;oBACrB,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC;wBACE,8FAA8F;wBAC9F,KAAK,EAAE,IAAI;qBACZ,CACN,CAAC;aACH;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -41,14 +41,7 @@ export class SentryTransport {
|
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
43
|
if (typeof message === 'string') {
|
|
44
|
-
|
|
45
|
-
const originalMessage = meta.message;
|
|
46
|
-
meta.message = message;
|
|
47
|
-
opts.sentryInstance.captureException(meta, { extra: { originalMessage } });
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
opts.sentryInstance.captureMessage(message, meta);
|
|
51
|
-
}
|
|
44
|
+
opts.sentryInstance.captureMessage(message, meta);
|
|
52
45
|
}
|
|
53
46
|
else if (message instanceof Error) {
|
|
54
47
|
opts.sentryInstance.captureException(message, meta);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentry.js","sourceRoot":"","sources":["../../src/transports/sentry.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAG;IAC1B,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,OAAO;CACf,CAAC;AAmBF,MAAM,OAAO,eAAe;IAC1B,KAAK,CAAW;IAChB,GAAG,CAAc;IAEjB,YAAY,IAA4B;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC;QACnC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACrC,kEAAkE;YAClE,iGAAiG;YACjG,4FAA4F;YAC5F,8FAA8F;YAC9F,IACE,IAAI;gBACJ,OAAO,IAAI,KAAK,QAAQ;gBACxB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACpB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,EAChD;gBACA,6DAA6D;gBAC7D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,GAAI,IAAmB,IAAI,EAAE,CAAC;gBACtG,MAAM,WAAW,GAAG;oBAClB,GAAG,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,GAAG,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpE,CAAC;gBACF,MAAM,UAAU,GAAG;oBACjB,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC;oBACpC,KAAK,EAAE,WAAW;oBAClB,IAAI;oBACJ,QAAQ;oBACR,IAAI;oBACJ,WAAW;iBACZ,CAAC;gBAEF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;oBAC/B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;iBACzD;qBAAM,IAAI,OAAO,YAAY,KAAK,EAAE;oBACnC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;iBAC3D;gBACD,OAAO;aACR;YAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,IAAI,
|
|
1
|
+
{"version":3,"file":"sentry.js","sourceRoot":"","sources":["../../src/transports/sentry.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAG;IAC1B,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,OAAO;CACf,CAAC;AAmBF,MAAM,OAAO,eAAe;IAC1B,KAAK,CAAW;IAChB,GAAG,CAAc;IAEjB,YAAY,IAA4B;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC;QACnC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACrC,kEAAkE;YAClE,iGAAiG;YACjG,4FAA4F;YAC5F,8FAA8F;YAC9F,IACE,IAAI;gBACJ,OAAO,IAAI,KAAK,QAAQ;gBACxB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACpB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,EAChD;gBACA,6DAA6D;gBAC7D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,GAAI,IAAmB,IAAI,EAAE,CAAC;gBACtG,MAAM,WAAW,GAAG;oBAClB,GAAG,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,GAAG,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpE,CAAC;gBACF,MAAM,UAAU,GAAG;oBACjB,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC;oBACpC,KAAK,EAAE,WAAW;oBAClB,IAAI;oBACJ,QAAQ;oBACR,IAAI;oBACJ,WAAW;iBACZ,CAAC;gBAEF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;oBAC/B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;iBACzD;qBAAM,IAAI,OAAO,YAAY,KAAK,EAAE;oBACnC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;iBAC3D;gBACD,OAAO;aACR;YAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACnD;iBAAM,IAAI,OAAO,YAAY,KAAK,EAAE;gBACnC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACrD;iBAAM,IAAI,IAAI,YAAY,KAAK,EAAE;gBAChC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAClD;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;aACnE;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leaflink/snitch",
|
|
3
|
-
"version": "0.0.0-PR-
|
|
3
|
+
"version": "0.0.0-PR-54--2552436",
|
|
4
4
|
"description": "Front end logging inspired by winston.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -58,7 +58,6 @@
|
|
|
58
58
|
"@commitlint/cli": "^17.4.4",
|
|
59
59
|
"@commitlint/config-conventional": "^17.4.4",
|
|
60
60
|
"@datadog/browser-logs": "^4.39.0",
|
|
61
|
-
"@datadog/mobile-react-native": "^2.6.3",
|
|
62
61
|
"@vitest/coverage-c8": "^0.29.2",
|
|
63
62
|
"eslint": "^8.41.0",
|
|
64
63
|
"eslint-config-leaflink": "^1.3.1",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import logger, { ConsoleTransport } from '../index.js';
|
|
2
|
-
describe('console transport', () => {
|
|
3
|
-
beforeAll(() => {
|
|
4
|
-
logger.addTransport(new ConsoleTransport());
|
|
5
|
-
});
|
|
6
|
-
afterAll(() => {
|
|
7
|
-
logger.clearTransports();
|
|
8
|
-
});
|
|
9
|
-
it('should log error to console', () => {
|
|
10
|
-
const customErr = 'custom error';
|
|
11
|
-
const errorSpy = vi.spyOn(console, 'error');
|
|
12
|
-
logger.error(customErr);
|
|
13
|
-
expect(errorSpy).toHaveBeenCalledWith(customErr, '');
|
|
14
|
-
errorSpy.mockClear();
|
|
15
|
-
const customMeta = { meta: { extra: 'something' } };
|
|
16
|
-
logger.error(customErr, customMeta);
|
|
17
|
-
expect(errorSpy).toHaveBeenCalledWith(customErr, customMeta);
|
|
18
|
-
});
|
|
19
|
-
it('should log debug to console', () => {
|
|
20
|
-
const customMsg = 'custom debug';
|
|
21
|
-
const debugSpy = vi.spyOn(console, 'debug');
|
|
22
|
-
logger['debug'](customMsg);
|
|
23
|
-
expect(debugSpy).toHaveBeenCalledWith(customMsg, '');
|
|
24
|
-
debugSpy.mockClear();
|
|
25
|
-
const customMeta = { meta: { extra: 'something' } };
|
|
26
|
-
logger['debug'](customMsg, customMeta);
|
|
27
|
-
expect(debugSpy).toHaveBeenCalledWith(customMsg, customMeta);
|
|
28
|
-
});
|
|
29
|
-
it('should log warn to console', () => {
|
|
30
|
-
const customWarn = 'custom warn';
|
|
31
|
-
const debugSpy = vi.spyOn(console, 'warn');
|
|
32
|
-
logger.warn(customWarn);
|
|
33
|
-
expect(debugSpy).toHaveBeenCalledWith(customWarn, '');
|
|
34
|
-
debugSpy.mockClear();
|
|
35
|
-
const customMeta = { meta: { extra: 'something' } };
|
|
36
|
-
logger.warn(customWarn, customMeta);
|
|
37
|
-
expect(debugSpy).toHaveBeenCalledWith(customWarn, customMeta);
|
|
38
|
-
});
|
|
39
|
-
it('should log to console', () => {
|
|
40
|
-
const customMsg = 'custom log';
|
|
41
|
-
const logSpy = vi.spyOn(console, 'log');
|
|
42
|
-
logger.log(customMsg);
|
|
43
|
-
expect(logSpy).toHaveBeenCalledWith(customMsg, '');
|
|
44
|
-
logSpy.mockClear();
|
|
45
|
-
const customMeta = { meta: { extra: 'something' } };
|
|
46
|
-
logger.log(customMsg, customMeta);
|
|
47
|
-
expect(logSpy).toHaveBeenCalledWith(customMsg, customMeta);
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
//# sourceMappingURL=console.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"console.spec.js","sourceRoot":"","sources":["../../src/transports/console.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import logger, { DatadogTransport, ReactNativeDatadogTransport } from '../index.js';
|
|
2
|
-
const DdInstance = {
|
|
3
|
-
logger: {
|
|
4
|
-
error: vi.fn(),
|
|
5
|
-
warn: vi.fn(),
|
|
6
|
-
info: vi.fn(),
|
|
7
|
-
debug: vi.fn(),
|
|
8
|
-
},
|
|
9
|
-
};
|
|
10
|
-
describe('datadog web transport', () => {
|
|
11
|
-
beforeAll(() => {
|
|
12
|
-
logger.addTransport(new DatadogTransport({ datadogLogsInstance: DdInstance, level: 'debug' }));
|
|
13
|
-
});
|
|
14
|
-
afterEach(() => {
|
|
15
|
-
Object.values(DdInstance.logger).forEach((level) => level.mockClear());
|
|
16
|
-
});
|
|
17
|
-
afterAll(() => {
|
|
18
|
-
logger.clearTransports();
|
|
19
|
-
});
|
|
20
|
-
it.each(['info', 'warn', 'debug', 'error'])('should log %s to dd', (level) => {
|
|
21
|
-
const customErr = 'custom error';
|
|
22
|
-
logger[level](customErr);
|
|
23
|
-
expect(DdInstance.logger[level]).toHaveBeenCalledWith(customErr, {});
|
|
24
|
-
});
|
|
25
|
-
it('should log error instance correctly as first arg', () => {
|
|
26
|
-
const customErr = Error('ERR');
|
|
27
|
-
logger.error(customErr);
|
|
28
|
-
expect(DdInstance.logger.error).toHaveBeenCalledWith(customErr.message, {}, customErr);
|
|
29
|
-
});
|
|
30
|
-
it('should log error instance correctly as first arg with meta', () => {
|
|
31
|
-
const customErr = Error('ERR');
|
|
32
|
-
const customMeta = { meta: { extra: 'something' } };
|
|
33
|
-
logger.error(customErr, customMeta);
|
|
34
|
-
expect(DdInstance.logger.error).toHaveBeenCalledWith(customErr.message, customMeta, customErr);
|
|
35
|
-
});
|
|
36
|
-
it('should log correctly with string as first arg and error isntance as second', () => {
|
|
37
|
-
const customMsg = 'message';
|
|
38
|
-
const customErr = Error('ERR');
|
|
39
|
-
logger.error(customMsg, customErr);
|
|
40
|
-
expect(DdInstance.logger.error).toHaveBeenCalledWith(customMsg, {}, customErr);
|
|
41
|
-
});
|
|
42
|
-
it('should log correctly when first arg is a string and no second arg is passed', () => {
|
|
43
|
-
const customMsg = 'message';
|
|
44
|
-
logger.error(customMsg);
|
|
45
|
-
expect(DdInstance.logger.error).toHaveBeenCalledWith(customMsg, {});
|
|
46
|
-
});
|
|
47
|
-
it('should log correctly when first arg is not a string', () => {
|
|
48
|
-
const customArg = [1, 2, 3];
|
|
49
|
-
logger.error(customArg);
|
|
50
|
-
expect(DdInstance.logger.error).toHaveBeenCalledWith('[' + customArg.join(',') + ']', {});
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
const rnDdInstance = {
|
|
54
|
-
error: vi.fn(),
|
|
55
|
-
info: vi.fn(),
|
|
56
|
-
debug: vi.fn(),
|
|
57
|
-
warn: vi.fn(),
|
|
58
|
-
};
|
|
59
|
-
describe('datadog react native transport', () => {
|
|
60
|
-
beforeAll(() => {
|
|
61
|
-
logger.addTransport(new ReactNativeDatadogTransport({ datadogLogsInstance: rnDdInstance, level: 'debug' }));
|
|
62
|
-
});
|
|
63
|
-
afterEach(() => {
|
|
64
|
-
Object.values(rnDdInstance).forEach((level) => level.mockClear());
|
|
65
|
-
});
|
|
66
|
-
afterAll(() => {
|
|
67
|
-
logger.clearTransports();
|
|
68
|
-
});
|
|
69
|
-
it.each `
|
|
70
|
-
meta | expected
|
|
71
|
-
${undefined} | ${{}}
|
|
72
|
-
`('should log error correctly if first argument is an Error', ({ meta, expected }) => {
|
|
73
|
-
const customError = Error('custom err');
|
|
74
|
-
logger.error(customError, meta);
|
|
75
|
-
expect(rnDdInstance.error).toHaveBeenCalledWith(customError.message, customError.name, customError.message, customError.stack, expected);
|
|
76
|
-
});
|
|
77
|
-
it('should log error correctly if first argument is not an Error nor string', () => {
|
|
78
|
-
const customMeta = 'string meta';
|
|
79
|
-
logger.error([1, 2], 'string meta');
|
|
80
|
-
expect(rnDdInstance.error).toHaveBeenCalledWith('[1,2]', { meta: customMeta });
|
|
81
|
-
});
|
|
82
|
-
describe('when message is a string', () => {
|
|
83
|
-
it('should log an error correctly when meta is an Error', () => {
|
|
84
|
-
const customMessage = 'my message';
|
|
85
|
-
const customError = Error('custom error');
|
|
86
|
-
logger.error(customMessage, customError);
|
|
87
|
-
expect(rnDdInstance.error).toHaveBeenCalledWith(customMessage, customError.name, customError.message, customError.stack);
|
|
88
|
-
});
|
|
89
|
-
it('should log an error message correctly when meta is an object', () => {
|
|
90
|
-
const customMessage = 'custom msg';
|
|
91
|
-
const customMeta = { extra: 'val' };
|
|
92
|
-
logger.error(customMessage, customMeta);
|
|
93
|
-
expect(rnDdInstance.error).toHaveBeenCalledWith(customMessage, customMeta);
|
|
94
|
-
});
|
|
95
|
-
it('should log a message correctly when meta is not an object', () => {
|
|
96
|
-
const customMessage = 'custom msg';
|
|
97
|
-
const customMeta = 'string';
|
|
98
|
-
logger.error(customMessage, customMeta);
|
|
99
|
-
expect(rnDdInstance.error).toHaveBeenCalledWith(customMessage, { meta: customMeta });
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
//# sourceMappingURL=datadog.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"datadog.spec.js","sourceRoot":"","sources":["../../src/transports/datadog.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import logger, { SentryTransport } from '../index.js';
|
|
2
|
-
const sentryInstance = {
|
|
3
|
-
captureMessage: vi.fn(),
|
|
4
|
-
captureException: vi.fn(),
|
|
5
|
-
};
|
|
6
|
-
describe('sentry transport', () => {
|
|
7
|
-
beforeAll(() => {
|
|
8
|
-
logger.addTransport(new SentryTransport({ sentryInstance }));
|
|
9
|
-
});
|
|
10
|
-
afterEach(() => {
|
|
11
|
-
Object.values(sentryInstance).forEach((val) => val.mockClear());
|
|
12
|
-
});
|
|
13
|
-
afterAll(() => {
|
|
14
|
-
logger.clearTransports();
|
|
15
|
-
});
|
|
16
|
-
it.each([undefined, 'meta'])('should capture message when first arg is a string', (meta) => {
|
|
17
|
-
const customMsg = 'message';
|
|
18
|
-
logger.error(customMsg, meta);
|
|
19
|
-
expect(sentryInstance.captureMessage).toHaveBeenCalledWith(customMsg, meta);
|
|
20
|
-
expect(sentryInstance.captureException).not.toHaveBeenCalled();
|
|
21
|
-
});
|
|
22
|
-
it.each([undefined, 'meta'])('should capture exception when first arg is an Error', (meta) => {
|
|
23
|
-
const customMsg = 'msg';
|
|
24
|
-
const customErr = Error(customMsg);
|
|
25
|
-
logger.error(customErr, meta);
|
|
26
|
-
expect(sentryInstance.captureException).toHaveBeenCalledWith(customErr, meta);
|
|
27
|
-
expect(sentryInstance.captureMessage).not.toHaveBeenCalled();
|
|
28
|
-
});
|
|
29
|
-
it.each([null, [], () => { }])('should capture exception when second arg is an Error', (message) => {
|
|
30
|
-
const customErr = Error('err');
|
|
31
|
-
logger.error(message, customErr);
|
|
32
|
-
expect(sentryInstance.captureException).toHaveBeenCalledWith(customErr, customErr);
|
|
33
|
-
expect(sentryInstance.captureMessage).not.toHaveBeenCalled();
|
|
34
|
-
});
|
|
35
|
-
it('should capture message when args fall into catch all', () => {
|
|
36
|
-
logger.error([], []);
|
|
37
|
-
expect(sentryInstance.captureMessage).toHaveBeenCalledWith('[]', []);
|
|
38
|
-
expect(sentryInstance.captureException).not.toHaveBeenCalled();
|
|
39
|
-
});
|
|
40
|
-
it('should capture message when first arg is string and second arg is properly filled', () => {
|
|
41
|
-
const customMessage = 'Something happened';
|
|
42
|
-
const customMeta = {
|
|
43
|
-
tags: { type: 'buyer' },
|
|
44
|
-
extra: { filters: { id: 1 } },
|
|
45
|
-
contexts: { order: { id: 2 } },
|
|
46
|
-
};
|
|
47
|
-
logger.error(customMessage, customMeta);
|
|
48
|
-
expect(sentryInstance.captureMessage).toHaveBeenCalledWith(customMessage, expect.objectContaining(customMeta));
|
|
49
|
-
expect(sentryInstance.captureException).not.toHaveBeenCalled();
|
|
50
|
-
});
|
|
51
|
-
it('should capture exception when first arg is an Error and second arg is properly filled', () => {
|
|
52
|
-
const customErr = Error('Something happened');
|
|
53
|
-
const customMeta = {
|
|
54
|
-
tags: { type: 'buyer' },
|
|
55
|
-
extra: { filters: { id: 1 } },
|
|
56
|
-
contexts: { order: { id: 2 } },
|
|
57
|
-
};
|
|
58
|
-
logger.error(customErr, customMeta);
|
|
59
|
-
expect(sentryInstance.captureException).toHaveBeenCalledWith(customErr, expect.objectContaining(customMeta));
|
|
60
|
-
expect(sentryInstance.captureMessage).not.toHaveBeenCalled();
|
|
61
|
-
});
|
|
62
|
-
it('should capture an exception with custom message when first arg is a string but second is an Error', () => {
|
|
63
|
-
const customMessage = 'My custom message';
|
|
64
|
-
const customErrorMessage = 'My custom error';
|
|
65
|
-
const customError = Error(customErrorMessage);
|
|
66
|
-
expect(customError.message).toBe(customErrorMessage);
|
|
67
|
-
logger.error(customMessage, customError);
|
|
68
|
-
expect(customError.message).toBe(customMessage);
|
|
69
|
-
expect(sentryInstance.captureException).toHaveBeenCalledWith(customError, expect.objectContaining({ extra: { originalMessage: customErrorMessage } }));
|
|
70
|
-
expect(sentryInstance.captureMessage).not.toHaveBeenCalled();
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
//# sourceMappingURL=sentry.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sentry.spec.js","sourceRoot":"","sources":["../../src/transports/sentry.spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,cAAc,GAAG;IACrB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;IACvB,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE;CAC1B,CAAC;AAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,YAAY,CAAC,IAAI,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE;QACZ,MAAM,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,mDAAmD,EAAE,CAAC,IAAI,EAAE,EAAE;QACzF,MAAM,SAAS,GAAG,SAAS,CAAC;QAE5B,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE9B,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5E,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,qDAAqD,EAAE,CAAC,IAAI,EAAE,EAAE;QAC3F,MAAM,SAAS,GAAG,KAAK,CAAC;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QAEnC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE9B,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9E,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,sDAAsD,EAAE,CAAC,OAAO,EAAE,EAAE;QAChG,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEjC,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnF,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAErB,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;QAC3F,MAAM,aAAa,GAAG,oBAAoB,CAAC;QAC3C,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YACvB,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;YAC7B,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;SAC/B,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAExC,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/G,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uFAAuF,EAAE,GAAG,EAAE;QAC/F,MAAM,SAAS,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YACvB,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;YAC7B,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;SAC/B,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAEpC,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7G,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mGAAmG,EAAE,GAAG,EAAE;QAC3G,MAAM,aAAa,GAAG,mBAAmB,CAAC;QAC1C,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;QAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAE9C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAErD,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAEzC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEhD,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC1D,WAAW,EACX,MAAM,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAC5E,CAAC;QACF,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|