@teardown/cli 1.2.26 → 1.2.27
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/modules/dev/dev-menu/keyboard-handler.d.ts +1 -1
- package/dist/modules/dev/dev-menu/keyboard-handler.js +6 -2
- package/dist/modules/dev/dev-server/cdp/cdp.adapter.d.ts +6 -0
- package/dist/modules/dev/dev-server/cdp/cdp.adapter.js +12 -0
- package/dist/modules/dev/dev-server/dev-server.d.ts +9 -1
- package/dist/modules/dev/dev-server/dev-server.js +92 -38
- package/dist/modules/dev/dev-server/plugins/systrace.plugin.d.ts +1 -0
- package/dist/modules/dev/dev-server/plugins/systrace.plugin.js +28 -0
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-api.server.d.ts +1 -1
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-api.server.js +11 -6
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-events.server.d.ts +1 -1
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-events.server.js +11 -3
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-hmr.server.js +11 -3
- package/dist/modules/dev/dev-server/plugins/wss/servers/web-socket-message.server.js +6 -1
- package/dist/modules/dev/dev-server/plugins/wss/web-socket-router.js +0 -2
- package/dist/modules/dev/dev-server/plugins/wss/wss.plugin.d.ts +2 -1
- package/dist/modules/dev/dev-server/plugins/wss/wss.plugin.js +1 -3
- package/dist/modules/dev/dev-server/sybmolicate/sybmolicate.plugin.d.ts +11 -0
- package/dist/modules/dev/dev-server/{plugins/symbolicate/sybmolicatePlugin.js → sybmolicate/sybmolicate.plugin.js} +13 -7
- package/dist/modules/dev/terminal/terminal.reporter.js +3 -1
- package/package.json +7 -4
- package/dist/modules/dev/dev-server/plugins/symbolicate/index.d.ts +0 -2
- package/dist/modules/dev/dev-server/plugins/symbolicate/index.js +0 -18
- package/dist/modules/dev/dev-server/plugins/symbolicate/sybmolicatePlugin.d.ts +0 -1
- package/dist/modules/dev/dev-server/plugins/symbolicate/types.d.ts +0 -64
- package/dist/modules/dev/dev-server/plugins/symbolicate/types.js +0 -2
- package/dist/modules/dev/dev-server/types.d.ts +0 -27
- package/dist/modules/dev/dev-server/types.js +0 -17
- /package/dist/{commands/dev → modules/dev/dev-server/sybmolicate}/types.d.ts +0 -0
- /package/dist/{commands/dev → modules/dev/dev-server/sybmolicate}/types.js +0 -0
|
@@ -7,7 +7,7 @@ export declare class KeyboardHandlerManager {
|
|
|
7
7
|
private readonly openDebuggerKeyboardHandler;
|
|
8
8
|
private previousCallTimestamp;
|
|
9
9
|
constructor(devServer: DevServer);
|
|
10
|
-
initialize(): void
|
|
10
|
+
initialize(): Promise<void>;
|
|
11
11
|
private isTTYSupported;
|
|
12
12
|
private setupKeyboardHandlers;
|
|
13
13
|
private handleKeyPress;
|
|
@@ -23,7 +23,7 @@ class KeyboardHandlerManager {
|
|
|
23
23
|
devServerUrl: this.devServer.getDevServerUrl(),
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
|
-
initialize() {
|
|
26
|
+
async initialize() {
|
|
27
27
|
if (!this.isTTYSupported()) {
|
|
28
28
|
this.devServer.terminalReporter.update({
|
|
29
29
|
type: "client_log",
|
|
@@ -111,9 +111,13 @@ class KeyboardHandlerManager {
|
|
|
111
111
|
level: "info",
|
|
112
112
|
data: [
|
|
113
113
|
"Key commands available:",
|
|
114
|
+
"\n",
|
|
115
|
+
"\n",
|
|
114
116
|
`${chalk_1.default.bold.inverse(" r ")} - reload app(s)`,
|
|
117
|
+
"\n",
|
|
115
118
|
`${chalk_1.default.bold.inverse(" d ")} - open Dev Menu`,
|
|
116
|
-
|
|
119
|
+
// "\n",
|
|
120
|
+
// `${chalk.bold.inverse(" j ")} - open DevTools`,
|
|
117
121
|
],
|
|
118
122
|
});
|
|
119
123
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CDPAdapter = void 0;
|
|
4
|
+
// import type { DevServer } from "devtools-protocol";
|
|
5
|
+
class CDPAdapter {
|
|
6
|
+
instance;
|
|
7
|
+
constructor(instance) {
|
|
8
|
+
this.instance = instance;
|
|
9
|
+
}
|
|
10
|
+
enable() { }
|
|
11
|
+
}
|
|
12
|
+
exports.CDPAdapter = CDPAdapter;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { type FastifyInstance } from "fastify";
|
|
2
2
|
import type { TerminalReportableEvent } from "metro/src/lib/TerminalReporter";
|
|
3
|
+
import { KeyboardHandlerManager } from "../dev-menu/keyboard-handler";
|
|
3
4
|
import { TeardownTerminalReporter } from "../terminal/terminal.reporter";
|
|
5
|
+
import { WebSocketApiServer } from "./plugins/wss/servers/web-socket-api.server";
|
|
4
6
|
import { WebSocketEventsServer } from "./plugins/wss/servers/web-socket-events.server";
|
|
5
7
|
import { WebSocketMessageServer } from "./plugins/wss/servers/web-socket-message.server";
|
|
6
|
-
import { KeyboardHandlerManager } from "../dev-menu/keyboard-handler";
|
|
7
8
|
export type DevServerOptions = {
|
|
8
9
|
projectRoot: string;
|
|
9
10
|
host: string;
|
|
@@ -17,11 +18,14 @@ export type DevServerOptions = {
|
|
|
17
18
|
export declare class DevServer {
|
|
18
19
|
readonly config: DevServerOptions;
|
|
19
20
|
terminalReporter: TeardownTerminalReporter;
|
|
21
|
+
private stream;
|
|
20
22
|
private instance;
|
|
23
|
+
apiServer: WebSocketApiServer;
|
|
21
24
|
messageServer: WebSocketMessageServer;
|
|
22
25
|
eventsServer: WebSocketEventsServer;
|
|
23
26
|
keyboardHandler: KeyboardHandlerManager;
|
|
24
27
|
constructor(config: DevServerOptions);
|
|
28
|
+
onWrite(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): Promise<void>;
|
|
25
29
|
getDevServerUrl(): string;
|
|
26
30
|
onInitializeDone(): void;
|
|
27
31
|
reportMetroEvent(event: TerminalReportableEvent): void;
|
|
@@ -32,6 +36,10 @@ export declare class DevServer {
|
|
|
32
36
|
private _metroConfig;
|
|
33
37
|
private getMetroConfig;
|
|
34
38
|
private registerPlugins;
|
|
39
|
+
private onSymbolicate;
|
|
40
|
+
private customInspectorMessageHandler;
|
|
41
|
+
private onDeviceMessage;
|
|
42
|
+
private onDebuggerMessage;
|
|
35
43
|
private registerHooks;
|
|
36
44
|
private registerRoutes;
|
|
37
45
|
initialize(): Promise<void>;
|
|
@@ -5,55 +5,64 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.DevServer = void 0;
|
|
7
7
|
exports.makeLogEntryFromFastifyLog = makeLogEntryFromFastifyLog;
|
|
8
|
+
const compress_1 = __importDefault(require("@fastify/compress"));
|
|
9
|
+
const cors_1 = __importDefault(require("@fastify/cors"));
|
|
8
10
|
const middie_1 = __importDefault(require("@fastify/middie"));
|
|
9
11
|
const sensible_1 = __importDefault(require("@fastify/sensible"));
|
|
10
|
-
const compress_1 = __importDefault(require("@fastify/compress"));
|
|
11
12
|
const cli_server_api_1 = require("@react-native-community/cli-server-api");
|
|
12
13
|
const dev_middleware_1 = require("@react-native/dev-middleware");
|
|
14
|
+
const node_stream_1 = require("node:stream");
|
|
13
15
|
const metro_config_1 = require("@react-native/metro-config");
|
|
14
16
|
const fastify_1 = __importDefault(require("fastify"));
|
|
15
17
|
const metro_1 = __importDefault(require("metro"));
|
|
16
|
-
const
|
|
18
|
+
const keyboard_handler_1 = require("../dev-menu/keyboard-handler");
|
|
17
19
|
const terminal_reporter_1 = require("../terminal/terminal.reporter");
|
|
18
20
|
const devtools_plugin_1 = require("./plugins/devtools.plugin");
|
|
19
|
-
// import { faviconPlugin } from "./plugins/favicon.plugin";
|
|
20
21
|
const multipart_plugin_1 = require("./plugins/multipart.plugin");
|
|
21
|
-
const
|
|
22
|
+
const sybmolicate_plugin_1 = require("./sybmolicate/sybmolicate.plugin");
|
|
23
|
+
const systrace_plugin_1 = require("./plugins/systrace.plugin");
|
|
22
24
|
const wss_1 = require("./plugins/wss");
|
|
25
|
+
const web_socket_api_server_1 = require("./plugins/wss/servers/web-socket-api.server");
|
|
23
26
|
const web_socket_events_server_1 = require("./plugins/wss/servers/web-socket-events.server");
|
|
24
27
|
const web_socket_message_server_1 = require("./plugins/wss/servers/web-socket-message.server");
|
|
25
|
-
const keyboard_handler_1 = require("../dev-menu/keyboard-handler");
|
|
26
28
|
class DevServer {
|
|
27
29
|
config;
|
|
28
30
|
terminalReporter;
|
|
31
|
+
stream;
|
|
29
32
|
instance;
|
|
33
|
+
apiServer;
|
|
30
34
|
messageServer;
|
|
31
35
|
eventsServer;
|
|
32
36
|
keyboardHandler;
|
|
33
37
|
constructor(config) {
|
|
34
38
|
this.config = config;
|
|
35
39
|
this.terminalReporter = new terminal_reporter_1.TeardownTerminalReporter(this);
|
|
40
|
+
this.stream = new node_stream_1.Writable({
|
|
41
|
+
write: this.onWrite.bind(this),
|
|
42
|
+
});
|
|
36
43
|
this.instance = (0, fastify_1.default)({
|
|
37
|
-
// disableRequestLogging:
|
|
44
|
+
// disableRequestLogging: true,
|
|
38
45
|
logger: {
|
|
39
46
|
level: "trace",
|
|
40
|
-
stream:
|
|
41
|
-
write: (chunk, _encoding, callback) => {
|
|
42
|
-
const log = JSON.parse(chunk.toString());
|
|
43
|
-
this.onMessage(log);
|
|
44
|
-
this.instance.wss?.apiServer.send(log);
|
|
45
|
-
callback();
|
|
46
|
-
},
|
|
47
|
-
}),
|
|
47
|
+
stream: this.stream,
|
|
48
48
|
},
|
|
49
49
|
...(config.https ? { https: config.https } : undefined),
|
|
50
50
|
});
|
|
51
|
+
this.apiServer = new web_socket_api_server_1.WebSocketApiServer(this.instance);
|
|
51
52
|
this.messageServer = new web_socket_message_server_1.WebSocketMessageServer(this.instance);
|
|
52
53
|
this.eventsServer = new web_socket_events_server_1.WebSocketEventsServer(this.instance, {
|
|
53
54
|
webSocketMessageServer: this.messageServer,
|
|
54
55
|
});
|
|
55
56
|
this.keyboardHandler = new keyboard_handler_1.KeyboardHandlerManager(this);
|
|
56
57
|
}
|
|
58
|
+
async onWrite(chunk, encoding, callback) {
|
|
59
|
+
if (chunk == null) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const log = JSON.parse(chunk.toString());
|
|
63
|
+
this.onMessage(log);
|
|
64
|
+
callback();
|
|
65
|
+
}
|
|
57
66
|
getDevServerUrl() {
|
|
58
67
|
const https = this.config.https ? "https" : "http";
|
|
59
68
|
return `${https}://${this.config.host}:${this.config.port}`;
|
|
@@ -62,21 +71,27 @@ class DevServer {
|
|
|
62
71
|
this.keyboardHandler.initialize();
|
|
63
72
|
}
|
|
64
73
|
reportMetroEvent(event) {
|
|
65
|
-
|
|
66
|
-
|
|
74
|
+
switch (event.type) {
|
|
75
|
+
case "client_log":
|
|
76
|
+
this.eventsServer.broadcastEvent(event);
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
67
79
|
}
|
|
68
80
|
onBundleBuilt(bundlePath) {
|
|
69
|
-
console.log("onBundleBuilt", bundlePath);
|
|
81
|
+
// console.log("onBundleBuilt", bundlePath);
|
|
82
|
+
this.messageServer.broadcast("reload");
|
|
70
83
|
}
|
|
71
84
|
onMessage(log) {
|
|
72
|
-
this.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
85
|
+
this.apiServer.send(log);
|
|
86
|
+
// console.log(log.msg, log.level);
|
|
87
|
+
// this.terminalReporter.update({
|
|
88
|
+
// type: "client_log",
|
|
89
|
+
// level: "info",
|
|
90
|
+
// data: [log.msg],
|
|
91
|
+
// });
|
|
77
92
|
}
|
|
78
93
|
onClientConnected(platform, clientId) {
|
|
79
|
-
|
|
94
|
+
// this.messageServer.broadcast("reload", undefined, []);
|
|
80
95
|
// this.instance.wss.router.onClientConnected(platform, clientId);
|
|
81
96
|
// this.onMessage({
|
|
82
97
|
// level: 30,
|
|
@@ -108,15 +123,23 @@ class DevServer {
|
|
|
108
123
|
watch: true,
|
|
109
124
|
onBundleBuilt: this.onBundleBuilt.bind(this),
|
|
110
125
|
});
|
|
111
|
-
// console.log("Registering plugins");
|
|
112
126
|
const devMiddleware = (0, dev_middleware_1.createDevMiddleware)({
|
|
113
127
|
projectRoot: this.config.projectRoot,
|
|
114
128
|
serverBaseUrl: `http://${this.config.host}:${this.config.port}`,
|
|
115
129
|
logger: this.instance.log,
|
|
130
|
+
unstable_customInspectorMessageHandler: this.customInspectorMessageHandler.bind(this),
|
|
116
131
|
unstable_experiments: {
|
|
117
|
-
|
|
132
|
+
enableNetworkInspector: true,
|
|
118
133
|
},
|
|
119
134
|
});
|
|
135
|
+
await this.instance.register(cors_1.default, {
|
|
136
|
+
// hook: "preHandler",
|
|
137
|
+
// origin: ["localhost:1420", "127.0.0.1:1420"],
|
|
138
|
+
// allowedHeaders: ["Content-Type", "Authorization", "X-Requested-With"],
|
|
139
|
+
// credentials: true,
|
|
140
|
+
// maxAge: 86400,
|
|
141
|
+
// preflightContinue: false,
|
|
142
|
+
});
|
|
120
143
|
await this.instance.register(compress_1.default);
|
|
121
144
|
await this.instance.register(sensible_1.default);
|
|
122
145
|
await this.instance.register(middie_1.default);
|
|
@@ -126,10 +149,11 @@ class DevServer {
|
|
|
126
149
|
onClientConnected: this.onClientConnected.bind(this),
|
|
127
150
|
messageServer: this.messageServer,
|
|
128
151
|
eventsServer: this.eventsServer,
|
|
152
|
+
apiServer: this.apiServer,
|
|
129
153
|
endpoints: {
|
|
130
154
|
"/inspector/debug": devMiddleware.websocketEndpoints["/inspector/debug"],
|
|
131
155
|
"/inspector/device": devMiddleware.websocketEndpoints["/inspector/device"],
|
|
132
|
-
"/inspector/network": devMiddleware.websocketEndpoints["/inspector/debug"],
|
|
156
|
+
"/inspector/network": devMiddleware.websocketEndpoints["/inspector/debug"],
|
|
133
157
|
},
|
|
134
158
|
});
|
|
135
159
|
await this.instance.register(multipart_plugin_1.multipartPlugin);
|
|
@@ -138,24 +162,50 @@ class DevServer {
|
|
|
138
162
|
port: this.config.port,
|
|
139
163
|
https: this.config.https,
|
|
140
164
|
});
|
|
141
|
-
await this.instance.register(
|
|
165
|
+
await this.instance.register(sybmolicate_plugin_1.symbolicatePlugin, {
|
|
166
|
+
onSymbolicate: this.onSymbolicate.bind(this),
|
|
167
|
+
});
|
|
168
|
+
await this.instance.register(systrace_plugin_1.systracePlugin);
|
|
142
169
|
// await this.instance.register(faviconPlugin);
|
|
143
170
|
// Register middleware
|
|
144
171
|
this.instance.use("/open-url", cli_server_api_1.openURLMiddleware);
|
|
145
172
|
this.instance.use("/open-stack-frame", (0, cli_server_api_1.openStackFrameInEditorMiddleware)({
|
|
146
173
|
watchFolders: [this.config.projectRoot],
|
|
147
174
|
}));
|
|
175
|
+
this.instance.use(serverInstance.metroServer.processRequest);
|
|
148
176
|
this.instance.use(devMiddleware.middleware);
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
177
|
+
}
|
|
178
|
+
onSymbolicate(request, reply) {
|
|
179
|
+
const result = JSON.parse(request.rawBody);
|
|
180
|
+
const { codeFrame, stack } = result;
|
|
181
|
+
this.instance.log.info("onSymbolicate", { codeFrame, stack });
|
|
182
|
+
}
|
|
183
|
+
customInspectorMessageHandler(connection) {
|
|
184
|
+
this.instance.log.info("Creating custom inspector message handler", {
|
|
185
|
+
connection,
|
|
186
|
+
});
|
|
187
|
+
return {
|
|
188
|
+
handleDeviceMessage: (message) => this.onDeviceMessage(connection, message),
|
|
189
|
+
handleDebuggerMessage: (message) => this.onDebuggerMessage(connection, message),
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
onDeviceMessage(connection, message) {
|
|
193
|
+
console.log("onDeviceMessage", message);
|
|
194
|
+
this.instance.log.info("Device -> Debugger", {
|
|
195
|
+
message,
|
|
196
|
+
});
|
|
197
|
+
connection.debugger.sendMessage(message);
|
|
198
|
+
}
|
|
199
|
+
onDebuggerMessage(connection, message) {
|
|
200
|
+
console.log("onDebuggerMessage", message);
|
|
201
|
+
this.instance.log.info("Debugger -> Device", {
|
|
202
|
+
message,
|
|
153
203
|
});
|
|
154
|
-
|
|
204
|
+
connection.device.sendMessage(message);
|
|
155
205
|
}
|
|
156
206
|
registerHooks() {
|
|
157
|
-
|
|
158
|
-
this.instance.addHook("onSend", async (request, reply, payload) => {
|
|
207
|
+
this.instance.log.info("Registering hooks");
|
|
208
|
+
this.instance = this.instance.addHook("onSend", async (request, reply, payload) => {
|
|
159
209
|
reply.header("X-Content-Type-Options", "nosniff");
|
|
160
210
|
reply.header("X-React-Native-Project-Root", this.config.projectRoot);
|
|
161
211
|
const [pathname] = request.url.split("?");
|
|
@@ -164,17 +214,20 @@ class DevServer {
|
|
|
164
214
|
}
|
|
165
215
|
return payload;
|
|
166
216
|
});
|
|
217
|
+
this.instance.log.info("Hooks registered");
|
|
167
218
|
}
|
|
168
219
|
registerRoutes() {
|
|
169
|
-
|
|
220
|
+
this.instance.log.info("Registering routes");
|
|
170
221
|
this.instance.get("/", async () => "React Native packager is running");
|
|
171
222
|
this.instance.get("/status", async () => "packager-status:running");
|
|
223
|
+
this.instance.log.info("Routes registered");
|
|
172
224
|
}
|
|
173
225
|
async initialize() {
|
|
174
|
-
|
|
226
|
+
this.instance.log.info("Initializing dev server");
|
|
175
227
|
await this.registerPlugins();
|
|
176
228
|
this.registerHooks();
|
|
177
229
|
this.registerRoutes();
|
|
230
|
+
this.instance.log.info("Dev server initialized");
|
|
178
231
|
}
|
|
179
232
|
async start() {
|
|
180
233
|
this.instance.log.info("Starting dev server", this.config);
|
|
@@ -182,11 +235,12 @@ class DevServer {
|
|
|
182
235
|
port: this.config.port,
|
|
183
236
|
host: this.config.host,
|
|
184
237
|
});
|
|
185
|
-
|
|
238
|
+
this.instance.log.info("Dev server started", this.instance.server.address());
|
|
186
239
|
}
|
|
187
240
|
async stop() {
|
|
188
|
-
|
|
241
|
+
this.instance.log.info("Stopping dev server");
|
|
189
242
|
await this.instance.close();
|
|
243
|
+
this.instance.log.info("Dev server stopped");
|
|
190
244
|
}
|
|
191
245
|
getInstance() {
|
|
192
246
|
return this.instance;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const systracePlugin: (instance: import("fastify").FastifyInstance<import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault>) => Promise<void>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.systracePlugin = void 0;
|
|
7
|
+
const fastify_plugin_1 = __importDefault(require("fastify-plugin"));
|
|
8
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
|
+
const cli_tools_1 = require("@react-native-community/cli-tools");
|
|
10
|
+
exports.systracePlugin = (0, fastify_plugin_1.default)(async (instance) => {
|
|
11
|
+
instance.post("/systrace", async (request, reply) => {
|
|
12
|
+
cli_tools_1.logger.info("Dumping profile information...");
|
|
13
|
+
const dumpName = `/tmp/dump_${Date.now()}.json`;
|
|
14
|
+
// Get the raw body from the request
|
|
15
|
+
const rawBody = await request.body;
|
|
16
|
+
node_fs_1.default.writeFileSync(dumpName, JSON.stringify(rawBody));
|
|
17
|
+
const response =
|
|
18
|
+
// biome-ignore lint/style/useTemplate: <explanation>
|
|
19
|
+
`Your profile was saved at:\n${dumpName}\n\n` +
|
|
20
|
+
'On Google Chrome navigate to chrome://tracing and then click on "load" ' +
|
|
21
|
+
"to load and visualise your profile.\n\n" +
|
|
22
|
+
"This message is also printed to your console by the packager so you can copy it :)";
|
|
23
|
+
cli_tools_1.logger.info(response);
|
|
24
|
+
return reply.send(response);
|
|
25
|
+
});
|
|
26
|
+
}, {
|
|
27
|
+
name: "systrace-plugin",
|
|
28
|
+
});
|
|
@@ -26,13 +26,18 @@ class WebSocketApiServer extends web_socket_server_1.WebSocketServer {
|
|
|
26
26
|
* @param event Event string or object to send.
|
|
27
27
|
*/
|
|
28
28
|
send(event) {
|
|
29
|
+
if (this.clients.size === 0) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
29
32
|
const data = typeof event === "string" ? event : JSON.stringify(event);
|
|
30
33
|
for (const [, socket] of this.clients.entries()) {
|
|
31
34
|
try {
|
|
32
35
|
socket.send(data);
|
|
33
36
|
}
|
|
34
|
-
catch {
|
|
35
|
-
|
|
37
|
+
catch (error) {
|
|
38
|
+
this.fastify.log.error("Error sending message to API client", {
|
|
39
|
+
error,
|
|
40
|
+
});
|
|
36
41
|
}
|
|
37
42
|
}
|
|
38
43
|
}
|
|
@@ -43,13 +48,13 @@ class WebSocketApiServer extends web_socket_server_1.WebSocketServer {
|
|
|
43
48
|
*/
|
|
44
49
|
onConnection(socket) {
|
|
45
50
|
const clientId = `client#${this.nextClientId++}`;
|
|
46
|
-
console.log("WebSocketApiServer onConnection", clientId, socket);
|
|
47
51
|
this.clients.set(clientId, socket);
|
|
48
|
-
this.fastify.log.
|
|
52
|
+
this.fastify.log.info("API client connected", {
|
|
53
|
+
clientId,
|
|
54
|
+
});
|
|
49
55
|
this.clients.set(clientId, socket);
|
|
50
56
|
const onClose = () => {
|
|
51
|
-
this.fastify.log.
|
|
52
|
-
msg: "API client disconnected",
|
|
57
|
+
this.fastify.log.info("API client disconnected", {
|
|
53
58
|
clientId,
|
|
54
59
|
});
|
|
55
60
|
this.clients.delete(clientId);
|
|
@@ -59,7 +59,7 @@ export declare class WebSocketEventsServer extends WebSocketServer {
|
|
|
59
59
|
* @param message Message to serialize.
|
|
60
60
|
* @returns String representation of a `message` or `undefined` if serialization failed.
|
|
61
61
|
*/
|
|
62
|
-
serializeMessage(message: EventMessage): string | undefined;
|
|
62
|
+
serializeMessage(message: EventMessage, clientId?: string): string | undefined;
|
|
63
63
|
/**
|
|
64
64
|
* Broadcast event to all connected clients.
|
|
65
65
|
*
|
|
@@ -84,7 +84,7 @@ class WebSocketEventsServer extends web_socket_server_1.WebSocketServer {
|
|
|
84
84
|
* @param message Message to serialize.
|
|
85
85
|
* @returns String representation of a `message` or `undefined` if serialization failed.
|
|
86
86
|
*/
|
|
87
|
-
serializeMessage(message) {
|
|
87
|
+
serializeMessage(message, clientId) {
|
|
88
88
|
let toSerialize = message;
|
|
89
89
|
if (message.error && message.error instanceof Error) {
|
|
90
90
|
toSerialize = {
|
|
@@ -112,7 +112,10 @@ class WebSocketEventsServer extends web_socket_server_1.WebSocketServer {
|
|
|
112
112
|
};
|
|
113
113
|
}
|
|
114
114
|
try {
|
|
115
|
-
return JSON.stringify(
|
|
115
|
+
return JSON.stringify({
|
|
116
|
+
...toSerialize,
|
|
117
|
+
clientId,
|
|
118
|
+
});
|
|
116
119
|
}
|
|
117
120
|
catch (error) {
|
|
118
121
|
this.fastify.log.error({ msg: "Failed to serialize", error });
|
|
@@ -130,11 +133,16 @@ class WebSocketEventsServer extends web_socket_server_1.WebSocketServer {
|
|
|
130
133
|
}
|
|
131
134
|
const serialized = this.serializeMessage(event);
|
|
132
135
|
if (!serialized) {
|
|
136
|
+
console.log("Failed to serialize event");
|
|
133
137
|
return;
|
|
134
138
|
}
|
|
135
139
|
for (const [clientId, socket] of this.clients.entries()) {
|
|
136
140
|
try {
|
|
137
|
-
|
|
141
|
+
const clientMessage = this.serializeMessage(event, clientId);
|
|
142
|
+
if (!clientMessage) {
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
socket.send(clientMessage);
|
|
138
146
|
}
|
|
139
147
|
catch (error) {
|
|
140
148
|
this.fastify.log.error({
|
|
@@ -93,15 +93,23 @@ class WebSocketHMRServer extends web_socket_server_1.WebSocketServer {
|
|
|
93
93
|
this.options.onClientConnected(platform, clientId);
|
|
94
94
|
}
|
|
95
95
|
async registerHMRClient(socket, requestUrl) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
socket.send(
|
|
96
|
+
const sendFn = (...args) => {
|
|
97
|
+
// @ts-ignore
|
|
98
|
+
socket.send(...args);
|
|
99
99
|
};
|
|
100
100
|
const hmrClient = await this.hmrServer.onClientConnect(requestUrl, sendFn);
|
|
101
101
|
socket.on("error", (error) => {
|
|
102
|
+
this.fastify.log.error({
|
|
103
|
+
msg: "HMR client error",
|
|
104
|
+
error,
|
|
105
|
+
});
|
|
102
106
|
this.hmrServer.onClientError(hmrClient, error);
|
|
103
107
|
});
|
|
104
108
|
socket.on("close", () => {
|
|
109
|
+
this.fastify.log.debug({
|
|
110
|
+
msg: "HMR client disconnected",
|
|
111
|
+
...hmrClient,
|
|
112
|
+
});
|
|
105
113
|
this.hmrServer.onClientDisconnect(hmrClient);
|
|
106
114
|
});
|
|
107
115
|
socket.on("message", (data) => {
|
|
@@ -65,6 +65,7 @@ class WebSocketMessageServer extends web_socket_server_1.WebSocketServer {
|
|
|
65
65
|
* @returns Parsed message or `undefined` if parsing failed.
|
|
66
66
|
*/
|
|
67
67
|
parseMessage(data, binary) {
|
|
68
|
+
console.log("parseMessage", data, binary);
|
|
68
69
|
if (binary) {
|
|
69
70
|
this.fastify.log.error({
|
|
70
71
|
msg: "Failed to parse message - expected text message, got binary",
|
|
@@ -97,6 +98,7 @@ class WebSocketMessageServer extends web_socket_server_1.WebSocketServer {
|
|
|
97
98
|
* @returns WebSocket connection.
|
|
98
99
|
*/
|
|
99
100
|
getClientSocket(clientId) {
|
|
101
|
+
console.log("getClientSocket", clientId);
|
|
100
102
|
const socket = this.clients.get(clientId);
|
|
101
103
|
if (socket === undefined) {
|
|
102
104
|
throw new Error(`Could not find client with id "${clientId}"`);
|
|
@@ -112,6 +114,7 @@ class WebSocketMessageServer extends web_socket_server_1.WebSocketServer {
|
|
|
112
114
|
* @param error Concrete instance of an error that occurred.
|
|
113
115
|
*/
|
|
114
116
|
handleError(clientId, message, error) {
|
|
117
|
+
console.log("handleError", clientId, message, error);
|
|
115
118
|
const errorMessage = {
|
|
116
119
|
id: message.id,
|
|
117
120
|
method: message.method,
|
|
@@ -154,6 +157,7 @@ class WebSocketMessageServer extends web_socket_server_1.WebSocketServer {
|
|
|
154
157
|
* @param message Message to forward.
|
|
155
158
|
*/
|
|
156
159
|
forwardRequest(clientId, message) {
|
|
160
|
+
console.log("forwardRequest", clientId, message);
|
|
157
161
|
if (!message.target) {
|
|
158
162
|
this.fastify.log.error({
|
|
159
163
|
msg: "Failed to forward request - message.target is missing",
|
|
@@ -200,6 +204,7 @@ class WebSocketMessageServer extends web_socket_server_1.WebSocketServer {
|
|
|
200
204
|
* @param message The message to process by the server.
|
|
201
205
|
*/
|
|
202
206
|
processServerRequest(clientId, message) {
|
|
207
|
+
console.log("processServerRequest", clientId, message);
|
|
203
208
|
let result;
|
|
204
209
|
switch (message.method) {
|
|
205
210
|
case "getid":
|
|
@@ -297,7 +302,7 @@ class WebSocketMessageServer extends web_socket_server_1.WebSocketServer {
|
|
|
297
302
|
};
|
|
298
303
|
const onClose = (close) => {
|
|
299
304
|
this.fastify.log.debug({
|
|
300
|
-
msg:
|
|
305
|
+
msg: "Message client closed",
|
|
301
306
|
clientId,
|
|
302
307
|
close,
|
|
303
308
|
});
|
|
@@ -24,12 +24,10 @@ class WebSocketRouter {
|
|
|
24
24
|
constructor(fastify) {
|
|
25
25
|
this.fastify = fastify;
|
|
26
26
|
this.fastify.server.on("upgrade", (request, socket, head) => {
|
|
27
|
-
console.log("WebSocketRouter upgrade", request.url);
|
|
28
27
|
const { pathname } = new URL(request.url || "", "http://localhost");
|
|
29
28
|
let matched = false;
|
|
30
29
|
for (const server of this.servers) {
|
|
31
30
|
if (server.shouldUpgrade(pathname)) {
|
|
32
|
-
// console.log("WebSocketRouter upgrade matched", pathname);
|
|
33
31
|
matched = true;
|
|
34
32
|
server.upgrade(request, socket, head);
|
|
35
33
|
break;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ConfigT } from "metro-config";
|
|
2
2
|
import type MetroServer from "metro/src/Server";
|
|
3
3
|
import type { WebSocketServer } from "ws";
|
|
4
|
-
import { WebSocketApiServer } from "./servers/web-socket-api.server";
|
|
4
|
+
import type { WebSocketApiServer } from "./servers/web-socket-api.server";
|
|
5
5
|
import { WebSocketDebuggerServer } from "./servers/web-socket-debugger.server";
|
|
6
6
|
import { WebSocketDevClientServer } from "./servers/web-socket-dev-client.server";
|
|
7
7
|
import type { WebSocketEventsServer } from "./servers/web-socket-events.server";
|
|
@@ -37,6 +37,7 @@ export declare const wssPlugin: import("fastify").FastifyPluginCallback<{
|
|
|
37
37
|
onClientConnected: (platform: string, clientId: string) => void;
|
|
38
38
|
messageServer: WebSocketMessageServer;
|
|
39
39
|
eventsServer: WebSocketEventsServer;
|
|
40
|
+
apiServer: WebSocketApiServer;
|
|
40
41
|
endpoints: {
|
|
41
42
|
[WS_DEVICE_URL]: WebSocketServer;
|
|
42
43
|
[WS_DEBUGGER_URL]: WebSocketServer;
|
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.wssPlugin = void 0;
|
|
7
7
|
const fastify_plugin_1 = __importDefault(require("fastify-plugin"));
|
|
8
|
-
const web_socket_api_server_1 = require("./servers/web-socket-api.server");
|
|
9
8
|
const web_socket_debugger_server_1 = require("./servers/web-socket-debugger.server");
|
|
10
9
|
const web_socket_dev_client_server_1 = require("./servers/web-socket-dev-client.server");
|
|
11
10
|
const web_socket_hmr_server_1 = require("./servers/web-socket-hmr.server");
|
|
@@ -18,11 +17,10 @@ const web_socket_server_adapter_1 = require("./web-socket-server-adapter");
|
|
|
18
17
|
const WS_DEVICE_URL = "/inspector/device";
|
|
19
18
|
const WS_DEBUGGER_URL = "/inspector/debug";
|
|
20
19
|
const WS_NETWORK_URL = "/inspector/network";
|
|
21
|
-
exports.wssPlugin = (0, fastify_plugin_1.default)(async (instance, { metroConfig, metroServer, onClientConnected, endpoints, messageServer, eventsServer, }) => {
|
|
20
|
+
exports.wssPlugin = (0, fastify_plugin_1.default)(async (instance, { metroConfig, metroServer, onClientConnected, endpoints, messageServer, eventsServer, apiServer, }) => {
|
|
22
21
|
const router = new web_socket_router_1.WebSocketRouter(instance);
|
|
23
22
|
const debuggerServer = new web_socket_debugger_server_1.WebSocketDebuggerServer(instance);
|
|
24
23
|
const devClientServer = new web_socket_dev_client_server_1.WebSocketDevClientServer(instance);
|
|
25
|
-
const apiServer = new web_socket_api_server_1.WebSocketApiServer(instance);
|
|
26
24
|
const hmrServer = new web_socket_hmr_server_1.WebSocketHMRServer(instance, {
|
|
27
25
|
metroConfig,
|
|
28
26
|
metroServer,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IncomingMessageExtended } from "@fastify/middie";
|
|
2
|
+
import type http from "node:http";
|
|
3
|
+
export type SymbolicateRequest = http.IncomingMessage & IncomingMessageExtended & {
|
|
4
|
+
rawBody: string;
|
|
5
|
+
};
|
|
6
|
+
export type SymbolicateReply = http.ServerResponse;
|
|
7
|
+
type SymbolicatePluginOptions = {
|
|
8
|
+
onSymbolicate: (request: SymbolicateRequest, reply: SymbolicateReply) => void;
|
|
9
|
+
};
|
|
10
|
+
export declare const symbolicatePlugin: import("fastify").FastifyPluginCallback<SymbolicatePluginOptions, import("fastify").RawServerDefault, import("fastify").FastifyTypeProviderDefault, import("fastify").FastifyBaseLogger>;
|
|
11
|
+
export {};
|
|
@@ -5,17 +5,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.symbolicatePlugin = void 0;
|
|
7
7
|
const fastify_plugin_1 = __importDefault(require("fastify-plugin"));
|
|
8
|
-
exports.symbolicatePlugin = (0, fastify_plugin_1.default)(async (instance) => {
|
|
9
|
-
instance.
|
|
10
|
-
|
|
8
|
+
exports.symbolicatePlugin = (0, fastify_plugin_1.default)(async (instance, options) => {
|
|
9
|
+
instance.log.info("Symbolicate plugin registered");
|
|
10
|
+
instance.use((request, reply, next) => {
|
|
11
|
+
if (request.url !== "/symbolicate") {
|
|
12
|
+
next();
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
instance.log.info("symbolicate onRequest", request.url);
|
|
11
16
|
const requestWithBody = request;
|
|
12
17
|
requestWithBody.rawBody = "";
|
|
13
|
-
requestWithBody.
|
|
14
|
-
|
|
18
|
+
requestWithBody.setEncoding("utf8");
|
|
19
|
+
requestWithBody.on("data", (chunk) => {
|
|
15
20
|
requestWithBody.rawBody += chunk;
|
|
16
21
|
});
|
|
17
|
-
requestWithBody.
|
|
18
|
-
|
|
22
|
+
requestWithBody.on("end", () => {
|
|
23
|
+
options.onSymbolicate(requestWithBody, reply);
|
|
24
|
+
next();
|
|
19
25
|
});
|
|
20
26
|
});
|
|
21
27
|
}, {
|
|
@@ -59,12 +59,14 @@ class TeardownTerminalReporter extends base_terminal_reporter_1.BaseTerminalRepo
|
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
61
|
update(event) {
|
|
62
|
-
super.update(event);
|
|
63
62
|
this.devServer?.reportMetroEvent(event);
|
|
64
63
|
switch (event.type) {
|
|
65
64
|
case "initialize_done":
|
|
66
65
|
this.devServer.onInitializeDone?.();
|
|
67
66
|
break;
|
|
67
|
+
default:
|
|
68
|
+
super.update(event);
|
|
69
|
+
break;
|
|
68
70
|
}
|
|
69
71
|
}
|
|
70
72
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teardown/cli",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.27",
|
|
4
4
|
"description": "Teardown CLI",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -20,19 +20,21 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@babel/code-frame": "^7.26.2",
|
|
22
22
|
"@fastify/compress": "^8.0.1",
|
|
23
|
+
"@fastify/cors": "^10.0.1",
|
|
23
24
|
"@fastify/middie": "^9.0.2",
|
|
24
25
|
"@fastify/sensible": "^6.0.1",
|
|
25
26
|
"@react-native-community/cli-server-api": "^15.0.1",
|
|
26
|
-
"@react-native/
|
|
27
|
+
"@react-native/dev-middleware": "0.76.1",
|
|
28
|
+
"@react-native/metro-config": "0.76.1",
|
|
27
29
|
"@types/bun": "^1.1.13",
|
|
28
|
-
"bun": "
|
|
30
|
+
"bun": "1.1.34",
|
|
29
31
|
"chalk": "^5.3.0",
|
|
30
32
|
"cli-progress": "^3.12.0",
|
|
31
33
|
"commander": "^11.0.0",
|
|
32
34
|
"compression": "^1.7.5",
|
|
33
35
|
"connect": "^3.7.0",
|
|
34
36
|
"debug": "^4.3.7",
|
|
35
|
-
"devtools-protocol": "^0.0.
|
|
37
|
+
"devtools-protocol": "^0.0.1380148",
|
|
36
38
|
"fastify": "^5.1.0",
|
|
37
39
|
"fastify-favicon": "^5.0.0",
|
|
38
40
|
"fastify-plugin": "^5.0.1",
|
|
@@ -40,6 +42,7 @@
|
|
|
40
42
|
"metro": "^0.81.0",
|
|
41
43
|
"metro-config": "^0.81.0",
|
|
42
44
|
"metro-core": "^0.81.0",
|
|
45
|
+
"metro-runtime": "^0.81.0",
|
|
43
46
|
"pretty-format": "^29.7.0",
|
|
44
47
|
"prompts": "^2.4.2",
|
|
45
48
|
"source-map": "^0.7.4"
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./sybmolicatePlugin"), exports);
|
|
18
|
-
__exportStar(require("./types"), exports);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const symbolicatePlugin: (instance: import("fastify").FastifyInstance<import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault>) => Promise<void>;
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Raw React Native stack frame.
|
|
3
|
-
*/
|
|
4
|
-
export interface ReactNativeStackFrame {
|
|
5
|
-
lineNumber: number | null;
|
|
6
|
-
column: number | null;
|
|
7
|
-
file: string | null;
|
|
8
|
-
methodName: string;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* React Native stack frame used as input when processing by {@link Symbolicator}.
|
|
12
|
-
*/
|
|
13
|
-
export interface InputStackFrame extends ReactNativeStackFrame {
|
|
14
|
-
file: string;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Final symbolicated stack frame.
|
|
18
|
-
*/
|
|
19
|
-
export interface StackFrame extends InputStackFrame {
|
|
20
|
-
collapse: boolean;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Represents [@babel/core-frame](https://babeljs.io/docs/en/babel-code-frame).
|
|
24
|
-
*/
|
|
25
|
-
export interface CodeFrame {
|
|
26
|
-
content: string;
|
|
27
|
-
location: {
|
|
28
|
-
row: number;
|
|
29
|
-
column: number;
|
|
30
|
-
};
|
|
31
|
-
fileName: string;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Represents results of running {@link process} method on {@link Symbolicator} instance.
|
|
35
|
-
*/
|
|
36
|
-
export interface SymbolicatorResults {
|
|
37
|
-
codeFrame: CodeFrame | null;
|
|
38
|
-
stack: StackFrame[];
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Delegate with implementation for symbolication functions.
|
|
42
|
-
*/
|
|
43
|
-
export interface SymbolicatorDelegate {
|
|
44
|
-
/**
|
|
45
|
-
* Get source code of file in the URL.
|
|
46
|
-
*
|
|
47
|
-
* @param fileUrl A full URL pointing to a file.
|
|
48
|
-
*/
|
|
49
|
-
getSource: (fileUrl: string) => Promise<string | Buffer>;
|
|
50
|
-
/**
|
|
51
|
-
* Get source map for the file in the URL.
|
|
52
|
-
*
|
|
53
|
-
* @param fileUrl A full (usually `http:`) URL pointing to a compiled file.
|
|
54
|
-
* The URL points to a file for which to return source map, not to the source map file itself,
|
|
55
|
-
* e.g: `http://localhost:8081/index.bundle?platform=ios`.
|
|
56
|
-
*/
|
|
57
|
-
getSourceMap: (fileUrl: string) => Promise<string | Buffer>;
|
|
58
|
-
/**
|
|
59
|
-
* Check if given stack frame should be included in the new symbolicated stack.
|
|
60
|
-
*
|
|
61
|
-
* @param frame Stack frame to check.
|
|
62
|
-
*/
|
|
63
|
-
shouldIncludeFrame: (frame: StackFrame) => boolean;
|
|
64
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export type { SymbolicatorDelegate, ReactNativeStackFrame, InputStackFrame, StackFrame, CodeFrame, SymbolicatorResults, } from './plugins/symbolicate';
|
|
2
|
-
/** Representation of the compilation progress. */
|
|
3
|
-
export interface ProgressData {
|
|
4
|
-
/** Number of modules built. */
|
|
5
|
-
completed: number;
|
|
6
|
-
/** Total number of modules detect as part of compilation. */
|
|
7
|
-
total: number;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Type representing a function to send the progress.
|
|
11
|
-
*
|
|
12
|
-
* Used by {@link CompilerDelegate} in `getAsset` function to send the compilation
|
|
13
|
-
* progress to the client who requested the asset.
|
|
14
|
-
*/
|
|
15
|
-
export type SendProgress = (data: ProgressData) => void;
|
|
16
|
-
/**
|
|
17
|
-
* Internal types. Do not use.
|
|
18
|
-
*
|
|
19
|
-
* @internal
|
|
20
|
-
*/
|
|
21
|
-
export declare namespace Internal {
|
|
22
|
-
enum EventTypes {
|
|
23
|
-
BuildStart = "BuildStart",
|
|
24
|
-
BuildEnd = "BuildEnd",
|
|
25
|
-
HmrEvent = "HmrEvent"
|
|
26
|
-
}
|
|
27
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Internal = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Internal types. Do not use.
|
|
6
|
-
*
|
|
7
|
-
* @internal
|
|
8
|
-
*/
|
|
9
|
-
var Internal;
|
|
10
|
-
(function (Internal) {
|
|
11
|
-
let EventTypes;
|
|
12
|
-
(function (EventTypes) {
|
|
13
|
-
EventTypes["BuildStart"] = "BuildStart";
|
|
14
|
-
EventTypes["BuildEnd"] = "BuildEnd";
|
|
15
|
-
EventTypes["HmrEvent"] = "HmrEvent";
|
|
16
|
-
})(EventTypes = Internal.EventTypes || (Internal.EventTypes = {}));
|
|
17
|
-
})(Internal || (exports.Internal = Internal = {}));
|
|
File without changes
|
|
File without changes
|