@teardown/cli 1.2.37 → 1.2.39
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/dist/commands/dev/dev.d.ts +22 -0
- package/dist/commands/dev/dev.js +1 -0
- package/dist/commands/dev/dev.js.map +1 -0
- package/dist/commands/init/init-teardown.d.ts +9 -0
- package/dist/commands/init/init-teardown.js +1 -0
- package/dist/commands/init/init-teardown.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/dev/dev-menu/keyboard-handler.d.ts +21 -0
- package/dist/modules/dev/dev-menu/keyboard-handler.js +1 -0
- package/dist/modules/dev/dev-menu/keyboard-handler.js.map +1 -0
- package/dist/modules/dev/dev-menu/open-debugger-keyboard-handler.d.ts +18 -0
- package/dist/modules/dev/dev-menu/open-debugger-keyboard-handler.js +1 -0
- package/dist/modules/dev/dev-menu/open-debugger-keyboard-handler.js.map +1 -0
- package/dist/modules/dev/dev-server/cdp/cdp.adapter.d.ts +6 -0
- package/dist/modules/dev/dev-server/cdp/cdp.adapter.js +1 -0
- package/dist/modules/dev/dev-server/cdp/cdp.adapter.js.map +1 -0
- package/dist/modules/dev/dev-server/cdp/index.d.ts +2 -0
- package/dist/modules/dev/dev-server/cdp/index.js +1 -0
- package/dist/modules/dev/dev-server/cdp/index.js.map +1 -0
- package/dist/modules/dev/dev-server/cdp/types.d.ts +107 -0
- package/dist/modules/dev/dev-server/cdp/types.js +1 -0
- package/dist/modules/dev/dev-server/cdp/types.js.map +1 -0
- package/dist/modules/dev/dev-server/dev-server-checker.d.ts +22 -0
- package/dist/modules/dev/dev-server/dev-server-checker.js +1 -0
- package/dist/modules/dev/dev-server/dev-server-checker.js.map +1 -0
- package/dist/modules/dev/dev-server/dev-server.d.ts +74 -0
- package/dist/modules/dev/dev-server/dev-server.js +5 -2
- package/dist/modules/dev/dev-server/dev-server.js.map +1 -0
- package/dist/modules/dev/dev-server/inspector/device.d.ts +46 -0
- package/dist/modules/dev/dev-server/inspector/device.event-reporter.d.ts +37 -0
- package/dist/modules/dev/dev-server/inspector/device.event-reporter.js +1 -0
- package/dist/modules/dev/dev-server/inspector/device.event-reporter.js.map +1 -0
- package/dist/modules/dev/dev-server/inspector/device.js +1 -0
- package/dist/modules/dev/dev-server/inspector/device.js.map +1 -0
- package/dist/modules/dev/dev-server/inspector/inspector.d.ts +27 -0
- package/dist/modules/dev/dev-server/inspector/inspector.js +37 -16
- package/dist/modules/dev/dev-server/inspector/inspector.js.map +1 -0
- package/dist/modules/dev/dev-server/inspector/types.d.ts +156 -0
- package/dist/modules/dev/dev-server/inspector/types.js +1 -0
- package/dist/modules/dev/dev-server/inspector/types.js.map +1 -0
- package/dist/modules/dev/dev-server/inspector/wss/servers/debugger-connection.server.d.ts +14 -0
- package/dist/modules/dev/dev-server/inspector/wss/servers/debugger-connection.server.js +2 -0
- package/dist/modules/dev/dev-server/inspector/wss/servers/debugger-connection.server.js.map +1 -0
- package/dist/modules/dev/dev-server/inspector/wss/servers/device-connection.server.d.ts +19 -0
- package/dist/modules/dev/dev-server/inspector/wss/servers/device-connection.server.js +2 -0
- package/dist/modules/dev/dev-server/inspector/wss/servers/device-connection.server.js.map +1 -0
- package/dist/modules/dev/dev-server/plugins/devtools.plugin.d.ts +1 -0
- package/dist/modules/dev/dev-server/plugins/devtools.plugin.js +1 -0
- package/dist/modules/dev/dev-server/plugins/devtools.plugin.js.map +1 -0
- package/dist/modules/dev/dev-server/plugins/favicon.plugin.d.ts +1 -0
- package/dist/modules/dev/dev-server/plugins/favicon.plugin.js +2 -2
- package/dist/modules/dev/dev-server/plugins/favicon.plugin.js.map +1 -0
- package/dist/modules/dev/dev-server/plugins/multipart.plugin.d.ts +1 -0
- package/dist/modules/dev/dev-server/plugins/multipart.plugin.js +1 -0
- package/dist/modules/dev/dev-server/plugins/multipart.plugin.js.map +1 -0
- package/dist/modules/dev/dev-server/plugins/systrace.plugin.d.ts +1 -0
- package/dist/modules/dev/dev-server/plugins/systrace.plugin.js +1 -0
- package/dist/modules/dev/dev-server/plugins/systrace.plugin.js.map +1 -0
- package/dist/modules/dev/dev-server/plugins/types.d.ts +11 -0
- package/dist/modules/dev/dev-server/plugins/types.js +1 -0
- package/dist/modules/dev/dev-server/plugins/types.js.map +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/index.d.ts +3 -0
- package/dist/modules/dev/dev-server/plugins/wss/index.js +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/index.js.map +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-api.server.d.ts +37 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-api.server.js +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-api.server.js.map +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-debugger.server.d.ts +63 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-debugger.server.js +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-debugger.server.js.map +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-dev-client.server.d.ts +32 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-dev-client.server.js +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-dev-client.server.js.map +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-events.server.d.ts +75 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-events.server.js +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-events.server.js.map +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-hmr.server.d.ts +44 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-hmr.server.js +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-hmr.server.js.map +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-message.server.d.ts +135 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-message.server.js +7 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-message.server.js.map +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/types.d.ts +6 -0
- package/dist/modules/dev/dev-server/plugins/wss/types.js +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/types.js.map +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/web-socket-router.d.ts +32 -0
- package/dist/modules/dev/dev-server/plugins/wss/web-socket-router.js +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/web-socket-router.js.map +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/web-socket-server-adapter.d.ts +13 -0
- package/dist/modules/dev/dev-server/plugins/wss/web-socket-server-adapter.js +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/web-socket-server-adapter.js.map +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/web-socket-server.d.ts +39 -0
- package/dist/modules/dev/dev-server/plugins/wss/web-socket-server.js +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/web-socket-server.js.map +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/wss.plugin.d.ts +24 -0
- package/dist/modules/dev/dev-server/plugins/wss/wss.plugin.js +1 -0
- package/dist/modules/dev/dev-server/plugins/wss/wss.plugin.js.map +1 -0
- package/dist/modules/dev/dev-server/sybmolicate/sybmolicate.plugin.d.ts +7 -0
- package/dist/modules/dev/dev-server/sybmolicate/sybmolicate.plugin.js +13 -8
- package/dist/modules/dev/dev-server/sybmolicate/sybmolicate.plugin.js.map +1 -0
- package/dist/modules/dev/dev-server/sybmolicate/types.d.ts +64 -0
- package/dist/modules/dev/dev-server/sybmolicate/types.js +1 -0
- package/dist/modules/dev/dev-server/sybmolicate/types.js.map +1 -0
- package/dist/modules/dev/terminal/base.terminal.reporter.d.ts +25 -0
- package/dist/modules/dev/terminal/base.terminal.reporter.js +1 -0
- package/dist/modules/dev/terminal/base.terminal.reporter.js.map +1 -0
- package/dist/modules/dev/terminal/terminal.reporter.d.ts +13 -0
- package/dist/modules/dev/terminal/terminal.reporter.js +19 -12
- package/dist/modules/dev/terminal/terminal.reporter.js.map +1 -0
- package/dist/modules/dev/types.d.ts +20 -0
- package/dist/modules/dev/types.js +1 -0
- package/dist/modules/dev/types.js.map +1 -0
- package/dist/modules/dev/utils/log.d.ts +23 -0
- package/dist/modules/dev/utils/log.js +1 -0
- package/dist/modules/dev/utils/log.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { WebSocketServer } from "ws";
|
|
2
|
+
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
3
|
+
import type { EventReporter, PageDescription } from "./types";
|
|
4
|
+
import type { CDPAdapter } from "../cdp/cdp.adapter";
|
|
5
|
+
export interface InspectorOptions {
|
|
6
|
+
projectRoot: string;
|
|
7
|
+
serverBaseUrl: string;
|
|
8
|
+
eventReporter?: EventReporter;
|
|
9
|
+
cdpAdapter?: CDPAdapter;
|
|
10
|
+
}
|
|
11
|
+
export declare class Inspector {
|
|
12
|
+
private devices;
|
|
13
|
+
private deviceCounter;
|
|
14
|
+
private readonly projectRoot;
|
|
15
|
+
private readonly serverBaseUrl;
|
|
16
|
+
private readonly eventReporter?;
|
|
17
|
+
private readonly cdpAdapter?;
|
|
18
|
+
constructor(options: InspectorOptions);
|
|
19
|
+
getPageDescriptions(): PageDescription[];
|
|
20
|
+
handleHttpRequest(req: IncomingMessage, res: ServerResponse, next: (error?: Error) => void): void;
|
|
21
|
+
createWebSocketServers(): Record<string, WebSocketServer>;
|
|
22
|
+
private createPageDescription;
|
|
23
|
+
private createDeviceWebSocketServer;
|
|
24
|
+
private createDebuggerWebSocketServer;
|
|
25
|
+
private setupHeartbeat;
|
|
26
|
+
private sendJsonResponse;
|
|
27
|
+
}
|
|
@@ -14,7 +14,7 @@ const JSON_VERSION_PATH = "/json/version";
|
|
|
14
14
|
const JSON_LIST_PATH = "/json";
|
|
15
15
|
const JSON_LIST_PATH_2 = "/json/list";
|
|
16
16
|
const HEARTBEAT_INTERVAL = 10000;
|
|
17
|
-
const MAX_PONG_TIMEOUT =
|
|
17
|
+
const MAX_PONG_TIMEOUT = 15000;
|
|
18
18
|
const INTERNAL_ERROR_CODE = 1011;
|
|
19
19
|
class Inspector {
|
|
20
20
|
devices = new Map();
|
|
@@ -41,7 +41,6 @@ class Inspector {
|
|
|
41
41
|
}
|
|
42
42
|
handleHttpRequest(req, res, next) {
|
|
43
43
|
const pathname = new node_url_1.URL(req.url || "", "http://localhost").pathname;
|
|
44
|
-
console.log("handleHttpRequest", { pathname });
|
|
45
44
|
if (pathname === JSON_LIST_PATH || pathname === JSON_LIST_PATH_2) {
|
|
46
45
|
this.sendJsonResponse(res, this.getPageDescriptions());
|
|
47
46
|
}
|
|
@@ -129,17 +128,22 @@ class Inspector {
|
|
|
129
128
|
noServer: true,
|
|
130
129
|
maxPayload: 0,
|
|
131
130
|
});
|
|
131
|
+
wss.on("open", () => {
|
|
132
|
+
console.info("open");
|
|
133
|
+
});
|
|
132
134
|
wss.on("connection", (ws, req) => {
|
|
133
135
|
try {
|
|
134
136
|
const query = new node_url_1.URL(req.url || "", "http://localhost").searchParams;
|
|
135
137
|
const deviceId = query.get("device");
|
|
136
138
|
const pageId = query.get("page");
|
|
137
139
|
if (!deviceId || !pageId) {
|
|
138
|
-
|
|
140
|
+
console.info("missing device or page id", deviceId, pageId);
|
|
141
|
+
return;
|
|
139
142
|
}
|
|
140
143
|
const device = this.devices.get(deviceId);
|
|
141
144
|
if (!device) {
|
|
142
|
-
|
|
145
|
+
console.info("device not found", deviceId);
|
|
146
|
+
return;
|
|
143
147
|
}
|
|
144
148
|
this.setupHeartbeat(ws);
|
|
145
149
|
device.handleDebuggerConnection(ws, pageId, {
|
|
@@ -159,32 +163,48 @@ class Inspector {
|
|
|
159
163
|
return wss;
|
|
160
164
|
}
|
|
161
165
|
setupHeartbeat(ws) {
|
|
162
|
-
let
|
|
166
|
+
let pendingHeartbeat = false;
|
|
163
167
|
let terminateTimeout = null;
|
|
164
168
|
const heartbeat = setInterval(() => {
|
|
165
169
|
if (ws.readyState !== ws_1.WebSocket.OPEN) {
|
|
166
170
|
return;
|
|
167
171
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
172
|
+
pendingHeartbeat = true;
|
|
173
|
+
// Send a heartbeat message instead of ping
|
|
174
|
+
ws.send(JSON.stringify({ method: "_heartbeat" }));
|
|
175
|
+
terminateTimeout = setTimeout(() => {
|
|
176
|
+
if (ws.readyState === ws_1.WebSocket.OPEN) {
|
|
177
|
+
try {
|
|
174
178
|
ws.terminate();
|
|
175
179
|
}
|
|
176
|
-
|
|
177
|
-
|
|
180
|
+
catch (e) {
|
|
181
|
+
ws.close(INTERNAL_ERROR_CODE, "Termination failed");
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}, MAX_PONG_TIMEOUT);
|
|
178
185
|
}, HEARTBEAT_INTERVAL);
|
|
179
186
|
const resetHeartbeat = () => {
|
|
180
|
-
|
|
187
|
+
pendingHeartbeat = false;
|
|
181
188
|
if (terminateTimeout) {
|
|
182
189
|
clearTimeout(terminateTimeout);
|
|
183
190
|
terminateTimeout = null;
|
|
184
191
|
}
|
|
185
192
|
};
|
|
186
|
-
ws.on("
|
|
187
|
-
|
|
193
|
+
ws.on("message", (data) => {
|
|
194
|
+
try {
|
|
195
|
+
const message = JSON.parse(data.toString());
|
|
196
|
+
// Check for heartbeat response
|
|
197
|
+
if (message.method === "_heartbeat_response") {
|
|
198
|
+
resetHeartbeat();
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
catch (e) {
|
|
203
|
+
// If message isn't JSON or doesn't have expected format,
|
|
204
|
+
// treat it as regular message for heartbeat purposes
|
|
205
|
+
resetHeartbeat();
|
|
206
|
+
}
|
|
207
|
+
});
|
|
188
208
|
ws.on("close", () => {
|
|
189
209
|
clearInterval(heartbeat);
|
|
190
210
|
resetHeartbeat();
|
|
@@ -202,3 +222,4 @@ class Inspector {
|
|
|
202
222
|
}
|
|
203
223
|
}
|
|
204
224
|
exports.Inspector = Inspector;
|
|
225
|
+
//# sourceMappingURL=inspector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspector.js","sourceRoot":"","sources":["../../../../../src/modules/dev/dev-server/inspector/inspector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import type WS from "ws";
|
|
2
|
+
export type JSONSerializable = boolean | number | string | null | ReadonlyArray<JSONSerializable> | {
|
|
3
|
+
[key: string]: JSONSerializable;
|
|
4
|
+
};
|
|
5
|
+
export interface PageFromDevice {
|
|
6
|
+
id: string;
|
|
7
|
+
title: string;
|
|
8
|
+
vm: string;
|
|
9
|
+
app: string;
|
|
10
|
+
capabilities: Record<string, boolean>;
|
|
11
|
+
}
|
|
12
|
+
export type Page = Omit<PageFromDevice, "capabilities"> & {
|
|
13
|
+
capabilities: NonNullable<PageFromDevice["capabilities"]>;
|
|
14
|
+
};
|
|
15
|
+
export type WrappedEvent = {
|
|
16
|
+
event: "wrappedEvent";
|
|
17
|
+
payload: {
|
|
18
|
+
pageId: string;
|
|
19
|
+
wrappedEvent: string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export type ConnectRequest = {
|
|
23
|
+
event: "connect";
|
|
24
|
+
payload: {
|
|
25
|
+
pageId: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export type DisconnectRequest = {
|
|
29
|
+
event: "disconnect";
|
|
30
|
+
payload: {
|
|
31
|
+
pageId: string;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export type GetPagesRequest = {
|
|
35
|
+
event: "getPages";
|
|
36
|
+
};
|
|
37
|
+
export type GetPagesResponse = {
|
|
38
|
+
event: "getPages";
|
|
39
|
+
payload: ReadonlyArray<PageFromDevice>;
|
|
40
|
+
};
|
|
41
|
+
export type MessageFromDevice = GetPagesResponse | WrappedEvent | DisconnectRequest;
|
|
42
|
+
export type MessageToDevice = GetPagesRequest | WrappedEvent | ConnectRequest | DisconnectRequest;
|
|
43
|
+
export type PageDescription = {
|
|
44
|
+
id: string;
|
|
45
|
+
title: string;
|
|
46
|
+
appId: string;
|
|
47
|
+
description: string;
|
|
48
|
+
type: string;
|
|
49
|
+
devtoolsFrontendUrl: string;
|
|
50
|
+
webSocketDebuggerUrl: string;
|
|
51
|
+
/** @deprecated Prefer `title` */
|
|
52
|
+
deviceName: string;
|
|
53
|
+
/** @deprecated This is sent from legacy targets only */
|
|
54
|
+
vm?: string;
|
|
55
|
+
reactNative: {
|
|
56
|
+
logicalDeviceId: string;
|
|
57
|
+
capabilities: Page["capabilities"];
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
export interface CDPMessage {
|
|
61
|
+
id?: number;
|
|
62
|
+
method?: string;
|
|
63
|
+
params?: any;
|
|
64
|
+
result?: any;
|
|
65
|
+
}
|
|
66
|
+
export interface DebuggerConnection {
|
|
67
|
+
socket: WS;
|
|
68
|
+
originalSourceURLAddress?: string;
|
|
69
|
+
prependedFilePrefix: boolean;
|
|
70
|
+
pageId: string;
|
|
71
|
+
userAgent: string | null;
|
|
72
|
+
customHandler: any | null;
|
|
73
|
+
}
|
|
74
|
+
type SuccessResult<Props extends Record<string, any> = {}> = {
|
|
75
|
+
status: "success";
|
|
76
|
+
} & Props;
|
|
77
|
+
type ErrorResult<ErrorT = unknown> = {
|
|
78
|
+
status: "error";
|
|
79
|
+
error: ErrorT;
|
|
80
|
+
prefersFuseboxFrontend?: boolean | null;
|
|
81
|
+
};
|
|
82
|
+
type CodedErrorResult<ErrorCode extends string> = {
|
|
83
|
+
status: "coded_error";
|
|
84
|
+
errorCode: ErrorCode;
|
|
85
|
+
errorDetails?: string;
|
|
86
|
+
};
|
|
87
|
+
type DebuggerSessionIDs = {
|
|
88
|
+
appId: string;
|
|
89
|
+
deviceName: string;
|
|
90
|
+
deviceId: string;
|
|
91
|
+
pageId: string | null;
|
|
92
|
+
};
|
|
93
|
+
export type ReportableEvent = ({
|
|
94
|
+
type: "launch_debugger_frontend";
|
|
95
|
+
launchType: "launch" | "redirect";
|
|
96
|
+
} & (SuccessResult<{
|
|
97
|
+
appId: string | null;
|
|
98
|
+
deviceId: string | null;
|
|
99
|
+
resolvedTargetDescription: string;
|
|
100
|
+
resolvedTargetAppId: string;
|
|
101
|
+
prefersFuseboxFrontend: boolean;
|
|
102
|
+
}> | ErrorResult | CodedErrorResult<"NO_APPS_FOUND">)) | ({
|
|
103
|
+
type: "connect_debugger_frontend";
|
|
104
|
+
} & (SuccessResult<{
|
|
105
|
+
frontendUserAgent: string | null;
|
|
106
|
+
} & DebuggerSessionIDs> | ErrorResult)) | ({
|
|
107
|
+
type: "debugger_command";
|
|
108
|
+
protocol: "CDP";
|
|
109
|
+
method: string | null;
|
|
110
|
+
requestOrigin: "proxy" | "debugger" | null;
|
|
111
|
+
responseOrigin: "proxy" | "device";
|
|
112
|
+
timeSinceStart: number | null;
|
|
113
|
+
frontendUserAgent: string | null;
|
|
114
|
+
prefersFuseboxFrontend: boolean | null;
|
|
115
|
+
} & DebuggerSessionIDs & (SuccessResult | CodedErrorResult<"TIMED_OUT" | "DEVICE_DISCONNECTED" | "DEBUGGER_DISCONNECTED" | "UNMATCHED_REQUEST_ID" | "PROTOCOL_ERROR">)) | ({
|
|
116
|
+
type: "proxy_error";
|
|
117
|
+
status: "error";
|
|
118
|
+
messageOrigin: "debugger" | "device";
|
|
119
|
+
message: string;
|
|
120
|
+
error: string;
|
|
121
|
+
errorStack: string;
|
|
122
|
+
} & DebuggerSessionIDs);
|
|
123
|
+
export interface EventReporter {
|
|
124
|
+
logEvent(event: ReportableEvent): void;
|
|
125
|
+
}
|
|
126
|
+
export type ExposedDevice = {
|
|
127
|
+
appId: string;
|
|
128
|
+
id: string;
|
|
129
|
+
name: string;
|
|
130
|
+
sendMessage: (message: JSONSerializable) => void;
|
|
131
|
+
};
|
|
132
|
+
export type ExposedDebugger = {
|
|
133
|
+
userAgent: string | null;
|
|
134
|
+
sendMessage: (message: JSONSerializable) => void;
|
|
135
|
+
};
|
|
136
|
+
export type CustomMessageHandlerConnection = {
|
|
137
|
+
page: Page;
|
|
138
|
+
device: ExposedDevice;
|
|
139
|
+
debugger: ExposedDebugger;
|
|
140
|
+
};
|
|
141
|
+
export type CreateCustomMessageHandlerFn = (connection: CustomMessageHandlerConnection) => CustomMessageHandler;
|
|
142
|
+
export interface CustomMessageHandler {
|
|
143
|
+
/**
|
|
144
|
+
* Handle a CDP message coming from the device.
|
|
145
|
+
* This is invoked before the message is sent to the debugger.
|
|
146
|
+
* When returning true, the message is considered handled and will not be sent to the debugger.
|
|
147
|
+
*/
|
|
148
|
+
handleDeviceMessage(message: JSONSerializable): boolean;
|
|
149
|
+
/**
|
|
150
|
+
* Handle a CDP message coming from the debugger.
|
|
151
|
+
* This is invoked before the message is sent to the device.
|
|
152
|
+
* When returning true, the message is considered handled and will not be sent to the device.
|
|
153
|
+
*/
|
|
154
|
+
handleDebuggerMessage(message: JSONSerializable): boolean;
|
|
155
|
+
}
|
|
156
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/modules/dev/dev-server/inspector/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import WS from "ws";
|
|
2
|
+
import type { EventReporter } from "../../types";
|
|
3
|
+
import type { Device } from "../../device";
|
|
4
|
+
interface DebuggerConnectionServerConfig {
|
|
5
|
+
devices: Map<string, Device>;
|
|
6
|
+
eventReporter: EventReporter | null;
|
|
7
|
+
startHeartbeat: (socket: WS, intervalMs: number) => void;
|
|
8
|
+
}
|
|
9
|
+
export default class DebuggerConnectionServer {
|
|
10
|
+
#private;
|
|
11
|
+
constructor({ devices, eventReporter, startHeartbeat, }: DebuggerConnectionServerConfig);
|
|
12
|
+
createServer(): WS.Server;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -27,6 +27,7 @@ class DebuggerConnectionServer {
|
|
|
27
27
|
maxPayload: 0,
|
|
28
28
|
});
|
|
29
29
|
wss.on("connection", async (socket, req) => {
|
|
30
|
+
console.log("debugger-connection onConnection", req.url);
|
|
30
31
|
try {
|
|
31
32
|
const query = node_url_1.default.parse(req.url || "", true).query || {};
|
|
32
33
|
const deviceId = query.device;
|
|
@@ -59,3 +60,4 @@ class DebuggerConnectionServer {
|
|
|
59
60
|
}
|
|
60
61
|
}
|
|
61
62
|
exports.default = DebuggerConnectionServer;
|
|
63
|
+
//# sourceMappingURL=debugger-connection.server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debugger-connection.server.js","sourceRoot":"","sources":["../../../../../../../src/modules/dev/dev-server/inspector/wss/servers/debugger-connection.server.ts"],"names":[],"mappings":";;;;;AAAA,wDAA2B;AAC3B,4CAAoB;AAIpB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,CAAC;AAEvD,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACjC,MAAM,8BAA8B,GAAG,KAAK,CAAC;AAC7C,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAQjC,MAAqB,wBAAwB;IAC5C,QAAQ,CAAsB;IAC9B,cAAc,CAAuB;IACrC,eAAe,CAA2C;IAE1D,YAAY,EACX,OAAO,EACP,aAAa,EACb,cAAc,GACkB;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,YAAY;QACX,MAAM,GAAG,GAAG,IAAI,YAAE,CAAC,MAAM,CAAC;YACzB,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,KAAK;YACxB,uEAAuE;YACvE,oEAAoE;YACpE,UAAU,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC1C,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YACzD,IAAI,CAAC;gBACJ,MAAM,KAAK,GAAG,kBAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAA4B,CAAC;gBACpD,MAAM,MAAM,GAAG,KAAK,CAAC,IAA0B,CAAC;gBAEhD,IAAI,QAAQ,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACxC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBACrE,CAAC;gBAED,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC3C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;gBACvD,CAAC;gBAED,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;gBAE7D,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE;oBAC/C,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;wBAClD,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;wBAC9B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI;iBACvD,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,eAAe,CAAC,CAAC;gBACpE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC;oBAC7B,IAAI,EAAE,2BAA2B;oBACjC,MAAM,EAAE,OAAO;oBACf,KAAK,EAAE,CAAC;iBACR,CAAC,CAAC;YACJ,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACZ,CAAC;CACD;AA5DD,2CA4DC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import WS from "ws";
|
|
2
|
+
import { Device } from "../../device";
|
|
3
|
+
import type { EventReporter, CreateCustomMessageHandlerFn } from "../../types";
|
|
4
|
+
interface DeviceCounter {
|
|
5
|
+
value: number;
|
|
6
|
+
}
|
|
7
|
+
interface DeviceConnectionServerConfig {
|
|
8
|
+
devices: Map<string, Device>;
|
|
9
|
+
deviceCounter: DeviceCounter;
|
|
10
|
+
projectRoot: string;
|
|
11
|
+
eventReporter?: EventReporter;
|
|
12
|
+
customMessageHandler: CreateCustomMessageHandlerFn | null;
|
|
13
|
+
}
|
|
14
|
+
export default class DeviceConnectionServer {
|
|
15
|
+
#private;
|
|
16
|
+
constructor({ devices, deviceCounter, projectRoot, eventReporter, customMessageHandler, }: DeviceConnectionServerConfig);
|
|
17
|
+
createServer(): WS.Server;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -28,6 +28,7 @@ class DeviceConnectionServer {
|
|
|
28
28
|
maxPayload: 0,
|
|
29
29
|
});
|
|
30
30
|
wss.on("connection", async (socket, req) => {
|
|
31
|
+
console.log("device-connection onConnection", req.url);
|
|
31
32
|
try {
|
|
32
33
|
const fallbackDeviceId = String(this.#deviceCounter.value++);
|
|
33
34
|
const query = node_url_1.default.parse(req.url || "", true).query || {};
|
|
@@ -62,3 +63,4 @@ class DeviceConnectionServer {
|
|
|
62
63
|
}
|
|
63
64
|
}
|
|
64
65
|
exports.default = DeviceConnectionServer;
|
|
66
|
+
//# sourceMappingURL=device-connection.server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-connection.server.js","sourceRoot":"","sources":["../../../../../../../src/modules/dev/dev-server/inspector/wss/servers/device-connection.server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const devtoolsPlugin: any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devtools.plugin.js","sourceRoot":"","sources":["../../../../../src/modules/dev/dev-server/plugins/devtools.plugin.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA2C;AAC3C,gDAAwB;AAWX,QAAA,cAAc,GAAG,IAAA,wBAAa,EAC1C,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAC3B,QAAQ,CAAC,KAAK,CAAC;QACd,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;QAC9B,GAAG,EAAE,SAAS;QACd,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YAC5B,OAAO,CAAC,GAAG,CACV,qBAAqB,EACrB,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAC5C,CAAC;YACF,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;KACD,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,CAAC;QACd,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;QAC9B,GAAG,EAAE,qBAAqB;QAC1B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YACjC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;YAClD,IAAI,cAAc,EAAE,CAAC;gBACpB,eAAe;gBACf,uCAAuC;YACxC,CAAC;iBAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBAC/D,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,MAC9C,OAAO,CAAC,IAAI,IAAI,WACjB,IAAI,OAAO,CAAC,IAAI,cAAc,CAAC;gBAC/B,IAAI,CAAC;oBACJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,CAAC,CAAC;oBACtD,MAAM,IAAA,cAAI,EAAC,GAAG,CAAC,CAAC;gBACjB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,IAAI,KAAK,EAAE,CAAC;wBACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;4BACjB,GAAG,EAAE,yBAAyB;4BAC9B,GAAG;4BACH,KAAK;yBACL,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;YACF,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;KACD,CAAC,CAAC;AACJ,CAAC,EACD;IACC,IAAI,EAAE,iBAAiB;IACvB,YAAY,EAAE,CAAC,YAAY,CAAC;CAC5B,CACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const faviconPlugin: any;
|
|
@@ -10,10 +10,10 @@ const node_path_1 = __importDefault(require("node:path"));
|
|
|
10
10
|
const node_url_1 = require("node:url");
|
|
11
11
|
// @ts-ignore
|
|
12
12
|
const dirname = node_path_1.default.dirname((0, node_url_1.fileURLToPath)(import.meta.url));
|
|
13
|
-
|
|
14
|
-
const pathToImgDir = node_path_1.default.join(dirname, "../../../../../assets/img");
|
|
13
|
+
const pathToImgDir = node_path_1.default.join(dirname, "../../../../../assets");
|
|
15
14
|
exports.faviconPlugin = (0, fastify_plugin_1.default)(async (instance) => {
|
|
16
15
|
instance.register(fastify_favicon_1.default, { path: pathToImgDir });
|
|
17
16
|
}, {
|
|
18
17
|
name: "favicon-plugin",
|
|
19
18
|
});
|
|
19
|
+
//# sourceMappingURL=favicon.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"favicon.plugin.js","sourceRoot":"","sources":["../../../../../src/modules/dev/dev-server/plugins/favicon.plugin.ts"],"names":[],"mappings":";;;;;;AAAA,sEAA6C;AAC7C,oEAA2C;AAC3C,0DAA6B;AAC7B,uCAAyC;AAEzC,aAAa;AACb,MAAM,OAAO,GAAG,mBAAI,CAAC,OAAO,CAAC,IAAA,wBAAa,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,MAAM,YAAY,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;AAEpD,QAAA,aAAa,GAAG,IAAA,wBAAa,EACzC,KAAK,EAAE,QAAQ,EAAE,EAAE;IAClB,QAAQ,CAAC,QAAQ,CAAC,yBAAc,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;AAC3D,CAAC,EACD;IACC,IAAI,EAAE,gBAAgB;CACtB,CACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const multipartPlugin: any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multipart.plugin.js","sourceRoot":"","sources":["../../../../../src/modules/dev/dev-server/plugins/multipart.plugin.ts"],"names":[],"mappings":";;;;;;AACA,oEAA2C;AAE3C,6CAA0C;AAG1C;;;GAGG;AAEH,MAAM,IAAI,GAAG,MAAM,CAAC;AACpB,MAAM,QAAQ,GAAG,0BAA0B,CAAC;AAE/B,QAAA,eAAe,GAAG,IAAA,wBAAa,EAC3C,KAAK,EAAE,QAAQ,EAAE,EAAE;IAClB,SAAS,WAAW;QACnB,gFAAgF;QAChF,mFAAmF;QACnF,gBAAgB;QAChB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;YACvD,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAC;QAEjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;aACZ,MAAM,CAAC,cAAc,EAAE,8BAA8B,QAAQ,GAAG,CAAC;aACjE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEf,SAAS,gBAAgB,CAAC,OAA4B;YACrD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;iBACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;iBACvC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,CAAC;QAED,SAAS,UAAU,CAClB,OAA4B,EAC5B,IAAO,EACP,MAAgB;YAEhB,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,QAAQ,GAAG,IAAI,EAAE,CAAC;YAC1C,IAAI,OAAO,EAAE,CAAC;gBACb,KAAK,IAAI,gBAAgB,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;YAClD,CAAC;YAED,IAAI,IAAI,EAAE,CAAC;gBACV,KAAK,IAAI,IAAI,CAAC;YACf,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACZ,KAAK,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC1C,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QAED,SAAS,SAAS,CAAC,IAAY,EAAE,KAAoC;YACpE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACvB,CAAC;QAED,SAAS,GAAG,CAAI,IAAO;YACtB,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,GAAG,EAAE,CAAC;QACd,CAAC;QAED,OAAO;YACN,UAAU;YACV,SAAS;YACT,GAAG;SACH,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,aAAa,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AACpD,CAAC,EACD;IACC,IAAI,EAAE,kBAAkB;CACxB,CACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const systracePlugin: any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"systrace.plugin.js","sourceRoot":"","sources":["../../../../../src/modules/dev/dev-server/plugins/systrace.plugin.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA2C;AAC3C,sDAAyB;AACzB,iEAA2D;AAG9C,QAAA,cAAc,GAAG,IAAA,wBAAa,EAC1C,KAAK,EAAE,QAAQ,EAAE,EAAE;IAClB,QAAQ,CAAC,IAAI,CACZ,WAAW,EACX,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAE,EAAE;QACtD,kBAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAE9C,MAAM,QAAQ,GAAG,aAAa,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC;QAEhD,oCAAoC;QACpC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;QACnC,iBAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAEpD,MAAM,QAAQ;QACb,qDAAqD;QACrD,+BAA+B,QAAQ,MAAM;YAC7C,yEAAyE;YACzE,yCAAyC;YACzC,oFAAoF,CAAC;QAEtF,kBAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,CACD,CAAC;AACH,CAAC,EACD;IACC,IAAI,EAAE,iBAAiB;CACvB,CACD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IncomingHttpHeaders } from 'node:http';
|
|
2
|
+
export interface MultipartHandler {
|
|
3
|
+
writeChunk: <T>(headers: IncomingHttpHeaders, data: T, isLast?: boolean) => void;
|
|
4
|
+
setHeader: (name: string, value: string | string[] | undefined) => void;
|
|
5
|
+
end: <T>(data: T) => void;
|
|
6
|
+
}
|
|
7
|
+
declare module 'fastify' {
|
|
8
|
+
interface FastifyReply {
|
|
9
|
+
asMultipart: () => MultipartHandler | undefined;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/modules/dev/dev-server/plugins/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/modules/dev/dev-server/plugins/wss/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,sDAAoC;AACpC,0CAAwB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { FastifyInstance } from "fastify";
|
|
2
|
+
import type { TerminalReportableEvent } from "metro/src/lib/TerminalReporter";
|
|
3
|
+
import type WebSocket from "ws";
|
|
4
|
+
import { WebSocketServer } from "../web-socket-server";
|
|
5
|
+
export type WebSocketApiEvent = {
|
|
6
|
+
type: "metro_event";
|
|
7
|
+
event: TerminalReportableEvent;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Class for creating a WebSocket server for API clients.
|
|
11
|
+
* Useful to listening for compilation events and new logs.
|
|
12
|
+
*
|
|
13
|
+
* @category Development server
|
|
14
|
+
*/
|
|
15
|
+
export declare class WebSocketApiServer extends WebSocketServer {
|
|
16
|
+
private clients;
|
|
17
|
+
private nextClientId;
|
|
18
|
+
/**
|
|
19
|
+
* Create new instance of WebSocketApiServer and attach it to the given Fastify instance.
|
|
20
|
+
* Any logging information, will be passed through standard `fastify.log` API.
|
|
21
|
+
*
|
|
22
|
+
* @param fastify Fastify instance to attach the WebSocket server to.
|
|
23
|
+
*/
|
|
24
|
+
constructor(fastify: FastifyInstance);
|
|
25
|
+
/**
|
|
26
|
+
* Send message to all connected API clients.
|
|
27
|
+
*
|
|
28
|
+
* @param event Event string or object to send.
|
|
29
|
+
*/
|
|
30
|
+
send(event: unknown | WebSocketApiEvent): void;
|
|
31
|
+
/**
|
|
32
|
+
* Process new WebSocket connection from client application.
|
|
33
|
+
*
|
|
34
|
+
* @param socket Incoming client's WebSocket connection.
|
|
35
|
+
*/
|
|
36
|
+
onConnection(socket: WebSocket): void;
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-socket-api.server.js","sourceRoot":"","sources":["../../../../../../../src/modules/dev/dev-server/plugins/wss/servers/web-socket-api.server.ts"],"names":[],"mappings":";;;AAGA,4DAAuD;AAOvD;;;;;GAKG;AACH,MAAa,kBAAmB,SAAQ,mCAAe;IAC9C,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IACvC,YAAY,GAAG,CAAC,CAAC;IAEzB;;;;;OAKG;IACH,YAAY,OAAwB;QACnC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,KAAkC;QACtC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO;QACR,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvE,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACjD,IAAI,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,qCAAqC,EAAE;oBAC7D,KAAK;iBACL,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,MAAiB;QAC7B,MAAM,QAAQ,GAAG,UAAU,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAC7C,QAAQ;SACR,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEnC,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAChD,QAAQ;aACR,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;CACD;AA5DD,gDA4DC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { IncomingMessage } from "node:http";
|
|
2
|
+
import type { FastifyInstance } from "fastify";
|
|
3
|
+
import type WebSocket from "ws";
|
|
4
|
+
import { WebSocketServer } from "../web-socket-server";
|
|
5
|
+
/**
|
|
6
|
+
* Class for creating a WebSocket server and providing a bridge between
|
|
7
|
+
* debugger UI (Remote JS debugger) and the running React Native application.
|
|
8
|
+
*
|
|
9
|
+
* React Native application (aka client) will send and receive messages from the debugger UI
|
|
10
|
+
* which runs inside a browser.
|
|
11
|
+
*
|
|
12
|
+
* @category Development server
|
|
13
|
+
*/
|
|
14
|
+
export declare class WebSocketDebuggerServer extends WebSocketServer {
|
|
15
|
+
/**
|
|
16
|
+
* A WebSocket connection with the debugger UI.
|
|
17
|
+
*/
|
|
18
|
+
private debuggerSocket;
|
|
19
|
+
/**
|
|
20
|
+
* A WebSocket connection with the client (React Native app).
|
|
21
|
+
*/
|
|
22
|
+
private clientSocket;
|
|
23
|
+
/**
|
|
24
|
+
* Create new instance of WebSocketDebuggerServer and attach it to the given Fastify instance.
|
|
25
|
+
* Any logging information, will be passed through standard `fastify.log` API.
|
|
26
|
+
*
|
|
27
|
+
* @param fastify Fastify instance to attach the WebSocket server to.
|
|
28
|
+
*/
|
|
29
|
+
constructor(fastify: FastifyInstance);
|
|
30
|
+
/**
|
|
31
|
+
* Check if debugger UI is connected to the WebSocketDebuggerServer.
|
|
32
|
+
*/
|
|
33
|
+
isDebuggerConnected(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Send a message to a given WebSocket connection.
|
|
36
|
+
*
|
|
37
|
+
* @param socket WebSocket connection to send the message to.
|
|
38
|
+
* @param message Message to send.
|
|
39
|
+
*/
|
|
40
|
+
send(socket: WebSocket | undefined, message: string): void;
|
|
41
|
+
/**
|
|
42
|
+
* Process new WebSocket connection. The upgrade request should contain `role` query param
|
|
43
|
+
* for determining the type of the connection.
|
|
44
|
+
*
|
|
45
|
+
* @param socket Incoming WebSocket connection.
|
|
46
|
+
* @param request Upgrade request for the connection.
|
|
47
|
+
*/
|
|
48
|
+
onConnection(socket: WebSocket, request: IncomingMessage): void;
|
|
49
|
+
/**
|
|
50
|
+
* Process new WebSocket connection from Debugger UI (Remote JS Debugger).
|
|
51
|
+
* If there's already open connection, the new one gets closed automatically.
|
|
52
|
+
*
|
|
53
|
+
* @param socket Incoming debugger WebSocket connection.
|
|
54
|
+
*/
|
|
55
|
+
onDebuggerConnection(socket: WebSocket): void;
|
|
56
|
+
/**
|
|
57
|
+
* Process new WebSocket connection from React Native app (client)
|
|
58
|
+
* and close any previous connection.
|
|
59
|
+
*
|
|
60
|
+
* @param socket Incoming client WebSocket connection.
|
|
61
|
+
*/
|
|
62
|
+
onClientConnection(socket: WebSocket): void;
|
|
63
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-socket-debugger.server.js","sourceRoot":"","sources":["../../../../../../../src/modules/dev/dev-server/plugins/wss/servers/web-socket-debugger.server.ts"],"names":[],"mappings":"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"}
|