react-native-debug-toolkit 3.1.2 → 3.1.4

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 (86) hide show
  1. package/README.md +4 -2
  2. package/README.zh-CN.md +4 -2
  3. package/lib/commonjs/core/DebugToolkit.js +118 -97
  4. package/lib/commonjs/core/DebugToolkit.js.map +1 -1
  5. package/lib/commonjs/core/initialize.js +4 -4
  6. package/lib/commonjs/core/initialize.js.map +1 -1
  7. package/lib/commonjs/features/environment/index.js +22 -24
  8. package/lib/commonjs/features/environment/index.js.map +1 -1
  9. package/lib/commonjs/features/network/index.js +25 -47
  10. package/lib/commonjs/features/network/index.js.map +1 -1
  11. package/lib/commonjs/features/network/networkInterceptor.js +3 -3
  12. package/lib/commonjs/features/network/networkInterceptor.js.map +1 -1
  13. package/lib/commonjs/index.js +0 -30
  14. package/lib/commonjs/index.js.map +1 -1
  15. package/lib/commonjs/utils/DaemonClient.js +13 -51
  16. package/lib/commonjs/utils/DaemonClient.js.map +1 -1
  17. package/lib/commonjs/utils/createChannelFeature.js +8 -1
  18. package/lib/commonjs/utils/createChannelFeature.js.map +1 -1
  19. package/lib/commonjs/utils/deviceReport.js +2 -1
  20. package/lib/commonjs/utils/deviceReport.js.map +1 -1
  21. package/lib/commonjs/utils/urlRewriter.js +15 -0
  22. package/lib/commonjs/utils/urlRewriter.js.map +1 -0
  23. package/lib/module/core/DebugToolkit.js +117 -96
  24. package/lib/module/core/DebugToolkit.js.map +1 -1
  25. package/lib/module/core/initialize.js +6 -7
  26. package/lib/module/core/initialize.js.map +1 -1
  27. package/lib/module/features/environment/index.js +22 -24
  28. package/lib/module/features/environment/index.js.map +1 -1
  29. package/lib/module/features/network/index.js +25 -46
  30. package/lib/module/features/network/index.js.map +1 -1
  31. package/lib/module/features/network/networkInterceptor.js +3 -3
  32. package/lib/module/features/network/networkInterceptor.js.map +1 -1
  33. package/lib/module/index.js +1 -1
  34. package/lib/module/index.js.map +1 -1
  35. package/lib/module/utils/DaemonClient.js +14 -42
  36. package/lib/module/utils/DaemonClient.js.map +1 -1
  37. package/lib/module/utils/createChannelFeature.js +8 -1
  38. package/lib/module/utils/createChannelFeature.js.map +1 -1
  39. package/lib/module/utils/deviceReport.js +3 -2
  40. package/lib/module/utils/deviceReport.js.map +1 -1
  41. package/lib/module/utils/urlRewriter.js +10 -0
  42. package/lib/module/utils/urlRewriter.js.map +1 -0
  43. package/lib/typescript/src/core/DebugToolkit.d.ts +23 -10
  44. package/lib/typescript/src/core/DebugToolkit.d.ts.map +1 -1
  45. package/lib/typescript/src/core/initialize.d.ts.map +1 -1
  46. package/lib/typescript/src/features/environment/index.d.ts.map +1 -1
  47. package/lib/typescript/src/features/network/index.d.ts +3 -3
  48. package/lib/typescript/src/features/network/index.d.ts.map +1 -1
  49. package/lib/typescript/src/index.d.ts +2 -2
  50. package/lib/typescript/src/index.d.ts.map +1 -1
  51. package/lib/typescript/src/types/feature.d.ts +5 -0
  52. package/lib/typescript/src/types/feature.d.ts.map +1 -1
  53. package/lib/typescript/src/types/index.d.ts +1 -1
  54. package/lib/typescript/src/types/index.d.ts.map +1 -1
  55. package/lib/typescript/src/utils/DaemonClient.d.ts +4 -11
  56. package/lib/typescript/src/utils/DaemonClient.d.ts.map +1 -1
  57. package/lib/typescript/src/utils/createChannelFeature.d.ts +4 -0
  58. package/lib/typescript/src/utils/createChannelFeature.d.ts.map +1 -1
  59. package/lib/typescript/src/utils/deviceReport.d.ts +4 -1
  60. package/lib/typescript/src/utils/deviceReport.d.ts.map +1 -1
  61. package/lib/typescript/src/utils/urlRewriter.d.ts +5 -0
  62. package/lib/typescript/src/utils/urlRewriter.d.ts.map +1 -0
  63. package/node/daemon/src/console/console.html +324 -168
  64. package/node/daemon/src/server.js +32 -2
  65. package/node/mcp/src/logs.js +15 -4
  66. package/node/mcp/src/tools.js +4 -2
  67. package/package.json +1 -1
  68. package/src/core/DebugToolkit.tsx +119 -105
  69. package/src/core/initialize.ts +7 -8
  70. package/src/features/environment/index.ts +25 -27
  71. package/src/features/network/index.ts +30 -52
  72. package/src/features/network/networkInterceptor.ts +3 -3
  73. package/src/index.ts +3 -8
  74. package/src/types/feature.ts +6 -0
  75. package/src/types/index.ts +1 -0
  76. package/src/utils/DaemonClient.ts +14 -56
  77. package/src/utils/createChannelFeature.ts +12 -1
  78. package/src/utils/deviceReport.ts +5 -3
  79. package/src/utils/urlRewriter.ts +11 -0
  80. package/lib/commonjs/utils/urlRewriterRegistry.js +0 -14
  81. package/lib/commonjs/utils/urlRewriterRegistry.js.map +0 -1
  82. package/lib/module/utils/urlRewriterRegistry.js +0 -10
  83. package/lib/module/utils/urlRewriterRegistry.js.map +0 -1
  84. package/lib/typescript/src/utils/urlRewriterRegistry.d.ts +0 -7
  85. package/lib/typescript/src/utils/urlRewriterRegistry.d.ts.map +0 -1
  86. package/src/utils/urlRewriterRegistry.ts +0 -10
