@depup/react-native__dev-middleware 0.84.1-depup.1 → 0.85.0-depup.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 (44) hide show
  1. package/README.md +3 -4
  2. package/changes.json +2 -6
  3. package/dist/createDevMiddleware.d.ts +18 -9
  4. package/dist/createDevMiddleware.js +7 -17
  5. package/dist/createDevMiddleware.js.flow +21 -12
  6. package/dist/index.d.ts +4 -3
  7. package/dist/index.js +4 -4
  8. package/dist/index.js.flow +4 -3
  9. package/dist/inspector-proxy/CustomMessageHandler.js.flow +3 -3
  10. package/dist/inspector-proxy/Device.d.ts +6 -3
  11. package/dist/inspector-proxy/Device.js +197 -161
  12. package/dist/inspector-proxy/Device.js.flow +9 -6
  13. package/dist/inspector-proxy/DeviceEventReporter.d.ts +0 -3
  14. package/dist/inspector-proxy/DeviceEventReporter.js +0 -10
  15. package/dist/inspector-proxy/DeviceEventReporter.js.flow +5 -8
  16. package/dist/inspector-proxy/InspectorProxy.d.ts +3 -2
  17. package/dist/inspector-proxy/InspectorProxy.js +47 -15
  18. package/dist/inspector-proxy/InspectorProxy.js.flow +3 -2
  19. package/dist/inspector-proxy/__docs__/README.md +324 -0
  20. package/dist/inspector-proxy/cdp-types/messages.js.flow +3 -3
  21. package/dist/inspector-proxy/types.d.ts +24 -9
  22. package/dist/inspector-proxy/types.js.flow +36 -22
  23. package/dist/middleware/openDebuggerMiddleware.d.ts +4 -6
  24. package/dist/middleware/openDebuggerMiddleware.js +12 -22
  25. package/dist/middleware/openDebuggerMiddleware.js.flow +5 -7
  26. package/dist/types/{BrowserLauncher.js.flow → DevToolLauncher.d.ts} +10 -13
  27. package/dist/types/{BrowserLauncher.d.ts → DevToolLauncher.js.flow} +14 -12
  28. package/dist/types/EventReporter.d.ts +24 -27
  29. package/dist/types/EventReporter.js.flow +1 -7
  30. package/dist/types/Experiments.d.ts +8 -4
  31. package/dist/types/Experiments.js.flow +9 -5
  32. package/dist/types/Logger.js.flow +1 -1
  33. package/dist/types/ReadonlyURL.d.ts +53 -0
  34. package/dist/types/ReadonlyURL.js +1 -0
  35. package/dist/types/ReadonlyURL.js.flow +54 -0
  36. package/dist/utils/{DefaultBrowserLauncher.d.ts → DefaultToolLauncher.d.ts} +7 -11
  37. package/dist/utils/{DefaultBrowserLauncher.js → DefaultToolLauncher.js} +21 -4
  38. package/dist/utils/DefaultToolLauncher.js.flow +25 -0
  39. package/dist/utils/getDevToolsFrontendUrl.d.ts +2 -3
  40. package/dist/utils/getDevToolsFrontendUrl.js +3 -6
  41. package/dist/utils/getDevToolsFrontendUrl.js.flow +3 -4
  42. package/package.json +10 -14
  43. package/dist/utils/DefaultBrowserLauncher.js.flow +0 -29
  44. /package/dist/types/{BrowserLauncher.js → DevToolLauncher.js} +0 -0
package/README.md CHANGED
@@ -13,10 +13,10 @@ npm install @depup/react-native__dev-middleware
13
13
 
14
14
  | Field | Value |
15
15
  |-------|-------|
