diff --git a/nodejs/__test__/arrow.test.ts b/nodejs/__test__/arrow.test.ts index c0a89007..c7cb3a20 100644 --- a/nodejs/__test__/arrow.test.ts +++ b/nodejs/__test__/arrow.test.ts @@ -13,11 +13,10 @@ import { Schema } from "apache-arrow"; // See the License for the specific language governing permissions and // limitations under the License. -import * as arrow13 from "apache-arrow-13"; -import * as arrow14 from "apache-arrow-14"; import * as arrow15 from "apache-arrow-15"; import * as arrow16 from "apache-arrow-16"; import * as arrow17 from "apache-arrow-17"; +import * as arrow18 from "apache-arrow-18"; import { convertToTable, @@ -45,22 +44,16 @@ function sampleRecords(): Array> { }, ]; } -describe.each([arrow13, arrow14, arrow15, arrow16, arrow17])( +describe.each([arrow15, arrow16, arrow17, arrow18])( "Arrow", ( - arrow: - | typeof arrow13 - | typeof arrow14 - | typeof arrow15 - | typeof arrow16 - | typeof arrow17, + arrow: typeof arrow15 | typeof arrow16 | typeof arrow17 | typeof arrow18, ) => { type ApacheArrow = - | typeof arrow13 - | typeof arrow14 | typeof arrow15 | typeof arrow16 - | typeof arrow17; + | typeof arrow17 + | typeof arrow18; const { Schema, Field, @@ -498,40 +491,40 @@ describe.each([arrow13, arrow14, arrow15, arrow16, arrow17])( describe("when using two versions of arrow", function () { it("can still import data", async function () { - const schema = new arrow13.Schema([ - new arrow13.Field("id", new arrow13.Int32()), - new arrow13.Field( + const schema = new arrow15.Schema([ + new arrow15.Field("id", new arrow15.Int32()), + new arrow15.Field( "vector", - new arrow13.FixedSizeList( + new arrow15.FixedSizeList( 1024, - new arrow13.Field("item", new arrow13.Float32(), true), + new arrow15.Field("item", new arrow15.Float32(), true), ), ), - new arrow13.Field( + new arrow15.Field( "struct", - new arrow13.Struct([ - new arrow13.Field( + new arrow15.Struct([ + new arrow15.Field( "nested", - new arrow13.Dictionary( - new arrow13.Utf8(), - new arrow13.Int32(), + new arrow15.Dictionary( + new arrow15.Utf8(), + new arrow15.Int32(), 1, true, ), ), - new arrow13.Field( + new arrow15.Field( "ts_with_tz", - new arrow13.TimestampNanosecond("some_tz"), + new arrow15.TimestampNanosecond("some_tz"), ), - new arrow13.Field( + new arrow15.Field( "ts_no_tz", - new arrow13.TimestampNanosecond(null), + new arrow15.TimestampNanosecond(null), ), ]), ), // biome-ignore lint/suspicious/noExplicitAny: skip ]) as any; - schema.metadataVersion = arrow13.MetadataVersion.V5; + schema.metadataVersion = arrow15.MetadataVersion.V5; const table = makeArrowTable([], { schema }); const buf = await fromTableToBuffer(table); @@ -543,13 +536,13 @@ describe.each([arrow13, arrow14, arrow15, arrow16, arrow17])( // Deep equality gets hung up on some very minor unimportant differences // between arrow version 13 and 15 which isn't really what we're testing for // and so we do our own comparison that just checks name/type/nullability - function compareFields(lhs: arrow13.Field, rhs: arrow13.Field) { + function compareFields(lhs: arrow15.Field, rhs: arrow15.Field) { expect(lhs.name).toEqual(rhs.name); expect(lhs.nullable).toEqual(rhs.nullable); expect(lhs.typeId).toEqual(rhs.typeId); if ("children" in lhs.type && lhs.type.children !== null) { - const lhsChildren = lhs.type.children as arrow13.Field[]; - lhsChildren.forEach((child: arrow13.Field, idx) => { + const lhsChildren = lhs.type.children as arrow15.Field[]; + lhsChildren.forEach((child: arrow15.Field, idx) => { compareFields(child, rhs.type.children[idx]); }); } diff --git a/nodejs/__test__/registry.test.ts b/nodejs/__test__/registry.test.ts index a31d15e5..cd52af8a 100644 --- a/nodejs/__test__/registry.test.ts +++ b/nodejs/__test__/registry.test.ts @@ -12,11 +12,10 @@ import * as apiArrow from "apache-arrow"; // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -import * as arrow13 from "apache-arrow-13"; -import * as arrow14 from "apache-arrow-14"; import * as arrow15 from "apache-arrow-15"; import * as arrow16 from "apache-arrow-16"; import * as arrow17 from "apache-arrow-17"; +import * as arrow18 from "apache-arrow-18"; import * as tmp from "tmp"; @@ -24,154 +23,144 @@ import { connect } from "../lancedb"; import { EmbeddingFunction, LanceSchema } from "../lancedb/embedding"; import { getRegistry, register } from "../lancedb/embedding/registry"; -describe.each([arrow13, arrow14, arrow15, arrow16, arrow17])( - "LanceSchema", - (arrow) => { - test("should preserve input order", async () => { - const schema = LanceSchema({ - id: new arrow.Int32(), - text: new arrow.Utf8(), - vector: new arrow.Float32(), - }); - expect(schema.fields.map((x) => x.name)).toEqual([ - "id", - "text", - "vector", - ]); +describe.each([arrow15, arrow16, arrow17, arrow18])("LanceSchema", (arrow) => { + test("should preserve input order", async () => { + const schema = LanceSchema({ + id: new arrow.Int32(), + text: new arrow.Utf8(), + vector: new arrow.Float32(), }); - }, -); + expect(schema.fields.map((x) => x.name)).toEqual(["id", "text", "vector"]); + }); +}); -describe.each([arrow13, arrow14, arrow15, arrow16, arrow17])( - "Registry", - (arrow) => { - let tmpDir: tmp.DirResult; - beforeEach(() => { - tmpDir = tmp.dirSync({ unsafeCleanup: true }); - }); +describe.each([arrow15, arrow16, arrow17, arrow18])("Registry", (arrow) => { + let tmpDir: tmp.DirResult; + beforeEach(() => { + tmpDir = tmp.dirSync({ unsafeCleanup: true }); + }); - afterEach(() => { - tmpDir.removeCallback(); - getRegistry().reset(); - }); + afterEach(() => { + tmpDir.removeCallback(); + getRegistry().reset(); + }); - it("should register a new item to the registry", async () => { - @register("mock-embedding") - class MockEmbeddingFunction extends EmbeddingFunction { - toJSON(): object { - return { - someText: "hello", - }; - } - constructor() { - super(); - } - ndims() { - return 3; - } - embeddingDataType() { - return new arrow.Float32() as apiArrow.Float; - } - async computeSourceEmbeddings(data: string[]) { - return data.map(() => [1, 2, 3]); - } + it("should register a new item to the registry", async () => { + @register("mock-embedding") + class MockEmbeddingFunction extends EmbeddingFunction { + toJSON(): object { + return { + someText: "hello", + }; } - - const func = getRegistry() - .get("mock-embedding")! - .create(); - - const schema = LanceSchema({ - id: new arrow.Int32(), - text: func.sourceField(new arrow.Utf8() as apiArrow.DataType), - vector: func.vectorField(), - }); - - const db = await connect(tmpDir.name); - const table = await db.createTable( - "test", - [ - { id: 1, text: "hello" }, - { id: 2, text: "world" }, - ], - { schema }, - ); - const expected = [ - [1, 2, 3], - [1, 2, 3], - ]; - const actual = await table.query().toArrow(); - const vectors = actual.getChild("vector")!.toArray(); - expect(JSON.parse(JSON.stringify(vectors))).toEqual( - JSON.parse(JSON.stringify(expected)), - ); - }); - test("should error if registering with the same name", async () => { - class MockEmbeddingFunction extends EmbeddingFunction { - toJSON(): object { - return { - someText: "hello", - }; - } - constructor() { - super(); - } - ndims() { - return 3; - } - embeddingDataType() { - return new arrow.Float32() as apiArrow.Float; - } - async computeSourceEmbeddings(data: string[]) { - return data.map(() => [1, 2, 3]); - } + constructor() { + super(); } - register("mock-embedding")(MockEmbeddingFunction); - expect(() => register("mock-embedding")(MockEmbeddingFunction)).toThrow( - 'Embedding function with alias "mock-embedding" already exists', - ); - }); - test("schema should contain correct metadata", async () => { - class MockEmbeddingFunction extends EmbeddingFunction { - toJSON(): object { - return { - someText: "hello", - }; - } - constructor() { - super(); - } - ndims() { - return 3; - } - embeddingDataType() { - return new arrow.Float32() as apiArrow.Float; - } - async computeSourceEmbeddings(data: string[]) { - return data.map(() => [1, 2, 3]); - } + ndims() { + return 3; } - const func = new MockEmbeddingFunction(); + embeddingDataType() { + return new arrow.Float32() as apiArrow.Float; + } + async computeSourceEmbeddings(data: string[]) { + return data.map(() => [1, 2, 3]); + } + } - const schema = LanceSchema({ - id: new arrow.Int32(), - text: func.sourceField(new arrow.Utf8() as apiArrow.DataType), - vector: func.vectorField(), - }); - const expectedMetadata = new Map([ - [ - "embedding_functions", - JSON.stringify([ - { - sourceColumn: "text", - vectorColumn: "vector", - name: "MockEmbeddingFunction", - model: { someText: "hello" }, - }, - ]), - ], - ]); - expect(schema.metadata).toEqual(expectedMetadata); + const func = getRegistry() + .get("mock-embedding")! + .create(); + + const schema = LanceSchema({ + id: new arrow.Int32(), + text: func.sourceField(new arrow.Utf8() as apiArrow.DataType), + vector: func.vectorField(), }); - }, -); + + const db = await connect(tmpDir.name); + const table = await db.createTable( + "test", + [ + { id: 1, text: "hello" }, + { id: 2, text: "world" }, + ], + { schema }, + ); + const expected = [ + [1, 2, 3], + [1, 2, 3], + ]; + const actual = await table.query().toArrow(); + const vectors = actual.getChild("vector")!.toArray(); + expect(JSON.parse(JSON.stringify(vectors))).toEqual( + JSON.parse(JSON.stringify(expected)), + ); + }); + test("should error if registering with the same name", async () => { + class MockEmbeddingFunction extends EmbeddingFunction { + toJSON(): object { + return { + someText: "hello", + }; + } + constructor() { + super(); + } + ndims() { + return 3; + } + embeddingDataType() { + return new arrow.Float32() as apiArrow.Float; + } + async computeSourceEmbeddings(data: string[]) { + return data.map(() => [1, 2, 3]); + } + } + register("mock-embedding")(MockEmbeddingFunction); + expect(() => register("mock-embedding")(MockEmbeddingFunction)).toThrow( + 'Embedding function with alias "mock-embedding" already exists', + ); + }); + test("schema should contain correct metadata", async () => { + class MockEmbeddingFunction extends EmbeddingFunction { + toJSON(): object { + return { + someText: "hello", + }; + } + constructor() { + super(); + } + ndims() { + return 3; + } + embeddingDataType() { + return new arrow.Float32() as apiArrow.Float; + } + async computeSourceEmbeddings(data: string[]) { + return data.map(() => [1, 2, 3]); + } + } + const func = new MockEmbeddingFunction(); + + const schema = LanceSchema({ + id: new arrow.Int32(), + text: func.sourceField(new arrow.Utf8() as apiArrow.DataType), + vector: func.vectorField(), + }); + const expectedMetadata = new Map([ + [ + "embedding_functions", + JSON.stringify([ + { + sourceColumn: "text", + vectorColumn: "vector", + name: "MockEmbeddingFunction", + model: { someText: "hello" }, + }, + ]), + ], + ]); + expect(schema.metadata).toEqual(expectedMetadata); + }); +}); diff --git a/nodejs/__test__/table.test.ts b/nodejs/__test__/table.test.ts index fd146169..4e8faa29 100644 --- a/nodejs/__test__/table.test.ts +++ b/nodejs/__test__/table.test.ts @@ -16,11 +16,10 @@ import * as fs from "fs"; import * as path from "path"; import * as tmp from "tmp"; -import * as arrow13 from "apache-arrow-13"; -import * as arrow14 from "apache-arrow-14"; import * as arrow15 from "apache-arrow-15"; import * as arrow16 from "apache-arrow-16"; import * as arrow17 from "apache-arrow-17"; +import * as arrow18 from "apache-arrow-18"; import { Table, connect } from "../lancedb"; import { @@ -44,7 +43,7 @@ import { } from "../lancedb/embedding"; import { Index } from "../lancedb/indices"; -describe.each([arrow13, arrow14, arrow15, arrow16, arrow17])( +describe.each([arrow15, arrow16, arrow17, arrow18])( "Given a table", // biome-ignore lint/suspicious/noExplicitAny: (arrow: any) => { @@ -52,11 +51,10 @@ describe.each([arrow13, arrow14, arrow15, arrow16, arrow17])( let table: Table; const schema: - | import("apache-arrow-13").Schema - | import("apache-arrow-14").Schema | import("apache-arrow-15").Schema | import("apache-arrow-16").Schema - | import("apache-arrow-17").Schema = new arrow.Schema([ + | import("apache-arrow-17").Schema + | import("apache-arrow-18").Schema = new arrow.Schema([ new arrow.Field("id", new arrow.Float64(), true), ]); @@ -939,7 +937,7 @@ describe("when optimizing a dataset", () => { }); }); -describe.each([arrow13, arrow14, arrow15, arrow16, arrow17])( +describe.each([arrow15, arrow16, arrow17, arrow18])( "when optimizing a dataset", // biome-ignore lint/suspicious/noExplicitAny: (arrow: any) => { diff --git a/nodejs/package-lock.json b/nodejs/package-lock.json index 89ace902..a689ac8a 100644 --- a/nodejs/package-lock.json +++ b/nodejs/package-lock.json @@ -31,11 +31,10 @@ "@types/jest": "^29.1.2", "@types/node": "^22.7.4", "@types/tmp": "^0.2.6", - "apache-arrow-13": "npm:apache-arrow@13.0.0", - "apache-arrow-14": "npm:apache-arrow@14.0.0", "apache-arrow-15": "npm:apache-arrow@15.0.0", "apache-arrow-16": "npm:apache-arrow@16.0.0", "apache-arrow-17": "npm:apache-arrow@17.0.0", + "apache-arrow-18": "npm:apache-arrow@18.0.0", "eslint": "^8.57.0", "jest": "^29.7.0", "shx": "^0.3.4", @@ -54,7 +53,7 @@ "openai": "^4.29.2" }, "peerDependencies": { - "apache-arrow": ">=13.0.0 <=17.0.0" + "apache-arrow": ">=15.0.0 <=18.1.0" } }, "node_modules/@75lb/deep-merge": { @@ -5146,12 +5145,6 @@ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "devOptional": true }, - "node_modules/@types/pad-left": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/pad-left/-/pad-left-2.1.1.tgz", - "integrity": "sha512-Xd22WCRBydkGSApl5Bw0PhAOHKSVjNL3E3AwzKaps96IMraPqy5BvZIsBVK6JLwdybUzjHnuWVwpDd0JjTfHXA==", - "dev": true - }, "node_modules/@types/semver": { "version": "7.5.6", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", @@ -5341,74 +5334,6 @@ "arrow2csv": "bin/arrow2csv.cjs" } }, - "node_modules/apache-arrow-13": { - "name": "apache-arrow", - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-13.0.0.tgz", - "integrity": "sha512-3gvCX0GDawWz6KFNC28p65U+zGh/LZ6ZNKWNu74N6CQlKzxeoWHpi4CgEQsgRSEMuyrIIXi1Ea2syja7dwcHvw==", - "dev": true, - "dependencies": { - "@types/command-line-args": "5.2.0", - "@types/command-line-usage": "5.0.2", - "@types/node": "20.3.0", - "@types/pad-left": "2.1.1", - "command-line-args": "5.2.1", - "command-line-usage": "7.0.1", - "flatbuffers": "23.5.26", - "json-bignum": "^0.0.3", - "pad-left": "^2.1.0", - "tslib": "^2.5.3" - }, - "bin": { - "arrow2csv": "bin/arrow2csv.js" - } - }, - "node_modules/apache-arrow-13/node_modules/@types/command-line-args": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", - "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", - "dev": true - }, - "node_modules/apache-arrow-13/node_modules/@types/node": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.0.tgz", - "integrity": "sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ==", - "dev": true - }, - "node_modules/apache-arrow-14": { - "name": "apache-arrow", - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-14.0.0.tgz", - "integrity": "sha512-9cKE24YxkaqAZWJddrVnjUJMLwq6CokOjK+AHpm145rMJNsBZXQkzqouemQyEX0+/iHYRnGym6X6ZgNcHHrcWA==", - "dev": true, - "dependencies": { - "@types/command-line-args": "5.2.0", - "@types/command-line-usage": "5.0.2", - "@types/node": "20.3.0", - "@types/pad-left": "2.1.1", - "command-line-args": "5.2.1", - "command-line-usage": "7.0.1", - "flatbuffers": "23.5.26", - "json-bignum": "^0.0.3", - "pad-left": "^2.1.0", - "tslib": "^2.5.3" - }, - "bin": { - "arrow2csv": "bin/arrow2csv.js" - } - }, - "node_modules/apache-arrow-14/node_modules/@types/command-line-args": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", - "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", - "dev": true - }, - "node_modules/apache-arrow-14/node_modules/@types/node": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.0.tgz", - "integrity": "sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ==", - "dev": true - }, "node_modules/apache-arrow-15": { "name": "apache-arrow", "version": "15.0.0", @@ -5529,6 +5454,54 @@ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true }, + "node_modules/apache-arrow-18": { + "name": "apache-arrow", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-18.0.0.tgz", + "integrity": "sha512-gFlPaqN9osetbB83zC29AbbZqGiCuFH1vyyPseJ+B7SIbfBtESV62mMT/CkiIt77W6ykC/nTWFzTXFs0Uldg4g==", + "dev": true, + "dependencies": { + "@swc/helpers": "^0.5.11", + "@types/command-line-args": "^5.2.3", + "@types/command-line-usage": "^5.0.4", + "@types/node": "^20.13.0", + "command-line-args": "^5.2.1", + "command-line-usage": "^7.0.1", + "flatbuffers": "^24.3.25", + "json-bignum": "^0.0.3", + "tslib": "^2.6.2" + }, + "bin": { + "arrow2csv": "bin/arrow2csv.js" + } + }, + "node_modules/apache-arrow-18/node_modules/@types/command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg==", + "dev": true + }, + "node_modules/apache-arrow-18/node_modules/@types/node": { + "version": "20.17.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.9.tgz", + "integrity": "sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==", + "dev": true, + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/apache-arrow-18/node_modules/flatbuffers": { + "version": "24.3.25", + "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-24.3.25.tgz", + "integrity": "sha512-3HDgPbgiwWMI9zVB7VYBHaMrbOO7Gm0v+yD2FV/sCKj+9NDeVL7BOBYUuhWAQGKWOzBo8S9WdMvV0eixO233XQ==", + "dev": true + }, + "node_modules/apache-arrow-18/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true + }, "node_modules/apache-arrow/node_modules/@types/node": { "version": "20.16.10", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.10.tgz", @@ -8533,18 +8506,6 @@ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "optional": true }, - "node_modules/pad-left": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz", - "integrity": "sha512-HJxs9K9AztdIQIAIa/OIazRAUW/L6B9hbQDxO4X07roW3eo9XqZc2ur9bn1StH9CnbbI9EgvejHQX7CBpCF1QA==", - "dev": true, - "dependencies": { - "repeat-string": "^1.5.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -8885,15 +8846,6 @@ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", diff --git a/nodejs/package.json b/nodejs/package.json index d728d2e0..94350926 100644 --- a/nodejs/package.json +++ b/nodejs/package.json @@ -48,11 +48,10 @@ "@types/jest": "^29.1.2", "@types/node": "^22.7.4", "@types/tmp": "^0.2.6", - "apache-arrow-13": "npm:apache-arrow@13.0.0", - "apache-arrow-14": "npm:apache-arrow@14.0.0", "apache-arrow-15": "npm:apache-arrow@15.0.0", "apache-arrow-16": "npm:apache-arrow@16.0.0", "apache-arrow-17": "npm:apache-arrow@17.0.0", + "apache-arrow-18": "npm:apache-arrow@18.0.0", "eslint": "^8.57.0", "jest": "^29.7.0", "shx": "^0.3.4", @@ -95,6 +94,6 @@ "openai": "^4.29.2" }, "peerDependencies": { - "apache-arrow": ">=13.0.0 <=17.0.0" + "apache-arrow": ">=15.0.0 <=18.1.0" } }