@@ -1,140 +1,161 @@
1
1
  "use strict";
2
2
 
3
- const listeners = new Set();
4
- let _features = [];
5
- let _launcherVisible = false;
6
- let _panelOpen = false;
7
- let _enabled = true;
8
- function notify() {
9
- listeners.forEach(l => l());
10
- }
11
- function setupFeature(feature) {
12
- feature.setup?.();
13
- }
14
- function cleanupFeature(feature) {
15
- feature.cleanup?.();
16
- }
17
- export const DebugToolkit = {
3
+ class DebugToolkitCore {
4
+ _features = [];
5
+ _launcherVisible = false;
6
+ _panelOpen = false;
7
+ _enabled = true;
8
+ _listeners = new Set();
9
+ notify() {
10
+ this._listeners.forEach(l => l());
11
+ }
12
+
13
+ // --- FeatureDataProvider ---
14
+
15
+ get features() {
16
+ return [...this._features];
17
+ }
18
18
  subscribe(listener) {
19
- listeners.add(listener);
19
+ this._listeners.add(listener);
20
20
  return () => {
21
- listeners.delete(listener);
21
+ this._listeners.delete(listener);
22
22
  };
23
- },
24
- get features() {
25
- return [..._features];
26
- },
23
+ }
24
+
25
+ // --- Enabled ---
26
+
27
27
  get enabled() {
28
- return _enabled;
29
- },
30
- get launcherVisible() {
31
- return _launcherVisible;
32
- },
28
+ return this._enabled;
29
+ }
33
30
  setEnabled(enabled) {
34
- if (_enabled === enabled) return;
35
- _enabled = enabled;
31
+ if (this._enabled === enabled) return;
32
+ this._enabled = enabled;
36
33
  if (!enabled) {
37
- _launcherVisible = false;
38
- _features.forEach(cleanupFeature);
39
- _features = [];
34
+ this._launcherVisible = false;
35
+ this._features.forEach(f => f.cleanup?.());
36
+ this._features = [];
40
37
  }
41
- notify();
42
- },
38
+ this.notify();
39
+ }
40
+
41
+ // --- Feature Management ---
42
+
43
43
  replaceFeatures(features) {
44
- if (!_enabled) return;
44
+ if (!this._enabled) return;
45
45
  const next = features.filter((f, i, arr) => f && typeof f.name === 'string' && arr.findIndex(item => item.name === f.name) === i);
46
- const prevMap = new Map(_features.map(f => [f.name, f]));
46
+ const prevMap = new Map(this._features.map(f => [f.name, f]));
47
47
  const nextMap = new Map(next.map(f => [f.name, f]));
48
- _features.forEach(f => {
49
- if (!nextMap.get(f.name) || nextMap.get(f.name) !== f) cleanupFeature(f);
48
+ this._features.forEach(f => {
49
+ if (!nextMap.get(f.name) || nextMap.get(f.name) !== f) f.cleanup?.();
50
50
  });
51
51
  next.forEach(f => {
52
- if (!prevMap.get(f.name) || prevMap.get(f.name) !== f) setupFeature(f);
52
+ if (!prevMap.get(f.name) || prevMap.get(f.name) !== f) f.setup?.();
53
53
  });
54
- _features = next;
55
- notify();
56
- },
54
+ this._features = next;
55
+ this.notify();
56
+ }
57
57
  addFeature(feature) {
58
- if (!_enabled || !feature || typeof feature.name !== 'string') {
58
+ if (!this._enabled || !feature || typeof feature.name !== 'string') {
59
59
  return;
60
60
  }
61
- const existingIndex = _features.findIndex(f => f.name === feature.name);
61
+ const existingIndex = this._features.findIndex(f => f.name === feature.name);
62
62
  if (existingIndex >= 0) {
63
- const existing = _features[existingIndex];
63
+ const existing = this._features[existingIndex];
64
64
  if (existing === feature) {
65
65
  return;
66
66
  }
67
- cleanupFeature(existing);
68
- setupFeature(feature);
69
- _features = [..._features.slice(0, existingIndex), feature, ..._features.slice(existingIndex + 1)];
70
- notify();
67
+ existing.cleanup?.();
68
+ feature.setup?.();
69
+ this._features = [...this._features.slice(0, existingIndex), feature, ...this._features.slice(existingIndex + 1)];
70
+ this.notify();
71
71
  return;
72
72
  }
73
- setupFeature(feature);
74
- _features = [..._features, feature];
75
- notify();
76
- },
73
+ feature.setup?.();
74
+ this._features = [...this._features, feature];
75
+ this.notify();
76
+ }
77
77
  removeFeature(name) {
78
- if (!_enabled) {
78
+ if (!this._enabled) {
79
79
  return;
80
80
  }
81
- const feature = _features.find(f => f.name === name);
81
+ const feature = this._features.find(f => f.name === name);
82
82
  if (!feature) {
83
83
  return;
84
84
  }
85
- cleanupFeature(feature);
86
- _features = _features.filter(f => f.name !== name);
87
- if (_features.length === 0) {
88
- _launcherVisible = false;
85
+ feature.cleanup?.();
86
+ this._features = this._features.filter(f => f.name !== name);
87
+ if (this._features.length === 0) {
88
+ this._launcherVisible = false;
89
89
  }
90
- notify();
91
- },
92
- reset() {
93
- _launcherVisible = false;
94
- _panelOpen = false;
95
- _features.forEach(cleanupFeature);
96
- _features = [];
97
- notify();
98
- },
90
+ this.notify();
91
+ }
99
92
  hasFeatures() {
100
- return _features.length > 0;
101
- },
93
+ return this._features.length > 0;
94
+ }
95
+
96
+ // --- Panel ---
97
+
102
98
  get panelOpen() {
103
- return _panelOpen;
104
- },
99
+ return this._panelOpen;
100
+ }
105
101
  openPanel() {
106
- if (!_enabled || _panelOpen) return;
107
- _panelOpen = true;
108
- notify();
109
- },
102
+ if (!this._enabled || this._panelOpen) return;
103
+ this._panelOpen = true;
104
+ this.notify();
105
+ }
110
106
  closePanel() {
111
- if (!_panelOpen) return;
112
- _panelOpen = false;
113
- notify();
114
- },
107
+ if (!this._panelOpen) return;
108
+ this._panelOpen = false;
109
+ this.notify();
110
+ }
115
111
  togglePanel() {
116
- if (_panelOpen) {
117
- DebugToolkit.closePanel();
112
+ if (this._panelOpen) {
113
+ this.closePanel();
118
114
  } else {
119
- DebugToolkit.openPanel();
115
+ this.openPanel();
120
116
  }
121
- },
117
+ }
118
+
119
+ // --- Launcher ---
120
+
121
+ get launcherVisible() {
122
+ return this._launcherVisible;
123
+ }
122
124
  showLauncher() {
123
- if (!_enabled) return;
124
- _launcherVisible = true;
125
- notify();
126
- },
125
+ if (!this._enabled) return;
126
+ this._launcherVisible = true;
127
+ this.notify();
128
+ }
127
129
  hideLauncher() {
128
- _launcherVisible = false;
129
- notify();
130
- },
130
+ if (!this._launcherVisible) return;
131
+ this._launcherVisible = false;
132
+ this.notify();
133
+ }
134
+
135
+ // --- Bulk Operations ---
136
+
131
137
  clearAll() {
132
- _features.forEach(f => f.clear?.());
133
- notify();
134
- },
138
+ this._features.forEach(f => f.clear?.());
139
+ this.notify();
140
+ }
141
+ reset() {
142
+ this._launcherVisible = false;
143
+ this._panelOpen = false;
144
+ this._features.forEach(f => f.cleanup?.());
145
+ this._features = [];
146
+ this.notify();
147
+ }
135
148
  destroy() {
136
- DebugToolkit.reset();
137
- listeners.clear();
149
+ this.reset();
150
+ this._listeners.clear();
138
151
  }
