diff --git a/LANGUAGES.md b/LANGUAGES.md index 05e29475c41..eca3dfba3f8 100644 --- a/LANGUAGES.md +++ b/LANGUAGES.md @@ -252,7 +252,7 @@ Thrift's core protocol is TBinary, supported by all languages except for JavaScr node.ts 0.12.0 Yes -3.1.6 +5.7.2 YesYes diff --git a/lib/nodejs/test/client.js b/lib/nodejs/test/client.js index 1d137fff51a..617039b2413 100644 --- a/lib/nodejs/test/client.js +++ b/lib/nodejs/test/client.js @@ -29,7 +29,7 @@ const ThriftTestDriverPromise = require("./test_driver").ThriftTestDriverPromise; const SecondService = require(`./${helpers.genPath}/SecondService`); -const program = require("commander"); +const { program } = require("commander"); program .option( @@ -49,7 +49,7 @@ program .option("--ssl", "use SSL transport") .option("--callback", "test with callback style functions") .option( - "-t, --type ", + "--type ", "Select server type (http|multiplex|tcp|websocket)", "tcp", ) @@ -57,26 +57,27 @@ program .option("--es5", "Use es5 code") .parse(process.argv); -const host = program.host; -const port = program.port; -const domainSocket = program.domainSocket; -const ssl = program.ssl; -let type = program.type; +const opts = program.opts(); +const host = opts.host; +const port = opts.port; +const domainSocket = opts.domainSocket; +const ssl = opts.ssl; +let type = opts.type; /* for compatibility with cross test invocation for http transport testing */ -if (program.transport === "http") { - program.transport = "buffered"; +if (opts.transport === "http") { + opts.transport = "buffered"; type = "http"; } -if (program.transport === "websocket") { - program.transport = "buffered"; +if (opts.transport === "websocket") { + opts.transport = "buffered"; type = "websocket"; } const options = { - transport: helpers.transports[program.transport], - protocol: helpers.protocols[program.protocol], + transport: helpers.transports[opts.transport], + protocol: helpers.protocols[opts.protocol], }; if (type === "http" || type === "websocket") { @@ -101,10 +102,8 @@ if (ssl) { let connection; let client; -const testDriver = program.callback - ? ThriftTestDriver - : ThriftTestDriverPromise; -if (helpers.ecmaMode === "es6" && program.callback) { +const testDriver = opts.callback ? ThriftTestDriver : ThriftTestDriverPromise; +if (helpers.ecmaMode === "es6" && opts.callback) { console.log("ES6 does not support callback style"); process.exit(0); } diff --git a/lib/nodejs/test/episodic-code-generation-test/client.js b/lib/nodejs/test/episodic-code-generation-test/client.js index 631bfe73a7e..cf014c26354 100644 --- a/lib/nodejs/test/episodic-code-generation-test/client.js +++ b/lib/nodejs/test/episodic-code-generation-test/client.js @@ -22,7 +22,7 @@ const assert = require("assert"); const test = require("tape"); const thrift = require("thrift"); -const program = require("commander"); +const { program } = require("commander"); program .option("--host ", "Set the thrift server host to connect", "localhost") @@ -32,8 +32,9 @@ program const Service = require("./gen-2/second-episode/gen-nodejs/Service"); const Types = require("types-package/first-episode/Types_types"); -const host = program.host; -const port = program.port; +const opts = program.opts(); +const host = opts.host; +const port = opts.port; const options = { transport: thrift.TBufferedTransport, diff --git a/lib/nodejs/test/episodic-code-generation-test/server.js b/lib/nodejs/test/episodic-code-generation-test/server.js index feca38045d9..2b9a96d0cac 100644 --- a/lib/nodejs/test/episodic-code-generation-test/server.js +++ b/lib/nodejs/test/episodic-code-generation-test/server.js @@ -20,7 +20,7 @@ */ const thrift = require("../../lib/thrift"); -const program = require("commander"); +const { program } = require("commander"); program .option("--port ", "Set the thrift server port", 9090) @@ -29,7 +29,8 @@ program const Service = require("./gen-2/second-episode/gen-nodejs/Service"); const Types = require("types-package/first-episode/Types_types"); -const port = program.port; +const opts = program.opts(); +const port = opts.port; const options = { transport: thrift.TBufferedTransport, diff --git a/lib/nodejs/test/server.js b/lib/nodejs/test/server.js index c8e7808202a..b56bea7add5 100644 --- a/lib/nodejs/test/server.js +++ b/lib/nodejs/test/server.js @@ -22,7 +22,7 @@ const fs = require("fs"); const path = require("path"); const thrift = require("../lib/thrift"); -const program = require("commander"); +const { program } = require("commander"); const helpers = require("./helpers"); program @@ -40,7 +40,7 @@ program .option("--port ", "Set thrift server port", 9090) .option("--domain-socket ", "Set thift server unix domain socket") .option( - "-t, --type ", + "--type ", "Select server type (http|multiplex|tcp|websocket)", "tcp", ) @@ -53,22 +53,23 @@ const ThriftTest = require(`./${helpers.genPath}/ThriftTest`); const SecondService = require(`./${helpers.genPath}/SecondService`); const { ThriftTestHandler } = require("./test_handler"); -const port = program.port; -const domainSocket = program.domainSocket; -const ssl = program.ssl; +const opts = program.opts(); +const port = opts.port; +const domainSocket = opts.domainSocket; +const ssl = opts.ssl; -let type = program.type; -if (program.transport === "http") { - program.transport = "buffered"; +let type = opts.type; +if (opts.transport === "http") { + opts.transport = "buffered"; type = "http"; -} else if (program.transport === "websocket") { - program.transport = "buffered"; +} else if (opts.transport === "websocket") { + opts.transport = "buffered"; type = "websocket"; } let options = { - transport: helpers.transports[program.transport], - protocol: helpers.protocols[program.protocol], + transport: helpers.transports[opts.transport], + protocol: helpers.protocols[opts.protocol], }; if (type === "http" || type === "websocket") { diff --git a/lib/nodets/test/client.ts b/lib/nodets/test/client.ts index a95567f8dc3..c2666bc0d86 100644 --- a/lib/nodets/test/client.ts +++ b/lib/nodets/test/client.ts @@ -25,17 +25,18 @@ import test_driver = require("./test_driver"); import ThriftTestDriver = test_driver.ThriftTestDriver; import ThriftTestDriverPromise = test_driver.ThriftTestDriverPromise; -// var program = require("commander"); -import * as program from "commander"; +import { program } from "commander"; program - .option("--port ", "Set thrift server port number to connect", 9090) + .option("--port ", "Set thrift server port number to connect", Number.parseInt, 9090) .option("--promise", "test with promise style functions") .option("--protocol", "Set thrift protocol (binary) [protocol]") .parse(process.argv); -var port: number = program.port; -var promise = program.promise; + +var opts = program.opts(); +var port: number = opts.port; +var promise = opts.promise; var options = { transport: Thrift.TBufferedTransport, diff --git a/lib/nodets/test/server.ts b/lib/nodets/test/server.ts index 79457ce99aa..59113840a41 100644 --- a/lib/nodets/test/server.ts +++ b/lib/nodets/test/server.ts @@ -1,15 +1,17 @@ import thrift = require("thrift"); -var program = require("commander"); -import ThriftTest = require("./gen-nodejs/ThriftTest"); -import test_handler = require("./test_handler"); +import { program } from 'commander'; +import ThriftTest = require('./gen-nodejs/ThriftTest'); +import test_handler = require('./test_handler'); + program - .option("--port ", "Set thrift server port", 9090) - .option("--promise", "test with promise style functions") - .option("--protocol", '"Set thrift protocol (binary) [protocol]"') + .option('--port ', 'Set thrift server port', Number.parseInt, 9090) + .option('--promise', 'test with promise style functions') + .option('--protocol', '"Set thrift protocol (binary) [protocol]"') .parse(process.argv); -var port: number = program.port; +var opts = program.opts(); +var port: number = opts.port; var options: thrift.ServerOptions = { transport: thrift.TBufferedTransport, @@ -17,12 +19,8 @@ var options: thrift.ServerOptions = { }; var server: thrift.Server; -if (program.promise) { - server = thrift.createServer( - ThriftTest.Processor, - new test_handler.AsyncThriftTestHandler(), - options, - ); +if (opts.promise) { + server = thrift.createServer(ThriftTest.Processor, new test_handler.AsyncThriftTestHandler(), options); } else { server = thrift.createServer( ThriftTest.Processor, diff --git a/lib/ts/package-lock.json b/lib/ts/package-lock.json index 244d91d7655..97400009484 100644 --- a/lib/ts/package-lock.json +++ b/lib/ts/package-lock.json @@ -31,7 +31,7 @@ "jslint": "^0.12.0", "node-int64": "^0.4.0", "phantom": "^6.0.3", - "typescript": "^3.2.4" + "typescript": "^5.7.2" } }, "node_modules/@babel/parser": { @@ -85,10 +85,13 @@ "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" }, "node_modules/@types/node": { - "version": "10.12.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", - "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==", - "dev": true + "version": "22.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz", + "integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==", + "dev": true, + "dependencies": { + "undici-types": "~6.20.0" + } }, "node_modules/@types/node-int64": { "version": "0.4.29", @@ -4631,16 +4634,16 @@ "dev": true }, "node_modules/typescript": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz", - "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/uc.micro": { @@ -4729,6 +4732,12 @@ "node": "*" } }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true + }, "node_modules/uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", diff --git a/lib/ts/package.json b/lib/ts/package.json index 13aefaabf6a..17988c6a4a0 100644 --- a/lib/ts/package.json +++ b/lib/ts/package.json @@ -27,7 +27,7 @@ "jslint": "^0.12.0", "node-int64": "^0.4.0", "phantom": "^6.0.3", - "typescript": "^3.2.4" + "typescript": "^5.7.2" }, "dependencies": { "bufferutil": "^4.0.1", diff --git a/package-lock.json b/package-lock.json index 9b7db5c87d0..701dd076b71 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,11 +17,11 @@ }, "devDependencies": { "@eslint/js": "^9.18.0", - "@types/node": "^10.12.6", + "@types/node": "^22.10.5", "@types/node-int64": "^0.4.29", "@types/q": "^1.5.1", "buffer-equals": "^1.0.4", - "commander": "^2.14.1", + "commander": "^13.0.0", "connect": "^3.6.6", "eslint": "^9.18.0", "eslint-config-prettier": "^10.0.1", @@ -33,7 +33,7 @@ "nyc": "^15.0.0", "prettier": "^3.4.2", "tape": "^4.9.0", - "typescript": "^3.1.6", + "typescript": "^5.7.2", "utf-8-validate": "^5.0.0" }, "engines": { @@ -718,15 +718,18 @@ "dev": true }, "node_modules/@types/node": { - "version": "10.12.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.6.tgz", - "integrity": "sha512-+ZWB5Ec1iki99xQFzBlivlKxSZQ+fuUKBott8StBOnLN4dWbRHlgdg1XknpW6g0tweniN5DcOqA64CJyOUPSAw==", - "dev": true + "version": "22.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz", + "integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==", + "dev": true, + "dependencies": { + "undici-types": "~6.20.0" + } }, "node_modules/@types/node-int64": { - "version": "0.4.29", - "resolved": "https://registry.npmjs.org/@types/node-int64/-/node-int64-0.4.29.tgz", - "integrity": "sha512-rHXvenLTj/CcsmNAebaBOhxQ2MqEGl3yXZZcZ21XYR+gzGTTcpOy2N4IxpvTCz48loyQNatHvfn6GhIbbZ1R3Q==", + "version": "0.4.32", + "resolved": "https://registry.npmjs.org/@types/node-int64/-/node-int64-0.4.32.tgz", + "integrity": "sha512-xf/JsSlnXQ+mzvc0IpXemcrO4BrCfpgNpMco+GLcXkFk01k/gW9lGJu+Vof0ZSvHK6DsHJDPSbjFPs36QkWXqw==", "dev": true, "dependencies": { "@types/node": "*" @@ -1073,10 +1076,13 @@ } }, "node_modules/commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", - "dev": true + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.0.0.tgz", + "integrity": "sha512-oPYleIY8wmTVzkvQq10AEok6YcTC4sRUBl8F9gVuwchGVUCTbl/vhLTaQqutuuySYOsu8YTgV+OxKc/8Yvx+mQ==", + "dev": true, + "engines": { + "node": ">=18" + } }, "node_modules/commondir": { "version": "1.0.1", @@ -3568,16 +3574,16 @@ } }, "node_modules/typescript": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz", - "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/uc.micro": { @@ -3592,6 +3598,12 @@ "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", "dev": true }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", diff --git a/package.json b/package.json index 6ed792df260..c86c155689e 100644 --- a/package.json +++ b/package.json @@ -44,11 +44,11 @@ }, "devDependencies": { "@eslint/js": "^9.18.0", - "@types/node": "^10.12.6", + "@types/node": "^22.10.5", "@types/node-int64": "^0.4.29", "@types/q": "^1.5.1", "buffer-equals": "^1.0.4", - "commander": "^2.14.1", + "commander": "^13.0.0", "connect": "^3.6.6", "eslint": "^9.18.0", "eslint-config-prettier": "^10.0.1", @@ -60,7 +60,7 @@ "nyc": "^15.0.0", "prettier": "^3.4.2", "tape": "^4.9.0", - "typescript": "^3.1.6", + "typescript": "^5.7.2", "utf-8-validate": "^5.0.0" }, "scripts": {