New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@singlestore/client

Package Overview
Dependencies
Maintainers
0
Versions
44
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@singlestore/client - npm Package Compare versions

Comparing version 0.0.21 to 0.0.22

68

dist/index.d.ts

@@ -36,3 +36,2 @@ import * as _singlestore_ai from '@singlestore/ai';

}
type ModifyColumnSchema = Partial<Omit<ColumnSchema, "name">>;
declare class Column {

@@ -51,3 +50,3 @@ private _connection;

drop(): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]]>;
modify(schema: ModifyColumnSchema): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]]>;
modify(schema: Partial<Omit<ColumnSchema, "name">>): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]]>;
rename(newName: string): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]]>;

@@ -141,9 +140,3 @@ }

}
type ExtractTableColumnName<T extends TableType> = Extract<keyof T["columns"], string>;
type TableColumnName<T extends TableType> = ExtractTableColumnName<T> | (string & {});
type InsertTableValues<T extends TableType> = Partial<T["columns"]> | Partial<T["columns"]>[];
type SelectTableArgs<T extends TableType> = QueryBuilderArgs<T["columns"]>;
type UpdateTableValues<T extends TableType> = Partial<T["columns"]>;
type UpdateTableFilters<T extends TableType> = QueryFilters<T["columns"]>;
type DeleteTableFilters<T extends TableType> = QueryFilters<T["columns"]>;
type ColumnName<T extends TableType> = Extract<keyof T["columns"], string>;
declare class Table<T extends TableType = any, U extends AI = AI> {

@@ -164,34 +157,27 @@ private _connection;

drop(): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]]>;
column(name: TableColumnName<T>): Column;
column(name: ColumnName<T> | (string & {})): Column;
showColumnsInfo(): Promise<ColumnInfo<Extract<keyof T["columns"], string>>[]>;
addColumn(schema: ColumnSchema): Promise<Column>;
dropColumn(name: TableColumnName<T>): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]]>;
dropColumn(name: ColumnName<T> | (string & {})): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]]>;
truncate(): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]]>;
rename(newName: string): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]]>;
insert(values: InsertTableValues<T>): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]][]>;
select<U extends SelectTableArgs<T>>(...args: U): Promise<(ExtractQueryColumns<T["columns"], ExtractQueryOptions<U>> & RowDataPacket)[]>;
update(values: UpdateTableValues<T>, filters: UpdateTableFilters<T>): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]]>;
delete(filters?: DeleteTableFilters<T>): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]]>;
vectorSearch<U extends QueryBuilderArgs<_S>, _S extends QuerySchema = T["columns"] & {
v_score: number;
}>(...[search, ...args]: [search: {
insert(values: Partial<T["columns"]> | Partial<T["columns"]>[]): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]][]>;
select<U extends QueryBuilderArgs<T["columns"]>>(...args: U): Promise<(ExtractQueryColumns<T["columns"], ExtractQueryOptions<U>> & RowDataPacket)[]>;
update(values: Partial<T["columns"]>, filters: QueryFilters<T["columns"]>): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]]>;
delete(filters?: QueryFilters<T["columns"]>): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]]>;
vectorSearch<A extends [search: {
prompt: string;
vectorColumn: ExtractTableColumnName<T>;
}, ...U]): Promise<(ExtractQueryColumns<_S, ExtractQueryOptions<U>> & {
vectorColumn: ColumnName<T>;
}, ...QueryBuilderArgs<T["columns"]>]>(...args: A): Promise<(ExtractQueryColumns<T["columns"], ExtractQueryOptions<A extends [any, ...infer _A] ? _A extends QueryBuilderArgs<T["columns"]> ? _A : never : never>> & {
v_score: number;
} & RowDataPacket)[]>;
createChatCompletion<Q extends QueryBuilderArgs<_S>, _S extends QuerySchema = T["columns"] & {
v_score: number;
}, _O extends Exclude<Parameters<U["chatCompletions"]["create"]>[1], undefined> = Exclude<Parameters<U["chatCompletions"]["create"]>[1], undefined>>(...[{ prompt, vectorColumn, template, systemRole, ...createChatCompletionOptions }, ...args]: [
search: {
prompt: string;
vectorColumn: ExtractTableColumnName<T>;
template?: string;
} & _O,
...Q
]): Promise<_singlestore_ai.CreateChatCompletionResult<Omit<{
createChatCompletion<K extends Exclude<Parameters<U["chatCompletions"]["create"]>[1], undefined>>(...args: [search: {
prompt: string;
vectorColumn: ExtractTableColumnName<T>;
vectorColumn: ColumnName<T>;
template?: string;
} & _O, "systemRole" | "prompt" | "vectorColumn" | "template"> & {
} & K, ...QueryBuilderArgs<T["columns"]>]): Promise<_singlestore_ai.CreateChatCompletionResult<Omit<{
prompt: string;
vectorColumn: ColumnName<T>;
template?: string;
} & K, "systemRole" | "prompt" | "vectorColumn" | "template"> & {
systemRole: string;

@@ -234,4 +220,3 @@ }>>;

};
type ExtractDatabaseTableName<T extends DatabaseType> = Extract<keyof T["tables"], string>;
type DatabaseTableName<T extends DatabaseType> = ExtractDatabaseTableName<T> | (string & {});
type TableName<T extends DatabaseType> = Extract<keyof T["tables"], string>;
declare class Database<T extends DatabaseType = any, U extends AI = AI> {

@@ -249,3 +234,3 @@ private _connection;

tables: {
columns: ColumnInfo<Extract<keyof T["tables"][Extract<keyof T["tables"], string>]["columns"], string>>[];
columns: ColumnInfo<Extract<keyof (T["tables"][Extract<keyof T["tables"], string>] extends TableType ? T["tables"][Extract<keyof T["tables"], string>] : TableType)["columns"], string>>[];
tableType: string;

@@ -275,6 +260,6 @@ distributed: boolean;

drop(): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]]>;
table<N, K extends DatabaseTableName<T> = DatabaseTableName<T>>(name: K): Table<N extends TableType ? N : T["tables"][K], U>;
table<N, K extends TableName<T> | (string & {}) = TableName<T> | (string & {})>(name: K): Table<N extends TableType ? N : T["tables"][K] extends TableType ? T["tables"][K] : TableType, U>;
showTablesInfo<U extends boolean>(extended?: U): Promise<(U extends true ? TableInfoExtended<Extract<keyof T["tables"], string>> : TableInfo<Extract<keyof T["tables"], string>>)[]>;
createTable<T extends TableType>(schema: TableSchema<T>): Promise<Table<T, U>>;
dropTable(name: DatabaseTableName<T>): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]]>;
dropTable(name: TableName<T> | (string & {})): Promise<[ResultSetHeader, mysql2_promise.FieldPacket[]]>;
query<T extends any[]>(statement: string): Promise<T>;

