@crimson-education/browser-logger 5.0.0-beta.18 → 5.0.0-beta.19
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/lib/reporters/amplifyReporter.d.ts.map +1 -1
- package/lib/reporters/amplifyReporter.js +23 -42
- package/lib/reporters/amplifyReporter.js.map +1 -1
- package/package.json +5 -5
- package/lib/logger/index.test.d.ts +0 -2
- package/lib/logger/index.test.d.ts.map +0 -1
- package/lib/logger/index.test.js +0 -58
- package/lib/logger/index.test.js.map +0 -1
- package/lib/reporters/amplifyReporter.test.d.ts +0 -2
- package/lib/reporters/amplifyReporter.test.d.ts.map +0 -1
- package/lib/reporters/amplifyReporter.test.js +0 -48
- package/lib/reporters/amplifyReporter.test.js.map +0 -1
- package/lib/utils.test.d.ts +0 -2
- package/lib/utils.test.d.ts.map +0 -1
- package/lib/utils.test.js +0 -30
- package/lib/utils.test.js.map +0 -1
- package/src/index.ts +0 -64
- package/src/logger/consoleTransport.ts +0 -101
- package/src/logger/datadogTransport.ts +0 -20
- package/src/logger/index.test.ts +0 -68
- package/src/logger/index.ts +0 -139
- package/src/logger/utils.ts +0 -28
- package/src/reporters/amplifyReporter.test.ts +0 -61
- package/src/reporters/amplifyReporter.ts +0 -476
- package/src/reporters/datadogReporter.ts +0 -359
- package/src/reporters/gtmReporter.ts +0 -74
- package/src/reporters/index.ts +0 -232
- package/src/reporters/logReporter.ts +0 -86
- package/src/types/index.ts +0 -2
- package/src/types/logger.ts +0 -85
- package/src/types/reporter.ts +0 -180
- package/src/utils.test.ts +0 -32
- package/src/utils.ts +0 -42
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amplifyReporter.d.ts","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,SAAS,EACT,QAAQ,EAER,kBAAkB,EAGlB,WAAW,EACZ,MAAM,UAAU,CAAC;AAMlB,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AAE7D,KAAK,sBAAsB,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"amplifyReporter.d.ts","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,SAAS,EACT,QAAQ,EAER,kBAAkB,EAGlB,WAAW,EACZ,MAAM,UAAU,CAAC;AAMlB,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AAE7D,KAAK,sBAAsB,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAoJ/D,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,eAAe,CAAC,CAAC,MAAM,EAAE,sBAAsB,GAAG,QAAQ,GAAG,SAAS,CAAC;IAEvE;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,SAAS,CAAC,EAAE,8BAA8B,CAAC;CAC5C;AAED;;;;GAIG;AACH,KAAK,8BAA8B,GAAG;IACpC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,qBAAqB,GAAG,SAAS,CA0F3F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,UAAO,GAAG,YAAY,CAqBhG;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,SAAS,GAAE,MAAM,GAAG,SAAqB,EACzC,WAAW,UAAO,GACjB,YAAY,CA2Bd"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { identifyUser, record } from '@aws-amplify/analytics';
|
|
2
2
|
import { logger } from '../logger';
|
|
3
3
|
// Note: fetchAuthSession was previously imported but unused; removing to satisfy linter
|
|
4
|
-
import { Amplify } from 'aws-amplify';
|
|
4
|
+
import { Amplify } from '@aws-amplify/core';
|
|
5
5
|
// Auto-tracking implementation for Gen2
|
|
6
6
|
class AmplifyAutoTracker {
|
|
7
7
|
config;
|
|
@@ -26,11 +26,7 @@ class AmplifyAutoTracker {
|
|
|
26
26
|
});
|
|
27
27
|
// Page view tracking
|
|
28
28
|
if (this.config.autoTrackPageViews) {
|
|
29
|
-
|
|
30
|
-
// Using setTimeout(0) to defer to the next event loop tick
|
|
31
|
-
setTimeout(() => {
|
|
32
|
-
this.trackPageView();
|
|
33
|
-
}, 0);
|
|
29
|
+
this.trackPageView();
|
|
34
30
|
// Track route changes for SPAs
|
|
35
31
|
let currentUrl = window.location.href;
|
|
36
32
|
const observer = new MutationObserver(() => {
|
|
@@ -58,18 +54,13 @@ class AmplifyAutoTracker {
|
|
|
58
54
|
...this.getAutoTrackMetadata('pageView'),
|
|
59
55
|
},
|
|
60
56
|
};
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
logger.warn('Failed to record page view event', { error });
|
|
72
|
-
}
|
|
57
|
+
record({
|
|
58
|
+
name: pageViewEvent.message,
|
|
59
|
+
attributes: asAttributeMap({
|
|
60
|
+
...this.allMetadata,
|
|
61
|
+
...pageViewEvent.metadata,
|
|
62
|
+
}, false),
|
|
63
|
+
});
|
|
73
64
|
}
|
|
74
65
|
trackSessionState() {
|
|
75
66
|
const sessionDuration = Date.now() - this.sessionStartTime;
|
|
@@ -81,18 +72,13 @@ class AmplifyAutoTracker {
|
|
|
81
72
|
...this.getAutoTrackMetadata('session'),
|
|
82
73
|
},
|
|
83
74
|
};
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
logger.warn('Failed to record session state event', { error });
|
|
95
|
-
}
|
|
75
|
+
record({
|
|
76
|
+
name: sessionEvent.message,
|
|
77
|
+
attributes: asAttributeMap({
|
|
78
|
+
...this.allMetadata,
|
|
79
|
+
...sessionEvent.metadata,
|
|
80
|
+
}, false),
|
|
81
|
+
});
|
|
96
82
|
}
|
|
97
83
|
setupInteractionTracking() {
|
|
98
84
|
const selectorPrefix = this.config.selectorPrefix ?? 'data-analytics-';
|
|
@@ -117,18 +103,13 @@ class AmplifyAutoTracker {
|
|
|
117
103
|
...this.getAutoTrackMetadata('event'),
|
|
118
104
|
},
|
|
119
105
|
};
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
catch (error) {
|
|
130
|
-
logger.warn('Failed to record interaction event', { error });
|
|
131
|
-
}
|
|
106
|
+
record({
|
|
107
|
+
name: interactionEvent.message,
|
|
108
|
+
attributes: asAttributeMap({
|
|
109
|
+
...this.allMetadata,
|
|
110
|
+
...interactionEvent.metadata,
|
|
111
|
+
}, false),
|
|
112
|
+
});
|
|
132
113
|
});
|
|
133
114
|
}
|
|
134
115
|
getAutoTrackMetadata(source) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amplifyReporter.js","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAc9D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,wFAAwF;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"amplifyReporter.js","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crimson-education/browser-logger",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.19",
|
|
4
4
|
"description": "An abstract logger and reporting utility for browser environments",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"prepack": "npm run build",
|
|
@@ -28,11 +28,12 @@
|
|
|
28
28
|
},
|
|
29
29
|
"homepage": "https://github.com/crimson-education/browser-logger#readme",
|
|
30
30
|
"dependencies": {
|
|
31
|
+
"@aws-amplify/analytics": "7.0.90",
|
|
32
|
+
"@aws-amplify/core": "6.15.0",
|
|
31
33
|
"@aws-sdk/client-cognito-identity": "^3.844.0",
|
|
32
34
|
"@aws-sdk/protocol-http": "^3.370.0",
|
|
33
35
|
"@datadog/browser-logs": "^6.13.0",
|
|
34
|
-
"@datadog/browser-rum": "^6.13.0"
|
|
35
|
-
"aws-amplify": "^6.15.9"
|
|
36
|
+
"@datadog/browser-rum": "^6.13.0"
|
|
36
37
|
},
|
|
37
38
|
"devDependencies": {
|
|
38
39
|
"@crimson-education/eslint-config": "^2.1.0",
|
|
@@ -46,8 +47,7 @@
|
|
|
46
47
|
"typescript": "5.1.6"
|
|
47
48
|
},
|
|
48
49
|
"files": [
|
|
49
|
-
"lib"
|
|
50
|
-
"src"
|
|
50
|
+
"lib"
|
|
51
51
|
],
|
|
52
52
|
"main": "lib/index.js"
|
|
53
53
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/logger/index.test.ts"],"names":[],"mappings":""}
|
package/lib/logger/index.test.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { createLogger, setLogLevel as setGlobalLogLevel, logTransports, consoleTransport } from '.';
|
|
2
|
-
import { init } from '..';
|
|
3
|
-
import { addMetadata, setUser } from '../reporters';
|
|
4
|
-
import { LogLevel } from '../types';
|
|
5
|
-
// This isn't actually asserting anything.
|
|
6
|
-
// But it ensures that the logs look correct, and no errors get thrown.
|
|
7
|
-
describe('logger', () => {
|
|
8
|
-
const logger = createLogger({
|
|
9
|
-
metadata: {
|
|
10
|
-
service: 'test',
|
|
11
|
-
},
|
|
12
|
-
});
|
|
13
|
-
// Manually set the log transports.
|
|
14
|
-
logTransports.length = 0;
|
|
15
|
-
const transport = consoleTransport({
|
|
16
|
-
// So we can see everything.
|
|
17
|
-
ignoreMetadataPatterns: [],
|
|
18
|
-
});
|
|
19
|
-
logTransports.push(transport);
|
|
20
|
-
it('should log', async () => {
|
|
21
|
-
logger.log({
|
|
22
|
-
level: 'info',
|
|
23
|
-
message: 'data',
|
|
24
|
-
});
|
|
25
|
-
logger.log({ data: 'obj' });
|
|
26
|
-
logger.log(LogLevel.Debug, 'level, message', { data: 'obj' });
|
|
27
|
-
logger.log(LogLevel.Debug, 'level, message, metadata', { data: 'obj' });
|
|
28
|
-
init({
|
|
29
|
-
service: 'test-service',
|
|
30
|
-
environment: 'test',
|
|
31
|
-
version: 'no-version',
|
|
32
|
-
defaultMetadata: {
|
|
33
|
-
application: 'test',
|
|
34
|
-
},
|
|
35
|
-
});
|
|
36
|
-
const infoLogger = logger.child({ isLevel: 'info' });
|
|
37
|
-
infoLogger.info('info call, message');
|
|
38
|
-
infoLogger.info('info call, message, metadata', { data: 'metadataobj' });
|
|
39
|
-
const timer = logger.startTimer();
|
|
40
|
-
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
41
|
-
timer.done({ message: 'timer done', metadata: { id: 1 } });
|
|
42
|
-
setGlobalLogLevel(LogLevel.Info);
|
|
43
|
-
addMetadata({ global: 'metadata' });
|
|
44
|
-
logger.debug('You should not see this');
|
|
45
|
-
logger.info('You should see this with { global: "metadata" }');
|
|
46
|
-
setGlobalLogLevel(null);
|
|
47
|
-
setUser({
|
|
48
|
-
id: '123',
|
|
49
|
-
email: 'test@example.com',
|
|
50
|
-
});
|
|
51
|
-
logger.debug('debug call, user metadata');
|
|
52
|
-
transport.logLevel = LogLevel.Info;
|
|
53
|
-
logger.debug('You should not see this');
|
|
54
|
-
logger.info('You should see this');
|
|
55
|
-
transport.logLevel = undefined;
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
//# sourceMappingURL=index.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/logger/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"amplifyReporter.test.d.ts","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { asAttributeMap } from './amplifyReporter';
|
|
2
|
-
describe('amplifyReporter', () => {
|
|
3
|
-
it('should convert all attribute values to arrays of strings', () => {
|
|
4
|
-
const testMetadata = { a: 'a', d: ['e', 'f'] };
|
|
5
|
-
const attributeMap = asAttributeMap(testMetadata);
|
|
6
|
-
expect(attributeMap.a).toEqual(['a']);
|
|
7
|
-
expect(attributeMap.d).toEqual(['e', 'f']);
|
|
8
|
-
});
|
|
9
|
-
it('should handle undefined / null attributes', () => {
|
|
10
|
-
const testMetadata = { a: null, d: undefined };
|
|
11
|
-
const attributeMap = asAttributeMap(testMetadata);
|
|
12
|
-
expect(attributeMap.a).toBeNull();
|
|
13
|
-
expect(attributeMap.d).toBeNull();
|
|
14
|
-
});
|
|
15
|
-
it('should flatten hierarchies', () => {
|
|
16
|
-
const testMetadata = { foo: { bar: 'baz' } };
|
|
17
|
-
const attributeMap = asAttributeMap(testMetadata);
|
|
18
|
-
expect(attributeMap['foo.bar']).toEqual(['baz']);
|
|
19
|
-
});
|
|
20
|
-
it('should stringify non-string array members', () => {
|
|
21
|
-
const testMetadata = { foo: 5, bar: [{ baz: 'maz' }] };
|
|
22
|
-
const attributeMap = asAttributeMap(testMetadata);
|
|
23
|
-
expect(attributeMap.foo).toEqual(['5']);
|
|
24
|
-
expect(typeof attributeMap.bar?.[0]).toEqual('string');
|
|
25
|
-
});
|
|
26
|
-
it('should truncate attribute names', () => {
|
|
27
|
-
const testMetadata = { thisIsAVeryVeryLongAttributeNameThatNeedsToBeTruncated: 5 };
|
|
28
|
-
const attributeMap = asAttributeMap(testMetadata);
|
|
29
|
-
expect(attributeMap.___VeryVeryLongAttributeNameThatNeedsToBeTruncated).toEqual(['5']);
|
|
30
|
-
});
|
|
31
|
-
it('should truncate attribute values', () => {
|
|
32
|
-
const testMetadata = {
|
|
33
|
-
a: 'ThisIsAVeryLongStringThatNeedsToBeTruncatedTo100CharsOrElseThereWillBeAProblemWithSendingTheBeautifulDataToPinpoint',
|
|
34
|
-
};
|
|
35
|
-
const attributeMap = asAttributeMap(testMetadata);
|
|
36
|
-
expect(attributeMap.a).toEqual([
|
|
37
|
-
'ThisIsAVeryLongStringThatNeedsToBeTruncatedTo100CharsOrElseThereWillBeAProblemWithSendingTheBeautifu',
|
|
38
|
-
]);
|
|
39
|
-
});
|
|
40
|
-
it('should not group values into arrays when groupValues===false', () => {
|
|
41
|
-
const testMetadata = {
|
|
42
|
-
a: '5',
|
|
43
|
-
};
|
|
44
|
-
const attributeMap = asAttributeMap(testMetadata, false);
|
|
45
|
-
expect(attributeMap.a).toEqual('5');
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
//# sourceMappingURL=amplifyReporter.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"amplifyReporter.test.js","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.test.ts"],"names":[],"mappings":"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"}
|
package/lib/utils.test.d.ts
DELETED
package/lib/utils.test.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../src/utils.test.ts"],"names":[],"mappings":""}
|
package/lib/utils.test.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { filterReporterMetadata } from './utils';
|
|
2
|
-
describe('utils', () => {
|
|
3
|
-
describe('filterReporterMetadata', () => {
|
|
4
|
-
it('should remove attributes which match the ignore patterns', () => {
|
|
5
|
-
const inputAttributeMap = {
|
|
6
|
-
includeme: '5',
|
|
7
|
-
excludeme: 'false',
|
|
8
|
-
differentProp: 'boo',
|
|
9
|
-
deep: {
|
|
10
|
-
includeme: '5',
|
|
11
|
-
excludeme: 'false',
|
|
12
|
-
deepExcludeStr: 'boo',
|
|
13
|
-
deepExcludeRegex: 'boo',
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
|
-
const filtered = filterReporterMetadata(inputAttributeMap, {
|
|
17
|
-
ignoreMetadataPatterns: [/excludeme/g, /Prop/g, 'deep.deepExcludeStr', /deep\.deepExcludeRegex/g],
|
|
18
|
-
});
|
|
19
|
-
expect(filtered.includeme).toBeTruthy();
|
|
20
|
-
expect(filtered.excludeme).toBeFalsy();
|
|
21
|
-
expect(filtered.differentProp).toBeFalsy();
|
|
22
|
-
// deep
|
|
23
|
-
expect(filtered.deep.includeme).toBeTruthy();
|
|
24
|
-
expect(filtered.deep.excludeme).toBeFalsy();
|
|
25
|
-
expect(filtered.deep.deepExcludeStr).toBeFalsy();
|
|
26
|
-
expect(filtered.deep.deepExcludeRegex).toBeFalsy();
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
//# sourceMappingURL=utils.test.js.map
|
package/lib/utils.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../src/utils.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,MAAM,iBAAiB,GAAG;gBACxB,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,OAAO;gBAClB,aAAa,EAAE,KAAK;gBACpB,IAAI,EAAE;oBACJ,SAAS,EAAE,GAAG;oBACd,SAAS,EAAE,OAAO;oBAClB,cAAc,EAAE,KAAK;oBACrB,gBAAgB,EAAE,KAAK;iBACxB;aACF,CAAC;YAEF,MAAM,QAAQ,GAAG,sBAAsB,CAAC,iBAAiB,EAAE;gBACzD,sBAAsB,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,CAAC;aAClG,CAAC,CAAC;YACH,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC;YAE3C,OAAO;YACP,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;YAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC;YAC5C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,EAAE,CAAC;YACjD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/src/index.ts
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { ReporterConfigurations, ServiceInfo } from './types';
|
|
2
|
-
import { setLogLevel } from './logger';
|
|
3
|
-
import { addMetadata, reporters, setEventLevel } from './reporters';
|
|
4
|
-
import { gtmReporter } from './reporters/gtmReporter';
|
|
5
|
-
import { amplifyReporter } from './reporters/amplifyReporter';
|
|
6
|
-
import { datadogReporter } from './reporters/datadogReporter';
|
|
7
|
-
import { logReporter } from './reporters/logReporter';
|
|
8
|
-
|
|
9
|
-
export * from './types';
|
|
10
|
-
export * from './reporters';
|
|
11
|
-
export * from './logger';
|
|
12
|
-
|
|
13
|
-
export type LoggerConfig = ServiceInfo & { reporters?: ReporterConfigurations };
|
|
14
|
-
|
|
15
|
-
let initialized = false;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Initializes the logger and reporters.
|
|
19
|
-
* @param config Reporter config options.
|
|
20
|
-
*/
|
|
21
|
-
export function init(config: LoggerConfig) {
|
|
22
|
-
// Some reporters don't like being initialized multiple times.
|
|
23
|
-
if (initialized) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
initialized = true;
|
|
27
|
-
|
|
28
|
-
// Log Reporter enabled by default.
|
|
29
|
-
const logReporterConfig = config.reporters?.log ?? true;
|
|
30
|
-
if (logReporterConfig !== false) {
|
|
31
|
-
reporters['log'] = logReporter(config, typeof logReporterConfig === 'boolean' ? {} : logReporterConfig);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
if (config.reporters?.datadog) {
|
|
35
|
-
reporters['datadog'] = datadogReporter(config, config.reporters.datadog);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
if (config.reporters?.amplify) {
|
|
39
|
-
reporters['amplify'] = amplifyReporter(config, config.reporters.amplify);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (config.reporters?.gtm) {
|
|
43
|
-
reporters['gtm'] = gtmReporter(config, typeof config.reporters.gtm === 'boolean' ? {} : config.reporters.gtm);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const defaultMetadata = {
|
|
47
|
-
...(config.defaultMetadata ?? {}),
|
|
48
|
-
service: config.service,
|
|
49
|
-
environment: config.environment,
|
|
50
|
-
version: config.version,
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
// Sets the global log level, if specified.
|
|
54
|
-
if (config.logLevel) {
|
|
55
|
-
setLogLevel(config.logLevel);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// Sets the global event level, if specified.
|
|
59
|
-
if (config.eventLevel) {
|
|
60
|
-
setEventLevel(config.eventLevel);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
addMetadata(defaultMetadata);
|
|
64
|
-
}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { ILogTransport, LogLevel, LogTransportConfigBase } from '../types';
|
|
2
|
-
|
|
3
|
-
// from browser-util-inspect
|
|
4
|
-
const colors = {
|
|
5
|
-
bold: [1, 22],
|
|
6
|
-
italic: [3, 23],
|
|
7
|
-
underline: [4, 24],
|
|
8
|
-
inverse: [7, 27],
|
|
9
|
-
white: [37, 39],
|
|
10
|
-
grey: [90, 39],
|
|
11
|
-
black: [30, 39],
|
|
12
|
-
blue: [34, 39],
|
|
13
|
-
cyan: [36, 39],
|
|
14
|
-
green: [32, 39],
|
|
15
|
-
magenta: [35, 39],
|
|
16
|
-
red: [31, 39],
|
|
17
|
-
yellow: [33, 39],
|
|
18
|
-
};
|
|
19
|
-
export type ColorizeColor = keyof typeof colors;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Colorize a string with a specified color.
|
|
23
|
-
* @param str String to colorize
|
|
24
|
-
* @param color Color to colorize the string with
|
|
25
|
-
* @returns Colorized string
|
|
26
|
-
*/
|
|
27
|
-
export function colorize(str: string, color: ColorizeColor) {
|
|
28
|
-
const colorData = colors[color];
|
|
29
|
-
return '\u001b[' + colorData[0] + 'm' + str + '\u001b[' + colorData[1] + 'm';
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Gets a stack trace from metadata or accompanying error.
|
|
34
|
-
*/
|
|
35
|
-
function getStackTrace(data: any) {
|
|
36
|
-
const stack = data?.err?.stack || data.stack || data['error.stack'];
|
|
37
|
-
delete data.stack;
|
|
38
|
-
return stack ?? '';
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export interface ConsoleLogTransportConfig extends LogTransportConfigBase {
|
|
42
|
-
/**
|
|
43
|
-
* Add colors to log messages.
|
|
44
|
-
*/
|
|
45
|
-
colorize?: false | typeof colorize;
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Gets the color for the log level.
|
|
49
|
-
*/
|
|
50
|
-
getLogLevelColor?: (level: LogLevel) => ColorizeColor;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export function consoleTransport(config: ConsoleLogTransportConfig = {}) {
|
|
54
|
-
// Default ignore patterns
|
|
55
|
-
config.ignoreMetadataPatterns ??= ['application', 'service', 'environment', 'version'];
|
|
56
|
-
|
|
57
|
-
// Get the colorizer function, or a no-op if not enabled.
|
|
58
|
-
const colorizer = config.colorize !== false ? config.colorize ?? colorize : (str: string) => str;
|
|
59
|
-
|
|
60
|
-
// Get the log level color function, or use the default colors.
|
|
61
|
-
const getLogLevelColor =
|
|
62
|
-
config.getLogLevelColor ??
|
|
63
|
-
((level) => {
|
|
64
|
-
return {
|
|
65
|
-
error: 'red',
|
|
66
|
-
warn: 'yellow',
|
|
67
|
-
info: 'cyan',
|
|
68
|
-
debug: 'green',
|
|
69
|
-
}[level] as ColorizeColor;
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
const transport: ILogTransport & ConsoleLogTransportConfig = {
|
|
73
|
-
...config,
|
|
74
|
-
log: ({ level, message, timestamp, splat, ...metadata }) => {
|
|
75
|
-
let splatData = splat ?? [];
|
|
76
|
-
const stackTrace = getStackTrace(metadata);
|
|
77
|
-
|
|
78
|
-
const strippedInfo: any = { ...metadata };
|
|
79
|
-
delete strippedInfo['level'];
|
|
80
|
-
delete strippedInfo['message'];
|
|
81
|
-
delete strippedInfo['splat'];
|
|
82
|
-
delete strippedInfo['timestamp'];
|
|
83
|
-
delete strippedInfo['stack'];
|
|
84
|
-
|
|
85
|
-
if (Object.keys(strippedInfo).length > 0) {
|
|
86
|
-
splatData = [strippedInfo, ...splatData];
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
if (message) {
|
|
90
|
-
splatData = [message, ...splatData];
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
if (stackTrace) {
|
|
94
|
-
splatData = [...splatData, stackTrace];
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
console.log(`${colorizer(timestamp, 'magenta')} ${colorizer(level, getLogLevelColor(level))}: `, ...splatData);
|
|
98
|
-
},
|
|
99
|
-
};
|
|
100
|
-
return transport;
|
|
101
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { ILogTransport, LogTransportConfigBase } from '../types';
|
|
2
|
-
import { getLogMessage } from './utils';
|
|
3
|
-
import { datadogLogs } from '@datadog/browser-logs';
|
|
4
|
-
|
|
5
|
-
export type DatadogLogTransportConfig = LogTransportConfigBase;
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* A transport that sends logs to Datadog.
|
|
9
|
-
* Note: This requires the datadog reporter to be initialized for it to work.
|
|
10
|
-
*/
|
|
11
|
-
export function datadogTransport(config: DatadogLogTransportConfig = {}) {
|
|
12
|
-
const transport: ILogTransport = {
|
|
13
|
-
...config,
|
|
14
|
-
log: ({ level, message, ...metadata }) => {
|
|
15
|
-
// Datadog expects a string message.
|
|
16
|
-
datadogLogs.logger[level](getLogMessage(message), metadata);
|
|
17
|
-
},
|
|
18
|
-
};
|
|
19
|
-
return transport;
|
|
20
|
-
}
|
package/src/logger/index.test.ts
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { createLogger, setLogLevel as setGlobalLogLevel, logTransports, consoleTransport } from '.';
|
|
2
|
-
import { init } from '..';
|
|
3
|
-
import { addMetadata, setUser } from '../reporters';
|
|
4
|
-
import { LogLevel } from '../types';
|
|
5
|
-
|
|
6
|
-
// This isn't actually asserting anything.
|
|
7
|
-
// But it ensures that the logs look correct, and no errors get thrown.
|
|
8
|
-
describe('logger', () => {
|
|
9
|
-
const logger = createLogger({
|
|
10
|
-
metadata: {
|
|
11
|
-
service: 'test',
|
|
12
|
-
},
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
// Manually set the log transports.
|
|
16
|
-
logTransports.length = 0;
|
|
17
|
-
const transport = consoleTransport({
|
|
18
|
-
// So we can see everything.
|
|
19
|
-
ignoreMetadataPatterns: [],
|
|
20
|
-
});
|
|
21
|
-
logTransports.push(transport);
|
|
22
|
-
|
|
23
|
-
it('should log', async () => {
|
|
24
|
-
logger.log({
|
|
25
|
-
level: 'info',
|
|
26
|
-
message: 'data',
|
|
27
|
-
});
|
|
28
|
-
logger.log({ data: 'obj' });
|
|
29
|
-
logger.log(LogLevel.Debug, 'level, message', { data: 'obj' });
|
|
30
|
-
logger.log(LogLevel.Debug, 'level, message, metadata', { data: 'obj' });
|
|
31
|
-
|
|
32
|
-
init({
|
|
33
|
-
service: 'test-service',
|
|
34
|
-
environment: 'test',
|
|
35
|
-
version: 'no-version',
|
|
36
|
-
defaultMetadata: {
|
|
37
|
-
application: 'test',
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
const infoLogger = logger.child({ isLevel: 'info' });
|
|
42
|
-
infoLogger.info('info call, message');
|
|
43
|
-
infoLogger.info('info call, message, metadata', { data: 'metadataobj' });
|
|
44
|
-
|
|
45
|
-
const timer = logger.startTimer();
|
|
46
|
-
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
47
|
-
timer.done({ message: 'timer done', metadata: { id: 1 } });
|
|
48
|
-
|
|
49
|
-
setGlobalLogLevel(LogLevel.Info);
|
|
50
|
-
addMetadata({ global: 'metadata' });
|
|
51
|
-
|
|
52
|
-
logger.debug('You should not see this');
|
|
53
|
-
logger.info('You should see this with { global: "metadata" }');
|
|
54
|
-
|
|
55
|
-
setGlobalLogLevel(null);
|
|
56
|
-
setUser({
|
|
57
|
-
id: '123',
|
|
58
|
-
email: 'test@example.com',
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
logger.debug('debug call, user metadata');
|
|
62
|
-
|
|
63
|
-
transport.logLevel = LogLevel.Info;
|
|
64
|
-
logger.debug('You should not see this');
|
|
65
|
-
logger.info('You should see this');
|
|
66
|
-
transport.logLevel = undefined;
|
|
67
|
-
});
|
|
68
|
-
});
|