139
- };
152
+ }
153
+
154
+ /** Module-level default instance for non-React scenarios and backward compatibility. */
155
+ export const debugToolkit = new DebugToolkitCore();
156
+ /**
157
+ * @deprecated Use `debugToolkit` or get instance from `initializeDebugToolkit()`.
158
+ * This is the default module-level instance exported for backward compatibility.
159
+ */
160
+ export const DebugToolkit = debugToolkit;
140
161
  //# sourceMappingURL=DebugToolkit.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["listeners","Set","_features","_launcherVisible","_panelOpen","_enabled","notify","forEach","l","setupFeature","feature","setup","cleanupFeature","cleanup","DebugToolkit","subscribe","listener","add","delete","features","enabled","launcherVisible","setEnabled","replaceFeatures","next","filter","f","i","arr","name","findIndex","item","prevMap","Map","map","nextMap","get","addFeature","existingIndex","existing","slice","removeFeature","find","length","reset","hasFeatures","panelOpen","openPanel","closePanel","togglePanel","showLauncher","hideLauncher","clearAll","clear","destroy"],"sourceRoot":"../../../src","sources":["core/DebugToolkit.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["DebugToolkitCore","_features","_launcherVisible","_panelOpen","_enabled","_listeners","Set","notify","forEach","l","features","subscribe","listener","add","delete","enabled","setEnabled","f","cleanup","replaceFeatures","next","filter","i","arr","name","findIndex","item","prevMap","Map","map","nextMap","get","setup","addFeature","feature","existingIndex","existing","slice","removeFeature","find","length","hasFeatures","panelOpen","openPanel","closePanel","togglePanel","launcherVisible","showLauncher","hideLauncher","clearAll","clear","reset","destroy","debugToolkit","DebugToolkit"],"sourceRoot":"../../../src","sources":["core/DebugToolkit.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,19 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  import { DebugToolkit } from './DebugToolkit';
