@crimson-education/browser-logger 2.0.2 → 3.0.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.
Files changed (71) hide show
  1. package/README.md +212 -67
  2. package/lib/index.d.ts +6 -76
  3. package/lib/index.d.ts.map +1 -1
  4. package/lib/index.js +42 -186
  5. package/lib/index.js.map +1 -1
  6. package/lib/logger/consoleTransport.d.ts +37 -0
  7. package/lib/logger/consoleTransport.d.ts.map +1 -0
  8. package/lib/logger/consoleTransport.js +81 -0
  9. package/lib/logger/consoleTransport.js.map +1 -0
  10. package/lib/logger/datadogTransport.d.ts +8 -0
  11. package/lib/logger/datadogTransport.d.ts.map +1 -0
  12. package/lib/logger/datadogTransport.js +21 -0
  13. package/lib/logger/datadogTransport.js.map +1 -0
  14. package/lib/logger/index.d.ts +16 -0
  15. package/lib/logger/index.d.ts.map +1 -0
  16. package/lib/logger/index.js +148 -0
  17. package/lib/logger/index.js.map +1 -0
  18. package/lib/logger/index.test.d.ts +2 -0
  19. package/lib/logger/index.test.d.ts.map +1 -0
  20. package/lib/logger/index.test.js +60 -0
  21. package/lib/logger/index.test.js.map +1 -0
  22. package/lib/logger/utils.d.ts +15 -0
  23. package/lib/logger/utils.d.ts.map +1 -0
  24. package/lib/logger/utils.js +32 -0
  25. package/lib/logger/utils.js.map +1 -0
  26. package/lib/reporters/amplifyReporter.d.ts +2 -2
  27. package/lib/reporters/amplifyReporter.d.ts.map +1 -1
  28. package/lib/reporters/amplifyReporter.js +13 -14
  29. package/lib/reporters/amplifyReporter.js.map +1 -1
  30. package/lib/reporters/datadogReporter.d.ts +7 -5
  31. package/lib/reporters/datadogReporter.d.ts.map +1 -1
  32. package/lib/reporters/datadogReporter.js +37 -100
  33. package/lib/reporters/datadogReporter.js.map +1 -1
  34. package/lib/reporters/gtmReporter.d.ts.map +1 -1
  35. package/lib/reporters/gtmReporter.js +2 -7
  36. package/lib/reporters/gtmReporter.js.map +1 -1
  37. package/lib/reporters/index.d.ts +66 -3
  38. package/lib/reporters/index.d.ts.map +1 -1
  39. package/lib/reporters/index.js +210 -17
  40. package/lib/reporters/index.js.map +1 -1
  41. package/lib/reporters/logReporter.d.ts +35 -0
  42. package/lib/reporters/logReporter.d.ts.map +1 -0
  43. package/lib/reporters/logReporter.js +62 -0
  44. package/lib/reporters/logReporter.js.map +1 -0
  45. package/lib/types/logger.d.ts +43 -2
  46. package/lib/types/logger.d.ts.map +1 -1
  47. package/lib/types/logger.js.map +1 -1
  48. package/lib/types/reporter.d.ts +58 -6
  49. package/lib/types/reporter.d.ts.map +1 -1
  50. package/lib/utils.d.ts +9 -8
  51. package/lib/utils.d.ts.map +1 -1
  52. package/lib/utils.js +28 -48
  53. package/lib/utils.js.map +1 -1
  54. package/lib/utils.test.js +18 -5
  55. package/lib/utils.test.js.map +1 -1
  56. package/package.json +1 -1
  57. package/src/index.ts +38 -208
  58. package/src/logger/consoleTransport.ts +101 -0
  59. package/src/logger/datadogTransport.ts +20 -0
  60. package/src/logger/index.test.ts +68 -0
  61. package/src/logger/index.ts +139 -0
  62. package/src/logger/utils.ts +28 -0
  63. package/src/reporters/amplifyReporter.ts +15 -16
  64. package/src/reporters/datadogReporter.ts +48 -116
  65. package/src/reporters/gtmReporter.ts +2 -7
  66. package/src/reporters/index.ts +216 -3
  67. package/src/reporters/logReporter.ts +86 -0
  68. package/src/types/logger.ts +49 -4
  69. package/src/types/reporter.ts +66 -6
  70. package/src/utils.test.ts +20 -6
  71. package/src/utils.ts +37 -62
