@dynamic-labs/logger 5.0.0-rc.0 → 5.0.0-rc.2

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,5 +1,78 @@
1
1
 
2
- ## [5.0.0-rc.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.91.6...v5.0.0-rc.0) (2026-07-05)
2
+ ## [5.0.0-rc.2](https://github.com/dynamic-labs/dynamic-auth/compare/v5.0.0-rc.1...v5.0.0-rc.2) (2026-07-17)
3
+
4
+ ## [5.0.0-rc.1](https://github.com/dynamic-labs/dynamic-auth/compare/v5.0.0-rc.0...v5.0.0-rc.1) (2026-07-17)
5
+
6
+
7
+ ### ⚠ BREAKING CHANGES
8
+
9
+ * move legacy embedded wallet to waas upgrade flow to new legacy-embedded-wallet-migration package (#11841)
10
+ * drop default injection of legacy embedded wallet connectors (#11833)
11
+ * remove legacy embedded wallet support (#11979)
12
+ * throw when legacy embedded wallet is detected without migration provider (#11855)
13
+ * remove deprecated eclipse package (#11831)
14
+ * remove deprecated functions and props (#11832)
15
+
16
+
17
+ ### [4.92.4](https://github.com/dynamic-labs/dynamic-auth/compare/v4.92.3...v4.92.4) (2026-07-16)
18
+
19
+
20
+ ### Features
21
+
22
+ * **bitcoin:** per-network address switching and dust-limit send validation [v4] ([#11970](https://github.com/dynamic-labs/dynamic-auth/issues/11970)) ([76a4a9a](https://github.com/dynamic-labs/dynamic-auth/commit/76a4a9a5025d78798ebd1beffe6c0af59d2d029a)), closes [#11896](https://github.com/dynamic-labs/dynamic-auth/issues/11896) [#11800](https://github.com/dynamic-labs/dynamic-auth/issues/11800)
23
+ * **midnight:** per-network addresses in deposit and wallet info views [v4] ([#11949](https://github.com/dynamic-labs/dynamic-auth/issues/11949)) ([978446a](https://github.com/dynamic-labs/dynamic-auth/commit/978446aca8546eb038ba9ed3be0503d10594ee15))
24
+ * **midnight:** resolve wallet address per selected network [v4] ([#11948](https://github.com/dynamic-labs/dynamic-auth/issues/11948)) ([d6f858c](https://github.com/dynamic-labs/dynamic-auth/commit/d6f858c5e35defda7ed73cf97b3fdbe5ed9d131d))
25
+ * set useMetamaskSdk to true by default ([#11926](https://github.com/dynamic-labs/dynamic-auth/issues/11926)) ([75b5a4a](https://github.com/dynamic-labs/dynamic-auth/commit/75b5a4a0fe8b1a375afce145c0b8bdc3ce761117))
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * **midnight:** align per-network code with the final main iteration [v4] ([#11971](https://github.com/dynamic-labs/dynamic-auth/issues/11971)) ([3ef3ba8](https://github.com/dynamic-labs/dynamic-auth/commit/3ef3ba8c090dfd9e4286b4e51bf350ea5e6feac7))
31
+ * settle social sign-in when captcha is backed out or oauth popup never responds (v4) ([#11956](https://github.com/dynamic-labs/dynamic-auth/issues/11956)) ([ad49477](https://github.com/dynamic-labs/dynamic-auth/commit/ad49477f2acf61a154bb79cbe26b24f803cdb0e2))
32
+ * validate that private key is not empty before upgrading to WaaS ([#11952](https://github.com/dynamic-labs/dynamic-auth/issues/11952)) ([21dfb83](https://github.com/dynamic-labs/dynamic-auth/commit/21dfb83cb29e42b335bc94a0cdd2062cf14a262a))
33
+
34
+ ### [4.92.3](https://github.com/dynamic-labs/dynamic-auth/compare/v4.92.2...v4.92.3) (2026-07-10)
35
+
36
+
37
+ ### Bug Fixes
38
+
39
+ * **sdk-react-core:** fix deterministic 'Wallet not found' crash in embedded wallet export (v4) ([#11906](https://github.com/dynamic-labs/dynamic-auth/issues/11906)) ([913ef23](https://github.com/dynamic-labs/dynamic-auth/commit/913ef236b26245488e1cd5db7e874601b65ff0a2)), closes [#11905](https://github.com/dynamic-labs/dynamic-auth/issues/11905) [#11729](https://github.com/dynamic-labs/dynamic-auth/issues/11729)
40
+
41
+ ### [4.92.2](https://github.com/dynamic-labs/dynamic-auth/compare/v4.92.1...v4.92.2) (2026-07-09)
42
+
43
+
44
+ ### Bug Fixes
45
+
46
+ * engage captcha during step-up OTP re-auth ([#11879](https://github.com/dynamic-labs/dynamic-auth/issues/11879)) ([585460a](https://github.com/dynamic-labs/dynamic-auth/commit/585460a8976803a8ed0aad16a4a00047bd6c115a))
47
+ * **waas:** gate v1 wallet upgrade on recovery for email-only wallets ([#11897](https://github.com/dynamic-labs/dynamic-auth/issues/11897)) ([5a6f0c6](https://github.com/dynamic-labs/dynamic-auth/commit/5a6f0c6bf3120e59cf502004d09fae56f193e977))
48
+
49
+ ### [4.92.1](https://github.com/dynamic-labs/dynamic-auth/compare/v4.92.0...v4.92.1) (2026-07-09)
50
+
51
+
52
+ ### Bug Fixes
53
+
54
+ * **ethereum:** fire in-app-browser redirect on sign for injected EVM wallets that use in-app-browser experience ([#11888](https://github.com/dynamic-labs/dynamic-auth/issues/11888)) ([5116d91](https://github.com/dynamic-labs/dynamic-auth/commit/5116d91ab2c71000a490d72c5d278549d4d8ae9a))
55
+ * **sdk-react-core:** show clear message for Phantom redirect signing failures (v4 backport) ([#11886](https://github.com/dynamic-labs/dynamic-auth/issues/11886)) ([60ac897](https://github.com/dynamic-labs/dynamic-auth/commit/60ac897ba81f7758ccd7a05f97b619785e1f50a7))
56
+ * **social:** use redirect strategy for step-up OAuth on mobile [V4 backport] ([#11881](https://github.com/dynamic-labs/dynamic-auth/issues/11881)) ([42a202e](https://github.com/dynamic-labs/dynamic-auth/commit/42a202e6255de8db73df02eff37c0b10b24fef1a))
57
+ * **solana:** fire in-app-browser redirect on sign and wallet switch ([#11871](https://github.com/dynamic-labs/dynamic-auth/issues/11871)) ([4e2d6b7](https://github.com/dynamic-labs/dynamic-auth/commit/4e2d6b7ac8fdef5bf7c62b8a726ecaef1c6210ec))
58
+ * **solana:** resolve Phantom/Backpack provider collision and Backpack >=0.10.x connect hangs ([#11856](https://github.com/dynamic-labs/dynamic-auth/issues/11856)) ([#11882](https://github.com/dynamic-labs/dynamic-auth/issues/11882)) ([5784aff](https://github.com/dynamic-labs/dynamic-auth/commit/5784aff9641bbc85445fb466f3ab1d6a14331e73))
59
+
60
+ ## [4.92.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.91.6...v4.92.0) (2026-07-08)
61
+
62
+
63
+ ### Features
64
+
65
+ * **captcha:** add Cloudflare Turnstile provider support alongside hCaptcha (v4) ([#11798](https://github.com/dynamic-labs/dynamic-auth/issues/11798)) ([114c770](https://github.com/dynamic-labs/dynamic-auth/commit/114c7702e900d8dedeebe7be867de35d11a93f31))
66
+
67
+
68
+ ### Bug Fixes
69
+
70
+ * **ethereum-aa:** resolve kernel client config per wallet (v4) ([#11870](https://github.com/dynamic-labs/dynamic-auth/issues/11870)) ([1b66d79](https://github.com/dynamic-labs/dynamic-auth/commit/1b66d79b4a32b4b6de433b7536bc46e6719224c6))
71
+ * **iframe-setup:** block dangerous URL schemes and verify sender in OPEN_URL ([#11819](https://github.com/dynamic-labs/dynamic-auth/issues/11819)) ([329b27e](https://github.com/dynamic-labs/dynamic-auth/commit/329b27e9fac825916ab227ec8cf93dc343898923))
72
+ * improve social OAuth error messages ([#11837](https://github.com/dynamic-labs/dynamic-auth/issues/11837)) ([8e57c06](https://github.com/dynamic-labs/dynamic-auth/commit/8e57c067c5a89111a32a12fb82e190cf6c46ad67))
73
+ * **react-native-extension:** reject path traversal in downloadFile fileName ([#11816](https://github.com/dynamic-labs/dynamic-auth/issues/11816)) ([9367a56](https://github.com/dynamic-labs/dynamic-auth/commit/9367a56b6daa853d7f7e7f5534261bc68825b239))
74
+ * **sdk-react-core:** display exactly the bytes signed in personal_sign preview ([#11818](https://github.com/dynamic-labs/dynamic-auth/issues/11818)) ([30b9382](https://github.com/dynamic-labs/dynamic-auth/commit/30b93829122f00060cb484aef09a03294c03f651))
75
+
3
76
 
4
77
  ### [4.91.6](https://github.com/dynamic-labs/dynamic-auth/compare/v4.91.5...v4.91.6) (2026-07-03)
5
78
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/logger",
3
- "version": "5.0.0-rc.0",
3
+ "version": "5.0.0-rc.2",
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
@@ -31,6 +31,34 @@ const globalState = globalThis[LOGGER_GLOBAL_STATE_KEY] || {
31
31
  globalThis[LOGGER_GLOBAL_STATE_KEY] = globalState;
32
32
  const IGNORE_MESSAGES = ['Failed to send logs to server'];
33
33
  const messageQueue = [];
34
+ /**
35
+ * Meta keys that are safe (non-PII) to keep on instrumentation logs.
36
+ * `instrument()` strips meta by default; only the keys listed here survive so
37
+ * adoption/diagnostic dashboards can facet on them (e.g. `@meta.client-version`
38
+ * for SDK-version adoption). NEVER add PII keys such as `user-id` here.
39
+ */
40
+ const INSTRUMENT_META_ALLOWLIST = [
41
+ 'client-version',
42
+ 'platform',
43
+ 'platform-origin',
44
+ ];
45
+ /**
46
+ * Keeps only the allowlisted, non-PII keys from a merged meta object. Returns
47
+ * `undefined` when none are present so instrument logs stay meta-less unless a
48
+ * safe key is actually available.
49
+ */
50
+ const pickInstrumentMeta = (meta) => {
51
+ if (!meta) {
52
+ return undefined;
53
+ }
54
+ const allowed = INSTRUMENT_META_ALLOWLIST.reduce((acc, key) => {
55
+ if (meta[key] !== undefined) {
56
+ acc[key] = meta[key];
57
+ }
58
+ return acc;
59
+ }, {});
60
+ return Object.keys(allowed).length > 0 ? allowed : undefined;
61
+ };
34
62
  class Logger {
35
63
  static get troubleshootModeEnabled() {
36
64
  return globalState.troubleshootModeEnabled;
@@ -193,8 +221,8 @@ class Logger {
193
221
  instrument(message, options) {
194
222
  return this.emitHttpLogs(types.LogLevel.INFO, message, {
195
223
  args: [options],
196
- // Don't send any meta to avoid storing PII
197
- transformMeta: () => undefined,
224
+ // Strip meta to avoid storing PII, keeping only the non-PII allowlist
225
+ transformMeta: pickInstrumentMeta,
198
226
  });
199
227
  }
200
228
  log(level, message, ...args) {
package/src/index.js CHANGED
@@ -24,6 +24,34 @@ const globalState = globalThis[LOGGER_GLOBAL_STATE_KEY] || {
24
24
  globalThis[LOGGER_GLOBAL_STATE_KEY] = globalState;
25
25
  const IGNORE_MESSAGES = ['Failed to send logs to server'];
26
26
  const messageQueue = [];
27
+ /**
28
+ * Meta keys that are safe (non-PII) to keep on instrumentation logs.
29
+ * `instrument()` strips meta by default; only the keys listed here survive so
30
+ * adoption/diagnostic dashboards can facet on them (e.g. `@meta.client-version`
31
+ * for SDK-version adoption). NEVER add PII keys such as `user-id` here.
32
+ */
33
+ const INSTRUMENT_META_ALLOWLIST = [
34
+ 'client-version',
35
+ 'platform',
36
+ 'platform-origin',
37
+ ];
38
+ /**
39
+ * Keeps only the allowlisted, non-PII keys from a merged meta object. Returns
40
+ * `undefined` when none are present so instrument logs stay meta-less unless a
41
+ * safe key is actually available.
42
+ */
43
+ const pickInstrumentMeta = (meta) => {
44
+ if (!meta) {
45
+ return undefined;
46
+ }
47
+ const allowed = INSTRUMENT_META_ALLOWLIST.reduce((acc, key) => {
48
+ if (meta[key] !== undefined) {
49
+ acc[key] = meta[key];
50
+ }
51
+ return acc;
52
+ }, {});
53
+ return Object.keys(allowed).length > 0 ? allowed : undefined;
54
+ };
27
55
  class Logger {
28
56
  static get troubleshootModeEnabled() {
29
57
  return globalState.troubleshootModeEnabled;
@@ -186,8 +214,8 @@ class Logger {
186
214
  instrument(message, options) {
187
215
  return this.emitHttpLogs(LogLevel.INFO, message, {
188
216
  args: [options],
189
- // Don't send any meta to avoid storing PII
190
- transformMeta: () => undefined,
217
+ // Strip meta to avoid storing PII, keeping only the non-PII allowlist
218
+ transformMeta: pickInstrumentMeta,
191
219
  });
192
220
  }
193
221
  log(level, message, ...args) {