@react-native/dev-middleware 0.78.0-nightly-20241127-40c194cf4 → 0.78.0-nightly-20241128-5da7089e3

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.
@@ -32,10 +32,14 @@ function createDevMiddleware({
32
32
  unstable_customInspectorMessageHandler,
33
33
  }) {
34
34
  const experiments = getExperiments(experimentConfig);
35
+ const eventReporter = createWrappedEventReporter(
36
+ unstable_eventReporter,
37
+ logger
38
+ );
35
39
  const inspectorProxy = new _InspectorProxy.default(
36
40
  projectRoot,
37
41
  serverBaseUrl,
38
- unstable_eventReporter,
42
+ eventReporter,
39
43
  experiments,
40
44
  unstable_customInspectorMessageHandler
41
45
  );
@@ -46,7 +50,7 @@ function createDevMiddleware({
46
50
  serverBaseUrl,
47
51
  inspectorProxy,
48
52
  browserLauncher: unstable_browserLauncher,
49
- eventReporter: unstable_eventReporter,
53
+ eventReporter,
50
54
  experiments,
51
55
  logger,
52
56
  })
@@ -76,3 +80,17 @@ function getExperiments(config) {
76
80
  enableNetworkInspector: config.enableNetworkInspector ?? false,
77
81
  };
78
82
  }
83
+ function createWrappedEventReporter(reporter, logger) {
84
+ return {
85
+ logEvent(event) {
86
+ switch (event.type) {
87
+ case "profiling_target_registered":
88
+ logger?.info(
89
+ `Profiling build target "${event.appId}" registered for debugging`
90
+ );
91
+ break;
92
+ }
93
+ reporter?.logEvent(event);
94
+ },
95
+ };
96
+ }
@@ -23,6 +23,7 @@ export type DeviceOptions = Readonly<{
23
23
  createMessageMiddleware: null | undefined | CreateCustomMessageHandlerFn;
24
24
  deviceRelativeBaseUrl: URL;
25
25
  serverRelativeBaseUrl: URL;
26
+ isProfilingBuild: boolean;
26
27
  }>;