4
- import { createNetworkFeature } from '../features/network';
4
+ import { createNetworkFeature, addToBlacklist } from '../features/network';
5
5
  import { createConsoleLogFeature } from '../features/console';
6
6
  import { createZustandLogFeature } from '../features/zustand';
7
7
  import { createNavigationLogFeature } from '../features/navigation';
8
8
  import { createTrackFeature } from '../features/track';
9
9
  import { createEnvironmentFeature } from '../features/environment';
10
10
  import { createClipboardFeature } from '../features/clipboard';
11
- import { daemonClient, restoreDaemonStreaming } from '../utils/DaemonClient';
12
- import { _addDaemonEndpointToNetworkBlacklist } from '../features/network';
11
+ import { daemonClient } from '../utils/DaemonClient';
13
12
  const isDebugMode = __DEV__;
14
- daemonClient.setEndpointDetector(url => {
15
- _addDaemonEndpointToNetworkBlacklist(url);
16
- });
17
13
 
18
14
  /** Feature-specific configuration map */
19
15
 
@@ -71,12 +67,15 @@ export function initializeDebugToolkit(options) {
71
67
  return DebugToolkit;
72
68
  }
73
69
  DebugToolkit.replaceFeatures(resolvedFeatures);
70
+ daemonClient.setEndpointDetector(url => {
71
+ addToBlacklist(url);
72
+ });
74
73
  if (DebugToolkit.hasFeatures()) {
75
74
  DebugToolkit.showLauncher();
76
75
  } else {
77
76
  DebugToolkit.hideLauncher();
78
77
  }
79
- restoreDaemonStreaming().catch(() => {});
78
+ daemonClient.restore().catch(() => {});
80
79
  return DebugToolkit;
