diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index a33bd5a7..a0d5af2c 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -116,7 +116,7 @@ jobs: set -e npm ci npm run docs - if ! git diff --exit-code -- . ':(exclude)Cargo.lock'; then + if ! git diff --exit-code -- ../ ':(exclude)Cargo.lock'; then echo "Docs need to be updated" echo "Run 'npm run docs', fix any warnings, and commit the changes." exit 1 diff --git a/docs/src/js/classes/Connection.md b/docs/src/js/classes/Connection.md index decaacf0..a99a68e0 100644 --- a/docs/src/js/classes/Connection.md +++ b/docs/src/js/classes/Connection.md @@ -25,6 +25,51 @@ the underlying connection has been closed. ## Methods +### cloneTable() + +```ts +abstract cloneTable( + targetTableName, + sourceUri, + options?): Promise +``` + +Clone a table from a source table. + +A shallow clone creates a new table that shares the underlying data files +with the source table but has its own independent manifest. This allows +both the source and cloned tables to evolve independently while initially +sharing the same data, deletion, and index files. + +#### Parameters + +* **targetTableName**: `string` + The name of the target table to create. + +* **sourceUri**: `string` + The URI of the source table to clone from. + +* **options?** + Clone options. + +* **options.isShallow?**: `boolean` + Whether to perform a shallow clone (defaults to true). + +* **options.sourceTag?**: `string` + The tag of the source table to clone. + +* **options.sourceVersion?**: `number` + The version of the source table to clone. + +* **options.targetNamespace?**: `string`[] + The namespace for the target table (defaults to root namespace). + +#### Returns + +`Promise`<[`Table`](Table.md)> + +*** + ### close() ```ts diff --git a/docs/src/js/functions/makeArrowTable.md b/docs/src/js/functions/makeArrowTable.md index 83389550..949f1cef 100644 --- a/docs/src/js/functions/makeArrowTable.md +++ b/docs/src/js/functions/makeArrowTable.md @@ -13,7 +13,7 @@ function makeArrowTable( metadata?): ArrowTable ``` -An enhanced version of the makeTable function from Apache Arrow +An enhanced version of the apache-arrow makeTable function from Apache Arrow that supports nested fields and embeddings columns. (typically you do not need to call this function. It will be called automatically diff --git a/docs/src/js/globals.md b/docs/src/js/globals.md index a8e6ced5..3f38cb4c 100644 --- a/docs/src/js/globals.md +++ b/docs/src/js/globals.md @@ -78,6 +78,7 @@ - [TableNamesOptions](interfaces/TableNamesOptions.md) - [TableStatistics](interfaces/TableStatistics.md) - [TimeoutConfig](interfaces/TimeoutConfig.md) +- [TlsConfig](interfaces/TlsConfig.md) - [TokenResponse](interfaces/TokenResponse.md) - [UpdateOptions](interfaces/UpdateOptions.md) - [UpdateResult](interfaces/UpdateResult.md) diff --git a/docs/src/js/interfaces/ClientConfig.md b/docs/src/js/interfaces/ClientConfig.md index e6ec0a27..c09764cb 100644 --- a/docs/src/js/interfaces/ClientConfig.md +++ b/docs/src/js/interfaces/ClientConfig.md @@ -40,6 +40,14 @@ optional timeoutConfig: TimeoutConfig; *** +### tlsConfig? + +```ts +optional tlsConfig: TlsConfig; +``` + +*** + ### userAgent? ```ts diff --git a/docs/src/js/interfaces/TlsConfig.md b/docs/src/js/interfaces/TlsConfig.md new file mode 100644 index 00000000..dbc584fc --- /dev/null +++ b/docs/src/js/interfaces/TlsConfig.md @@ -0,0 +1,49 @@ +[**@lancedb/lancedb**](../README.md) • **Docs** + +*** + +[@lancedb/lancedb](../globals.md) / TlsConfig + +# Interface: TlsConfig + +TLS/mTLS configuration for the remote HTTP client. + +## Properties + +### assertHostname? + +```ts +optional assertHostname: boolean; +``` + +Whether to verify the hostname in the server's certificate. + +*** + +### certFile? + +```ts +optional certFile: string; +``` + +Path to the client certificate file (PEM format) for mTLS authentication. + +*** + +### keyFile? + +```ts +optional keyFile: string; +``` + +Path to the client private key file (PEM format) for mTLS authentication. + +*** + +### sslCaCert? + +```ts +optional sslCaCert: string; +``` + +Path to the CA certificate file (PEM format) for server verification. diff --git a/nodejs/__test__/arrow.test.ts b/nodejs/__test__/arrow.test.ts index e002ae3d..f379d3bd 100644 --- a/nodejs/__test__/arrow.test.ts +++ b/nodejs/__test__/arrow.test.ts @@ -1,17 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright The LanceDB Authors - -import { - Bool, - Field, - Int32, - List, - Schema, - Struct, - Uint8, - Utf8, -} from "apache-arrow"; - import * as arrow15 from "apache-arrow-15"; import * as arrow16 from "apache-arrow-16"; import * as arrow17 from "apache-arrow-17"; @@ -25,11 +13,9 @@ import { fromTableToBuffer, makeArrowTable, makeEmptyTable, - tableFromIPC, } from "../lancedb/arrow"; import { EmbeddingFunction, - FieldOptions, FunctionOptions, } from "../lancedb/embedding/embedding_function"; import { EmbeddingFunctionConfig } from "../lancedb/embedding/registry"; diff --git a/nodejs/__test__/remote.test.ts b/nodejs/__test__/remote.test.ts index 9b6ca3d0..ff3826da 100644 --- a/nodejs/__test__/remote.test.ts +++ b/nodejs/__test__/remote.test.ts @@ -7,7 +7,6 @@ import { ClientConfig, Connection, ConnectionOptions, - NativeJsHeaderProvider, TlsConfig, connect, } from "../lancedb"; diff --git a/nodejs/__test__/table.test.ts b/nodejs/__test__/table.test.ts index 5ba5e751..fa6f76b1 100644 --- a/nodejs/__test__/table.test.ts +++ b/nodejs/__test__/table.test.ts @@ -39,7 +39,6 @@ import { Operator, instanceOfFullTextQuery, } from "../lancedb/query"; -import exp = require("constants"); describe.each([arrow15, arrow16, arrow17, arrow18])( "Given a table", diff --git a/nodejs/biome.json b/nodejs/biome.json index 29ca74fa..77695c5b 100644 --- a/nodejs/biome.json +++ b/nodejs/biome.json @@ -48,6 +48,7 @@ "noUnreachableSuper": "error", "noUnsafeFinally": "error", "noUnsafeOptionalChaining": "error", + "noUnusedImports": "error", "noUnusedLabels": "error", "noUnusedVariables": "warn", "useIsNan": "error", diff --git a/nodejs/lancedb/arrow.ts b/nodejs/lancedb/arrow.ts index e73f4ba2..9c1d9575 100644 --- a/nodejs/lancedb/arrow.ts +++ b/nodejs/lancedb/arrow.ts @@ -41,7 +41,6 @@ import { vectorFromArray as badVectorFromArray, makeBuilder, makeData, - makeTable, } from "apache-arrow"; import { Buffers } from "apache-arrow/data"; import { type EmbeddingFunction } from "./embedding/embedding_function"; @@ -279,7 +278,7 @@ export class MakeArrowTableOptions { } /** - * An enhanced version of the {@link makeTable} function from Apache Arrow + * An enhanced version of the apache-arrow makeTable function from Apache Arrow * that supports nested fields and embeddings columns. * * (typically you do not need to call this function. It will be called automatically diff --git a/nodejs/lancedb/connection.ts b/nodejs/lancedb/connection.ts index 2d29cf68..289694f2 100644 --- a/nodejs/lancedb/connection.ts +++ b/nodejs/lancedb/connection.ts @@ -3,7 +3,6 @@ import { Data, - Schema, SchemaLike, TableLike, fromTableToStreamBuffer,