@@ -296,4 +281,3 @@ }

}
type ExtractDatabaseName<T extends WorkspaceType> = Extract<keyof T["databases"], string>;
type DatabaseName<T extends WorkspaceType> = ExtractDatabaseName<T> | (string & {});
type DatabaseName<T extends WorkspaceType> = Extract<keyof T["databases"], string>;
declare class Workspace<T extends WorkspaceType = any, U extends AI = AI> {

@@ -305,5 +289,5 @@ connection: Connection;

static connect<T extends WorkspaceType = any, U extends AI = AI>({ ai, name, ...config }: ConnectWorkspaceConfig<T, U>): Workspace<T, U>;
database<N, K extends DatabaseName<T> = DatabaseName<T>>(name: K): Database<N extends DatabaseType ? N : T["databases"][K], U>;
database<N, K extends DatabaseName<T> | (string & {}) = DatabaseName<T> | (string & {})>(name: K): Database<N extends DatabaseType ? N : T["databases"][K] extends DatabaseType ? T["databases"][K] : DatabaseType, U>;
createDatabase<T extends DatabaseType>(schema: DatabaseSchema<T>): Promise<Database<T, U>>;
dropDatabase(name: DatabaseName<T>): Promise<[mysql2.ResultSetHeader, mysql2.FieldPacket[]]>;
dropDatabase(name: DatabaseName<T> | (string & {})): Promise<[mysql2.ResultSetHeader, mysql2.FieldPacket[]]>;
showDatabasesInfo<U extends boolean>(extended?: U): Promise<(U extends true ? DatabaseInfoExtended<Extract<keyof T["databases"], string>> : DatabaseInfo<Extract<keyof T["databases"], string>>)[]>;

@@ -323,2 +307,2 @@ }