81
80
  } catch (error) {
82
81
  console.error('[DebugToolkit] Initialization failed:', error);
@@ -1 +1 @@
1
- {"version":3,"names":["DebugToolkit","createNetworkFeature","createConsoleLogFeature","createZustandLogFeature","createNavigationLogFeature","createTrackFeature","createEnvironmentFeature","createClipboardFeature","daemonClient","restoreDaemonStreaming","_addDaemonEndpointToNetworkBlacklist","isDebugMode","__DEV__","setEndpointDetector","url","featureRegistry","network","console","zustand","navigation","track","environment","clipboard","DEFAULT_FEATURES","resolveFeatureConfigs","configs","features","entries","Object","name","config","creator","warn","undefined","push","resolveDefaultFeatures","map","initializeDebugToolkit","options","enabled","resolvedFeatures","setEnabled","reset","replaceFeatures","hasFeatures","showLauncher","hideLauncher","catch","error"],"sourceRoot":"../../../src","sources":["core/initialize.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["DebugToolkit","createNetworkFeature","addToBlacklist","createConsoleLogFeature","createZustandLogFeature","createNavigationLogFeature","createTrackFeature","createEnvironmentFeature","createClipboardFeature","daemonClient","isDebugMode","__DEV__","featureRegistry","network","console","zustand","navigation","track","environment","clipboard","DEFAULT_FEATURES","resolveFeatureConfigs","configs","features","entries","Object","name","config","creator","warn","undefined","push","resolveDefaultFeatures","map","initializeDebugToolkit","options","enabled","resolvedFeatures","setEnabled","reset","replaceFeatures","setEndpointDetector","url","hasFeatures","showLauncher","hideLauncher","restore","catch","error"],"sourceRoot":"../../../src","sources":["core/initialize.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,oBAAoB,EAAEC,cAAc,QAAQ,qBAAqB;AAE1E,SAASC,uBAAuB,QAAQ,qBAAqB;AAE7D,SAASC,uBAAuB,QAAQ,qBAAqB;AAE7D,SAASC,0BAA0B,QAAQ,wBAAwB;AAEnE,SAASC,kBAAkB,QAAQ,mBAAmB;AAEtD,SAASC,wBAAwB,QAAQ,yBAAyB;AAClE,SAASC,sBAAsB,QAAQ,uBAAuB;AAC9D,SAASC,YAAY,QAAQ,uBAAuB;AAGpD,MAAMC,WAAW,GAAGC,OAAO;;AAE3B;;AAgBA;AACA;AACA;AACA,MAAMC,eAA8E,GAAG;EACrFC,OAAO,EAAEZ,oBAAoB;EAC7Ba,OAAO,EAAEX,uBAAuB;EAChCY,OAAO,EAAEX,uBAAuB;EAChCY,UAAU,EAAEX,0BAA0B;EACtCY,KAAK,EAAEX,kBAAkB;EACzBY,WAAW,EAAEX,wBAAwB;EACrCY,SAAS,EAAEX;AACb,CAAC;AAED,MAAMY,gBAAsC,GAAG,CAC7C,SAAS,EACT,SAAS,EACT,YAAY,EACZ,SAAS,EACT,OAAO,EACP,WAAW,CACZ;AAED,SAASC,qBAAqBA,CAACC,OAAuB,EAAqB;EACzE,MAAMC,QAA2B,GAAG,EAAE;EACtC,MAAMC,OAAO,GAAGC,MAAM,CAACD,OAAO,CAACF,OAAO,CAAoC;EAE1E,KAAK,MAAM,CAACI,IAAI,EAAEC,MAAM,CAAC,IAAIH,OAAO,EAAE;IACpC,IAAIG,MAAM,KAAK,KAAK,EAAE;IAEtB,MAAMC,OAAO,GAAGhB,eAAe,CAACc,IAAI,CAAC;IACrC,IAAI,CAACE,OAAO,EAAE;MACZd,OAAO,CAACe,IAAI,CAAC,oCAAoCH,IAAI,GAAG,CAAC;MACzD;IACF;IAEA,IAAIC,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAKG,SAAS,EAAE;MAC3CP,QAAQ,CAACQ,IAAI,CAACH,OAAO,CAAC,CAAC,CAAC;IAC1B,CAAC,MAAM,IAAI,OAAOD,MAAM,KAAK,QAAQ,EAAE;MACrCJ,QAAQ,CAACQ,IAAI,CAACH,OAAO,CAACD,MAAiC,CAAC,CAAC;IAC3D;EACF;EAEA,OAAOJ,QAAQ;AACjB;AAEA,SAASS,sBAAsBA,CAAA,EAAsB;EACnD,OAAOZ,gBAAgB,CAACa,GAAG,CAAEP,IAAI,IAAKd,eAAe,CAACc,IAAI,CAAC,CAAE,CAAC,CAAC;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASQ,sBAAsBA,CACpCC,OAA2B,EACN;EACrB,MAAMC,OAAO,GAAGD,OAAO,EAAEC,OAAO,IAAI1B,WAAW;EAE/C,MAAM2B,gBAAgB,GAAGF,OAAO,EAAEZ,QAAQ,GACtCF,qBAAqB,CAACc,OAAO,CAACZ,QAAQ,CAAC,GACvCS,sBAAsB,CAAC,CAAC;EAE5B,IAAI;IACFhC,YAAY,CAACsC,UAAU,CAACF,OAAO,CAAC;IAEhC,IAAI,CAACA,OAAO,EAAE;MACZpC,YAAY,CAACuC,KAAK,CAAC,CAAC;MACpB,OAAOvC,YAAY;IACrB;IAEAA,YAAY,CAACwC,eAAe,CAACH,gBAAgB,CAAC;IAE9C5B,YAAY,CAACgC,mBAAmB,CAAEC,GAAG,IAAK;MACxCxC,cAAc,CAACwC,GAAG,CAAC;IACrB,CAAC,CAAC;IAEF,IAAI1C,YAAY,CAAC2C,WAAW,CAAC,CAAC,EAAE;MAC9B3C,YAAY,CAAC4C,YAAY,CAAC,CAAC;IAC7B,CAAC,MAAM;MACL5C,YAAY,CAAC6C,YAAY,CAAC,CAAC;IAC7B;IAEApC,YAAY,CAACqC,OAAO,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtC,OAAO/C,YAAY;EACrB,CAAC,CAAC,OAAOgD,KAAK,EAAE;IACdlC,OAAO,CAACkC,KAAK,CAAC,uCAAuC,EAAEA,KAAK,CAAC;IAC7D,OAAOhD,YAAY;EACrB;AACF","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { EnvironmentTab } from './EnvironmentTab';
4
- import { urlRewriter } from '../../utils/urlRewriterRegistry';
4
+ import { setUrlRewriter } from '../../utils/urlRewriter';
5
5
 
6
6
  // Lazy AsyncStorage loader
7
7
 
@@ -21,10 +21,6 @@ function getAsyncStorage() {
21
21
  return asyncStorageModule;
22
22
  }
23
23
  const STORAGE_KEY = 'debug_toolkit_env_id';
24
-
25
- // Module-level state for synchronous URL rewriting
26
- let currentHostsMap = null;
27
- let activeEnvironmentId = null;
28
24
  function buildHostsMap(environments, targetId) {
29
25
  if (!targetId) return null;
30
26
  const target = environments.find(e => e.id === targetId);
@@ -37,25 +33,27 @@ function buildHostsMap(environments, targetId) {
37
33
  }
38
34
  return map;
39
35
  }
40
- function createUrlRewriter() {
41
- return url => {
42
- if (!currentHostsMap) return url;
43
- try {
44
- const parsed = new URL(url);
45
- const targetHost = currentHostsMap.get(parsed.host);
46
- if (targetHost) {
47
- return url.replace(parsed.host, targetHost);
48
- }
49
- } catch {
50
- // Not a valid URL or relative URL — return unchanged
51
- }
52
- return url;
53
- };
54
- }
55
36
  export const createEnvironmentFeature = initialEnvironments => {
56
37
  const listeners = new Set();
57
38
  let environments = initialEnvironments ?? [];
58
39
  let initialized = false;
40
+ let currentHostsMap = null;
41
+ let activeEnvironmentId = null;
42
+ const createUrlRewriter = () => {
43
+ return url => {
44
+ if (!currentHostsMap) return url;
45
+ try {
46
+ const parsed = new URL(url);
47
+ const targetHost = currentHostsMap.get(parsed.host);
48
+ if (targetHost) {
49
+ return url.replace(parsed.host, targetHost);
50
+ }
51
+ } catch {
52
+ // Not a valid URL or relative URL — return unchanged
53
+ }
54
+ return url;
55
+ };
56
+ };
59
57
  const getCurrentState = () => ({
60
58
  environments,
61
59
  currentEnvironmentId: activeEnvironmentId
@@ -71,9 +69,9 @@ export const createEnvironmentFeature = initialEnvironments => {
71
69
  if (initialized) {
72
70
  try {
73
71
  if (envId && environments.length > 0) {
74
- urlRewriter.set(createUrlRewriter());
72
+ setUrlRewriter(createUrlRewriter());
75
73
  } else {
76
- urlRewriter.set(null);
74
+ setUrlRewriter(null);
77
75
  }
78
76
  } catch (err) {
79
77
  if (__DEV__) console.warn('[DebugToolkit] Failed to set URL rewriter:', err);
@@ -113,7 +111,7 @@ export const createEnvironmentFeature = initialEnvironments => {
113
111
 
114
112
  // Install rewriter if an environment is already selected
115
113
  if (activeEnvironmentId && environments.length > 0) {
116
- urlRewriter.set(createUrlRewriter());
114
+ setUrlRewriter(createUrlRewriter());
117
115
  }
118
116
 
119
117
  // Async persistence load (will override if a preference exists)
@@ -126,7 +124,7 @@ export const createEnvironmentFeature = initialEnvironments => {
126
124
  },
127
125
  cleanup: () => {
128
126
  if (!initialized) return;
129
- urlRewriter.set(null);
127
+ setUrlRewriter(null);
130
128
  activeEnvironmentId = null;
131
129
  currentHostsMap = null;
132
130
  notify();
@@ -1 +1 @@
1
- {"version":3,"names":["EnvironmentTab","urlRewriter","asyncStorageModule","asyncStorageChecked","getAsyncStorage","require","default","STORAGE_KEY","currentHostsMap","activeEnvironmentId","buildHostsMap","environments","targetId","target","find","e","id","map","Map","env","set","host","createUrlRewriter","url","parsed","URL","targetHost","get","replace","createEnvironmentFeature","initialEnvironments","listeners","Set","initialized","getCurrentState","currentEnvironmentId","notify","forEach","listener","applyEnvironment","envId","length","err","__DEV__","console","warn","persistSelection","storage","setItem","loadPersistedSelection","stored","getItem","some","name","label","renderContent","setup","getSnapshot","clear","cleanup","subscribe","add","delete","registerEnvironments","envs","switchEnvironment","getCurrentEnvironmentId","badge","substring","toUpperCase","color"],"sourceRoot":"../../../../src","sources":["features/environment/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["EnvironmentTab","setUrlRewriter","asyncStorageModule","asyncStorageChecked","getAsyncStorage","require","default","STORAGE_KEY","buildHostsMap","environments","targetId","target","find","e","id","map","Map","env","set","host","createEnvironmentFeature","initialEnvironments","listeners","Set","initialized","currentHostsMap","activeEnvironmentId","createUrlRewriter","url","parsed","URL","targetHost","get","replace","getCurrentState","currentEnvironmentId","notify","forEach","listener","applyEnvironment","envId","length","err","__DEV__","console","warn","persistSelection","storage","setItem","loadPersistedSelection","stored","getItem","some","name","label","renderContent","setup","getSnapshot","clear","cleanup","subscribe","add","delete","registerEnvironments","envs","switchEnvironment","getCurrentEnvironmentId","badge","substring","toUpperCase","color"],"sourceRoot":"../../../../src","sources":["features/environment/index.ts"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  import { NetworkLogTab } from './NetworkLogTab';
4
+ import { createChannelFeature } from '../../utils/createChannelFeature';
4
5
  import { createEventChannel } from '../../utils/createEventChannel';
5
- import { createPersistedObservableStore } from '../../utils/createPersistedObservableStore';
6
6
  import { KEYS } from '../../utils/debugPreferences';
7
- import { urlRewriter } from '../../utils/urlRewriterRegistry';
8
7
  import { startXMLHttpRequest, resetInterceptors } from './networkInterceptor';
8
+ import { setUrlRewriter as setInterceptorUrlRewriter } from '../../utils/urlRewriter';
9
+
9
10
  // ─── Utilities ────────────────────────────────────────
10
11
 
11
12
  function isUrlBlacklisted(url, blacklist) {
@@ -24,57 +25,35 @@ function emitNetworkLog(entry) {
24
25
 
25
26
  // ─── Feature factory ──────────────────────────────────
26
27
 
27
- const DEFAULT_MAX_LOGS = 200;
28
28
  const daemonEndpointBlacklist = [];
29
29
  export const createNetworkFeature = config => {
30
- const maxLogs = config?.maxLogs ?? DEFAULT_MAX_LOGS;
31
- const blacklist = config?.blacklist ? [...config.blacklist] : [];
32
- const logStore = createPersistedObservableStore({
33
- storageKey: KEYS.networkLogs,
34
- maxPersist: 30
35
- });
36
- let initialized = false;
37
- let unsubscribeLogs = null;
38
- let stopXhrFn = null;
39
- const handleLog = entry => {
40
- if (isUrlBlacklisted(entry.request.url, [...blacklist, ...daemonEndpointBlacklist])) {
41
- return;
42
- }
43
- logStore.push({
44
- ...entry,
45
- id: logStore.nextId()
46
- }, maxLogs);
47
- };
48
- return {
30
+ const userBlacklist = config?.blacklist ? [...config.blacklist] : [];
31
+ return createChannelFeature(() => networkChannel, (payload, id) => ({
32
+ ...payload,
33
+ id
34
+ }), {
49
35
  name: 'network',
50
36
  label: 'Network',
51
37
  renderContent: NetworkLogTab,
52
- setup: () => {
53
- if (initialized) {
54
- return;
55
- }
56
- unsubscribeLogs = networkChannel.subscribe(handleLog);
57
- stopXhrFn = startXMLHttpRequest(emitNetworkLog);
58
- initialized = true;
38
+ maxLogs: config?.maxLogs,
39
+ persist: {
40
+ storageKey: KEYS.networkLogs,
41
+ maxPersist: 30
59
42
  },
60
- getSnapshot: () => logStore.getData(),
61
- clear: () => {
62
- logStore.clear();
63
- },
64
- cleanup: () => {
65
- if (!initialized) {
66
- return;
43
+ beforePush: payload => {
44
+ if (isUrlBlacklisted(payload.request.url, [...userBlacklist, ...daemonEndpointBlacklist])) {
45
+ return null;
67
46
  }
68
- urlRewriter.set(null);
69
- unsubscribeLogs?.();
70
- unsubscribeLogs = null;
71
- stopXhrFn?.();
72
- stopXhrFn = null;
73
- logStore.clear();
74
- initialized = false;
47
+ return payload;
75
48
  },
76
- subscribe: listener => logStore.subscribe(listener)
77
- };
49
+ onSetup: () => {
50
+ const stopXhr = startXMLHttpRequest(emitNetworkLog);
51
+ return () => {
52
+ setInterceptorUrlRewriter(null);
53
+ stopXhr();
54
+ };
55
+ }
56
+ });
78
57
  };
79
58
  function normalizeDaemonEndpoint(endpoint) {
80
59
  const trimmed = endpoint.trim().replace(/\/+$/, '');
@@ -88,7 +67,7 @@ function normalizeDaemonEndpoint(endpoint) {
88
67
  return trimmed;
89
68
  }
90
69
  }
91
- export function _addDaemonEndpointToNetworkBlacklist(endpoint) {
70
+ export function addToBlacklist(endpoint) {
92
71
  const normalized = normalizeDaemonEndpoint(endpoint);
93
72
  if (!normalized || daemonEndpointBlacklist.includes(normalized)) {
94
73
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["NetworkLogTab","createEventChannel","createPersistedObservableStore","KEYS","urlRewriter","startXMLHttpRequest","resetInterceptors","isUrlBlacklisted","url","blacklist","some","pattern","RegExp","test","includes","networkChannel","emitNetworkLog","entry","emit","DEFAULT_MAX_LOGS","daemonEndpointBlacklist","createNetworkFeature","config","maxLogs","logStore","storageKey","networkLogs","maxPersist","initialized","unsubscribeLogs","stopXhrFn","handleLog","request","push","id","nextId","name","label","renderContent","setup","subscribe","getSnapshot","getData","clear","cleanup","set","listener","normalizeDaemonEndpoint","endpoint","trimmed","trim","replace","URL","origin","pathname","_addDaemonEndpointToNetworkBlacklist","normalized","_isNetworkUrlBlacklistedForTesting","_resetNetworkForTesting","splice","length"],"sourceRoot":"../../../../src","sources":["features/network/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NetworkLogTab","createChannelFeature","createEventChannel","KEYS","startXMLHttpRequest","resetInterceptors","setUrlRewriter","setInterceptorUrlRewriter","isUrlBlacklisted","url","blacklist","some","pattern","RegExp","test","includes","networkChannel","emitNetworkLog","entry","emit","daemonEndpointBlacklist","createNetworkFeature","config","userBlacklist","payload","id","name","label","renderContent","maxLogs","persist","storageKey","networkLogs","maxPersist","beforePush","request","onSetup","stopXhr","normalizeDaemonEndpoint","endpoint","trimmed","trim","replace","URL","origin","pathname","addToBlacklist","normalized","push","_isNetworkUrlBlacklistedForTesting","_resetNetworkForTesting","splice","length"],"sourceRoot":"../../../../src","sources":["features/network/index.ts"],"mappings":"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","ignoreList":[]}
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- import { urlRewriter } from '../../utils/urlRewriterRegistry';
3
+ import { getUrlRewriter } from '../../utils/urlRewriter';
4
4
  // Intercepts React Native's XMLHttpRequest transport layer.
5
5
  // RN fetch and axios (default adapter) both go through XHR — one hook captures everything.
6
6
 
7
7
  // ─── Shared helpers ────────────────────────────────────
8
8
 
9
9
  function rewriteUrl(url) {
10
- const rewriter = urlRewriter.get();
10
+ const rewriter = getUrlRewriter();
11
11
  if (!rewriter) {
12
12
  return url;
13
13
  }
@@ -129,7 +129,7 @@ export function startXMLHttpRequest(emit) {
129
129
  originalXhrSend = CurrentXMLHttpRequest.prototype.send;
130
130
  originalXhrSetRequestHeader = CurrentXMLHttpRequest.prototype.setRequestHeader;
131
131
  CurrentXMLHttpRequest.prototype.open = function interceptedOpen(method, url, ...args) {
132
- const rewrittenUrl = urlRewriter.get() ? rewriteUrl(url) : url;
132
+ const rewrittenUrl = rewriteUrl(url);
133
133
  if (shouldIgnoreUrl(rewrittenUrl)) {
134
134
  return originalXhrOpen.call(this, method, rewrittenUrl, ...args);
135
135
  }