diff --git a/nodejs/__test__/arrow.test.ts b/nodejs/__test__/arrow.test.ts index df02b4936..eba798cf5 100644 --- a/nodejs/__test__/arrow.test.ts +++ b/nodejs/__test__/arrow.test.ts @@ -6,6 +6,9 @@ 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 arrow19 from "apache-arrow-19"; +import * as arrow20 from "apache-arrow-20"; +import * as arrow21 from "apache-arrow-21"; import { Field as CurrentField, @@ -110,16 +113,26 @@ it("preserves field metadata from a provided schema", async function () { expect(roundTripped.schema.fields[0].metadata).toEqual(jsonMetadata); }); -describe.each([arrow15, arrow16, arrow17, arrow18])( +describe.each([arrow15, arrow16, arrow17, arrow18, arrow19, arrow20, arrow21])( "Arrow", ( - arrow: typeof arrow15 | typeof arrow16 | typeof arrow17 | typeof arrow18, + arrow: + | typeof arrow15 + | typeof arrow16 + | typeof arrow17 + | typeof arrow18 + | typeof arrow19 + | typeof arrow20 + | typeof arrow21, ) => { type ApacheArrow = | typeof arrow15 | typeof arrow16 | typeof arrow17 - | typeof arrow18; + | typeof arrow18 + | typeof arrow19 + | typeof arrow20 + | typeof arrow21; const { Schema, Field, diff --git a/nodejs/__test__/registry.test.ts b/nodejs/__test__/registry.test.ts index 973ad8a25..3c2770c23 100644 --- a/nodejs/__test__/registry.test.ts +++ b/nodejs/__test__/registry.test.ts @@ -7,6 +7,9 @@ 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 arrow19 from "apache-arrow-19"; +import * as arrow20 from "apache-arrow-20"; +import * as arrow21 from "apache-arrow-21"; import * as tmp from "tmp"; @@ -18,7 +21,17 @@ import { } from "../lancedb/embedding"; import { getRegistry, register } from "../lancedb/embedding/registry"; -describe.each([arrow15, arrow16, arrow17, arrow18])("LanceSchema", (arrow) => { +const arrowVersions = [ + arrow15, + arrow16, + arrow17, + arrow18, + arrow19, + arrow20, + arrow21, +]; + +describe.each(arrowVersions)("LanceSchema", (arrow) => { test("should preserve input order", async () => { const schema = LanceSchema({ id: new arrow.Int32(), @@ -29,7 +42,7 @@ describe.each([arrow15, arrow16, arrow17, arrow18])("LanceSchema", (arrow) => { }); }); -describe.each([arrow15, arrow16, arrow17, arrow18])("Registry", (arrow) => { +describe.each(arrowVersions)("Registry", (arrow) => { let tmpDir: tmp.DirResult; beforeEach(() => { tmpDir = tmp.dirSync({ unsafeCleanup: true }); diff --git a/nodejs/__test__/table.test.ts b/nodejs/__test__/table.test.ts index 904c282d4..74b750661 100644 --- a/nodejs/__test__/table.test.ts +++ b/nodejs/__test__/table.test.ts @@ -11,6 +11,9 @@ 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 arrow19 from "apache-arrow-19"; +import * as arrow20 from "apache-arrow-20"; +import * as arrow21 from "apache-arrow-21"; import { AutoQuery, @@ -57,7 +60,7 @@ import { } from "../lancedb/query"; import { LocalTable } from "../lancedb/table"; -describe.each([arrow15, arrow16, arrow17, arrow18])( +describe.each([arrow15, arrow16, arrow17, arrow18, arrow19, arrow20, arrow21])( "Given a table", // biome-ignore lint/suspicious/noExplicitAny: (arrow: any) => { @@ -68,7 +71,10 @@ describe.each([arrow15, arrow16, arrow17, arrow18])( | import("apache-arrow-15").Schema | import("apache-arrow-16").Schema | import("apache-arrow-17").Schema - | import("apache-arrow-18").Schema = new arrow.Schema([ + | import("apache-arrow-18").Schema + | import("apache-arrow-19").Schema + | import("apache-arrow-20").Schema + | import("apache-arrow-21").Schema = new arrow.Schema([ new arrow.Field("id", new arrow.Float64(), true), ]); @@ -3203,7 +3209,7 @@ it("passes cleanupOlderThan to the native binding as an absolute timestamp", asy expect(optimize).toHaveBeenCalledWith(cutoff.getTime(), true); }); -describe.each([arrow15, arrow16, arrow17, arrow18])( +describe.each([arrow15, arrow16, arrow17, arrow18, arrow19, arrow20, arrow21])( "when optimizing a dataset", // biome-ignore lint/suspicious/noExplicitAny: (arrow: any) => { diff --git a/nodejs/package.json b/nodejs/package.json index 29bbe4314..b9ed8417b 100644 --- a/nodejs/package.json +++ b/nodejs/package.json @@ -53,6 +53,9 @@ "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", + "apache-arrow-19": "npm:apache-arrow@19.0.1", + "apache-arrow-20": "npm:apache-arrow@20.0.0", + "apache-arrow-21": "npm:apache-arrow@21.2.0", "eslint": "^8.57.0", "jest": "^29.7.0", "shx": "^0.3.4", @@ -102,7 +105,7 @@ }, "peerDependencies": { "@types/node": ">=22", - "apache-arrow": ">=15.0.0 <=18.1.0" + "apache-arrow": ">=15.0.0 <=21.2.0" }, "peerDependenciesMeta": { "@types/node": { diff --git a/nodejs/pnpm-lock.yaml b/nodejs/pnpm-lock.yaml index a03838999..96b8cdeb8 100644 --- a/nodejs/pnpm-lock.yaml +++ b/nodejs/pnpm-lock.yaml @@ -15,7 +15,7 @@ importers: specifier: ^1.9.0 version: 1.9.1 apache-arrow: - specifier: '>=15.0.0 <=18.1.0' + specifier: '>=15.0.0 <=21.2.0' version: 18.1.0 reflect-metadata: specifier: ^0.2.2 @@ -66,6 +66,15 @@ importers: apache-arrow-18: specifier: npm:apache-arrow@18.0.0 version: apache-arrow@18.0.0 + apache-arrow-19: + specifier: npm:apache-arrow@19.0.1 + version: apache-arrow@19.0.1 + apache-arrow-20: + specifier: npm:apache-arrow@20.0.0 + version: apache-arrow@20.0.0 + apache-arrow-21: + specifier: npm:apache-arrow@21.2.0 + version: apache-arrow@21.2.0 eslint: specifier: ^8.57.0 version: 8.57.1 @@ -1703,6 +1712,9 @@ packages: '@types/node@22.7.4': resolution: {integrity: sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==} + '@types/node@25.9.8': + resolution: {integrity: sha512-VfMrScDmMhUJQmd5hArdQnFvK0OIeD36uN2Va1FcpYaLB/BgkgM8Ulc50XtYISPMz7APJ30+N0T5EM0jlcdfRw==} + '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -1844,6 +1856,18 @@ packages: resolution: {integrity: sha512-v/ShMp57iBnBp4lDgV8Jx3d3Q5/Hac25FWmQ98eMahUiHPXcvwIMKJD0hBIgclm/FCG+LwPkAKtkRO1O/W0YGg==} hasBin: true + apache-arrow@19.0.1: + resolution: {integrity: sha512-APmMLzS4qbTivLrPdQXexGM4JRr+0g62QDaobzEvip/FdQIrv2qLy0mD5Qdmw4buydtVJgbFeKR8f59I6PPGDg==} + hasBin: true + + apache-arrow@20.0.0: + resolution: {integrity: sha512-JUeK0jFRUd7rbmrhhzR3O2KXjLaZ4YYYFOptyUfxOsMIoZCPi6bZR58gVi/xi3HTBMPseXm9PXyQ2V916930pA==} + hasBin: true + + apache-arrow@21.2.0: + resolution: {integrity: sha512-Hxe6Agq26gQOM954qpzYSllJBPJl+e16U5CkfuMUhLrNba+5nKkttIVlflaovN6oaTratqMGAO8H5u/aNhmHWQ==} + hasBin: true + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -2033,6 +2057,15 @@ packages: resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} engines: {node: '>=4.0.0'} + command-line-args@6.0.2: + resolution: {integrity: sha512-AIjYVxrV9X752LmPDLbVYv8aMCuHPSLZJXEo2qo/xJfv+NYhaZ4sMSF01rM+gHPaMgvPM0l5D/F+Qx+i2WfSmQ==} + engines: {node: '>=12.20'} + peerDependencies: + '@75lb/nature': latest + peerDependenciesMeta: + '@75lb/nature': + optional: true + command-line-usage@7.0.4: resolution: {integrity: sha512-85UdvzTNx/+s5CkSgBm/0hzP80RFHAa7PsfeADE5ezZF3uHz3/Tqj9gIKGT9PTtpycc3Ua64T0oVulGfKxzfqg==} engines: {node: '>=12.20.0'} @@ -2281,6 +2314,15 @@ packages: resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} engines: {node: '>=4.0.0'} + find-replace@5.0.2: + resolution: {integrity: sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==} + engines: {node: '>=14'} + peerDependencies: + '@75lb/nature': latest + peerDependenciesMeta: + '@75lb/nature': + optional: true + find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -2302,6 +2344,9 @@ packages: flatbuffers@24.12.23: resolution: {integrity: sha512-dLVCAISd5mhls514keQzmEG6QHmUUsNuWsb4tFafIUwvvgDjXhtfAYSKOzt5SWOy+qByV5pbsDZ+Vb7HUOBEdA==} + flatbuffers@25.9.23: + resolution: {integrity: sha512-MI1qs7Lo4Syw0EOzUl0xjs2lsoeqFku44KpngfIduHBYvzm8h2+7K8YMQh1JtVVVrUvhLpNwqVi4DERegUJhPQ==} + flatted@3.4.2: resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} @@ -3345,6 +3390,9 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.24.6: + resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} + unist-util-is@6.0.1: resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} @@ -5505,6 +5553,10 @@ snapshots: dependencies: undici-types: 6.19.8 + '@types/node@25.9.8': + dependencies: + undici-types: 7.24.6 + '@types/stack-utils@2.0.3': {} '@types/tmp@0.2.6': {} @@ -5706,6 +5758,41 @@ snapshots: json-bignum: 0.0.3 tslib: 2.8.1 + apache-arrow@19.0.1: + dependencies: + '@swc/helpers': 0.5.21 + '@types/command-line-args': 5.2.3 + '@types/command-line-usage': 5.0.4 + '@types/node': 20.19.41 + command-line-args: 6.0.2 + command-line-usage: 7.0.4 + flatbuffers: 24.12.23 + json-bignum: 0.0.3 + tslib: 2.8.1 + transitivePeerDependencies: + - '@75lb/nature' + + apache-arrow@20.0.0: + dependencies: + '@swc/helpers': 0.5.21 + '@types/command-line-args': 5.2.3 + '@types/command-line-usage': 5.0.4 + '@types/node': 20.19.41 + command-line-args: 6.0.2 + command-line-usage: 7.0.4 + flatbuffers: 25.9.23 + json-bignum: 0.0.3 + tslib: 2.8.1 + transitivePeerDependencies: + - '@75lb/nature' + + apache-arrow@21.2.0: + dependencies: + '@types/node': 25.9.8 + flatbuffers: 25.9.23 + json-with-bigint: 3.5.8 + tslib: 2.8.1 + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -5906,6 +5993,13 @@ snapshots: lodash.camelcase: 4.3.0 typical: 4.0.0 + command-line-args@6.0.2: + dependencies: + array-back: 6.2.3 + find-replace: 5.0.2 + lodash.camelcase: 4.3.0 + typical: 7.3.0 + command-line-usage@7.0.4: dependencies: array-back: 6.2.3 @@ -6178,6 +6272,8 @@ snapshots: dependencies: array-back: 3.1.0 + find-replace@5.0.2: {} + find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -6201,6 +6297,8 @@ snapshots: flatbuffers@24.12.23: {} + flatbuffers@25.9.23: {} + flatted@3.4.2: {} follow-redirects@1.16.0: {} @@ -7405,6 +7503,8 @@ snapshots: undici-types@6.21.0: {} + undici-types@7.24.6: {} + unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3