@10play/expo-air 0.6.0 → 0.6.1
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/build/ExpoAirModule.d.ts +1 -0
- package/build/ExpoAirModule.d.ts.map +1 -1
- package/build/ExpoAirModule.js.map +1 -1
- package/build/hmrReconnect.d.ts +13 -0
- package/build/hmrReconnect.d.ts.map +1 -0
- package/build/hmrReconnect.js +277 -0
- package/build/hmrReconnect.js.map +1 -0
- package/cli/dist/server/promptServer.d.ts +3 -0
- package/cli/dist/server/promptServer.d.ts.map +1 -1
- package/cli/dist/server/promptServer.js +82 -9
- package/cli/dist/server/promptServer.js.map +1 -1
- package/package.json +1 -1
- package/plugin/build/index.js +37 -0
package/build/ExpoAirModule.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoAirModule.d.ts","sourceRoot":"","sources":["../src/ExpoAirModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,MAAM,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,OAAO,aAAc,SAAQ,YAAY,CAAC,mBAAmB,CAAC;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,IAAI,MAAM;IACf,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3C,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IACvD,IAAI,IAAI,IAAI;IACZ,MAAM,IAAI,IAAI;IACd,QAAQ,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"ExpoAirModule.d.ts","sourceRoot":"","sources":["../src/ExpoAirModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,MAAM,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,OAAO,aAAc,SAAQ,YAAY,CAAC,mBAAmB,CAAC;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,IAAI,MAAM;IACf,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3C,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IACvD,IAAI,IAAI,IAAI;IACZ,MAAM,IAAI,IAAI;IACd,QAAQ,IAAI,IAAI;IAChB,YAAY,IAAI,MAAM;CACvB;;AAGD,wBAA6D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoAirModule.js","sourceRoot":"","sources":["../src/ExpoAirModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ExpoAirModule.js","sourceRoot":"","sources":["../src/ExpoAirModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAezD,yDAAyD;AACzD,eAAe,mBAAmB,CAAgB,SAAS,CAAC,CAAC","sourcesContent":["import { NativeModule, requireNativeModule } from \"expo\";\n\nimport { ExpoAirModuleEvents } from \"./ExpoAir.types\";\n\ndeclare class ExpoAirModule extends NativeModule<ExpoAirModuleEvents> {\n PI: number;\n hello(): string;\n setValueAsync(value: string): Promise<void>;\n show(options?: { size?: number; color?: string }): void;\n hide(): void;\n expand(): void;\n collapse(): void;\n getServerUrl(): string;\n}\n\n// This call loads the native module object from the JSI.\nexport default requireNativeModule<ExpoAirModule>(\"ExpoAir\");\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metro HMR WebSocket Auto-Reconnect
|
|
3
|
+
*
|
|
4
|
+
* Patches global.WebSocket to wrap Metro's HMR connections with automatic
|
|
5
|
+
* reconnection. When the HMR WebSocket disconnects (tunnel drops, WiFi issues,
|
|
6
|
+
* app backgrounding), this module auto-reconnects and tells the prompt server
|
|
7
|
+
* to re-touch uncommitted files so Metro re-pushes HMR updates.
|
|
8
|
+
*
|
|
9
|
+
* Must be imported early in the app lifecycle, before Metro's HMR client
|
|
10
|
+
* creates its WebSocket connection.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=hmrReconnect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hmrReconnect.d.ts","sourceRoot":"","sources":["../src/hmrReconnect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metro HMR WebSocket Auto-Reconnect
|
|
3
|
+
*
|
|
4
|
+
* Patches global.WebSocket to wrap Metro's HMR connections with automatic
|
|
5
|
+
* reconnection. When the HMR WebSocket disconnects (tunnel drops, WiFi issues,
|
|
6
|
+
* app backgrounding), this module auto-reconnects and tells the prompt server
|
|
7
|
+
* to re-touch uncommitted files so Metro re-pushes HMR updates.
|
|
8
|
+
*
|
|
9
|
+
* Must be imported early in the app lifecycle, before Metro's HMR client
|
|
10
|
+
* creates its WebSocket connection.
|
|
11
|
+
*/
|
|
12
|
+
if (typeof __DEV__ !== "undefined" && __DEV__) {
|
|
13
|
+
console.log("[expo-air:hmr] Initializing HMR auto-reconnect module");
|
|
14
|
+
const OriginalWebSocket = globalThis.WebSocket;
|
|
15
|
+
// Get the prompt server URL for retrigger requests
|
|
16
|
+
let serverHttpUrl = null;
|
|
17
|
+
try {
|
|
18
|
+
const ExpoAirModule = require("./ExpoAirModule").default ?? require("./ExpoAirModule");
|
|
19
|
+
const wsUrl = ExpoAirModule.getServerUrl?.();
|
|
20
|
+
console.log("[expo-air:hmr] Server URL from native module:", wsUrl);
|
|
21
|
+
if (wsUrl) {
|
|
22
|
+
serverHttpUrl = wsUrl
|
|
23
|
+
.replace(/^ws:/, "http:")
|
|
24
|
+
.replace(/^wss:/, "https:");
|
|
25
|
+
console.log("[expo-air:hmr] HTTP URL for retrigger:", serverHttpUrl);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
console.warn("[expo-air:hmr] getServerUrl() returned empty/null");
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
console.warn("[expo-air:hmr] Failed to get server URL:", e);
|
|
33
|
+
}
|
|
34
|
+
const MAX_ATTEMPTS = 50;
|
|
35
|
+
const BASE_DELAY = 2000;
|
|
36
|
+
const MAX_DELAY = 30000;
|
|
37
|
+
function isMetroHMRUrl(url) {
|
|
38
|
+
return typeof url === "string" && url.includes("/hot");
|
|
39
|
+
}
|
|
40
|
+
function notifyServerOfReconnection() {
|
|
41
|
+
if (!serverHttpUrl) {
|
|
42
|
+
console.log("[expo-air:hmr] Cannot retrigger - no server URL available");
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
console.log("[expo-air:hmr] Sending retrigger request to:", `${serverHttpUrl}/hmr-retrigger`);
|
|
46
|
+
globalThis
|
|
47
|
+
.fetch(`${serverHttpUrl}/hmr-retrigger`, { method: "POST" })
|
|
48
|
+
.then((res) => {
|
|
49
|
+
console.log("[expo-air:hmr] Retrigger response status:", res.status);
|
|
50
|
+
})
|
|
51
|
+
.catch((err) => {
|
|
52
|
+
console.warn("[expo-air:hmr] Retrigger request failed:", err);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
globalThis.WebSocket = function ReconnectingWebSocket(url, protocols) {
|
|
56
|
+
// Non-HMR connections pass through unchanged
|
|
57
|
+
if (!isMetroHMRUrl(url)) {
|
|
58
|
+
if (protocols !== undefined) {
|
|
59
|
+
return new OriginalWebSocket(url, protocols);
|
|
60
|
+
}
|
|
61
|
+
return new OriginalWebSocket(url);
|
|
62
|
+
}
|
|
63
|
+
console.log("[expo-air:hmr] Wrapping Metro HMR WebSocket:", url);
|
|
64
|
+
let inner = null;
|
|
65
|
+
const handlers = {
|
|
66
|
+
open: null,
|
|
67
|
+
close: null,
|
|
68
|
+
message: null,
|
|
69
|
+
error: null,
|
|
70
|
+
};
|
|
71
|
+
const eventListeners = {
|
|
72
|
+
open: new Set(),
|
|
73
|
+
close: new Set(),
|
|
74
|
+
message: new Set(),
|
|
75
|
+
error: new Set(),
|
|
76
|
+
};
|
|
77
|
+
let attempts = 0;
|
|
78
|
+
let intentionalClose = false;
|
|
79
|
+
let reconnectTimer = null;
|
|
80
|
+
// Capture HMR protocol messages for replay on reconnection.
|
|
81
|
+
// Metro's server tears down all client state (including file-change listeners)
|
|
82
|
+
// when the WebSocket disconnects. On reconnect, the client must re-send
|
|
83
|
+
// register-entrypoints so Metro knows which bundles to watch.
|
|
84
|
+
const registrationMessages = [];
|
|
85
|
+
// The wrapper object returned to the HMR client
|
|
86
|
+
const wrapper = Object.create(OriginalWebSocket.prototype);
|
|
87
|
+
function dispatch(type, event) {
|
|
88
|
+
const handler = handlers[type];
|
|
89
|
+
if (handler)
|
|
90
|
+
handler.call(wrapper, event);
|
|
91
|
+
const set = eventListeners[type];
|
|
92
|
+
if (set) {
|
|
93
|
+
for (const fn of set) {
|
|
94
|
+
fn.call(wrapper, event);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function connect() {
|
|
99
|
+
let ws;
|
|
100
|
+
try {
|
|
101
|
+
console.log(`[expo-air:hmr] ${attempts > 0 ? "Re-c" : "C"}onnecting HMR WebSocket to:`, url);
|
|
102
|
+
ws = protocols
|
|
103
|
+
? new OriginalWebSocket(url, protocols)
|
|
104
|
+
: new OriginalWebSocket(url);
|
|
105
|
+
}
|
|
106
|
+
catch (e) {
|
|
107
|
+
console.warn("[expo-air:hmr] WebSocket creation failed:", e);
|
|
108
|
+
scheduleReconnect();
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
inner = ws;
|
|
112
|
+
ws.onopen = (event) => {
|
|
113
|
+
const wasReconnect = attempts > 0;
|
|
114
|
+
attempts = 0;
|
|
115
|
+
console.log(`[expo-air:hmr] HMR WebSocket ${wasReconnect ? "RE" : ""}connected`);
|
|
116
|
+
if (wasReconnect && registrationMessages.length > 0) {
|
|
117
|
+
// Re-send captured registration messages BEFORE notifying HMR client.
|
|
118
|
+
// Metro's server resets all client state on disconnect, so we must
|
|
119
|
+
// re-register entrypoints for Metro to set up file-change listeners.
|
|
120
|
+
console.log(`[expo-air:hmr] Replaying ${registrationMessages.length} registration messages`);
|
|
121
|
+
for (const msg of registrationMessages) {
|
|
122
|
+
try {
|
|
123
|
+
ws.send(msg);
|
|
124
|
+
}
|
|
125
|
+
catch (e) {
|
|
126
|
+
console.warn("[expo-air:hmr] Failed to replay message:", e);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
dispatch("open", event);
|
|
131
|
+
if (wasReconnect) {
|
|
132
|
+
console.log("[expo-air:hmr] Reconnected, re-registered, requesting file retrigger");
|
|
133
|
+
// Delay retrigger to let Metro process registration and set up listeners
|
|
134
|
+
setTimeout(notifyServerOfReconnection, 2000);
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
ws.onmessage = (event) => {
|
|
138
|
+
dispatch("message", event);
|
|
139
|
+
};
|
|
140
|
+
ws.onerror = (event) => {
|
|
141
|
+
console.warn("[expo-air:hmr] HMR WebSocket error");
|
|
142
|
+
dispatch("error", event);
|
|
143
|
+
};
|
|
144
|
+
ws.onclose = (event) => {
|
|
145
|
+
if (intentionalClose) {
|
|
146
|
+
dispatch("close", event);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
console.log("[expo-air:hmr] HMR WebSocket disconnected (code:", event?.code, "), will auto-reconnect...");
|
|
150
|
+
scheduleReconnect();
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
function scheduleReconnect() {
|
|
154
|
+
if (attempts >= MAX_ATTEMPTS) {
|
|
155
|
+
console.warn(`[expo-air:hmr] Gave up reconnecting after ${MAX_ATTEMPTS} attempts`);
|
|
156
|
+
dispatch("close", {
|
|
157
|
+
code: 1006,
|
|
158
|
+
reason: "Max reconnect attempts reached",
|
|
159
|
+
});
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
attempts++;
|
|
163
|
+
const delay = Math.min(BASE_DELAY * Math.pow(1.5, attempts - 1), MAX_DELAY);
|
|
164
|
+
const jitter = delay * (0.8 + Math.random() * 0.4);
|
|
165
|
+
console.log(`[expo-air:hmr] Reconnect attempt ${attempts}/${MAX_ATTEMPTS} in ${Math.round(jitter / 1000)}s`);
|
|
166
|
+
reconnectTimer = setTimeout(connect, jitter);
|
|
167
|
+
}
|
|
168
|
+
// on* handler properties
|
|
169
|
+
for (const type of ["open", "close", "message", "error"]) {
|
|
170
|
+
Object.defineProperty(wrapper, `on${type}`, {
|
|
171
|
+
get: () => handlers[type],
|
|
172
|
+
set: (fn) => {
|
|
173
|
+
handlers[type] = fn;
|
|
174
|
+
},
|
|
175
|
+
configurable: true,
|
|
176
|
+
enumerable: true,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
Object.defineProperties(wrapper, {
|
|
180
|
+
readyState: {
|
|
181
|
+
get: () => (inner ? inner.readyState : OriginalWebSocket.CLOSED),
|
|
182
|
+
configurable: true,
|
|
183
|
+
},
|
|
184
|
+
url: {
|
|
185
|
+
get: () => url,
|
|
186
|
+
configurable: true,
|
|
187
|
+
},
|
|
188
|
+
protocol: {
|
|
189
|
+
get: () => (inner ? inner.protocol : ""),
|
|
190
|
+
configurable: true,
|
|
191
|
+
},
|
|
192
|
+
extensions: {
|
|
193
|
+
get: () => (inner ? inner.extensions : ""),
|
|
194
|
+
configurable: true,
|
|
195
|
+
},
|
|
196
|
+
bufferedAmount: {
|
|
197
|
+
get: () => (inner ? inner.bufferedAmount : 0),
|
|
198
|
+
configurable: true,
|
|
199
|
+
},
|
|
200
|
+
binaryType: {
|
|
201
|
+
get: () => (inner ? inner.binaryType : "blob"),
|
|
202
|
+
set: (val) => {
|
|
203
|
+
if (inner)
|
|
204
|
+
inner.binaryType = val;
|
|
205
|
+
},
|
|
206
|
+
configurable: true,
|
|
207
|
+
},
|
|
208
|
+
});
|
|
209
|
+
wrapper.send = (data) => {
|
|
210
|
+
// Capture HMR protocol messages needed for reconnection
|
|
211
|
+
if (typeof data === "string") {
|
|
212
|
+
try {
|
|
213
|
+
const parsed = JSON.parse(data);
|
|
214
|
+
if (parsed.type === "register-entrypoints" ||
|
|
215
|
+
parsed.type === "log-opt-in") {
|
|
216
|
+
// Update: keep latest version of each message type
|
|
217
|
+
const idx = registrationMessages.findIndex((m) => {
|
|
218
|
+
try {
|
|
219
|
+
return JSON.parse(m).type === parsed.type;
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
return false;
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
if (idx >= 0) {
|
|
226
|
+
registrationMessages[idx] = data;
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
registrationMessages.push(data);
|
|
230
|
+
}
|
|
231
|
+
console.log(`[expo-air:hmr] Captured ${parsed.type} message for reconnection replay`);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
// Not JSON, ignore
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
if (inner && inner.readyState === OriginalWebSocket.OPEN) {
|
|
239
|
+
inner.send(data);
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
wrapper.close = (code, reason) => {
|
|
243
|
+
intentionalClose = true;
|
|
244
|
+
if (reconnectTimer) {
|
|
245
|
+
clearTimeout(reconnectTimer);
|
|
246
|
+
reconnectTimer = null;
|
|
247
|
+
}
|
|
248
|
+
if (inner)
|
|
249
|
+
inner.close(code, reason);
|
|
250
|
+
};
|
|
251
|
+
wrapper.addEventListener = (type, listener, _options) => {
|
|
252
|
+
const set = eventListeners[type];
|
|
253
|
+
if (set)
|
|
254
|
+
set.add(listener);
|
|
255
|
+
};
|
|
256
|
+
wrapper.removeEventListener = (type, listener) => {
|
|
257
|
+
const set = eventListeners[type];
|
|
258
|
+
if (set)
|
|
259
|
+
set.delete(listener);
|
|
260
|
+
};
|
|
261
|
+
wrapper.dispatchEvent = () => false;
|
|
262
|
+
connect();
|
|
263
|
+
return wrapper;
|
|
264
|
+
};
|
|
265
|
+
// Copy static constants
|
|
266
|
+
globalThis.WebSocket.CONNECTING = OriginalWebSocket.CONNECTING;
|
|
267
|
+
globalThis.WebSocket.OPEN = OriginalWebSocket.OPEN;
|
|
268
|
+
globalThis.WebSocket.CLOSING = OriginalWebSocket.CLOSING;
|
|
269
|
+
globalThis.WebSocket.CLOSED = OriginalWebSocket.CLOSED;
|
|
270
|
+
// Log final initialization state
|
|
271
|
+
console.log("[expo-air:hmr] Module initialized", {
|
|
272
|
+
serverHttpUrl: serverHttpUrl ? "set" : "NOT SET",
|
|
273
|
+
webSocketPatched: true,
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
export {};
|
|
277
|
+
//# sourceMappingURL=hmrReconnect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hmrReconnect.js","sourceRoot":"","sources":["../src/hmrReconnect.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Metro HMR WebSocket Auto-Reconnect\n *\n * Patches global.WebSocket to wrap Metro's HMR connections with automatic\n * reconnection. When the HMR WebSocket disconnects (tunnel drops, WiFi issues,\n * app backgrounding), this module auto-reconnects and tells the prompt server\n * to re-touch uncommitted files so Metro re-pushes HMR updates.\n *\n * Must be imported early in the app lifecycle, before Metro's HMR client\n * creates its WebSocket connection.\n */\n\n/* eslint-disable @typescript-eslint/no-var-requires */\n\ndeclare const __DEV__: boolean;\ndeclare const globalThis: {\n WebSocket: typeof WebSocket;\n fetch: typeof fetch;\n};\n\nif (typeof __DEV__ !== \"undefined\" && __DEV__) {\n console.log(\"[expo-air:hmr] Initializing HMR auto-reconnect module\");\n\n const OriginalWebSocket = globalThis.WebSocket;\n\n // Get the prompt server URL for retrigger requests\n let serverHttpUrl: string | null = null;\n try {\n const ExpoAirModule =\n require(\"./ExpoAirModule\").default ?? require(\"./ExpoAirModule\");\n const wsUrl: string = ExpoAirModule.getServerUrl?.();\n console.log(\"[expo-air:hmr] Server URL from native module:\", wsUrl);\n if (wsUrl) {\n serverHttpUrl = wsUrl\n .replace(/^ws:/, \"http:\")\n .replace(/^wss:/, \"https:\");\n console.log(\"[expo-air:hmr] HTTP URL for retrigger:\", serverHttpUrl);\n } else {\n console.warn(\"[expo-air:hmr] getServerUrl() returned empty/null\");\n }\n } catch (e) {\n console.warn(\"[expo-air:hmr] Failed to get server URL:\", e);\n }\n\n const MAX_ATTEMPTS = 50;\n const BASE_DELAY = 2000;\n const MAX_DELAY = 30000;\n\n function isMetroHMRUrl(url: string): boolean {\n return typeof url === \"string\" && url.includes(\"/hot\");\n }\n\n function notifyServerOfReconnection(): void {\n if (!serverHttpUrl) {\n console.log(\n \"[expo-air:hmr] Cannot retrigger - no server URL available\"\n );\n return;\n }\n console.log(\n \"[expo-air:hmr] Sending retrigger request to:\",\n `${serverHttpUrl}/hmr-retrigger`\n );\n globalThis\n .fetch(`${serverHttpUrl}/hmr-retrigger`, { method: \"POST\" })\n .then((res) => {\n console.log(\"[expo-air:hmr] Retrigger response status:\", res.status);\n })\n .catch((err) => {\n console.warn(\"[expo-air:hmr] Retrigger request failed:\", err);\n });\n }\n\n type Handler = ((...args: any[]) => void) | null;\n\n globalThis.WebSocket = function ReconnectingWebSocket(\n this: any,\n url: string,\n protocols?: string | string[]\n ) {\n // Non-HMR connections pass through unchanged\n if (!isMetroHMRUrl(url)) {\n if (protocols !== undefined) {\n return new OriginalWebSocket(url, protocols);\n }\n return new OriginalWebSocket(url);\n }\n\n console.log(\"[expo-air:hmr] Wrapping Metro HMR WebSocket:\", url);\n\n let inner: WebSocket | null = null;\n const handlers: Record<string, Handler> = {\n open: null,\n close: null,\n message: null,\n error: null,\n };\n const eventListeners: Record<string, Set<Function>> = {\n open: new Set(),\n close: new Set(),\n message: new Set(),\n error: new Set(),\n };\n\n let attempts = 0;\n let intentionalClose = false;\n let reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n\n // Capture HMR protocol messages for replay on reconnection.\n // Metro's server tears down all client state (including file-change listeners)\n // when the WebSocket disconnects. On reconnect, the client must re-send\n // register-entrypoints so Metro knows which bundles to watch.\n const registrationMessages: string[] = [];\n\n // The wrapper object returned to the HMR client\n const wrapper: any = Object.create(OriginalWebSocket.prototype);\n\n function dispatch(type: string, event: any): void {\n const handler = handlers[type];\n if (handler) handler.call(wrapper, event);\n const set = eventListeners[type];\n if (set) {\n for (const fn of set) {\n fn.call(wrapper, event);\n }\n }\n }\n\n function connect(): void {\n let ws: WebSocket;\n try {\n console.log(\n `[expo-air:hmr] ${attempts > 0 ? \"Re-c\" : \"C\"}onnecting HMR WebSocket to:`,\n url\n );\n ws = protocols\n ? new OriginalWebSocket(url, protocols)\n : new OriginalWebSocket(url);\n } catch (e) {\n console.warn(\"[expo-air:hmr] WebSocket creation failed:\", e);\n scheduleReconnect();\n return;\n }\n\n inner = ws;\n\n ws.onopen = (event: Event) => {\n const wasReconnect = attempts > 0;\n attempts = 0;\n\n console.log(\n `[expo-air:hmr] HMR WebSocket ${wasReconnect ? \"RE\" : \"\"}connected`\n );\n\n if (wasReconnect && registrationMessages.length > 0) {\n // Re-send captured registration messages BEFORE notifying HMR client.\n // Metro's server resets all client state on disconnect, so we must\n // re-register entrypoints for Metro to set up file-change listeners.\n console.log(\n `[expo-air:hmr] Replaying ${registrationMessages.length} registration messages`\n );\n for (const msg of registrationMessages) {\n try {\n ws.send(msg);\n } catch (e) {\n console.warn(\"[expo-air:hmr] Failed to replay message:\", e);\n }\n }\n }\n\n dispatch(\"open\", event);\n\n if (wasReconnect) {\n console.log(\n \"[expo-air:hmr] Reconnected, re-registered, requesting file retrigger\"\n );\n // Delay retrigger to let Metro process registration and set up listeners\n setTimeout(notifyServerOfReconnection, 2000);\n }\n };\n\n ws.onmessage = (event: MessageEvent) => {\n dispatch(\"message\", event);\n };\n\n ws.onerror = (event: Event) => {\n console.warn(\"[expo-air:hmr] HMR WebSocket error\");\n dispatch(\"error\", event);\n };\n\n ws.onclose = (event: CloseEvent) => {\n if (intentionalClose) {\n dispatch(\"close\", event);\n return;\n }\n\n console.log(\n \"[expo-air:hmr] HMR WebSocket disconnected (code:\",\n (event as any)?.code,\n \"), will auto-reconnect...\"\n );\n scheduleReconnect();\n };\n }\n\n function scheduleReconnect(): void {\n if (attempts >= MAX_ATTEMPTS) {\n console.warn(\n `[expo-air:hmr] Gave up reconnecting after ${MAX_ATTEMPTS} attempts`\n );\n\n dispatch(\"close\", {\n code: 1006,\n reason: \"Max reconnect attempts reached\",\n });\n return;\n }\n attempts++;\n const delay = Math.min(\n BASE_DELAY * Math.pow(1.5, attempts - 1),\n MAX_DELAY\n );\n const jitter = delay * (0.8 + Math.random() * 0.4);\n console.log(\n `[expo-air:hmr] Reconnect attempt ${attempts}/${MAX_ATTEMPTS} in ${Math.round(jitter / 1000)}s`\n );\n reconnectTimer = setTimeout(connect, jitter);\n }\n\n // on* handler properties\n for (const type of [\"open\", \"close\", \"message\", \"error\"] as const) {\n Object.defineProperty(wrapper, `on${type}`, {\n get: () => handlers[type],\n set: (fn: Handler) => {\n handlers[type] = fn;\n },\n configurable: true,\n enumerable: true,\n });\n }\n\n Object.defineProperties(wrapper, {\n readyState: {\n get: () => (inner ? inner.readyState : OriginalWebSocket.CLOSED),\n configurable: true,\n },\n url: {\n get: () => url,\n configurable: true,\n },\n protocol: {\n get: () => (inner ? inner.protocol : \"\"),\n configurable: true,\n },\n extensions: {\n get: () => (inner ? inner.extensions : \"\"),\n configurable: true,\n },\n bufferedAmount: {\n get: () => (inner ? inner.bufferedAmount : 0),\n configurable: true,\n },\n binaryType: {\n get: () => (inner ? inner.binaryType : \"blob\"),\n set: (val: BinaryType) => {\n if (inner) inner.binaryType = val;\n },\n configurable: true,\n },\n });\n\n wrapper.send = (data: any) => {\n // Capture HMR protocol messages needed for reconnection\n if (typeof data === \"string\") {\n try {\n const parsed = JSON.parse(data);\n if (\n parsed.type === \"register-entrypoints\" ||\n parsed.type === \"log-opt-in\"\n ) {\n // Update: keep latest version of each message type\n const idx = registrationMessages.findIndex((m) => {\n try {\n return JSON.parse(m).type === parsed.type;\n } catch {\n return false;\n }\n });\n if (idx >= 0) {\n registrationMessages[idx] = data;\n } else {\n registrationMessages.push(data);\n }\n console.log(\n `[expo-air:hmr] Captured ${parsed.type} message for reconnection replay`\n );\n }\n } catch {\n // Not JSON, ignore\n }\n }\n if (inner && inner.readyState === OriginalWebSocket.OPEN) {\n inner.send(data);\n }\n };\n\n wrapper.close = (code?: number, reason?: string) => {\n intentionalClose = true;\n if (reconnectTimer) {\n clearTimeout(reconnectTimer);\n reconnectTimer = null;\n }\n if (inner) inner.close(code, reason);\n };\n\n wrapper.addEventListener = (\n type: string,\n listener: Function,\n _options?: any\n ) => {\n const set = eventListeners[type];\n if (set) set.add(listener);\n };\n\n wrapper.removeEventListener = (type: string, listener: Function) => {\n const set = eventListeners[type];\n if (set) set.delete(listener);\n };\n\n wrapper.dispatchEvent = () => false;\n\n connect();\n return wrapper;\n } as any;\n\n // Copy static constants\n (globalThis.WebSocket as any).CONNECTING = OriginalWebSocket.CONNECTING;\n (globalThis.WebSocket as any).OPEN = OriginalWebSocket.OPEN;\n (globalThis.WebSocket as any).CLOSING = OriginalWebSocket.CLOSING;\n (globalThis.WebSocket as any).CLOSED = OriginalWebSocket.CLOSED;\n\n // Log final initialization state\n console.log(\"[expo-air:hmr] Module initialized\", {\n serverHttpUrl: serverHttpUrl ? \"set\" : \"NOT SET\",\n webSocketPatched: true,\n });\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare class PromptServer {
|
|
2
2
|
private wss;
|
|
3
|
+
private httpServer;
|
|
3
4
|
private port;
|
|
4
5
|
private clients;
|
|
5
6
|
private currentQuery;
|
|
@@ -20,6 +21,8 @@ export declare class PromptServer {
|
|
|
20
21
|
private stopGitWatcher;
|
|
21
22
|
private getPRStatus;
|
|
22
23
|
private broadcastGitStatus;
|
|
24
|
+
private getGitRoot;
|
|
25
|
+
private retriggerHMR;
|
|
23
26
|
private getConfigPath;
|
|
24
27
|
private loadSession;
|
|
25
28
|
private saveSession;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promptServer.d.ts","sourceRoot":"","sources":["../../server/promptServer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"promptServer.d.ts","sourceRoot":"","sources":["../../server/promptServer.ts"],"names":[],"mappings":"AAqBA,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,gBAAgB,CAA+C;IACvE,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,kBAAkB,CAAc;IACxC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,uBAAuB,CAAc;IAC7C,OAAO,CAAC,aAAa,CAAsB;gBAE/B,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;IAM9C,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,aAAa;IAmCrB,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,oBAAoB;IActB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+CtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC3B,OAAO,CAAC,gBAAgB;IA0DxB,OAAO,CAAC,aAAa;IAmDrB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,UAAU;IAuBlB,OAAO,CAAC,oBAAoB;IAkC5B,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,0BAA0B;YAWpB,cAAc;IAgP5B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,cAAc;IAgCtB,OAAO,CAAC,iBAAiB;YAaX,oBAAoB;IA2BlC,OAAO,CAAC,GAAG;CAyBZ"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { WebSocketServer, WebSocket } from "ws";
|
|
2
|
+
import { createServer } from "http";
|
|
2
3
|
import { query } from "@anthropic-ai/claude-agent-sdk";
|
|
3
4
|
import { randomUUID } from "crypto";
|
|
4
5
|
import { execSync } from "child_process";
|
|
@@ -7,6 +8,7 @@ import { join } from "path";
|
|
|
7
8
|
import chalk from "chalk";
|
|
8
9
|
export class PromptServer {
|
|
9
10
|
wss = null;
|
|
11
|
+
httpServer = null;
|
|
10
12
|
port;
|
|
11
13
|
clients = new Set();
|
|
12
14
|
currentQuery = null;
|
|
@@ -122,6 +124,44 @@ export class PromptServer {
|
|
|
122
124
|
}
|
|
123
125
|
this.log(`Git status updated: ${branchName} (${changes.length} changes, PR: ${prStatus.hasPR})`, "info");
|
|
124
126
|
}
|
|
127
|
+
getGitRoot() {
|
|
128
|
+
try {
|
|
129
|
+
return execSync("git rev-parse --show-toplevel", {
|
|
130
|
+
cwd: this.projectRoot,
|
|
131
|
+
encoding: "utf-8",
|
|
132
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
133
|
+
}).trim();
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
return this.projectRoot;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
retriggerHMR() {
|
|
140
|
+
const changes = this.getGitChanges();
|
|
141
|
+
if (changes.length === 0) {
|
|
142
|
+
this.log("HMR retrigger: no uncommitted files to re-touch", "info");
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
// git status returns paths relative to the repo root, not projectRoot
|
|
146
|
+
const gitRoot = this.getGitRoot();
|
|
147
|
+
this.log(`HMR retrigger: re-touching ${changes.length} uncommitted files (root: ${gitRoot})`, "info");
|
|
148
|
+
let touched = 0;
|
|
149
|
+
for (const change of changes) {
|
|
150
|
+
try {
|
|
151
|
+
const filePath = join(gitRoot, change.file);
|
|
152
|
+
if (existsSync(filePath) && change.status !== "deleted") {
|
|
153
|
+
const content = readFileSync(filePath);
|
|
154
|
+
writeFileSync(filePath, content); // Same content, new mtime → Metro re-pushes HMR
|
|
155
|
+
touched++;
|
|
156
|
+
this.log(`HMR retrigger: re-touched ${change.file}`, "info");
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
catch (e) {
|
|
160
|
+
this.log(`HMR retrigger: failed to re-touch ${change.file}: ${e}`, "error");
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
this.log(`HMR retrigger: done, re-touched ${touched} files`, "success");
|
|
164
|
+
}
|
|
125
165
|
getConfigPath() {
|
|
126
166
|
return join(this.projectRoot, ".expo-air.local.json");
|
|
127
167
|
}
|
|
@@ -176,17 +216,39 @@ export class PromptServer {
|
|
|
176
216
|
}
|
|
177
217
|
async start() {
|
|
178
218
|
return new Promise((resolve, reject) => {
|
|
179
|
-
|
|
180
|
-
this.
|
|
181
|
-
this.
|
|
182
|
-
|
|
219
|
+
// HTTP server handles /hmr-retrigger and /health requests alongside the WebSocket server
|
|
220
|
+
this.httpServer = createServer((req, res) => {
|
|
221
|
+
this.log(`HTTP ${req.method} ${req.url}`, "info");
|
|
222
|
+
res.setHeader("Access-Control-Allow-Origin", "*");
|
|
223
|
+
res.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
|
|
224
|
+
if (req.method === "OPTIONS") {
|
|
225
|
+
res.writeHead(200);
|
|
226
|
+
res.end();
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
if (req.url === "/hmr-retrigger" && req.method === "POST") {
|
|
230
|
+
this.retriggerHMR();
|
|
231
|
+
res.writeHead(200);
|
|
232
|
+
res.end("OK");
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
res.writeHead(404);
|
|
236
|
+
res.end();
|
|
183
237
|
});
|
|
238
|
+
this.wss = new WebSocketServer({ server: this.httpServer });
|
|
184
239
|
this.wss.on("error", (error) => {
|
|
185
240
|
reject(error);
|
|
186
241
|
});
|
|
187
242
|
this.wss.on("connection", (ws) => {
|
|
188
243
|
this.handleConnection(ws);
|
|
189
244
|
});
|
|
245
|
+
this.httpServer.listen(this.port, () => {
|
|
246
|
+
this.startGitWatcher();
|
|
247
|
+
resolve();
|
|
248
|
+
});
|
|
249
|
+
this.httpServer.on("error", (error) => {
|
|
250
|
+
reject(error);
|
|
251
|
+
});
|
|
190
252
|
});
|
|
191
253
|
}
|
|
192
254
|
async stop() {
|
|
@@ -202,15 +264,21 @@ export class PromptServer {
|
|
|
202
264
|
client.close();
|
|
203
265
|
}
|
|
204
266
|
this.clients.clear();
|
|
205
|
-
// Close
|
|
267
|
+
// Close servers
|
|
206
268
|
return new Promise((resolve) => {
|
|
207
|
-
|
|
208
|
-
this.
|
|
269
|
+
const closeHttp = () => {
|
|
270
|
+
if (this.httpServer) {
|
|
271
|
+
this.httpServer.close(() => resolve());
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
209
274
|
resolve();
|
|
210
|
-
}
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
if (this.wss) {
|
|
278
|
+
this.wss.close(() => closeHttp());
|
|
211
279
|
}
|
|
212
280
|
else {
|
|
213
|
-
|
|
281
|
+
closeHttp();
|
|
214
282
|
}
|
|
215
283
|
});
|
|
216
284
|
}
|
|
@@ -570,6 +638,11 @@ IMPORTANT CONSTRAINTS:
|
|
|
570
638
|
this.saveSession();
|
|
571
639
|
}
|
|
572
640
|
this.log(`Completed in ${message.duration_ms}ms, cost: $${message.total_cost_usd?.toFixed(4)}`, "success");
|
|
641
|
+
// Auto-retrigger HMR after successful completion
|
|
642
|
+
// This ensures Metro pushes any file changes even if HMR reconnected
|
|
643
|
+
// after the files were written but before the retrigger
|
|
644
|
+
this.log("Auto-triggering HMR retrigger after completion", "info");
|
|
645
|
+
this.retriggerHMR();
|
|
573
646
|
}
|
|
574
647
|
else {
|
|
575
648
|
// Store failed result in history
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promptServer.js","sourceRoot":"","sources":["../../server/promptServer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"promptServer.js","sourceRoot":"","sources":["../../server/promptServer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/plugin/build/index.js
CHANGED
|
@@ -78,9 +78,46 @@ const withAppDelegatePatch = (config) => {
|
|
|
78
78
|
},
|
|
79
79
|
]);
|
|
80
80
|
};
|
|
81
|
+
// Inject HMR auto-reconnect import into the app's JS entry point
|
|
82
|
+
const withHMRReconnect = (config) => {
|
|
83
|
+
return (0, config_plugins_1.withDangerousMod)(config, [
|
|
84
|
+
"ios",
|
|
85
|
+
async (config) => {
|
|
86
|
+
const projectRoot = config.modRequest.projectRoot;
|
|
87
|
+
const hmrImport = `import "@10play/expo-air/build/hmrReconnect";\n`;
|
|
88
|
+
// Common entry points for Expo Router and vanilla RN apps
|
|
89
|
+
const candidates = [
|
|
90
|
+
"app/_layout.tsx",
|
|
91
|
+
"app/_layout.js",
|
|
92
|
+
"App.tsx",
|
|
93
|
+
"App.js",
|
|
94
|
+
"index.tsx",
|
|
95
|
+
"index.js",
|
|
96
|
+
];
|
|
97
|
+
for (const candidate of candidates) {
|
|
98
|
+
const entryPath = path.join(projectRoot, candidate);
|
|
99
|
+
if (fs.existsSync(entryPath)) {
|
|
100
|
+
let content = fs.readFileSync(entryPath, "utf-8");
|
|
101
|
+
if (content.includes("@10play/expo-air/build/hmrReconnect")) {
|
|
102
|
+
// Already injected
|
|
103
|
+
return config;
|
|
104
|
+
}
|
|
105
|
+
content = hmrImport + content;
|
|
106
|
+
fs.writeFileSync(entryPath, content);
|
|
107
|
+
console.log(`[expo-air] Injected HMR auto-reconnect into ${candidate}`);
|
|
108
|
+
return config;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
console.warn("[expo-air] Could not find app entry point for HMR reconnect injection");
|
|
112
|
+
return config;
|
|
113
|
+
},
|
|
114
|
+
]);
|
|
115
|
+
};
|
|
81
116
|
const withExpoAir = (config) => {
|
|
82
117
|
// First patch AppDelegate
|
|
83
118
|
config = withAppDelegatePatch(config);
|
|
119
|
+
// Inject HMR auto-reconnect
|
|
120
|
+
config = withHMRReconnect(config);
|
|
84
121
|
// NOTE: We do NOT add aps-environment entitlement here.
|
|
85
122
|
// Adding "development" would break production builds (entitlement mismatch with distribution profile).
|
|
86
123
|
// If developer wants push notifications, they should enable Push Notifications capability in Xcode,
|