From 6eeb9cff277863005b7a8928f2c7c94c10e09504 Mon Sep 17 00:00:00 2001 From: CJCombrink Date: Fri, 6 Mar 2026 06:03:56 +0000 Subject: [PATCH 1/9] UUID support for TS and JS --- build/docker/ubuntu-noble/Dockerfile | 8 +-- .../cpp/src/thrift/generate/t_js_generator.cc | 38 +++++++++++--- .../cpp/src/thrift/generate/t_st_generator.cc | 2 +- lib/nodejs/Makefile.am | 6 +-- lib/nodejs/lib/thrift/binary_protocol.js | 14 ++++++ lib/nodejs/lib/thrift/compact_protocol.js | 19 +++++++ lib/nodejs/lib/thrift/json_protocol.js | 14 ++++++ lib/nodejs/lib/thrift/thrift.js | 5 +- lib/nodejs/test/package-lock.json | 2 + lib/nodejs/test/test-cases.mjs | 4 ++ lib/nodejs/test/testAll.sh | 6 +-- lib/nodejs/test/test_handler.mjs | 1 + lib/nodets/Makefile.am | 4 +- lib/nodets/test/runClient.sh | 4 +- lib/nodets/test/runServer.sh | 4 +- lib/nodets/test/test-cases.ts | 4 ++ lib/nodets/test/testAll.sh | 4 +- lib/nodets/test/test_handler.ts | 12 +++++ package-lock.json | 49 ++++++++++++++++--- package.json | 1 + 20 files changed, 167 insertions(+), 34 deletions(-) diff --git a/build/docker/ubuntu-noble/Dockerfile b/build/docker/ubuntu-noble/Dockerfile index a195fd460b5..3d17c905655 100644 --- a/build/docker/ubuntu-noble/Dockerfile +++ b/build/docker/ubuntu-noble/Dockerfile @@ -52,8 +52,8 @@ RUN curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - & /etc/apt/sources.list.d/dart_stable.list # node.js -RUN curl -sL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \ - echo "deb https://deb.nodesource.com/node_16.x focal main" | tee /etc/apt/sources.list.d/nodesource.list +RUN curl -sL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | apt-key add - && \ + echo "deb https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list ### install general dependencies RUN apt-get update -yq && \ @@ -295,8 +295,8 @@ RUN apt-get install -y --no-install-recommends \ RUN apt-get install -y --no-install-recommends \ `# Static Code Analysis dependencies` \ cppcheck \ - sloccount - + sloccount + #RUN pip install flake8 # NOTE: this does not reduce the image size but adds an additional layer. diff --git a/compiler/cpp/src/thrift/generate/t_js_generator.cc b/compiler/cpp/src/thrift/generate/t_js_generator.cc index 402ff50da58..107b8415aae 100644 --- a/compiler/cpp/src/thrift/generate/t_js_generator.cc +++ b/compiler/cpp/src/thrift/generate/t_js_generator.cc @@ -519,7 +519,7 @@ void t_js_generator::init_generator() { string t_js_generator::js_includes() { if (gen_node_) { string result; - + if (gen_esm_) { result += "import { Thrift } from 'thrift';\n"; } else { @@ -534,13 +534,16 @@ string t_js_generator::js_includes() { } } if (gen_esm_) { - result += "import Int64 from 'node-int64';"; + result += "import Int64 from 'node-int64';\n"; + result += "import { v4 as uuid } from 'uuid';"; } else { result += js_const_type_ + "Int64 = require('node-int64');\n"; + result += js_const_type_ + "uuid = require('uuid').v4;\n"; } return result; } string result = "if (typeof Int64 === 'undefined' && typeof require === 'function') {\n " + js_const_type_ + "Int64 = require('node-int64');\n}\n"; + result += "if (typeof uuid === 'undefined' && typeof require === 'function') {\n " + js_const_type_ + "uuid = require('uuid').v4;\n}\n"; return result; } @@ -553,9 +556,14 @@ string t_js_generator::ts_includes() { "import thrift = require('thrift');\n" "import Thrift = thrift.Thrift;\n" "import Q = thrift.Q;\n" - "import Int64 = require('node-int64');"); - } - return string("import Int64 = require('node-int64');"); + "import Int64 = require('node-int64');\n" + "import { v4 as uuid } from 'uuid';\n" + "type uuid = string;"); + } + return string( + "import Int64 = require('node-int64');\n" + "import { v4 as uuid } from 'uuid';\n" + "type uuid = string;"); } /** @@ -742,6 +750,10 @@ string t_js_generator::render_const_value(t_type* type, t_const_value* value) { case t_base_type::TYPE_STRING: out << "'" << get_escaped_string(value) << "'"; break; + case t_base_type::TYPE_UUID: + // The UUID should be in the correct string format already the get_escaped* might be redundant + out << "'" << get_escaped_string(value) << "'"; + break; case t_base_type::TYPE_BOOL: out << (value->get_integer() > 0 ? "true" : "false"); break; @@ -2317,6 +2329,9 @@ void t_js_generator::generate_deserialize_field(ostream& out, case t_base_type::TYPE_STRING: out << (type->is_binary() ? "readBinary()" : "readString()"); break; + case t_base_type::TYPE_UUID: + out << "readUuid()"; + break; case t_base_type::TYPE_BOOL: out << "readBool()"; break; @@ -2503,6 +2518,9 @@ void t_js_generator::generate_serialize_field(ostream& out, t_field* tfield, str case t_base_type::TYPE_STRING: out << (type->is_binary() ? "writeBinary(" : "writeString(") << name << ")"; break; + case t_base_type::TYPE_UUID: + out << "writeUuid(" << name << ")"; + break; case t_base_type::TYPE_BOOL: out << "writeBool(" << name << ")"; break; @@ -2661,6 +2679,7 @@ string t_js_generator::declare_field(t_field* tfield, bool init, bool obj) { case t_base_type::TYPE_VOID: break; case t_base_type::TYPE_STRING: + case t_base_type::TYPE_UUID: case t_base_type::TYPE_BOOL: case t_base_type::TYPE_I8: case t_base_type::TYPE_I16: @@ -2752,6 +2771,8 @@ string t_js_generator::type_to_enum(t_type* type) { throw std::runtime_error("NO T_VOID CONSTRUCT"); case t_base_type::TYPE_STRING: return "Thrift.Type.STRING"; + case t_base_type::TYPE_UUID: + return "Thrift.Type.UUID"; case t_base_type::TYPE_BOOL: return "Thrift.Type.BOOL"; case t_base_type::TYPE_I8: @@ -2765,7 +2786,7 @@ string t_js_generator::type_to_enum(t_type* type) { case t_base_type::TYPE_DOUBLE: return "Thrift.Type.DOUBLE"; default: - throw "compiler error: unhandled type"; + throw "compiler error: unhandled js type"; } } else if (type->is_enum()) { return "Thrift.Type.I32"; @@ -2798,6 +2819,9 @@ string t_js_generator::ts_get_type(t_type* type) { case t_base_type::TYPE_STRING: ts_type = type->is_binary() ? "Buffer" : "string"; break; + case t_base_type::TYPE_UUID: + ts_type = "uuid"; + break; case t_base_type::TYPE_BOOL: ts_type = "boolean"; break; @@ -2816,7 +2840,7 @@ string t_js_generator::ts_get_type(t_type* type) { ts_type = "void"; break; default: - throw "compiler error: unhandled type"; + throw "compiler error: unhandled js type"; } } else if (type->is_enum() || type->is_struct() || type->is_xception()) { std::string type_name; diff --git a/compiler/cpp/src/thrift/generate/t_st_generator.cc b/compiler/cpp/src/thrift/generate/t_st_generator.cc index c1ad35577e8..68fe699108c 100644 --- a/compiler/cpp/src/thrift/generate/t_st_generator.cc +++ b/compiler/cpp/src/thrift/generate/t_st_generator.cc @@ -1037,7 +1037,7 @@ string t_st_generator::type_to_enum(t_type* type) { case t_base_type::TYPE_DOUBLE: return "TType double"; default: - throw "compiler error: unhandled type"; + throw "compiler error: unhandled ts type"; } } else if (type->is_enum()) { return "TType i32"; diff --git a/lib/nodejs/Makefile.am b/lib/nodejs/Makefile.am index 0933701965d..84dd29666d0 100644 --- a/lib/nodejs/Makefile.am +++ b/lib/nodejs/Makefile.am @@ -17,9 +17,9 @@ # We call npm twice to work around npm issues -stubs: $(top_srcdir)/test/v0.16/ThriftTest.thrift $(top_srcdir)/test/v0.16/FuzzTestNoUuid.thrift - $(THRIFT) --gen js:node -o test/ $(top_srcdir)/test/v0.16/ThriftTest.thrift - $(THRIFT) --gen js:node -o test/fuzz/ $(top_srcdir)/test/v0.16/FuzzTestNoUuid.thrift +stubs: $(top_srcdir)/test/ThriftTest.thrift $(top_srcdir)/test/FuzzTestNoUuid.thrift + $(THRIFT) --gen js:node -o test/ $(top_srcdir)/test/ThriftTest.thrift + $(THRIFT) --gen js:node -o test/fuzz/ $(top_srcdir)/test/FuzzTestNoUuid.thrift sed -i "s/require('thrift')/require(\"..\/..\/..\/lib\/thrift\")/" test/fuzz/gen-nodejs/FuzzTestNoUuid_types.js diff --git a/lib/nodejs/lib/thrift/binary_protocol.js b/lib/nodejs/lib/thrift/binary_protocol.js index fc4df4ae95e..01a23715d05 100644 --- a/lib/nodejs/lib/thrift/binary_protocol.js +++ b/lib/nodejs/lib/thrift/binary_protocol.js @@ -23,6 +23,8 @@ var Int64 = require("node-int64"); var Thrift = require("./thrift"); var Type = Thrift.Type; +const { parse: uuidParse, stringify: uuidStringify } = require('uuid'); + module.exports = TBinaryProtocol; // JavaScript supports only numeric doubles, therefore even hex values are always signed. @@ -170,6 +172,10 @@ TBinaryProtocol.prototype.writeBinary = function (arg) { this.writeStringOrBinary("writeBinary", "binary", arg); }; +TBinaryProtocol.prototype.writeUuid = function (arg) { + this.trans.write(Buffer.from(uuidParse(arg))); +}; + TBinaryProtocol.prototype.readMessageBegin = function () { var sz = this.readI32(); var type, name, seqid; @@ -302,6 +308,11 @@ TBinaryProtocol.prototype.readString = function () { return this.trans.readString(len); }; +TBinaryProtocol.prototype.readUuid = function () { + const buf = this.trans.read(16); + return uuidStringify(new Uint8Array(buf)); +}; + TBinaryProtocol.prototype.getTransport = function () { return this.trans; }; @@ -329,6 +340,9 @@ TBinaryProtocol.prototype.skip = function (type) { case Type.STRING: this.readString(); break; + case Type.UUID: + this.readUuid(); + break; case Type.STRUCT: this.readStructBegin(); while (true) { diff --git a/lib/nodejs/lib/thrift/compact_protocol.js b/lib/nodejs/lib/thrift/compact_protocol.js index e946dc886c0..ee2aac7669a 100644 --- a/lib/nodejs/lib/thrift/compact_protocol.js +++ b/lib/nodejs/lib/thrift/compact_protocol.js @@ -22,6 +22,8 @@ var Int64 = require("node-int64"); var Thrift = require("./thrift"); var Type = Thrift.Type; +const { parse: uuidParse, stringify: uuidStringify } = require('uuid'); + module.exports = TCompactProtocol; var POW_8 = Math.pow(2, 8); @@ -120,6 +122,7 @@ TCompactProtocol.TYPE_SHIFT_AMOUNT = 5; * @property {number} CT_SET - A collection type (unordered and without repeated values). * @property {number} CT_MAP - A collection type (map/associative-array/dictionary). * @property {number} CT_STRUCT - A multifield type. + * @property {number} CT_UUID - A UUID type. */ TCompactProtocol.Types = { CT_STOP: 0x00, @@ -135,6 +138,7 @@ TCompactProtocol.Types = { CT_SET: 0x0a, CT_MAP: 0x0b, CT_STRUCT: 0x0c, + CT_UUID: 0x0d, }; /** @@ -158,6 +162,7 @@ TCompactProtocol.TTypeToCType = [ TCompactProtocol.Types.CT_MAP, // T_MAP TCompactProtocol.Types.CT_SET, // T_SET TCompactProtocol.Types.CT_LIST, // T_LIST + TCompactProtocol.Types.CT_UUID, // T_UUID ]; // @@ -214,6 +219,8 @@ TCompactProtocol.prototype.getTType = function (type) { return Type.MAP; case TCompactProtocol.Types.CT_STRUCT: return Type.STRUCT; + case TCompactProtocol.Types.CT_UUID: + return Type.UUID; default: throw new Thrift.TProtocolException( Thrift.TProtocolExceptionType.INVALID_DATA, @@ -459,6 +466,10 @@ TCompactProtocol.prototype.writeBinary = function (arg) { this.writeStringOrBinary("writeBinary", "binary", arg); }; +TCompactProtocol.prototype.writeUuid = function (arg) { + this.trans.write(Buffer.from(uuidParse(arg))); +}; + // // Compact Protocol internal write methods // @@ -735,6 +746,11 @@ TCompactProtocol.prototype.readByte = function () { return this.trans.readByte(); }; +TCompactProtocol.prototype.readUuid = function () { + const buf = this.trans.read(16); + return uuidStringify(new Uint8Array(buf)); +}; + TCompactProtocol.prototype.readI16 = function () { return this.readI32(); }; @@ -908,6 +924,9 @@ TCompactProtocol.prototype.skip = function (type) { case Type.STRING: this.readString(); break; + case Type.UUID: + this.readUuid(); + break; case Type.STRUCT: this.readStructBegin(); while (true) { diff --git a/lib/nodejs/lib/thrift/json_protocol.js b/lib/nodejs/lib/thrift/json_protocol.js index 31dcb8196a7..176da38c601 100644 --- a/lib/nodejs/lib/thrift/json_protocol.js +++ b/lib/nodejs/lib/thrift/json_protocol.js @@ -62,6 +62,7 @@ TJSONProtocol.Type[Type.STRING] = '"str"'; TJSONProtocol.Type[Type.MAP] = '"map"'; TJSONProtocol.Type[Type.LIST] = '"lst"'; TJSONProtocol.Type[Type.SET] = '"set"'; +TJSONProtocol.Type[Type.UUID] = '"uid"'; /** * Thrift IDL type string to Id mapping. @@ -80,6 +81,7 @@ TJSONProtocol.RType.str = Type.STRING; TJSONProtocol.RType.map = Type.MAP; TJSONProtocol.RType.lst = Type.LIST; TJSONProtocol.RType.set = Type.SET; +TJSONProtocol.RType.uid = Type.UUID; /** * The TJSONProtocol version number. @@ -424,6 +426,11 @@ TJSONProtocol.prototype.writeBinary = function (arg) { this.tstack.push('"' + buf.toString("base64") + '"'); }; +/** Serializes a UUID */ +TJSONProtocol.prototype.writeUuid = function (arg) { + this.tstack.push('"' + arg + '"'); +}; + /** * @class * @name AnonReadMessageBeginReturn @@ -758,6 +765,10 @@ TJSONProtocol.prototype.readString = function () { return this.readValue(); }; +TJSONProtocol.prototype.readUuid = function() { + return this.readValue(); +}; + /** * Returns the underlying transport. * @readonly @@ -793,6 +804,9 @@ TJSONProtocol.prototype.skip = function (type) { case Type.STRING: this.readString(); break; + case Type.UUID: + this.readUuid(); + break; case Type.STRUCT: this.readStructBegin(); while (true) { diff --git a/lib/nodejs/lib/thrift/thrift.js b/lib/nodejs/lib/thrift/thrift.js index 741a493835d..b7a2e6f20ba 100644 --- a/lib/nodejs/lib/thrift/thrift.js +++ b/lib/nodejs/lib/thrift/thrift.js @@ -34,8 +34,9 @@ var Type = (exports.Type = { MAP: 13, SET: 14, LIST: 15, - UTF8: 16, - UTF16: 17, + UTF8: 11, + UTF16: 11, + UUID: 16, }); exports.MessageType = { diff --git a/lib/nodejs/test/package-lock.json b/lib/nodejs/test/package-lock.json index 6faee9d05b2..bcd8e4437f9 100644 --- a/lib/nodejs/test/package-lock.json +++ b/lib/nodejs/test/package-lock.json @@ -9,6 +9,7 @@ } }, "../../..": { + "name": "thrift", "version": "0.23.0", "dev": true, "license": "Apache-2.0", @@ -17,6 +18,7 @@ "isomorphic-ws": "^4.0.1", "node-int64": "^0.4.0", "q": "^1.5.0", + "uuid": "^13.0.0", "ws": "^5.2.3" }, "devDependencies": { diff --git a/lib/nodejs/test/test-cases.mjs b/lib/nodejs/test/test-cases.mjs index 543e3539ce1..a2bb0f2a9f7 100644 --- a/lib/nodejs/test/test-cases.mjs +++ b/lib/nodejs/test/test-cases.mjs @@ -21,6 +21,7 @@ import helpers from "./helpers.js"; import Int64 from "node-int64"; +import { v4 as uuidv4, v7 as uuidv7 } from 'uuid'; const ttypes = await helpers.importTypes(`ThriftTest_types`); @@ -97,6 +98,9 @@ export const simple = [ new Int64(new Buffer([0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff])), ], // -2^53-1 ["testTypedef", 69], + ["testUuid", "00112233-4455-6677-8899-aabbccddeeff"], + ["testUuid", uuidv4()], + ["testUuid", uuidv7()], ]; const mapout = {}; diff --git a/lib/nodejs/test/testAll.sh b/lib/nodejs/test/testAll.sh index a3baa6e438b..1823a8cc2c5 100755 --- a/lib/nodejs/test/testAll.sh +++ b/lib/nodejs/test/testAll.sh @@ -85,17 +85,17 @@ TESTOK=0 # generating Thrift code -${THRIFT_COMPILER} -o ${DIR} --gen js:node ${THRIFT_FILES_DIR}/v0.16/ThriftTest.thrift +${THRIFT_COMPILER} -o ${DIR} --gen js:node ${THRIFT_FILES_DIR}/ThriftTest.thrift ${THRIFT_COMPILER} -o ${DIR} --gen js:node ${THRIFT_FILES_DIR}/JsDeepConstructorTest.thrift ${THRIFT_COMPILER} -o ${DIR} --gen js:node ${THRIFT_FILES_DIR}/Int64Test.thrift ${THRIFT_COMPILER} -o ${DIR} --gen js:node ${THRIFT_FILES_DIR}/Include.thrift mkdir ${DIR}/gen-nodejs-es6 -${THRIFT_COMPILER} -out ${DIR}/gen-nodejs-es6 --gen js:node,es6 ${THRIFT_FILES_DIR}/v0.16/ThriftTest.thrift +${THRIFT_COMPILER} -out ${DIR}/gen-nodejs-es6 --gen js:node,es6 ${THRIFT_FILES_DIR}/ThriftTest.thrift ${THRIFT_COMPILER} -out ${DIR}/gen-nodejs-es6 --gen js:node,es6 ${THRIFT_FILES_DIR}/JsDeepConstructorTest.thrift ${THRIFT_COMPILER} -out ${DIR}/gen-nodejs-es6 --gen js:node,es6 ${THRIFT_FILES_DIR}/Int64Test.thrift ${THRIFT_COMPILER} -out ${DIR}/gen-nodejs-es6 --gen js:node,es6 ${THRIFT_FILES_DIR}/Include.thrift mkdir ${DIR}/gen-nodejs-esm -${THRIFT_COMPILER} -out ${DIR}/gen-nodejs-esm --gen js:node,es6,esm ${THRIFT_FILES_DIR}/v0.16/ThriftTest.thrift +${THRIFT_COMPILER} -out ${DIR}/gen-nodejs-esm --gen js:node,es6,esm ${THRIFT_FILES_DIR}/ThriftTest.thrift ${THRIFT_COMPILER} -out ${DIR}/gen-nodejs-esm --gen js:node,es6,esm ${THRIFT_FILES_DIR}/JsDeepConstructorTest.thrift ${THRIFT_COMPILER} -out ${DIR}/gen-nodejs-esm --gen js:node,es6,esm ${THRIFT_FILES_DIR}/Int64Test.thrift ${THRIFT_COMPILER} -out ${DIR}/gen-nodejs-esm --gen js:node,es6,esm ${THRIFT_FILES_DIR}/Include.thrift diff --git a/lib/nodejs/test/test_handler.mjs b/lib/nodejs/test/test_handler.mjs index a378fe16e72..e6a2af26cd5 100644 --- a/lib/nodejs/test/test_handler.mjs +++ b/lib/nodejs/test/test_handler.mjs @@ -64,6 +64,7 @@ const identityHandlers = [ "testI64", "testDouble", "testBinary", + "testUuid", "testStruct", "testNest", "testMap", diff --git a/lib/nodets/Makefile.am b/lib/nodets/Makefile.am index ac2aa6e1b17..de523f5f42f 100644 --- a/lib/nodets/Makefile.am +++ b/lib/nodets/Makefile.am @@ -17,9 +17,9 @@ # We call npm twice to work around npm issues -stubs: $(top_srcdir)/test/v0.16/ThriftTest.thrift +stubs: $(top_srcdir)/test/ThriftTest.thrift mkdir -p test-compiled - $(THRIFT) --gen js:node,ts -o test/ $(top_srcdir)/test/v0.16/ThriftTest.thrift && $(THRIFT) --gen js:node,ts -o test-compiled $(top_srcdir)/test/v0.16/ThriftTest.thrift + $(THRIFT) --gen js:node,ts -o test/ $(top_srcdir)/test/ThriftTest.thrift && $(THRIFT) --gen js:node,ts -o test-compiled $(top_srcdir)/test/ThriftTest.thrift $(THRIFT) --gen js:node,ts -o test/ $(top_srcdir)/test/Int64Test.thrift && $(THRIFT) --gen js:node,ts -o test-compiled $(top_srcdir)/test/Int64Test.thrift ts-compile: stubs diff --git a/lib/nodets/test/runClient.sh b/lib/nodets/test/runClient.sh index 9497da38872..8d5e9a33f00 100755 --- a/lib/nodets/test/runClient.sh +++ b/lib/nodets/test/runClient.sh @@ -10,8 +10,8 @@ export NODE_PATH="${DIR}:${DIR}/../../nodejs/lib:${NODE_PATH}" compile() { #generating thrift code - ${DIR}/../../../compiler/cpp/thrift -o ${DIR} --gen js:node,ts ${DIR}/../../../test/v0.16/ThriftTest.thrift - ${DIR}/../../../compiler/cpp/thrift -o ${COMPILEDDIR} --gen js:node,ts ${DIR}/../../../test/v0.16/ThriftTest.thrift + ${DIR}/../../../compiler/cpp/thrift -o ${DIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest.thrift + ${DIR}/../../../compiler/cpp/thrift -o ${COMPILEDDIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest.thrift } compile diff --git a/lib/nodets/test/runServer.sh b/lib/nodets/test/runServer.sh index ec26513d153..4eee92717ec 100755 --- a/lib/nodets/test/runServer.sh +++ b/lib/nodets/test/runServer.sh @@ -10,8 +10,8 @@ export NODE_PATH="${DIR}:${DIR}/../../nodejs/lib:${NODE_PATH}" compile() { #generating thrift code - ${DIR}/../../../compiler/cpp/thrift -o ${DIR} --gen js:node,ts ${DIR}/../../../test/v0.16/ThriftTest.thrift - ${DIR}/../../../compiler/cpp/thrift -o ${COMPILEDDIR} --gen js:node,ts ${DIR}/../../../test/v0.16/ThriftTest.thrift + ${DIR}/../../../compiler/cpp/thrift -o ${DIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest.thrift + ${DIR}/../../../compiler/cpp/thrift -o ${COMPILEDDIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest.thrift } compile diff --git a/lib/nodets/test/test-cases.ts b/lib/nodets/test/test-cases.ts index 98f54af5ca5..c836550bd32 100644 --- a/lib/nodets/test/test-cases.ts +++ b/lib/nodets/test/test-cases.ts @@ -2,6 +2,7 @@ import ttypes = require("./gen-nodejs/ThriftTest_types"); import Int64 = require("node-int64"); +import { v4 as uuidv4, v7 as uuidv7 } from 'uuid'; //all Languages in UTF-8 /*jshint -W100 */ @@ -64,6 +65,9 @@ export var simple = [ ["testDouble", -5.2098523], ["testDouble", 7.012052175215044], ["testEnum", ttypes.Numberz.ONE], + ["testUuid", "00112233-4455-6677-8899-aabbccddeeff"], + ["testUuid", uuidv4()], + ["testUuid", uuidv7()], ]; export var simpleLoose = [ diff --git a/lib/nodets/test/testAll.sh b/lib/nodets/test/testAll.sh index 8180e2a1a3c..3be12c3622a 100755 --- a/lib/nodets/test/testAll.sh +++ b/lib/nodets/test/testAll.sh @@ -10,9 +10,9 @@ export NODE_PATH="${DIR}:${DIR}/../../nodejs/lib:${NODE_PATH}" compile() { #generating thrift code - ${DIR}/../../../compiler/cpp/thrift -o ${DIR} --gen js:node,ts ${DIR}/../../../test/v0.16/ThriftTest.thrift + ${DIR}/../../../compiler/cpp/thrift -o ${DIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest.thrift ${DIR}/../../../compiler/cpp/thrift -o ${DIR} --gen js:node,ts ${DIR}/../../../test/Int64Test.thrift - ${DIR}/../../../compiler/cpp/thrift -o ${COMPILEDDIR} --gen js:node,ts ${DIR}/../../../test/v0.16/ThriftTest.thrift + ${DIR}/../../../compiler/cpp/thrift -o ${COMPILEDDIR} --gen js:node,ts ${DIR}/../../../test/ThriftTest.thrift ${DIR}/../../../compiler/cpp/thrift -o ${COMPILEDDIR} --gen js:node,ts ${DIR}/../../../test/Int64Test.thrift tsc --outDir $COMPILEDDIR --project $DIR/tsconfig.json diff --git a/lib/nodets/test/test_handler.ts b/lib/nodets/test/test_handler.ts index 823b4e7ee03..42987d53385 100644 --- a/lib/nodets/test/test_handler.ts +++ b/lib/nodets/test/test_handler.ts @@ -25,6 +25,8 @@ import thrift = require("thrift"); import Thrift = thrift.Thrift; import Q = require("q"); import Int64 = require("node-int64"); +import { v4 as uuid } from 'uuid'; +type uuid = string; export class SyncThriftTestHandler { testVoid(): Q.IPromise { @@ -130,6 +132,9 @@ export class SyncThriftTestHandler { testBinary(thing: Buffer) { return Q.resolve(thing); } + testUuid(thing: uuid) { + return Q.resolve(thing); + } testStruct(thing: ttypes.Xtruct) { return Q.resolve(thing); } @@ -309,6 +314,13 @@ export class AsyncThriftTestHandler { callback(null, thing); return Q.resolve(); } + testUuid( + thing: uuid, + callback: (err: any, result: uuid) => void, + ): Q.IPromise { + callback(null, thing); + return Q.resolve(); + } testStruct( thing: ttypes.Xtruct, callback: (err: any, result: ttypes.Xtruct) => void, diff --git a/package-lock.json b/package-lock.json index b1c25cf64d0..fa1e607fcbb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "isomorphic-ws": "^4.0.1", "node-int64": "^0.4.0", "q": "^1.5.0", + "uuid": "^13.0.0", "ws": "^5.2.3" }, "devDependencies": { @@ -2475,6 +2476,17 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/istanbul-lib-processinfo/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, "node_modules/istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", @@ -3049,6 +3061,17 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/nyc/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, "node_modules/oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", @@ -3371,6 +3394,17 @@ "node": ">= 6" } }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -3826,13 +3860,16 @@ } }, "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-13.0.0.tgz", + "integrity": "sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", "bin": { - "uuid": "bin/uuid" + "uuid": "dist-node/bin/uuid" } }, "node_modules/valid-url": { diff --git a/package.json b/package.json index 59bc8207957..478618f55be 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "isomorphic-ws": "^4.0.1", "node-int64": "^0.4.0", "q": "^1.5.0", + "uuid": "^13.0.0", "ws": "^5.2.3" }, "devDependencies": { From 07b2c15a3ae1af5f29fbd098a55a2982528d74f8 Mon Sep 17 00:00:00 2001 From: CJCombrink Date: Fri, 6 Mar 2026 07:45:11 +0000 Subject: [PATCH 2/9] Fix style --- lib/nodejs/lib/thrift/binary_protocol.js | 2 +- lib/nodejs/lib/thrift/compact_protocol.js | 2 +- lib/nodejs/test/test-cases.mjs | 2 +- lib/nodets/test/test_handler.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/nodejs/lib/thrift/binary_protocol.js b/lib/nodejs/lib/thrift/binary_protocol.js index 01a23715d05..d5b2e143709 100644 --- a/lib/nodejs/lib/thrift/binary_protocol.js +++ b/lib/nodejs/lib/thrift/binary_protocol.js @@ -23,7 +23,7 @@ var Int64 = require("node-int64"); var Thrift = require("./thrift"); var Type = Thrift.Type; -const { parse: uuidParse, stringify: uuidStringify } = require('uuid'); +const { parse: uuidParse, stringify: uuidStringify } = require("uuid"); module.exports = TBinaryProtocol; diff --git a/lib/nodejs/lib/thrift/compact_protocol.js b/lib/nodejs/lib/thrift/compact_protocol.js index ee2aac7669a..dd7851e7a79 100644 --- a/lib/nodejs/lib/thrift/compact_protocol.js +++ b/lib/nodejs/lib/thrift/compact_protocol.js @@ -22,7 +22,7 @@ var Int64 = require("node-int64"); var Thrift = require("./thrift"); var Type = Thrift.Type; -const { parse: uuidParse, stringify: uuidStringify } = require('uuid'); +const { parse: uuidParse, stringify: uuidStringify } = require("uuid"); module.exports = TCompactProtocol; diff --git a/lib/nodejs/test/test-cases.mjs b/lib/nodejs/test/test-cases.mjs index a2bb0f2a9f7..c074923ba43 100644 --- a/lib/nodejs/test/test-cases.mjs +++ b/lib/nodejs/test/test-cases.mjs @@ -21,7 +21,7 @@ import helpers from "./helpers.js"; import Int64 from "node-int64"; -import { v4 as uuidv4, v7 as uuidv7 } from 'uuid'; +import { v4 as uuidv4, v7 as uuidv7 } from "uuid"; const ttypes = await helpers.importTypes(`ThriftTest_types`); diff --git a/lib/nodets/test/test_handler.ts b/lib/nodets/test/test_handler.ts index 42987d53385..9e74a6b11d5 100644 --- a/lib/nodets/test/test_handler.ts +++ b/lib/nodets/test/test_handler.ts @@ -25,7 +25,7 @@ import thrift = require("thrift"); import Thrift = thrift.Thrift; import Q = require("q"); import Int64 = require("node-int64"); -import { v4 as uuid } from 'uuid'; +import { v4 as uuid } from "uuid"; type uuid = string; export class SyncThriftTestHandler { From 5d6cd4cafbdbe2a89134a2ed0d962adda4de678a Mon Sep 17 00:00:00 2001 From: CJCombrink Date: Fri, 6 Mar 2026 07:45:26 +0000 Subject: [PATCH 3/9] Add UUID to header_protocol --- lib/nodejs/lib/thrift/header_protocol.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/nodejs/lib/thrift/header_protocol.js b/lib/nodejs/lib/thrift/header_protocol.js index 2a48a4d7d2a..7452925650f 100644 --- a/lib/nodejs/lib/thrift/header_protocol.js +++ b/lib/nodejs/lib/thrift/header_protocol.js @@ -158,6 +158,10 @@ THeaderProtocol.prototype.writeBinary = function (arg) { return this.protocol.writeBinary(arg); }; +THeaderProtocol.prototype.writeUuid = function (arg) { + return this.protocol.writeUuid(arg); +}; + THeaderProtocol.prototype.readMessageBegin = function () { this.trans.readHeaders(); this.setProtocol(); @@ -236,6 +240,10 @@ THeaderProtocol.prototype.readBinary = function () { return this.protocol.readBinary(); }; +THeaderProtocol.prototype.readUuid = function () { + return this.protocol.readUuid(); +}; + THeaderProtocol.prototype.readString = function () { return this.protocol.readString(); }; From c7e58694fb8c5ba48151ff8be57e7f3096ceae3a Mon Sep 17 00:00:00 2001 From: CJCombrink Date: Fri, 6 Mar 2026 09:22:33 +0000 Subject: [PATCH 4/9] nodejs and cpp cross tests --- lib/nodejs/test/server.crt | 59 ++++++++++++++++---------- lib/nodejs/test/server.key | 76 ++++++++++++++++++++++------------ test/known_failures_Linux.json | 13 ------ test/tests.json | 4 +- 4 files changed, 88 insertions(+), 64 deletions(-) diff --git a/lib/nodejs/test/server.crt b/lib/nodejs/test/server.crt index 8a5ef3c3a9d..9f04a08eecb 100644 --- a/lib/nodejs/test/server.crt +++ b/lib/nodejs/test/server.crt @@ -1,25 +1,38 @@ -----BEGIN CERTIFICATE----- -MIIENzCCAx+gAwIBAgIJAOYfYfw7NCOcMA0GCSqGSIb3DQEBBQUAMIGxMQswCQYD -VQQGEwJVUzERMA8GA1UECAwITWFyeWxhbmQxFDASBgNVBAcMC0ZvcmVzdCBIaWxs -MScwJQYDVQQKDB5UaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24xFjAUBgNV -BAsMDUFwYWNoZSBUaHJpZnQxEjAQBgNVBAMMCWxvY2FsaG9zdDEkMCIGCSqGSIb3 -DQEJARYVZGV2QHRocmlmdC5hcGFjaGUub3JnMB4XDTE0MDQwNzE4NTgwMFoXDTIy -MDYyNDE4NTgwMFowgbExCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhNYXJ5bGFuZDEU -MBIGA1UEBwwLRm9yZXN0IEhpbGwxJzAlBgNVBAoMHlRoZSBBcGFjaGUgU29mdHdh -cmUgRm91bmRhdGlvbjEWMBQGA1UECwwNQXBhY2hlIFRocmlmdDESMBAGA1UEAwwJ -bG9jYWxob3N0MSQwIgYJKoZIhvcNAQkBFhVkZXZAdGhyaWZ0LmFwYWNoZS5vcmcw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqE9TE9wEXp5LRtLQVDSGQ -GV78+7ZtP/I/ZaJ6Q6ZGlfxDFvZjFF73seNhAvlKlYm/jflIHYLnNOCySN8I2Xw6 -L9MbC+jvwkEKfQo4eDoxZnOZjNF5J1/lZtBeOowMkhhzBMH1Rds351/HjKNg6ZKg -2Cldd0j7HbDtEixOLgLbPRpBcaYrLrNMasf3Hal+x8/b8ue28x93HSQBGmZmMIUw -AinEu/fNP4lLGl/0kZb76TnyRpYSPYojtS6CnkH+QLYnsRREXJYwD1Xku62LipkX -wCkRTnZ5nUsDMX6FPKgjQFQCWDXG/N096+PRUQAChhrXsJ+gF3NqWtDmtrhVQF4n -AgMBAAGjUDBOMB0GA1UdDgQWBBQo8v0wzQPx3EEexJPGlxPK1PpgKjAfBgNVHSME -GDAWgBQo8v0wzQPx3EEexJPGlxPK1PpgKjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 -DQEBBQUAA4IBAQBGFRiJslcX0aJkwZpzTwSUdgcfKbpvNEbCNtVohfQVTI4a/oN5 -U+yqDZJg3vOaOuiAZqyHcIlZ8qyesCgRN314Tl4/JQ++CW8mKj1meTgo5YFxcZYm -T9vsI3C+Nzn84DINgI9mx6yktIt3QOKZRDpzyPkUzxsyJ8J427DaimDrjTR+fTwD -1Dh09xeeMnSa5zeV1HEDyJTqCXutLetwQ/IyfmMBhIx+nvB5f67pz/m+Dv6V0r3I -p4HCcdnDUDGJbfqtoqsAATQQWO+WWuswB6mOhDbvPTxhRpZq6AkgWqv4S+u3M2GO -r5p9FrBgavAw5bKO54C0oQKpN/5fta5l6Ws0 +MIIGuTCCBKGgAwIBAgIUDG+EIHE1EFeuj0ddWtxGQAPatt8wDQYJKoZIhvcNAQEL +BQAwgbExEjAQBgNVBAMMCWxvY2FsaG9zdDEkMCIGCSqGSIb3DQEJARYVZGV2QHRo +cmlmdC5hcGFjaGUub3JnMRYwFAYDVQQLDA1BcGFjaGUgVGhyaWZ0MScwJQYDVQQK +DB5UaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24xFDASBgNVBAcMC0ZvcmVz +dCBIaWxsMREwDwYDVQQIDAhNYXJ5bGFuZDELMAkGA1UEBhMCVVMwHhcNMjIwNjMw +MjIzNzI4WhcNMzAwOTE2MjIzNzI4WjCBsTESMBAGA1UEAwwJbG9jYWxob3N0MSQw +IgYJKoZIhvcNAQkBFhVkZXZAdGhyaWZ0LmFwYWNoZS5vcmcxFjAUBgNVBAsMDUFw +YWNoZSBUaHJpZnQxJzAlBgNVBAoMHlRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRh +dGlvbjEUMBIGA1UEBwwLRm9yZXN0IEhpbGwxETAPBgNVBAgMCE1hcnlsYW5kMQsw +CQYDVQQGEwJVUzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAM/uam3B +XjI0x6hfdqdr4ATbiDA7niD8MShpyqBmdpMWu7ng91grZPCDl7T/6xCrdT92NI7m +CpnA5hBK/0W8+5Y8NnKjkwZym9H5kO18FQ+hH1mJq3bx57mxsZAE1Iwbr21W/Kxh +6Jx279ayywVAU6l9cH/aS5t3pl0qZUysBi3me2J88z6oYA3FNRaxX3kO4I8iJjYu +vIfpWmXf8By/TOLzNkR1pJLXe849tAGrTtm+goLw59RMhIgxlS05DH3nGNKamWQ4 +gr2H5do+2pFzKoom4vCryKgc/NXyEQNc/1FRJsi3/XK/NlezoPw+xV33AeDopmmK +VsQ4RJONyVlgksCD2Q2odrCR/ryqirA5BTH8pQFfvCQfr4G6zkSzSDBTC9ZI2IIx +JFs87mVpcu+0n+u482vdwsUAeByE3opA99MYrlrZDjLYl40Y0kzWHK42Is3iBz03 +B4VFKUrsUXa5bcquYPkr1oVycamH1QTwXtgkU6DspAjuR3tUQT4i7sSEnoV8pGl0 +gLWpGABxhGde0Z0V/x14BNFJ+ZG2uiUpLvMJshqBle1kIj+CqySQMc3mFpkdBTUZ +nyVVuVRc6+oGGfBujOvqFKuS9rOhpCSBBVwbq5/lPSgtvy2uBiiTwlFLMgPvV66X +xQGbbgTxOjIdrL1i6smD/6RXkbIMKOFb/o4NAgMBAAGjgcYwgcMwHQYDVR0OBBYE +FKgE4SRwWu2cxDhjzef4eUmUnR3aMB8GA1UdIwQYMBaAFKgE4SRwWu2cxDhjzef4 +eUmUnR3aMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgHmMB0GA1Ud +JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjA+BgNVHREENzA1hwR/AAABhxAAAAAA +AAAAAAAAAAAAAAABhxAAAAAAAAAAAAAA//9/AAABgglsb2NhbGhvc3QwDQYJKoZI +hvcNAQELBQADggIBAIsl4jTS2dbrt7CStvwInf8InjaGqOrj4c0HDYVYBi33JkHx +WasCJbjs+YWsQYcK3/rE9iYyZA/cwIE89x2ec1JX42SrayPLIdUF5VSo+DP3knTH +Si7zt3igmziyKTsLoliISwOKwF5mdc+qeOE8CuExi7xIV4xlJxfM+XW6aeHdskof +KSTd4qqzyO+wMezKb8u9/b0rMGNCvaM1etcWNlrfP2SXayLAfFkKypSbER1uIUzg +ZnhSGyfYee6DrIATihPyOofjbUbqfF7MJtDTqTLhqhkndF+T7IR2LcR4XdtkxtdT +F1WwKcM2FX/cjpdtGX76U6hPD6uWXDISk8IiS8HX10x0wamlVvK3zz9UsWwQp5DD +EjG/XtMU59oAyiiGIbZllUWKOOabCcId8dvYZw4zoObCrYiYb2qvPcJPyUOzcCPn +wsOS22lgTqEfoNzlrmh39YI8pvNDh+t0SkK8Nhllm4o/hIQkIxYlqsp4IkCnyxpO +dgRMt2H+98FCNLGs3EIkmaeKD42OyglvdzM0IYHT2VDRfhwpjPvSEw/lJyYIi3R0 +BEWNGA9Jx+BKZRxmyOerUqCMmImwMoLtKudEHpWz5bXcUkmqsmGXaHabVW7Z3nfN +ZwdSLNHgHLNYBGe6Ak198CFHGmP/9XbV41cGNXctfe92baDv5IMgWOi35X5w -----END CERTIFICATE----- diff --git a/lib/nodejs/test/server.key b/lib/nodejs/test/server.key index 263cfce59a1..91666cf0526 100644 --- a/lib/nodejs/test/server.key +++ b/lib/nodejs/test/server.key @@ -1,28 +1,52 @@ -----BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCqE9TE9wEXp5LR -tLQVDSGQGV78+7ZtP/I/ZaJ6Q6ZGlfxDFvZjFF73seNhAvlKlYm/jflIHYLnNOCy -SN8I2Xw6L9MbC+jvwkEKfQo4eDoxZnOZjNF5J1/lZtBeOowMkhhzBMH1Rds351/H -jKNg6ZKg2Cldd0j7HbDtEixOLgLbPRpBcaYrLrNMasf3Hal+x8/b8ue28x93HSQB -GmZmMIUwAinEu/fNP4lLGl/0kZb76TnyRpYSPYojtS6CnkH+QLYnsRREXJYwD1Xk -u62LipkXwCkRTnZ5nUsDMX6FPKgjQFQCWDXG/N096+PRUQAChhrXsJ+gF3NqWtDm -trhVQF4nAgMBAAECggEAW/y52YYW6ypROGbZ94DQpFV0kLO7qT8q0Ksxw5sPNaIt -fEPRIymDa8ikyHWJS5Oxmw84wo5jnJV26jaLmwe2Lupq7Xf1lqej8f5LJtuv7cQR -xfzp1vM65KJFFJHp6WqjGqJ6HSSZOpVDsnQYcXQjQCdpyAmaSWd3p+FqYSZ1mQmD -bFNI7jqpczWSZhTdotQ7p7Hn9TVCehflP3yGIB3bQ+wCcCB85dOBz201L+YgaIck -Sz43A4NvWaQIRLRDw7s9GW4jY5T0Jv282WIeAlVpVxLIwu48r4R4yGTIx9Ydowvq -57+Y5iPPjAXxu0V9t00oS3bYxDaKh2DUfc/5zowq8QKBgQDYNVPXmaG0aIH4vjQ9 -7fRdw/UDkYcQbn6CnglQOu77/S8ogQzpKCVJgJgkZNqOVtQMEPzekGEcLTbje1gU -8Bky2k+PL9UwbFy0emnOVh4rqrNXHsRvJcehNT/PRb5hjF3MUMFV/0iD4b+naFaE -jrSWiZ2ZXj2qfwAK52GFbtOuBQKBgQDJYQuGiY0r22E4waJmCSKczoBT3cwlVzWj -V2ljgA9RHLNTVkvNNYQLGu2qngFrtwpeaSnsMDerVG4wKAQWyCnYzxVrlnC4uDrJ -HXuFEltBWi9Ffbgfsnd3749AT0oBP1NT2tMleguyf5DFgjCR3VRJLdrVaaZ8row/ -LqKcFMqnOwKBgB+OIO99l7E584Y3VG6ZdSneOLtNmRXX2pT7tcZE465ZdHGH7Dd3 -SYHhx9K/+Xn+yDH+pLli/xlarAEldmSP6k2WuTfftlC78AfTOfAId5zN7CDR9791 -Fx67I9X/itq33tS8EIuZl57P6uXm/4GXRloWOa8xpvRkVsBApuYPl8t1AoGATQDS -y2sllDObBXzlgGbV2WgNIgSZ311toTv3jJiXQsjauW8yJRHln+l4H9mzaWDgkiFc -ang1kUoDqF5k0eFQPxtQcYdhKwEnWWfwp33RbzfxA32DPnubuzzbZhfrkHaKgnIW -cyor9uFYlm2l7ODZLfJez2RKyTplXnOSsmQw6akCgYAz3dj9Hskyj+HVJ+ht1OcE -c7ai/ESkSA7Vajp0tjJp0EKjW/zq8DvUSXOtcdnJgkKycFluLwbmnaN4txBds1C1 -Qr8Rt2sUCCBNZe1L6DHe3XBdbkJe9sgZVNTjtUSQrzy8UhvsCqG4YWeCu07Szcbc -rdPUV9/uQkdx8VrShxlD8A== +MIIJPwIBADANBgkqhkiG9w0BAQEFAASCCSkwggklAgEAAoICAQDP7mptwV4yNMeo +X3ana+AE24gwO54g/DEoacqgZnaTFru54PdYK2Twg5e0/+sQq3U/djSO5gqZwOYQ +Sv9FvPuWPDZyo5MGcpvR+ZDtfBUPoR9Ziat28ee5sbGQBNSMG69tVvysYeicdu/W +sssFQFOpfXB/2kubd6ZdKmVMrAYt5ntifPM+qGANxTUWsV95DuCPIiY2LryH6Vpl +3/Acv0zi8zZEdaSS13vOPbQBq07ZvoKC8OfUTISIMZUtOQx95xjSmplkOIK9h+Xa +PtqRcyqKJuLwq8ioHPzV8hEDXP9RUSbIt/1yvzZXs6D8PsVd9wHg6KZpilbEOEST +jclZYJLAg9kNqHawkf68qoqwOQUx/KUBX7wkH6+Bus5Es0gwUwvWSNiCMSRbPO5l +aXLvtJ/ruPNr3cLFAHgchN6KQPfTGK5a2Q4y2JeNGNJM1hyuNiLN4gc9NweFRSlK +7FF2uW3KrmD5K9aFcnGph9UE8F7YJFOg7KQI7kd7VEE+Iu7EhJ6FfKRpdIC1qRgA +cYRnXtGdFf8deATRSfmRtrolKS7zCbIagZXtZCI/gqskkDHN5haZHQU1GZ8lVblU +XOvqBhnwbozr6hSrkvazoaQkgQVcG6uf5T0oLb8trgYok8JRSzID71eul8UBm24E +8ToyHay9YurJg/+kV5GyDCjhW/6ODQIDAQABAoICABd4zF7TYzS7rIYfMJ+5l7I0 +rezz7ee/UDVFq+/rYRs9h7d147X6QAy+bhOqh/h7wmKFj21KHow4sD/Kl4Jh0Oym +o2bRfDlQGrLbPzbvuNjo0UckOUzWBdh6bJbbVLr0LRtkpGU5MC7pZi2QRUa0ej05 +wcdM9xf3q7n8nS7IhHIOAIOfoz3BeAZV6qZDI4ng2gyOSE35fKLC/sddPhegqKc9 +2TRlK0zAMmOXp4hAtEf0L3tkgmb+tD9DiZlvRS+5NJ4hgYtErc2DV7kJO1cL7xNl +TFzqp14C16+3AaClkNS3Gm+yBVQ8rX+88UFIPLNcvMOMv6xOR3ki+OrHKKGEO0x3 +vd0Q5gcgbwxD2sEHajlbo9UkSEJnaUeUD0s/kQBYWCLIcosayPQh3Z3xLE4+ir+r +bbvAK4b2bJHeww2X9NrHB3dA8xjISIvzGoGL6M6nrgEgiov+L9rAyAlFhpY6872R +ttfgN3aP2ZK7tmfz+7G/cfWyPfSRJpTVIrtfpJw9CWuzFrAgOuPUTP5eOjjxPXeQ +eZuaABXVkM+V8xoqVE9KiD6UrE2401lPpoLevxm/i/oJePtFSdruu9ARBxVt2/gz +No2PKXYuJaoyOPKPqSWnJiI0ZI9KpvMBXdUcuI3dv8y5dumKfKqAKliAvaXNMdfU +8HeeVqDsh3eotH56YUFpAoIBAQD+rP491LtjrF/cCX6wdAAgkgfpQ7nnM8XM+606 +xbeepHJllhTfsE7K69Gs0GSDHRjh6q/GYnr2GnZ2q1kTVUeJ0gXmlPVOudxlxHlw +W2vfVBivoMC2z5pb1shdmcwyuxG+NJWogW3nn3JzbPY5ZKIT3O+YMF71NeAiAMqF +h0MuKpIysfqUqMHD2dOz3kb2pci048WTnMH4GnHnz7g6oB5nV9cz/BTr2XJN9kye +FfDhBSZX4IMcPLcUvzuv3NAW+lNGASCyrfCxx5SDZcx45jdpTqyK2mXLrmUKB+tZ +/4RRKuMrngydZYT73T+Qy5b9KM1O/yPLfNm++f0jPJlpn2dXAoIBAQDRAzMZ97SY +ELqwx3pnTdQoKV7q5hXv03SZOGuh4yhyOXdiWTZAftA0xQ7UkoH1nKF9FaLDupD6 +8tnG4kaZB7OiKUf9rFM42MS2be7bz7Q9Cg9s0rWAtUowTWMDi5bRX9zOhiphPFuY +71TdI59YhVQPpK0roZcKeCxEDaKpywfAbAkApHaGUpZJAx4Gx/97iQZZdBCw24Ec +EyD1Xxsl1q54tJwiYncxlghpy4aVO5zXeDyHuH9jtDoM+dxvobytrHMtbwu6YGK4 +6RI/1sggoZ+89ZONFrXz8o0/0f+uP9bLL4ds4b0PINHKGV1AG1SBfOmLkhKx/y76 +BhY1zsHuFws7AoIBAHAxN4N3nuGnA0fE6wnC4Hd4vYF2c4Q125KU4Nh+V4jMuxSj +jCiK2/sq7eCqoUzdWaPUpoDHy5F1UPCwRXpt3CkL28ubnYGEAWLXrgPgUmI9Au8D +60HdrQt+UCBj64ABxyw6sB9efVNHe7z7qHDaM0h60RYDYSG3DTkNjipKzz6cRHGO +1Gv+9/VWlZusdSidGhEOMnD34r9wrvNHH8q71QkDumtNRs4rqd5Mfa46zjXi9eRK +pJeg66p5IEs2BHnK5zp0rrnoRJuc54EHLI+qI4kBvqMg2S1kc2B64qRwGxNCyHbj +ln0URwRJkIIyHh8ChYeigFtZcfde27RVMuRD89sCggEABJ41etVmQBXeihleMvod +PeXsGvSKd4oMgXYlqqYCNsPeR2YBNNuYbhIMidXS2UJkrwbTWc+9dE35UdOeC7OH +3IVc+dXc4NypO/6h0Gl+afrW7GibagSXZwnOrj1fT7D2h/me5hcXTwG6tkgbNTF8 +8fuJd/VSCQEuuTIz7dx2h2HbsQ/xLnaUq3hOKYgxtOEKKt/Nnpq694vUppc7WlKr ++C7FZF0YlRfjh7Lfflya0oftjnIdHm7U+YRrwmuoZ43v3YkekTef9sXviUmNkmr/ +xIUIhY2C56jsRgS1yXvPmx2puFYkfzkSaYy16ryv2UyRPGw1zYj92LhZtUakMkaA +EQKB/wLQfRkaMz0RtxzyroTLcc1mlJmSyE/Cb6032R4BmA0t2MDFUePmRYsp7f2I +47z5a9R1oJtY0lNl1JeSWqNvL9iAmFAkN96hC0mk4xvWZBOhIPfMx6hVKms9Zbwd +yHVfUFudAjp/cY4zXBKbSj7emz/L+yM0E0Dz07HqvqX3CcWrR0gbC6GE3wRr5XM2 +asZAQXYadPjO4W9vsiT0UWrj6zKWwr0mH7gLk+VXzqE/25+aSx4Z6N1IAkR7gW23 +2I5xxNtaanZH6jmJ1CGZA3mWazQCl0vOc3QoyzH9TqQbL+VL7Y75lUTSwW8IPPL1 +OV2cxV8xD52Pk7JlPVRIgWOT2Q== -----END PRIVATE KEY----- diff --git a/test/known_failures_Linux.json b/test/known_failures_Linux.json index 6afe00c4cbe..f01e5aa6b1a 100644 --- a/test/known_failures_Linux.json +++ b/test/known_failures_Linux.json @@ -692,28 +692,15 @@ "nodejs-cpp_binary_http-domain", "nodejs-cpp_binary_http-ip", "nodejs-cpp_binary_http-ip-ssl", - "nodejs-cpp_binary_websocket-domain", - "nodejs-cpp_binary_websocket-ip", - "nodejs-cpp_binary_websocket-ip-ssl", "nodejs-cpp_compact_http-domain", "nodejs-cpp_compact_http-ip", "nodejs-cpp_compact_http-ip-ssl", - "nodejs-cpp_compact_websocket-domain", - "nodejs-cpp_compact_websocket-ip", - "nodejs-cpp_compact_websocket-ip-ssl", "nodejs-cpp_header_http-domain", "nodejs-cpp_header_http-ip", "nodejs-cpp_header_http-ip-ssl", - "nodejs-cpp_header_websocket-domain", - "nodejs-cpp_header_websocket-ip", - "nodejs-cpp_header_websocket-ip-ssl", - "nodejs-cpp_json_buffered-ip-ssl", "nodejs-cpp_json_http-domain", "nodejs-cpp_json_http-ip", "nodejs-cpp_json_http-ip-ssl", - "nodejs-cpp_json_websocket-domain", - "nodejs-cpp_json_websocket-ip", - "nodejs-cpp_json_websocket-ip-ssl", "nodejs-d_binary_http-ip", "nodejs-d_binary_http-ip-ssl", "nodejs-d_compact_http-ip", diff --git a/test/tests.json b/test/tests.json index bcc87d3217b..ff795648b49 100644 --- a/test/tests.json +++ b/test/tests.json @@ -219,7 +219,7 @@ "server": { "command": [ "node", - "server.js", + "server.mjs", "--type=tcp" ] }, @@ -227,7 +227,7 @@ "timeout": 6, "command": [ "node", - "client.js", + "client.mjs", "--type=tcp" ] }, From a2062d7c08c6e63079c92d937ee0a83978117e5b Mon Sep 17 00:00:00 2001 From: CJCombrink Date: Fri, 6 Mar 2026 10:49:17 +0000 Subject: [PATCH 5/9] Fixes to get the nodets tests to run - Not sure why this was needed or what changed but it works now --- lib/nodets/test/client.ts | 5 +++-- lib/nodets/test/server.ts | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/nodets/test/client.ts b/lib/nodets/test/client.ts index c2666bc0d86..99b59607622 100644 --- a/lib/nodets/test/client.ts +++ b/lib/nodets/test/client.ts @@ -28,9 +28,10 @@ import ThriftTestDriverPromise = test_driver.ThriftTestDriverPromise; import { program } from "commander"; program - .option("--port ", "Set thrift server port number to connect", Number.parseInt, 9090) + .option("--port ", "Set thrift server port number to connect", (v) => parseInt(v, 10), 9090) .option("--promise", "test with promise style functions") - .option("--protocol", "Set thrift protocol (binary) [protocol]") + .option('--protocol ', '"Set thrift protocol (binary) [protocol]"') + .option('--transport ', '"Set thrift transport (buffered) [transport]"') .parse(process.argv); diff --git a/lib/nodets/test/server.ts b/lib/nodets/test/server.ts index 59113840a41..a2ef5c698ca 100644 --- a/lib/nodets/test/server.ts +++ b/lib/nodets/test/server.ts @@ -5,9 +5,10 @@ import test_handler = require('./test_handler'); program - .option('--port ', 'Set thrift server port', Number.parseInt, 9090) + .option('--port ', 'Set thrift server port', (v) => parseInt(v, 10), 9090) .option('--promise', 'test with promise style functions') - .option('--protocol', '"Set thrift protocol (binary) [protocol]"') + .option('--protocol ', '"Set thrift protocol (binary) [protocol]"') + .option('--transport ', '"Set thrift transport (buffered) [transport]"') .parse(process.argv); var opts = program.opts(); From 5ce94201d735840a8a2b1d3fbc167fa87a8d3484 Mon Sep 17 00:00:00 2001 From: CJCombrink Date: Fri, 6 Mar 2026 10:56:28 +0000 Subject: [PATCH 6/9] Mark UUID support for TS and JS --- LANGUAGES.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/LANGUAGES.md b/LANGUAGES.md index 8bf9a333d51..771a483883e 100644 --- a/LANGUAGES.md +++ b/LANGUAGES.md @@ -241,7 +241,7 @@ Thrift's core protocol is TBinary, supported by all languages except for JavaScr 0.6.0 Yes 10.x10.x - +Yes YesYesYes YesYesYes YesYesYesYes @@ -253,7 +253,7 @@ Thrift's core protocol is TBinary, supported by all languages except for JavaScr 0.12.0 Yes 5.7.2 - +Yes YesYes Yes From f8255c5b8d2a837f4c53c4eb5ca618cae2ec8305 Mon Sep 17 00:00:00 2001 From: CJCombrink Date: Fri, 6 Mar 2026 11:42:27 +0000 Subject: [PATCH 7/9] Remove the UFT8 and UTF16 enum types - Need confirmation on PR#3330 if this is the correct thing to do --- lib/nodejs/lib/thrift/thrift.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/nodejs/lib/thrift/thrift.js b/lib/nodejs/lib/thrift/thrift.js index b7a2e6f20ba..ff6897d8b06 100644 --- a/lib/nodejs/lib/thrift/thrift.js +++ b/lib/nodejs/lib/thrift/thrift.js @@ -34,8 +34,6 @@ var Type = (exports.Type = { MAP: 13, SET: 14, LIST: 15, - UTF8: 11, - UTF16: 11, UUID: 16, }); From 2bca1fe95490d5be210f2ea6fbfad994225367c5 Mon Sep 17 00:00:00 2001 From: CJCombrink Date: Fri, 6 Mar 2026 12:58:11 +0000 Subject: [PATCH 8/9] Remove the copied certificates - Burden to have a copy of these for no real benefit --- lib/nodejs/test/certificates.README | 7 ---- lib/nodejs/test/server.crt | 38 --------------------- lib/nodejs/test/server.key | 52 ----------------------------- lib/nodejs/test/server.mjs | 8 +++-- 4 files changed, 6 insertions(+), 99 deletions(-) delete mode 100644 lib/nodejs/test/certificates.README delete mode 100644 lib/nodejs/test/server.crt delete mode 100644 lib/nodejs/test/server.key diff --git a/lib/nodejs/test/certificates.README b/lib/nodejs/test/certificates.README deleted file mode 100644 index 06c507e7d75..00000000000 --- a/lib/nodejs/test/certificates.README +++ /dev/null @@ -1,7 +0,0 @@ -server.crt AND server.key ARE PROVIDED FOR TEST PURPOSE AND SHOULD *NEVER* BE USED IN PRODUCTION - - -Origin of the test key and cert is the folder test/keys of Apache Thrift source code distribution - -We need copies for npm deployment - diff --git a/lib/nodejs/test/server.crt b/lib/nodejs/test/server.crt deleted file mode 100644 index 9f04a08eecb..00000000000 --- a/lib/nodejs/test/server.crt +++ /dev/null @@ -1,38 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIGuTCCBKGgAwIBAgIUDG+EIHE1EFeuj0ddWtxGQAPatt8wDQYJKoZIhvcNAQEL -BQAwgbExEjAQBgNVBAMMCWxvY2FsaG9zdDEkMCIGCSqGSIb3DQEJARYVZGV2QHRo -cmlmdC5hcGFjaGUub3JnMRYwFAYDVQQLDA1BcGFjaGUgVGhyaWZ0MScwJQYDVQQK -DB5UaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24xFDASBgNVBAcMC0ZvcmVz -dCBIaWxsMREwDwYDVQQIDAhNYXJ5bGFuZDELMAkGA1UEBhMCVVMwHhcNMjIwNjMw -MjIzNzI4WhcNMzAwOTE2MjIzNzI4WjCBsTESMBAGA1UEAwwJbG9jYWxob3N0MSQw -IgYJKoZIhvcNAQkBFhVkZXZAdGhyaWZ0LmFwYWNoZS5vcmcxFjAUBgNVBAsMDUFw -YWNoZSBUaHJpZnQxJzAlBgNVBAoMHlRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRh -dGlvbjEUMBIGA1UEBwwLRm9yZXN0IEhpbGwxETAPBgNVBAgMCE1hcnlsYW5kMQsw -CQYDVQQGEwJVUzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAM/uam3B -XjI0x6hfdqdr4ATbiDA7niD8MShpyqBmdpMWu7ng91grZPCDl7T/6xCrdT92NI7m -CpnA5hBK/0W8+5Y8NnKjkwZym9H5kO18FQ+hH1mJq3bx57mxsZAE1Iwbr21W/Kxh -6Jx279ayywVAU6l9cH/aS5t3pl0qZUysBi3me2J88z6oYA3FNRaxX3kO4I8iJjYu -vIfpWmXf8By/TOLzNkR1pJLXe849tAGrTtm+goLw59RMhIgxlS05DH3nGNKamWQ4 -gr2H5do+2pFzKoom4vCryKgc/NXyEQNc/1FRJsi3/XK/NlezoPw+xV33AeDopmmK -VsQ4RJONyVlgksCD2Q2odrCR/ryqirA5BTH8pQFfvCQfr4G6zkSzSDBTC9ZI2IIx -JFs87mVpcu+0n+u482vdwsUAeByE3opA99MYrlrZDjLYl40Y0kzWHK42Is3iBz03 -B4VFKUrsUXa5bcquYPkr1oVycamH1QTwXtgkU6DspAjuR3tUQT4i7sSEnoV8pGl0 -gLWpGABxhGde0Z0V/x14BNFJ+ZG2uiUpLvMJshqBle1kIj+CqySQMc3mFpkdBTUZ -nyVVuVRc6+oGGfBujOvqFKuS9rOhpCSBBVwbq5/lPSgtvy2uBiiTwlFLMgPvV66X -xQGbbgTxOjIdrL1i6smD/6RXkbIMKOFb/o4NAgMBAAGjgcYwgcMwHQYDVR0OBBYE -FKgE4SRwWu2cxDhjzef4eUmUnR3aMB8GA1UdIwQYMBaAFKgE4SRwWu2cxDhjzef4 -eUmUnR3aMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgHmMB0GA1Ud -JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjA+BgNVHREENzA1hwR/AAABhxAAAAAA -AAAAAAAAAAAAAAABhxAAAAAAAAAAAAAA//9/AAABgglsb2NhbGhvc3QwDQYJKoZI -hvcNAQELBQADggIBAIsl4jTS2dbrt7CStvwInf8InjaGqOrj4c0HDYVYBi33JkHx -WasCJbjs+YWsQYcK3/rE9iYyZA/cwIE89x2ec1JX42SrayPLIdUF5VSo+DP3knTH -Si7zt3igmziyKTsLoliISwOKwF5mdc+qeOE8CuExi7xIV4xlJxfM+XW6aeHdskof -KSTd4qqzyO+wMezKb8u9/b0rMGNCvaM1etcWNlrfP2SXayLAfFkKypSbER1uIUzg -ZnhSGyfYee6DrIATihPyOofjbUbqfF7MJtDTqTLhqhkndF+T7IR2LcR4XdtkxtdT -F1WwKcM2FX/cjpdtGX76U6hPD6uWXDISk8IiS8HX10x0wamlVvK3zz9UsWwQp5DD -EjG/XtMU59oAyiiGIbZllUWKOOabCcId8dvYZw4zoObCrYiYb2qvPcJPyUOzcCPn -wsOS22lgTqEfoNzlrmh39YI8pvNDh+t0SkK8Nhllm4o/hIQkIxYlqsp4IkCnyxpO -dgRMt2H+98FCNLGs3EIkmaeKD42OyglvdzM0IYHT2VDRfhwpjPvSEw/lJyYIi3R0 -BEWNGA9Jx+BKZRxmyOerUqCMmImwMoLtKudEHpWz5bXcUkmqsmGXaHabVW7Z3nfN -ZwdSLNHgHLNYBGe6Ak198CFHGmP/9XbV41cGNXctfe92baDv5IMgWOi35X5w ------END CERTIFICATE----- diff --git a/lib/nodejs/test/server.key b/lib/nodejs/test/server.key deleted file mode 100644 index 91666cf0526..00000000000 --- a/lib/nodejs/test/server.key +++ /dev/null @@ -1,52 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIJPwIBADANBgkqhkiG9w0BAQEFAASCCSkwggklAgEAAoICAQDP7mptwV4yNMeo -X3ana+AE24gwO54g/DEoacqgZnaTFru54PdYK2Twg5e0/+sQq3U/djSO5gqZwOYQ -Sv9FvPuWPDZyo5MGcpvR+ZDtfBUPoR9Ziat28ee5sbGQBNSMG69tVvysYeicdu/W -sssFQFOpfXB/2kubd6ZdKmVMrAYt5ntifPM+qGANxTUWsV95DuCPIiY2LryH6Vpl -3/Acv0zi8zZEdaSS13vOPbQBq07ZvoKC8OfUTISIMZUtOQx95xjSmplkOIK9h+Xa -PtqRcyqKJuLwq8ioHPzV8hEDXP9RUSbIt/1yvzZXs6D8PsVd9wHg6KZpilbEOEST -jclZYJLAg9kNqHawkf68qoqwOQUx/KUBX7wkH6+Bus5Es0gwUwvWSNiCMSRbPO5l -aXLvtJ/ruPNr3cLFAHgchN6KQPfTGK5a2Q4y2JeNGNJM1hyuNiLN4gc9NweFRSlK -7FF2uW3KrmD5K9aFcnGph9UE8F7YJFOg7KQI7kd7VEE+Iu7EhJ6FfKRpdIC1qRgA -cYRnXtGdFf8deATRSfmRtrolKS7zCbIagZXtZCI/gqskkDHN5haZHQU1GZ8lVblU -XOvqBhnwbozr6hSrkvazoaQkgQVcG6uf5T0oLb8trgYok8JRSzID71eul8UBm24E -8ToyHay9YurJg/+kV5GyDCjhW/6ODQIDAQABAoICABd4zF7TYzS7rIYfMJ+5l7I0 -rezz7ee/UDVFq+/rYRs9h7d147X6QAy+bhOqh/h7wmKFj21KHow4sD/Kl4Jh0Oym -o2bRfDlQGrLbPzbvuNjo0UckOUzWBdh6bJbbVLr0LRtkpGU5MC7pZi2QRUa0ej05 -wcdM9xf3q7n8nS7IhHIOAIOfoz3BeAZV6qZDI4ng2gyOSE35fKLC/sddPhegqKc9 -2TRlK0zAMmOXp4hAtEf0L3tkgmb+tD9DiZlvRS+5NJ4hgYtErc2DV7kJO1cL7xNl -TFzqp14C16+3AaClkNS3Gm+yBVQ8rX+88UFIPLNcvMOMv6xOR3ki+OrHKKGEO0x3 -vd0Q5gcgbwxD2sEHajlbo9UkSEJnaUeUD0s/kQBYWCLIcosayPQh3Z3xLE4+ir+r -bbvAK4b2bJHeww2X9NrHB3dA8xjISIvzGoGL6M6nrgEgiov+L9rAyAlFhpY6872R -ttfgN3aP2ZK7tmfz+7G/cfWyPfSRJpTVIrtfpJw9CWuzFrAgOuPUTP5eOjjxPXeQ -eZuaABXVkM+V8xoqVE9KiD6UrE2401lPpoLevxm/i/oJePtFSdruu9ARBxVt2/gz -No2PKXYuJaoyOPKPqSWnJiI0ZI9KpvMBXdUcuI3dv8y5dumKfKqAKliAvaXNMdfU -8HeeVqDsh3eotH56YUFpAoIBAQD+rP491LtjrF/cCX6wdAAgkgfpQ7nnM8XM+606 -xbeepHJllhTfsE7K69Gs0GSDHRjh6q/GYnr2GnZ2q1kTVUeJ0gXmlPVOudxlxHlw -W2vfVBivoMC2z5pb1shdmcwyuxG+NJWogW3nn3JzbPY5ZKIT3O+YMF71NeAiAMqF -h0MuKpIysfqUqMHD2dOz3kb2pci048WTnMH4GnHnz7g6oB5nV9cz/BTr2XJN9kye -FfDhBSZX4IMcPLcUvzuv3NAW+lNGASCyrfCxx5SDZcx45jdpTqyK2mXLrmUKB+tZ -/4RRKuMrngydZYT73T+Qy5b9KM1O/yPLfNm++f0jPJlpn2dXAoIBAQDRAzMZ97SY -ELqwx3pnTdQoKV7q5hXv03SZOGuh4yhyOXdiWTZAftA0xQ7UkoH1nKF9FaLDupD6 -8tnG4kaZB7OiKUf9rFM42MS2be7bz7Q9Cg9s0rWAtUowTWMDi5bRX9zOhiphPFuY -71TdI59YhVQPpK0roZcKeCxEDaKpywfAbAkApHaGUpZJAx4Gx/97iQZZdBCw24Ec -EyD1Xxsl1q54tJwiYncxlghpy4aVO5zXeDyHuH9jtDoM+dxvobytrHMtbwu6YGK4 -6RI/1sggoZ+89ZONFrXz8o0/0f+uP9bLL4ds4b0PINHKGV1AG1SBfOmLkhKx/y76 -BhY1zsHuFws7AoIBAHAxN4N3nuGnA0fE6wnC4Hd4vYF2c4Q125KU4Nh+V4jMuxSj -jCiK2/sq7eCqoUzdWaPUpoDHy5F1UPCwRXpt3CkL28ubnYGEAWLXrgPgUmI9Au8D -60HdrQt+UCBj64ABxyw6sB9efVNHe7z7qHDaM0h60RYDYSG3DTkNjipKzz6cRHGO -1Gv+9/VWlZusdSidGhEOMnD34r9wrvNHH8q71QkDumtNRs4rqd5Mfa46zjXi9eRK -pJeg66p5IEs2BHnK5zp0rrnoRJuc54EHLI+qI4kBvqMg2S1kc2B64qRwGxNCyHbj -ln0URwRJkIIyHh8ChYeigFtZcfde27RVMuRD89sCggEABJ41etVmQBXeihleMvod -PeXsGvSKd4oMgXYlqqYCNsPeR2YBNNuYbhIMidXS2UJkrwbTWc+9dE35UdOeC7OH -3IVc+dXc4NypO/6h0Gl+afrW7GibagSXZwnOrj1fT7D2h/me5hcXTwG6tkgbNTF8 -8fuJd/VSCQEuuTIz7dx2h2HbsQ/xLnaUq3hOKYgxtOEKKt/Nnpq694vUppc7WlKr -+C7FZF0YlRfjh7Lfflya0oftjnIdHm7U+YRrwmuoZ43v3YkekTef9sXviUmNkmr/ -xIUIhY2C56jsRgS1yXvPmx2puFYkfzkSaYy16ryv2UyRPGw1zYj92LhZtUakMkaA -EQKB/wLQfRkaMz0RtxzyroTLcc1mlJmSyE/Cb6032R4BmA0t2MDFUePmRYsp7f2I -47z5a9R1oJtY0lNl1JeSWqNvL9iAmFAkN96hC0mk4xvWZBOhIPfMx6hVKms9Zbwd -yHVfUFudAjp/cY4zXBKbSj7emz/L+yM0E0Dz07HqvqX3CcWrR0gbC6GE3wRr5XM2 -asZAQXYadPjO4W9vsiT0UWrj6zKWwr0mH7gLk+VXzqE/25+aSx4Z6N1IAkR7gW23 -2I5xxNtaanZH6jmJ1CGZA3mWazQCl0vOc3QoyzH9TqQbL+VL7Y75lUTSwW8IPPL1 -OV2cxV8xD52Pk7JlPVRIgWOT2Q== ------END PRIVATE KEY----- diff --git a/lib/nodejs/test/server.mjs b/lib/nodejs/test/server.mjs index 7a3c593c07f..4b198a1e1da 100644 --- a/lib/nodejs/test/server.mjs +++ b/lib/nodejs/test/server.mjs @@ -119,8 +119,12 @@ if (ssl) { type === "websocket" ) { options.tls = { - key: fs.readFileSync(path.resolve(import.meta.dirname, "server.key")), - cert: fs.readFileSync(path.resolve(import.meta.dirname, "server.crt")), + key: fs.readFileSync( + path.resolve(import.meta.dirname, "../../../test/keys/server.key"), + ), + cert: fs.readFileSync( + path.resolve(import.meta.dirname, "../../../test/keys/server.crt"), + ), }; } } From b1e457ea9a812f6eb8d3f6d029b1886ffe28279c Mon Sep 17 00:00:00 2001 From: CJCombrink Date: Fri, 6 Mar 2026 13:29:41 +0000 Subject: [PATCH 9/9] Remove pre-uuid parts that breaks the build --- lib/nodejs/Makefile.am | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/nodejs/Makefile.am b/lib/nodejs/Makefile.am index 84dd29666d0..ac192451ad2 100644 --- a/lib/nodejs/Makefile.am +++ b/lib/nodejs/Makefile.am @@ -17,11 +17,8 @@ # We call npm twice to work around npm issues -stubs: $(top_srcdir)/test/ThriftTest.thrift $(top_srcdir)/test/FuzzTestNoUuid.thrift +stubs: $(top_srcdir)/test/ThriftTest.thrift $(THRIFT) --gen js:node -o test/ $(top_srcdir)/test/ThriftTest.thrift - $(THRIFT) --gen js:node -o test/fuzz/ $(top_srcdir)/test/FuzzTestNoUuid.thrift - sed -i "s/require('thrift')/require(\"..\/..\/..\/lib\/thrift\")/" test/fuzz/gen-nodejs/FuzzTestNoUuid_types.js - deps-root: $(top_srcdir)/package.json $(NPM) install $(top_srcdir)/ || $(NPM) install $(top_srcdir)/