16
- | Original | [@react-native/dev-middleware](https://www.npmjs.com/package/@react-native/dev-middleware) @ 0.84.1 |
17
- | Processed | 2026-03-21 |
16
+ | Original | [@react-native/dev-middleware](https://www.npmjs.com/package/@react-native/dev-middleware) @ 0.85.0 |
17
+ | Processed | 2026-04-07 |
18
18
  | Smoke test | failed |
19
- | Deps updated | 8 |
19
+ | Deps updated | 7 |
20
20
 
21
21
  ## Dependency Changes
22
22
 
@@ -24,7 +24,6 @@ npm install @depup/react-native__dev-middleware
24
24
  |------------|------|-----|
25
25
  | @isaacs/ttlcache | ^1.4.1 | ^2.1.4 |
26
26
  | chrome-launcher | ^0.15.2 | ^1.2.1 |
27
- | chromium-edge-launcher | ^0.2.0 | ^0.3.0 |
28
27
  | connect | ^3.6.5 | ^3.7.0 |
29
28
  | debug | ^4.4.0 | ^4.4.3 |
30
29
  | open | ^7.0.3 | ^11.0.0 |
package/changes.json CHANGED
@@ -8,10 +8,6 @@
8
8
  "from": "^0.15.2",
9
9
  "to": "^1.2.1"
10
10
  },
11
- "chromium-edge-launcher": {
12
- "from": "^0.2.0",
13
- "to": "^0.3.0"
14
- },
15
11
  "connect": {
16
12
  "from": "^3.6.5",
17
13
  "to": "^3.7.0"
@@ -33,6 +29,6 @@
33
29
  "to": "^8.20.0"
34
30
  }
35
31
  },
36
- "timestamp": "2026-03-21T20:09:16.980Z",
37
- "totalUpdated": 8
32
+ "timestamp": "2026-04-07T16:27:40.670Z",
33
+ "totalUpdated": 7
38
34
  }
@@ -9,27 +9,28 @@
9
9
  */
10
10
 
11
11
  import type { CreateCustomMessageHandlerFn } from "./inspector-proxy/CustomMessageHandler";
12
- import type { BrowserLauncher } from "./types/BrowserLauncher";
12
+ import type { DevToolLauncher } from "./types/DevToolLauncher";
13
13
  import type { EventReporter } from "./types/EventReporter";
14
14
  import type { ExperimentsConfig } from "./types/Experiments";
15
15
  import type { Logger } from "./types/Logger";
16
+ import type { ReadonlyURL } from "./types/ReadonlyURL";
16
17
  import type { NextHandleFunction } from "connect";