export { Column, type ColumnInfo, type ColumnSchema, type ColumnType, type ConnectWorkspaceConfig, Connection, type ConnectionConfig, Database, type DatabaseInfo, type DatabaseInfoExtended, type DatabaseName, type DatabaseSchema, type DatabaseTableName, type DatabaseTablesToRecords, type DatabaseType, type DeleteTableFilters, type ExtractDatabaseName, type ExtractDatabaseTableName, type ExtractTableColumnName, type InsertTableValues, type ModifyColumnSchema, QueryBuilder, type QueryBuilderArgs, type QueryFilters, QueryFiltersBuilder, type QueryOptions, QueryOptionsBuilder, type QuerySchema, type SelectTableArgs, SingleStoreClient, type SingleStoreClientConfig, Table, type TableColumnName, type TableInfo, type TableInfoExtended, type TableSchema, type TableType, type UpdateTableFilters, type UpdateTableValues, Workspace, type WorkspaceConfig, type WorkspaceSchema, type WorkspaceType, queryOptionKeys };
export { Column, type ColumnInfo, type ColumnSchema, type ColumnType, type ConnectWorkspaceConfig, Connection, type ConnectionConfig, Database, type DatabaseInfo, type DatabaseInfoExtended, type DatabaseSchema, type DatabaseTablesToRecords, type DatabaseType, QueryBuilder, type QueryBuilderArgs, type QueryFilters, QueryFiltersBuilder, type QueryOptions, QueryOptionsBuilder, type QuerySchema, SingleStoreClient, type SingleStoreClientConfig, Table, type TableInfo, type TableInfoExtended, type TableSchema, type TableType, Workspace, type WorkspaceConfig, type WorkspaceSchema, type WorkspaceType, queryOptionKeys };

@@ -344,4 +344,4 @@ "use strict";

const query = `SELECT ${columns} FROM ${this._path} ${clause}`;
const result = await this._connection.client.execute(query, values);
return result[0];
const [rows] = await this._connection.client.execute(query, values);
return rows;
}

@@ -360,12 +360,9 @@ update(values, filters) {

}
async vectorSearch(...[search, ...args]) {
const { columns, clauses, values } = new QueryBuilder(...args);
async vectorSearch(...args) {
const [search, ...queryBuilderArgs] = args;
const { columns, clauses, values } = new QueryBuilder(...queryBuilderArgs);
const promptEmbedding = (await this.ai.embeddings.create(search.prompt))[0] || [];
let orderByClause = `ORDER BY ${this.vScoreKey} DESC`;
if (clauses.orderBy) {
if (clauses.orderBy.includes(this.vScoreKey)) {
orderByClause = clauses.orderBy;
} else {
orderByClause += clauses.orderBy.replace(/^ORDER BY /, ", ");
}
orderByClause += clauses.orderBy.replace(/^ORDER BY /, ", ");
}

@@ -377,10 +374,11 @@ const query = ` SET @promptEmbedding = '${JSON.stringify(promptEmbedding)}' :> vector(${promptEmbedding.length}) :> blob;

`;
const result = await this._connection.client.execute(query, values);
return result[0][1];
const [rows] = await this._connection.client.execute(query, values);
return rows[1];
}
async createChatCompletion(...[{ prompt, vectorColumn, template, systemRole, ...createChatCompletionOptions }, ...args]) {
async createChatCompletion(...args) {
const [{ prompt, vectorColumn, template, systemRole, ...createChatCompletionOptions }, ...vectorSearchArgs] = args;
const _systemRole = systemRole ?? ` You are a helpful assistant. Answer the user's question based on the context provided. If the context provided doesn't answer the question asked don't answer the user's question. `;
const _template = template ?? `The user asked: <question>
The most similar context: <context>`;
const context = await this.vectorSearch({ prompt, vectorColumn }, ...args);
const context = await this.vectorSearch({ prompt, vectorColumn }, ...vectorSearchArgs);
const _prompt = _template.replace("<question>", prompt).replace("<context>", JSON.stringify(context));

@@ -474,4 +472,4 @@ return this.ai.chatCompletions.create(_prompt, { ...createChatCompletionOptions, systemRole: _systemRole });

const statements = [`USE ${this.name}`, statement].join(";\n");
const result = await this._connection.client.execute(statements);
return result[0].slice(1);
const [rows] = await this._connection.client.execute(statements);
return rows.slice(1);
}

@@ -478,0 +476,0 @@ };

{
"name": "@singlestore/client",
"version": "0.0.21",
"version": "0.0.22",
"license": "Apache-2.0",

@@ -5,0 +5,0 @@ "sideEffects": false,

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc