diff --git a/lib/common b/lib/common index 4f854422a0..ea2a16a92c 160000 --- a/lib/common +++ b/lib/common @@ -1 +1 @@ -Subproject commit 4f854422a0b6fc9fb2374a245a083e648799c975 +Subproject commit ea2a16a92cf65dcb6092e199744930acf545992a diff --git a/lib/definitions/ws.d.ts b/lib/definitions/ws.d.ts deleted file mode 100644 index 8bb2154609..0000000000 --- a/lib/definitions/ws.d.ts +++ /dev/null @@ -1,134 +0,0 @@ -// Type definitions for ws -// Project: https://github.com/einaros/ws -// Definitions by: Paul Loyd -// Definitions: https://github.com/borisyankov/DefinitelyTyped - -declare module "ws" { - import events = require('events'); - import http = require('http'); - import net = require('net'); - - class WebSocket extends events.EventEmitter { - static CONNECTING: number; - static OPEN: number; - static CLOSING: number; - static CLOSED: number; - - bytesReceived: number; - readyState: number; - protocolVersion: string; - url: string; - supports: any; - upgradeReq: http.ServerRequest; - - CONNECTING: number; - OPEN: number; - CLOSING: number; - CLOSED: number; - - onopen: (event: {target: WebSocket}) => void; - onerror: (err: Error) => void; - onclose: (event: {wasClean: boolean; code: number; reason: string; target: WebSocket}) => void; - onmessage: (event: {data: any; type: string; target: WebSocket}) => void; - - constructor(address: string, options?: { - protocol?: string; - agent?: http.Agent; - headers?: {[key: string]: string}; - protocolVersion?: any; - host?: string; - origin?: string; - pfx?: any; - key?: any; - passphrase?: string; - cert?: any; - ca?: any[]; - ciphers?: string; - rejectUnauthorized?: boolean; - }); - - close(code?: number, data?: any): void; - pause(): void; - resume(): void; - ping(data?: any, options?: {mask?: boolean; binary?: boolean}, dontFail?: boolean): void; - pong(data?: any, options?: {mask?: boolean; binary?: boolean}, dontFail?: boolean): void; - send(data: any, cb?: (err: Error) => void): void; - send(data: any, options: {mask?: boolean; binary?: boolean}, cb?: (err: Error) => void): void; - stream(options: {mask?: boolean; binary?: boolean}, cb?: (err: Error, final: boolean) => void): void; - stream(cb?: (err: Error, final: boolean) => void): void; - terminate(): void; - - // HTML5 WebSocket events - addEventListener(method: 'message', cb?: (event: {data: any; type: string; target: WebSocket}) => void): void; - addEventListener(method: 'close', cb?: (event: {wasClean: boolean; code: number; - reason: string; target: WebSocket}) => void): void; - addEventListener(method: 'error', cb?: (err: Error) => void): void; - addEventListener(method: 'open', cb?: (event: {target: WebSocket}) => void): void; - addEventListener(method: string, listener?: () => void): void; - - // Events - on(event: 'error', cb: (err: Error) => void): this; - on(event: 'close', cb: (code: number, message: string) => void): this; - on(event: 'message', cb: (data: any, flags: {binary: boolean}) => void): this; - on(event: 'ping', cb: (data: any, flags: {binary: boolean}) => void): this; - on(event: 'pong', cb: (data: any, flags: {binary: boolean}) => void): this; - on(event: 'open', cb: () => void): this; - on(event: string, listener: () => void): this; - - addListener(event: 'error', cb: (err: Error) => void): this; - addListener(event: 'close', cb: (code: number, message: string) => void): this; - addListener(event: 'message', cb: (data: any, flags: {binary: boolean}) => void): this; - addListener(event: 'ping', cb: (data: any, flags: {binary: boolean}) => void): this; - addListener(event: 'pong', cb: (data: any, flags: {binary: boolean}) => void): this; - addListener(event: 'open', cb: () => void): this; - addListener(event: string, listener: () => void): this; - } - - module WebSocket { - export interface IServerOptions { - host?: string; - port?: number; - server?: http.Server; - verifyClient?: { - (info: {origin: string; secure: boolean; req: http.ServerRequest}): boolean; - (info: {origin: string; secure: boolean; req: http.ServerRequest}, - callback: (res: boolean) => void): void; - }; - handleProtocols?: any; - path?: string; - noServer?: boolean; - disableHixie?: boolean; - clientTracking?: boolean; - } - - export class Server extends events.EventEmitter { - options: IServerOptions; - path: string; - clients: WebSocket[]; - - constructor(options?: IServerOptions, callback?: Function); - - close(): void; - handleUpgrade(request: http.ServerRequest, socket: net.Socket, - upgradeHead: Buffer, callback: (client: WebSocket) => void): void; - - // Events - on(event: 'error', cb: (err: Error) => void): this; - on(event: 'headers', cb: (headers: string[]) => void): this; - on(event: 'connection', cb: (client: WebSocket) => void): this; - on(event: string, listener: () => void): this; - - addListener(event: 'error', cb: (err: Error) => void): this; - addListener(event: 'headers', cb: (headers: string[]) => void): this; - addListener(event: 'connection', cb: (client: WebSocket) => void): this; - addListener(event: string, listener: () => void): this; - } - - export function createServer(options?: IServerOptions, - connectionListener?: (client: WebSocket) => void): Server; - export function connect(address: string, openListener?: Function): void; - export function createConnection(address: string, openListener?: Function): void; - } - - export = WebSocket; -} diff --git a/lib/device-sockets/ios/socket-proxy-factory.ts b/lib/device-sockets/ios/socket-proxy-factory.ts index 5cd8f34154..89271a130c 100644 --- a/lib/device-sockets/ios/socket-proxy-factory.ts +++ b/lib/device-sockets/ios/socket-proxy-factory.ts @@ -103,10 +103,10 @@ export class SocketProxyFactory extends EventEmitter implements ISocketProxyFact callback(true); } }); - server.on("connection", (webSocket) => { + server.on("connection", (webSocket, req) => { const encoding = "utf16le"; - const deviceSocket: net.Socket = (webSocket.upgradeReq)["__deviceSocket"]; + const deviceSocket: net.Socket = (req)["__deviceSocket"]; const packets = new PacketStream(); deviceSocket.pipe(packets); @@ -122,7 +122,7 @@ export class SocketProxyFactory extends EventEmitter implements ISocketProxyFact this.$logger.trace("Error on debugger deviceSocket", err); }); - webSocket.on("message", (message, flags) => { + webSocket.on("message", (message: string) => { const length = Buffer.byteLength(message, encoding); const payload = new Buffer(length + 4); payload.writeInt32BE(length, 0); diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index df0cdd4eed..132ea5a827 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -52,6 +52,12 @@ "integrity": "sha512-gZ/Rb+MFXF0pXSEQxdRoPMm5jeO3TycjOdvbpbcpHX/B+n9AqaHFe5q6Ga9CsZ7ir/UgIWPfrBzUzn3F19VH/w==", "dev": true }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, "@types/form-data": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", @@ -70,12 +76,14 @@ "@types/node": { "version": "6.0.61", "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.61.tgz", - "integrity": "sha1-7qF0itmd7K8xm1cQFwGGMZdKxvA=" + "integrity": "sha1-7qF0itmd7K8xm1cQFwGGMZdKxvA=", + "dev": true }, "@types/ora": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/ora/-/ora-1.3.2.tgz", - "integrity": "sha512-YZjIN90YKxkQjmDZHr1CQP1Z20qUU3TLC10k+SnDqoRv0CNUxREwaaDc3aCRNcOfjCjktdoP2Z8Cxqf4wHjO2w==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/ora/-/ora-1.3.3.tgz", + "integrity": "sha512-XaSVRyCfnGq1xGlb6iuoxnomMXPIlZnvIIkKiGNMTCeVOg7G1Si+FA9N1lPrykPEfiRHwbuZXuTCSoYcHyjcdg==", + "dev": true, "requires": { "@types/node": "6.0.61" } @@ -123,6 +131,16 @@ "integrity": "sha1-7mESGwqJiwvqXuskcgCJjg+o8Jw=", "dev": true }, + "@types/ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-4.0.1.tgz", + "integrity": "sha512-J56Wn8j7ovzmlrkUSPXnVRH+YXUCGoVokiB49QIjz+yq0234guOrBvF/HHrqrJjnY4p5oq+q6xAxT/7An6SeWQ==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/node": "6.0.61" + } + }, "@types/xml2js": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/@types/xml2js/-/xml2js-0.4.2.tgz", @@ -297,6 +315,11 @@ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -5790,11 +5813,6 @@ "dev": true, "optional": true }, - "ultron": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.0.tgz", - "integrity": "sha1-sHoualQagV/Go0zNRTO67DB8qGQ=" - }, "underscore": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz", @@ -5987,11 +6005,11 @@ } }, "ws": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-2.2.0.tgz", - "integrity": "sha1-MhinsevRWgnFa7EqPpQ6lg63veU=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.1.0.tgz", + "integrity": "sha512-7KU/qkUXtJW9aa5WRKlo0puE1ejEoAgDb0D/Pt+lWpTkKF7Kp+MqFOtwNFwnuiYeeDpFjp0qyMniE84OjKIEqQ==", "requires": { - "ultron": "1.1.0" + "async-limiter": "1.0.0" } }, "xcode": { diff --git a/package.json b/package.json index 28e0b4d7b2..12fff2ca09 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,6 @@ "mobile" ], "dependencies": { - "@types/ora": "1.3.2", "bplist-parser": "0.1.0", "bufferpack": "0.0.6", "byline": "4.2.1", @@ -79,7 +78,7 @@ "universal-analytics": "0.4.15", "uuid": "3.0.1", "winreg": "0.0.17", - "ws": "2.2.0", + "ws": "5.1.0", "xcode": "https://github.com/NativeScript/node-xcode/archive/1.4.0.tar.gz", "xml2js": "0.4.19", "xmldom": "0.1.21", @@ -95,12 +94,14 @@ "@types/color": "3.0.0", "@types/lockfile": "1.0.0", "@types/node": "6.0.61", + "@types/ora": "1.3.3", "@types/qr-image": "3.2.0", "@types/request": "0.0.45", "@types/semver": "^5.3.31", "@types/sinon": "4.0.0", "@types/source-map": "0.5.0", "@types/universal-analytics": "0.4.1", + "@types/ws": "4.0.1", "@types/xml2js": "^0.4.2", "chai": "4.0.2", "chai-as-promised": "7.0.0",