27
28
  /**
28
29
  * Device class represents single device connection to Inspector Proxy. Each device
@@ -73,6 +73,7 @@ class Device {
73
73
  createMessageMiddleware,
74
74
  serverRelativeBaseUrl,
75
75
  deviceRelativeBaseUrl,
76
+ isProfilingBuild,
76
77
  }) {
77
78
  this.#id = id;
78
79
  this.#name = name;
@@ -89,6 +90,9 @@ class Device {
89
90
  })
90
91
  : null;
91
92
  this.#createCustomMessageHandler = createMessageMiddleware;
93
+ if (isProfilingBuild) {
94
+ this.#deviceEventReporter?.logProfilingTargetRegistered();
95
+ }
92
96
  this.#deviceSocket.on("message", (message) => {
93
97
  this.#messageFromDeviceQueue = this.#messageFromDeviceQueue
94
98
  .then(async () => {
@@ -25,6 +25,7 @@ export type DeviceOptions = $ReadOnly<{
25
25
  createMessageMiddleware: ?CreateCustomMessageHandlerFn,
26
26
  deviceRelativeBaseUrl: URL,
27
27
  serverRelativeBaseUrl: URL,
28
+ isProfilingBuild: boolean,
28
29
  }>;
29
30
 
30
31
  /**
@@ -38,6 +38,7 @@ declare class DeviceEventReporter {
38
38
  origin: "device" | "proxy",
39
39
  metadata: ResponseMetadata
40
40
  ): void;
41
+ logProfilingTargetRegistered(): void;
41
42
  logConnection(
42
43
  connectedEntity: "debugger",
43
44
  metadata: Readonly<{ pageId: string; frontendUserAgent: string | null }>
@@ -95,6 +95,16 @@ class DeviceEventReporter {
95
95
  prefersFuseboxFrontend: metadata.prefersFuseboxFrontend,
96
96
  });
97
97
  }
98
+ logProfilingTargetRegistered() {
99
+ this.#eventReporter.logEvent({
100
+ type: "profiling_target_registered",
101
+ status: "success",
102
+ appId: this.#metadata.appId,
103
+ deviceName: this.#metadata.deviceName,
104
+ deviceId: this.#metadata.deviceId,
105
+ pageId: null,
106
+ });
107
+ }
98
108
  logConnection(connectedEntity, metadata) {
99
109
  this.#eventReporter.logEvent({
100
110
  type: "connect_debugger_frontend",
@@ -42,6 +42,7 @@ declare class DeviceEventReporter {
42
42
  origin: "device" | "proxy",
43
43
  metadata: ResponseMetadata
44
44
  ): void;
45
+ logProfilingTargetRegistered(): void;
45
46
  logConnection(
46
47
  connectedEntity: "debugger",
47
48
  metadata: $ReadOnly<{
@@ -141,6 +141,7 @@ class InspectorProxy {
141
141
  const deviceId = query.device || fallbackDeviceId;
142
142
  const deviceName = query.name || "Unknown";
143
143
  const appName = query.app || "Unknown";
144
+ const isProfilingBuild = query.profiling === "true";
144
145
  const deviceRelativeBaseUrl =
145
146
  (0, _getBaseUrlFromRequest.default)(req) ?? this.#serverBaseUrl;
146
147
  const oldDevice = this.#devices.get(deviceId);
@@ -155,6 +156,7 @@ class InspectorProxy {
155
156
  createMessageMiddleware: this.#customMessageHandler,
156
157
  deviceRelativeBaseUrl,
157
158
  serverRelativeBaseUrl: this.#serverBaseUrl,
159
+ isProfilingBuild,
158
160
  };
159
161
  if (oldDevice) {
160
162
  oldDevice.dangerouslyRecreateDevice(deviceOptions);
@@ -75,7 +75,12 @@ export type ReportableEvent =
75
75
  **/
76
76
  any
77
77
  | /**
78
- * > 87 | ...DebuggerSessionIDs,
78
+ * > 83 | ...DebuggerSessionIDs,
79
+ * | ^^^^^^^^^^^^^^^^^^^^^ Unsupported feature: Translating "object types with spreads in the middle or at the end" is currently not supported.
80
+ **/
81
+ any
82
+ | /**
83
+ * > 92 | ...DebuggerSessionIDs,
79
84
  * | ^^^^^^^^^^^^^^^^^^^^^ Unsupported feature: Translating "object types with spreads in the middle or at the end" is currently not supported.
80
85
  **/
81
86
  any;
@@ -77,6 +77,11 @@ export type ReportableEvent =
77
77
  | "PROTOCOL_ERROR",
78
78
  >,
79
79
  }
80
+ | {
81
+ type: "profiling_target_registered",
82
+ status: "success",
83
+ ...DebuggerSessionIDs,
84
+ }
80
85
  | {
81
86
  type: "proxy_error",
82
87
  status: "error",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-native/dev-middleware",
3
- "version": "0.78.0-nightly-20241127-40c194cf4",
3
+ "version": "0.78.0-nightly-20241128-5da7089e3",
4
4
  "description": "Dev server middleware for React Native",
5
5
  "keywords": [
6
6
  "react-native",
@@ -23,7 +23,7 @@
23
23
  ],
24
24
  "dependencies": {
25
25
  "@isaacs/ttlcache": "^1.4.1",
26
- "@react-native/debugger-frontend": "0.78.0-nightly-20241127-40c194cf4",
26
+ "@react-native/debugger-frontend": "0.78.0-nightly-20241128-5da7089e3",
27
27
  "chrome-launcher": "^0.15.2",
28
28
  "chromium-edge-launcher": "^0.2.0",
29
29
  "connect": "^3.6.5",