17
18
  type Options = Readonly<{
18
19
  /**
19
20
  * The base URL to the dev server, as reachable from the machine on which
20
21
  * dev-middleware is hosted. Typically `http://localhost:${metroPort}`.
21
22
  */
22
- serverBaseUrl: string;
23
- logger?: Logger;
23
+ serverBaseUrl: string | ReadonlyURL;
24
24
  /**
25
- * An interface for integrators to provide a custom implementation for
26
- * opening URLs in a web browser.
25
+ * An implementation for logging messages to the terminal (recommended).
27
26
  *
28
- * This is an unstable API with no semver guarantees.
27
+ * In `@react-native/community-cli-plugin`, this reuses Metro's
28
+ * 'unstable_server_log' event in `TerminalReporter`.
29
29
  */
30
- unstable_browserLauncher?: BrowserLauncher;
30
+ logger?: Logger;
31
31
  /**
32
- * An interface for logging events.
32
+ * An `EventReporter` implementation for logging structured events
33
+ * (recommended).
33
34
  *
34
35
  * This is an unstable API with no semver guarantees.
35
36
  */
@@ -40,6 +41,13 @@ type Options = Readonly<{
40
41
  * This is an unstable API with no semver guarantees.
41
42
  */
42
43
  unstable_experiments?: ExperimentsConfig;
44
+ /**
45
+ * Override the default handlers for launching external applications (the
46
+ * debugger frontend) on the host machine (or target dev machine).
47
+ *
48
+ * This is an unstable API with no semver guarantees.
49
+ */
50
+ unstable_toolLauncher?: DevToolLauncher;
43
51
  /**
44
52
  * Create custom handler to add support for unsupported CDP events, or debuggers.
45
53
  * This handler is instantiated per logical device and debugger pair.
@@ -48,7 +56,8 @@ type Options = Readonly<{
48
56
  */
49
57
  unstable_customInspectorMessageHandler?: CreateCustomMessageHandlerFn;
50
58
  /**
51
- * Whether to measure the event loop performance of inspector proxy and log report it via the event reporter.
59
+ * Whether to measure the event loop performance of inspector proxy and
60
+ * report it via the event reporter.
52
61
  *
53
62
  * This is an unstable API with no semver guarantees.
54
63
  */
@@ -10,8 +10,8 @@ var _InspectorProxy = _interopRequireDefault(
10
10
  var _openDebuggerMiddleware = _interopRequireDefault(
11
11
  require("./middleware/openDebuggerMiddleware"),
12
12
  );
13
- var _DefaultBrowserLauncher = _interopRequireDefault(
14
- require("./utils/DefaultBrowserLauncher"),
13
+ var _DefaultToolLauncher = _interopRequireDefault(
14
+ require("./utils/DefaultToolLauncher"),
15
15
  );
16
16
  var _debuggerFrontend = _interopRequireDefault(
17
17
  require("@react-native/debugger-frontend"),
@@ -25,12 +25,13 @@ function _interopRequireDefault(e) {
25
25
  function createDevMiddleware({
26
26
  serverBaseUrl,
27
27
  logger,
28
- unstable_browserLauncher = _DefaultBrowserLauncher.default,
29
28
  unstable_eventReporter,
30
29
  unstable_experiments: experimentConfig = {},
30
+ unstable_toolLauncher = _DefaultToolLauncher.default,
31
31
  unstable_customInspectorMessageHandler,
32
32
  unstable_trackInspectorProxyEventLoopPerf = false,
33
33
  }) {
34
+ const normalizedServerBaseUrl = new URL(serverBaseUrl);
34
35
  const experiments = getExperiments(experimentConfig);
35
36
  const eventReporter = createWrappedEventReporter(
36
37
  unstable_eventReporter,
@@ -38,7 +39,7 @@ function createDevMiddleware({
38
39
  experiments,
39
40
  );
40
41
  const inspectorProxy = new _InspectorProxy.default(
41
- serverBaseUrl,
42
+ normalizedServerBaseUrl,
42
43
  eventReporter,
43
44
  experiments,
44
45
  logger,
@@ -49,9 +50,9 @@ function createDevMiddleware({
49
50
  .use(
50
51
  "/open-debugger",
51
52
  (0, _openDebuggerMiddleware.default)({
52
- serverBaseUrl,
53
+ serverBaseUrl: normalizedServerBaseUrl,
53
54
  inspectorProxy,
54
- browserLauncher: unstable_browserLauncher,
55
+ toolLauncher: unstable_toolLauncher,
55
56
  eventReporter,
56
57
  experiments,
57
58
  logger,
@@ -93,17 +94,6 @@ function createWrappedEventReporter(reporter, logger, experiments) {
93
94
  event.appId ?? "unknown",
94
95
  );
95
96
  break;
96
- case "fusebox_console_notice":
97
- logger?.info(
98
- "\u001B[1m\u001B[7m💡 JavaScript logs have moved!\u001B[22m They can now be " +
99
- "viewed in React Native DevTools. Tip: Type \u001B[1mj\u001B[22m in " +
100
- "the terminal to open" +
101
- (experiments.enableStandaloneFuseboxShell
102
- ? ""
103
- : " (requires Google Chrome or Microsoft Edge)") +
104
- ".\u001B[27m",
105
- );
106
- break;
107
97
  case "fusebox_shell_preparation_attempt":
108
98
  switch (event.result.code) {
109
99
  case "success":
@@ -9,31 +9,31 @@
9
9
  */
10
10
 
11
11
  import type { CreateCustomMessageHandlerFn } from "./inspector-proxy/CustomMessageHandler";
12
- import type { BrowserLauncher } from "./types/BrowserLauncher";
12
+ import type { DevToolLauncher } from "./types/DevToolLauncher";
13
13
  import type { EventReporter } from "./types/EventReporter";
14
14
  import type { ExperimentsConfig } from "./types/Experiments";
15
15
  import type { Logger } from "./types/Logger";
16
+ import type { ReadonlyURL } from "./types/ReadonlyURL";
16
17
  import type { NextHandleFunction } from "connect";
17
18
 
18
- type Options = $ReadOnly<{
19
+ type Options = Readonly<{
19
20
  /**
20
21
  * The base URL to the dev server, as reachable from the machine on which
21
22
  * dev-middleware is hosted. Typically `http://localhost:${metroPort}`.
22
23
  */
23
- serverBaseUrl: string,
24
-
25
- logger?: Logger,
24
+ serverBaseUrl: string | ReadonlyURL,
26
25
 
27
26
  /**
28
- * An interface for integrators to provide a custom implementation for
29
- * opening URLs in a web browser.
27
+ * An implementation for logging messages to the terminal (recommended).
30
28
  *
31
- * This is an unstable API with no semver guarantees.
29
+ * In `@react-native/community-cli-plugin`, this reuses Metro's
30
+ * 'unstable_server_log' event in `TerminalReporter`.
32
31
  */
33
- unstable_browserLauncher?: BrowserLauncher,
32
+ logger?: Logger,
34
33
 
35
34
  /**
36
- * An interface for logging events.
35
+ * An `EventReporter` implementation for logging structured events
36
+ * (recommended).
37
37
  *
38
38
  * This is an unstable API with no semver guarantees.
39
39
  */
@@ -46,6 +46,14 @@ type Options = $ReadOnly<{
46
46
  */
47
47
  unstable_experiments?: ExperimentsConfig,
48
48
 
49
+ /**
50
+ * Override the default handlers for launching external applications (the
51
+ * debugger frontend) on the host machine (or target dev machine).
52
+ *
53
+ * This is an unstable API with no semver guarantees.
54
+ */
55
+ unstable_toolLauncher?: DevToolLauncher,
56
+
49
57
  /**
50
58
  * Create custom handler to add support for unsupported CDP events, or debuggers.
51
59
  * This handler is instantiated per logical device and debugger pair.
@@ -55,14 +63,15 @@ type Options = $ReadOnly<{
55
63
  unstable_customInspectorMessageHandler?: CreateCustomMessageHandlerFn,
56
64
 
57
65
  /**
58
- * Whether to measure the event loop performance of inspector proxy and log report it via the event reporter.
66
+ * Whether to measure the event loop performance of inspector proxy and
67
+ * report it via the event reporter.
59
68
  *
60
69
  * This is an unstable API with no semver guarantees.
61
70
  */
62
71
  unstable_trackInspectorProxyEventLoopPerf?: boolean,
63
72
  }>;
64
73
 
65
- type DevMiddlewareAPI = $ReadOnly<{
74
+ type DevMiddlewareAPI = Readonly<{
66
75
  middleware: NextHandleFunction,
67
76
  websocketEndpoints: { [path: string]: ws$WebSocketServer },
68
77
  }>;
package/dist/index.d.ts CHANGED
@@ -9,9 +9,9 @@
9
9
  */
10
10
 
11
11
  export type {
12
- BrowserLauncher,
12
+ DevToolLauncher,
13
13
  DebuggerShellPreparationResult,
14
- } from "./types/BrowserLauncher";
14
+ } from "./types/DevToolLauncher";
15
15
  export type { EventReporter, ReportableEvent } from "./types/EventReporter";
16
16
  export type {
17
17
  CustomMessageHandler,
@@ -19,5 +19,6 @@ export type {
19
19
  CreateCustomMessageHandlerFn,
20
20
  } from "./inspector-proxy/CustomMessageHandler";
21
21
  export type { Logger } from "./types/Logger";
22
- export { default as unstable_DefaultBrowserLauncher } from "./utils/DefaultBrowserLauncher";
22
+ export type { ReadonlyURL } from "./types/ReadonlyURL";
23
+ export { default as unstable_DefaultToolLauncher } from "./utils/DefaultToolLauncher";
23
24
  export { default as createDevMiddleware } from "./createDevMiddleware";
package/dist/index.js CHANGED
@@ -9,14 +9,14 @@ Object.defineProperty(exports, "createDevMiddleware", {
9
9
  return _createDevMiddleware.default;
10
10
  },
11
11
  });
12
- Object.defineProperty(exports, "unstable_DefaultBrowserLauncher", {
12
+ Object.defineProperty(exports, "unstable_DefaultToolLauncher", {
13
13
  enumerable: true,
14
14
  get: function () {
15
- return _DefaultBrowserLauncher.default;
15
+ return _DefaultToolLauncher.default;
16
16
  },
17
17
  });
18
- var _DefaultBrowserLauncher = _interopRequireDefault(
19
- require("./utils/DefaultBrowserLauncher"),
18
+ var _DefaultToolLauncher = _interopRequireDefault(
19
+ require("./utils/DefaultToolLauncher"),
20
20
  );
21
21
  var _createDevMiddleware = _interopRequireDefault(
22
22
  require("./createDevMiddleware"),
@@ -9,9 +9,9 @@
9
9
  */
10
10
 
11
11
  export type {
12
- BrowserLauncher,
12
+ DevToolLauncher,
13
13
  DebuggerShellPreparationResult,
14
- } from "./types/BrowserLauncher";
14
+ } from "./types/DevToolLauncher";
15
15
  export type { EventReporter, ReportableEvent } from "./types/EventReporter";
16
16
  export type {
17
17
  CustomMessageHandler,
@@ -19,6 +19,7 @@ export type {
19
19
  CreateCustomMessageHandlerFn,
20
20
  } from "./inspector-proxy/CustomMessageHandler";
21
21
  export type { Logger } from "./types/Logger";
22
+ export type { ReadonlyURL } from "./types/ReadonlyURL";
22
23
 
23
- export { default as unstable_DefaultBrowserLauncher } from "./utils/DefaultBrowserLauncher";
24
+ export { default as unstable_DefaultToolLauncher } from "./utils/DefaultToolLauncher";
24
25
  export { default as createDevMiddleware } from "./createDevMiddleware";
@@ -10,19 +10,19 @@
10
10
 
11
11
  import type { JSONSerializable, Page } from "./types";
12
12
 
13
- type ExposedDevice = $ReadOnly<{
13
+ type ExposedDevice = Readonly<{
14
14
  appId: string,
15
15
  id: string,
16
16
  name: string,
17
17
  sendMessage: (message: JSONSerializable) => void,
18
18
  }>;
19
19
 
20
- type ExposedDebugger = $ReadOnly<{
20
+ type ExposedDebugger = Readonly<{
21
21
  userAgent: string | null,
22
22
  sendMessage: (message: JSONSerializable) => void,
23
23
  }>;
24
24
 
25
- export type CustomMessageHandlerConnection = $ReadOnly<{
25
+ export type CustomMessageHandlerConnection = Readonly<{
26
26
  page: Page,
27
27
  device: ExposedDevice,
28
28
  debugger: ExposedDebugger,
@@ -9,6 +9,8 @@
9
9
  */
10
10
 
11
11
  import type { EventReporter } from "../types/EventReporter";
12
+ import type { Experiments } from "../types/Experiments";
13
+ import type { ReadonlyURL } from "../types/ReadonlyURL";
12
14
  import type { CreateCustomMessageHandlerFn } from "./CustomMessageHandler";
13
15
  import type { Page } from "./types";
14
16
  import WS from "ws";
@@ -26,9 +28,10 @@ export type DeviceOptions = Readonly<{
26
28
  socket: WS;
27
29
  eventReporter: null | undefined | EventReporter;
28
30
  createMessageMiddleware: null | undefined | CreateCustomMessageHandlerFn;
29
- deviceRelativeBaseUrl: URL;
30
- serverRelativeBaseUrl: URL;
31
+ deviceRelativeBaseUrl: ReadonlyURL;
32
+ serverRelativeBaseUrl: ReadonlyURL;
31
33
  isProfilingBuild: boolean;
34
+ experiments: Experiments;
32
35
  }>;
33
36
  /**
34
37
  * Device class represents single device connection to Inspector Proxy. Each device
@@ -53,7 +56,7 @@ declare class Device {
53
56
  socket: WS,
54
57
  pageId: string,
55
58
  $$PARAM_2$$: Readonly<{
56
- debuggerRelativeBaseUrl: URL;
59
+ debuggerRelativeBaseUrl: ReadonlyURL;
57
60
  userAgent: string | null;
58
61
  }>,
59
62
  ): void;