@@ -0,0 +1,35 @@
1
+ import { IReporter, LogLevel, ReporterConfigBase, ServiceInfo } from '../types';
2
+ export interface LogReporterConfig extends ReporterConfigBase {
3
+ /**
4
+ * The fallback log level to apply to all trackEvent calls (if the event's level is not set).
5
+ * Defaults to info.
6
+ */
7
+ trackEventDefaultLevel?: LogLevel;
8
+ /**
9
+ * The log level to apply to all addBreadcrumb calls.
10
+ * Defaults to info.
11
+ */
12
+ addBreadcrumbLevel?: LogLevel;
13
+ /**
14
+ * The log level to apply to all setRouteName calls.
15
+ * Defaults to debug.
16
+ */
17
+ setRouteNameLevel?: LogLevel;
18
+ /**
19
+ * The log level to apply to all setPageName calls.
20
+ * Defaults to debug.
21
+ */
22
+ setPageNameLevel?: LogLevel;
23
+ /**
24
+ * The log level to apply to all recordSession calls.
25
+ * Defaults to debug.
26
+ */
27
+ recordSessionLevel?: LogLevel;
28
+ /**
29
+ * The log level to apply to all recordSessionStop calls.
30
+ * Defaults to debug.
31
+ */
32
+ recordSessionStopLevel?: LogLevel;
33
+ }
34
+ export declare function logReporter(info: ServiceInfo, config: LogReporterConfig): IReporter;
35
+ //# sourceMappingURL=logReporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logReporter.d.ts","sourceRoot":"","sources":["../../src/reporters/logReporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D;;;OAGG;IACH,sBAAsB,CAAC,EAAE,QAAQ,CAAC;IAClC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,QAAQ,CAAC;IAC9B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,QAAQ,CAAC;IAC7B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,QAAQ,CAAC;IAC5B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,QAAQ,CAAC;IAC9B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,QAAQ,CAAC;CACnC;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,aAiDvE"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logReporter = void 0;
4
+ const logger_1 = require("../logger");
5
+ const types_1 = require("../types");
6
+ function logReporter(info, config) {
7
+ const reporter = {
8
+ ...config,
9
+ trackEvent(event) {
10
+ var _a, _b, _c, _d, _e;
11
+ // config.trackEventLevel and config.level overrides event.level here, as it is an override, while config.trackEventDefaultLevel is a fallback.
12
+ const level = (_b = (_a = event.level) !== null && _a !== void 0 ? _a : config.trackEventDefaultLevel) !== null && _b !== void 0 ? _b : types_1.LogLevel.Info;
13
+ logger_1.logger.log(level, event.message, {
14
+ ...((_c = event.metadata) !== null && _c !== void 0 ? _c : {}),
15
+ ...((_d = event.metrics) !== null && _d !== void 0 ? _d : {}),
16
+ ...((_e = event.tags) !== null && _e !== void 0 ? _e : {}),
17
+ });
18
+ },
19
+ addBreadcrumb(breadcrumb) {
20
+ var _a, _b;
21
+ const level = (_a = config.addBreadcrumbLevel) !== null && _a !== void 0 ? _a : types_1.LogLevel.Info;
22
+ logger_1.logger.log(level, breadcrumb.message, {
23
+ ...((_b = breadcrumb.metadata) !== null && _b !== void 0 ? _b : {}),
24
+ category: breadcrumb.category,
25
+ });
26
+ },
27
+ addMetadata(metadata) {
28
+ Object.assign(logger_1.globalMetadata, metadata);
29
+ },
30
+ setUser(user) {
31
+ Object.assign(logger_1.globalMetadata, { user });
32
+ },
33
+ setRouteName(routeName) {
34
+ var _a;
35
+ Object.assign(logger_1.globalMetadata, { routeName });
36
+ const level = (_a = config.setRouteNameLevel) !== null && _a !== void 0 ? _a : types_1.LogLevel.Debug;
37
+ logger_1.logger.log(level, `Route changed to ${routeName}`);
38
+ },
39
+ setPageName(pageName) {
40
+ var _a;
41
+ Object.assign(logger_1.globalMetadata, { pageName });
42
+ const level = (_a = config.setPageNameLevel) !== null && _a !== void 0 ? _a : types_1.LogLevel.Debug;
43
+ logger_1.logger.log(level, `Page changed to ${pageName}`);
44
+ },
45
+ reportError(error, metadata) {
46
+ logger_1.logger.error(typeof error === 'string' ? error : error.message, { ...metadata, error });
47
+ },
48
+ recordSession() {
49
+ var _a;
50
+ const level = (_a = config.recordSessionLevel) !== null && _a !== void 0 ? _a : types_1.LogLevel.Debug;
51
+ logger_1.logger.log(level, 'Recording Session');
52
+ },
53
+ recordSessionStop() {
54
+ var _a;
55
+ const level = (_a = config.recordSessionStopLevel) !== null && _a !== void 0 ? _a : types_1.LogLevel.Debug;
56
+ logger_1.logger.log(level, 'Recording Session Stopping');
57
+ },
58
+ };
59
+ return reporter;
60
+ }
61
+ exports.logReporter = logReporter;
62
+ //# sourceMappingURL=logReporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logReporter.js","sourceRoot":"","sources":["../../src/reporters/logReporter.ts"],"names":[],"mappings":";;;AAAA,sCAAwE;AACxE,oCAAgF;AAmChF,SAAgB,WAAW,CAAC,IAAiB,EAAE,MAAyB;IACtE,MAAM,QAAQ,GAAc;QAC1B,GAAG,MAAM;QACT,UAAU,CAAC,KAAK;;YACd,+IAA+I;YAC/I,MAAM,KAAK,GAAG,MAAA,MAAA,KAAK,CAAC,KAAK,mCAAI,MAAM,CAAC,sBAAsB,mCAAI,gBAAQ,CAAC,IAAI,CAAC;YAC5E,eAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE;gBAC/B,GAAG,CAAC,MAAA,KAAK,CAAC,QAAQ,mCAAI,EAAE,CAAC;gBACzB,GAAG,CAAC,MAAA,KAAK,CAAC,OAAO,mCAAI,EAAE,CAAC;gBACxB,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAC;aACtB,CAAC,CAAC;QACL,CAAC;QACD,aAAa,CAAC,UAAU;;YACtB,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,kBAAkB,mCAAI,gBAAQ,CAAC,IAAI,CAAC;YACzD,eAAM,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE;gBACpC,GAAG,CAAC,MAAA,UAAU,CAAC,QAAQ,mCAAI,EAAE,CAAC;gBAC9B,QAAQ,EAAE,UAAU,CAAC,QAAQ;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,WAAW,CAAC,QAAQ;YAClB,MAAM,CAAC,MAAM,CAAC,uBAAiB,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,CAAC,IAAI;YACV,MAAM,CAAC,MAAM,CAAC,uBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,YAAY,CAAC,SAAS;;YACpB,MAAM,CAAC,MAAM,CAAC,uBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,iBAAiB,mCAAI,gBAAQ,CAAC,KAAK,CAAC;YACzD,eAAM,CAAC,GAAG,CAAC,KAAK,EAAE,oBAAoB,SAAS,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,WAAW,CAAC,QAAQ;;YAClB,MAAM,CAAC,MAAM,CAAC,uBAAiB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,gBAAgB,mCAAI,gBAAQ,CAAC,KAAK,CAAC;YACxD,eAAM,CAAC,GAAG,CAAC,KAAK,EAAE,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,WAAW,CAAC,KAAK,EAAE,QAAQ;YACzB,eAAM,CAAC,KAAK,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,aAAa;;YACX,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,kBAAkB,mCAAI,gBAAQ,CAAC,KAAK,CAAC;YAC1D,eAAM,CAAC,GAAG,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QACzC,CAAC;QACD,iBAAiB;;YACf,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,sBAAsB,mCAAI,gBAAQ,CAAC,KAAK,CAAC;YAC9D,eAAM,CAAC,GAAG,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;QAClD,CAAC;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAjDD,kCAiDC"}
@@ -1,4 +1,17 @@
1
1
  export declare type Metadata = Record<string, any>;
