@dynamic-labs/logger 4.20.7 → 4.20.9

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/CHANGELOG.md CHANGED
@@ -1,4 +1,27 @@
1
1
 
2
+ ### [4.20.9](https://github.com/dynamic-labs/dynamic-auth/compare/v4.20.8...v4.20.9) (2025-06-24)
3
+
4
+
5
+ ### Features
6
+
7
+ * add MFA to react-native ([#8987](https://github.com/dynamic-labs/dynamic-auth/issues/8987)) ([ecfa72d](https://github.com/dynamic-labs/dynamic-auth/commit/ecfa72dac1b2155166baa423a00e8460587074c2))
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * add recovery flow for react-native ([#9007](https://github.com/dynamic-labs/dynamic-auth/issues/9007)) ([04ffa45](https://github.com/dynamic-labs/dynamic-auth/commit/04ffa45fc30e02b6ef8924a5d338cb8bebbb1aea))
13
+ * always get user and set primary wallet id ([#9013](https://github.com/dynamic-labs/dynamic-auth/issues/9013)) ([6685612](https://github.com/dynamic-labs/dynamic-auth/commit/66856125918bc903922fdbc4d2e151b4249308e3))
14
+ * cannot use recovery codes to delete mfa method ([#9003](https://github.com/dynamic-labs/dynamic-auth/issues/9003)) ([f3b6cb0](https://github.com/dynamic-labs/dynamic-auth/commit/f3b6cb03b1c76248a78f611249a6fb92cffcd32e))
15
+ * upgrade pbkdf2 ([#9008](https://github.com/dynamic-labs/dynamic-auth/issues/9008)) ([a0b8869](https://github.com/dynamic-labs/dynamic-auth/commit/a0b8869027b8e012d08ec7a6ded555e3ef89ca43))
16
+
17
+ ### [4.20.8](https://github.com/dynamic-labs/dynamic-auth/compare/v4.20.7...v4.20.8) (2025-06-23)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * add log level to react-native ([#8993](https://github.com/dynamic-labs/dynamic-auth/issues/8993)) ([261e5d7](https://github.com/dynamic-labs/dynamic-auth/commit/261e5d74e66c3cf7b0dff75cd2a838a521888dd3))
23
+ * sui connector types ([#8995](https://github.com/dynamic-labs/dynamic-auth/issues/8995)) ([d41ad4a](https://github.com/dynamic-labs/dynamic-auth/commit/d41ad4ad98f7dd6139fbace142ac8852484cf098))
24
+
2
25
  ### [4.20.7](https://github.com/dynamic-labs/dynamic-auth/compare/v4.20.6...v4.20.7) (2025-06-20)
3
26
 
4
27
  ### Bug Fixes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/logger",
3
- "version": "4.20.7",
3
+ "version": "4.20.9",
4
4
  "description": "A simple client side logging library used in Dynamic SDK",
5
5
  "author": "Dynamic Labs, Inc.",
6
6
  "license": "MIT",
package/src/index.cjs CHANGED
@@ -8,6 +8,8 @@ var EventEmitter = require('eventemitter3');
8
8
  var types = require('./types.cjs');
9
9
  var MetaData = require('./MetaData/MetaData.cjs');
10
10
  var processArgs = require('./utils/processArgs.cjs');
11
+ var mapLogLevel = require('./utils/mapLogLevel.cjs');
12
+ var createCircularReferenceReplacer = require('./utils/createCircularReferenceReplacer.cjs');
11
13
 
12
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
15
 
@@ -18,20 +20,10 @@ const IGNORE_MESSAGES = ['Failed to send logs to server'];
18
20
  const messageQueue = [];
19
21
  class Logger {
20
22
  constructor(name, level) {
21
- var _a;
22
23
  this.name = name;
24
+ this._level = undefined;
23
25
  this.metaData = new MetaData.MetaData();
24
- if (level === undefined &&
25
- typeof process !== 'undefined' &&
26
- ((_a = process.env) === null || _a === void 0 ? void 0 : _a['NODE_ENV']) !== 'production') {
27
- this.level = types.LogLevel.DEBUG;
28
- }
29
- else if (level === undefined) {
30
- this.level = types.LogLevel.WARN;
31
- }
32
- else {
33
- this.level = level;
34
- }
26
+ this._level = level;
35
27
  if (typeof window !== 'undefined' && window.localStorage !== undefined) {
36
28
  Logger.troubleshootModeEnabled =
37
29
  window.localStorage.getItem('dynamic_enableTroubleshootMode') ===
@@ -66,15 +58,28 @@ class Logger {
66
58
  return types.LogLevel[this.level];
67
59
  }
68
60
  setLogLevel(level) {
69
- if (level in types.LogLevel && typeof level === 'string') {
70
- this.level = types.LogLevel[level];
61
+ this._level = mapLogLevel.mapLogLevel(level);
62
+ }
63
+ static setLogLevel(level) {
64
+ Logger.globalLogLevel = mapLogLevel.mapLogLevel(level);
65
+ }
66
+ static resetLogLevel() {
67
+ Logger.globalLogLevel = undefined;
68
+ }
69
+ get level() {
70
+ var _a;
71
+ if (Logger.globalLogLevel && !this._level) {
72
+ return Logger.globalLogLevel;
71
73
  }
72
- else if (level in types.LogLevel && typeof level === 'number') {
73
- this.level = level;
74
+ if (this._level === undefined &&
75
+ typeof process !== 'undefined' &&
76
+ ((_a = process.env) === null || _a === void 0 ? void 0 : _a['NODE_ENV']) !== 'production') {
77
+ return types.LogLevel.DEBUG;
74
78
  }
75
- else {
76
- throw new Error(`Invalid log level: ${level}`);
79
+ if (this._level === undefined) {
80
+ return types.LogLevel.WARN;
77
81
  }
82
+ return this._level;
78
83
  }
79
84
  formatMessage(level, message) {
80
85
  var _a;
@@ -88,7 +93,7 @@ class Logger {
88
93
  message = message.stack;
89
94
  }
90
95
  else if (message instanceof Object) {
91
- message = JSON.stringify(message);
96
+ message = JSON.stringify(message, createCircularReferenceReplacer.createCircularReferenceReplacer());
92
97
  }
93
98
  const names = (Array.isArray(this.name) ? this.name : [this.name]).map((name) => `[${name}]`);
94
99
  return `${names.join('')} [${(_a = types.LogLevel[level]) !== null && _a !== void 0 ? _a : 'TROUBLESHOOTING'}]: ${message}`;
@@ -172,6 +177,7 @@ class Logger {
172
177
  (level < this.level || level === types.LogLevel.MUTE)) {
173
178
  return;
174
179
  }
180
+ Logger.events.emit('log', level, message, ...args);
175
181
  const fmtMsg = this.formatMessage(level, message);
176
182
  switch (level) {
177
183
  case types.LogLevel.WARN:
@@ -200,10 +206,10 @@ class Logger {
200
206
  this.log(types.LogLevel.WARN, message, ...args);
201
207
  }
202
208
  error(message, ...args) {
203
- Logger.events.emit('error', message, ...args);
204
209
  this.log(types.LogLevel.ERROR, message, ...args);
205
210
  }
206
211
  }
212
+ Logger.globalLogLevel = undefined;
207
213
  Logger.globalKeys = {
208
214
  emitErrors: true,
209
215
  };
package/src/index.d.ts CHANGED
@@ -20,7 +20,8 @@ export type InstrumentOptions = {
20
20
  };
21
21
  export declare class Logger {
22
22
  private name;
23
- private level;
23
+ private static globalLogLevel;
24
+ private _level;
24
25
  private static globalKeys;
25
26
  static troubleshootModeEnabled: boolean;
26
27
  static globalMetaData: MetaData;
@@ -29,12 +30,15 @@ export declare class Logger {
29
30
  static setEmitErrors(emit?: boolean): void;
30
31
  static setEnvironmentId(environmentId?: string): void;
31
32
  static events: EventEmitter<{
32
- error: (...message: any[]) => void;
33
+ log: (level: LogLevel, message: Message, ...args: any[]) => void;
33
34
  }, any>;
34
35
  private getNameArray;
35
36
  createLogger(name: string | string[], level?: LogLevel): Logger;
36
37
  get logLevel(): string;
37
38
  setLogLevel(level: LogLevel | keyof typeof LogLevel): void;
39
+ static setLogLevel(level: LogLevel | keyof typeof LogLevel): void;
40
+ static resetLogLevel(): void;
41
+ get level(): LogLevel;
38
42
  private formatMessage;
39
43
  private captureAndSend;
40
44
  emitHttpLogs(level: LogLevel, message: Message, { args, transformMeta }: EmitHttpOptions): void;
package/src/index.js CHANGED
@@ -5,26 +5,18 @@ import { LogLevel } from './types.js';
5
5
  export { LogLevel } from './types.js';
6
6
  import { MetaData } from './MetaData/MetaData.js';
7
7
  import { processArgs } from './utils/processArgs.js';
8
+ import { mapLogLevel } from './utils/mapLogLevel.js';
9
+ import { createCircularReferenceReplacer } from './utils/createCircularReferenceReplacer.js';
8
10
 
9
11
  /* eslint-disable @typescript-eslint/no-explicit-any, no-console */
10
12
  const IGNORE_MESSAGES = ['Failed to send logs to server'];
11
13
  const messageQueue = [];
12
14
  class Logger {
13
15
  constructor(name, level) {
14
- var _a;
15
16
  this.name = name;
17
+ this._level = undefined;
16
18
  this.metaData = new MetaData();
17
- if (level === undefined &&
18
- typeof process !== 'undefined' &&
19
- ((_a = process.env) === null || _a === void 0 ? void 0 : _a['NODE_ENV']) !== 'production') {
20
- this.level = LogLevel.DEBUG;
21
- }
22
- else if (level === undefined) {
23
- this.level = LogLevel.WARN;
24
- }
25
- else {
26
- this.level = level;
27
- }
19
+ this._level = level;
28
20
  if (typeof window !== 'undefined' && window.localStorage !== undefined) {
29
21
  Logger.troubleshootModeEnabled =
30
22
  window.localStorage.getItem('dynamic_enableTroubleshootMode') ===
@@ -59,15 +51,28 @@ class Logger {
59
51
  return LogLevel[this.level];
60
52
  }
61
53
  setLogLevel(level) {
62
- if (level in LogLevel && typeof level === 'string') {
63
- this.level = LogLevel[level];
54
+ this._level = mapLogLevel(level);
55
+ }
56
+ static setLogLevel(level) {
57
+ Logger.globalLogLevel = mapLogLevel(level);
58
+ }
59
+ static resetLogLevel() {
60
+ Logger.globalLogLevel = undefined;
61
+ }
62
+ get level() {
63
+ var _a;
64
+ if (Logger.globalLogLevel && !this._level) {
65
+ return Logger.globalLogLevel;
64
66
  }
65
- else if (level in LogLevel && typeof level === 'number') {
66
- this.level = level;
67
+ if (this._level === undefined &&
68
+ typeof process !== 'undefined' &&
69
+ ((_a = process.env) === null || _a === void 0 ? void 0 : _a['NODE_ENV']) !== 'production') {
70
+ return LogLevel.DEBUG;
67
71
  }
68
- else {
69
- throw new Error(`Invalid log level: ${level}`);
72
+ if (this._level === undefined) {
73
+ return LogLevel.WARN;
70
74
  }
75
+ return this._level;
71
76
  }
72
77
  formatMessage(level, message) {
73
78
  var _a;
@@ -81,7 +86,7 @@ class Logger {
81
86
  message = message.stack;
82
87
  }
83
88
  else if (message instanceof Object) {
84
- message = JSON.stringify(message);
89
+ message = JSON.stringify(message, createCircularReferenceReplacer());
85
90
  }
86
91
  const names = (Array.isArray(this.name) ? this.name : [this.name]).map((name) => `[${name}]`);
87
92
  return `${names.join('')} [${(_a = LogLevel[level]) !== null && _a !== void 0 ? _a : 'TROUBLESHOOTING'}]: ${message}`;
@@ -165,6 +170,7 @@ class Logger {
165
170
  (level < this.level || level === LogLevel.MUTE)) {
166
171
  return;
167
172
  }
173
+ Logger.events.emit('log', level, message, ...args);
168
174
  const fmtMsg = this.formatMessage(level, message);
169
175
  switch (level) {
170
176
  case LogLevel.WARN:
@@ -193,10 +199,10 @@ class Logger {
193
199
  this.log(LogLevel.WARN, message, ...args);
194
200
  }
195
201
  error(message, ...args) {
196
- Logger.events.emit('error', message, ...args);
197
202
  this.log(LogLevel.ERROR, message, ...args);
198
203
  }
199
204
  }
205
+ Logger.globalLogLevel = undefined;
200
206
  Logger.globalKeys = {
201
207
  emitErrors: true,
202
208
  };
@@ -0,0 +1,21 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ /**
7
+ * Returns a JSON.stringify replacer that safely skips circular references.
8
+ */
9
+ const createCircularReferenceReplacer = () => {
10
+ const seen = new WeakSet();
11
+ return (key, value) => {
12
+ if (typeof value === 'object' && value !== null) {
13
+ if (seen.has(value))
14
+ return;
15
+ seen.add(value);
16
+ }
17
+ return value;
18
+ };
19
+ };
20
+
21
+ exports.createCircularReferenceReplacer = createCircularReferenceReplacer;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Returns a JSON.stringify replacer that safely skips circular references.
3
+ */
4
+ export declare const createCircularReferenceReplacer: () => (key: string, value: unknown) => unknown;
@@ -0,0 +1,17 @@
1
+ 'use client'
2
+ /**
3
+ * Returns a JSON.stringify replacer that safely skips circular references.
4
+ */
5
+ const createCircularReferenceReplacer = () => {
6
+ const seen = new WeakSet();
7
+ return (key, value) => {
8
+ if (typeof value === 'object' && value !== null) {
9
+ if (seen.has(value))
10
+ return;
11
+ seen.add(value);
12
+ }
13
+ return value;
14
+ };
15
+ };
16
+
17
+ export { createCircularReferenceReplacer };
@@ -0,0 +1,20 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var types = require('../types.cjs');
7
+
8
+ const mapLogLevel = (level) => {
9
+ if (level in types.LogLevel && typeof level === 'string') {
10
+ return types.LogLevel[level];
11
+ }
12
+ else if (level in types.LogLevel && typeof level === 'number') {
13
+ return level;
14
+ }
15
+ else {
16
+ throw new Error(`Invalid log level: ${level}`);
17
+ }
18
+ };
19
+
20
+ exports.mapLogLevel = mapLogLevel;
@@ -0,0 +1,2 @@
1
+ import { LogLevel } from '../types';
2
+ export declare const mapLogLevel: (level: LogLevel | keyof typeof LogLevel) => LogLevel;
@@ -0,0 +1,16 @@
1
+ 'use client'
2
+ import { LogLevel } from '../types.js';
3
+
4
+ const mapLogLevel = (level) => {
5
+ if (level in LogLevel && typeof level === 'string') {
6
+ return LogLevel[level];
7
+ }
8
+ else if (level in LogLevel && typeof level === 'number') {
9
+ return level;
10
+ }
11
+ else {
12
+ throw new Error(`Invalid log level: ${level}`);
13
+ }
14
+ };
15
+
16
+ export { mapLogLevel };