Optionalmethodmethod and url are optional so a real http.IncomingMessage is
assignable to this shape: Node declares both as optional on that class,
and the one upgrade path here already tolerates a missing url. A host
platform reconstructing this shape by hand should still set both.
Optionalurl
The minimal request shape TwilioWebhookServer.receiveExternalUpgrade needs to complete a WebSocket handshake:
ws's ownhandleUpgradereads only.headersand.methodon the no-verifyClientpath this server uses (it never touches.socket,.urlbeyond what this class itself parses). A REALhttp.IncomingMessagecannot travel across a process boundary — only the rawnet.Sockethandle can (viaChildProcess.send(msg, socket)) — so a host platform that accepts the upgrade in a separate process reconstructs this minimal shape from the request line + headers it read before handing the socket off.