2
+ /**
3
+ * Options to Customize the Logger
4
+ */
5
+ export declare type LoggerOptions = {
6
+ /**
7
+ * The min log level for events to be sent to the logger.
8
+ */
9
+ logLevel?: LogLevel;
10
+ /**
11
+ * Metadata to add to all logs.
12
+ */
13
+ metadata?: Metadata;
14
+ };
2
15
  export declare enum LogLevel {
3
16
  Debug = "debug",
4
17
  Info = "info",
@@ -6,22 +19,50 @@ export declare enum LogLevel {
6
19
  Error = "error"
7
20
  }
8
21
  export interface LogLevelMethod {
9
- (message: string, metadata?: any): ILogger;
22
+ (message: string, metadata?: Metadata): ILogger;
10
23
  (message: string, ...meta: any[]): ILogger;
11
24
  (message: any): ILogger;
12
25
  }
13
26
  export interface LogMethod {
14
- (level: LogLevel, message: string, metadata?: any): ILogger;
27
+ (level: LogLevel, message: string, metadata?: Metadata): ILogger;
15
28
  (level: LogLevel, message: string, ...meta: any[]): ILogger;
16
29
  (level: LogLevel, message: any): ILogger;
30
+ (message: Record<string, any>): ILogger;
17
31
  }
18
32
  export interface Profiler {
19
33
  logger: ILogger;
20
34
  done(info?: {
21
35
  message?: string;
22
36
  level?: LogLevel;
37
+ metadata?: Metadata;
23
38
  }): boolean;
24
39
  }
40
+ export declare type StructuredLog = {
41
+ level: LogLevel;
42
+ message: any;
43
+ [key: string]: any;
44
+ };
45
+ export interface LogTransportConfigBase {
46
+ /**
47
+ * The min log level for logs to be sent.
48
+ */
49
+ logLevel?: LogLevel;
50
+ /**
51
+ * Ignore specific metadata keys from being sent.
52
+ * This can be a regular expression, or a string to exact match.
53
+ * This is useful to prevent data of no use for the logger, or if the data keys are too long.
54
+ */
55
+ ignoreMetadataPatterns?: (string | RegExp)[];
56
+ }
57
+ /**
58
+ * A logger interface that is used to transport logs to a destination
59
+ */
60
+ export interface ILogTransport extends LogTransportConfigBase {
61
+ /**
62
+ * Inbound log event to transport.
63
+ */
64
+ log: (logInfo: StructuredLog) => void;
65
+ }
25
66
  /**
26
67
  * A Logger is a service that can receive log messages.
27
68
  */
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/types/logger.ts"],"names":[],"mappings":"AACA,oBAAY,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE3C,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC;IAC3C,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAC3C,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC;IAC5D,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAC5D,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC;CAC1C;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,UAAU,IAAI,QAAQ,CAAC;IACvB,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEnD,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,cAAc,CAAC;CACvB"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/types/logger.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE3C;;GAEG;AACH,oBAAY,aAAa,GAAG;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAChD,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAC3C,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACjE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAC5D,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC;IACzC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC;CACzC;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;QAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;CACnF;AAED,oBAAY,aAAa,GAAG;IAC1B,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,sBAAsB;IAC3D;;OAEG;IACH,GAAG,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,UAAU,IAAI,QAAQ,CAAC;IACvB,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEnD,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,cAAc,CAAC;CACvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/types/logger.ts"],"names":[],"mappings":";;;AAGA,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;AACjB,CAAC,EALW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAKnB"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/types/logger.ts"],"names":[],"mappings":";;;AAiBA,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;AACjB,CAAC,EALW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAKnB"}
@@ -1,5 +1,31 @@
1
- import { ReporterType } from '..';
1
+ import { AmplifyReporterConfig } from '../reporters/amplifyReporter';
2
+ import { DatadogReporterConfig } from '../reporters/datadogReporter';
3
+ import { GTMReporterConfig } from '../reporters/gtmReporter';
4
+ import { LogReporterConfig } from '../reporters/logReporter';
2
5
  import { LogLevel, Metadata } from './logger';
