@crimson-education/browser-logger 1.4.1 → 1.4.3
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 +6 -2
- package/lib/reporters/amplifyReporter.d.ts.map +1 -1
- package/lib/reporters/amplifyReporter.js +34 -8
- package/lib/reporters/amplifyReporter.js.map +1 -1
- package/lib/reporters/amplifyReporter.test.d.ts +2 -0
- package/lib/reporters/amplifyReporter.test.d.ts.map +1 -0
- package/lib/reporters/amplifyReporter.test.js +51 -0
- package/lib/reporters/amplifyReporter.test.js.map +1 -0
- package/package.json +8 -3
|
@@ -27,12 +27,16 @@ declare type AmplifyReporterBufferingConfig = {
|
|
|
27
27
|
resendLimit?: number;
|
|
28
28
|
};
|
|
29
29
|
export declare function amplifyReporter(info: ServiceInfo, config: AmplifyReporterConfig): IReporter;
|
|
30
|
-
declare type AttributeMap = Record<string, string[] | null>;
|
|
30
|
+
declare type AttributeMap = Record<string, string[] | string | null>;
|
|
31
|
+
/**
|
|
32
|
+
* Pinpoint has strict attribute name and value length limits
|
|
33
|
+
*/
|
|
34
|
+
export declare function asAttributeMap(values: Record<string, any>, groupValues?: boolean): AttributeMap;
|
|
31
35
|
/**
|
|
32
36
|
* Pinpoint expects `endpoint.attributes` and `endpoint.userAttributes` to have
|
|
33
37
|
* values which are string arrays. This function takes in an object and ensures
|
|
34
38
|
* all of its values are of type `string[]` to appease Pinpoint.
|
|
35
39
|
*/
|
|
36
|
-
export declare function
|
|
40
|
+
export declare function buildAttributeMap(values: Record<string, any>, parentKey?: string | undefined, groupValues?: boolean): AttributeMap;
|
|
37
41
|
export {};
|
|
38
42
|
//# sourceMappingURL=amplifyReporter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amplifyReporter.d.ts","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqC,MAAM,GAAG,CAAC;AACjE,OAAO,EAAwB,WAAW,EAAE,MAAM,UAAU,CAAC;AAG7D,oBAAY,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC,SAAS,CAAC,EAAE,8BAA8B,CAAC;CAC5C,CAAC;AAEF;;;;GAIG;AACH,aAAK,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,CA8F3F;AAED,aAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"amplifyReporter.d.ts","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqC,MAAM,GAAG,CAAC;AACjE,OAAO,EAAwB,WAAW,EAAE,MAAM,UAAU,CAAC;AAG7D,oBAAY,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC,SAAS,CAAC,EAAE,8BAA8B,CAAC;CAC5C,CAAC;AAEF;;;;GAIG;AACH,aAAK,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,CA8F3F;AAED,aAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AAE7D;;GAEG;AAEH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,UAAO,GAAG,YAAY,CAa5F;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAE/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,SAAS,GAAE,MAAM,GAAG,SAAqB,EACzC,WAAW,UAAO,GACjB,YAAY,CAsBd"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.asAttributeMap = exports.amplifyReporter = void 0;
|
|
3
|
+
exports.buildAttributeMap = exports.asAttributeMap = exports.amplifyReporter = void 0;
|
|
4
4
|
const aws_amplify_1 = require("aws-amplify");
|
|
5
5
|
function amplifyReporter(info, config) {
|
|
6
6
|
var _a;
|
|
@@ -38,10 +38,11 @@ function amplifyReporter(info, config) {
|
|
|
38
38
|
}
|
|
39
39
|
const reporter = {
|
|
40
40
|
trackEvent: function (event) {
|
|
41
|
+
var _a;
|
|
41
42
|
aws_amplify_1.Analytics.record({
|
|
42
43
|
name: event.message,
|
|
43
44
|
attributes: {
|
|
44
|
-
...event.metadata,
|
|
45
|
+
...asAttributeMap((_a = event.metadata) !== null && _a !== void 0 ? _a : {}, false),
|
|
45
46
|
...event.tags,
|
|
46
47
|
},
|
|
47
48
|
metrics: event.metrics,
|
|
@@ -93,25 +94,50 @@ function amplifyReporter(info, config) {
|
|
|
93
94
|
return reporter;
|
|
94
95
|
}
|
|
95
96
|
exports.amplifyReporter = amplifyReporter;
|
|
97
|
+
/**
|
|
98
|
+
* Pinpoint has strict attribute name and value length limits
|
|
99
|
+
*/
|
|
100
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
101
|
+
function asAttributeMap(values, groupValues = true) {
|
|
102
|
+
const attributeMap = buildAttributeMap(values, undefined, groupValues);
|
|
103
|
+
const checkedEntries = Object.entries(attributeMap).map(([key, value]) => {
|
|
104
|
+
var _a, _b;
|
|
105
|
+
const truncatedKey = key.length > 50 ? `___${key.slice(-47)}` : key;
|
|
106
|
+
const truncatedValue = Array.isArray(value)
|
|
107
|
+
? (_a = value === null || value === void 0 ? void 0 : value.map((val) => val.slice(0, 100))) !== null && _a !== void 0 ? _a : null
|
|
108
|
+
: (_b = value === null || value === void 0 ? void 0 : value.slice(0, 100)) !== null && _b !== void 0 ? _b : null;
|
|
109
|
+
return [truncatedKey, truncatedValue];
|
|
110
|
+
});
|
|
111
|
+
return Object.fromEntries(checkedEntries);
|
|
112
|
+
}
|
|
113
|
+
exports.asAttributeMap = asAttributeMap;
|
|
96
114
|
/**
|
|
97
115
|
* Pinpoint expects `endpoint.attributes` and `endpoint.userAttributes` to have
|
|
98
116
|
* values which are string arrays. This function takes in an object and ensures
|
|
99
117
|
* all of its values are of type `string[]` to appease Pinpoint.
|
|
100
118
|
*/
|
|
101
|
-
function
|
|
119
|
+
function buildAttributeMap(
|
|
120
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
121
|
+
values, parentKey = undefined, groupValues = true) {
|
|
102
122
|
const valuesWithStringArrays = {};
|
|
103
123
|
Object.entries(values).forEach(([key, value]) => {
|
|
124
|
+
const combinedKey = parentKey ? [parentKey, key].join('.') : key;
|
|
104
125
|
if (!value) {
|
|
105
|
-
valuesWithStringArrays[
|
|
126
|
+
valuesWithStringArrays[combinedKey] = null;
|
|
106
127
|
}
|
|
107
|
-
else if (Array.isArray(value)) {
|
|
108
|
-
valuesWithStringArrays[
|
|
128
|
+
else if (groupValues && Array.isArray(value)) {
|
|
129
|
+
valuesWithStringArrays[combinedKey] = value.map((element) => typeof element === 'string' ? element : JSON.stringify(element));
|
|
130
|
+
}
|
|
131
|
+
else if (typeof value === 'object') {
|
|
132
|
+
const flattenedAttribute = buildAttributeMap(value, combinedKey, groupValues);
|
|
133
|
+
Object.assign(valuesWithStringArrays, flattenedAttribute);
|
|
109
134
|
}
|
|
110
135
|
else {
|
|
111
|
-
|
|
136
|
+
const stringValue = typeof value === 'string' ? value : JSON.stringify(value);
|
|
137
|
+
valuesWithStringArrays[combinedKey] = groupValues ? [stringValue] : stringValue;
|
|
112
138
|
}
|
|
113
139
|
});
|
|
114
140
|
return valuesWithStringArrays;
|
|
115
141
|
}
|
|
116
|
-
exports.
|
|
142
|
+
exports.buildAttributeMap = buildAttributeMap;
|
|
117
143
|
//# sourceMappingURL=amplifyReporter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amplifyReporter.js","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.ts"],"names":[],"mappings":";;;AAEA,6CAA8C;AA8B9C,SAAgB,eAAe,CAAC,IAAiB,EAAE,MAA6B;;IAC9E,kBAAI,CAAC,SAAS,CAAC;QACb,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,cAAc,CAAC;QACjC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,WAAW,EAAE,IAAI,CAAC,OAAO;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;IAEH,uBAAS,CAAC,SAAS,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC,cAAc;QAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,QAAQ,EAAE;YACR,UAAU,EAAE,WAAW;SACxB;QAED,GAAG,MAAM,CAAC,SAAS;KACpB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,kBAAkB,EAAE;QAC7B,uBAAS,CAAC,SAAS,CAAC,UAAU,EAAE;YAC9B,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,UAAU;YACrB,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,aAAa;SACxB,CAAC,CAAC;KACJ;IAED,IAAI,MAAM,CAAC,eAAe,EAAE;QAC1B,uBAAS,CAAC,SAAS,CAAC,OAAO,EAAE;YAC3B,MAAM,EAAE,IAAI;YACZ,cAAc,EAAE,MAAA,MAAM,CAAC,cAAc,mCAAI,iBAAiB;SAC3D,CAAC,CAAC;KACJ;IAED,MAAM,QAAQ,GAAc;QAC1B,UAAU,EAAE,UAAU,KAAoB
|
|
1
|
+
{"version":3,"file":"amplifyReporter.js","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amplifyReporter.test.d.ts","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const amplifyReporter_1 = require("./amplifyReporter");
|
|
4
|
+
describe('amplifyReporter', () => {
|
|
5
|
+
it('should convert all attribute values to arrays of strings', () => {
|
|
6
|
+
const testMetadata = { a: 'a', d: ['e', 'f'] };
|
|
7
|
+
const attributeMap = amplifyReporter_1.asAttributeMap(testMetadata);
|
|
8
|
+
expect(attributeMap.a).toEqual(['a']);
|
|
9
|
+
expect(attributeMap.d).toEqual(['e', 'f']);
|
|
10
|
+
});
|
|
11
|
+
it('should handle undefined / null attributes', () => {
|
|
12
|
+
const testMetadata = { a: null, d: undefined };
|
|
13
|
+
const attributeMap = amplifyReporter_1.asAttributeMap(testMetadata);
|
|
14
|
+
expect(attributeMap.a).toBeNull();
|
|
15
|
+
expect(attributeMap.d).toBeNull();
|
|
16
|
+
});
|
|
17
|
+
it('should flatten hierarchies', () => {
|
|
18
|
+
const testMetadata = { foo: { bar: 'baz' } };
|
|
19
|
+
const attributeMap = amplifyReporter_1.asAttributeMap(testMetadata);
|
|
20
|
+
expect(attributeMap['foo.bar']).toEqual(['baz']);
|
|
21
|
+
});
|
|
22
|
+
it('should stringify non-string array members', () => {
|
|
23
|
+
var _a;
|
|
24
|
+
const testMetadata = { foo: 5, bar: [{ baz: 'maz' }] };
|
|
25
|
+
const attributeMap = amplifyReporter_1.asAttributeMap(testMetadata);
|
|
26
|
+
expect(attributeMap.foo).toEqual(['5']);
|
|
27
|
+
expect(typeof ((_a = attributeMap.bar) === null || _a === void 0 ? void 0 : _a[0])).toEqual('string');
|
|
28
|
+
});
|
|
29
|
+
it('should truncate attribute names', () => {
|
|
30
|
+
const testMetadata = { thisIsAVeryVeryLongAttributeNameThatNeedsToBeTruncated: 5 };
|
|
31
|
+
const attributeMap = amplifyReporter_1.asAttributeMap(testMetadata);
|
|
32
|
+
expect(attributeMap.___VeryVeryLongAttributeNameThatNeedsToBeTruncated).toEqual(['5']);
|
|
33
|
+
});
|
|
34
|
+
it('should truncate attribute values', () => {
|
|
35
|
+
const testMetadata = {
|
|
36
|
+
a: 'ThisIsAVeryLongStringThatNeedsToBeTruncatedTo100CharsOrElseThereWillBeAProblemWithSendingTheBeautifulDataToPinpoint',
|
|
37
|
+
};
|
|
38
|
+
const attributeMap = amplifyReporter_1.asAttributeMap(testMetadata);
|
|
39
|
+
expect(attributeMap.a).toEqual([
|
|
40
|
+
'ThisIsAVeryLongStringThatNeedsToBeTruncatedTo100CharsOrElseThereWillBeAProblemWithSendingTheBeautifu',
|
|
41
|
+
]);
|
|
42
|
+
});
|
|
43
|
+
it('should not group values into arrays when groupValues===false', () => {
|
|
44
|
+
const testMetadata = {
|
|
45
|
+
a: '5',
|
|
46
|
+
};
|
|
47
|
+
const attributeMap = amplifyReporter_1.asAttributeMap(testMetadata, false);
|
|
48
|
+
expect(attributeMap.a).toEqual('5');
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=amplifyReporter.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amplifyReporter.test.js","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.test.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": "1.4.
|
|
3
|
+
"version": "1.4.3",
|
|
4
4
|
"description": "An abstract logger and reporting utility for browser environments",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"prepack": "npm run build",
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"prebuild": "npm run clean",
|
|
9
9
|
"build": "tsc",
|
|
10
10
|
"lint": "eslint src",
|
|
11
|
-
"fixlint": "npm run lint -- --fix"
|
|
11
|
+
"fixlint": "npm run lint -- --fix",
|
|
12
|
+
"test": "jest --config jest.config.js --passWithNoTests"
|
|
12
13
|
},
|
|
13
14
|
"repository": {
|
|
14
15
|
"type": "git",
|
|
@@ -30,7 +31,11 @@
|
|
|
30
31
|
"@datadog/browser-rum": "^4.4.0",
|
|
31
32
|
"@sentry/react": "^6.17.9",
|
|
32
33
|
"@sentry/tracing": "^6.17.9",
|
|
33
|
-
"
|
|
34
|
+
"@types/jest": "^27.0.3",
|
|
35
|
+
"aws-amplify": "^4.3.15",
|
|
36
|
+
"eslint-plugin-jest": "^25.3.2",
|
|
37
|
+
"jest": "^27.4.3",
|
|
38
|
+
"ts-jest": "^27.1.1"
|
|
34
39
|
},
|
|
35
40
|
"devDependencies": {
|
|
36
41
|
"@crimson-education/eslint-config": "^2.1.0",
|