@callstack/repack-dev-server 4.0.0-rc.2 → 5.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/README.md +4 -4
- package/dist/createServer.js +37 -12
- package/dist/createServer.js.map +1 -1
- package/dist/plugins/compiler/compilerPlugin.js +1 -12
- package/dist/plugins/compiler/compilerPlugin.js.map +1 -1
- package/dist/plugins/compiler/types.d.ts +1 -3
- package/dist/plugins/compiler/types.js.map +1 -1
- package/dist/plugins/devtools/devtoolsPlugin.js +0 -60
- package/dist/plugins/devtools/devtoolsPlugin.js.map +1 -1
- package/dist/plugins/symbolicate/Symbolicator.js +3 -2
- package/dist/plugins/symbolicate/Symbolicator.js.map +1 -1
- package/dist/plugins/wss/WebSocketRouter.d.ts +3 -3
- package/dist/plugins/wss/WebSocketRouter.js.map +1 -1
- package/dist/plugins/wss/WebSocketServer.d.ts +4 -3
- package/dist/plugins/wss/WebSocketServer.js +0 -1
- package/dist/plugins/wss/WebSocketServer.js.map +1 -1
- package/dist/plugins/wss/WebSocketServerAdapter.d.ts +16 -0
- package/dist/plugins/wss/WebSocketServerAdapter.js +22 -0
- package/dist/plugins/wss/WebSocketServerAdapter.js.map +1 -0
- package/dist/plugins/wss/servers/WebSocketApiServer.js +2 -2
- package/dist/plugins/wss/servers/WebSocketApiServer.js.map +1 -1
- package/dist/plugins/wss/servers/WebSocketDevClientServer.js +9 -4
- package/dist/plugins/wss/servers/WebSocketDevClientServer.js.map +1 -1
- package/dist/plugins/wss/servers/WebSocketHMRServer.js +10 -14
- package/dist/plugins/wss/servers/WebSocketHMRServer.js.map +1 -1
- package/dist/plugins/wss/types.d.ts +9 -0
- package/dist/plugins/wss/types.js.map +1 -1
- package/dist/plugins/wss/wssPlugin.d.ts +3 -2
- package/dist/plugins/wss/wssPlugin.js +15 -4
- package/dist/plugins/wss/wssPlugin.js.map +1 -1
- package/dist/types.d.ts +12 -17
- package/dist/types.js +0 -7
- package/dist/types.js.map +1 -1
- package/package.json +17 -5
- package/dist/plugins/wss/servers/HermesInspectorProxy.d.ts +0 -24
- package/dist/plugins/wss/servers/HermesInspectorProxy.js +0 -120
- package/dist/plugins/wss/servers/HermesInspectorProxy.js.map +0 -1
- package/vendor/metro-inspector-proxy/src/Device.cjs +0 -1
- package/vendor/metro-inspector-proxy/src/Device.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HermesInspectorProxy.js","names":["URL","WebSocketServer","Device","WS_DEVICE_URL","WS_DEBUGGER_URL","HermesInspectorProxy","devices","Map","deviceCounter","constructor","fastify","config","serverHost","host","port","setup","onSend","_request","reply","_payload","done","headers","Connection","get","Browser","pageListHandler","pages","deviceId","device","devicePages","getPagesList","page","push","buildPageDescription","logLevel","debuggerUrl","id","webSocketDebuggerUrl","devtoolsFrontendUrl","encodeURIComponent","description","app","title","faviconUrl","type","vm","onConnection","socket","request","url","searchParams","startsWith","deviceName","appName","set","rootDir","log","info","msg","onClose","delete","addEventListener","undefined","pageId","Error","parseInt","handleDebuggerConnection","error","message","close","toString"],"sources":["../../../../src/plugins/wss/servers/HermesInspectorProxy.ts"],"sourcesContent":["import type { IncomingMessage } from 'http';\nimport { URL } from 'url';\nimport WebSocket from 'ws';\nimport type {\n FastifyInstance,\n FastifyReply,\n FastifyRequest,\n LogLevel,\n} from 'fastify';\nimport { WebSocketServer } from '../WebSocketServer';\nimport { Server } from '../../../types';\n// @ts-ignore\nimport Device from '../../../../vendor/metro-inspector-proxy/src/Device.js';\n\nconst WS_DEVICE_URL = '/inspector/device';\nconst WS_DEBUGGER_URL = '/inspector/debug';\n\ninterface PageDescription {\n id: string;\n description: string;\n title: string;\n faviconUrl: string;\n devtoolsFrontendUrl: string;\n type: string;\n webSocketDebuggerUrl: string;\n vm?: string;\n}\n\ninterface Page {\n id: string;\n title: string;\n app: string;\n vm?: string;\n}\n\nexport interface InspectorProxyConfig\n extends Pick<Server.Options, 'port' | 'host' | 'rootDir'> {}\n\nexport class HermesInspectorProxy extends WebSocketServer {\n private devices = new Map<number, any>();\n private deviceCounter = 0;\n public readonly serverHost: string;\n\n constructor(\n fastify: FastifyInstance,\n private config: InspectorProxyConfig\n ) {\n super(fastify, [WS_DEVICE_URL, WS_DEBUGGER_URL]);\n this.serverHost = `${this.config.host || 'localhost'}:${this.config.port}`;\n this.setup();\n }\n\n private setup() {\n const onSend = (\n _request: FastifyRequest,\n reply: FastifyReply,\n _payload: unknown,\n done: () => void\n ) => {\n reply.headers({\n 'Content-Type': 'application/json; charset=UTF-8',\n 'Cache-Control': 'no-cache',\n Connection: 'close',\n });\n done();\n };\n\n this.fastify.get('/json/version', { onSend }, async () => {\n return {\n Browser: 'Mobile JavaScript',\n 'Protocol-Version': '1.1',\n };\n });\n\n const pageListHandler = async () => {\n const pages: PageDescription[] = [];\n for (const [deviceId, device] of this.devices) {\n const devicePages = device.getPagesList();\n for (const page of devicePages) {\n pages.push(this.buildPageDescription(deviceId, page));\n }\n }\n\n return pages;\n };\n\n this.fastify.get('/json/list', { onSend }, pageListHandler);\n this.fastify.get(\n '/json',\n { onSend, logLevel: 'silent' as LogLevel },\n pageListHandler\n );\n }\n\n private buildPageDescription(deviceId: number, page: Page) {\n const debuggerUrl = `${this.serverHost}${WS_DEBUGGER_URL}?device=${deviceId}&page=${page.id}`;\n const webSocketDebuggerUrl = 'ws://' + debuggerUrl;\n const devtoolsFrontendUrl =\n 'chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=' +\n encodeURIComponent(debuggerUrl);\n return {\n id: `${deviceId}-${page.id}`,\n description: page.app,\n title: page.title,\n faviconUrl: 'https://reactjs.org/favicon.ico',\n devtoolsFrontendUrl,\n type: 'node',\n webSocketDebuggerUrl,\n vm: page.vm,\n };\n }\n\n /**\n * Process new WebSocket connection from device.\n *\n * @param socket Incoming device's WebSocket connection.\n * @param request Upgrade request for the connection.\n */\n onConnection(socket: WebSocket, request: IncomingMessage) {\n try {\n const { url = '' } = request;\n const { searchParams } = new URL(url, 'http://localhost');\n\n if (url.startsWith('/inspector/device')) {\n const deviceName = searchParams.get('name') ?? 'Unknown';\n const appName = searchParams.get('app') ?? 'Unknown';\n const deviceId = this.deviceCounter++;\n\n this.devices.set(\n deviceId,\n new Device(deviceId, deviceName, appName, socket, this.config.rootDir)\n );\n\n this.fastify.log.info({ msg: 'Hermes device connected', deviceId });\n\n const onClose = () => {\n this.fastify.log.info({\n msg: 'Hermes device disconnected',\n deviceId,\n });\n this.devices.delete(deviceId);\n };\n\n socket.addEventListener('error', onClose);\n socket.addEventListener('close', onClose);\n } else {\n const deviceId = searchParams.get('device') ?? undefined;\n const pageId = searchParams.get('page') ?? undefined;\n\n if (deviceId === undefined || pageId === undefined) {\n throw new Error('Incorrect URL - must provide device and page IDs');\n }\n\n const device = this.devices.get(parseInt(deviceId, 10));\n if (!device) {\n throw new Error('Unknown device with ID ' + deviceId);\n }\n\n device.handleDebuggerConnection(socket, pageId);\n }\n } catch (error) {\n this.fastify.log.error({\n msg: 'Failed to establish connection with Hermes device',\n error: (error as Error).message,\n });\n socket.close(1011, (error as Error).toString());\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('metro-inspector-proxy/src/Device.js');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from './Device.cjs';
|