6
+ export declare type ReporterConfigurations = {
7
+ /**
8
+ * Log reporter configuration.
9
+ * If not set, it will default to everything enabled.
10
+ */
11
+ log?: boolean | LogReporterConfig;
12
+ /**
13
+ * Datadog reporter configuration.
14
+ * If not set, the datadog reporter will not be used.
15
+ */
16
+ datadog?: DatadogReporterConfig;
17
+ /**
18
+ * Amplify/Pinpoint reporter configuration.
19
+ * If not set, the amplify reporter will not be used.
20
+ */
21
+ amplify?: AmplifyReporterConfig;
22
+ /**
23
+ * Google Tag Manager reporter configuration.
24
+ * If not set, the gtm reporter will not be used.
25
+ */
26
+ gtm?: true | GTMReporterConfig;
27
+ };
28
+ export declare type ReporterType = keyof ReporterConfigurations;
3
29
  export declare type Metrics = Record<string, number>;
4
30
  export declare type ServiceInfo = {
5
31
  /** The Application's name. */
@@ -12,6 +38,14 @@ export declare type ServiceInfo = {
12
38
  * Default metadata to add to Reporter events.
13
39
  */
14
40
  defaultMetadata?: Metadata;
41
+ /**
42
+ * The min log level for logs to be sent to the logger.
43
+ */
44
+ logLevel?: LogLevel;
45
+ /**
46
+ * The min event level for events to be sent to reporters.
47
+ */
48
+ eventLevel?: LogLevel;
15
49
  };
16
50
  export declare type ReportUser = {
17
51
  id: string;
@@ -75,21 +109,39 @@ export interface ReporterBreadcrumb extends ReporterFilters {
75
109
  }
76
110
  export interface ReporterConfigBase {
77
111
  /**
78
- * Categories of breadcrumbs to ignore sending to Amplify.
79
- * This is useful to prevent data of no use for amplify.
112
+ * Enable/Disable reporter endpoints from being called.
113
+ */
114
+ endpoints?: {
115
+ trackEvent?: boolean;
116
+ addMetadata?: boolean;
117
+ addBreadcrumb?: boolean;
118
+ setUser?: boolean;
119
+ setRouteName?: boolean;
120
+ setPageName?: boolean;
121
+ reportError?: boolean;
122
+ recordSession?: boolean;
123
+ recordSessionStop?: boolean;
124
+ };
125
+ /**
126
+ * The min event level for events to be sent to the reporter.
127
+ */
128
+ eventLevel?: LogLevel;
129
+ /**
130
+ * Categories of breadcrumbs to ignore sending to the reporter.
131
+ * This is useful to prevent data of no use for that reporter.
80
132
  */
81
133
  ignoreBreadcrumbCategories?: string[];
82
134
  /**
83
- * Ignore specific metadata keys from being sent to Amplify.
135
+ * Ignore specific metadata keys from being sent to the reporter.
84
136
  * This can be a regular expression, or a string to exact match.
85
- * This is useful to prevent data of no use for amplify, or if the data keys are too long.
137
+ * This is useful to prevent data of no use for the reporter, or if the data keys are too long.
86
138
  */
87
139
  ignoreMetadataPatterns?: (string | RegExp)[];
88
140
  }
89
141
  /**
90
142
  * A Reporter is a service that can receive Analytics data.
91
143
  */
92
- export interface IReporter {
144
+ export interface IReporter extends ReporterConfigBase {
93
145
  trackEvent(event: ReporterEvent): void;
94
146
  addBreadcrumb(breadcrumb: ReporterBreadcrumb): void;
95
147
  addMetadata(metadata: Metadata): void;
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/types/reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE9C,oBAAY,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE7C,oBAAY,WAAW,GAAG;IACxB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,eAAe,CAAC,EAAE,QAAQ,CAAC;CAC5B,CAAC;AAEF,oBAAY,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1F,oBAAY,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC;AAEzC,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;IAC7B;;OAEG;IACH,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD;;OAEG;IACH,QAAQ,EAAE,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACvC,aAAa,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACpD,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtC,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;IACvC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,WAAW,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC5D,aAAa,CAAC,IAAI,IAAI,CAAC;IACvB,iBAAiB,CAAC,IAAI,IAAI,CAAC;CAC5B"}
1
+ {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/types/reporter.ts"],"names":[],"mappings":"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"}
package/lib/utils.d.ts CHANGED
@@ -1,9 +1,10 @@
1
- import { ILogger, Metadata } from './types';
2
- export declare type AttributeMap = Record<string, string[] | string | null>;
3
- export declare function consoleLogger(name?: string, options?: {
4
- metadata?: Metadata;
5
- }): ILogger;
6
- export declare function filterAttributeMap(attributes: AttributeMap | Record<string, string>, ignorePatterns: (string | RegExp)[]): {
7
- [k: string]: string | string[] | null;
8
- };
1
+ import { IReporter, Metadata } from './types';
2
+ /**
3
+ * Recursively filter reporter metadata.
4
+ * @param metadata Deep Metadata to filter.
5
+ * @param reporter Reporter with filter config.
6
+ * @param prefix Prefix for recusring nested metadata.
7
+ * @returns Filtered metadata.
8
+ */
9
+ export declare function filterReporterMetadata<TMetadata extends Metadata | undefined>(metadata: TMetadata, reporter: Pick<IReporter, 'ignoreMetadataPatterns'>, prefix?: string): TMetadata;
9
10
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAY,QAAQ,EAAY,MAAM,SAAS,CAAC;AAEhE,oBAAY,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AAEpE,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,GAAG,OAAO,CA6CvF;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjD,cAAc,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE;;EASpC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,SAAS,QAAQ,GAAG,SAAS,EAC3E,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC,EACnD,MAAM,CAAC,EAAE,MAAM,GACd,SAAS,CA0BX"}
package/lib/utils.js CHANGED
@@ -1,52 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.filterAttributeMap = exports.consoleLogger = void 0;
4
- /* eslint-disable @typescript-eslint/no-unused-vars */
5
- /* eslint-disable @typescript-eslint/no-explicit-any */
6
- const types_1 = require("./types");
7
- function consoleLogger(name, options) {
8
- const logger = {
9
- startTimer() {
10
- const start = new Date();
11
- return {
12
- logger: this,
13
- done: (args) => {
14
- var _a, _b;
15
- const duration = new Date().getTime() - start.getTime();
16
- logger[(_a = args === null || args === void 0 ? void 0 : args.level) !== null && _a !== void 0 ? _a : types_1.LogLevel.Info](`${(_b = args === null || args === void 0 ? void 0 : args.message) !== null && _b !== void 0 ? _b : 'Timer'} completed in: ${duration}`);
17
- return true;
18
- },
19
- };
20
- },
21
- child(metadata, name) {
22
- return consoleLogger(name, { metadata });
23
- },
24
- log: (level, message, metadata) => {
25
- return logger[level](message, message);
26
- },
27
- debug: (...args) => {
28
- console.debug(...args);
29
- return logger;
30
- },
31
- info: (...args) => {
32
- console.log(...args);
33
- return logger;
34
- },
35
- warn: (...args) => {
36
- console.warn(...args);
37
- return logger;
38
- },
39
- error: (...args) => {
40
- console.error(...args);
41
- return logger;
42
- },
43
- };
44
- return logger;
3
+ exports.filterReporterMetadata = void 0;
4
+ /**
5
+ * Recursively filter reporter metadata.
6
+ * @param metadata Deep Metadata to filter.
7
+ * @param reporter Reporter with filter config.
8
+ * @param prefix Prefix for recusring nested metadata.
9
+ * @returns Filtered metadata.
10
+ */
11
+ function filterReporterMetadata(metadata, reporter, prefix) {
12
+ const ignorePatterns = reporter.ignoreMetadataPatterns;
13
+ // No metadata, or no patterns.
14
+ if (metadata === undefined || !ignorePatterns) {
15
+ return metadata;
16
+ }
17
+ const entries = Object.entries(metadata);
18
+ return Object.fromEntries(entries
19
+ .filter(([key]) => {
20
+ const fullKey = prefix ? prefix + key : key;
21
+ return !ignorePatterns.some((pattern) => typeof pattern === 'string' ? pattern === fullKey : pattern.test(fullKey));
22
+ })
23
+ .map(([key, value]) => {
24
+ if (typeof value === 'object' && value !== null) {
25
+ const fullKey = prefix ? prefix + key : key;
26
+ return [key, filterReporterMetadata(value, reporter, `${fullKey}.`)];
27
+ }
28
+ return [key, value];
29
+ }));
45
30
  }
46
- exports.consoleLogger = consoleLogger;
47
- function filterAttributeMap(attributes, ignorePatterns) {
48
- const entries = Object.entries(attributes);
49
- return Object.fromEntries(entries.filter(([key]) => !ignorePatterns.some((pattern) => (typeof pattern === 'string' ? pattern === key : pattern.test(key)))));
50
- }
51
- exports.filterAttributeMap = filterAttributeMap;
31
+ exports.filterReporterMetadata = filterReporterMetadata;
52
32
  //# sourceMappingURL=utils.js.map
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,uDAAuD;AACvD,mCAAgE;AAIhE,SAAgB,aAAa,CAAC,IAAa,EAAE,OAAiC;IAC5E,MAAM,MAAM,GAAY;QACtB,UAAU;YACR,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;YAEzB,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;;oBACb,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;oBACxD,MAAM,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,mCAAI,gBAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,mCAAI,OAAO,kBAAkB,QAAQ,EAAE,CAAC,CAAC;oBAC9F,OAAO,IAAI,CAAC;gBACd,CAAC;aACF,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,QAA8B,EAAE,IAAa;YACjD,OAAO,aAAa,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,GAAG,EAAE,CAAC,KAAe,EAAE,OAAe,EAAE,QAAc,EAAE,EAAE;YACxD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QAED,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YACvB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YACvB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YACrB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YACvB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YACtB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YACvB,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AA7CD,sCA6CC;AAED,SAAgB,kBAAkB,CAChC,UAAiD,EACjD,cAAmC;IAEnC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE3C,OAAO,MAAM,CAAC,WAAW,CACvB,OAAO,CAAC,MAAM,CACZ,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAClH,CACF,CAAC;AACJ,CAAC;AAXD,gDAWC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,SAAgB,sBAAsB,CACpC,QAAmB,EACnB,QAAmD,EACnD,MAAe;IAEf,MAAM,cAAc,GAAG,QAAQ,CAAC,sBAAsB,CAAC;IAEvD,+BAA+B;IAC/B,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,cAAc,EAAE;QAC7C,OAAO,QAAQ,CAAC;KACjB;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEzC,OAAO,MAAM,CAAC,WAAW,CACvB,OAAO;SACJ,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;QAChB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC5C,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACtC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAC1E,CAAC;IACJ,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;YAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5C,OAAO,CAAC,GAAG,EAAE,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC;SACtE;QACD,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC,CACQ,CAAC;AACjB,CAAC;AA9BD,wDA8BC"}
package/lib/utils.test.js CHANGED
@@ -2,17 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("./utils");
4
4
  describe('utils', () => {
5
- describe('filterAttributeMap', () => {
5
+ describe('filterReporterMetadata', () => {
6
6
  it('should remove attributes which match the ignore patterns', () => {
7
7
  const inputAttributeMap = {
8
8
  includeme: '5',
9
9
  excludeme: 'false',
10
10
  differentProp: 'boo',
11
+ deep: {
12
+ includeme: '5',
13
+ excludeme: 'false',
14
+ deepExcludeStr: 'boo',
15
+ deepExcludeRegex: 'boo',
16
+ },
11
17
  };
12
- const filtered = (0, utils_1.filterAttributeMap)(inputAttributeMap, [/exclude/g, /Prop/g]);
13
- expect(filtered['includeme']).toBeTruthy();
14
- expect(filtered['excludeme']).toBeFalsy();
15
- expect(filtered['differentProp']).toBeFalsy();
18
+ const filtered = (0, utils_1.filterReporterMetadata)(inputAttributeMap, {
19
+ ignoreMetadataPatterns: [/excludeme/g, /Prop/g, 'deep.deepExcludeStr', /deep\.deepExcludeRegex/g],
20
+ });
21
+ expect(filtered.includeme).toBeTruthy();
22
+ expect(filtered.excludeme).toBeFalsy();
23
+ expect(filtered.differentProp).toBeFalsy();
24
+ // deep
25
+ expect(filtered.deep.includeme).toBeTruthy();
26
+ expect(filtered.deep.excludeme).toBeFalsy();
27
+ expect(filtered.deep.deepExcludeStr).toBeFalsy();
28
+ expect(filtered.deep.deepExcludeRegex).toBeFalsy();
16
29
  });
17
30
  });
18
31
  });
@@ -1 +1 @@
1
- {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../src/utils.test.ts"],"names":[],"mappings":";;AAAA,mCAA6C;AAE7C,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,MAAM,iBAAiB,GAAG;gBACxB,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,OAAO;gBAClB,aAAa,EAAE,KAAK;aACrB,CAAC;YAEF,MAAM,QAAQ,GAAG,IAAA,0BAAkB,EAAC,iBAAiB,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9E,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;YAC3C,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../src/utils.test.ts"],"names":[],"mappings":";;AAAA,mCAAiD;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,IAAA,8BAAsB,EAAC,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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crimson-education/browser-logger",
3
- "version": "2.0.2",
3
+ "version": "3.0.0",
4
4
  "description": "An abstract logger and reporting utility for browser environments",
5
5
  "scripts": {
6
6
  "prepack": "npm run build",