diff --git a/node_modules/kysely/dist/cjs/dialect/dialect-adapter-base.d.ts b/node_modules/kysely/dist/cjs/dialect/dialect-adapter-base.d.ts index dc87916..e3fb628 100644 --- a/node_modules/kysely/dist/cjs/dialect/dialect-adapter-base.d.ts +++ b/node_modules/kysely/dist/cjs/dialect/dialect-adapter-base.d.ts @@ -7,6 +7,14 @@ import { DialectAdapter, MigrationLockOptions } from './dialect-adapter.js'; * they are added and there will be less breaking changes. */ export declare abstract class DialectAdapterBase implements DialectAdapter { + /** + * Whether or not this dialect supports `if not exists` in creation of tables/schemas/views/etc. + * + * If this is false, Kysely's internal migrations tables and schemas are created + * without `if not exists` in migrations. This is not a problem if the dialect + * supports transactional DDL. + */ + get supportsCreateIfNotExists(): boolean; /** * Whether or not this dialect supports transactional DDL. * diff --git a/node_modules/kysely/dist/cjs/dialect/dialect-adapter-base.js b/node_modules/kysely/dist/cjs/dialect/dialect-adapter-base.js index a8a950f..53c47b0 100644 --- a/node_modules/kysely/dist/cjs/dialect/dialect-adapter-base.js +++ b/node_modules/kysely/dist/cjs/dialect/dialect-adapter-base.js @@ -8,6 +8,9 @@ exports.DialectAdapterBase = void 0; * they are added and there will be less breaking changes. */ class DialectAdapterBase { + get supportsCreateIfNotExists() { + return true; + } get supportsTransactionalDdl() { return false; } diff --git a/node_modules/kysely/dist/cjs/dialect/dialect-adapter.d.ts b/node_modules/kysely/dist/cjs/dialect/dialect-adapter.d.ts index 73a925a..73baab0 100644 --- a/node_modules/kysely/dist/cjs/dialect/dialect-adapter.d.ts +++ b/node_modules/kysely/dist/cjs/dialect/dialect-adapter.d.ts @@ -1,4 +1,4 @@ -import { Kysely } from '../kysely.js'; +import { Kysely } from 'kysely/dist/cjs/kysely.js'; /** * A `DialectAdapter` encapsulates all differences between dialects outside * of `Driver` and `QueryCompiler`. @@ -8,6 +8,14 @@ import { Kysely } from '../kysely.js'; * it. For that there's a `supportsTransactionalDdl` boolean in this interface. */ export interface DialectAdapter { + /** + * Whether or not this dialect supports `if not exists` in creation of tables/schemas/views/etc. + * + * If this is false, Kysely's internal migrations tables and schemas are created + * without `if not exists` in migrations. This is not a problem if the dialect + * supports transactional DDL. + */ + readonly supportsCreateIfNotExists: boolean; /** * Whether or not this dialect supports transactional DDL. * diff --git a/node_modules/kysely/dist/cjs/dialect/dialect.d.ts b/node_modules/kysely/dist/cjs/dialect/dialect.d.ts index 58c74f9..a84ed23 100644 --- a/node_modules/kysely/dist/cjs/dialect/dialect.d.ts +++ b/node_modules/kysely/dist/cjs/dialect/dialect.d.ts @@ -1,8 +1,8 @@ -import { Driver } from '../driver/driver.js'; -import { Kysely } from '../kysely.js'; -import { QueryCompiler } from '../query-compiler/query-compiler.js'; -import { DatabaseIntrospector } from './database-introspector.js'; -import { DialectAdapter } from './dialect-adapter.js'; +import { Driver } from 'kysely/dist/cjs/driver/driver.js'; +import { Kysely } from 'kysely/dist/cjs/kysely.js'; +import { QueryCompiler } from 'kysely/dist/cjs/query-compiler/query-compiler.js'; +import { DatabaseIntrospector } from 'kysely/dist/cjs/dialect/database-introspector.js'; +import { DialectAdapter } from 'kysely/dist/cjs/dialect/dialect-adapter.js'; /** * A Dialect is the glue between Kysely and the underlying database engine. * diff --git a/node_modules/kysely/dist/cjs/dialect/postgres/postgres-driver.js b/node_modules/kysely/dist/cjs/dialect/postgres/postgres-driver.js index 4f205f4..a67ea6f 100644 --- a/node_modules/kysely/dist/cjs/dialect/postgres/postgres-driver.js +++ b/node_modules/kysely/dist/cjs/dialect/postgres/postgres-driver.js @@ -28,7 +28,7 @@ class PostgresDriver { // The driver must take care of calling `onCreateConnection` when a new // connection is created. The `pg` module doesn't provide an async hook // for the connection creation. We need to call the method explicitly. - if (this.#config?.onCreateConnection) { + if (this.#config.onCreateConnection) { await this.#config.onCreateConnection(connection); } } diff --git a/node_modules/kysely/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts b/node_modules/kysely/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts index 69a0a7d..550df53 100644 --- a/node_modules/kysely/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +++ b/node_modules/kysely/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts @@ -1,7 +1,7 @@ import { Kysely } from '../../kysely.js'; import { DialectAdapterBase } from '../dialect-adapter-base.js'; import { MigrationLockOptions } from '../dialect-adapter.js'; -export declare class SqliteAdapter implements DialectAdapterBase { +export declare class SqliteAdapter extends DialectAdapterBase { /** * Whether or not this dialect supports transactional DDL. * diff --git a/node_modules/kysely/dist/cjs/dialect/sqlite/sqlite-adapter.js b/node_modules/kysely/dist/cjs/dialect/sqlite/sqlite-adapter.js index 78850a0..ef9f504 100644 --- a/node_modules/kysely/dist/cjs/dialect/sqlite/sqlite-adapter.js +++ b/node_modules/kysely/dist/cjs/dialect/sqlite/sqlite-adapter.js @@ -1,7 +1,8 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SqliteAdapter = void 0; -class SqliteAdapter { +const dialect_adapter_base_js_1 = require("../dialect-adapter-base.js"); +class SqliteAdapter extends dialect_adapter_base_js_1.DialectAdapterBase { get supportsTransactionalDdl() { return false; } diff --git a/node_modules/kysely/dist/cjs/dialect/sqlite/sqlite-dialect-config.d.ts b/node_modules/kysely/dist/cjs/dialect/sqlite/sqlite-dialect-config.d.ts index 810af98..a873682 100644 --- a/node_modules/kysely/dist/cjs/dialect/sqlite/sqlite-dialect-config.d.ts +++ b/node_modules/kysely/dist/cjs/dialect/sqlite/sqlite-dialect-config.d.ts @@ -37,4 +37,5 @@ export interface SqliteStatement { changes: number | bigint; lastInsertRowid: number | bigint; }; + iterate(parameters: ReadonlyArray): IterableIterator; } diff --git a/node_modules/kysely/dist/cjs/dialect/sqlite/sqlite-driver.js b/node_modules/kysely/dist/cjs/dialect/sqlite/sqlite-driver.js index 13594af..99676cf 100644 --- a/node_modules/kysely/dist/cjs/dialect/sqlite/sqlite-driver.js +++ b/node_modules/kysely/dist/cjs/dialect/sqlite/sqlite-driver.js @@ -1,6 +1,7 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SqliteDriver = void 0; +const select_query_node_js_1 = require("../../operation-node/select-query-node.js"); const compiled_query_js_1 = require("../../query-compiler/compiled-query.js"); const object_utils_js_1 = require("../../util/object-utils.js"); class SqliteDriver { @@ -70,8 +71,20 @@ class SqliteConnection { }); } } - async *streamQuery() { - throw new Error("Sqlite driver doesn't support streaming"); + async *streamQuery(compiledQuery, _chunkSize) { + const { sql, parameters, query } = compiledQuery; + const stmt = this.#db.prepare(sql); + if (select_query_node_js_1.SelectQueryNode.is(query)) { + const iter = stmt.iterate(parameters); + for (const row of iter) { + yield { + rows: [row], + }; + } + } + else { + throw new Error('Sqlite driver only supports streaming of select queries'); + } } } class ConnectionMutex { diff --git a/node_modules/kysely/dist/cjs/driver/connection-provider.d.ts b/node_modules/kysely/dist/cjs/driver/connection-provider.d.ts index a75244c..8a5003c 100644 --- a/node_modules/kysely/dist/cjs/driver/connection-provider.d.ts +++ b/node_modules/kysely/dist/cjs/driver/connection-provider.d.ts @@ -1,4 +1,4 @@ -import { DatabaseConnection } from './database-connection.js'; +import { DatabaseConnection } from 'kysely/dist/cjs/driver/database-connection.js'; export interface ConnectionProvider { /** * Provides a connection for the callback and takes care of disposing diff --git a/node_modules/kysely/dist/cjs/driver/database-connection.d.ts b/node_modules/kysely/dist/cjs/driver/database-connection.d.ts index 8a4766e..2902362 100644 --- a/node_modules/kysely/dist/cjs/driver/database-connection.d.ts +++ b/node_modules/kysely/dist/cjs/driver/database-connection.d.ts @@ -1,4 +1,4 @@ -import { CompiledQuery } from '../query-compiler/compiled-query.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; /** * A single connection to the database engine. * diff --git a/node_modules/kysely/dist/cjs/driver/driver.d.ts b/node_modules/kysely/dist/cjs/driver/driver.d.ts index 00babcb..5f317f4 100644 --- a/node_modules/kysely/dist/cjs/driver/driver.d.ts +++ b/node_modules/kysely/dist/cjs/driver/driver.d.ts @@ -1,5 +1,5 @@ -import { ArrayItemType } from '../util/type-utils.js'; -import { DatabaseConnection } from './database-connection.js'; +import { ArrayItemType } from 'kysely/dist/cjs/util/type-utils.js'; +import { DatabaseConnection } from 'kysely/dist/cjs/driver/database-connection.js'; /** * A Driver creates and releases {@link DatabaseConnection | database connections} * and is also responsible for connection pooling (if the dialect supports pooling). @@ -40,5 +40,5 @@ export interface Driver { export interface TransactionSettings { readonly isolationLevel?: IsolationLevel; } -export declare const TRANSACTION_ISOLATION_LEVELS: readonly ["read uncommitted", "read committed", "repeatable read", "serializable"]; +export declare const TRANSACTION_ISOLATION_LEVELS: readonly ["read uncommitted", "read committed", "repeatable read", "serializable", "snapshot"]; export type IsolationLevel = ArrayItemType; diff --git a/node_modules/kysely/dist/cjs/driver/driver.js b/node_modules/kysely/dist/cjs/driver/driver.js index 8acf3ea..80b9c33 100644 --- a/node_modules/kysely/dist/cjs/driver/driver.js +++ b/node_modules/kysely/dist/cjs/driver/driver.js @@ -6,4 +6,5 @@ exports.TRANSACTION_ISOLATION_LEVELS = [ 'read committed', 'repeatable read', 'serializable', + 'snapshot', ]; diff --git a/node_modules/kysely/dist/cjs/driver/single-connection-provider.js b/node_modules/kysely/dist/cjs/driver/single-connection-provider.js index cf064c4..db6bca0 100644 --- a/node_modules/kysely/dist/cjs/driver/single-connection-provider.js +++ b/node_modules/kysely/dist/cjs/driver/single-connection-provider.js @@ -1,6 +1,7 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SingleConnectionProvider = void 0; +const ignoreError = () => { }; class SingleConnectionProvider { #connection; #runningPromise; @@ -9,17 +10,15 @@ class SingleConnectionProvider { } async provideConnection(consumer) { while (this.#runningPromise) { - await this.#runningPromise; + await this.#runningPromise.catch(ignoreError); } - const promise = this.#run(consumer); - this.#runningPromise = promise - .then(() => { - this.#runningPromise = undefined; - }) - .catch(() => { + // `#runningPromise` must be set to undefined before it's + // resolved or rejected. Otherwise the while loop above + // will misbehave. + this.#runningPromise = this.#run(consumer).finally(() => { this.#runningPromise = undefined; }); - return promise; + return this.#runningPromise; } // Run the runner in an async function to make sure it doesn't // throw synchronous errors. diff --git a/node_modules/kysely/dist/cjs/dynamic/dynamic-reference-builder.d.ts b/node_modules/kysely/dist/cjs/dynamic/dynamic-reference-builder.d.ts index 650ce82..5c6fec7 100644 --- a/node_modules/kysely/dist/cjs/dynamic/dynamic-reference-builder.d.ts +++ b/node_modules/kysely/dist/cjs/dynamic/dynamic-reference-builder.d.ts @@ -1,5 +1,5 @@ -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { SimpleReferenceExpressionNode } from '../operation-node/simple-reference-expression-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { SimpleReferenceExpressionNode } from 'kysely/dist/cjs/operation-node/simple-reference-expression-node.js'; export declare class DynamicReferenceBuilder implements OperationNodeSource { #private; get dynamicReference(): string; diff --git a/node_modules/kysely/dist/cjs/dynamic/dynamic.d.ts b/node_modules/kysely/dist/cjs/dynamic/dynamic.d.ts index f32b5ba..da5a1b7 100644 --- a/node_modules/kysely/dist/cjs/dynamic/dynamic.d.ts +++ b/node_modules/kysely/dist/cjs/dynamic/dynamic.d.ts @@ -1,4 +1,4 @@ -import { DynamicReferenceBuilder } from './dynamic-reference-builder.js'; +import { DynamicReferenceBuilder } from 'kysely/dist/cjs/dynamic/dynamic-reference-builder.js'; export declare class DynamicModule { /** * Creates a dynamic reference to a column that is not know at compile time. diff --git a/node_modules/kysely/dist/cjs/expression/expression-builder.d.ts b/node_modules/kysely/dist/cjs/expression/expression-builder.d.ts index 7b4a340..ba5c3a0 100644 --- a/node_modules/kysely/dist/cjs/expression/expression-builder.d.ts +++ b/node_modules/kysely/dist/cjs/expression/expression-builder.d.ts @@ -1,19 +1,20 @@ -import { SelectQueryBuilder } from '../query-builder/select-query-builder.js'; -import { TableExpression, From, FromTables, ExtractTableAlias, AnyAliasedTable, PickTableWithAlias } from '../parser/table-parser.js'; -import { FunctionModule } from '../query-builder/function-module.js'; -import { ExtractTypeFromReferenceExpression, ReferenceExpression, SimpleReferenceExpression, StringReference } from '../parser/reference-parser.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { BinaryOperatorExpression, ComparisonOperatorExpression, FilterObject, OperandValueExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js'; -import { Expression } from './expression.js'; -import { ExpressionWrapper } from './expression-wrapper.js'; -import { ComparisonOperator, JSONOperatorWith$, UnaryOperator } from '../operation-node/operator-node.js'; -import { SqlBool } from '../util/type-utils.js'; -import { ExtractTypeFromValueExpression } from '../parser/value-parser.js'; -import { CaseBuilder } from '../query-builder/case-builder.js'; -import { JSONPathBuilder } from '../query-builder/json-path-builder.js'; -import { OperandExpression } from '../parser/expression-parser.js'; -import { CallbackSelection, SelectCallback, SelectExpression, Selection } from '../parser/select-parser.js'; -import { RefTuple2, RefTuple3, RefTuple4, RefTuple5, ValTuple2, ValTuple3, ValTuple4, ValTuple5 } from '../parser/tuple-parser.js'; +import { SelectQueryBuilder } from 'kysely/dist/cjs/query-builder/select-query-builder.js'; +import { TableExpression, From, FromTables, ExtractTableAlias, AnyAliasedTable, PickTableWithAlias } from 'kysely/dist/cjs/parser/table-parser.js'; +import { FunctionModule } from 'kysely/dist/cjs/query-builder/function-module.js'; +import { ExtractTypeFromReferenceExpression, ReferenceExpression, SimpleReferenceExpression, StringReference } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { BinaryOperatorExpression, ComparisonOperatorExpression, FilterObject, OperandValueExpression, OperandValueExpressionOrList } from 'kysely/dist/cjs/parser/binary-operation-parser.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { ExpressionWrapper } from 'kysely/dist/cjs/expression/expression-wrapper.js'; +import { ComparisonOperator, JSONOperatorWith$, UnaryOperator } from 'kysely/dist/cjs/operation-node/operator-node.js'; +import { SqlBool } from 'kysely/dist/cjs/util/type-utils.js'; +import { ExtractTypeFromValueExpression } from 'kysely/dist/cjs/parser/value-parser.js'; +import { CaseBuilder } from 'kysely/dist/cjs/query-builder/case-builder.js'; +import { JSONPathBuilder } from 'kysely/dist/cjs/query-builder/json-path-builder.js'; +import { OperandExpression } from 'kysely/dist/cjs/parser/expression-parser.js'; +import { CallbackSelection, SelectCallback, SelectExpression, Selection } from 'kysely/dist/cjs/parser/select-parser.js'; +import { RefTuple2, RefTuple3, RefTuple4, RefTuple5, ValTuple2, ValTuple3, ValTuple4, ValTuple5 } from 'kysely/dist/cjs/parser/tuple-parser.js'; +import { Selectable } from 'kysely/dist/cjs/util/column-type.js'; export interface ExpressionBuilder { /** * Creates a binary expression. @@ -344,6 +345,30 @@ export interface ExpressionBuilder { */ ref>(reference: RE): ExpressionWrapper>; ref>(reference: RE, op: JSONOperatorWith$): JSONPathBuilder>; + /** + * Creates a table reference. + * + * ```ts + * db.selectFrom('person') + * .innerJoin('pet', 'pet.owner_id', 'person.id') + * .select(eb => [ + * 'person.id', + * sql`jsonb_agg(${eb.table('pet')})`.as('pets') + * ]) + * .groupBy('person.id') + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * select "person"."id", jsonb_agg("pet") as "pets" + * from "person" + * inner join "pet" on "pet"."owner_id" = "person"."id" + * group by "person"."id" + * ``` + */ + table(table: T): ExpressionWrapper>; /** * Returns a value expression. * diff --git a/node_modules/kysely/dist/cjs/expression/expression-builder.js b/node_modules/kysely/dist/cjs/expression/expression-builder.js index 172dfab..cdcef14 100644 --- a/node_modules/kysely/dist/cjs/expression/expression-builder.js +++ b/node_modules/kysely/dist/cjs/expression/expression-builder.js @@ -60,8 +60,11 @@ function createExpressionBuilder(executor = noop_query_executor_js_1.NOOP_QUERY_ } return new json_path_builder_js_1.JSONPathBuilder((0, reference_parser_js_1.parseJSONReference)(reference, op)); }, + table(table) { + return new expression_wrapper_js_1.ExpressionWrapper((0, table_parser_js_1.parseTable)(table)); + }, val(value) { - return new expression_wrapper_js_1.ExpressionWrapper((0, value_parser_js_1.parseValueExpressionOrList)(value)); + return new expression_wrapper_js_1.ExpressionWrapper((0, value_parser_js_1.parseValueExpression)(value)); }, refTuple(...values) { return new expression_wrapper_js_1.ExpressionWrapper(tuple_node_js_1.TupleNode.create(values.map(reference_parser_js_1.parseReferenceExpression))); diff --git a/node_modules/kysely/dist/cjs/expression/expression-wrapper.d.ts b/node_modules/kysely/dist/cjs/expression/expression-wrapper.d.ts index 19799fd..d3c7b9f 100644 --- a/node_modules/kysely/dist/cjs/expression/expression-wrapper.d.ts +++ b/node_modules/kysely/dist/cjs/expression/expression-wrapper.d.ts @@ -1,14 +1,14 @@ -import { AliasNode } from '../operation-node/alias-node.js'; -import { AndNode } from '../operation-node/and-node.js'; -import { OperationNode } from '../operation-node/operation-node.js'; -import { OrNode } from '../operation-node/or-node.js'; -import { ParensNode } from '../operation-node/parens-node.js'; -import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js'; -import { OperandExpression } from '../parser/expression-parser.js'; -import { ReferenceExpression } from '../parser/reference-parser.js'; -import { KyselyTypeError } from '../util/type-error.js'; -import { SqlBool } from '../util/type-utils.js'; -import { AliasableExpression, AliasedExpression, Expression } from './expression.js'; +import { AliasNode } from 'kysely/dist/cjs/operation-node/alias-node.js'; +import { AndNode } from 'kysely/dist/cjs/operation-node/and-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { OrNode } from 'kysely/dist/cjs/operation-node/or-node.js'; +import { ParensNode } from 'kysely/dist/cjs/operation-node/parens-node.js'; +import { ComparisonOperatorExpression, OperandValueExpressionOrList } from 'kysely/dist/cjs/parser/binary-operation-parser.js'; +import { OperandExpression } from 'kysely/dist/cjs/parser/expression-parser.js'; +import { ReferenceExpression } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { KyselyTypeError } from 'kysely/dist/cjs/util/type-error.js'; +import { SqlBool } from 'kysely/dist/cjs/util/type-utils.js'; +import { AliasableExpression, AliasedExpression, Expression } from 'kysely/dist/cjs/expression/expression.js'; export declare class ExpressionWrapper implements AliasableExpression { #private; constructor(node: OperationNode); diff --git a/node_modules/kysely/dist/cjs/expression/expression.d.ts b/node_modules/kysely/dist/cjs/expression/expression.d.ts index 336ff2a..426f092 100644 --- a/node_modules/kysely/dist/cjs/expression/expression.d.ts +++ b/node_modules/kysely/dist/cjs/expression/expression.d.ts @@ -1,6 +1,6 @@ -import { AliasNode } from '../operation-node/alias-node.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { OperationNode } from '../operation-node/operation-node.js'; +import { AliasNode } from 'kysely/dist/cjs/operation-node/alias-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; /** * `Expression` represents an arbitrary SQL expression with a type. * diff --git a/node_modules/kysely/dist/cjs/helpers/sqlite.d.ts b/node_modules/kysely/dist/cjs/helpers/sqlite.d.ts index 6d18663..35715c2 100644 --- a/node_modules/kysely/dist/cjs/helpers/sqlite.d.ts +++ b/node_modules/kysely/dist/cjs/helpers/sqlite.d.ts @@ -1,7 +1,7 @@ -import { Expression } from '../expression/expression.js'; -import { SelectQueryBuilderExpression } from '../query-builder/select-query-builder-expression.js'; -import { RawBuilder } from '../raw-builder/raw-builder.js'; -import { Simplify } from '../util/type-utils.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { SelectQueryBuilderExpression } from 'kysely/dist/cjs/query-builder/select-query-builder-expression.js'; +import { RawBuilder } from 'kysely/dist/cjs/raw-builder/raw-builder.js'; +import { Simplify } from 'kysely/dist/cjs/util/type-utils.js'; /** * A SQLite helper for aggregating a subquery into a JSON array. * diff --git a/node_modules/kysely/dist/cjs/index.d.ts b/node_modules/kysely/dist/cjs/index.d.ts index cf166f8..37cf701 100644 --- a/node_modules/kysely/dist/cjs/index.d.ts +++ b/node_modules/kysely/dist/cjs/index.d.ts @@ -72,6 +72,12 @@ export * from './dialect/postgres/postgres-dialect.js'; export * from './dialect/sqlite/sqlite-query-compiler.js'; export * from './dialect/sqlite/sqlite-introspector.js'; export * from './dialect/sqlite/sqlite-adapter.js'; +export * from './dialect/mssql/mssql-adapter.js'; +export * from './dialect/mssql/mssql-dialect-config.js'; +export * from './dialect/mssql/mssql-dialect.js'; +export * from './dialect/mssql/mssql-driver.js'; +export * from './dialect/mssql/mssql-introspector.js'; +export * from './dialect/mssql/mssql-query-compiler.js'; export * from './query-compiler/default-query-compiler.js'; export * from './query-compiler/query-compiler.js'; export * from './migration/migrator.js'; @@ -176,7 +182,7 @@ export * from './util/compilable.js'; export * from './util/explainable.js'; export * from './util/streamable.js'; export * from './util/log.js'; -export { AnyAliasedColumn, AnyAliasedColumnWithTable, AnyColumn, AnyColumnWithTable, Equals, UnknownRow, Simplify, SqlBool, } from './util/type-utils.js'; +export { AnyAliasedColumn, AnyAliasedColumnWithTable, AnyColumn, AnyColumnWithTable, Equals, UnknownRow, Simplify, SqlBool, Nullable, } from './util/type-utils.js'; export * from './util/infer-result.js'; export { logOnce } from './util/log-once.js'; export { SelectExpression, SelectCallback, SelectArg, Selection, CallbackSelection, } from './parser/select-parser.js'; diff --git a/node_modules/kysely/dist/cjs/kysely.d.ts b/node_modules/kysely/dist/cjs/kysely.d.ts index 52e909a..b10152e 100644 --- a/node_modules/kysely/dist/cjs/kysely.d.ts +++ b/node_modules/kysely/dist/cjs/kysely.d.ts @@ -1,21 +1,21 @@ -import { Dialect } from './dialect/dialect.js'; -import { SchemaModule } from './schema/schema.js'; -import { DynamicModule } from './dynamic/dynamic.js'; -import { QueryExecutor } from './query-executor/query-executor.js'; -import { QueryCreator } from './query-creator.js'; -import { KyselyPlugin } from './plugin/kysely-plugin.js'; -import { DatabaseIntrospector } from './dialect/database-introspector.js'; -import { Driver, IsolationLevel } from './driver/driver.js'; -import { FunctionModule } from './query-builder/function-module.js'; -import { LogConfig } from './util/log.js'; -import { QueryExecutorProvider } from './query-executor/query-executor-provider.js'; -import { QueryResult } from './driver/database-connection.js'; -import { CompiledQuery } from './query-compiler/compiled-query.js'; -import { QueryId } from './util/query-id.js'; -import { Compilable } from './util/compilable.js'; -import { CaseBuilder } from './query-builder/case-builder.js'; -import { Expression } from './expression/expression.js'; -import { DrainOuterGeneric } from './util/type-utils.js'; +import { Dialect } from 'kysely/dist/cjs/dialect/dialect.js'; +import { SchemaModule } from 'kysely/dist/cjs/schema/schema.js'; +import { DynamicModule } from 'kysely/dist/cjs/dynamic/dynamic.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { QueryCreator } from 'kysely/dist/cjs/query-creator.js'; +import { KyselyPlugin } from 'kysely/dist/cjs/plugin/kysely-plugin.js'; +import { DatabaseIntrospector } from 'kysely/dist/cjs/dialect/database-introspector.js'; +import { Driver, IsolationLevel } from 'kysely/dist/cjs/driver/driver.js'; +import { FunctionModule } from 'kysely/dist/cjs/query-builder/function-module.js'; +import { LogConfig } from 'kysely/dist/cjs/util/log.js'; +import { QueryExecutorProvider } from 'kysely/dist/cjs/query-executor/query-executor-provider.js'; +import { QueryResult } from 'kysely/dist/cjs/driver/database-connection.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { CaseBuilder } from 'kysely/dist/cjs/query-builder/case-builder.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { DrainOuterGeneric } from 'kysely/dist/cjs/util/type-utils.js'; /** * The main Kysely class. * @@ -66,7 +66,7 @@ export declare class Kysely extends QueryCreator implements QueryExecuto /** * Returns the {@link SchemaModule} module for building database schema. */ - get schema(): SchemaModule; + get schema(): SchemaModule; /** * Returns a the {@link DynamicModule} module. * diff --git a/node_modules/kysely/dist/cjs/migration/migrator.js b/node_modules/kysely/dist/cjs/migration/migrator.js index 76f2d83..6f1c144 100644 --- a/node_modules/kysely/dist/cjs/migration/migrator.js +++ b/node_modules/kysely/dist/cjs/migration/migrator.js @@ -220,10 +220,7 @@ class Migrator { } if (!(await this.#doesSchemaExists())) { try { - await this.#props.db.schema - .createSchema(this.#migrationTableSchema) - .ifNotExists() - .execute(); + await this.#createIfNotExists(this.#props.db.schema.createSchema(this.#migrationTableSchema)); } catch (error) { // At least on PostgreSQL, `if not exists` doesn't guarantee the `create schema` @@ -239,20 +236,15 @@ class Migrator { if (!(await this.#doesTableExists(this.#migrationTable))) { try { if (this.#migrationTableSchema) { - await this.#props.db.schema - .createSchema(this.#migrationTableSchema) - .ifNotExists() - .execute(); + await this.#createIfNotExists(this.#props.db.schema.createSchema(this.#migrationTableSchema)); } - await this.#props.db.schema + await this.#createIfNotExists(this.#props.db.schema .withPlugin(this.#schemaPlugin) .createTable(this.#migrationTable) - .ifNotExists() .addColumn('name', 'varchar(255)', (col) => col.notNull().primaryKey()) // The migration run time as ISO string. This is not a real date type as we // can't know which data type is supported by all future dialects. - .addColumn('timestamp', 'varchar(255)', (col) => col.notNull()) - .execute(); + .addColumn('timestamp', 'varchar(255)', (col) => col.notNull())); } catch (error) { // At least on PostgreSQL, `if not exists` doesn't guarantee the `create table` @@ -267,13 +259,11 @@ class Migrator { async #ensureMigrationLockTableExists() { if (!(await this.#doesTableExists(this.#migrationLockTable))) { try { - await this.#props.db.schema + await this.#createIfNotExists(this.#props.db.schema .withPlugin(this.#schemaPlugin) .createTable(this.#migrationLockTable) - .ifNotExists() .addColumn('id', 'varchar(255)', (col) => col.notNull().primaryKey()) - .addColumn('is_locked', 'integer', (col) => col.notNull().defaultTo(0)) - .execute(); + .addColumn('is_locked', 'integer', (col) => col.notNull().defaultTo(0))); } catch (error) { // At least on PostgreSQL, `if not exists` doesn't guarantee the `create table` @@ -481,6 +471,12 @@ class Migrator { } return { results }; } + async #createIfNotExists(qb) { + if (this.#props.db.getExecutor().adapter.supportsCreateIfNotExists) { + qb = qb.ifNotExists(); + } + await qb.execute(); + } } exports.Migrator = Migrator; class MigrationResultSetError extends Error { diff --git a/node_modules/kysely/dist/cjs/operation-node/add-column-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/add-column-node.d.ts index 03b5cff..fd8cd43 100644 --- a/node_modules/kysely/dist/cjs/operation-node/add-column-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/add-column-node.d.ts @@ -1,5 +1,5 @@ -import { ColumnDefinitionNode } from './column-definition-node.js'; -import { OperationNode } from './operation-node.js'; +import { ColumnDefinitionNode } from 'kysely/dist/cjs/operation-node/column-definition-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface AddColumnNode extends OperationNode { readonly kind: 'AddColumnNode'; readonly column: ColumnDefinitionNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/add-constraint-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/add-constraint-node.d.ts index a342b5b..aa7c2bd 100644 --- a/node_modules/kysely/dist/cjs/operation-node/add-constraint-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/add-constraint-node.d.ts @@ -1,5 +1,5 @@ -import { OperationNode } from './operation-node.js'; -import { ConstraintNode } from './constraint-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { ConstraintNode } from 'kysely/dist/cjs/operation-node/constraint-node.js'; export interface AddConstraintNode extends OperationNode { readonly kind: 'AddConstraintNode'; readonly constraint: ConstraintNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/add-index-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/add-index-node.d.ts new file mode 100644 index 0000000..5328a2a --- /dev/null +++ b/node_modules/kysely/dist/cjs/operation-node/add-index-node.d.ts @@ -0,0 +1,21 @@ +import { IdentifierNode } from 'kysely/dist/cjs/operation-node/identifier-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { RawNode } from 'kysely/dist/cjs/operation-node/raw-node.js'; +export type AddIndexNodeProps = Omit; +export interface AddIndexNode extends OperationNode { + readonly kind: 'AddIndexNode'; + readonly name: IdentifierNode; + readonly columns?: OperationNode[]; + readonly unique?: boolean; + readonly using?: RawNode; + readonly ifNotExists?: boolean; +} +/** + * @internal + */ +export declare const AddIndexNode: Readonly<{ + is(node: OperationNode): node is AddIndexNode; + create(name: string): AddIndexNode; + cloneWith(node: AddIndexNode, props: AddIndexNodeProps): AddIndexNode; + cloneWithColumns(node: AddIndexNode, columns: OperationNode[]): AddIndexNode; +}>; diff --git a/node_modules/kysely/dist/cjs/operation-node/add-index-node.js b/node_modules/kysely/dist/cjs/operation-node/add-index-node.js new file mode 100644 index 0000000..0341e28 --- /dev/null +++ b/node_modules/kysely/dist/cjs/operation-node/add-index-node.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AddIndexNode = void 0; +const object_utils_js_1 = require("../util/object-utils.js"); +const identifier_node_js_1 = require("./identifier-node.js"); +/** + * @internal + */ +exports.AddIndexNode = (0, object_utils_js_1.freeze)({ + is(node) { + return node.kind === 'AddIndexNode'; + }, + create(name) { + return (0, object_utils_js_1.freeze)({ + kind: 'AddIndexNode', + name: identifier_node_js_1.IdentifierNode.create(name) + }); + }, + cloneWith(node, props) { + return (0, object_utils_js_1.freeze)({ + ...node, + ...props, + }); + }, + cloneWithColumns(node, columns) { + return (0, object_utils_js_1.freeze)({ + ...node, + columns: [...(node.columns || []), ...columns], + }); + }, +}); diff --git a/node_modules/kysely/dist/cjs/operation-node/aggregate-function-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/aggregate-function-node.d.ts index a2a6857..b85dba9 100644 --- a/node_modules/kysely/dist/cjs/operation-node/aggregate-function-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/aggregate-function-node.d.ts @@ -1,6 +1,6 @@ -import { OperationNode } from './operation-node.js'; -import { OverNode } from './over-node.js'; -import { WhereNode } from './where-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { OverNode } from 'kysely/dist/cjs/operation-node/over-node.js'; +import { WhereNode } from 'kysely/dist/cjs/operation-node/where-node.js'; export interface AggregateFunctionNode extends OperationNode { readonly kind: 'AggregateFunctionNode'; readonly func: string; diff --git a/node_modules/kysely/dist/cjs/operation-node/alias-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/alias-node.d.ts index 552c69b..acd28e0 100644 --- a/node_modules/kysely/dist/cjs/operation-node/alias-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/alias-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface AliasNode extends OperationNode { readonly kind: 'AliasNode'; readonly node: OperationNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/alter-column-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/alter-column-node.d.ts index e888419..07d95d4 100644 --- a/node_modules/kysely/dist/cjs/operation-node/alter-column-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/alter-column-node.d.ts @@ -1,6 +1,6 @@ -import { OperationNode } from './operation-node.js'; -import { ColumnNode } from './column-node.js'; -import { RawNode } from './raw-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { ColumnNode } from 'kysely/dist/cjs/operation-node/column-node.js'; +import { RawNode } from 'kysely/dist/cjs/operation-node/raw-node.js'; export type AlterColumnNodeProps = Omit; export interface AlterColumnNode extends OperationNode { readonly kind: 'AlterColumnNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/alter-table-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/alter-table-node.d.ts index 5b03535..0f2da61 100644 --- a/node_modules/kysely/dist/cjs/operation-node/alter-table-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/alter-table-node.d.ts @@ -1,14 +1,16 @@ -import { OperationNode } from './operation-node.js'; -import { AddColumnNode } from './add-column-node.js'; -import { DropColumnNode } from './drop-column-node.js'; -import { TableNode } from './table-node.js'; -import { IdentifierNode } from './identifier-node.js'; -import { RenameColumnNode } from './rename-column-node.js'; -import { AlterColumnNode } from './alter-column-node.js'; -import { AddConstraintNode } from './add-constraint-node.js'; -import { DropConstraintNode } from './drop-constraint-node.js'; -import { ModifyColumnNode } from './modify-column-node.js'; -export type AlterTableNodeTableProps = Pick; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { AddColumnNode } from 'kysely/dist/cjs/operation-node/add-column-node.js'; +import { DropColumnNode } from 'kysely/dist/cjs/operation-node/drop-column-node.js'; +import { TableNode } from 'kysely/dist/cjs/operation-node/table-node.js'; +import { IdentifierNode } from 'kysely/dist/cjs/operation-node/identifier-node.js'; +import { RenameColumnNode } from 'kysely/dist/cjs/operation-node/rename-column-node.js'; +import { AlterColumnNode } from 'kysely/dist/cjs/operation-node/alter-column-node.js'; +import { AddConstraintNode } from 'kysely/dist/cjs/operation-node/add-constraint-node.js'; +import { DropConstraintNode } from 'kysely/dist/cjs/operation-node/drop-constraint-node.js'; +import { ModifyColumnNode } from 'kysely/dist/cjs/operation-node/modify-column-node.js'; +import { DropIndexNode } from 'kysely/dist/cjs/operation-node/drop-index-node.js'; +import { AddIndexNode } from 'kysely/dist/cjs/operation-node/add-index-node.js'; +export type AlterTableNodeTableProps = Pick; export type AlterTableColumnAlterationNode = RenameColumnNode | AddColumnNode | DropColumnNode | AlterColumnNode | ModifyColumnNode; export interface AlterTableNode extends OperationNode { readonly kind: 'AlterTableNode'; @@ -18,6 +20,8 @@ export interface AlterTableNode extends OperationNode { readonly columnAlterations?: ReadonlyArray; readonly addConstraint?: AddConstraintNode; readonly dropConstraint?: DropConstraintNode; + readonly addIndex?: AddIndexNode; + readonly dropIndex?: DropIndexNode; } /** * @internal diff --git a/node_modules/kysely/dist/cjs/operation-node/and-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/and-node.d.ts index ba1ffa4..5e24df8 100644 --- a/node_modules/kysely/dist/cjs/operation-node/and-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/and-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface AndNode extends OperationNode { readonly kind: 'AndNode'; readonly left: OperationNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/binary-operation-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/binary-operation-node.d.ts index c4adeab..b9087e9 100644 --- a/node_modules/kysely/dist/cjs/operation-node/binary-operation-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/binary-operation-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface BinaryOperationNode extends OperationNode { readonly kind: 'BinaryOperationNode'; readonly leftOperand: OperationNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/case-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/case-node.d.ts index 9a6dec1..5b55a5d 100644 --- a/node_modules/kysely/dist/cjs/operation-node/case-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/case-node.d.ts @@ -1,5 +1,5 @@ -import { OperationNode } from './operation-node.js'; -import { WhenNode } from './when-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { WhenNode } from 'kysely/dist/cjs/operation-node/when-node.js'; export interface CaseNode extends OperationNode { readonly kind: 'CaseNode'; readonly value?: OperationNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/check-constraint-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/check-constraint-node.d.ts index 6e74d7c..24ec7bb 100644 --- a/node_modules/kysely/dist/cjs/operation-node/check-constraint-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/check-constraint-node.d.ts @@ -1,5 +1,5 @@ -import { OperationNode } from './operation-node.js'; -import { IdentifierNode } from './identifier-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { IdentifierNode } from 'kysely/dist/cjs/operation-node/identifier-node.js'; export interface CheckConstraintNode extends OperationNode { readonly kind: 'CheckConstraintNode'; readonly expression: OperationNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/column-definition-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/column-definition-node.d.ts index 6442d83..5e84167 100644 --- a/node_modules/kysely/dist/cjs/operation-node/column-definition-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/column-definition-node.d.ts @@ -1,9 +1,9 @@ -import { CheckConstraintNode } from './check-constraint-node.js'; -import { ColumnNode } from './column-node.js'; -import { DefaultValueNode } from './default-value-node.js'; -import { GeneratedNode } from './generated-node.js'; -import { OperationNode } from './operation-node.js'; -import { ReferencesNode } from './references-node.js'; +import { CheckConstraintNode } from 'kysely/dist/cjs/operation-node/check-constraint-node.js'; +import { ColumnNode } from 'kysely/dist/cjs/operation-node/column-node.js'; +import { DefaultValueNode } from 'kysely/dist/cjs/operation-node/default-value-node.js'; +import { GeneratedNode } from 'kysely/dist/cjs/operation-node/generated-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { ReferencesNode } from 'kysely/dist/cjs/operation-node/references-node.js'; export type ColumnDefinitionNodeProps = Omit, 'kind' | 'dataType'>; export interface ColumnDefinitionNode extends OperationNode { readonly kind: 'ColumnDefinitionNode'; @@ -20,6 +20,7 @@ export interface ColumnDefinitionNode extends OperationNode { readonly unsigned?: boolean; readonly frontModifiers?: ReadonlyArray; readonly endModifiers?: ReadonlyArray; + readonly nullsNotDistinct?: boolean; } /** * @internal diff --git a/node_modules/kysely/dist/cjs/operation-node/column-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/column-node.d.ts index d07a8b4..9c71e55 100644 --- a/node_modules/kysely/dist/cjs/operation-node/column-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/column-node.d.ts @@ -1,5 +1,5 @@ -import { IdentifierNode } from './identifier-node.js'; -import { OperationNode } from './operation-node.js'; +import { IdentifierNode } from 'kysely/dist/cjs/operation-node/identifier-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface ColumnNode extends OperationNode { readonly kind: 'ColumnNode'; readonly column: IdentifierNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/column-update-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/column-update-node.d.ts index 2e8ab34..865997c 100644 --- a/node_modules/kysely/dist/cjs/operation-node/column-update-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/column-update-node.d.ts @@ -1,8 +1,7 @@ -import { ColumnNode } from './column-node.js'; -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface ColumnUpdateNode extends OperationNode { readonly kind: 'ColumnUpdateNode'; - readonly column: ColumnNode; + readonly column: OperationNode; readonly value: OperationNode; } /** @@ -10,5 +9,5 @@ export interface ColumnUpdateNode extends OperationNode { */ export declare const ColumnUpdateNode: Readonly<{ is(node: OperationNode): node is ColumnUpdateNode; - create(column: ColumnNode, value: OperationNode): ColumnUpdateNode; + create(column: OperationNode, value: OperationNode): ColumnUpdateNode; }>; diff --git a/node_modules/kysely/dist/cjs/operation-node/common-table-expression-name-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/common-table-expression-name-node.d.ts index fd1fb2f..83d7924 100644 --- a/node_modules/kysely/dist/cjs/operation-node/common-table-expression-name-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/common-table-expression-name-node.d.ts @@ -1,6 +1,6 @@ -import { ColumnNode } from './column-node.js'; -import { OperationNode } from './operation-node.js'; -import { TableNode } from './table-node.js'; +import { ColumnNode } from 'kysely/dist/cjs/operation-node/column-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { TableNode } from 'kysely/dist/cjs/operation-node/table-node.js'; export interface CommonTableExpressionNameNode extends OperationNode { readonly kind: 'CommonTableExpressionNameNode'; readonly table: TableNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/common-table-expression-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/common-table-expression-node.d.ts index c8a2f8a..34c1780 100644 --- a/node_modules/kysely/dist/cjs/operation-node/common-table-expression-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/common-table-expression-node.d.ts @@ -1,5 +1,5 @@ -import { CommonTableExpressionNameNode } from './common-table-expression-name-node.js'; -import { OperationNode } from './operation-node.js'; +import { CommonTableExpressionNameNode } from 'kysely/dist/cjs/operation-node/common-table-expression-name-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; type CommonTableExpressionNodeProps = Pick; export interface CommonTableExpressionNode extends OperationNode { readonly kind: 'CommonTableExpressionNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/constraint-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/constraint-node.d.ts index ef3548e..6da12df 100644 --- a/node_modules/kysely/dist/cjs/operation-node/constraint-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/constraint-node.d.ts @@ -1,5 +1,5 @@ -import { CheckConstraintNode } from './check-constraint-node.js'; -import { ForeignKeyConstraintNode } from './foreign-key-constraint-node.js'; -import { PrimaryKeyConstraintNode } from './primary-constraint-node.js'; -import { UniqueConstraintNode } from './unique-constraint-node.js'; +import { CheckConstraintNode } from 'kysely/dist/cjs/operation-node/check-constraint-node.js'; +import { ForeignKeyConstraintNode } from 'kysely/dist/cjs/operation-node/foreign-key-constraint-node.js'; +import { PrimaryKeyConstraintNode } from 'kysely/dist/cjs/operation-node/primary-constraint-node.js'; +import { UniqueConstraintNode } from 'kysely/dist/cjs/operation-node/unique-constraint-node.js'; export type ConstraintNode = PrimaryKeyConstraintNode | UniqueConstraintNode | CheckConstraintNode | ForeignKeyConstraintNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/create-index-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/create-index-node.d.ts index a3a99d1..a18aa4a 100644 --- a/node_modules/kysely/dist/cjs/operation-node/create-index-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/create-index-node.d.ts @@ -1,8 +1,8 @@ -import { IdentifierNode } from './identifier-node.js'; -import { OperationNode } from './operation-node.js'; -import { RawNode } from './raw-node.js'; -import { TableNode } from './table-node.js'; -import { WhereNode } from './where-node.js'; +import { IdentifierNode } from 'kysely/dist/cjs/operation-node/identifier-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { RawNode } from 'kysely/dist/cjs/operation-node/raw-node.js'; +import { TableNode } from 'kysely/dist/cjs/operation-node/table-node.js'; +import { WhereNode } from 'kysely/dist/cjs/operation-node/where-node.js'; export type CreateIndexNodeProps = Omit; export type IndexType = 'btree' | 'hash' | 'gist' | 'gin'; export interface CreateIndexNode extends OperationNode { @@ -14,6 +14,7 @@ export interface CreateIndexNode extends OperationNode { readonly using?: RawNode; readonly ifNotExists?: boolean; readonly where?: WhereNode; + readonly nullsNotDistinct?: boolean; } /** * @internal diff --git a/node_modules/kysely/dist/cjs/operation-node/create-schema-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/create-schema-node.d.ts index bb609f3..6a4fa7a 100644 --- a/node_modules/kysely/dist/cjs/operation-node/create-schema-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/create-schema-node.d.ts @@ -1,5 +1,5 @@ -import { IdentifierNode } from './identifier-node.js'; -import { OperationNode } from './operation-node.js'; +import { IdentifierNode } from 'kysely/dist/cjs/operation-node/identifier-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export type CreateSchemaNodeParams = Omit, 'kind' | 'schema'>; export interface CreateSchemaNode extends OperationNode { readonly kind: 'CreateSchemaNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/create-table-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/create-table-node.d.ts index cc8ceda..988b651 100644 --- a/node_modules/kysely/dist/cjs/operation-node/create-table-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/create-table-node.d.ts @@ -1,8 +1,8 @@ -import { OperationNode } from './operation-node.js'; -import { TableNode } from './table-node.js'; -import { ConstraintNode } from './constraint-node.js'; -import { ColumnDefinitionNode } from './column-definition-node.js'; -import { ArrayItemType } from '../util/type-utils.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { TableNode } from 'kysely/dist/cjs/operation-node/table-node.js'; +import { ConstraintNode } from 'kysely/dist/cjs/operation-node/constraint-node.js'; +import { ColumnDefinitionNode } from 'kysely/dist/cjs/operation-node/column-definition-node.js'; +import { ArrayItemType } from 'kysely/dist/cjs/util/type-utils.js'; export declare const ON_COMMIT_ACTIONS: string[]; export type OnCommitAction = ArrayItemType; export type CreateTableNodeParams = Omit; @@ -16,6 +16,7 @@ export interface CreateTableNode extends OperationNode { readonly onCommit?: OnCommitAction; readonly frontModifiers?: ReadonlyArray; readonly endModifiers?: ReadonlyArray; + readonly selectQuery?: OperationNode; } /** * @internal diff --git a/node_modules/kysely/dist/cjs/operation-node/create-trigger-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/create-trigger-node.d.ts new file mode 100644 index 0000000..2eb8ae8 --- /dev/null +++ b/node_modules/kysely/dist/cjs/operation-node/create-trigger-node.d.ts @@ -0,0 +1,34 @@ +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { TableNode } from 'kysely/dist/cjs/operation-node/table-node.js'; +import { IdentifierNode } from 'kysely/dist/cjs/operation-node/identifier-node.js'; +import { QueryNode } from 'kysely/dist/cjs/operation-node/query-node.js'; +import { TriggerEventNode } from 'kysely/dist/cjs/operation-node/trigger-event-node.js'; +import { TriggerOrderNode } from 'kysely/dist/cjs/operation-node/trigger-order-node.js'; +import { FunctionNode } from 'kysely/dist/cjs/operation-node/function-node.js'; +export type TriggerTime = 'after' | 'before' | 'instead of'; +export type CreateTriggerNodeParams = Omit; +export interface CreateTriggerNode extends OperationNode { + readonly kind: 'CreateTriggerNode'; + readonly name: IdentifierNode; + readonly queries?: ReadonlyArray; + readonly function?: FunctionNode; + readonly time?: TriggerTime; + readonly events?: ReadonlyArray; + readonly table?: TableNode; + readonly orReplace?: boolean; + readonly ifNotExists?: boolean; + readonly when?: OperationNode; + readonly temporary?: boolean; + readonly forEach?: 'row' | 'statement'; + readonly order?: TriggerOrderNode; +} +/** + * @internal + */ +export declare const CreateTriggerNode: Readonly<{ + is(node: OperationNode): node is CreateTriggerNode; + create(name: IdentifierNode): CreateTriggerNode; + cloneWithQuery(createTrigger: CreateTriggerNode, query: QueryNode): CreateTriggerNode; + cloneWithEvent(createTrigger: CreateTriggerNode, event: TriggerEventNode): CreateTriggerNode; + cloneWith(createTrigger: CreateTriggerNode, params: CreateTriggerNodeParams): CreateTriggerNode; +}>; diff --git a/node_modules/kysely/dist/cjs/operation-node/create-trigger-node.js b/node_modules/kysely/dist/cjs/operation-node/create-trigger-node.js new file mode 100644 index 0000000..47ba119 --- /dev/null +++ b/node_modules/kysely/dist/cjs/operation-node/create-trigger-node.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CreateTriggerNode = void 0; +const object_utils_js_1 = require("../util/object-utils.js"); +/** + * @internal + */ +exports.CreateTriggerNode = (0, object_utils_js_1.freeze)({ + is(node) { + return node.kind === 'CreateTriggerNode'; + }, + create(name) { + return (0, object_utils_js_1.freeze)({ + kind: 'CreateTriggerNode', + name, + }); + }, + cloneWithQuery(createTrigger, query) { + return (0, object_utils_js_1.freeze)({ + ...createTrigger, + queries: (0, object_utils_js_1.freeze)([...(createTrigger.queries || []), query]), + }); + }, + cloneWithEvent(createTrigger, event) { + return (0, object_utils_js_1.freeze)({ + ...createTrigger, + events: (0, object_utils_js_1.freeze)([...(createTrigger.events || []), event]), + }); + }, + cloneWith(createTrigger, params) { + return (0, object_utils_js_1.freeze)({ + ...createTrigger, + ...params, + }); + }, +}); diff --git a/node_modules/kysely/dist/cjs/operation-node/create-type-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/create-type-node.d.ts index 3ab9c3b..382285f 100644 --- a/node_modules/kysely/dist/cjs/operation-node/create-type-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/create-type-node.d.ts @@ -1,6 +1,6 @@ -import { OperationNode } from './operation-node.js'; -import { SchemableIdentifierNode } from './schemable-identifier-node.js'; -import { ValueListNode } from './value-list-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { SchemableIdentifierNode } from 'kysely/dist/cjs/operation-node/schemable-identifier-node.js'; +import { ValueListNode } from 'kysely/dist/cjs/operation-node/value-list-node.js'; export type CreateTypeNodeParams = Omit, 'kind'>; export interface CreateTypeNode extends OperationNode { readonly kind: 'CreateTypeNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/create-view-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/create-view-node.d.ts index 9aa1faa..8db7a40 100644 --- a/node_modules/kysely/dist/cjs/operation-node/create-view-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/create-view-node.d.ts @@ -1,8 +1,8 @@ -import { ColumnNode } from './column-node.js'; -import { OperationNode } from './operation-node.js'; -import { RawNode } from './raw-node.js'; -import { SchemableIdentifierNode } from './schemable-identifier-node.js'; -import { SelectQueryNode } from './select-query-node.js'; +import { ColumnNode } from 'kysely/dist/cjs/operation-node/column-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { RawNode } from 'kysely/dist/cjs/operation-node/raw-node.js'; +import { SchemableIdentifierNode } from 'kysely/dist/cjs/operation-node/schemable-identifier-node.js'; +import { SelectQueryNode } from 'kysely/dist/cjs/operation-node/select-query-node.js'; export type CreateViewNodeParams = Omit, 'kind' | 'name'>; export interface CreateViewNode extends OperationNode { readonly kind: 'CreateViewNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/data-type-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/data-type-node.d.ts index 1ab9f33..83557e4 100644 --- a/node_modules/kysely/dist/cjs/operation-node/data-type-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/data-type-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export type ColumnDataType = 'varchar' | `varchar(${number})` | 'char' | `char(${number})` | 'text' | 'integer' | 'int2' | 'int4' | 'int8' | 'bigint' | 'boolean' | 'real' | 'double precision' | 'float4' | 'float8' | 'decimal' | `decimal(${number}, ${number})` | 'numeric' | `numeric(${number}, ${number})` | 'binary' | `binary(${number})` | 'bytea' | 'date' | 'datetime' | `datetime(${number})` | 'time' | `time(${number})` | 'timetz' | `timetz(${number})` | 'timestamp' | `timestamp(${number})` | 'timestamptz' | `timestamptz(${number})` | 'serial' | 'bigserial' | 'uuid' | 'json' | 'jsonb' | 'blob'; export type DataTypeParams = Omit; export interface DataTypeNode extends OperationNode { diff --git a/node_modules/kysely/dist/cjs/operation-node/default-value-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/default-value-node.d.ts index 2df8841..0884b9c 100644 --- a/node_modules/kysely/dist/cjs/operation-node/default-value-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/default-value-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface DefaultValueNode extends OperationNode { readonly kind: 'DefaultValueNode'; readonly defaultValue: OperationNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/delete-query-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/delete-query-node.d.ts index 10d7f15..a993d3f 100644 --- a/node_modules/kysely/dist/cjs/operation-node/delete-query-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/delete-query-node.d.ts @@ -1,14 +1,14 @@ -import { FromNode } from './from-node.js'; -import { JoinNode } from './join-node.js'; -import { OperationNode } from './operation-node.js'; -import { ReturningNode } from './returning-node.js'; -import { WhereNode } from './where-node.js'; -import { WithNode } from './with-node.js'; -import { LimitNode } from './limit-node.js'; -import { OrderByNode } from './order-by-node.js'; -import { OrderByItemNode } from './order-by-item-node.js'; -import { ExplainNode } from './explain-node.js'; -import { UsingNode } from './using-node.js'; +import { FromNode } from 'kysely/dist/cjs/operation-node/from-node.js'; +import { JoinNode } from 'kysely/dist/cjs/operation-node/join-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { ReturningNode } from 'kysely/dist/cjs/operation-node/returning-node.js'; +import { WhereNode } from 'kysely/dist/cjs/operation-node/where-node.js'; +import { WithNode } from 'kysely/dist/cjs/operation-node/with-node.js'; +import { LimitNode } from 'kysely/dist/cjs/operation-node/limit-node.js'; +import { OrderByNode } from 'kysely/dist/cjs/operation-node/order-by-node.js'; +import { OrderByItemNode } from 'kysely/dist/cjs/operation-node/order-by-item-node.js'; +import { ExplainNode } from 'kysely/dist/cjs/operation-node/explain-node.js'; +import { UsingNode } from 'kysely/dist/cjs/operation-node/using-node.js'; export interface DeleteQueryNode extends OperationNode { readonly kind: 'DeleteQueryNode'; readonly from: FromNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/drop-column-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/drop-column-node.d.ts index 10e13a2..83fb6d7 100644 --- a/node_modules/kysely/dist/cjs/operation-node/drop-column-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/drop-column-node.d.ts @@ -1,5 +1,5 @@ -import { OperationNode } from './operation-node.js'; -import { ColumnNode } from './column-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { ColumnNode } from 'kysely/dist/cjs/operation-node/column-node.js'; export interface DropColumnNode extends OperationNode { readonly kind: 'DropColumnNode'; readonly column: ColumnNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/drop-constraint-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/drop-constraint-node.d.ts index f5ccb05..f7f7660 100644 --- a/node_modules/kysely/dist/cjs/operation-node/drop-constraint-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/drop-constraint-node.d.ts @@ -1,5 +1,5 @@ -import { OperationNode } from './operation-node.js'; -import { IdentifierNode } from './identifier-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { IdentifierNode } from 'kysely/dist/cjs/operation-node/identifier-node.js'; export type DropConstraintNodeProps = Omit; export interface DropConstraintNode extends OperationNode { readonly kind: 'DropConstraintNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/drop-index-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/drop-index-node.d.ts index 2cc565e..8159449 100644 --- a/node_modules/kysely/dist/cjs/operation-node/drop-index-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/drop-index-node.d.ts @@ -1,6 +1,6 @@ -import { OperationNode } from './operation-node.js'; -import { SchemableIdentifierNode } from './schemable-identifier-node.js'; -import { TableNode } from './table-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { SchemableIdentifierNode } from 'kysely/dist/cjs/operation-node/schemable-identifier-node.js'; +import { TableNode } from 'kysely/dist/cjs/operation-node/table-node.js'; export type DropIndexNodeProps = Omit; export interface DropIndexNode extends OperationNode { readonly kind: 'DropIndexNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/drop-schema-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/drop-schema-node.d.ts index 98166ad..34147fc 100644 --- a/node_modules/kysely/dist/cjs/operation-node/drop-schema-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/drop-schema-node.d.ts @@ -1,5 +1,5 @@ -import { IdentifierNode } from './identifier-node.js'; -import { OperationNode } from './operation-node.js'; +import { IdentifierNode } from 'kysely/dist/cjs/operation-node/identifier-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export type DropSchemaNodeParams = Omit, 'kind' | 'schema'>; export interface DropSchemaNode extends OperationNode { readonly kind: 'DropSchemaNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/drop-table-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/drop-table-node.d.ts index ab35e3e..ae42660 100644 --- a/node_modules/kysely/dist/cjs/operation-node/drop-table-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/drop-table-node.d.ts @@ -1,5 +1,5 @@ -import { OperationNode } from './operation-node.js'; -import { TableNode } from './table-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { TableNode } from 'kysely/dist/cjs/operation-node/table-node.js'; export type DropTablexNodeParams = Omit, 'kind' | 'table'>; export interface DropTableNode extends OperationNode { readonly kind: 'DropTableNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/drop-trigger-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/drop-trigger-node.d.ts new file mode 100644 index 0000000..e391cf9 --- /dev/null +++ b/node_modules/kysely/dist/cjs/operation-node/drop-trigger-node.d.ts @@ -0,0 +1,17 @@ +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { SchemableIdentifierNode } from 'kysely/dist/cjs/operation-node/schemable-identifier-node.js'; +export type DropTriggerNodeParams = Omit, 'kind' | 'name'>; +export interface DropTriggerNode extends OperationNode { + readonly kind: 'DropTriggerNode'; + readonly name: SchemableIdentifierNode; + readonly ifExists?: boolean; + readonly cascade?: boolean; +} +/** + * @internal + */ +export declare const DropTriggerNode: Readonly<{ + is(node: OperationNode): node is DropTriggerNode; + create(name: SchemableIdentifierNode): DropTriggerNode; + cloneWith(dropTrigger: DropTriggerNode, params: DropTriggerNodeParams): DropTriggerNode; +}>; diff --git a/node_modules/kysely/dist/cjs/operation-node/drop-trigger-node.js b/node_modules/kysely/dist/cjs/operation-node/drop-trigger-node.js new file mode 100644 index 0000000..2bb067e --- /dev/null +++ b/node_modules/kysely/dist/cjs/operation-node/drop-trigger-node.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DropTriggerNode = void 0; +const object_utils_js_1 = require("../util/object-utils.js"); +/** + * @internal + */ +exports.DropTriggerNode = (0, object_utils_js_1.freeze)({ + is(node) { + return node.kind === 'DropTriggerNode'; + }, + create(name) { + return (0, object_utils_js_1.freeze)({ + kind: 'DropTriggerNode', + name, + }); + }, + cloneWith(dropTrigger, params) { + return (0, object_utils_js_1.freeze)({ + ...dropTrigger, + ...params, + }); + }, +}); diff --git a/node_modules/kysely/dist/cjs/operation-node/drop-type-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/drop-type-node.d.ts index 9693550..b162606 100644 --- a/node_modules/kysely/dist/cjs/operation-node/drop-type-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/drop-type-node.d.ts @@ -1,5 +1,5 @@ -import { OperationNode } from './operation-node.js'; -import { SchemableIdentifierNode } from './schemable-identifier-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { SchemableIdentifierNode } from 'kysely/dist/cjs/operation-node/schemable-identifier-node.js'; export type DropTypeNodeParams = Omit, 'kind' | 'name'>; export interface DropTypeNode extends OperationNode { readonly kind: 'DropTypeNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/drop-view-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/drop-view-node.d.ts index 2c4bf89..316775d 100644 --- a/node_modules/kysely/dist/cjs/operation-node/drop-view-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/drop-view-node.d.ts @@ -1,5 +1,5 @@ -import { OperationNode } from './operation-node.js'; -import { SchemableIdentifierNode } from './schemable-identifier-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { SchemableIdentifierNode } from 'kysely/dist/cjs/operation-node/schemable-identifier-node.js'; export type DropViewNodeParams = Omit, 'kind' | 'name'>; export interface DropViewNode extends OperationNode { readonly kind: 'DropViewNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/explain-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/explain-node.d.ts index 8cf89b5..ddd4cd0 100644 --- a/node_modules/kysely/dist/cjs/operation-node/explain-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/explain-node.d.ts @@ -1,5 +1,5 @@ -import { ExplainFormat } from '../util/explainable.js'; -import { OperationNode } from './operation-node.js'; +import { ExplainFormat } from 'kysely/dist/cjs/util/explainable.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface ExplainNode extends OperationNode { readonly kind: 'ExplainNode'; readonly format?: ExplainFormat; diff --git a/node_modules/kysely/dist/cjs/operation-node/foreign-key-constraint-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/foreign-key-constraint-node.d.ts index c7fe574..408bd48 100644 --- a/node_modules/kysely/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/foreign-key-constraint-node.d.ts @@ -1,8 +1,8 @@ -import { ColumnNode } from './column-node.js'; -import { IdentifierNode } from './identifier-node.js'; -import { OperationNode } from './operation-node.js'; -import { OnModifyForeignAction, ReferencesNode } from './references-node.js'; -import { TableNode } from './table-node.js'; +import { ColumnNode } from 'kysely/dist/cjs/operation-node/column-node.js'; +import { IdentifierNode } from 'kysely/dist/cjs/operation-node/identifier-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { OnModifyForeignAction, ReferencesNode } from 'kysely/dist/cjs/operation-node/references-node.js'; +import { TableNode } from 'kysely/dist/cjs/operation-node/table-node.js'; export type ForeignKeyConstraintNodeProps = Omit; export interface ForeignKeyConstraintNode extends OperationNode { readonly kind: 'ForeignKeyConstraintNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/from-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/from-node.d.ts index 2c46520..3d63e3b 100644 --- a/node_modules/kysely/dist/cjs/operation-node/from-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/from-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface FromNode extends OperationNode { readonly kind: 'FromNode'; readonly froms: ReadonlyArray; diff --git a/node_modules/kysely/dist/cjs/operation-node/function-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/function-node.d.ts index 49aab00..05a1632 100644 --- a/node_modules/kysely/dist/cjs/operation-node/function-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/function-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface FunctionNode extends OperationNode { readonly kind: 'FunctionNode'; readonly func: string; diff --git a/node_modules/kysely/dist/cjs/operation-node/generated-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/generated-node.d.ts index 5c86a9f..9a4c356 100644 --- a/node_modules/kysely/dist/cjs/operation-node/generated-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/generated-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export type GeneratedNodeParams = Omit; export interface GeneratedNode extends OperationNode { readonly kind: 'GeneratedNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/group-by-item-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/group-by-item-node.d.ts index 475ce87..5aeb92c 100644 --- a/node_modules/kysely/dist/cjs/operation-node/group-by-item-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/group-by-item-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface GroupByItemNode extends OperationNode { readonly kind: 'GroupByItemNode'; readonly groupBy: OperationNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/group-by-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/group-by-node.d.ts index 9b0b108..c8e9315 100644 --- a/node_modules/kysely/dist/cjs/operation-node/group-by-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/group-by-node.d.ts @@ -1,5 +1,5 @@ -import { OperationNode } from './operation-node.js'; -import { GroupByItemNode } from './group-by-item-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { GroupByItemNode } from 'kysely/dist/cjs/operation-node/group-by-item-node.js'; export interface GroupByNode extends OperationNode { readonly kind: 'GroupByNode'; readonly items: ReadonlyArray; diff --git a/node_modules/kysely/dist/cjs/operation-node/having-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/having-node.d.ts index 14830a3..fe2c59e 100644 --- a/node_modules/kysely/dist/cjs/operation-node/having-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/having-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface HavingNode extends OperationNode { readonly kind: 'HavingNode'; readonly having: OperationNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/identifier-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/identifier-node.d.ts index f74014d..2ee967e 100644 --- a/node_modules/kysely/dist/cjs/operation-node/identifier-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/identifier-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface IdentifierNode extends OperationNode { readonly kind: 'IdentifierNode'; readonly name: string; diff --git a/node_modules/kysely/dist/cjs/operation-node/insert-query-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/insert-query-node.d.ts index f28ce2c..56406a5 100644 --- a/node_modules/kysely/dist/cjs/operation-node/insert-query-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/insert-query-node.d.ts @@ -1,11 +1,11 @@ -import { ColumnNode } from './column-node.js'; -import { ExplainNode } from './explain-node.js'; -import { OnConflictNode } from './on-conflict-node.js'; -import { OnDuplicateKeyNode } from './on-duplicate-key-node.js'; -import { OperationNode } from './operation-node.js'; -import { ReturningNode } from './returning-node.js'; -import { TableNode } from './table-node.js'; -import { WithNode } from './with-node.js'; +import { ColumnNode } from 'kysely/dist/cjs/operation-node/column-node.js'; +import { ExplainNode } from 'kysely/dist/cjs/operation-node/explain-node.js'; +import { OnConflictNode } from 'kysely/dist/cjs/operation-node/on-conflict-node.js'; +import { OnDuplicateKeyNode } from 'kysely/dist/cjs/operation-node/on-duplicate-key-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { ReturningNode } from 'kysely/dist/cjs/operation-node/returning-node.js'; +import { TableNode } from 'kysely/dist/cjs/operation-node/table-node.js'; +import { WithNode } from 'kysely/dist/cjs/operation-node/with-node.js'; export type InsertQueryNodeProps = Omit; export interface InsertQueryNode extends OperationNode { readonly kind: 'InsertQueryNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/join-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/join-node.d.ts index ceb98ea..f95944b 100644 --- a/node_modules/kysely/dist/cjs/operation-node/join-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/join-node.d.ts @@ -1,5 +1,5 @@ -import { OnNode } from './on-node.js'; -import { OperationNode } from './operation-node.js'; +import { OnNode } from 'kysely/dist/cjs/operation-node/on-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export type JoinType = 'InnerJoin' | 'LeftJoin' | 'RightJoin' | 'FullJoin' | 'LateralInnerJoin' | 'LateralLeftJoin'; export interface JoinNode extends OperationNode { readonly kind: 'JoinNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/json-operator-chain-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/json-operator-chain-node.d.ts index 87cacdf..2dbbb66 100644 --- a/node_modules/kysely/dist/cjs/operation-node/json-operator-chain-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/json-operator-chain-node.d.ts @@ -1,6 +1,6 @@ -import { OperationNode } from './operation-node.js'; -import { OperatorNode } from './operator-node.js'; -import { ValueNode } from './value-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { OperatorNode } from 'kysely/dist/cjs/operation-node/operator-node.js'; +import { ValueNode } from 'kysely/dist/cjs/operation-node/value-node.js'; export interface JSONOperatorChainNode extends OperationNode { readonly kind: 'JSONOperatorChainNode'; readonly operator: OperatorNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/json-path-leg-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/json-path-leg-node.d.ts index f0b498b..8b25b88 100644 --- a/node_modules/kysely/dist/cjs/operation-node/json-path-leg-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/json-path-leg-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export type JSONPathLegType = 'Member' | 'ArrayLocation'; export interface JSONPathLegNode extends OperationNode { readonly kind: 'JSONPathLegNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/json-path-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/json-path-node.d.ts index 91243ed..93c8ccf 100644 --- a/node_modules/kysely/dist/cjs/operation-node/json-path-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/json-path-node.d.ts @@ -1,6 +1,6 @@ -import { JSONPathLegNode } from './json-path-leg-node.js'; -import { OperationNode } from './operation-node.js'; -import { OperatorNode } from './operator-node.js'; +import { JSONPathLegNode } from 'kysely/dist/cjs/operation-node/json-path-leg-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { OperatorNode } from 'kysely/dist/cjs/operation-node/operator-node.js'; export interface JSONPathNode extends OperationNode { readonly kind: 'JSONPathNode'; readonly inOperator?: OperatorNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/json-reference-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/json-reference-node.d.ts index 9ba1b27..e225b19 100644 --- a/node_modules/kysely/dist/cjs/operation-node/json-reference-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/json-reference-node.d.ts @@ -1,7 +1,7 @@ -import { JSONOperatorChainNode } from './json-operator-chain-node.js'; -import { JSONPathNode } from './json-path-node.js'; -import { OperationNode } from './operation-node.js'; -import { ReferenceNode } from './reference-node.js'; +import { JSONOperatorChainNode } from 'kysely/dist/cjs/operation-node/json-operator-chain-node.js'; +import { JSONPathNode } from 'kysely/dist/cjs/operation-node/json-path-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { ReferenceNode } from 'kysely/dist/cjs/operation-node/reference-node.js'; export interface JSONReferenceNode extends OperationNode { readonly kind: 'JSONReferenceNode'; readonly reference: ReferenceNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/limit-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/limit-node.d.ts index 3c3de76..25d3c5a 100644 --- a/node_modules/kysely/dist/cjs/operation-node/limit-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/limit-node.d.ts @@ -1,5 +1,5 @@ -import { OperationNode } from './operation-node.js'; -import { ValueNode } from './value-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { ValueNode } from 'kysely/dist/cjs/operation-node/value-node.js'; export interface LimitNode extends OperationNode { readonly kind: 'LimitNode'; readonly limit: ValueNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/modify-column-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/modify-column-node.d.ts index e25d4cf..c414d3a 100644 --- a/node_modules/kysely/dist/cjs/operation-node/modify-column-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/modify-column-node.d.ts @@ -1,5 +1,5 @@ -import { ColumnDefinitionNode } from './column-definition-node.js'; -import { OperationNode } from './operation-node.js'; +import { ColumnDefinitionNode } from 'kysely/dist/cjs/operation-node/column-definition-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface ModifyColumnNode extends OperationNode { readonly kind: 'ModifyColumnNode'; readonly column: ColumnDefinitionNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/offset-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/offset-node.d.ts index 03158b0..daa5e72 100644 --- a/node_modules/kysely/dist/cjs/operation-node/offset-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/offset-node.d.ts @@ -1,5 +1,5 @@ -import { OperationNode } from './operation-node.js'; -import { ValueNode } from './value-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { ValueNode } from 'kysely/dist/cjs/operation-node/value-node.js'; export interface OffsetNode extends OperationNode { readonly kind: 'OffsetNode'; readonly offset: ValueNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/on-conflict-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/on-conflict-node.d.ts index bbd7b2c..71072c8 100644 --- a/node_modules/kysely/dist/cjs/operation-node/on-conflict-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/on-conflict-node.d.ts @@ -1,8 +1,8 @@ -import { ColumnNode } from './column-node.js'; -import { ColumnUpdateNode } from './column-update-node.js'; -import { IdentifierNode } from './identifier-node.js'; -import { OperationNode } from './operation-node.js'; -import { WhereNode } from './where-node.js'; +import { ColumnNode } from 'kysely/dist/cjs/operation-node/column-node.js'; +import { ColumnUpdateNode } from 'kysely/dist/cjs/operation-node/column-update-node.js'; +import { IdentifierNode } from 'kysely/dist/cjs/operation-node/identifier-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { WhereNode } from 'kysely/dist/cjs/operation-node/where-node.js'; export type OnConflictNodeProps = Omit; export interface OnConflictNode extends OperationNode { readonly kind: 'OnConflictNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/on-duplicate-key-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/on-duplicate-key-node.d.ts index 63aa5b8..e2a6bdc 100644 --- a/node_modules/kysely/dist/cjs/operation-node/on-duplicate-key-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/on-duplicate-key-node.d.ts @@ -1,5 +1,5 @@ -import { ColumnUpdateNode } from './column-update-node.js'; -import { OperationNode } from './operation-node.js'; +import { ColumnUpdateNode } from 'kysely/dist/cjs/operation-node/column-update-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export type OnDuplicateKeyNodeProps = Omit; export interface OnDuplicateKeyNode extends OperationNode { readonly kind: 'OnDuplicateKeyNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/on-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/on-node.d.ts index 97f6383..f2508e3 100644 --- a/node_modules/kysely/dist/cjs/operation-node/on-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/on-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface OnNode extends OperationNode { readonly kind: 'OnNode'; readonly on: OperationNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/operation-node-source.d.ts b/node_modules/kysely/dist/cjs/operation-node/operation-node-source.d.ts index 6dc3661..24698c3 100644 --- a/node_modules/kysely/dist/cjs/operation-node/operation-node-source.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/operation-node-source.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface OperationNodeSource { toOperationNode(): OperationNode; } diff --git a/node_modules/kysely/dist/cjs/operation-node/operation-node-transformer.d.ts b/node_modules/kysely/dist/cjs/operation-node/operation-node-transformer.d.ts index 6b3a13c..5d7fd9d 100644 --- a/node_modules/kysely/dist/cjs/operation-node/operation-node-transformer.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/operation-node-transformer.d.ts @@ -85,6 +85,11 @@ import { JSONPathNode } from './json-path-node.js'; import { JSONPathLegNode } from './json-path-leg-node.js'; import { JSONOperatorChainNode } from './json-operator-chain-node.js'; import { TupleNode } from './tuple-node.js'; +import { AddIndexNode } from './add-index-node.js'; +import { CreateTriggerNode } from './create-trigger-node.js'; +import { DropTriggerNode } from './drop-trigger-node.js'; +import { TriggerEventNode } from './trigger-event-node.js'; +import { TriggerOrderNode } from './trigger-order-node.js'; /** * Transforms an operation node tree into another one. * @@ -139,9 +144,13 @@ export declare class OperationNodeTransformer { protected transformDeleteQuery(node: DeleteQueryNode): DeleteQueryNode; protected transformReturning(node: ReturningNode): ReturningNode; protected transformCreateTable(node: CreateTableNode): CreateTableNode; + protected transformCreateTrigger(node: CreateTriggerNode): CreateTriggerNode; + protected transformTriggerEvent(node: TriggerEventNode): TriggerEventNode; + protected transformTriggerOrder(node: TriggerOrderNode): TriggerOrderNode; protected transformColumnDefinition(node: ColumnDefinitionNode): ColumnDefinitionNode; protected transformAddColumn(node: AddColumnNode): AddColumnNode; protected transformDropTable(node: DropTableNode): DropTableNode; + protected transformDropTrigger(node: DropTriggerNode): DropTriggerNode; protected transformOrderBy(node: OrderByNode): OrderByNode; protected transformOrderByItem(node: OrderByItemNode): OrderByItemNode; protected transformGroupBy(node: GroupByNode): GroupByNode; @@ -199,6 +208,7 @@ export declare class OperationNodeTransformer { protected transformJSONPathLeg(node: JSONPathLegNode): JSONPathLegNode; protected transformJSONOperatorChain(node: JSONOperatorChainNode): JSONOperatorChainNode; protected transformTuple(node: TupleNode): TupleNode; + protected transformAddIndex(node: AddIndexNode): AddIndexNode; protected transformDataType(node: DataTypeNode): DataTypeNode; protected transformSelectAll(node: SelectAllNode): SelectAllNode; protected transformIdentifier(node: IdentifierNode): IdentifierNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/operation-node-transformer.js b/node_modules/kysely/dist/cjs/operation-node/operation-node-transformer.js index bc3d0a4..839914f 100644 --- a/node_modules/kysely/dist/cjs/operation-node/operation-node-transformer.js +++ b/node_modules/kysely/dist/cjs/operation-node/operation-node-transformer.js @@ -121,6 +121,11 @@ class OperationNodeTransformer { JSONPathLegNode: this.transformJSONPathLeg.bind(this), JSONOperatorChainNode: this.transformJSONOperatorChain.bind(this), TupleNode: this.transformTuple.bind(this), + AddIndexNode: this.transformAddIndex.bind(this), + CreateTriggerNode: this.transformCreateTrigger.bind(this), + TriggerEventNode: this.transformTriggerEvent.bind(this), + TriggerOrderNode: this.transformTriggerOrder.bind(this), + DropTriggerNode: this.transformDropTrigger.bind(this), }); transformNode(node) { if (!node) { @@ -297,6 +302,38 @@ class OperationNodeTransformer { onCommit: node.onCommit, frontModifiers: this.transformNodeList(node.frontModifiers), endModifiers: this.transformNodeList(node.endModifiers), + selectQuery: this.transformNode(node.selectQuery), + }); + } + transformCreateTrigger(node) { + return (0, require_all_props_js_1.requireAllProps)({ + kind: 'CreateTriggerNode', + name: this.transformNode(node.name), + table: this.transformNode(node.table), + ifNotExists: node.ifNotExists, + time: node.time, + events: this.transformNodeList(node.events), + forEach: node.forEach, + orReplace: node.orReplace, + temporary: node.temporary, + queries: this.transformNodeList(node.queries), + function: this.transformNode(node.function), + when: this.transformNode(node.when), + order: this.transformNode(node.order), + }); + } + transformTriggerEvent(node) { + return (0, require_all_props_js_1.requireAllProps)({ + kind: 'TriggerEventNode', + event: node.event, + columns: this.transformNodeList(node.columns), + }); + } + transformTriggerOrder(node) { + return (0, require_all_props_js_1.requireAllProps)({ + kind: 'TriggerOrderNode', + order: node.order, + otherTriggerName: this.transformNode(node.otherTriggerName), }); } transformColumnDefinition(node) { @@ -315,6 +352,7 @@ class OperationNodeTransformer { generated: this.transformNode(node.generated), frontModifiers: this.transformNodeList(node.frontModifiers), endModifiers: this.transformNodeList(node.endModifiers), + nullsNotDistinct: node.nullsNotDistinct, }); } transformAddColumn(node) { @@ -331,6 +369,14 @@ class OperationNodeTransformer { cascade: node.cascade, }); } + transformDropTrigger(node) { + return (0, require_all_props_js_1.requireAllProps)({ + kind: 'DropTriggerNode', + name: this.transformNode(node.name), + ifExists: node.ifExists, + cascade: node.cascade, + }); + } transformOrderBy(node) { return (0, require_all_props_js_1.requireAllProps)({ kind: 'OrderByNode', @@ -416,6 +462,7 @@ class OperationNodeTransformer { using: this.transformNode(node.using), ifNotExists: node.ifNotExists, where: this.transformNode(node.where), + nullsNotDistinct: node.nullsNotDistinct, }); } transformList(node) { @@ -445,6 +492,7 @@ class OperationNodeTransformer { kind: 'UniqueConstraintNode', columns: this.transformNodeList(node.columns), name: this.transformNode(node.name), + nullsNotDistinct: node.nullsNotDistinct, }); } transformForeignKeyConstraint(node) { @@ -533,6 +581,8 @@ class OperationNodeTransformer { columnAlterations: this.transformNodeList(node.columnAlterations), addConstraint: this.transformNode(node.addConstraint), dropConstraint: this.transformNode(node.dropConstraint), + addIndex: this.transformNode(node.addIndex), + dropIndex: this.transformNode(node.dropIndex), }); } transformDropColumn(node) { @@ -765,6 +815,16 @@ class OperationNodeTransformer { values: this.transformNodeList(node.values), }); } + transformAddIndex(node) { + return (0, require_all_props_js_1.requireAllProps)({ + kind: 'AddIndexNode', + name: this.transformNode(node.name), + columns: this.transformNodeList(node.columns), + unique: node.unique, + using: this.transformNode(node.using), + ifNotExists: node.ifNotExists, + }); + } transformDataType(node) { // An Object.freezed leaf node. No need to clone. return node; diff --git a/node_modules/kysely/dist/cjs/operation-node/operation-node-visitor.d.ts b/node_modules/kysely/dist/cjs/operation-node/operation-node-visitor.d.ts index 7c267cd..6a66bc7 100644 --- a/node_modules/kysely/dist/cjs/operation-node/operation-node-visitor.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/operation-node-visitor.d.ts @@ -85,6 +85,11 @@ import { JSONPathNode } from './json-path-node.js'; import { JSONPathLegNode } from './json-path-leg-node.js'; import { JSONOperatorChainNode } from './json-operator-chain-node.js'; import { TupleNode } from './tuple-node.js'; +import { AddIndexNode } from './add-index-node.js'; +import { CreateTriggerNode } from './create-trigger-node.js'; +import { DropTriggerNode } from './drop-trigger-node.js'; +import { TriggerEventNode } from './trigger-event-node.js'; +import { TriggerOrderNode } from './trigger-order-node.js'; export declare abstract class OperationNodeVisitor { #private; protected readonly nodeStack: OperationNode[]; @@ -108,9 +113,13 @@ export declare abstract class OperationNodeVisitor { protected abstract visitDeleteQuery(node: DeleteQueryNode): void; protected abstract visitReturning(node: ReturningNode): void; protected abstract visitCreateTable(node: CreateTableNode): void; + protected abstract visitCreateTrigger(node: CreateTriggerNode): void; + protected abstract visitTriggerEvent(node: TriggerEventNode): void; + protected abstract visitTriggerOrder(node: TriggerOrderNode): void; protected abstract visitAddColumn(node: AddColumnNode): void; protected abstract visitColumnDefinition(node: ColumnDefinitionNode): void; protected abstract visitDropTable(node: DropTableNode): void; + protected abstract visitDropTrigger(node: DropTriggerNode): void; protected abstract visitOrderBy(node: OrderByNode): void; protected abstract visitOrderByItem(node: OrderByItemNode): void; protected abstract visitGroupBy(node: GroupByNode): void; @@ -176,4 +185,5 @@ export declare abstract class OperationNodeVisitor { protected abstract visitJSONPathLeg(node: JSONPathLegNode): void; protected abstract visitJSONOperatorChain(node: JSONOperatorChainNode): void; protected abstract visitTuple(node: TupleNode): void; + protected abstract visitAddIndex(node: AddIndexNode): void; } diff --git a/node_modules/kysely/dist/cjs/operation-node/operation-node-visitor.js b/node_modules/kysely/dist/cjs/operation-node/operation-node-visitor.js index 8a50e0b..acc4d6e 100644 --- a/node_modules/kysely/dist/cjs/operation-node/operation-node-visitor.js +++ b/node_modules/kysely/dist/cjs/operation-node/operation-node-visitor.js @@ -94,6 +94,11 @@ class OperationNodeVisitor { JSONPathLegNode: this.visitJSONPathLeg.bind(this), JSONOperatorChainNode: this.visitJSONOperatorChain.bind(this), TupleNode: this.visitTuple.bind(this), + AddIndexNode: this.visitAddIndex.bind(this), + CreateTriggerNode: this.visitCreateTrigger.bind(this), + TriggerEventNode: this.visitTriggerEvent.bind(this), + TriggerOrderNode: this.visitTriggerOrder.bind(this), + DropTriggerNode: this.visitDropTrigger.bind(this), }); visitNode = (node) => { this.nodeStack.push(node); diff --git a/node_modules/kysely/dist/cjs/operation-node/operation-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/operation-node.d.ts index 24cad68..a01b9ed 100644 --- a/node_modules/kysely/dist/cjs/operation-node/operation-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/operation-node.d.ts @@ -1,4 +1,4 @@ -export type OperationNodeKind = 'IdentifierNode' | 'SchemableIdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'CreateViewNode' | 'DropViewNode' | 'GeneratedNode' | 'DefaultValueNode' | 'OnNode' | 'ValuesNode' | 'CommonTableExpressionNameNode' | 'SelectModifierNode' | 'CreateTypeNode' | 'DropTypeNode' | 'ExplainNode' | 'DefaultInsertValueNode' | 'AggregateFunctionNode' | 'OverNode' | 'PartitionByNode' | 'PartitionByItemNode' | 'SetOperationNode' | 'BinaryOperationNode' | 'UnaryOperationNode' | 'UsingNode' | 'FunctionNode' | 'CaseNode' | 'WhenNode' | 'JSONReferenceNode' | 'JSONPathNode' | 'JSONPathLegNode' | 'JSONOperatorChainNode' | 'TupleNode'; +export type OperationNodeKind = 'IdentifierNode' | 'SchemableIdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'CreateViewNode' | 'DropViewNode' | 'GeneratedNode' | 'DefaultValueNode' | 'OnNode' | 'ValuesNode' | 'CommonTableExpressionNameNode' | 'SelectModifierNode' | 'CreateTypeNode' | 'DropTypeNode' | 'ExplainNode' | 'DefaultInsertValueNode' | 'AggregateFunctionNode' | 'OverNode' | 'PartitionByNode' | 'PartitionByItemNode' | 'SetOperationNode' | 'BinaryOperationNode' | 'UnaryOperationNode' | 'UsingNode' | 'FunctionNode' | 'CaseNode' | 'WhenNode' | 'JSONReferenceNode' | 'JSONPathNode' | 'JSONPathLegNode' | 'JSONOperatorChainNode' | 'TupleNode' | 'AddIndexNode' | 'CreateTriggerNode' | 'TriggerEventNode' | 'TriggerOrderNode' | 'DropTriggerNode'; export interface OperationNode { readonly kind: OperationNodeKind; } diff --git a/node_modules/kysely/dist/cjs/operation-node/operator-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/operator-node.d.ts index 1076866..20a5fcb 100644 --- a/node_modules/kysely/dist/cjs/operation-node/operator-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/operator-node.d.ts @@ -1,11 +1,11 @@ -import { OperationNode } from './operation-node.js'; -export declare const COMPARISON_OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "&&", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp"]; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +export declare const COMPARISON_OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "&&", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "is distinct from", "is not distinct from"]; export declare const ARITHMETIC_OPERATORS: readonly ["+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>"]; export declare const JSON_OPERATORS: readonly ["->", "->>"]; -export declare const BINARY_OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "&&", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>", "&&", "||"]; +export declare const BINARY_OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "&&", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "is distinct from", "is not distinct from", "+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>", "&&", "||"]; export declare const UNARY_FILTER_OPERATORS: readonly ["exists", "not exists"]; export declare const UNARY_OPERATORS: readonly ["not", "-", "exists", "not exists"]; -export declare const OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "&&", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>", "&&", "||", "->", "->>", "not", "-", "exists", "not exists", "between", "between symmetric"]; +export declare const OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "&&", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "is distinct from", "is not distinct from", "+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>", "&&", "||", "->", "->>", "not", "-", "exists", "not exists", "between", "between symmetric"]; export type ComparisonOperator = (typeof COMPARISON_OPERATORS)[number]; export type ArithmeticOperator = (typeof ARITHMETIC_OPERATORS)[number]; export type JSONOperator = (typeof JSON_OPERATORS)[number]; diff --git a/node_modules/kysely/dist/cjs/operation-node/operator-node.js b/node_modules/kysely/dist/cjs/operation-node/operator-node.js index 1b4ff0a..5407a85 100644 --- a/node_modules/kysely/dist/cjs/operation-node/operator-node.js +++ b/node_modules/kysely/dist/cjs/operation-node/operator-node.js @@ -37,6 +37,8 @@ exports.COMPARISON_OPERATORS = [ '!!', '<->', 'regexp', + 'is distinct from', + 'is not distinct from', ]; exports.ARITHMETIC_OPERATORS = [ '+', diff --git a/node_modules/kysely/dist/cjs/operation-node/or-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/or-node.d.ts index 4d8e9ce..ca76ae2 100644 --- a/node_modules/kysely/dist/cjs/operation-node/or-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/or-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface OrNode extends OperationNode { readonly kind: 'OrNode'; readonly left: OperationNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/order-by-item-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/order-by-item-node.d.ts index 5a926f7..2964b97 100644 --- a/node_modules/kysely/dist/cjs/operation-node/order-by-item-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/order-by-item-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface OrderByItemNode extends OperationNode { readonly kind: 'OrderByItemNode'; readonly orderBy: OperationNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/order-by-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/order-by-node.d.ts index ec862ab..aad64f5 100644 --- a/node_modules/kysely/dist/cjs/operation-node/order-by-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/order-by-node.d.ts @@ -1,5 +1,5 @@ -import { OperationNode } from './operation-node.js'; -import { OrderByItemNode } from './order-by-item-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { OrderByItemNode } from 'kysely/dist/cjs/operation-node/order-by-item-node.js'; export interface OrderByNode extends OperationNode { readonly kind: 'OrderByNode'; readonly items: ReadonlyArray; diff --git a/node_modules/kysely/dist/cjs/operation-node/over-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/over-node.d.ts index 90fa893..9f04bf1 100644 --- a/node_modules/kysely/dist/cjs/operation-node/over-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/over-node.d.ts @@ -1,8 +1,8 @@ -import { OperationNode } from './operation-node.js'; -import { OrderByItemNode } from './order-by-item-node.js'; -import { OrderByNode } from './order-by-node.js'; -import { PartitionByItemNode } from './partition-by-item-node.js'; -import { PartitionByNode } from './partition-by-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { OrderByItemNode } from 'kysely/dist/cjs/operation-node/order-by-item-node.js'; +import { OrderByNode } from 'kysely/dist/cjs/operation-node/order-by-node.js'; +import { PartitionByItemNode } from 'kysely/dist/cjs/operation-node/partition-by-item-node.js'; +import { PartitionByNode } from 'kysely/dist/cjs/operation-node/partition-by-node.js'; export interface OverNode extends OperationNode { readonly kind: 'OverNode'; readonly orderBy?: OrderByNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/parens-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/parens-node.d.ts index 8a84c5d..8052a4f 100644 --- a/node_modules/kysely/dist/cjs/operation-node/parens-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/parens-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface ParensNode extends OperationNode { readonly kind: 'ParensNode'; readonly node: OperationNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/partition-by-item-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/partition-by-item-node.d.ts index 91b1035..d851bf5 100644 --- a/node_modules/kysely/dist/cjs/operation-node/partition-by-item-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/partition-by-item-node.d.ts @@ -1,5 +1,5 @@ -import { OperationNode } from './operation-node.js'; -import { SimpleReferenceExpressionNode } from './simple-reference-expression-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { SimpleReferenceExpressionNode } from 'kysely/dist/cjs/operation-node/simple-reference-expression-node.js'; export interface PartitionByItemNode extends OperationNode { readonly kind: 'PartitionByItemNode'; readonly partitionBy: SimpleReferenceExpressionNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/partition-by-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/partition-by-node.d.ts index 92f2c3d..3b9595c 100644 --- a/node_modules/kysely/dist/cjs/operation-node/partition-by-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/partition-by-node.d.ts @@ -1,5 +1,5 @@ -import { PartitionByItemNode } from './partition-by-item-node.js'; -import { OperationNode } from './operation-node.js'; +import { PartitionByItemNode } from 'kysely/dist/cjs/operation-node/partition-by-item-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface PartitionByNode extends OperationNode { readonly kind: 'PartitionByNode'; readonly items: ReadonlyArray; diff --git a/node_modules/kysely/dist/cjs/operation-node/primary-constraint-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/primary-constraint-node.d.ts index 63de5ec..be729e7 100644 --- a/node_modules/kysely/dist/cjs/operation-node/primary-constraint-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/primary-constraint-node.d.ts @@ -1,6 +1,6 @@ -import { ColumnNode } from './column-node.js'; -import { IdentifierNode } from './identifier-node.js'; -import { OperationNode } from './operation-node.js'; +import { ColumnNode } from 'kysely/dist/cjs/operation-node/column-node.js'; +import { IdentifierNode } from 'kysely/dist/cjs/operation-node/identifier-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface PrimaryKeyConstraintNode extends OperationNode { readonly kind: 'PrimaryKeyConstraintNode'; readonly columns: ReadonlyArray; diff --git a/node_modules/kysely/dist/cjs/operation-node/primitive-value-list-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/primitive-value-list-node.d.ts index d47b86f..142ebae 100644 --- a/node_modules/kysely/dist/cjs/operation-node/primitive-value-list-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/primitive-value-list-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; /** * This node is basically just a performance optimization over the normal ValueListNode. * The queries often contain large arrays of primitive values (for example in a `where in` list) diff --git a/node_modules/kysely/dist/cjs/operation-node/query-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/query-node.d.ts index bf6ef92..133557d 100644 --- a/node_modules/kysely/dist/cjs/operation-node/query-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/query-node.d.ts @@ -1,15 +1,15 @@ -import { InsertQueryNode } from './insert-query-node.js'; -import { SelectQueryNode } from './select-query-node.js'; -import { UpdateQueryNode } from './update-query-node.js'; -import { DeleteQueryNode } from './delete-query-node.js'; -import { WhereNode } from './where-node.js'; -import { JoinNode } from './join-node.js'; -import { SelectionNode } from './selection-node.js'; -import { ReturningNode } from './returning-node.js'; -import { OperationNode } from './operation-node.js'; -import { ExplainNode } from './explain-node.js'; -import { ExplainFormat } from '../util/explainable.js'; -import { Expression } from '../expression/expression.js'; +import { InsertQueryNode } from 'kysely/dist/cjs/operation-node/insert-query-node.js'; +import { SelectQueryNode } from 'kysely/dist/cjs/operation-node/select-query-node.js'; +import { UpdateQueryNode } from 'kysely/dist/cjs/operation-node/update-query-node.js'; +import { DeleteQueryNode } from 'kysely/dist/cjs/operation-node/delete-query-node.js'; +import { WhereNode } from 'kysely/dist/cjs/operation-node/where-node.js'; +import { JoinNode } from 'kysely/dist/cjs/operation-node/join-node.js'; +import { SelectionNode } from 'kysely/dist/cjs/operation-node/selection-node.js'; +import { ReturningNode } from 'kysely/dist/cjs/operation-node/returning-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { ExplainNode } from 'kysely/dist/cjs/operation-node/explain-node.js'; +import { ExplainFormat } from 'kysely/dist/cjs/util/explainable.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; export type QueryNode = SelectQueryNode | InsertQueryNode | UpdateQueryNode | DeleteQueryNode; type HasJoins = { joins?: ReadonlyArray; diff --git a/node_modules/kysely/dist/cjs/operation-node/raw-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/raw-node.d.ts index d0ebaa1..e8493de 100644 --- a/node_modules/kysely/dist/cjs/operation-node/raw-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/raw-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface RawNode extends OperationNode { readonly kind: 'RawNode'; readonly sqlFragments: ReadonlyArray; diff --git a/node_modules/kysely/dist/cjs/operation-node/reference-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/reference-node.d.ts index 25451af..06b6906 100644 --- a/node_modules/kysely/dist/cjs/operation-node/reference-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/reference-node.d.ts @@ -1,7 +1,7 @@ -import { OperationNode } from './operation-node.js'; -import { ColumnNode } from './column-node.js'; -import { TableNode } from './table-node.js'; -import { SelectAllNode } from './select-all-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { ColumnNode } from 'kysely/dist/cjs/operation-node/column-node.js'; +import { TableNode } from 'kysely/dist/cjs/operation-node/table-node.js'; +import { SelectAllNode } from 'kysely/dist/cjs/operation-node/select-all-node.js'; export interface ReferenceNode extends OperationNode { readonly kind: 'ReferenceNode'; readonly column: ColumnNode | SelectAllNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/references-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/references-node.d.ts index bca9b92..261c6ca 100644 --- a/node_modules/kysely/dist/cjs/operation-node/references-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/references-node.d.ts @@ -1,7 +1,7 @@ -import { OperationNode } from './operation-node.js'; -import { ColumnNode } from './column-node.js'; -import { TableNode } from './table-node.js'; -import { ArrayItemType } from '../util/type-utils.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { ColumnNode } from 'kysely/dist/cjs/operation-node/column-node.js'; +import { TableNode } from 'kysely/dist/cjs/operation-node/table-node.js'; +import { ArrayItemType } from 'kysely/dist/cjs/util/type-utils.js'; export declare const ON_MODIFY_FOREIGN_ACTIONS: readonly ["no action", "restrict", "cascade", "set null", "set default"]; export type OnModifyForeignAction = ArrayItemType; export interface ReferencesNode extends OperationNode { diff --git a/node_modules/kysely/dist/cjs/operation-node/rename-column-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/rename-column-node.d.ts index 6aaa14a..14f4d87 100644 --- a/node_modules/kysely/dist/cjs/operation-node/rename-column-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/rename-column-node.d.ts @@ -1,5 +1,5 @@ -import { OperationNode } from './operation-node.js'; -import { ColumnNode } from './column-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { ColumnNode } from 'kysely/dist/cjs/operation-node/column-node.js'; export interface RenameColumnNode extends OperationNode { readonly kind: 'RenameColumnNode'; readonly column: ColumnNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/returning-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/returning-node.d.ts index 6504839..2000c94 100644 --- a/node_modules/kysely/dist/cjs/operation-node/returning-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/returning-node.d.ts @@ -1,5 +1,5 @@ -import { OperationNode } from './operation-node.js'; -import { SelectionNode } from './selection-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { SelectionNode } from 'kysely/dist/cjs/operation-node/selection-node.js'; export interface ReturningNode extends OperationNode { readonly kind: 'ReturningNode'; readonly selections: ReadonlyArray; diff --git a/node_modules/kysely/dist/cjs/operation-node/schemable-identifier-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/schemable-identifier-node.d.ts index 0373909..18afb74 100644 --- a/node_modules/kysely/dist/cjs/operation-node/schemable-identifier-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/schemable-identifier-node.d.ts @@ -1,5 +1,5 @@ -import { IdentifierNode } from './identifier-node.js'; -import { OperationNode } from './operation-node.js'; +import { IdentifierNode } from 'kysely/dist/cjs/operation-node/identifier-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface SchemableIdentifierNode extends OperationNode { readonly kind: 'SchemableIdentifierNode'; readonly schema?: IdentifierNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/select-all-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/select-all-node.d.ts index ebdb84d..facdf67 100644 --- a/node_modules/kysely/dist/cjs/operation-node/select-all-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/select-all-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface SelectAllNode extends OperationNode { readonly kind: 'SelectAllNode'; } diff --git a/node_modules/kysely/dist/cjs/operation-node/select-modifier-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/select-modifier-node.d.ts index 6cafd87..2d3273f 100644 --- a/node_modules/kysely/dist/cjs/operation-node/select-modifier-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/select-modifier-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export type SelectModifier = 'ForUpdate' | 'ForNoKeyUpdate' | 'ForShare' | 'ForKeyShare' | 'NoWait' | 'SkipLocked' | 'Distinct'; export interface SelectModifierNode extends OperationNode { readonly kind: 'SelectModifierNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/select-query-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/select-query-node.d.ts index 8566716..f6adbb0 100644 --- a/node_modules/kysely/dist/cjs/operation-node/select-query-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/select-query-node.d.ts @@ -1,19 +1,19 @@ -import { FromNode } from './from-node.js'; -import { GroupByItemNode } from './group-by-item-node.js'; -import { GroupByNode } from './group-by-node.js'; -import { HavingNode } from './having-node.js'; -import { JoinNode } from './join-node.js'; -import { LimitNode } from './limit-node.js'; -import { OffsetNode } from './offset-node.js'; -import { OperationNode } from './operation-node.js'; -import { OrderByItemNode } from './order-by-item-node.js'; -import { OrderByNode } from './order-by-node.js'; -import { SelectionNode } from './selection-node.js'; -import { WhereNode } from './where-node.js'; -import { WithNode } from './with-node.js'; -import { SelectModifierNode } from './select-modifier-node.js'; -import { ExplainNode } from './explain-node.js'; -import { SetOperationNode } from './set-operation-node.js'; +import { FromNode } from 'kysely/dist/cjs/operation-node/from-node.js'; +import { GroupByItemNode } from 'kysely/dist/cjs/operation-node/group-by-item-node.js'; +import { GroupByNode } from 'kysely/dist/cjs/operation-node/group-by-node.js'; +import { HavingNode } from 'kysely/dist/cjs/operation-node/having-node.js'; +import { JoinNode } from 'kysely/dist/cjs/operation-node/join-node.js'; +import { LimitNode } from 'kysely/dist/cjs/operation-node/limit-node.js'; +import { OffsetNode } from 'kysely/dist/cjs/operation-node/offset-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { OrderByItemNode } from 'kysely/dist/cjs/operation-node/order-by-item-node.js'; +import { OrderByNode } from 'kysely/dist/cjs/operation-node/order-by-node.js'; +import { SelectionNode } from 'kysely/dist/cjs/operation-node/selection-node.js'; +import { WhereNode } from 'kysely/dist/cjs/operation-node/where-node.js'; +import { WithNode } from 'kysely/dist/cjs/operation-node/with-node.js'; +import { SelectModifierNode } from 'kysely/dist/cjs/operation-node/select-modifier-node.js'; +import { ExplainNode } from 'kysely/dist/cjs/operation-node/explain-node.js'; +import { SetOperationNode } from 'kysely/dist/cjs/operation-node/set-operation-node.js'; export interface SelectQueryNode extends OperationNode { readonly kind: 'SelectQueryNode'; readonly from?: FromNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/selection-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/selection-node.d.ts index 65c3567..f82ed6a 100644 --- a/node_modules/kysely/dist/cjs/operation-node/selection-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/selection-node.d.ts @@ -1,8 +1,8 @@ -import { AliasNode } from './alias-node.js'; -import { OperationNode } from './operation-node.js'; -import { SelectAllNode } from './select-all-node.js'; -import { SimpleReferenceExpressionNode } from './simple-reference-expression-node.js'; -import { TableNode } from './table-node.js'; +import { AliasNode } from 'kysely/dist/cjs/operation-node/alias-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { SelectAllNode } from 'kysely/dist/cjs/operation-node/select-all-node.js'; +import { SimpleReferenceExpressionNode } from 'kysely/dist/cjs/operation-node/simple-reference-expression-node.js'; +import { TableNode } from 'kysely/dist/cjs/operation-node/table-node.js'; type SelectionNodeChild = SimpleReferenceExpressionNode | AliasNode | SelectAllNode; export interface SelectionNode extends OperationNode { readonly kind: 'SelectionNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/set-operation-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/set-operation-node.d.ts index 31f9efc..b924286 100644 --- a/node_modules/kysely/dist/cjs/operation-node/set-operation-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/set-operation-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export type SetOperator = 'union' | 'intersect' | 'except'; export interface SetOperationNode extends OperationNode { kind: 'SetOperationNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/simple-reference-expression-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/simple-reference-expression-node.d.ts index f89eb48..7c6ef63 100644 --- a/node_modules/kysely/dist/cjs/operation-node/simple-reference-expression-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/simple-reference-expression-node.d.ts @@ -1,3 +1,3 @@ -import { ColumnNode } from './column-node.js'; -import { ReferenceNode } from './reference-node.js'; +import { ColumnNode } from 'kysely/dist/cjs/operation-node/column-node.js'; +import { ReferenceNode } from 'kysely/dist/cjs/operation-node/reference-node.js'; export type SimpleReferenceExpressionNode = ColumnNode | ReferenceNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/table-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/table-node.d.ts index b6fba34..c6c3673 100644 --- a/node_modules/kysely/dist/cjs/operation-node/table-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/table-node.d.ts @@ -1,5 +1,5 @@ -import { OperationNode } from './operation-node.js'; -import { SchemableIdentifierNode } from './schemable-identifier-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { SchemableIdentifierNode } from 'kysely/dist/cjs/operation-node/schemable-identifier-node.js'; export interface TableNode extends OperationNode { readonly kind: 'TableNode'; readonly table: SchemableIdentifierNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/trigger-event-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/trigger-event-node.d.ts new file mode 100644 index 0000000..fcdf121 --- /dev/null +++ b/node_modules/kysely/dist/cjs/operation-node/trigger-event-node.d.ts @@ -0,0 +1,15 @@ +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +export type TriggerEvent = 'delete' | 'update' | 'insert' | 'truncate'; +export type TriggerEventNodeParams = Omit; +export interface TriggerEventNode extends OperationNode { + readonly kind: 'TriggerEventNode'; + readonly event: TriggerEvent; + readonly columns?: ReadonlyArray; +} +/** + * @internal + */ +export declare const TriggerEventNode: Readonly<{ + is(node: OperationNode): node is TriggerEventNode; + create(event: TriggerEvent, columns?: ReadonlyArray): TriggerEventNode; +}>; diff --git a/node_modules/kysely/dist/cjs/operation-node/trigger-event-node.js b/node_modules/kysely/dist/cjs/operation-node/trigger-event-node.js new file mode 100644 index 0000000..85f3975 --- /dev/null +++ b/node_modules/kysely/dist/cjs/operation-node/trigger-event-node.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TriggerEventNode = void 0; +const object_utils_js_1 = require("../util/object-utils.js"); +/** + * @internal + */ +exports.TriggerEventNode = (0, object_utils_js_1.freeze)({ + is(node) { + return node.kind === 'TriggerEventNode'; + }, + create(event, columns) { + return (0, object_utils_js_1.freeze)({ + kind: 'TriggerEventNode', + event, + columns, + }); + }, +}); diff --git a/node_modules/kysely/dist/cjs/operation-node/trigger-order-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/trigger-order-node.d.ts new file mode 100644 index 0000000..5db90ed --- /dev/null +++ b/node_modules/kysely/dist/cjs/operation-node/trigger-order-node.d.ts @@ -0,0 +1,16 @@ +import { IdentifierNode } from 'kysely/dist/cjs/operation-node/identifier-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +export type TriggerOrder = 'follows' | 'precedes'; +export type TriggerOrderNodeParams = Omit; +export interface TriggerOrderNode extends OperationNode { + readonly kind: 'TriggerOrderNode'; + readonly order: TriggerOrder; + readonly otherTriggerName: IdentifierNode; +} +/** + * @internal + */ +export declare const TriggerOrderNode: Readonly<{ + is(node: OperationNode): node is TriggerOrderNode; + create(order: TriggerOrder, otherTriggerName: IdentifierNode): TriggerOrderNode; +}>; diff --git a/node_modules/kysely/dist/cjs/operation-node/trigger-order-node.js b/node_modules/kysely/dist/cjs/operation-node/trigger-order-node.js new file mode 100644 index 0000000..2b40780 --- /dev/null +++ b/node_modules/kysely/dist/cjs/operation-node/trigger-order-node.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TriggerOrderNode = void 0; +const object_utils_js_1 = require("../util/object-utils.js"); +/** + * @internal + */ +exports.TriggerOrderNode = (0, object_utils_js_1.freeze)({ + is(node) { + return node.kind === 'TriggerOrderNode'; + }, + create(order, otherTriggerName) { + return (0, object_utils_js_1.freeze)({ + kind: 'TriggerOrderNode', + order, + otherTriggerName, + }); + }, +}); diff --git a/node_modules/kysely/dist/cjs/operation-node/unique-constraint-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/unique-constraint-node.d.ts index c179f1f..5111298 100644 --- a/node_modules/kysely/dist/cjs/operation-node/unique-constraint-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/unique-constraint-node.d.ts @@ -1,15 +1,18 @@ -import { ColumnNode } from './column-node.js'; -import { IdentifierNode } from './identifier-node.js'; -import { OperationNode } from './operation-node.js'; +import { ColumnNode } from 'kysely/dist/cjs/operation-node/column-node.js'; +import { IdentifierNode } from 'kysely/dist/cjs/operation-node/identifier-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface UniqueConstraintNode extends OperationNode { readonly kind: 'UniqueConstraintNode'; readonly columns: ReadonlyArray; readonly name?: IdentifierNode; + readonly nullsNotDistinct?: boolean; } +export type UniqueConstraintNodeProps = Omit, 'kind'>; /** * @internal */ export declare const UniqueConstraintNode: Readonly<{ is(node: OperationNode): node is UniqueConstraintNode; - create(columns: string[], constraintName?: string): UniqueConstraintNode; + create(columns: string[], constraintName?: string, nullsNotDistinct?: boolean): UniqueConstraintNode; + cloneWith(node: UniqueConstraintNode, props: UniqueConstraintNodeProps): UniqueConstraintNode; }>; diff --git a/node_modules/kysely/dist/cjs/operation-node/unique-constraint-node.js b/node_modules/kysely/dist/cjs/operation-node/unique-constraint-node.js index d615f74..ba9b265 100644 --- a/node_modules/kysely/dist/cjs/operation-node/unique-constraint-node.js +++ b/node_modules/kysely/dist/cjs/operation-node/unique-constraint-node.js @@ -11,11 +11,18 @@ exports.UniqueConstraintNode = (0, object_utils_js_1.freeze)({ is(node) { return node.kind === 'UniqueConstraintNode'; }, - create(columns, constraintName) { + create(columns, constraintName, nullsNotDistinct) { return (0, object_utils_js_1.freeze)({ kind: 'UniqueConstraintNode', columns: (0, object_utils_js_1.freeze)(columns.map(column_node_js_1.ColumnNode.create)), name: constraintName ? identifier_node_js_1.IdentifierNode.create(constraintName) : undefined, + nullsNotDistinct, + }); + }, + cloneWith(node, props) { + return (0, object_utils_js_1.freeze)({ + ...node, + ...props, }); }, }); diff --git a/node_modules/kysely/dist/cjs/operation-node/update-query-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/update-query-node.d.ts index 6fcc5e7..29fb124 100644 --- a/node_modules/kysely/dist/cjs/operation-node/update-query-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/update-query-node.d.ts @@ -1,13 +1,13 @@ -import { ColumnUpdateNode } from './column-update-node.js'; -import { JoinNode } from './join-node.js'; -import { OperationNode } from './operation-node.js'; -import { PrimitiveValueListNode } from './primitive-value-list-node.js'; -import { ReturningNode } from './returning-node.js'; -import { ValueListNode } from './value-list-node.js'; -import { WhereNode } from './where-node.js'; -import { WithNode } from './with-node.js'; -import { FromNode } from './from-node.js'; -import { ExplainNode } from './explain-node.js'; +import { ColumnUpdateNode } from 'kysely/dist/cjs/operation-node/column-update-node.js'; +import { JoinNode } from 'kysely/dist/cjs/operation-node/join-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { PrimitiveValueListNode } from 'kysely/dist/cjs/operation-node/primitive-value-list-node.js'; +import { ReturningNode } from 'kysely/dist/cjs/operation-node/returning-node.js'; +import { ValueListNode } from 'kysely/dist/cjs/operation-node/value-list-node.js'; +import { WhereNode } from 'kysely/dist/cjs/operation-node/where-node.js'; +import { WithNode } from 'kysely/dist/cjs/operation-node/with-node.js'; +import { FromNode } from 'kysely/dist/cjs/operation-node/from-node.js'; +import { ExplainNode } from 'kysely/dist/cjs/operation-node/explain-node.js'; export type UpdateValuesNode = ValueListNode | PrimitiveValueListNode; export interface UpdateQueryNode extends OperationNode { readonly kind: 'UpdateQueryNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/using-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/using-node.d.ts index 01da795..901c8e5 100644 --- a/node_modules/kysely/dist/cjs/operation-node/using-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/using-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface UsingNode extends OperationNode { readonly kind: 'UsingNode'; readonly tables: ReadonlyArray; diff --git a/node_modules/kysely/dist/cjs/operation-node/value-list-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/value-list-node.d.ts index e48e781..bf4a346 100644 --- a/node_modules/kysely/dist/cjs/operation-node/value-list-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/value-list-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface ValueListNode extends OperationNode { readonly kind: 'ValueListNode'; readonly values: ReadonlyArray; diff --git a/node_modules/kysely/dist/cjs/operation-node/value-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/value-node.d.ts index c5fdc09..6068adc 100644 --- a/node_modules/kysely/dist/cjs/operation-node/value-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/value-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface ValueNode extends OperationNode { readonly kind: 'ValueNode'; readonly value: unknown; diff --git a/node_modules/kysely/dist/cjs/operation-node/values-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/values-node.d.ts index 86590c6..bb8127c 100644 --- a/node_modules/kysely/dist/cjs/operation-node/values-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/values-node.d.ts @@ -1,6 +1,6 @@ -import { OperationNode } from './operation-node.js'; -import { PrimitiveValueListNode } from './primitive-value-list-node.js'; -import { ValueListNode } from './value-list-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { PrimitiveValueListNode } from 'kysely/dist/cjs/operation-node/primitive-value-list-node.js'; +import { ValueListNode } from 'kysely/dist/cjs/operation-node/value-list-node.js'; export type ValuesItemNode = ValueListNode | PrimitiveValueListNode; export interface ValuesNode extends OperationNode { readonly kind: 'ValuesNode'; diff --git a/node_modules/kysely/dist/cjs/operation-node/when-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/when-node.d.ts index c6f1db8..8be8ebb 100644 --- a/node_modules/kysely/dist/cjs/operation-node/when-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/when-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface WhenNode extends OperationNode { readonly kind: 'WhenNode'; readonly condition: OperationNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/where-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/where-node.d.ts index 44f9fbd..a3e79d1 100644 --- a/node_modules/kysely/dist/cjs/operation-node/where-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/where-node.d.ts @@ -1,4 +1,4 @@ -import { OperationNode } from './operation-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export interface WhereNode extends OperationNode { readonly kind: 'WhereNode'; readonly where: OperationNode; diff --git a/node_modules/kysely/dist/cjs/operation-node/with-node.d.ts b/node_modules/kysely/dist/cjs/operation-node/with-node.d.ts index 78fecfd..d4fcebc 100644 --- a/node_modules/kysely/dist/cjs/operation-node/with-node.d.ts +++ b/node_modules/kysely/dist/cjs/operation-node/with-node.d.ts @@ -1,5 +1,5 @@ -import { OperationNode } from './operation-node.js'; -import { CommonTableExpressionNode } from './common-table-expression-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { CommonTableExpressionNode } from 'kysely/dist/cjs/operation-node/common-table-expression-node.js'; export type WithNodeParams = Omit; export interface WithNode extends OperationNode { readonly kind: 'WithNode'; diff --git a/node_modules/kysely/dist/cjs/parser/binary-operation-parser.d.ts b/node_modules/kysely/dist/cjs/parser/binary-operation-parser.d.ts index 442aeb2..2585655 100644 --- a/node_modules/kysely/dist/cjs/parser/binary-operation-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/binary-operation-parser.d.ts @@ -1,11 +1,11 @@ -import { BinaryOperationNode } from '../operation-node/binary-operation-node.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { ComparisonOperator, BinaryOperator, Operator } from '../operation-node/operator-node.js'; -import { ExtractTypeFromReferenceExpression, ExtractTypeFromStringReference, ReferenceExpression, StringReference } from './reference-parser.js'; -import { ValueExpression, ValueExpressionOrList } from './value-parser.js'; -import { OperationNode } from '../operation-node/operation-node.js'; -import { Expression } from '../expression/expression.js'; -import { SelectType } from '../util/column-type.js'; +import { BinaryOperationNode } from 'kysely/dist/cjs/operation-node/binary-operation-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { ComparisonOperator, BinaryOperator, Operator } from 'kysely/dist/cjs/operation-node/operator-node.js'; +import { ExtractTypeFromReferenceExpression, ExtractTypeFromStringReference, ReferenceExpression, StringReference } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { ValueExpression, ValueExpressionOrList } from 'kysely/dist/cjs/parser/value-parser.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { SelectType } from 'kysely/dist/cjs/util/column-type.js'; export type OperandValueExpression = ValueExpression>; export type OperandValueExpressionOrList = ValueExpressionOrList | null>; export type OperatorExpression = Operator | Expression; diff --git a/node_modules/kysely/dist/cjs/parser/binary-operation-parser.js b/node_modules/kysely/dist/cjs/parser/binary-operation-parser.js index 2ebff87..b5e9a08 100644 --- a/node_modules/kysely/dist/cjs/parser/binary-operation-parser.js +++ b/node_modules/kysely/dist/cjs/parser/binary-operation-parser.js @@ -41,7 +41,7 @@ exports.parseFilterObject = parseFilterObject; function parseFilterList(list, combinator) { const combine = combinator === 'and' ? and_node_js_1.AndNode.create : or_node_js_1.OrNode.create; if (list.length === 0) { - return value_node_js_1.ValueNode.createImmediate(combinator === 'and'); + return binary_operation_node_js_1.BinaryOperationNode.create(value_node_js_1.ValueNode.createImmediate(1), operator_node_js_1.OperatorNode.create('='), value_node_js_1.ValueNode.createImmediate(combinator === 'and' ? 1 : 0)); } let node = toOperationNode(list[0]); for (let i = 1; i < list.length; ++i) { diff --git a/node_modules/kysely/dist/cjs/parser/coalesce-parser.d.ts b/node_modules/kysely/dist/cjs/parser/coalesce-parser.d.ts index ad11860..d71013b 100644 --- a/node_modules/kysely/dist/cjs/parser/coalesce-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/coalesce-parser.d.ts @@ -1,2 +1,2 @@ -import { ExtractTypeFromReferenceExpression, ReferenceExpression } from './reference-parser.js'; +import { ExtractTypeFromReferenceExpression, ReferenceExpression } from 'kysely/dist/cjs/parser/reference-parser.js'; export type CoalesceReferenceExpressionList = RE extends [] ? O : RE extends [infer L, ...infer R] ? L extends ReferenceExpression ? null extends ExtractTypeFromReferenceExpression ? CoalesceReferenceExpressionList[] ? R : never, O | ExtractTypeFromReferenceExpression> : Exclude | ExtractTypeFromReferenceExpression : never : never; diff --git a/node_modules/kysely/dist/cjs/parser/data-type-parser.d.ts b/node_modules/kysely/dist/cjs/parser/data-type-parser.d.ts index 5469925..2d9e6e9 100644 --- a/node_modules/kysely/dist/cjs/parser/data-type-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/data-type-parser.d.ts @@ -1,5 +1,5 @@ -import { Expression } from '../expression/expression.js'; -import { ColumnDataType } from '../operation-node/data-type-node.js'; -import { OperationNode } from '../operation-node/operation-node.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { ColumnDataType } from 'kysely/dist/cjs/operation-node/data-type-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export type DataTypeExpression = ColumnDataType | Expression; export declare function parseDataTypeExpression(dataType: DataTypeExpression): OperationNode; diff --git a/node_modules/kysely/dist/cjs/parser/default-value-parser.d.ts b/node_modules/kysely/dist/cjs/parser/default-value-parser.d.ts index 332773a..dda387f 100644 --- a/node_modules/kysely/dist/cjs/parser/default-value-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/default-value-parser.d.ts @@ -1,4 +1,4 @@ -import { Expression } from '../expression/expression.js'; -import { OperationNode } from '../operation-node/operation-node.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export type DefaultValueExpression = unknown | Expression; export declare function parseDefaultValueExpression(value: DefaultValueExpression): OperationNode; diff --git a/node_modules/kysely/dist/cjs/parser/expression-parser.d.ts b/node_modules/kysely/dist/cjs/parser/expression-parser.d.ts index ad657a1..dc6f087 100644 --- a/node_modules/kysely/dist/cjs/parser/expression-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/expression-parser.d.ts @@ -1,8 +1,8 @@ -import { AliasedExpression, Expression } from '../expression/expression.js'; -import { AliasNode } from '../operation-node/alias-node.js'; -import { OperationNode } from '../operation-node/operation-node.js'; -import { ExpressionBuilder } from '../expression/expression-builder.js'; -import { SelectQueryBuilderExpression } from '../query-builder/select-query-builder-expression.js'; +import { AliasedExpression, Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { AliasNode } from 'kysely/dist/cjs/operation-node/alias-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { ExpressionBuilder } from 'kysely/dist/cjs/expression/expression-builder.js'; +import { SelectQueryBuilderExpression } from 'kysely/dist/cjs/query-builder/select-query-builder-expression.js'; /** * Like `Expression` but also accepts a select query with an output * type extending `Record`. This type is useful because SQL diff --git a/node_modules/kysely/dist/cjs/parser/group-by-parser.d.ts b/node_modules/kysely/dist/cjs/parser/group-by-parser.d.ts index 2338e36..19ffb2e 100644 --- a/node_modules/kysely/dist/cjs/parser/group-by-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/group-by-parser.d.ts @@ -1,6 +1,6 @@ -import { GroupByItemNode } from '../operation-node/group-by-item-node.js'; -import { ExpressionBuilder } from '../expression/expression-builder.js'; -import { ReferenceExpression } from './reference-parser.js'; +import { GroupByItemNode } from 'kysely/dist/cjs/operation-node/group-by-item-node.js'; +import { ExpressionBuilder } from 'kysely/dist/cjs/expression/expression-builder.js'; +import { ReferenceExpression } from 'kysely/dist/cjs/parser/reference-parser.js'; export type GroupByExpression = ReferenceExpression | (keyof O & string); export type GroupByArg = GroupByExpression | ReadonlyArray> | ((eb: ExpressionBuilder) => ReadonlyArray>); export declare function parseGroupBy(groupBy: GroupByArg): GroupByItemNode[]; diff --git a/node_modules/kysely/dist/cjs/parser/insert-values-parser.d.ts b/node_modules/kysely/dist/cjs/parser/insert-values-parser.d.ts index 4560fab..bd1a505 100644 --- a/node_modules/kysely/dist/cjs/parser/insert-values-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/insert-values-parser.d.ts @@ -1,8 +1,8 @@ -import { ColumnNode } from '../operation-node/column-node.js'; -import { ValueExpression } from './value-parser.js'; -import { ValuesNode } from '../operation-node/values-node.js'; -import { NonNullableInsertKeys, NullableInsertKeys, InsertType } from '../util/column-type.js'; -import { ExpressionBuilder } from '../expression/expression-builder.js'; +import { ColumnNode } from 'kysely/dist/cjs/operation-node/column-node.js'; +import { ValueExpression } from 'kysely/dist/cjs/parser/value-parser.js'; +import { ValuesNode } from 'kysely/dist/cjs/operation-node/values-node.js'; +import { NonNullableInsertKeys, NullableInsertKeys, InsertType } from 'kysely/dist/cjs/util/column-type.js'; +import { ExpressionBuilder } from 'kysely/dist/cjs/expression/expression-builder.js'; export type InsertObject = { [C in NonNullableInsertKeys]: ValueExpression>; } & { diff --git a/node_modules/kysely/dist/cjs/parser/join-parser.d.ts b/node_modules/kysely/dist/cjs/parser/join-parser.d.ts index fcf33ef..91e1f85 100644 --- a/node_modules/kysely/dist/cjs/parser/join-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/join-parser.d.ts @@ -1,7 +1,7 @@ -import { JoinNode, JoinType } from '../operation-node/join-node.js'; -import { AnyColumn, AnyColumnWithTable, DrainOuterGeneric } from '../util/type-utils.js'; -import { From, FromTables } from './table-parser.js'; -import { JoinBuilder } from '../query-builder/join-builder.js'; +import { JoinNode, JoinType } from 'kysely/dist/cjs/operation-node/join-node.js'; +import { AnyColumn, AnyColumnWithTable, DrainOuterGeneric } from 'kysely/dist/cjs/util/type-utils.js'; +import { From, FromTables } from 'kysely/dist/cjs/parser/table-parser.js'; +import { JoinBuilder } from 'kysely/dist/cjs/query-builder/join-builder.js'; export type JoinReferenceExpression = DrainOuterGeneric | AnyJoinColumnWithTable>; export type JoinCallbackExpression = (join: JoinBuilder, FromTables>) => JoinBuilder; type AnyJoinColumn = AnyColumn, FromTables>; diff --git a/node_modules/kysely/dist/cjs/parser/order-by-parser.d.ts b/node_modules/kysely/dist/cjs/parser/order-by-parser.d.ts index 40d5d0e..329449c 100644 --- a/node_modules/kysely/dist/cjs/parser/order-by-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/order-by-parser.d.ts @@ -1,7 +1,7 @@ -import { Expression } from '../expression/expression.js'; -import { OrderByItemNode } from '../operation-node/order-by-item-node.js'; -import { StringReference } from './reference-parser.js'; -import { ReferenceExpression } from './reference-parser.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { OrderByItemNode } from 'kysely/dist/cjs/operation-node/order-by-item-node.js'; +import { StringReference } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { ReferenceExpression } from 'kysely/dist/cjs/parser/reference-parser.js'; export type OrderByDirection = 'asc' | 'desc'; export declare function isOrderByDirection(thing: unknown): thing is OrderByDirection; export type DirectedOrderByStringReference = `${StringReference | (keyof O & string)} ${OrderByDirection}`; diff --git a/node_modules/kysely/dist/cjs/parser/partition-by-parser.d.ts b/node_modules/kysely/dist/cjs/parser/partition-by-parser.d.ts index 4a08f74..15a1c3e 100644 --- a/node_modules/kysely/dist/cjs/parser/partition-by-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/partition-by-parser.d.ts @@ -1,6 +1,6 @@ -import { DynamicReferenceBuilder } from '../dynamic/dynamic-reference-builder.js'; -import { PartitionByItemNode } from '../operation-node/partition-by-item-node.js'; -import { StringReference } from './reference-parser.js'; +import { DynamicReferenceBuilder } from 'kysely/dist/cjs/dynamic/dynamic-reference-builder.js'; +import { PartitionByItemNode } from 'kysely/dist/cjs/operation-node/partition-by-item-node.js'; +import { StringReference } from 'kysely/dist/cjs/parser/reference-parser.js'; export type PartitionByExpression = StringReference | DynamicReferenceBuilder; export type PartitionByExpressionOrList = ReadonlyArray> | PartitionByExpression; export declare function parsePartitionBy(partitionBy: PartitionByExpressionOrList): PartitionByItemNode[]; diff --git a/node_modules/kysely/dist/cjs/parser/reference-parser.d.ts b/node_modules/kysely/dist/cjs/parser/reference-parser.d.ts index cd4d656..9c530cf 100644 --- a/node_modules/kysely/dist/cjs/parser/reference-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/reference-parser.d.ts @@ -1,22 +1,23 @@ -import { AliasNode } from '../operation-node/alias-node.js'; -import { ColumnNode } from '../operation-node/column-node.js'; -import { ReferenceNode } from '../operation-node/reference-node.js'; -import { AnyColumn, AnyColumnWithTable, ExtractColumnType } from '../util/type-utils.js'; -import { SelectQueryBuilderExpression } from '../query-builder/select-query-builder-expression.js'; -import { ExpressionOrFactory } from './expression-parser.js'; -import { DynamicReferenceBuilder } from '../dynamic/dynamic-reference-builder.js'; -import { SelectType } from '../util/column-type.js'; -import { OperationNode } from '../operation-node/operation-node.js'; -import { Expression } from '../expression/expression.js'; -import { SimpleReferenceExpressionNode } from '../operation-node/simple-reference-expression-node.js'; -import { OrderByDirection } from './order-by-parser.js'; -import { JSONOperatorWith$ } from '../operation-node/operator-node.js'; -import { JSONReferenceNode } from '../operation-node/json-reference-node.js'; +import { AliasNode } from 'kysely/dist/cjs/operation-node/alias-node.js'; +import { ColumnNode } from 'kysely/dist/cjs/operation-node/column-node.js'; +import { ReferenceNode } from 'kysely/dist/cjs/operation-node/reference-node.js'; +import { AnyColumn, AnyColumnWithTable, ExtractColumnType } from 'kysely/dist/cjs/util/type-utils.js'; +import { SelectQueryBuilderExpression } from 'kysely/dist/cjs/query-builder/select-query-builder-expression.js'; +import { ExpressionOrFactory } from 'kysely/dist/cjs/parser/expression-parser.js'; +import { DynamicReferenceBuilder } from 'kysely/dist/cjs/dynamic/dynamic-reference-builder.js'; +import { SelectType } from 'kysely/dist/cjs/util/column-type.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { SimpleReferenceExpressionNode } from 'kysely/dist/cjs/operation-node/simple-reference-expression-node.js'; +import { OrderByDirection } from 'kysely/dist/cjs/parser/order-by-parser.js'; +import { JSONOperatorWith$ } from 'kysely/dist/cjs/operation-node/operator-node.js'; +import { JSONReferenceNode } from 'kysely/dist/cjs/operation-node/json-reference-node.js'; export type StringReference = AnyColumn | AnyColumnWithTable; export type SimpleReferenceExpression = StringReference | DynamicReferenceBuilder; export type ReferenceExpression = SimpleReferenceExpression | ExpressionOrFactory; export type ReferenceExpressionOrList = ReferenceExpression | ReadonlyArray>; -export type ExtractTypeFromReferenceExpression = RE extends string ? SelectType> : RE extends SelectQueryBuilderExpression ? O[keyof O] | null : RE extends (qb: any) => SelectQueryBuilderExpression ? O[keyof O] | null : RE extends Expression ? O : RE extends (qb: any) => Expression ? O : DV; +export type ExtractTypeFromReferenceExpression = SelectType>; +export type ExtractRawTypeFromReferenceExpression = RE extends string ? ExtractTypeFromStringReference : RE extends SelectQueryBuilderExpression ? O[keyof O] | null : RE extends (qb: any) => SelectQueryBuilderExpression ? O[keyof O] | null : RE extends Expression ? O : RE extends (qb: any) => Expression ? O : DV; export type ExtractTypeFromStringReference = RE extends `${infer SC}.${infer T}.${infer C}` ? `${SC}.${T}` extends TB ? C extends keyof DB[`${SC}.${T}`] ? DB[`${SC}.${T}`][C] : never : never : RE extends `${infer T}.${infer C}` ? T extends TB ? C extends keyof DB[T] ? DB[T][C] : never : never : RE extends AnyColumn ? ExtractColumnType : DV; export type OrderedColumnName = C extends `${string} ${infer O}` ? O extends OrderByDirection ? C : never : C; export type ExtractColumnNameFromOrderedColumnName = C extends `${infer CL} ${infer O}` ? O extends OrderByDirection ? CL : never : C; diff --git a/node_modules/kysely/dist/cjs/parser/returning-parser.d.ts b/node_modules/kysely/dist/cjs/parser/returning-parser.d.ts index 4a41b30..35ccad7 100644 --- a/node_modules/kysely/dist/cjs/parser/returning-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/returning-parser.d.ts @@ -1,7 +1,7 @@ -import { DeleteResult } from '../query-builder/delete-result.js'; -import { InsertResult } from '../query-builder/insert-result.js'; -import { UpdateResult } from '../query-builder/update-result.js'; -import { Selection, AllSelection, CallbackSelection } from './select-parser.js'; +import { DeleteResult } from 'kysely/dist/cjs/query-builder/delete-result.js'; +import { InsertResult } from 'kysely/dist/cjs/query-builder/insert-result.js'; +import { UpdateResult } from 'kysely/dist/cjs/query-builder/update-result.js'; +import { Selection, AllSelection, CallbackSelection } from 'kysely/dist/cjs/parser/select-parser.js'; export type ReturningRow = O extends InsertResult ? Selection : O extends DeleteResult ? Selection : O extends UpdateResult ? Selection : O & Selection; export type ReturningCallbackRow = O extends InsertResult ? CallbackSelection : O extends DeleteResult ? CallbackSelection : O extends UpdateResult ? CallbackSelection : O & CallbackSelection; export type ReturningAllRow = O extends InsertResult ? AllSelection : O extends DeleteResult ? AllSelection : O extends UpdateResult ? AllSelection : O & AllSelection; diff --git a/node_modules/kysely/dist/cjs/parser/select-parser.d.ts b/node_modules/kysely/dist/cjs/parser/select-parser.d.ts index d15c377..be1bcdb 100644 --- a/node_modules/kysely/dist/cjs/parser/select-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/select-parser.d.ts @@ -1,11 +1,11 @@ -import { AliasedSelectQueryBuilder } from '../query-builder/select-query-builder.js'; -import { SelectionNode } from '../operation-node/selection-node.js'; -import { AnyAliasedColumn, AnyAliasedColumnWithTable, AnyColumn, AnyColumnWithTable, DrainOuterGeneric, ExtractColumnType } from '../util/type-utils.js'; -import { DynamicReferenceBuilder } from '../dynamic/dynamic-reference-builder.js'; -import { AliasedExpressionOrFactory } from './expression-parser.js'; -import { SelectType } from '../util/column-type.js'; -import { AliasedExpression } from '../expression/expression.js'; -import { ExpressionBuilder } from '../expression/expression-builder.js'; +import { AliasedSelectQueryBuilder } from 'kysely/dist/cjs/query-builder/select-query-builder.js'; +import { SelectionNode } from 'kysely/dist/cjs/operation-node/selection-node.js'; +import { AnyAliasedColumn, AnyAliasedColumnWithTable, AnyColumn, AnyColumnWithTable, DrainOuterGeneric, ExtractColumnType } from 'kysely/dist/cjs/util/type-utils.js'; +import { DynamicReferenceBuilder } from 'kysely/dist/cjs/dynamic/dynamic-reference-builder.js'; +import { AliasedExpressionOrFactory } from 'kysely/dist/cjs/parser/expression-parser.js'; +import { SelectType } from 'kysely/dist/cjs/util/column-type.js'; +import { AliasedExpression } from 'kysely/dist/cjs/expression/expression.js'; +import { ExpressionBuilder } from 'kysely/dist/cjs/expression/expression-builder.js'; export type SelectExpression = AnyAliasedColumnWithTable | AnyAliasedColumn | AnyColumnWithTable | AnyColumn | DynamicReferenceBuilder | AliasedExpressionOrFactory; export type SelectCallback = (eb: ExpressionBuilder) => ReadonlyArray>; /** diff --git a/node_modules/kysely/dist/cjs/parser/set-operation-parser.d.ts b/node_modules/kysely/dist/cjs/parser/set-operation-parser.d.ts index 34ffc3e..df5c497 100644 --- a/node_modules/kysely/dist/cjs/parser/set-operation-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/set-operation-parser.d.ts @@ -1,5 +1,5 @@ -import { ExpressionBuilder } from '../expression/expression-builder.js'; -import { Expression } from '../expression/expression.js'; -import { SetOperator, SetOperationNode } from '../operation-node/set-operation-node.js'; +import { ExpressionBuilder } from 'kysely/dist/cjs/expression/expression-builder.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { SetOperator, SetOperationNode } from 'kysely/dist/cjs/operation-node/set-operation-node.js'; export type SetOperandExpression = Expression | ReadonlyArray> | ((eb: ExpressionBuilder) => Expression | ReadonlyArray>); export declare function parseSetOperations(operator: SetOperator, expression: SetOperandExpression, all: boolean): SetOperationNode[]; diff --git a/node_modules/kysely/dist/cjs/parser/table-parser.d.ts b/node_modules/kysely/dist/cjs/parser/table-parser.d.ts index 05b58c4..98c5817 100644 --- a/node_modules/kysely/dist/cjs/parser/table-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/table-parser.d.ts @@ -1,9 +1,9 @@ -import { AliasNode } from '../operation-node/alias-node.js'; -import { TableNode } from '../operation-node/table-node.js'; -import { AliasedExpressionOrFactory } from './expression-parser.js'; -import { OperationNode } from '../operation-node/operation-node.js'; -import { AliasedExpression } from '../expression/expression.js'; -import { DrainOuterGeneric, ShallowRecord } from '../util/type-utils.js'; +import { AliasNode } from 'kysely/dist/cjs/operation-node/alias-node.js'; +import { TableNode } from 'kysely/dist/cjs/operation-node/table-node.js'; +import { AliasedExpressionOrFactory } from 'kysely/dist/cjs/parser/expression-parser.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { AliasedExpression } from 'kysely/dist/cjs/expression/expression.js'; +import { DrainOuterGeneric, ShallowRecord } from 'kysely/dist/cjs/util/type-utils.js'; export type TableExpression = AnyAliasedTable | AnyTable | AliasedExpressionOrFactory; export type TableExpressionOrList = TableExpression | ReadonlyArray>; export type TableReference = AnyAliasedTable | AnyTable | AliasedExpression; diff --git a/node_modules/kysely/dist/cjs/parser/tuple-parser.d.ts b/node_modules/kysely/dist/cjs/parser/tuple-parser.d.ts index 032ea46..2101bdf 100644 --- a/node_modules/kysely/dist/cjs/parser/tuple-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/tuple-parser.d.ts @@ -1,6 +1,6 @@ -import { DrainOuterGeneric } from '../util/type-utils.js'; -import { ExtractTypeFromReferenceExpression } from './reference-parser.js'; -import { ExtractTypeFromValueExpression } from './value-parser.js'; +import { DrainOuterGeneric } from 'kysely/dist/cjs/util/type-utils.js'; +import { ExtractTypeFromReferenceExpression } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { ExtractTypeFromValueExpression } from 'kysely/dist/cjs/parser/value-parser.js'; export type RefTuple2 = DrainOuterGeneric<[ ExtractTypeFromReferenceExpression, ExtractTypeFromReferenceExpression diff --git a/node_modules/kysely/dist/cjs/parser/update-set-parser.d.ts b/node_modules/kysely/dist/cjs/parser/update-set-parser.d.ts index d4b2dd0..184e344 100644 --- a/node_modules/kysely/dist/cjs/parser/update-set-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/update-set-parser.d.ts @@ -1,10 +1,13 @@ -import { ColumnUpdateNode } from '../operation-node/column-update-node.js'; -import { ExpressionBuilder } from '../expression/expression-builder.js'; -import { UpdateKeys, UpdateType } from '../util/column-type.js'; -import { ValueExpression } from './value-parser.js'; +import { ColumnUpdateNode } from 'kysely/dist/cjs/operation-node/column-update-node.js'; +import { ExpressionBuilder } from 'kysely/dist/cjs/expression/expression-builder.js'; +import { UpdateKeys, UpdateType } from 'kysely/dist/cjs/util/column-type.js'; +import { ValueExpression } from 'kysely/dist/cjs/parser/value-parser.js'; +import { ExtractRawTypeFromReferenceExpression, ReferenceExpression } from 'kysely/dist/cjs/parser/reference-parser.js'; export type UpdateObject = { [C in UpdateKeys]?: ValueExpression> | undefined; }; export type UpdateObjectFactory = (eb: ExpressionBuilder) => UpdateObject; -export type UpdateExpression = UpdateObject | UpdateObjectFactory; -export declare function parseUpdateExpression(update: UpdateExpression): ReadonlyArray; +export type UpdateObjectExpression = UpdateObject | UpdateObjectFactory; +export type ExtractUpdateTypeFromReferenceExpression = UpdateType>; +export declare function parseUpdate(...args: [UpdateObjectExpression] | [ReferenceExpression, ValueExpression]): ReadonlyArray; +export declare function parseUpdateObjectExpression(update: UpdateObjectExpression): ReadonlyArray; diff --git a/node_modules/kysely/dist/cjs/parser/update-set-parser.js b/node_modules/kysely/dist/cjs/parser/update-set-parser.js index bbb1618..e741a9e 100644 --- a/node_modules/kysely/dist/cjs/parser/update-set-parser.js +++ b/node_modules/kysely/dist/cjs/parser/update-set-parser.js @@ -1,12 +1,22 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.parseUpdateExpression = void 0; +exports.parseUpdateObjectExpression = exports.parseUpdate = void 0; const column_node_js_1 = require("../operation-node/column-node.js"); const column_update_node_js_1 = require("../operation-node/column-update-node.js"); const expression_builder_js_1 = require("../expression/expression-builder.js"); const object_utils_js_1 = require("../util/object-utils.js"); const value_parser_js_1 = require("./value-parser.js"); -function parseUpdateExpression(update) { +const reference_parser_js_1 = require("./reference-parser.js"); +function parseUpdate(...args) { + if (args.length === 2) { + return [ + column_update_node_js_1.ColumnUpdateNode.create((0, reference_parser_js_1.parseReferenceExpression)(args[0]), (0, value_parser_js_1.parseValueExpression)(args[1])), + ]; + } + return parseUpdateObjectExpression(args[0]); +} +exports.parseUpdate = parseUpdate; +function parseUpdateObjectExpression(update) { const updateObj = (0, object_utils_js_1.isFunction)(update) ? update((0, expression_builder_js_1.expressionBuilder)()) : update; return Object.entries(updateObj) .filter(([_, value]) => value !== undefined) @@ -14,4 +24,4 @@ function parseUpdateExpression(update) { return column_update_node_js_1.ColumnUpdateNode.create(column_node_js_1.ColumnNode.create(key), (0, value_parser_js_1.parseValueExpression)(value)); }); } -exports.parseUpdateExpression = parseUpdateExpression; +exports.parseUpdateObjectExpression = parseUpdateObjectExpression; diff --git a/node_modules/kysely/dist/cjs/parser/value-parser.d.ts b/node_modules/kysely/dist/cjs/parser/value-parser.d.ts index 353d16e..ce7dc8b 100644 --- a/node_modules/kysely/dist/cjs/parser/value-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/value-parser.d.ts @@ -1,8 +1,8 @@ -import { ValueNode } from '../operation-node/value-node.js'; -import { ExpressionOrFactory } from './expression-parser.js'; -import { OperationNode } from '../operation-node/operation-node.js'; -import { Expression } from '../expression/expression.js'; -import { SelectQueryBuilderExpression } from '../query-builder/select-query-builder-expression.js'; +import { ValueNode } from 'kysely/dist/cjs/operation-node/value-node.js'; +import { ExpressionOrFactory } from 'kysely/dist/cjs/parser/expression-parser.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { SelectQueryBuilderExpression } from 'kysely/dist/cjs/query-builder/select-query-builder-expression.js'; export type ValueExpression = V | ExpressionOrFactory; export type ValueExpressionOrList = ValueExpression | ReadonlyArray>; export type ExtractTypeFromValueExpressionOrList = VE extends ReadonlyArray ? ExtractTypeFromValueExpression : ExtractTypeFromValueExpression; diff --git a/node_modules/kysely/dist/cjs/parser/with-parser.d.ts b/node_modules/kysely/dist/cjs/parser/with-parser.d.ts index 63183fc..d4092ce 100644 --- a/node_modules/kysely/dist/cjs/parser/with-parser.d.ts +++ b/node_modules/kysely/dist/cjs/parser/with-parser.d.ts @@ -1,11 +1,11 @@ -import { UpdateQueryBuilder } from '../query-builder/update-query-builder.js'; -import { DeleteQueryBuilder } from '../query-builder/delete-query-builder.js'; -import { InsertQueryBuilder } from '../query-builder/insert-query-builder.js'; -import { QueryCreator } from '../query-creator.js'; -import { Expression } from '../expression/expression.js'; -import { ShallowRecord } from '../util/type-utils.js'; -import { CTEBuilderCallback } from '../query-builder/cte-builder.js'; -import { CommonTableExpressionNode } from '../operation-node/common-table-expression-node.js'; +import { UpdateQueryBuilder } from 'kysely/dist/cjs/query-builder/update-query-builder.js'; +import { DeleteQueryBuilder } from 'kysely/dist/cjs/query-builder/delete-query-builder.js'; +import { InsertQueryBuilder } from 'kysely/dist/cjs/query-builder/insert-query-builder.js'; +import { QueryCreator } from 'kysely/dist/cjs/query-creator.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { ShallowRecord } from 'kysely/dist/cjs/util/type-utils.js'; +import { CTEBuilderCallback } from 'kysely/dist/cjs/query-builder/cte-builder.js'; +import { CommonTableExpressionNode } from 'kysely/dist/cjs/operation-node/common-table-expression-node.js'; export type CommonTableExpression = (creator: QueryCreator) => CommonTableExpressionOutput; export type RecursiveCommonTableExpression = (creator: QueryCreator]: ExtractRowFromCommonTableExpressionName; diff --git a/node_modules/kysely/dist/cjs/plugin/kysely-plugin.d.ts b/node_modules/kysely/dist/cjs/plugin/kysely-plugin.d.ts index 098e5c8..35ca9da 100644 --- a/node_modules/kysely/dist/cjs/plugin/kysely-plugin.d.ts +++ b/node_modules/kysely/dist/cjs/plugin/kysely-plugin.d.ts @@ -1,7 +1,7 @@ -import { QueryResult } from '../driver/database-connection.js'; -import { RootOperationNode } from '../query-compiler/query-compiler.js'; -import { QueryId } from '../util/query-id.js'; -import { UnknownRow } from '../util/type-utils.js'; +import { QueryResult } from 'kysely/dist/cjs/driver/database-connection.js'; +import { RootOperationNode } from 'kysely/dist/cjs/query-compiler/query-compiler.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +import { UnknownRow } from 'kysely/dist/cjs/util/type-utils.js'; export interface KyselyPlugin { /** * This is called for each query before it is executed. You can modify the query by diff --git a/node_modules/kysely/dist/cjs/plugin/with-schema/with-schema-transformer.js b/node_modules/kysely/dist/cjs/plugin/with-schema/with-schema-transformer.js index 4b3caa6..97287a4 100644 --- a/node_modules/kysely/dist/cjs/plugin/with-schema/with-schema-transformer.js +++ b/node_modules/kysely/dist/cjs/plugin/with-schema/with-schema-transformer.js @@ -19,12 +19,14 @@ const ROOT_OPERATION_NODES = (0, object_utils_js_1.freeze)({ CreateTableNode: true, CreateTypeNode: true, CreateViewNode: true, + CreateTriggerNode: true, DeleteQueryNode: true, DropIndexNode: true, DropSchemaNode: true, DropTableNode: true, DropTypeNode: true, DropViewNode: true, + DropTriggerNode: true, InsertQueryNode: true, RawNode: true, SelectQueryNode: true, diff --git a/node_modules/kysely/dist/cjs/query-builder/aggregate-function-builder.d.ts b/node_modules/kysely/dist/cjs/query-builder/aggregate-function-builder.d.ts index 6f9b8ee..85401ee 100644 --- a/node_modules/kysely/dist/cjs/query-builder/aggregate-function-builder.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/aggregate-function-builder.d.ts @@ -1,11 +1,11 @@ -import { AggregateFunctionNode } from '../operation-node/aggregate-function-node.js'; -import { AliasNode } from '../operation-node/alias-node.js'; -import { OverBuilder } from './over-builder.js'; -import { AliasableExpression, AliasedExpression, Expression } from '../expression/expression.js'; -import { ReferenceExpression } from '../parser/reference-parser.js'; -import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js'; -import { SqlBool } from '../util/type-utils.js'; -import { ExpressionOrFactory } from '../parser/expression-parser.js'; +import { AggregateFunctionNode } from 'kysely/dist/cjs/operation-node/aggregate-function-node.js'; +import { AliasNode } from 'kysely/dist/cjs/operation-node/alias-node.js'; +import { OverBuilder } from 'kysely/dist/cjs/query-builder/over-builder.js'; +import { AliasableExpression, AliasedExpression, Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { ReferenceExpression } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { ComparisonOperatorExpression, OperandValueExpressionOrList } from 'kysely/dist/cjs/parser/binary-operation-parser.js'; +import { SqlBool } from 'kysely/dist/cjs/util/type-utils.js'; +import { ExpressionOrFactory } from 'kysely/dist/cjs/parser/expression-parser.js'; export declare class AggregateFunctionBuilder implements AliasableExpression { #private; constructor(props: AggregateFunctionBuilderProps); diff --git a/node_modules/kysely/dist/cjs/query-builder/case-builder.d.ts b/node_modules/kysely/dist/cjs/query-builder/case-builder.d.ts index bbe83c7..4bc9062 100644 --- a/node_modules/kysely/dist/cjs/query-builder/case-builder.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/case-builder.d.ts @@ -1,9 +1,9 @@ -import { Expression } from '../expression/expression.js'; -import { ExpressionWrapper } from '../expression/expression-wrapper.js'; -import { ReferenceExpression } from '../parser/reference-parser.js'; -import { CaseNode } from '../operation-node/case-node.js'; -import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js'; -import { KyselyTypeError } from '../util/type-error.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { ExpressionWrapper } from 'kysely/dist/cjs/expression/expression-wrapper.js'; +import { ReferenceExpression } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { CaseNode } from 'kysely/dist/cjs/operation-node/case-node.js'; +import { ComparisonOperatorExpression, OperandValueExpressionOrList } from 'kysely/dist/cjs/parser/binary-operation-parser.js'; +import { KyselyTypeError } from 'kysely/dist/cjs/util/type-error.js'; export declare class CaseBuilder implements Whenable { #private; constructor(props: CaseBuilderProps); diff --git a/node_modules/kysely/dist/cjs/query-builder/cte-builder.d.ts b/node_modules/kysely/dist/cjs/query-builder/cte-builder.d.ts index 8564d5b..ef22570 100644 --- a/node_modules/kysely/dist/cjs/query-builder/cte-builder.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/cte-builder.d.ts @@ -1,5 +1,5 @@ -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { CommonTableExpressionNode } from '../operation-node/common-table-expression-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { CommonTableExpressionNode } from 'kysely/dist/cjs/operation-node/common-table-expression-node.js'; export declare class CTEBuilder implements OperationNodeSource { #private; constructor(props: CTEBuilderProps); diff --git a/node_modules/kysely/dist/cjs/query-builder/delete-query-builder.d.ts b/node_modules/kysely/dist/cjs/query-builder/delete-query-builder.d.ts index f510d14..841ec03 100644 --- a/node_modules/kysely/dist/cjs/query-builder/delete-query-builder.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/delete-query-builder.d.ts @@ -1,28 +1,28 @@ -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { JoinCallbackExpression, JoinReferenceExpression } from '../parser/join-parser.js'; -import { From, FromTables, TableExpression } from '../parser/table-parser.js'; -import { SelectExpression, SelectCallback } from '../parser/select-parser.js'; -import { ReturningAllRow, ReturningCallbackRow, ReturningRow } from '../parser/returning-parser.js'; -import { ReferenceExpression } from '../parser/reference-parser.js'; -import { QueryNode } from '../operation-node/query-node.js'; -import { DrainOuterGeneric, NarrowPartial, Nullable, ShallowRecord, SimplifyResult, SimplifySingleResult, SqlBool } from '../util/type-utils.js'; -import { Compilable } from '../util/compilable.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { QueryId } from '../util/query-id.js'; -import { KyselyPlugin } from '../plugin/kysely-plugin.js'; -import { WhereInterface } from './where-interface.js'; -import { ReturningInterface } from './returning-interface.js'; -import { NoResultErrorConstructor } from './no-result-error.js'; -import { DeleteResult } from './delete-result.js'; -import { DeleteQueryNode } from '../operation-node/delete-query-node.js'; -import { OrderByDirectionExpression, OrderByExpression } from '../parser/order-by-parser.js'; -import { Explainable, ExplainFormat } from '../util/explainable.js'; -import { AliasedExpression, Expression } from '../expression/expression.js'; -import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js'; -import { KyselyTypeError } from '../util/type-error.js'; -import { Streamable } from '../util/streamable.js'; -import { ExpressionOrFactory } from '../parser/expression-parser.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { JoinCallbackExpression, JoinReferenceExpression } from 'kysely/dist/cjs/parser/join-parser.js'; +import { From, FromTables, TableExpression } from 'kysely/dist/cjs/parser/table-parser.js'; +import { SelectExpression, SelectCallback } from 'kysely/dist/cjs/parser/select-parser.js'; +import { ReturningAllRow, ReturningCallbackRow, ReturningRow } from 'kysely/dist/cjs/parser/returning-parser.js'; +import { ReferenceExpression } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { QueryNode } from 'kysely/dist/cjs/operation-node/query-node.js'; +import { DrainOuterGeneric, NarrowPartial, Nullable, ShallowRecord, SimplifyResult, SimplifySingleResult, SqlBool } from 'kysely/dist/cjs/util/type-utils.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +import { KyselyPlugin } from 'kysely/dist/cjs/plugin/kysely-plugin.js'; +import { WhereInterface } from 'kysely/dist/cjs/query-builder/where-interface.js'; +import { ReturningInterface } from 'kysely/dist/cjs/query-builder/returning-interface.js'; +import { NoResultErrorConstructor } from 'kysely/dist/cjs/query-builder/no-result-error.js'; +import { DeleteResult } from 'kysely/dist/cjs/query-builder/delete-result.js'; +import { DeleteQueryNode } from 'kysely/dist/cjs/operation-node/delete-query-node.js'; +import { OrderByDirectionExpression, OrderByExpression } from 'kysely/dist/cjs/parser/order-by-parser.js'; +import { Explainable, ExplainFormat } from 'kysely/dist/cjs/util/explainable.js'; +import { AliasedExpression, Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { ComparisonOperatorExpression, OperandValueExpressionOrList } from 'kysely/dist/cjs/parser/binary-operation-parser.js'; +import { KyselyTypeError } from 'kysely/dist/cjs/util/type-error.js'; +import { Streamable } from 'kysely/dist/cjs/util/streamable.js'; +import { ExpressionOrFactory } from 'kysely/dist/cjs/parser/expression-parser.js'; export declare class DeleteQueryBuilder implements WhereInterface, ReturningInterface, OperationNodeSource, Compilable, Explainable, Streamable { #private; constructor(props: DeleteQueryBuilderProps); diff --git a/node_modules/kysely/dist/cjs/query-builder/function-module.d.ts b/node_modules/kysely/dist/cjs/query-builder/function-module.d.ts index 592c5e9..5620351 100644 --- a/node_modules/kysely/dist/cjs/query-builder/function-module.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/function-module.d.ts @@ -1,12 +1,13 @@ -import { DynamicReferenceBuilder } from '../dynamic/dynamic-reference-builder.js'; -import { ExpressionWrapper } from '../expression/expression-wrapper.js'; -import { Expression } from '../expression/expression.js'; -import { CoalesceReferenceExpressionList } from '../parser/coalesce-parser.js'; -import { ExtractTypeFromReferenceExpression, ReferenceExpression, StringReference, ExtractTypeFromStringReference } from '../parser/reference-parser.js'; -import { KyselyTypeError } from '../util/type-error.js'; -import { Equals, IsAny } from '../util/type-utils.js'; -import { AggregateFunctionBuilder } from './aggregate-function-builder.js'; -import { SelectQueryBuilderExpression } from '../query-builder/select-query-builder-expression.js'; +import { DynamicReferenceBuilder } from 'kysely/dist/cjs/dynamic/dynamic-reference-builder.js'; +import { ExpressionWrapper } from 'kysely/dist/cjs/expression/expression-wrapper.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { CoalesceReferenceExpressionList } from 'kysely/dist/cjs/parser/coalesce-parser.js'; +import { ExtractTypeFromReferenceExpression, ReferenceExpression, StringReference, ExtractTypeFromStringReference } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { KyselyTypeError } from 'kysely/dist/cjs/util/type-error.js'; +import { Equals, IsAny } from 'kysely/dist/cjs/util/type-utils.js'; +import { AggregateFunctionBuilder } from 'kysely/dist/cjs/query-builder/aggregate-function-builder.js'; +import { SelectQueryBuilderExpression } from 'kysely/dist/cjs/query-builder/select-query-builder-expression.js'; +import { Selectable } from 'kysely/dist/cjs/util/column-type.js'; /** * Helpers for type safe SQL function calls. * @@ -17,21 +18,47 @@ import { SelectQueryBuilderExpression } from '../query-builder/select-query-buil * * * - * This example uses the `fn` module to select some aggregates: + * This example shows how to create function calls. These examples also work in any + * other place (`where` calls, updates, inserts etc.). The only difference is that you + * leave out the alias (the `as` call) if you use these in any other place than `select`. * * ```ts + * import { sql } from 'kysely' + * * const result = await db.selectFrom('person') * .innerJoin('pet', 'pet.owner_id', 'person.id') - * .select(({ fn }) => [ + * .select(({ fn, val, ref }) => [ * 'person.id', * * // The `fn` module contains the most common * // functions. * fn.count('pet.id').as('pet_count'), * - * // You can call any function using the - * // `agg` method - * fn.agg('array_agg', ['pet.name']).as('pet_names') + * // You can call any function by calling `fn` + * // directly. The arguments are treated as column + * // references by default. If you want to pass in + * // values, use the `val` function. + * fn('concat', [ + * val('Ms. '), + * 'first_name', + * val(' '), + * 'last_name' + * ]).as('full_name_with_title'), + * + * // You can call any aggregate function using the + * // `fn.agg` function. + * fn.agg('array_agg', ['pet.name']).as('pet_names'), + * + * // And once again, you can use the `sql` + * // template tag. The template tag substitutions + * // are treated as values by default. If you want + * // to reference columns, you can use the `ref` + * // function. + * sql`concat( + * ${ref('first_name')}, + * ' ', + * ${ref('last_name')} + * )`.as('full_name') * ]) * .groupBy('person.id') * .having((eb) => eb.fn.count('pet.id'), '>', 10) @@ -44,11 +71,13 @@ import { SelectQueryBuilderExpression } from '../query-builder/select-query-buil * select * "person"."id", * count("pet"."id") as "pet_count", - * array_agg("pet"."name") as "pet_names" + * concat($1, "first_name", $2, "last_name") as "full_name_with_title", + * array_agg("pet"."name") as "pet_names", + * concat("first_name", ' ', "last_name") as "full_name" * from "person" * inner join "pet" on "pet"."owner_id" = "person"."id" * group by "person"."id" - * having count("pet"."id") > $1 + * having count("pet"."id") > $3 * ``` */ export interface FunctionModule { @@ -540,6 +569,50 @@ export interface FunctionModule { any>(expr: RE): Exclude, null> extends ReadonlyArray ? ExpressionWrapper : KyselyTypeError<'any(expr) call failed: expr must be an array'>; any(subquery: SelectQueryBuilderExpression>): ExpressionWrapper; any(expr: Expression>): ExpressionWrapper; + /** + * Creates a json_agg function call. + * + * This function is only available on PostgreSQL. + * + * ```ts + * db.selectFrom('person') + * .innerJoin('pet', 'pet.owner_id', 'person.id') + * .select((eb) => ['first_name', eb.fn.jsonAgg('pet').as('pets')]) + * .groupBy('person.first_name') + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * select "first_name", json_agg("pet") as "pets" + * from "person" + * inner join "pet" on "pet"."owner_id" = "person"."id" + * group by "person"."first_name" + * ``` + */ + jsonAgg>(table: T): AggregateFunctionBuilder[] : T extends Expression ? O[] : never>; + /** + * Creates a to_json function call. + * + * This function is only available on PostgreSQL. + * + * ```ts + * db.selectFrom('person') + * .innerJoin('pet', 'pet.owner_id', 'person.id') + * .select((eb) => ['first_name', eb.fn.toJson('pet').as('pet')]) + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * select "first_name", to_json("pet") as "pet" + * from "person" + * inner join "pet" on "pet"."owner_id" = "person"."id" + * ``` + */ + toJson>(table: T): ExpressionWrapper : T extends Expression ? O : never>; } export declare function createFunctionModule(): FunctionModule; type OutputBoundStringReference, O> = IsAny extends true ? C : Equals | null, O | null> extends true ? C : never; diff --git a/node_modules/kysely/dist/cjs/query-builder/function-module.js b/node_modules/kysely/dist/cjs/query-builder/function-module.js index b894b62..01a2a51 100644 --- a/node_modules/kysely/dist/cjs/query-builder/function-module.js +++ b/node_modules/kysely/dist/cjs/query-builder/function-module.js @@ -7,6 +7,8 @@ const function_node_js_1 = require("../operation-node/function-node.js"); const reference_parser_js_1 = require("../parser/reference-parser.js"); const select_parser_js_1 = require("../parser/select-parser.js"); const aggregate_function_builder_js_1 = require("./aggregate-function-builder.js"); +const object_utils_js_1 = require("../util/object-utils.js"); +const table_parser_js_1 = require("../parser/table-parser.js"); function createFunctionModule() { const fn = (name, args) => { return new expression_wrapper_js_1.ExpressionWrapper(function_node_js_1.FunctionNode.create(name, (0, reference_parser_js_1.parseReferenceExpressionOrList)(args))); @@ -44,6 +46,18 @@ function createFunctionModule() { any(column) { return fn('any', [column]); }, + jsonAgg(table) { + return new aggregate_function_builder_js_1.AggregateFunctionBuilder({ + aggregateFunctionNode: aggregate_function_node_js_1.AggregateFunctionNode.create('json_agg', [ + (0, object_utils_js_1.isString)(table) ? (0, table_parser_js_1.parseTable)(table) : table.toOperationNode(), + ]), + }); + }, + toJson(table) { + return new expression_wrapper_js_1.ExpressionWrapper(function_node_js_1.FunctionNode.create('to_json', [ + (0, object_utils_js_1.isString)(table) ? (0, table_parser_js_1.parseTable)(table) : table.toOperationNode(), + ])); + }, }); } exports.createFunctionModule = createFunctionModule; diff --git a/node_modules/kysely/dist/cjs/query-builder/having-interface.d.ts b/node_modules/kysely/dist/cjs/query-builder/having-interface.d.ts index b9f72e1..529d504 100644 --- a/node_modules/kysely/dist/cjs/query-builder/having-interface.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/having-interface.d.ts @@ -1,7 +1,7 @@ -import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js'; -import { ExpressionOrFactory } from '../parser/expression-parser.js'; -import { ReferenceExpression } from '../parser/reference-parser.js'; -import { SqlBool } from '../util/type-utils.js'; +import { ComparisonOperatorExpression, OperandValueExpressionOrList } from 'kysely/dist/cjs/parser/binary-operation-parser.js'; +import { ExpressionOrFactory } from 'kysely/dist/cjs/parser/expression-parser.js'; +import { ReferenceExpression } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { SqlBool } from 'kysely/dist/cjs/util/type-utils.js'; export interface HavingInterface { /** * Just like {@link WhereInterface.where | where} but adds a `having` statement diff --git a/node_modules/kysely/dist/cjs/query-builder/insert-query-builder.d.ts b/node_modules/kysely/dist/cjs/query-builder/insert-query-builder.d.ts index 6be4113..f4c749a 100644 --- a/node_modules/kysely/dist/cjs/query-builder/insert-query-builder.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/insert-query-builder.d.ts @@ -1,26 +1,26 @@ -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { SelectExpression, SelectCallback } from '../parser/select-parser.js'; -import { InsertObjectOrList, InsertObjectOrListFactory } from '../parser/insert-values-parser.js'; -import { InsertQueryNode } from '../operation-node/insert-query-node.js'; -import { QueryNode } from '../operation-node/query-node.js'; -import { NarrowPartial, SimplifyResult, SimplifySingleResult } from '../util/type-utils.js'; -import { UpdateExpression } from '../parser/update-set-parser.js'; -import { Compilable } from '../util/compilable.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { QueryId } from '../util/query-id.js'; -import { InsertResult } from './insert-result.js'; -import { KyselyPlugin } from '../plugin/kysely-plugin.js'; -import { ReturningCallbackRow, ReturningRow } from '../parser/returning-parser.js'; -import { NoResultErrorConstructor } from './no-result-error.js'; -import { ExpressionOrFactory } from '../parser/expression-parser.js'; -import { ReturningInterface } from './returning-interface.js'; -import { OnConflictBuilder, OnConflictDatabase, OnConflictDoNothingBuilder, OnConflictTables, OnConflictUpdateBuilder } from './on-conflict-builder.js'; -import { Selectable } from '../util/column-type.js'; -import { Explainable, ExplainFormat } from '../util/explainable.js'; -import { Expression } from '../expression/expression.js'; -import { KyselyTypeError } from '../util/type-error.js'; -import { Streamable } from '../util/streamable.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { SelectExpression, SelectCallback } from 'kysely/dist/cjs/parser/select-parser.js'; +import { InsertObjectOrList, InsertObjectOrListFactory } from 'kysely/dist/cjs/parser/insert-values-parser.js'; +import { InsertQueryNode } from 'kysely/dist/cjs/operation-node/insert-query-node.js'; +import { QueryNode } from 'kysely/dist/cjs/operation-node/query-node.js'; +import { NarrowPartial, SimplifyResult, SimplifySingleResult } from 'kysely/dist/cjs/util/type-utils.js'; +import { UpdateObjectExpression } from 'kysely/dist/cjs/parser/update-set-parser.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +import { InsertResult } from 'kysely/dist/cjs/query-builder/insert-result.js'; +import { KyselyPlugin } from 'kysely/dist/cjs/plugin/kysely-plugin.js'; +import { ReturningCallbackRow, ReturningRow } from 'kysely/dist/cjs/parser/returning-parser.js'; +import { NoResultErrorConstructor } from 'kysely/dist/cjs/query-builder/no-result-error.js'; +import { ExpressionOrFactory } from 'kysely/dist/cjs/parser/expression-parser.js'; +import { ReturningInterface } from 'kysely/dist/cjs/query-builder/returning-interface.js'; +import { OnConflictBuilder, OnConflictDatabase, OnConflictDoNothingBuilder, OnConflictTables, OnConflictUpdateBuilder } from 'kysely/dist/cjs/query-builder/on-conflict-builder.js'; +import { Selectable } from 'kysely/dist/cjs/util/column-type.js'; +import { Explainable, ExplainFormat } from 'kysely/dist/cjs/util/explainable.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { KyselyTypeError } from 'kysely/dist/cjs/util/type-error.js'; +import { Streamable } from 'kysely/dist/cjs/util/streamable.js'; export declare class InsertQueryBuilder implements ReturningInterface, OperationNodeSource, Compilable, Explainable, Streamable { #private; constructor(props: InsertQueryBuilderProps); @@ -60,13 +60,18 @@ export declare class InsertQueryBuilder implements R * }) * .executeTakeFirst() * + * // `insertId` is only available on dialects that + * // automatically return the id of the inserted row + * // such as MySQL and SQLite. On PostgreSQL, for example, + * // you need to add a `returning` clause to the query to + * // get anything out. See the "returning data" example. * console.log(result.insertId) * ``` * - * The generated SQL (PostgreSQL): + * The generated SQL (MySQL): * * ```sql - * insert into "person" ("first_name", "last_name", "age") values ($1, $2, $3) + * insert into `person` (`first_name`, `last_name`, `age`) values (?, ?, ?) * ``` * * @@ -131,11 +136,14 @@ export declare class InsertQueryBuilder implements R * ```ts * import { sql } from 'kysely' * + * const ani = "Ani" + * const ston = "ston" + * * const result = await db * .insertInto('person') * .values(({ ref, selectFrom, fn }) => ({ * first_name: 'Jennifer', - * last_name: sql`${'Ani'} || ${'ston'}`, + * last_name: sql`concat(${ani}, ${ston})`, * middle_name: ref('first_name'), * age: selectFrom('person') * .select(fn.avg('age') @@ -147,8 +155,18 @@ export declare class InsertQueryBuilder implements R * The generated SQL (PostgreSQL): * * ```sql - * insert into "person" ("first_name", "last_name", "age") - * values ($1, $2 || $3, (select avg("age") as "avg_age" from "person")) + * insert into "person" ( + * "first_name", + * "last_name", + * "middle_name", + * "age" + * ) + * values ( + * $1, + * concat($2, $3), + * "first_name", + * (select avg("age") as "avg_age" from "person") + * ) * ``` * * You can also use the callback version of subqueries or raw expressions: @@ -208,7 +226,7 @@ export declare class InsertQueryBuilder implements R * .select((eb) => [ * 'pet.name', * eb.val('Petson').as('last_name'), - * eb.val(7).as('age'), + * eb.lit(7).as('age'), * ]) * ) * .execute() @@ -218,7 +236,7 @@ export declare class InsertQueryBuilder implements R * * ```sql * insert into "person" ("first_name", "last_name", "age") - * select "pet"."name", $1 as "first_name", $2 as "last_name" from "pet" + * select "pet"."name", $1 as "last_name", 7 as "age from "pet" * ``` */ expression(expression: ExpressionOrFactory): InsertQueryBuilder; @@ -414,7 +432,7 @@ export declare class InsertQueryBuilder implements R * .onDuplicateKeyUpdate({ species: 'hamster' }) * ``` */ - onDuplicateKeyUpdate(update: UpdateExpression): InsertQueryBuilder; + onDuplicateKeyUpdate(update: UpdateObjectExpression): InsertQueryBuilder; /** * Allows you to return data from modified rows. * diff --git a/node_modules/kysely/dist/cjs/query-builder/insert-query-builder.js b/node_modules/kysely/dist/cjs/query-builder/insert-query-builder.js index ba57ff0..d89d1b8 100644 --- a/node_modules/kysely/dist/cjs/query-builder/insert-query-builder.js +++ b/node_modules/kysely/dist/cjs/query-builder/insert-query-builder.js @@ -77,7 +77,7 @@ class InsertQueryBuilder { * .select((eb) => [ * 'pet.name', * eb.val('Petson').as('last_name'), - * eb.val(7).as('age'), + * eb.lit(7).as('age'), * ]) * ) * .execute() @@ -87,7 +87,7 @@ class InsertQueryBuilder { * * ```sql * insert into "person" ("first_name", "last_name", "age") - * select "pet"."name", $1 as "first_name", $2 as "last_name" from "pet" + * select "pet"."name", $1 as "last_name", 7 as "age from "pet" * ``` */ expression(expression) { @@ -310,7 +310,7 @@ class InsertQueryBuilder { return new InsertQueryBuilder({ ...this.#props, queryNode: insert_query_node_js_1.InsertQueryNode.cloneWith(this.#props.queryNode, { - onDuplicateKey: on_duplicate_key_node_js_1.OnDuplicateKeyNode.create((0, update_set_parser_js_1.parseUpdateExpression)(update)), + onDuplicateKey: on_duplicate_key_node_js_1.OnDuplicateKeyNode.create((0, update_set_parser_js_1.parseUpdateObjectExpression)(update)), }), }); } diff --git a/node_modules/kysely/dist/cjs/query-builder/insert-result.d.ts b/node_modules/kysely/dist/cjs/query-builder/insert-result.d.ts index c16fb08..d22a9e5 100644 --- a/node_modules/kysely/dist/cjs/query-builder/insert-result.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/insert-result.d.ts @@ -23,7 +23,14 @@ */ export declare class InsertResult { /** - * The auto incrementing primary key + * The auto incrementing primary key of the inserted row. + * + * This property can be undefined when the query contains an `on conflict` + * clause that makes the query succeed even when nothing gets inserted. + * + * This property is always undefined on dialects like PostgreSQL that + * don't return the inserted id by default. On those dialects you need + * to use the {@link ReturningInterface.returning | returning} method. */ readonly insertId: bigint | undefined; /** diff --git a/node_modules/kysely/dist/cjs/query-builder/insert-result.js b/node_modules/kysely/dist/cjs/query-builder/insert-result.js index 6a3246d..b564a4a 100644 --- a/node_modules/kysely/dist/cjs/query-builder/insert-result.js +++ b/node_modules/kysely/dist/cjs/query-builder/insert-result.js @@ -26,7 +26,14 @@ exports.InsertResult = void 0; */ class InsertResult { /** - * The auto incrementing primary key + * The auto incrementing primary key of the inserted row. + * + * This property can be undefined when the query contains an `on conflict` + * clause that makes the query succeed even when nothing gets inserted. + * + * This property is always undefined on dialects like PostgreSQL that + * don't return the inserted id by default. On those dialects you need + * to use the {@link ReturningInterface.returning | returning} method. */ insertId; /** diff --git a/node_modules/kysely/dist/cjs/query-builder/join-builder.d.ts b/node_modules/kysely/dist/cjs/query-builder/join-builder.d.ts index 475acb1..06a0488 100644 --- a/node_modules/kysely/dist/cjs/query-builder/join-builder.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/join-builder.d.ts @@ -1,9 +1,9 @@ -import { JoinNode } from '../operation-node/join-node.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js'; -import { ExpressionOrFactory } from '../parser/expression-parser.js'; -import { ReferenceExpression } from '../parser/reference-parser.js'; -import { SqlBool } from '../util/type-utils.js'; +import { JoinNode } from 'kysely/dist/cjs/operation-node/join-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { ComparisonOperatorExpression, OperandValueExpressionOrList } from 'kysely/dist/cjs/parser/binary-operation-parser.js'; +import { ExpressionOrFactory } from 'kysely/dist/cjs/parser/expression-parser.js'; +import { ReferenceExpression } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { SqlBool } from 'kysely/dist/cjs/util/type-utils.js'; export declare class JoinBuilder implements OperationNodeSource { #private; constructor(props: JoinBuilderProps); diff --git a/node_modules/kysely/dist/cjs/query-builder/json-path-builder.d.ts b/node_modules/kysely/dist/cjs/query-builder/json-path-builder.d.ts index f173489..93dfff0 100644 --- a/node_modules/kysely/dist/cjs/query-builder/json-path-builder.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/json-path-builder.d.ts @@ -1,7 +1,7 @@ -import { AliasableExpression, AliasedExpression, Expression } from '../expression/expression.js'; -import { AliasNode } from '../operation-node/alias-node.js'; -import { JSONReferenceNode } from '../operation-node/json-reference-node.js'; -import { OperationNode } from '../operation-node/operation-node.js'; +import { AliasableExpression, AliasedExpression, Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { AliasNode } from 'kysely/dist/cjs/operation-node/alias-node.js'; +import { JSONReferenceNode } from 'kysely/dist/cjs/operation-node/json-reference-node.js'; +import { OperationNode } from 'kysely/dist/cjs/operation-node/operation-node.js'; export declare class JSONPathBuilder { #private; constructor(node: JSONReferenceNode); diff --git a/node_modules/kysely/dist/cjs/query-builder/no-result-error.d.ts b/node_modules/kysely/dist/cjs/query-builder/no-result-error.d.ts index b6423c2..2ac85ee 100644 --- a/node_modules/kysely/dist/cjs/query-builder/no-result-error.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/no-result-error.d.ts @@ -1,4 +1,4 @@ -import { QueryNode } from '../operation-node/query-node.js'; +import { QueryNode } from 'kysely/dist/cjs/operation-node/query-node.js'; export type NoResultErrorConstructor = new (node: QueryNode) => Error; export declare class NoResultError extends Error { /** diff --git a/node_modules/kysely/dist/cjs/query-builder/on-conflict-builder.d.ts b/node_modules/kysely/dist/cjs/query-builder/on-conflict-builder.d.ts index 803563e..f1bfe85 100644 --- a/node_modules/kysely/dist/cjs/query-builder/on-conflict-builder.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/on-conflict-builder.d.ts @@ -1,12 +1,12 @@ -import { Expression } from '../expression/expression.js'; -import { OnConflictNode } from '../operation-node/on-conflict-node.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js'; -import { ExpressionOrFactory } from '../parser/expression-parser.js'; -import { ReferenceExpression } from '../parser/reference-parser.js'; -import { UpdateExpression } from '../parser/update-set-parser.js'; -import { AnyColumn, SqlBool } from '../util/type-utils.js'; -import { WhereInterface } from './where-interface.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { OnConflictNode } from 'kysely/dist/cjs/operation-node/on-conflict-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { ComparisonOperatorExpression, OperandValueExpressionOrList } from 'kysely/dist/cjs/parser/binary-operation-parser.js'; +import { ExpressionOrFactory } from 'kysely/dist/cjs/parser/expression-parser.js'; +import { ReferenceExpression } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { UpdateObjectExpression } from 'kysely/dist/cjs/parser/update-set-parser.js'; +import { AnyColumn, SqlBool } from 'kysely/dist/cjs/util/type-utils.js'; +import { WhereInterface } from 'kysely/dist/cjs/query-builder/where-interface.js'; export declare class OnConflictBuilder implements WhereInterface { #private; constructor(props: OnConflictBuilderProps); @@ -435,7 +435,7 @@ export declare class OnConflictBuilder implements Where * ) * ``` */ - doUpdateSet(update: UpdateExpression, OnConflictTables, OnConflictTables>): OnConflictUpdateBuilder, OnConflictTables>; + doUpdateSet(update: UpdateObjectExpression, OnConflictTables, OnConflictTables>): OnConflictUpdateBuilder, OnConflictTables>; /** * Simply calls the provided function passing `this` as the only argument. `$call` returns * what the provided function returns. diff --git a/node_modules/kysely/dist/cjs/query-builder/on-conflict-builder.js b/node_modules/kysely/dist/cjs/query-builder/on-conflict-builder.js index cfb3a0b..b3b7e7e 100644 --- a/node_modules/kysely/dist/cjs/query-builder/on-conflict-builder.js +++ b/node_modules/kysely/dist/cjs/query-builder/on-conflict-builder.js @@ -175,7 +175,7 @@ class OnConflictBuilder { return new OnConflictUpdateBuilder({ ...this.#props, onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWith(this.#props.onConflictNode, { - updates: (0, update_set_parser_js_1.parseUpdateExpression)(update), + updates: (0, update_set_parser_js_1.parseUpdateObjectExpression)(update), }), }); } diff --git a/node_modules/kysely/dist/cjs/query-builder/over-builder.d.ts b/node_modules/kysely/dist/cjs/query-builder/over-builder.d.ts index 8517b91..1564fc1 100644 --- a/node_modules/kysely/dist/cjs/query-builder/over-builder.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/over-builder.d.ts @@ -1,9 +1,9 @@ -import { DynamicReferenceBuilder } from '../dynamic/dynamic-reference-builder.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { OverNode } from '../operation-node/over-node.js'; -import { OrderByDirectionExpression } from '../parser/order-by-parser.js'; -import { PartitionByExpression } from '../parser/partition-by-parser.js'; -import { StringReference } from '../parser/reference-parser.js'; +import { DynamicReferenceBuilder } from 'kysely/dist/cjs/dynamic/dynamic-reference-builder.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { OverNode } from 'kysely/dist/cjs/operation-node/over-node.js'; +import { OrderByDirectionExpression } from 'kysely/dist/cjs/parser/order-by-parser.js'; +import { PartitionByExpression } from 'kysely/dist/cjs/parser/partition-by-parser.js'; +import { StringReference } from 'kysely/dist/cjs/parser/reference-parser.js'; export declare class OverBuilder implements OperationNodeSource { #private; constructor(props: OverBuilderProps); diff --git a/node_modules/kysely/dist/cjs/query-builder/returning-interface.d.ts b/node_modules/kysely/dist/cjs/query-builder/returning-interface.d.ts index 6c10c86..fb1bd5c 100644 --- a/node_modules/kysely/dist/cjs/query-builder/returning-interface.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/returning-interface.d.ts @@ -1,6 +1,6 @@ -import { ReturningCallbackRow, ReturningRow } from '../parser/returning-parser.js'; -import { SelectCallback, SelectExpression } from '../parser/select-parser.js'; -import { Selectable } from '../util/column-type.js'; +import { ReturningCallbackRow, ReturningRow } from 'kysely/dist/cjs/parser/returning-parser.js'; +import { SelectCallback, SelectExpression } from 'kysely/dist/cjs/parser/select-parser.js'; +import { Selectable } from 'kysely/dist/cjs/util/column-type.js'; export interface ReturningInterface { /** * Allows you to return data from modified rows. diff --git a/node_modules/kysely/dist/cjs/query-builder/select-query-builder-expression.d.ts b/node_modules/kysely/dist/cjs/query-builder/select-query-builder-expression.d.ts index 3593f25..42c4c56 100644 --- a/node_modules/kysely/dist/cjs/query-builder/select-query-builder-expression.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/select-query-builder-expression.d.ts @@ -1,5 +1,5 @@ -import { AliasableExpression } from '../expression/expression.js'; -import { SelectQueryNode } from '../operation-node/select-query-node.js'; +import { AliasableExpression } from 'kysely/dist/cjs/expression/expression.js'; +import { SelectQueryNode } from 'kysely/dist/cjs/operation-node/select-query-node.js'; export interface SelectQueryBuilderExpression extends AliasableExpression { get isSelectQueryBuilder(): true; /** diff --git a/node_modules/kysely/dist/cjs/query-builder/select-query-builder.d.ts b/node_modules/kysely/dist/cjs/query-builder/select-query-builder.d.ts index b26ebf1..8221028 100644 --- a/node_modules/kysely/dist/cjs/query-builder/select-query-builder.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/select-query-builder.d.ts @@ -1,30 +1,30 @@ -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { JoinCallbackExpression, JoinReferenceExpression } from '../parser/join-parser.js'; -import { TableExpression } from '../parser/table-parser.js'; -import { SelectExpression, Selection, AllSelection, SelectCallback, CallbackSelection } from '../parser/select-parser.js'; -import { ReferenceExpression } from '../parser/reference-parser.js'; -import { SelectQueryNode } from '../operation-node/select-query-node.js'; -import { QueryNode } from '../operation-node/query-node.js'; -import { DrainOuterGeneric, NarrowPartial, Nullable, ShallowRecord, Simplify, SimplifySingleResult, SqlBool } from '../util/type-utils.js'; -import { OrderByDirectionExpression, OrderByExpression, DirectedOrderByStringReference, UndirectedOrderByExpression } from '../parser/order-by-parser.js'; -import { Compilable } from '../util/compilable.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { QueryId } from '../util/query-id.js'; -import { GroupByArg } from '../parser/group-by-parser.js'; -import { KyselyPlugin } from '../plugin/kysely-plugin.js'; -import { WhereInterface } from './where-interface.js'; -import { NoResultErrorConstructor } from './no-result-error.js'; -import { HavingInterface } from './having-interface.js'; -import { Explainable, ExplainFormat } from '../util/explainable.js'; -import { SetOperandExpression } from '../parser/set-operation-parser.js'; -import { AliasedExpression, Expression } from '../expression/expression.js'; -import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js'; -import { KyselyTypeError } from '../util/type-error.js'; -import { Selectable } from '../util/column-type.js'; -import { Streamable } from '../util/streamable.js'; -import { ExpressionOrFactory } from '../parser/expression-parser.js'; -import { ExpressionWrapper } from '../expression/expression-wrapper.js'; -import { SelectQueryBuilderExpression } from './select-query-builder-expression.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { JoinCallbackExpression, JoinReferenceExpression } from 'kysely/dist/cjs/parser/join-parser.js'; +import { TableExpression } from 'kysely/dist/cjs/parser/table-parser.js'; +import { SelectExpression, Selection, AllSelection, SelectCallback, CallbackSelection } from 'kysely/dist/cjs/parser/select-parser.js'; +import { ReferenceExpression } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { SelectQueryNode } from 'kysely/dist/cjs/operation-node/select-query-node.js'; +import { QueryNode } from 'kysely/dist/cjs/operation-node/query-node.js'; +import { DrainOuterGeneric, NarrowPartial, Nullable, ShallowRecord, Simplify, SimplifySingleResult, SqlBool } from 'kysely/dist/cjs/util/type-utils.js'; +import { OrderByDirectionExpression, OrderByExpression, DirectedOrderByStringReference, UndirectedOrderByExpression } from 'kysely/dist/cjs/parser/order-by-parser.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +import { GroupByArg } from 'kysely/dist/cjs/parser/group-by-parser.js'; +import { KyselyPlugin } from 'kysely/dist/cjs/plugin/kysely-plugin.js'; +import { WhereInterface } from 'kysely/dist/cjs/query-builder/where-interface.js'; +import { NoResultErrorConstructor } from 'kysely/dist/cjs/query-builder/no-result-error.js'; +import { HavingInterface } from 'kysely/dist/cjs/query-builder/having-interface.js'; +import { Explainable, ExplainFormat } from 'kysely/dist/cjs/util/explainable.js'; +import { SetOperandExpression } from 'kysely/dist/cjs/parser/set-operation-parser.js'; +import { AliasedExpression, Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { ComparisonOperatorExpression, OperandValueExpressionOrList } from 'kysely/dist/cjs/parser/binary-operation-parser.js'; +import { KyselyTypeError } from 'kysely/dist/cjs/util/type-error.js'; +import { Selectable } from 'kysely/dist/cjs/util/column-type.js'; +import { Streamable } from 'kysely/dist/cjs/util/streamable.js'; +import { ExpressionOrFactory } from 'kysely/dist/cjs/parser/expression-parser.js'; +import { ExpressionWrapper } from 'kysely/dist/cjs/expression/expression-wrapper.js'; +import { SelectQueryBuilderExpression } from 'kysely/dist/cjs/query-builder/select-query-builder-expression.js'; export interface SelectQueryBuilder extends WhereInterface, HavingInterface, SelectQueryBuilderExpression, Compilable, Explainable, Streamable { /** * Adds a `where` expression to the query. diff --git a/node_modules/kysely/dist/cjs/query-builder/update-query-builder.d.ts b/node_modules/kysely/dist/cjs/query-builder/update-query-builder.d.ts index 3d30eed..f98f0b3 100644 --- a/node_modules/kysely/dist/cjs/query-builder/update-query-builder.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/update-query-builder.d.ts @@ -1,29 +1,30 @@ -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { JoinCallbackExpression, JoinReferenceExpression } from '../parser/join-parser.js'; -import { TableExpression, From, FromTables } from '../parser/table-parser.js'; -import { SelectExpression, SelectCallback } from '../parser/select-parser.js'; -import { ReturningCallbackRow, ReturningRow } from '../parser/returning-parser.js'; -import { ReferenceExpression } from '../parser/reference-parser.js'; -import { QueryNode } from '../operation-node/query-node.js'; -import { DrainOuterGeneric, NarrowPartial, Nullable, ShallowRecord, SimplifyResult, SimplifySingleResult, SqlBool } from '../util/type-utils.js'; -import { UpdateQueryNode } from '../operation-node/update-query-node.js'; -import { UpdateObject, UpdateObjectFactory } from '../parser/update-set-parser.js'; -import { Compilable } from '../util/compilable.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { QueryId } from '../util/query-id.js'; -import { UpdateResult } from './update-result.js'; -import { KyselyPlugin } from '../plugin/kysely-plugin.js'; -import { WhereInterface } from './where-interface.js'; -import { ReturningInterface } from './returning-interface.js'; -import { NoResultErrorConstructor } from './no-result-error.js'; -import { Selectable } from '../util/column-type.js'; -import { Explainable, ExplainFormat } from '../util/explainable.js'; -import { AliasedExpression, Expression } from '../expression/expression.js'; -import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js'; -import { KyselyTypeError } from '../util/type-error.js'; -import { Streamable } from '../util/streamable.js'; -import { ExpressionOrFactory } from '../parser/expression-parser.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { JoinCallbackExpression, JoinReferenceExpression } from 'kysely/dist/cjs/parser/join-parser.js'; +import { TableExpression, From, FromTables } from 'kysely/dist/cjs/parser/table-parser.js'; +import { SelectExpression, SelectCallback } from 'kysely/dist/cjs/parser/select-parser.js'; +import { ReturningCallbackRow, ReturningRow } from 'kysely/dist/cjs/parser/returning-parser.js'; +import { ReferenceExpression } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { QueryNode } from 'kysely/dist/cjs/operation-node/query-node.js'; +import { DrainOuterGeneric, NarrowPartial, Nullable, ShallowRecord, SimplifyResult, SimplifySingleResult, SqlBool } from 'kysely/dist/cjs/util/type-utils.js'; +import { UpdateQueryNode } from 'kysely/dist/cjs/operation-node/update-query-node.js'; +import { UpdateObject, UpdateObjectFactory, ExtractUpdateTypeFromReferenceExpression } from 'kysely/dist/cjs/parser/update-set-parser.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +import { UpdateResult } from 'kysely/dist/cjs/query-builder/update-result.js'; +import { KyselyPlugin } from 'kysely/dist/cjs/plugin/kysely-plugin.js'; +import { WhereInterface } from 'kysely/dist/cjs/query-builder/where-interface.js'; +import { ReturningInterface } from 'kysely/dist/cjs/query-builder/returning-interface.js'; +import { NoResultErrorConstructor } from 'kysely/dist/cjs/query-builder/no-result-error.js'; +import { Selectable } from 'kysely/dist/cjs/util/column-type.js'; +import { Explainable, ExplainFormat } from 'kysely/dist/cjs/util/explainable.js'; +import { AliasedExpression, Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { ComparisonOperatorExpression, OperandValueExpressionOrList } from 'kysely/dist/cjs/parser/binary-operation-parser.js'; +import { KyselyTypeError } from 'kysely/dist/cjs/util/type-error.js'; +import { Streamable } from 'kysely/dist/cjs/util/streamable.js'; +import { ExpressionOrFactory } from 'kysely/dist/cjs/parser/expression-parser.js'; +import { ValueExpression } from 'kysely/dist/cjs/parser/value-parser.js'; export declare class UpdateQueryBuilder implements WhereInterface, ReturningInterface, OperationNodeSource, Compilable, Explainable, Streamable { #private; constructor(props: UpdateQueryBuilderProps); @@ -625,6 +626,20 @@ export declare class UpdateQueryBuilder eb.val('61710)) + * .where('id', '=', '1') + * .executeTakeFirst() + * ``` + * * On PostgreSQL you can chain `returning` to the query to get * the updated rows' columns (or any other expression) as the * return value: @@ -682,6 +697,7 @@ export declare class UpdateQueryBuilder): UpdateQueryBuilder; set(update: UpdateObjectFactory): UpdateQueryBuilder; + set>(key: RE, value: ValueExpression>): UpdateQueryBuilder; /** * Allows you to return data from modified rows. * diff --git a/node_modules/kysely/dist/cjs/query-builder/update-query-builder.js b/node_modules/kysely/dist/cjs/query-builder/update-query-builder.js index 1207bfd..6d24d8f 100644 --- a/node_modules/kysely/dist/cjs/query-builder/update-query-builder.js +++ b/node_modules/kysely/dist/cjs/query-builder/update-query-builder.js @@ -65,10 +65,10 @@ class UpdateQueryBuilder { queryNode: query_node_js_1.QueryNode.cloneWithJoin(this.#props.queryNode, (0, join_parser_js_1.parseJoin)('FullJoin', args)), }); } - set(update) { + set(...args) { return new UpdateQueryBuilder({ ...this.#props, - queryNode: update_query_node_js_1.UpdateQueryNode.cloneWithUpdates(this.#props.queryNode, (0, update_set_parser_js_1.parseUpdateExpression)(update)), + queryNode: update_query_node_js_1.UpdateQueryNode.cloneWithUpdates(this.#props.queryNode, (0, update_set_parser_js_1.parseUpdate)(...args)), }); } returning(selection) { diff --git a/node_modules/kysely/dist/cjs/query-builder/where-interface.d.ts b/node_modules/kysely/dist/cjs/query-builder/where-interface.d.ts index 9de8d7e..2225ee1 100644 --- a/node_modules/kysely/dist/cjs/query-builder/where-interface.d.ts +++ b/node_modules/kysely/dist/cjs/query-builder/where-interface.d.ts @@ -1,7 +1,7 @@ -import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js'; -import { ReferenceExpression } from '../parser/reference-parser.js'; -import { SqlBool } from '../util/type-utils.js'; -import { ExpressionOrFactory } from '../parser/expression-parser.js'; +import { ComparisonOperatorExpression, OperandValueExpressionOrList } from 'kysely/dist/cjs/parser/binary-operation-parser.js'; +import { ReferenceExpression } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { SqlBool } from 'kysely/dist/cjs/util/type-utils.js'; +import { ExpressionOrFactory } from 'kysely/dist/cjs/parser/expression-parser.js'; export interface WhereInterface { /** * Adds a `where` expression to the query. diff --git a/node_modules/kysely/dist/cjs/query-compiler/compiled-query.d.ts b/node_modules/kysely/dist/cjs/query-compiler/compiled-query.d.ts index 9635b1f..5c4caec 100644 --- a/node_modules/kysely/dist/cjs/query-compiler/compiled-query.d.ts +++ b/node_modules/kysely/dist/cjs/query-compiler/compiled-query.d.ts @@ -1,4 +1,4 @@ -import { RootOperationNode } from './query-compiler.js'; +import { RootOperationNode } from 'kysely/dist/cjs/query-compiler/query-compiler.js'; export interface CompiledQuery { readonly query: RootOperationNode; readonly sql: string; diff --git a/node_modules/kysely/dist/cjs/query-compiler/default-query-compiler.d.ts b/node_modules/kysely/dist/cjs/query-compiler/default-query-compiler.d.ts index dbd954a..2f73125 100644 --- a/node_modules/kysely/dist/cjs/query-compiler/default-query-compiler.d.ts +++ b/node_modules/kysely/dist/cjs/query-compiler/default-query-compiler.d.ts @@ -48,7 +48,7 @@ import { RootOperationNode, QueryCompiler } from './query-compiler.js'; import { HavingNode } from '../operation-node/having-node.js'; import { CreateSchemaNode } from '../operation-node/create-schema-node.js'; import { DropSchemaNode } from '../operation-node/drop-schema-node.js'; -import { AlterTableNode } from '../operation-node/alter-table-node.js'; +import { AlterTableColumnAlterationNode, AlterTableNode } from '../operation-node/alter-table-node.js'; import { DropColumnNode } from '../operation-node/drop-column-node.js'; import { RenameColumnNode } from '../operation-node/rename-column-node.js'; import { AlterColumnNode } from '../operation-node/alter-column-node.js'; @@ -88,6 +88,11 @@ import { JSONPathNode } from '../operation-node/json-path-node.js'; import { JSONPathLegNode } from '../operation-node/json-path-leg-node.js'; import { JSONOperatorChainNode } from '../operation-node/json-operator-chain-node.js'; import { TupleNode } from '../operation-node/tuple-node.js'; +import { AddIndexNode } from '../operation-node/add-index-node.js'; +import { CreateTriggerNode } from '../operation-node/create-trigger-node.js'; +import { DropTriggerNode } from '../operation-node/drop-trigger-node.js'; +import { TriggerEventNode } from '../operation-node/trigger-event-node.js'; +import { TriggerOrderNode } from '../operation-node/trigger-order-node.js'; export declare class DefaultQueryCompiler extends OperationNodeVisitor implements QueryCompiler { #private; protected get numParameters(): number; @@ -124,6 +129,10 @@ export declare class DefaultQueryCompiler extends OperationNodeVisitor implement protected visitTable(node: TableNode): void; protected visitSchemableIdentifier(node: SchemableIdentifierNode): void; protected visitCreateTable(node: CreateTableNode): void; + protected visitCreateTrigger(node: CreateTriggerNode): void; + protected visitTriggerEvent(node: TriggerEventNode): void; + protected visitTriggerOrder(node: TriggerOrderNode): void; + protected visitDropTrigger(node: DropTriggerNode): void; protected visitColumnDefinition(node: ColumnDefinitionNode): void; protected getAutoIncrement(): string; protected visitReferences(node: ReferencesNode): void; @@ -184,6 +193,7 @@ export declare class DefaultQueryCompiler extends OperationNodeVisitor implement protected visitJSONPath(node: JSONPathNode): void; protected visitJSONPathLeg(node: JSONPathLegNode): void; protected visitJSONOperatorChain(node: JSONOperatorChainNode): void; + protected visitAddIndex(node: AddIndexNode): void; protected append(str: string): void; protected appendValue(parameter: unknown): void; protected getLeftIdentifierWrapper(): string; @@ -197,4 +207,10 @@ export declare class DefaultQueryCompiler extends OperationNodeVisitor implement protected addParameter(parameter: unknown): void; protected appendImmediateValue(value: unknown): void; protected sortSelectModifiers(arr: SelectModifierNode[]): ReadonlyArray; + protected compileColumnAlterations(columnAlterations: readonly AlterTableColumnAlterationNode[]): void; + /** + * controls whether the dialect adds a "type" keyword before a column's new data + * type in an ALTER TABLE statement. + */ + protected announcesNewColumnDataType(): boolean; } diff --git a/node_modules/kysely/dist/cjs/query-compiler/default-query-compiler.js b/node_modules/kysely/dist/cjs/query-compiler/default-query-compiler.js index faf80c6..e1c4561 100644 --- a/node_modules/kysely/dist/cjs/query-compiler/default-query-compiler.js +++ b/node_modules/kysely/dist/cjs/query-compiler/default-query-compiler.js @@ -1,6 +1,7 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DefaultQueryCompiler = void 0; +const create_table_node_js_1 = require("../operation-node/create-table-node.js"); const insert_query_node_js_1 = require("../operation-node/insert-query-node.js"); const operation_node_visitor_js_1 = require("../operation-node/operation-node-visitor.js"); const operator_node_js_1 = require("../operation-node/operator-node.js"); @@ -32,6 +33,7 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi const wrapInParens = this.parentNode !== undefined && !parens_node_js_1.ParensNode.is(this.parentNode) && !insert_query_node_js_1.InsertQueryNode.is(this.parentNode) && + !create_table_node_js_1.CreateTableNode.is(this.parentNode) && !create_view_node_js_1.CreateViewNode.is(this.parentNode) && !set_operation_node_js_1.SetOperationNode.is(this.parentNode); if (this.parentNode === undefined && node.explain) { @@ -348,17 +350,83 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi this.append('if not exists '); } this.visitNode(node.table); - this.append(' ('); - this.compileList([...node.columns, ...(node.constraints ?? [])]); - this.append(')'); - if (node.onCommit) { - this.append(' on commit '); - this.append(node.onCommit); + if (node.selectQuery) { + this.append(' as '); + this.visitNode(node.selectQuery); } - if (node.endModifiers && node.endModifiers.length > 0) { - this.append(' '); - this.compileList(node.endModifiers, ' '); + else { + this.append(' ('); + this.compileList([...node.columns, ...(node.constraints ?? [])]); + this.append(')'); + if (node.onCommit) { + this.append(' on commit '); + this.append(node.onCommit); + } + if (node.endModifiers && node.endModifiers.length > 0) { + this.append(' '); + this.compileList(node.endModifiers, ' '); + } + } + } + visitCreateTrigger(node) { + if (!node.time) + throw new Error('Trigger time is required.'); + if (!node.events) + throw new Error('Trigger event is required.'); + if (!node.table) + throw new Error('Trigger table is required.'); + this.append('create '); + if (node.temporary) { + this.append('temporary '); } + if (node.orReplace) { + this.append('or replace '); + } + this.append('trigger '); + if (node.ifNotExists) { + this.append('if not exists '); + } + this.visitNode(node.name); + this.append(` ${node.time} `); + this.compileList(node.events, ' or '); + this.append(' on '); + this.visitNode(node.table); + if (node.forEach) + this.append(` for each ${node.forEach} `); + if (node.when) { + this.append(' when '); + this.visitNode(node.when); + } + if (node.order) + this.visitNode(node.order); + if (node.queries) { + this.append(' begin '); + this.compileList(node.queries, '; '); + this.append('; '); + this.append('end'); + } + else if (node.function) { + this.append(' execute function '); + this.visitNode(node.function); + } + } + visitTriggerEvent(node) { + this.append(`${node.event} `); + if (node.event === 'update' && node.columns) { + this.append('of '); + this.compileList(node.columns, ', '); + } + } + visitTriggerOrder(node) { + this.append(`${node.order} `); + this.visitNode(node.otherTriggerName); + } + visitDropTrigger(node) { + this.append('drop trigger '); + if (node.ifExists) { + this.append('if exists '); + } + this.visitNode(node.name); } visitColumnDefinition(node) { this.visitNode(node.column); @@ -385,6 +453,9 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi if (node.unique) { this.append(' unique'); } + if (node.nullsNotDistinct) { + this.append(' nulls not distinct'); + } if (node.primaryKey) { this.append(' primary key'); } @@ -565,6 +636,9 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi this.compileList(node.columns); this.append(')'); } + if (node.nullsNotDistinct) { + this.append(' nulls not distinct'); + } if (node.where) { this.append(' '); this.visitNode(node.where); @@ -617,7 +691,11 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi this.visitNode(node.name); this.append(' '); } - this.append('unique ('); + this.append('unique'); + if (node.nullsNotDistinct) { + this.append(' nulls not distinct'); + } + this.append(' ('); this.compileList(node.columns); this.append(')'); } @@ -698,7 +776,13 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi this.visitNode(node.dropConstraint); } if (node.columnAlterations) { - this.compileList(node.columnAlterations); + this.compileColumnAlterations(node.columnAlterations); + } + if (node.addIndex) { + this.visitNode(node.addIndex); + } + if (node.dropIndex) { + this.visitNode(node.dropIndex); } } visitAddColumn(node) { @@ -720,7 +804,9 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi this.visitNode(node.column); this.append(' '); if (node.dataType) { - this.append('type '); + if (this.announcesNewColumnDataType()) { + this.append('type '); + } this.visitNode(node.dataType); if (node.dataTypeExpression) { this.append('using '); @@ -1006,6 +1092,23 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi this.visitNode(node.values[i]); } } + visitAddIndex(node) { + this.append('add '); + if (node.unique) { + this.append('unique '); + } + this.append('index '); + this.visitNode(node.name); + if (node.columns) { + this.append(' ('); + this.compileList(node.columns); + this.append(')'); + } + if (node.using) { + this.append(' using '); + this.visitNode(node.using); + } + } append(str) { this.#sql += str; } @@ -1079,6 +1182,16 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi : 1); return (0, object_utils_js_1.freeze)(arr); } + compileColumnAlterations(columnAlterations) { + this.compileList(columnAlterations); + } + /** + * controls whether the dialect adds a "type" keyword before a column's new data + * type in an ALTER TABLE statement. + */ + announcesNewColumnDataType() { + return true; + } } exports.DefaultQueryCompiler = DefaultQueryCompiler; const SELECT_MODIFIER_SQL = (0, object_utils_js_1.freeze)({ diff --git a/node_modules/kysely/dist/cjs/query-compiler/query-compiler.d.ts b/node_modules/kysely/dist/cjs/query-compiler/query-compiler.d.ts index e3a8555..96702eb 100644 --- a/node_modules/kysely/dist/cjs/query-compiler/query-compiler.d.ts +++ b/node_modules/kysely/dist/cjs/query-compiler/query-compiler.d.ts @@ -1,18 +1,20 @@ -import { AlterTableNode } from '../operation-node/alter-table-node.js'; -import { CreateIndexNode } from '../operation-node/create-index-node.js'; -import { CreateSchemaNode } from '../operation-node/create-schema-node.js'; -import { CreateTableNode } from '../operation-node/create-table-node.js'; -import { CreateTypeNode } from '../operation-node/create-type-node.js'; -import { CreateViewNode } from '../operation-node/create-view-node.js'; -import { DropIndexNode } from '../operation-node/drop-index-node.js'; -import { DropSchemaNode } from '../operation-node/drop-schema-node.js'; -import { DropTableNode } from '../operation-node/drop-table-node.js'; -import { DropTypeNode } from '../operation-node/drop-type-node.js'; -import { DropViewNode } from '../operation-node/drop-view-node.js'; -import { QueryNode } from '../operation-node/query-node.js'; -import { RawNode } from '../operation-node/raw-node.js'; -import { CompiledQuery } from './compiled-query.js'; -export type RootOperationNode = QueryNode | CreateTableNode | CreateIndexNode | CreateSchemaNode | CreateViewNode | DropTableNode | DropIndexNode | DropSchemaNode | DropViewNode | AlterTableNode | RawNode | CreateTypeNode | DropTypeNode; +import { AlterTableNode } from 'kysely/dist/cjs/operation-node/alter-table-node.js'; +import { CreateIndexNode } from 'kysely/dist/cjs/operation-node/create-index-node.js'; +import { CreateSchemaNode } from 'kysely/dist/cjs/operation-node/create-schema-node.js'; +import { CreateTableNode } from 'kysely/dist/cjs/operation-node/create-table-node.js'; +import { CreateTriggerNode } from 'kysely/dist/cjs/operation-node/create-trigger-node.js'; +import { CreateTypeNode } from 'kysely/dist/cjs/operation-node/create-type-node.js'; +import { CreateViewNode } from 'kysely/dist/cjs/operation-node/create-view-node.js'; +import { DropIndexNode } from 'kysely/dist/cjs/operation-node/drop-index-node.js'; +import { DropSchemaNode } from 'kysely/dist/cjs/operation-node/drop-schema-node.js'; +import { DropTableNode } from 'kysely/dist/cjs/operation-node/drop-table-node.js'; +import { DropTriggerNode } from 'kysely/dist/cjs/operation-node/drop-trigger-node.js'; +import { DropTypeNode } from 'kysely/dist/cjs/operation-node/drop-type-node.js'; +import { DropViewNode } from 'kysely/dist/cjs/operation-node/drop-view-node.js'; +import { QueryNode } from 'kysely/dist/cjs/operation-node/query-node.js'; +import { RawNode } from 'kysely/dist/cjs/operation-node/raw-node.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +export type RootOperationNode = QueryNode | CreateTableNode | CreateIndexNode | CreateSchemaNode | CreateViewNode | DropTableNode | DropIndexNode | DropSchemaNode | DropViewNode | AlterTableNode | RawNode | CreateTypeNode | DropTypeNode | CreateTriggerNode | DropTriggerNode; /** * a `QueryCompiler` compiles a query expressed as a tree of `OperationNodes` into SQL. */ diff --git a/node_modules/kysely/dist/cjs/query-creator.d.ts b/node_modules/kysely/dist/cjs/query-creator.d.ts index 8399ab7..b8262e4 100644 --- a/node_modules/kysely/dist/cjs/query-creator.d.ts +++ b/node_modules/kysely/dist/cjs/query-creator.d.ts @@ -1,17 +1,17 @@ -import { SelectQueryBuilder } from './query-builder/select-query-builder.js'; -import { InsertQueryBuilder } from './query-builder/insert-query-builder.js'; -import { DeleteQueryBuilder } from './query-builder/delete-query-builder.js'; -import { UpdateQueryBuilder } from './query-builder/update-query-builder.js'; -import { TableExpression, From, FromTables, TableReference, ExtractTableAlias, AnyAliasedTable, PickTableWithAlias } from './parser/table-parser.js'; -import { QueryExecutor } from './query-executor/query-executor.js'; -import { CommonTableExpression, QueryCreatorWithCommonTableExpression, RecursiveCommonTableExpression } from './parser/with-parser.js'; -import { WithNode } from './operation-node/with-node.js'; -import { InsertResult } from './query-builder/insert-result.js'; -import { DeleteResult } from './query-builder/delete-result.js'; -import { UpdateResult } from './query-builder/update-result.js'; -import { KyselyPlugin } from './plugin/kysely-plugin.js'; -import { CTEBuilderCallback } from './query-builder/cte-builder.js'; -import { CallbackSelection, SelectCallback, SelectExpression, Selection } from './parser/select-parser.js'; +import { SelectQueryBuilder } from 'kysely/dist/cjs/query-builder/select-query-builder.js'; +import { InsertQueryBuilder } from 'kysely/dist/cjs/query-builder/insert-query-builder.js'; +import { DeleteQueryBuilder } from 'kysely/dist/cjs/query-builder/delete-query-builder.js'; +import { UpdateQueryBuilder } from 'kysely/dist/cjs/query-builder/update-query-builder.js'; +import { TableExpression, From, FromTables, TableReference, ExtractTableAlias, AnyAliasedTable, PickTableWithAlias } from 'kysely/dist/cjs/parser/table-parser.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { CommonTableExpression, QueryCreatorWithCommonTableExpression, RecursiveCommonTableExpression } from 'kysely/dist/cjs/parser/with-parser.js'; +import { WithNode } from 'kysely/dist/cjs/operation-node/with-node.js'; +import { InsertResult } from 'kysely/dist/cjs/query-builder/insert-result.js'; +import { DeleteResult } from 'kysely/dist/cjs/query-builder/delete-result.js'; +import { UpdateResult } from 'kysely/dist/cjs/query-builder/update-result.js'; +import { KyselyPlugin } from 'kysely/dist/cjs/plugin/kysely-plugin.js'; +import { CTEBuilderCallback } from 'kysely/dist/cjs/query-builder/cte-builder.js'; +import { CallbackSelection, SelectCallback, SelectExpression, Selection } from 'kysely/dist/cjs/parser/select-parser.js'; export declare class QueryCreator { #private; constructor(props: QueryCreatorProps); diff --git a/node_modules/kysely/dist/cjs/query-executor/query-executor-provider.d.ts b/node_modules/kysely/dist/cjs/query-executor/query-executor-provider.d.ts index 9b5ec45..767ca78 100644 --- a/node_modules/kysely/dist/cjs/query-executor/query-executor-provider.d.ts +++ b/node_modules/kysely/dist/cjs/query-executor/query-executor-provider.d.ts @@ -1,4 +1,4 @@ -import { QueryExecutor } from './query-executor.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; /** * @internal * @private diff --git a/node_modules/kysely/dist/cjs/query-executor/query-executor.d.ts b/node_modules/kysely/dist/cjs/query-executor/query-executor.d.ts index 6c57fca..c17e603 100644 --- a/node_modules/kysely/dist/cjs/query-executor/query-executor.d.ts +++ b/node_modules/kysely/dist/cjs/query-executor/query-executor.d.ts @@ -1,10 +1,10 @@ -import { ConnectionProvider } from '../driver/connection-provider.js'; -import { QueryResult } from '../driver/database-connection.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { RootOperationNode } from '../query-compiler/query-compiler.js'; -import { KyselyPlugin } from '../plugin/kysely-plugin.js'; -import { QueryId } from '../util/query-id.js'; -import { DialectAdapter } from '../dialect/dialect-adapter.js'; +import { ConnectionProvider } from 'kysely/dist/cjs/driver/connection-provider.js'; +import { QueryResult } from 'kysely/dist/cjs/driver/database-connection.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { RootOperationNode } from 'kysely/dist/cjs/query-compiler/query-compiler.js'; +import { KyselyPlugin } from 'kysely/dist/cjs/plugin/kysely-plugin.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +import { DialectAdapter } from 'kysely/dist/cjs/dialect/dialect-adapter.js'; /** * This interface abstracts away the details of how to compile a query into SQL * and execute it. Instead of passing around all those details, {@link SelectQueryBuilder} diff --git a/node_modules/kysely/dist/cjs/raw-builder/raw-builder.d.ts b/node_modules/kysely/dist/cjs/raw-builder/raw-builder.d.ts index 9016b18..c9e130b 100644 --- a/node_modules/kysely/dist/cjs/raw-builder/raw-builder.d.ts +++ b/node_modules/kysely/dist/cjs/raw-builder/raw-builder.d.ts @@ -1,10 +1,10 @@ -import { QueryResult } from '../driver/database-connection.js'; -import { RawNode } from '../operation-node/raw-node.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { KyselyPlugin } from '../plugin/kysely-plugin.js'; -import { QueryExecutorProvider } from '../query-executor/query-executor-provider.js'; -import { QueryId } from '../util/query-id.js'; -import { AliasableExpression, AliasedExpression, Expression } from '../expression/expression.js'; +import { QueryResult } from 'kysely/dist/cjs/driver/database-connection.js'; +import { RawNode } from 'kysely/dist/cjs/operation-node/raw-node.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { KyselyPlugin } from 'kysely/dist/cjs/plugin/kysely-plugin.js'; +import { QueryExecutorProvider } from 'kysely/dist/cjs/query-executor/query-executor-provider.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +import { AliasableExpression, AliasedExpression, Expression } from 'kysely/dist/cjs/expression/expression.js'; /** * An instance of this class can be used to create raw SQL snippets or queries. * diff --git a/node_modules/kysely/dist/cjs/schema/alter-column-builder.d.ts b/node_modules/kysely/dist/cjs/schema/alter-column-builder.d.ts index 01a5163..f53cd32 100644 --- a/node_modules/kysely/dist/cjs/schema/alter-column-builder.d.ts +++ b/node_modules/kysely/dist/cjs/schema/alter-column-builder.d.ts @@ -1,7 +1,7 @@ -import { AlterColumnNode } from '../operation-node/alter-column-node.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { DataTypeExpression } from '../parser/data-type-parser.js'; -import { DefaultValueExpression } from '../parser/default-value-parser.js'; +import { AlterColumnNode } from 'kysely/dist/cjs/operation-node/alter-column-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { DataTypeExpression } from 'kysely/dist/cjs/parser/data-type-parser.js'; +import { DefaultValueExpression } from 'kysely/dist/cjs/parser/default-value-parser.js'; export declare class AlterColumnBuilder { #private; constructor(column: string); diff --git a/node_modules/kysely/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.d.ts b/node_modules/kysely/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.d.ts index 62afe0f..12e0dcf 100644 --- a/node_modules/kysely/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.d.ts +++ b/node_modules/kysely/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.d.ts @@ -1,11 +1,11 @@ -import { AlterTableNode } from '../operation-node/alter-table-node.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { OnModifyForeignAction } from '../operation-node/references-node.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { Compilable } from '../util/compilable.js'; -import { QueryId } from '../util/query-id.js'; -import { ForeignKeyConstraintBuilder, ForeignKeyConstraintBuilderInterface } from './foreign-key-constraint-builder.js'; +import { AlterTableNode } from 'kysely/dist/cjs/operation-node/alter-table-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { OnModifyForeignAction } from 'kysely/dist/cjs/operation-node/references-node.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +import { ForeignKeyConstraintBuilder, ForeignKeyConstraintBuilderInterface } from 'kysely/dist/cjs/schema/foreign-key-constraint-builder.js'; export declare class AlterTableAddForeignKeyConstraintBuilder implements ForeignKeyConstraintBuilderInterface, OperationNodeSource, Compilable { #private; constructor(props: AlterTableAddForeignKeyConstraintBuilderProps); diff --git a/node_modules/kysely/dist/cjs/schema/alter-table-add-index-builder.d.ts b/node_modules/kysely/dist/cjs/schema/alter-table-add-index-builder.d.ts new file mode 100644 index 0000000..7b94e46 --- /dev/null +++ b/node_modules/kysely/dist/cjs/schema/alter-table-add-index-builder.d.ts @@ -0,0 +1,104 @@ +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { AlterTableNode } from 'kysely/dist/cjs/operation-node/alter-table-node.js'; +import { IndexType } from 'kysely/dist/cjs/operation-node/create-index-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { OrderedColumnName } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +export declare class AlterTableAddIndexBuilder implements OperationNodeSource, Compilable { + #private; + constructor(props: AlterTableAddIndexBuilderProps); + /** + * Makes the index unique. + */ + unique(): AlterTableAddIndexBuilder; + /** + * Adds a column to the index. + * + * Also see {@link columns} for adding multiple columns at once or {@link expression} + * for specifying an arbitrary expression. + * + * ### Examples + * + * ```ts + * await db.schema + * .alterTable('person') + * .createIndex('person_first_name_and_age_index') + * .column('first_name') + * .column('age desc') + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` add index `person_first_name_and_age_index` (`first_name`, `age` desc) + * ``` + */ + column(column: OrderedColumnName): AlterTableAddIndexBuilder; + /** + * Specifies a list of columns for the index. + * + * Also see {@link column} for adding a single column or {@link expression} for + * specifying an arbitrary expression. + * + * ### Examples + * + * ```ts + * await db.schema + * .alterTable('person') + * .addIndex('person_first_name_and_age_index') + * .columns(['first_name', 'age desc']) + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` add index `person_first_name_and_age_index` (`first_name`, `age` desc) + * ``` + */ + columns(columns: OrderedColumnName[]): AlterTableAddIndexBuilder; + /** + * Specifies an arbitrary expression for the index. + * + * ### Examples + * + * ```ts + * import { sql } from 'kysely' + * + * await db.schema + * .alterTable('person') + * .addIndex('person_first_name_index') + * .expression(sql`(first_name < 'Sami')`) + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` add index `person_first_name_index` ((first_name < 'Sami')) + * ``` + */ + expression(expression: Expression): AlterTableAddIndexBuilder; + /** + * Specifies the index type. + */ + using(indexType: IndexType): AlterTableAddIndexBuilder; + using(indexType: string): AlterTableAddIndexBuilder; + /** + * Simply calls the provided function passing `this` as the only argument. `$call` returns + * what the provided function returns. + */ + $call(func: (qb: this) => T): T; + toOperationNode(): AlterTableNode; + compile(): CompiledQuery; + execute(): Promise; +} +export interface AlterTableAddIndexBuilderProps { + readonly queryId: QueryId; + readonly executor: QueryExecutor; + readonly node: AlterTableNode; +} diff --git a/node_modules/kysely/dist/cjs/schema/alter-table-add-index-builder.js b/node_modules/kysely/dist/cjs/schema/alter-table-add-index-builder.js new file mode 100644 index 0000000..005284b --- /dev/null +++ b/node_modules/kysely/dist/cjs/schema/alter-table-add-index-builder.js @@ -0,0 +1,146 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AlterTableAddIndexBuilder = void 0; +const add_index_node_js_1 = require("../operation-node/add-index-node.js"); +const alter_table_node_js_1 = require("../operation-node/alter-table-node.js"); +const raw_node_js_1 = require("../operation-node/raw-node.js"); +const reference_parser_js_1 = require("../parser/reference-parser.js"); +const object_utils_js_1 = require("../util/object-utils.js"); +const prevent_await_js_1 = require("../util/prevent-await.js"); +class AlterTableAddIndexBuilder { + #props; + constructor(props) { + this.#props = (0, object_utils_js_1.freeze)(props); + } + /** + * Makes the index unique. + */ + unique() { + return new AlterTableAddIndexBuilder({ + ...this.#props, + node: alter_table_node_js_1.AlterTableNode.cloneWithTableProps(this.#props.node, { + addIndex: add_index_node_js_1.AddIndexNode.cloneWith(this.#props.node.addIndex, { + unique: true, + }), + }), + }); + } + /** + * Adds a column to the index. + * + * Also see {@link columns} for adding multiple columns at once or {@link expression} + * for specifying an arbitrary expression. + * + * ### Examples + * + * ```ts + * await db.schema + * .alterTable('person') + * .createIndex('person_first_name_and_age_index') + * .column('first_name') + * .column('age desc') + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` add index `person_first_name_and_age_index` (`first_name`, `age` desc) + * ``` + */ + column(column) { + return new AlterTableAddIndexBuilder({ + ...this.#props, + node: alter_table_node_js_1.AlterTableNode.cloneWithTableProps(this.#props.node, { + addIndex: add_index_node_js_1.AddIndexNode.cloneWithColumns(this.#props.node.addIndex, [(0, reference_parser_js_1.parseOrderedColumnName)(column)]), + }), + }); + } + /** + * Specifies a list of columns for the index. + * + * Also see {@link column} for adding a single column or {@link expression} for + * specifying an arbitrary expression. + * + * ### Examples + * + * ```ts + * await db.schema + * .alterTable('person') + * .addIndex('person_first_name_and_age_index') + * .columns(['first_name', 'age desc']) + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` add index `person_first_name_and_age_index` (`first_name`, `age` desc) + * ``` + */ + columns(columns) { + return new AlterTableAddIndexBuilder({ + ...this.#props, + node: alter_table_node_js_1.AlterTableNode.cloneWithTableProps(this.#props.node, { + addIndex: add_index_node_js_1.AddIndexNode.cloneWithColumns(this.#props.node.addIndex, columns.map(reference_parser_js_1.parseOrderedColumnName)), + }), + }); + } + /** + * Specifies an arbitrary expression for the index. + * + * ### Examples + * + * ```ts + * import { sql } from 'kysely' + * + * await db.schema + * .alterTable('person') + * .addIndex('person_first_name_index') + * .expression(sql`(first_name < 'Sami')`) + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` add index `person_first_name_index` ((first_name < 'Sami')) + * ``` + */ + expression(expression) { + return new AlterTableAddIndexBuilder({ + ...this.#props, + node: alter_table_node_js_1.AlterTableNode.cloneWithTableProps(this.#props.node, { + addIndex: add_index_node_js_1.AddIndexNode.cloneWithColumns(this.#props.node.addIndex, [expression.toOperationNode()]), + }), + }); + } + using(indexType) { + return new AlterTableAddIndexBuilder({ + ...this.#props, + node: alter_table_node_js_1.AlterTableNode.cloneWithTableProps(this.#props.node, { + addIndex: add_index_node_js_1.AddIndexNode.cloneWith(this.#props.node.addIndex, { + using: raw_node_js_1.RawNode.createWithSql(indexType), + }), + }), + }); + } + /** + * Simply calls the provided function passing `this` as the only argument. `$call` returns + * what the provided function returns. + */ + $call(func) { + return func(this); + } + toOperationNode() { + return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId); + } + compile() { + return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId); + } + async execute() { + await this.#props.executor.executeQuery(this.compile(), this.#props.queryId); + } +} +exports.AlterTableAddIndexBuilder = AlterTableAddIndexBuilder; +(0, prevent_await_js_1.preventAwait)(AlterTableAddIndexBuilder, "don't await AlterTableAddIndexBuilder instances directly. To execute the query you need to call `execute`"); diff --git a/node_modules/kysely/dist/cjs/schema/alter-table-builder.d.ts b/node_modules/kysely/dist/cjs/schema/alter-table-builder.d.ts index b0726ca..07e7284 100644 --- a/node_modules/kysely/dist/cjs/schema/alter-table-builder.d.ts +++ b/node_modules/kysely/dist/cjs/schema/alter-table-builder.d.ts @@ -1,16 +1,18 @@ -import { AlterTableNode } from '../operation-node/alter-table-node.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { Compilable } from '../util/compilable.js'; -import { ColumnDefinitionBuilderCallback } from './column-definition-builder.js'; -import { QueryId } from '../util/query-id.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { DataTypeExpression } from '../parser/data-type-parser.js'; -import { Expression } from '../expression/expression.js'; -import { AlterColumnBuilderCallback } from './alter-column-builder.js'; -import { AlterTableExecutor } from './alter-table-executor.js'; -import { AlterTableAddForeignKeyConstraintBuilder } from './alter-table-add-foreign-key-constraint-builder.js'; -import { AlterTableDropConstraintBuilder } from './alter-table-drop-constraint-builder.js'; +import { AlterTableNode } from 'kysely/dist/cjs/operation-node/alter-table-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { ColumnDefinitionBuilderCallback } from 'kysely/dist/cjs/schema/column-definition-builder.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { DataTypeExpression } from 'kysely/dist/cjs/parser/data-type-parser.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { AlterColumnBuilderCallback } from 'kysely/dist/cjs/schema/alter-column-builder.js'; +import { AlterTableExecutor } from 'kysely/dist/cjs/schema/alter-table-executor.js'; +import { AlterTableAddForeignKeyConstraintBuilder } from 'kysely/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.js'; +import { AlterTableDropConstraintBuilder } from 'kysely/dist/cjs/schema/alter-table-drop-constraint-builder.js'; +import { AlterTableAddIndexBuilder } from 'kysely/dist/cjs/schema/alter-table-add-index-builder.js'; +import { UniqueConstraintNodeBuilderCallback } from 'kysely/dist/cjs/schema/unique-constraint-builder.js'; /** * This builder can be used to create a `alter table` query. */ @@ -35,7 +37,7 @@ export declare class AlterTableBuilder implements ColumnAlteringInterface { /** * See {@link CreateTableBuilder.addUniqueConstraint} */ - addUniqueConstraint(constraintName: string, columns: string[]): AlterTableExecutor; + addUniqueConstraint(constraintName: string, columns: string[], build?: UniqueConstraintNodeBuilderCallback): AlterTableExecutor; /** * See {@link CreateTableBuilder.addCheckConstraint} */ @@ -53,6 +55,44 @@ export declare class AlterTableBuilder implements ColumnAlteringInterface { */ addPrimaryKeyConstraint(constraintName: string, columns: string[]): AlterTableExecutor; dropConstraint(constraintName: string): AlterTableDropConstraintBuilder; + /** + * This can be used to add index to table. + * + * ### Examples + * + * ```ts + * db.schema.alterTable('person') + * .addIndex('person_email_index') + * .column('email') + * .unique() + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` add unique index `person_email_index` (`email`) + * ``` + */ + addIndex(indexName: string): AlterTableAddIndexBuilder; + /** + * This can be used to drop index from table. + * + * ### Examples + * + * ```ts + * db.schema.alterTable('person') + * .dropIndex('person_email_index') + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` drop index `test_first_name_index` + * ``` + */ + dropIndex(indexName: string): AlterTableExecutor; /** * Calls the given function passing `this` as the only argument. * diff --git a/node_modules/kysely/dist/cjs/schema/alter-table-builder.js b/node_modules/kysely/dist/cjs/schema/alter-table-builder.js index a3fb975..0c586d8 100644 --- a/node_modules/kysely/dist/cjs/schema/alter-table-builder.js +++ b/node_modules/kysely/dist/cjs/schema/alter-table-builder.js @@ -25,6 +25,10 @@ const alter_table_executor_js_1 = require("./alter-table-executor.js"); const alter_table_add_foreign_key_constraint_builder_js_1 = require("./alter-table-add-foreign-key-constraint-builder.js"); const alter_table_drop_constraint_builder_js_1 = require("./alter-table-drop-constraint-builder.js"); const primary_constraint_node_js_1 = require("../operation-node/primary-constraint-node.js"); +const drop_index_node_js_1 = require("../operation-node/drop-index-node.js"); +const add_index_node_js_1 = require("../operation-node/add-index-node.js"); +const alter_table_add_index_builder_js_1 = require("./alter-table-add-index-builder.js"); +const unique_constraint_builder_js_1 = require("./unique-constraint-builder.js"); /** * This builder can be used to create a `alter table` query. */ @@ -85,11 +89,12 @@ class AlterTableBuilder { /** * See {@link CreateTableBuilder.addUniqueConstraint} */ - addUniqueConstraint(constraintName, columns) { + addUniqueConstraint(constraintName, columns, build = object_utils_js_1.noop) { + const uniqueConstraintBuilder = build(new unique_constraint_builder_js_1.UniqueConstraintNodeBuilder(unique_constraint_node_js_1.UniqueConstraintNode.create(columns, constraintName))); return new alter_table_executor_js_1.AlterTableExecutor({ ...this.#props, node: alter_table_node_js_1.AlterTableNode.cloneWithTableProps(this.#props.node, { - addConstraint: add_constraint_node_js_1.AddConstraintNode.create(unique_constraint_node_js_1.UniqueConstraintNode.create(columns, constraintName)), + addConstraint: add_constraint_node_js_1.AddConstraintNode.create(uniqueConstraintBuilder.toOperationNode()), }), }); } @@ -136,6 +141,58 @@ class AlterTableBuilder { }), }); } + /** + * This can be used to add index to table. + * + * ### Examples + * + * ```ts + * db.schema.alterTable('person') + * .addIndex('person_email_index') + * .column('email') + * .unique() + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` add unique index `person_email_index` (`email`) + * ``` + */ + addIndex(indexName) { + return new alter_table_add_index_builder_js_1.AlterTableAddIndexBuilder({ + ...this.#props, + node: alter_table_node_js_1.AlterTableNode.cloneWithTableProps(this.#props.node, { + addIndex: add_index_node_js_1.AddIndexNode.create(indexName), + }), + }); + } + /** + * This can be used to drop index from table. + * + * ### Examples + * + * ```ts + * db.schema.alterTable('person') + * .dropIndex('person_email_index') + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` drop index `test_first_name_index` + * ``` + */ + dropIndex(indexName) { + return new alter_table_executor_js_1.AlterTableExecutor({ + ...this.#props, + node: alter_table_node_js_1.AlterTableNode.cloneWithTableProps(this.#props.node, { + dropIndex: drop_index_node_js_1.DropIndexNode.create(indexName), + }), + }); + } /** * Calls the given function passing `this` as the only argument. * diff --git a/node_modules/kysely/dist/cjs/schema/alter-table-drop-constraint-builder.d.ts b/node_modules/kysely/dist/cjs/schema/alter-table-drop-constraint-builder.d.ts index 02cad63..6b40efd 100644 --- a/node_modules/kysely/dist/cjs/schema/alter-table-drop-constraint-builder.d.ts +++ b/node_modules/kysely/dist/cjs/schema/alter-table-drop-constraint-builder.d.ts @@ -1,9 +1,9 @@ -import { AlterTableNode } from '../operation-node/alter-table-node.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { Compilable } from '../util/compilable.js'; -import { QueryId } from '../util/query-id.js'; +import { AlterTableNode } from 'kysely/dist/cjs/operation-node/alter-table-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; export declare class AlterTableDropConstraintBuilder implements OperationNodeSource, Compilable { #private; constructor(props: AlterTableDropConstraintBuilderProps); diff --git a/node_modules/kysely/dist/cjs/schema/alter-table-executor.d.ts b/node_modules/kysely/dist/cjs/schema/alter-table-executor.d.ts index ca2aef1..6b8d89f 100644 --- a/node_modules/kysely/dist/cjs/schema/alter-table-executor.d.ts +++ b/node_modules/kysely/dist/cjs/schema/alter-table-executor.d.ts @@ -1,9 +1,9 @@ -import { AlterTableNode } from '../operation-node/alter-table-node.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { Compilable } from '../util/compilable.js'; -import { QueryId } from '../util/query-id.js'; +import { AlterTableNode } from 'kysely/dist/cjs/operation-node/alter-table-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; export declare class AlterTableExecutor implements OperationNodeSource, Compilable { #private; constructor(props: AlterTableExecutorProps); diff --git a/node_modules/kysely/dist/cjs/schema/column-definition-builder.d.ts b/node_modules/kysely/dist/cjs/schema/column-definition-builder.d.ts index 2a99c4c..9633440 100644 --- a/node_modules/kysely/dist/cjs/schema/column-definition-builder.d.ts +++ b/node_modules/kysely/dist/cjs/schema/column-definition-builder.d.ts @@ -1,8 +1,8 @@ -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { OnModifyForeignAction } from '../operation-node/references-node.js'; -import { ColumnDefinitionNode } from '../operation-node/column-definition-node.js'; -import { DefaultValueExpression } from '../parser/default-value-parser.js'; -import { Expression } from '../expression/expression.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { OnModifyForeignAction } from 'kysely/dist/cjs/operation-node/references-node.js'; +import { ColumnDefinitionNode } from 'kysely/dist/cjs/operation-node/column-definition-node.js'; +import { DefaultValueExpression } from 'kysely/dist/cjs/parser/default-value-parser.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; export declare class ColumnDefinitionBuilder implements OperationNodeSource { #private; constructor(node: ColumnDefinitionNode); @@ -183,6 +183,31 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource { * ``` */ modifyFront(modifier: Expression): ColumnDefinitionBuilder; + /** + * Adds `nulls not distinct` specifier. + * Should be used with `unique` constraint. + * + * This only works on some dialects like PostgreSQL. + * + * ### Examples + * + * ```ts + * db.schema.createTable('person') + * .addColumn('id', 'integer', col => col.primaryKey()) + * .addColumn('first_name', 'varchar(30)', col => col.unique().nullsNotDistinct()) + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * create table "person" ( + * "id" integer primary key, + * "first_name" varchar(30) unique nulls not distinct + * ) + * ``` + */ + nullsNotDistinct(): ColumnDefinitionBuilder; /** * This can be used to add any additional SQL to the end of the column definition. * diff --git a/node_modules/kysely/dist/cjs/schema/column-definition-builder.js b/node_modules/kysely/dist/cjs/schema/column-definition-builder.js index aebbf98..eef0fcc 100644 --- a/node_modules/kysely/dist/cjs/schema/column-definition-builder.js +++ b/node_modules/kysely/dist/cjs/schema/column-definition-builder.js @@ -258,6 +258,33 @@ class ColumnDefinitionBuilder { modifyFront(modifier) { return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWithFrontModifier(this.#node, modifier.toOperationNode())); } + /** + * Adds `nulls not distinct` specifier. + * Should be used with `unique` constraint. + * + * This only works on some dialects like PostgreSQL. + * + * ### Examples + * + * ```ts + * db.schema.createTable('person') + * .addColumn('id', 'integer', col => col.primaryKey()) + * .addColumn('first_name', 'varchar(30)', col => col.unique().nullsNotDistinct()) + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * create table "person" ( + * "id" integer primary key, + * "first_name" varchar(30) unique nulls not distinct + * ) + * ``` + */ + nullsNotDistinct() { + return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { nullsNotDistinct: true })); + } /** * This can be used to add any additional SQL to the end of the column definition. * diff --git a/node_modules/kysely/dist/cjs/schema/create-index-builder.d.ts b/node_modules/kysely/dist/cjs/schema/create-index-builder.d.ts index 27502c4..38bb2cb 100644 --- a/node_modules/kysely/dist/cjs/schema/create-index-builder.d.ts +++ b/node_modules/kysely/dist/cjs/schema/create-index-builder.d.ts @@ -1,14 +1,14 @@ -import { CreateIndexNode, IndexType } from '../operation-node/create-index-node.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { ExtractColumnNameFromOrderedColumnName, OrderedColumnName } from '../parser/reference-parser.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { Compilable } from '../util/compilable.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { QueryId } from '../util/query-id.js'; -import { Expression } from '../expression/expression.js'; -import { ComparisonOperatorExpression } from '../parser/binary-operation-parser.js'; -import { ExpressionBuilder } from '../expression/expression-builder.js'; -import { ShallowRecord, SqlBool } from '../util/type-utils.js'; +import { CreateIndexNode, IndexType } from 'kysely/dist/cjs/operation-node/create-index-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { ExtractColumnNameFromOrderedColumnName, OrderedColumnName } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { ComparisonOperatorExpression } from 'kysely/dist/cjs/parser/binary-operation-parser.js'; +import { ExpressionBuilder } from 'kysely/dist/cjs/expression/expression-builder.js'; +import { ShallowRecord, SqlBool } from 'kysely/dist/cjs/util/type-utils.js'; export declare class CreateIndexBuilder implements OperationNodeSource, Compilable { #private; constructor(props: CreateIndexBuilderProps); @@ -22,6 +22,29 @@ export declare class CreateIndexBuilder implements OperationNodeSourc * Makes the index unique. */ unique(): CreateIndexBuilder; + /** + * Adds `nulls not distinct` specifier to index. + * This only works on some dialects like PostgreSQL. + * + * ### Examples + * + * ```ts + * db.schema.createIndex('person_first_name_index') + * .on('person') + * .column('first_name') + * .nullsNotDistinct() + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * create index "person_first_name_index" + * on "test" ("first_name") + * nulls not distinct; + * ``` + */ + nullsNotDistinct(): CreateIndexBuilder; /** * Specifies the table for the index. */ diff --git a/node_modules/kysely/dist/cjs/schema/create-index-builder.js b/node_modules/kysely/dist/cjs/schema/create-index-builder.js index 4de7de6..e0e00a0 100644 --- a/node_modules/kysely/dist/cjs/schema/create-index-builder.js +++ b/node_modules/kysely/dist/cjs/schema/create-index-builder.js @@ -39,6 +39,36 @@ class CreateIndexBuilder { }), }); } + /** + * Adds `nulls not distinct` specifier to index. + * This only works on some dialects like PostgreSQL. + * + * ### Examples + * + * ```ts + * db.schema.createIndex('person_first_name_index') + * .on('person') + * .column('first_name') + * .nullsNotDistinct() + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * create index "person_first_name_index" + * on "test" ("first_name") + * nulls not distinct; + * ``` + */ + nullsNotDistinct() { + return new CreateIndexBuilder({ + ...this.#props, + node: create_index_node_js_1.CreateIndexNode.cloneWith(this.#props.node, { + nullsNotDistinct: true, + }), + }); + } /** * Specifies the table for the index. */ diff --git a/node_modules/kysely/dist/cjs/schema/create-schema-builder.d.ts b/node_modules/kysely/dist/cjs/schema/create-schema-builder.d.ts index 34974f5..fb0068d 100644 --- a/node_modules/kysely/dist/cjs/schema/create-schema-builder.d.ts +++ b/node_modules/kysely/dist/cjs/schema/create-schema-builder.d.ts @@ -1,9 +1,9 @@ -import { CreateSchemaNode } from '../operation-node/create-schema-node.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { Compilable } from '../util/compilable.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { QueryId } from '../util/query-id.js'; +import { CreateSchemaNode } from 'kysely/dist/cjs/operation-node/create-schema-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; export declare class CreateSchemaBuilder implements OperationNodeSource, Compilable { #private; constructor(props: CreateSchemaBuilderProps); diff --git a/node_modules/kysely/dist/cjs/schema/create-table-builder.d.ts b/node_modules/kysely/dist/cjs/schema/create-table-builder.d.ts index e160575..e5e27e4 100644 --- a/node_modules/kysely/dist/cjs/schema/create-table-builder.d.ts +++ b/node_modules/kysely/dist/cjs/schema/create-table-builder.d.ts @@ -1,13 +1,14 @@ -import { CreateTableNode, OnCommitAction } from '../operation-node/create-table-node.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { Compilable } from '../util/compilable.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { ColumnDefinitionBuilder } from './column-definition-builder.js'; -import { QueryId } from '../util/query-id.js'; -import { ForeignKeyConstraintBuilder } from './foreign-key-constraint-builder.js'; -import { DataTypeExpression } from '../parser/data-type-parser.js'; -import { Expression } from '../expression/expression.js'; +import { CreateTableNode, OnCommitAction } from 'kysely/dist/cjs/operation-node/create-table-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { ColumnDefinitionBuilder } from 'kysely/dist/cjs/schema/column-definition-builder.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +import { ForeignKeyConstraintBuilder } from 'kysely/dist/cjs/schema/foreign-key-constraint-builder.js'; +import { DataTypeExpression } from 'kysely/dist/cjs/parser/data-type-parser.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; +import { UniqueConstraintNodeBuilderCallback } from 'kysely/dist/cjs/schema/unique-constraint-builder.js'; /** * This builder can be used to create a `create table` query. */ @@ -56,7 +57,7 @@ export declare class CreateTableBuilder builder.nullsNotDistinct()) + * ``` */ - addUniqueConstraint(constraintName: string, columns: C[]): CreateTableBuilder; + addUniqueConstraint(constraintName: string, columns: C[], build?: UniqueConstraintNodeBuilderCallback): CreateTableBuilder; /** * Adds a check constraint. * @@ -205,6 +211,26 @@ export declare class CreateTableBuilder): CreateTableBuilder; + /** + * Allows to create table from `select` query. + * + * ### Examples + * + * ```ts + * db.schema.createTable('copy') + * .temporary() + * .as(db.selectFrom('person').select(['first_name', 'last_name'])) + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * create temporary table "copy" as + * select "first_name", "last_name" from "person" + * ``` + */ + as(expression: Expression): CreateTableBuilder; /** * Calls the given function passing `this` as the only argument. * diff --git a/node_modules/kysely/dist/cjs/schema/create-table-builder.js b/node_modules/kysely/dist/cjs/schema/create-table-builder.js index 5053177..73590bf 100644 --- a/node_modules/kysely/dist/cjs/schema/create-table-builder.js +++ b/node_modules/kysely/dist/cjs/schema/create-table-builder.js @@ -15,6 +15,8 @@ const unique_constraint_node_js_1 = require("../operation-node/unique-constraint const check_constraint_node_js_1 = require("../operation-node/check-constraint-node.js"); const table_parser_js_1 = require("../parser/table-parser.js"); const on_commit_action_parse_js_1 = require("../parser/on-commit-action-parse.js"); +const unique_constraint_builder_js_1 = require("./unique-constraint-builder.js"); +const expression_parser_js_1 = require("../parser/expression-parser.js"); /** * This builder can be used to create a `create table` query. */ @@ -86,7 +88,7 @@ class CreateTableBuilder { * ``` * * With this method, it's once again good to remember that Kysely just builds the - * query and doesn't provide the same API for all databses. For example, some + * query and doesn't provide the same API for all databases. For example, some * databases like older MySQL don't support the `references` statement in the * column definition. Instead foreign key constraints need to be defined in the * `create table` query. See the next example: @@ -145,11 +147,17 @@ class CreateTableBuilder { * ```ts * addUniqueConstraint('first_name_last_name_unique', ['first_name', 'last_name']) * ``` + * + * In dialects such as PostgreSQL you can specify `nulls not distinct` as follows: + * ```ts + * addUniqueConstraint('first_name_last_name_unique', ['first_name', 'last_name'], (builder) => builder.nullsNotDistinct()) + * ``` */ - addUniqueConstraint(constraintName, columns) { + addUniqueConstraint(constraintName, columns, build = object_utils_js_1.noop) { + const uniqueConstraintBuilder = build(new unique_constraint_builder_js_1.UniqueConstraintNodeBuilder(unique_constraint_node_js_1.UniqueConstraintNode.create(columns, constraintName))); return new CreateTableBuilder({ ...this.#props, - node: create_table_node_js_1.CreateTableNode.cloneWithConstraint(this.#props.node, unique_constraint_node_js_1.UniqueConstraintNode.create(columns, constraintName)), + node: create_table_node_js_1.CreateTableNode.cloneWithConstraint(this.#props.node, uniqueConstraintBuilder.toOperationNode()), }); } /** @@ -272,6 +280,33 @@ class CreateTableBuilder { node: create_table_node_js_1.CreateTableNode.cloneWithEndModifier(this.#props.node, modifier.toOperationNode()), }); } + /** + * Allows to create table from `select` query. + * + * ### Examples + * + * ```ts + * db.schema.createTable('copy') + * .temporary() + * .as(db.selectFrom('person').select(['first_name', 'last_name'])) + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * create temporary table "copy" as + * select "first_name", "last_name" from "person" + * ``` + */ + as(expression) { + return new CreateTableBuilder({ + ...this.#props, + node: create_table_node_js_1.CreateTableNode.cloneWith(this.#props.node, { + selectQuery: (0, expression_parser_js_1.parseExpression)(expression), + }), + }); + } /** * Calls the given function passing `this` as the only argument. * diff --git a/node_modules/kysely/dist/cjs/schema/create-trigger-builder.d.ts b/node_modules/kysely/dist/cjs/schema/create-trigger-builder.d.ts new file mode 100644 index 0000000..6106ec7 --- /dev/null +++ b/node_modules/kysely/dist/cjs/schema/create-trigger-builder.d.ts @@ -0,0 +1,68 @@ +import { CreateTriggerNode } from 'kysely/dist/cjs/operation-node/create-trigger-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { ComparisonOperatorExpression, OperandValueExpressionOrList } from 'kysely/dist/cjs/parser/binary-operation-parser.js'; +import { ReferenceExpression } from 'kysely/dist/cjs/parser/reference-parser.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +import { AnyColumn, AnyColumnWithTable, SqlBool } from 'kysely/dist/cjs/util/type-utils.js'; +import { TriggerEvent } from 'kysely/dist/cjs/operation-node/trigger-event-node.js'; +import { ExpressionOrFactory } from 'kysely/dist/cjs/parser/expression-parser.js'; +import { TriggerQueryCreator } from 'kysely/dist/cjs/trigger-query-creator.js'; +export type DatabaseWithOldNewTables = DB & { + old: DB[TB]; + new: DB[TB]; +}; +/** + * This builder can be used to create a `create table` query. + */ +export declare class CreateTriggerBuilder implements OperationNodeSource, Compilable { + #private; + constructor(props: CreateTriggerBuilderProps); + before(): CreateTriggerBuilder; + after(): CreateTriggerBuilder; + insteadOf(): CreateTriggerBuilder; + addEvent(event: E, columns?: E extends 'update' ? AnyColumn[] : never[]): CreateTriggerBuilder; + forEachRow(): CreateTriggerBuilder; + forEachStatement(): CreateTriggerBuilder; + follows(otherTriggerName: string): CreateTriggerBuilder; + precedes(otherTriggerName: string): CreateTriggerBuilder; + /** + * Specifies the table for the trigger. + */ + onTable(table: TE, schema?: string): CreateTriggerBuilder; + /** + * Adds the "temporary" modifier. + * + * Use this to create a temporary trigger. + */ + temporary(): CreateTriggerBuilder; + /** + * Adds the "if not exists" modifier. + * + * If the trigger already exists, no error is thrown if this method has been called. + */ + ifNotExists(): CreateTriggerBuilder; + /** + * Only supported on PostgreSQL + */ + orReplace(): CreateTriggerBuilder; + /** + * Adds a query to the trigger. + */ + addQuery(build: QueryCreatorCallback): CreateTriggerBuilder; + function(name: string, args: ReadonlyArray>): CreateTriggerBuilder; + when, 'old' | 'new'>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList): CreateTriggerBuilder; + when(factory: ExpressionOrFactory, 'old' | 'new', SqlBool>): CreateTriggerBuilder; + $call(func: (qb: this) => T): T; + toOperationNode(): CreateTriggerNode; + compile(): CompiledQuery; + execute(): Promise; +} +export interface CreateTriggerBuilderProps { + readonly queryId: QueryId; + readonly executor: QueryExecutor; + readonly node: CreateTriggerNode; +} +export type QueryCreatorCallback = (creator: TriggerQueryCreator) => OperationNodeSource; diff --git a/node_modules/kysely/dist/cjs/schema/create-trigger-builder.js b/node_modules/kysely/dist/cjs/schema/create-trigger-builder.js new file mode 100644 index 0000000..ebc814c --- /dev/null +++ b/node_modules/kysely/dist/cjs/schema/create-trigger-builder.js @@ -0,0 +1,180 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CreateTriggerBuilder = void 0; +const create_trigger_node_js_1 = require("../operation-node/create-trigger-node.js"); +const query_node_js_1 = require("../operation-node/query-node.js"); +const binary_operation_parser_js_1 = require("../parser/binary-operation-parser.js"); +const reference_parser_js_1 = require("../parser/reference-parser.js"); +const immediate_value_transformer_js_1 = require("../plugin/immediate-value/immediate-value-transformer.js"); +const object_utils_js_1 = require("../util/object-utils.js"); +const prevent_await_js_1 = require("../util/prevent-await.js"); +const identifier_node_js_1 = require("../operation-node/identifier-node.js"); +const trigger_order_node_js_1 = require("../operation-node/trigger-order-node.js"); +const trigger_event_node_js_1 = require("../operation-node/trigger-event-node.js"); +const function_node_js_1 = require("../operation-node/function-node.js"); +const trigger_query_creator_js_1 = require("../trigger-query-creator.js"); +const table_node_js_1 = require("../operation-node/table-node.js"); +/** + * This builder can be used to create a `create table` query. + */ +class CreateTriggerBuilder { + #props; + constructor(props) { + this.#props = (0, object_utils_js_1.freeze)(props); + } + before() { + return new CreateTriggerBuilder({ + ...this.#props, + node: create_trigger_node_js_1.CreateTriggerNode.cloneWith(this.#props.node, { + time: 'before', + }), + }); + } + after() { + return new CreateTriggerBuilder({ + ...this.#props, + node: create_trigger_node_js_1.CreateTriggerNode.cloneWith(this.#props.node, { + time: 'after', + }), + }); + } + insteadOf() { + return new CreateTriggerBuilder({ + ...this.#props, + node: create_trigger_node_js_1.CreateTriggerNode.cloneWith(this.#props.node, { + time: 'instead of', + }), + }); + } + addEvent(event, columns) { + return new CreateTriggerBuilder({ + ...this.#props, + node: create_trigger_node_js_1.CreateTriggerNode.cloneWithEvent(this.#props.node, trigger_event_node_js_1.TriggerEventNode.create(event, columns?.map(reference_parser_js_1.parseOrderedColumnName))), + }); + } + forEachRow() { + return new CreateTriggerBuilder({ + ...this.#props, + node: create_trigger_node_js_1.CreateTriggerNode.cloneWith(this.#props.node, { + forEach: `row`, + }), + }); + } + forEachStatement() { + return new CreateTriggerBuilder({ + ...this.#props, + node: create_trigger_node_js_1.CreateTriggerNode.cloneWith(this.#props.node, { + forEach: `statement`, + }), + }); + } + follows(otherTriggerName) { + return new CreateTriggerBuilder({ + ...this.#props, + node: create_trigger_node_js_1.CreateTriggerNode.cloneWith(this.#props.node, { + order: trigger_order_node_js_1.TriggerOrderNode.create('follows', identifier_node_js_1.IdentifierNode.create(otherTriggerName)), + }), + }); + } + precedes(otherTriggerName) { + return new CreateTriggerBuilder({ + ...this.#props, + node: create_trigger_node_js_1.CreateTriggerNode.cloneWith(this.#props.node, { + order: trigger_order_node_js_1.TriggerOrderNode.create('precedes', identifier_node_js_1.IdentifierNode.create(otherTriggerName)), + }), + }); + } + /** + * Specifies the table for the trigger. + */ + onTable(table, schema) { + return new CreateTriggerBuilder({ + ...this.#props, + node: create_trigger_node_js_1.CreateTriggerNode.cloneWith(this.#props.node, { + table: schema + ? table_node_js_1.TableNode.createWithSchema(schema, table) + : table_node_js_1.TableNode.create(table), + }), + }); + } + /** + * Adds the "temporary" modifier. + * + * Use this to create a temporary trigger. + */ + temporary() { + return new CreateTriggerBuilder({ + ...this.#props, + node: create_trigger_node_js_1.CreateTriggerNode.cloneWith(this.#props.node, { + temporary: true, + }), + }); + } + /** + * Adds the "if not exists" modifier. + * + * If the trigger already exists, no error is thrown if this method has been called. + */ + ifNotExists() { + return new CreateTriggerBuilder({ + ...this.#props, + node: create_trigger_node_js_1.CreateTriggerNode.cloneWith(this.#props.node, { + ifNotExists: true, + }), + }); + } + /** + * Only supported on PostgreSQL + */ + orReplace() { + return new CreateTriggerBuilder({ + ...this.#props, + node: create_trigger_node_js_1.CreateTriggerNode.cloneWith(this.#props.node, { + orReplace: true, + }), + }); + } + /** + * Adds a query to the trigger. + */ + addQuery(build) { + const node = build(new trigger_query_creator_js_1.TriggerQueryCreator({ executor: this.#props.executor })).toOperationNode(); + if (!query_node_js_1.QueryNode.is(node)) + throw new Error('Must be a query node.'); + return new CreateTriggerBuilder({ + ...this.#props, + node: create_trigger_node_js_1.CreateTriggerNode.cloneWithQuery(this.#props.node, node), + }); + } + function(name, args) { + return new CreateTriggerBuilder({ + ...this.#props, + node: create_trigger_node_js_1.CreateTriggerNode.cloneWith(this.#props.node, { + function: function_node_js_1.FunctionNode.create(name, (0, reference_parser_js_1.parseReferenceExpressionOrList)(args)), + }), + }); + } + when(...args) { + const transformer = new immediate_value_transformer_js_1.ImmediateValueTransformer(); + return new CreateTriggerBuilder({ + ...this.#props, + node: create_trigger_node_js_1.CreateTriggerNode.cloneWith(this.#props.node, { + when: transformer.transformNode((0, binary_operation_parser_js_1.parseValueBinaryOperationOrExpression)(args)), + }), + }); + } + $call(func) { + return func(this); + } + toOperationNode() { + return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId); + } + compile() { + return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId); + } + async execute() { + await this.#props.executor.executeQuery(this.compile(), this.#props.queryId); + } +} +exports.CreateTriggerBuilder = CreateTriggerBuilder; +(0, prevent_await_js_1.preventAwait)(CreateTriggerBuilder, "don't await CreateTriggerBuilder instances directly. To execute the query you need to call `execute`"); diff --git a/node_modules/kysely/dist/cjs/schema/create-type-builder.d.ts b/node_modules/kysely/dist/cjs/schema/create-type-builder.d.ts index 8cc367c..3845c7b 100644 --- a/node_modules/kysely/dist/cjs/schema/create-type-builder.d.ts +++ b/node_modules/kysely/dist/cjs/schema/create-type-builder.d.ts @@ -1,9 +1,9 @@ -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { Compilable } from '../util/compilable.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { QueryId } from '../util/query-id.js'; -import { CreateTypeNode } from '../operation-node/create-type-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +import { CreateTypeNode } from 'kysely/dist/cjs/operation-node/create-type-node.js'; export declare class CreateTypeBuilder implements OperationNodeSource, Compilable { #private; constructor(props: CreateTypeBuilderProps); diff --git a/node_modules/kysely/dist/cjs/schema/create-view-builder.d.ts b/node_modules/kysely/dist/cjs/schema/create-view-builder.d.ts index 6786e99..de6f5cb 100644 --- a/node_modules/kysely/dist/cjs/schema/create-view-builder.d.ts +++ b/node_modules/kysely/dist/cjs/schema/create-view-builder.d.ts @@ -1,11 +1,11 @@ -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { Compilable } from '../util/compilable.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { QueryId } from '../util/query-id.js'; -import { CreateViewNode } from '../operation-node/create-view-node.js'; -import { RawBuilder } from '../raw-builder/raw-builder.js'; -import { SelectQueryBuilder } from '../query-builder/select-query-builder.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +import { CreateViewNode } from 'kysely/dist/cjs/operation-node/create-view-node.js'; +import { RawBuilder } from 'kysely/dist/cjs/raw-builder/raw-builder.js'; +import { SelectQueryBuilder } from 'kysely/dist/cjs/query-builder/select-query-builder.js'; export declare class CreateViewBuilder implements OperationNodeSource, Compilable { #private; constructor(props: CreateViewBuilderProps); diff --git a/node_modules/kysely/dist/cjs/schema/drop-index-builder.d.ts b/node_modules/kysely/dist/cjs/schema/drop-index-builder.d.ts index 36357d4..20486d3 100644 --- a/node_modules/kysely/dist/cjs/schema/drop-index-builder.d.ts +++ b/node_modules/kysely/dist/cjs/schema/drop-index-builder.d.ts @@ -1,9 +1,9 @@ -import { DropIndexNode } from '../operation-node/drop-index-node.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { Compilable } from '../util/compilable.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { QueryId } from '../util/query-id.js'; +import { DropIndexNode } from 'kysely/dist/cjs/operation-node/drop-index-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; export declare class DropIndexBuilder implements OperationNodeSource, Compilable { #private; constructor(props: DropIndexBuilderProps); diff --git a/node_modules/kysely/dist/cjs/schema/drop-schema-builder.d.ts b/node_modules/kysely/dist/cjs/schema/drop-schema-builder.d.ts index 052411c..fc46202 100644 --- a/node_modules/kysely/dist/cjs/schema/drop-schema-builder.d.ts +++ b/node_modules/kysely/dist/cjs/schema/drop-schema-builder.d.ts @@ -1,9 +1,9 @@ -import { DropSchemaNode } from '../operation-node/drop-schema-node.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { Compilable } from '../util/compilable.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { QueryId } from '../util/query-id.js'; +import { DropSchemaNode } from 'kysely/dist/cjs/operation-node/drop-schema-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; export declare class DropSchemaBuilder implements OperationNodeSource, Compilable { #private; constructor(props: DropSchemaBuilderProps); diff --git a/node_modules/kysely/dist/cjs/schema/drop-table-builder.d.ts b/node_modules/kysely/dist/cjs/schema/drop-table-builder.d.ts index 824492a..c9ab11d 100644 --- a/node_modules/kysely/dist/cjs/schema/drop-table-builder.d.ts +++ b/node_modules/kysely/dist/cjs/schema/drop-table-builder.d.ts @@ -1,9 +1,9 @@ -import { DropTableNode } from '../operation-node/drop-table-node.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { Compilable } from '../util/compilable.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { QueryId } from '../util/query-id.js'; +import { DropTableNode } from 'kysely/dist/cjs/operation-node/drop-table-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; export declare class DropTableBuilder implements OperationNodeSource, Compilable { #private; constructor(props: DropTableBuilderProps); diff --git a/node_modules/kysely/dist/cjs/schema/drop-trigger-builder.d.ts b/node_modules/kysely/dist/cjs/schema/drop-trigger-builder.d.ts new file mode 100644 index 0000000..8f86888 --- /dev/null +++ b/node_modules/kysely/dist/cjs/schema/drop-trigger-builder.d.ts @@ -0,0 +1,25 @@ +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +import { DropTriggerNode } from 'kysely/dist/cjs/operation-node/drop-trigger-node.js'; +export declare class DropTriggerBuilder implements OperationNodeSource, Compilable { + #private; + constructor(props: DropTriggerBuilderProps); + ifExists(): DropTriggerBuilder; + cascade(): DropTriggerBuilder; + /** + * Simply calls the provided function passing `this` as the only argument. `$call` returns + * what the provided function returns. + */ + $call(func: (qb: this) => T): T; + toOperationNode(): DropTriggerNode; + compile(): CompiledQuery; + execute(): Promise; +} +export interface DropTriggerBuilderProps { + readonly queryId: QueryId; + readonly executor: QueryExecutor; + readonly node: DropTriggerNode; +} diff --git a/node_modules/kysely/dist/cjs/schema/drop-trigger-builder.js b/node_modules/kysely/dist/cjs/schema/drop-trigger-builder.js new file mode 100644 index 0000000..1c55383 --- /dev/null +++ b/node_modules/kysely/dist/cjs/schema/drop-trigger-builder.js @@ -0,0 +1,46 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DropTriggerBuilder = void 0; +const prevent_await_js_1 = require("../util/prevent-await.js"); +const object_utils_js_1 = require("../util/object-utils.js"); +const drop_trigger_node_js_1 = require("../operation-node/drop-trigger-node.js"); +class DropTriggerBuilder { + #props; + constructor(props) { + this.#props = (0, object_utils_js_1.freeze)(props); + } + ifExists() { + return new DropTriggerBuilder({ + ...this.#props, + node: drop_trigger_node_js_1.DropTriggerNode.cloneWith(this.#props.node, { + ifExists: true, + }), + }); + } + cascade() { + return new DropTriggerBuilder({ + ...this.#props, + node: drop_trigger_node_js_1.DropTriggerNode.cloneWith(this.#props.node, { + cascade: true, + }), + }); + } + /** + * Simply calls the provided function passing `this` as the only argument. `$call` returns + * what the provided function returns. + */ + $call(func) { + return func(this); + } + toOperationNode() { + return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId); + } + compile() { + return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId); + } + async execute() { + await this.#props.executor.executeQuery(this.compile(), this.#props.queryId); + } +} +exports.DropTriggerBuilder = DropTriggerBuilder; +(0, prevent_await_js_1.preventAwait)(DropTriggerBuilder, "don't await DropTriggerBuilder instances directly. To execute the query you need to call `execute`"); diff --git a/node_modules/kysely/dist/cjs/schema/drop-type-builder.d.ts b/node_modules/kysely/dist/cjs/schema/drop-type-builder.d.ts index 1c93cb5..6fef602 100644 --- a/node_modules/kysely/dist/cjs/schema/drop-type-builder.d.ts +++ b/node_modules/kysely/dist/cjs/schema/drop-type-builder.d.ts @@ -1,9 +1,9 @@ -import { DropTypeNode } from '../operation-node/drop-type-node.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { Compilable } from '../util/compilable.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { QueryId } from '../util/query-id.js'; +import { DropTypeNode } from 'kysely/dist/cjs/operation-node/drop-type-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; export declare class DropTypeBuilder implements OperationNodeSource, Compilable { #private; constructor(props: DropTypeBuilderProps); diff --git a/node_modules/kysely/dist/cjs/schema/drop-view-builder.d.ts b/node_modules/kysely/dist/cjs/schema/drop-view-builder.d.ts index c16f06c..77b7070 100644 --- a/node_modules/kysely/dist/cjs/schema/drop-view-builder.d.ts +++ b/node_modules/kysely/dist/cjs/schema/drop-view-builder.d.ts @@ -1,9 +1,9 @@ -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { Compilable } from '../util/compilable.js'; -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { QueryId } from '../util/query-id.js'; -import { DropViewNode } from '../operation-node/drop-view-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { Compilable } from 'kysely/dist/cjs/util/compilable.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { QueryId } from 'kysely/dist/cjs/util/query-id.js'; +import { DropViewNode } from 'kysely/dist/cjs/operation-node/drop-view-node.js'; export declare class DropViewBuilder implements OperationNodeSource, Compilable { #private; constructor(props: DropViewBuilderProps); diff --git a/node_modules/kysely/dist/cjs/schema/foreign-key-constraint-builder.d.ts b/node_modules/kysely/dist/cjs/schema/foreign-key-constraint-builder.d.ts index 1d29ef8..02fb0b4 100644 --- a/node_modules/kysely/dist/cjs/schema/foreign-key-constraint-builder.d.ts +++ b/node_modules/kysely/dist/cjs/schema/foreign-key-constraint-builder.d.ts @@ -1,6 +1,6 @@ -import { ForeignKeyConstraintNode } from '../operation-node/foreign-key-constraint-node.js'; -import { OperationNodeSource } from '../operation-node/operation-node-source.js'; -import { OnModifyForeignAction } from '../operation-node/references-node.js'; +import { ForeignKeyConstraintNode } from 'kysely/dist/cjs/operation-node/foreign-key-constraint-node.js'; +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { OnModifyForeignAction } from 'kysely/dist/cjs/operation-node/references-node.js'; export interface ForeignKeyConstraintBuilderInterface { onDelete(onDelete: OnModifyForeignAction): R; onUpdate(onUpdate: OnModifyForeignAction): R; diff --git a/node_modules/kysely/dist/cjs/schema/schema.d.ts b/node_modules/kysely/dist/cjs/schema/schema.d.ts index 8634b84..52b57cb 100644 --- a/node_modules/kysely/dist/cjs/schema/schema.d.ts +++ b/node_modules/kysely/dist/cjs/schema/schema.d.ts @@ -1,20 +1,22 @@ -import { QueryExecutor } from '../query-executor/query-executor.js'; -import { AlterTableBuilder } from './alter-table-builder.js'; -import { CreateIndexBuilder } from './create-index-builder.js'; -import { CreateSchemaBuilder } from './create-schema-builder.js'; -import { CreateTableBuilder } from './create-table-builder.js'; -import { DropIndexBuilder } from './drop-index-builder.js'; -import { DropSchemaBuilder } from './drop-schema-builder.js'; -import { DropTableBuilder } from './drop-table-builder.js'; -import { CreateViewBuilder } from './create-view-builder.js'; -import { DropViewBuilder } from './drop-view-builder.js'; -import { KyselyPlugin } from '../plugin/kysely-plugin.js'; -import { CreateTypeBuilder } from './create-type-builder.js'; -import { DropTypeBuilder } from './drop-type-builder.js'; +import { QueryExecutor } from 'kysely/dist/cjs/query-executor/query-executor.js'; +import { AlterTableBuilder } from 'kysely/dist/cjs/schema/alter-table-builder.js'; +import { CreateIndexBuilder } from 'kysely/dist/cjs/schema/create-index-builder.js'; +import { CreateSchemaBuilder } from 'kysely/dist/cjs/schema/create-schema-builder.js'; +import { CreateTableBuilder } from 'kysely/dist/cjs/schema/create-table-builder.js'; +import { DropIndexBuilder } from 'kysely/dist/cjs/schema/drop-index-builder.js'; +import { DropSchemaBuilder } from 'kysely/dist/cjs/schema/drop-schema-builder.js'; +import { DropTableBuilder } from 'kysely/dist/cjs/schema/drop-table-builder.js'; +import { CreateViewBuilder } from 'kysely/dist/cjs/schema/create-view-builder.js'; +import { DropViewBuilder } from 'kysely/dist/cjs/schema/drop-view-builder.js'; +import { KyselyPlugin } from 'kysely/dist/cjs/plugin/kysely-plugin.js'; +import { CreateTypeBuilder } from 'kysely/dist/cjs/schema/create-type-builder.js'; +import { DropTypeBuilder } from 'kysely/dist/cjs/schema/drop-type-builder.js'; +import { CreateTriggerBuilder } from 'kysely/dist/cjs/schema/create-trigger-builder.js'; +import { DropTriggerBuilder } from 'kysely/dist/cjs/schema/drop-trigger-builder.js'; /** * Provides methods for building database schema. */ -export declare class SchemaModule { +export declare class SchemaModule { #private; constructor(executor: QueryExecutor); /** @@ -201,16 +203,18 @@ export declare class SchemaModule { * ``` */ dropType(typeName: string): DropTypeBuilder; + createTrigger(name: string): CreateTriggerBuilder; + dropTrigger(triggerName: string): DropTriggerBuilder; /** * Returns a copy of this schema module with the given plugin installed. */ - withPlugin(plugin: KyselyPlugin): SchemaModule; + withPlugin(plugin: KyselyPlugin): SchemaModule; /** * Returns a copy of this schema module without any plugins. */ - withoutPlugins(): SchemaModule; + withoutPlugins(): SchemaModule; /** * See {@link QueryCreator.withSchema} */ - withSchema(schema: string): SchemaModule; + withSchema(schema: string): SchemaModule; } diff --git a/node_modules/kysely/dist/cjs/schema/schema.js b/node_modules/kysely/dist/cjs/schema/schema.js index 052622f..7b979ab 100644 --- a/node_modules/kysely/dist/cjs/schema/schema.js +++ b/node_modules/kysely/dist/cjs/schema/schema.js @@ -27,6 +27,11 @@ const drop_type_builder_js_1 = require("./drop-type-builder.js"); const create_type_node_js_1 = require("../operation-node/create-type-node.js"); const drop_type_node_js_1 = require("../operation-node/drop-type-node.js"); const identifier_parser_js_1 = require("../parser/identifier-parser.js"); +const create_trigger_builder_js_1 = require("./create-trigger-builder.js"); +const create_trigger_node_js_1 = require("../operation-node/create-trigger-node.js"); +const identifier_node_js_1 = require("../operation-node/identifier-node.js"); +const drop_trigger_node_js_1 = require("../operation-node/drop-trigger-node.js"); +const drop_trigger_builder_js_1 = require("./drop-trigger-builder.js"); /** * Provides methods for building database schema. */ @@ -285,6 +290,20 @@ class SchemaModule { node: drop_type_node_js_1.DropTypeNode.create((0, identifier_parser_js_1.parseSchemableIdentifier)(typeName)), }); } + createTrigger(name) { + return new create_trigger_builder_js_1.CreateTriggerBuilder({ + queryId: (0, query_id_js_1.createQueryId)(), + executor: this.#executor, + node: create_trigger_node_js_1.CreateTriggerNode.create(identifier_node_js_1.IdentifierNode.create(name)), + }); + } + dropTrigger(triggerName) { + return new drop_trigger_builder_js_1.DropTriggerBuilder({ + queryId: (0, query_id_js_1.createQueryId)(), + executor: this.#executor, + node: drop_trigger_node_js_1.DropTriggerNode.create((0, identifier_parser_js_1.parseSchemableIdentifier)(triggerName)), + }); + } /** * Returns a copy of this schema module with the given plugin installed. */ diff --git a/node_modules/kysely/dist/cjs/schema/unique-constraint-builder.d.ts b/node_modules/kysely/dist/cjs/schema/unique-constraint-builder.d.ts new file mode 100644 index 0000000..420398a --- /dev/null +++ b/node_modules/kysely/dist/cjs/schema/unique-constraint-builder.d.ts @@ -0,0 +1,14 @@ +import { OperationNodeSource } from 'kysely/dist/cjs/operation-node/operation-node-source.js'; +import { UniqueConstraintNode } from 'kysely/dist/cjs/operation-node/unique-constraint-node.js'; +export declare class UniqueConstraintNodeBuilder implements OperationNodeSource { + #private; + constructor(node: UniqueConstraintNode); + toOperationNode(): UniqueConstraintNode; + /** + * Adds `nulls not distinct` to the unique constraint definition + * + * Supported by PostgreSQL dialect only + */ + nullsNotDistinct(): UniqueConstraintNodeBuilder; +} +export type UniqueConstraintNodeBuilderCallback = (builder: UniqueConstraintNodeBuilder) => UniqueConstraintNodeBuilder; diff --git a/node_modules/kysely/dist/cjs/schema/unique-constraint-builder.js b/node_modules/kysely/dist/cjs/schema/unique-constraint-builder.js new file mode 100644 index 0000000..9931354 --- /dev/null +++ b/node_modules/kysely/dist/cjs/schema/unique-constraint-builder.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.UniqueConstraintNodeBuilder = void 0; +const unique_constraint_node_js_1 = require("../operation-node/unique-constraint-node.js"); +const prevent_await_js_1 = require("../util/prevent-await.js"); +class UniqueConstraintNodeBuilder { + #node; + constructor(node) { + this.#node = node; + } + toOperationNode() { + return this.#node; + } + /** + * Adds `nulls not distinct` to the unique constraint definition + * + * Supported by PostgreSQL dialect only + */ + nullsNotDistinct() { + return new UniqueConstraintNodeBuilder(unique_constraint_node_js_1.UniqueConstraintNode.cloneWith(this.#node, { nullsNotDistinct: true })); + } +} +exports.UniqueConstraintNodeBuilder = UniqueConstraintNodeBuilder; +(0, prevent_await_js_1.preventAwait)(UniqueConstraintNodeBuilder, "don't await UniqueConstraintNodeBuilder instances directly."); diff --git a/node_modules/kysely/dist/cjs/trigger-query-creator.d.ts b/node_modules/kysely/dist/cjs/trigger-query-creator.d.ts new file mode 100644 index 0000000..9b7599f --- /dev/null +++ b/node_modules/kysely/dist/cjs/trigger-query-creator.d.ts @@ -0,0 +1,35 @@ +import { SelectQueryBuilder } from 'kysely/dist/cjs/query-builder/select-query-builder.js'; +import { InsertQueryBuilder } from 'kysely/dist/cjs/query-builder/insert-query-builder.js'; +import { DeleteQueryBuilder } from 'kysely/dist/cjs/query-builder/delete-query-builder.js'; +import { UpdateQueryBuilder } from 'kysely/dist/cjs/query-builder/update-query-builder.js'; +import { TableExpression, From, FromTables, TableReference, ExtractTableAlias, AnyAliasedTable, PickTableWithAlias } from 'kysely/dist/cjs/parser/table-parser.js'; +import { InsertResult } from 'kysely/dist/cjs/query-builder/insert-result.js'; +import { DeleteResult } from 'kysely/dist/cjs/query-builder/delete-result.js'; +import { UpdateResult } from 'kysely/dist/cjs/query-builder/update-result.js'; +import { KyselyPlugin } from 'kysely/dist/cjs/plugin/kysely-plugin.js'; +import { CallbackSelection, SelectCallback, SelectExpression, Selection } from 'kysely/dist/cjs/parser/select-parser.js'; +import { QueryCreatorProps } from 'kysely/dist/cjs/query-creator.js'; +import { DatabaseWithOldNewTables } from 'kysely/dist/cjs/schema/create-trigger-builder.js'; +export declare class TriggerQueryCreator { + #private; + constructor(props: QueryCreatorProps); + selectFrom(from: TE[]): SelectQueryBuilder, ExtractTableAlias | 'new' | 'old', {}>; + selectFrom>(from: TE[]): SelectQueryBuilder, TE>, FromTables | 'new' | 'old', {}>; + selectFrom(from: TE): SelectQueryBuilder, ExtractTableAlias | 'new' | 'old', {}>; + selectFrom>(from: TE): SelectQueryBuilder & PickTableWithAlias, TE>, ExtractTableAlias | 'new' | 'old', {}>; + selectFrom>(from: TE): SelectQueryBuilder, TE>, FromTables | 'new' | 'old', {}>; + selectNoFrom>(selections: ReadonlyArray): SelectQueryBuilder>; + selectNoFrom>(callback: CB): SelectQueryBuilder>; + selectNoFrom>(selection: SE): SelectQueryBuilder>; + insertInto(table: T): InsertQueryBuilder; + replaceInto(table: T): InsertQueryBuilder; + deleteFrom(from: TR[]): DeleteQueryBuilder, ExtractTableAlias | 'new' | 'old', DeleteResult>; + deleteFrom>(tables: TR[]): DeleteQueryBuilder, TR>, FromTables | 'new' | 'old', DeleteResult>; + deleteFrom(from: TR): DeleteQueryBuilder, ExtractTableAlias | 'new' | 'old', DeleteResult>; + deleteFrom>(table: TR): DeleteQueryBuilder, TR>, FromTables | 'new' | 'old', DeleteResult>; + updateTable(table: TR): UpdateQueryBuilder, ExtractTableAlias, UpdateResult>; + updateTable>(table: TR): UpdateQueryBuilder, ExtractTableAlias, ExtractTableAlias, UpdateResult>; + updateTable>(table: TR): UpdateQueryBuilder, FromTables, FromTables, UpdateResult>; + withPlugin(plugin: KyselyPlugin): TriggerQueryCreator; + withoutPlugins(): TriggerQueryCreator; +} diff --git a/node_modules/kysely/dist/cjs/trigger-query-creator.js b/node_modules/kysely/dist/cjs/trigger-query-creator.js new file mode 100644 index 0000000..5d4d073 --- /dev/null +++ b/node_modules/kysely/dist/cjs/trigger-query-creator.js @@ -0,0 +1,76 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TriggerQueryCreator = void 0; +const select_query_builder_js_1 = require("./query-builder/select-query-builder.js"); +const insert_query_builder_js_1 = require("./query-builder/insert-query-builder.js"); +const delete_query_builder_js_1 = require("./query-builder/delete-query-builder.js"); +const update_query_builder_js_1 = require("./query-builder/update-query-builder.js"); +const delete_query_node_js_1 = require("./operation-node/delete-query-node.js"); +const insert_query_node_js_1 = require("./operation-node/insert-query-node.js"); +const select_query_node_js_1 = require("./operation-node/select-query-node.js"); +const update_query_node_js_1 = require("./operation-node/update-query-node.js"); +const table_parser_js_1 = require("./parser/table-parser.js"); +const query_id_js_1 = require("./util/query-id.js"); +const object_utils_js_1 = require("./util/object-utils.js"); +const select_parser_js_1 = require("./parser/select-parser.js"); +class TriggerQueryCreator { + #props; + constructor(props) { + this.#props = (0, object_utils_js_1.freeze)(props); + } + selectFrom(from) { + return (0, select_query_builder_js_1.createSelectQueryBuilder)({ + queryId: (0, query_id_js_1.createQueryId)(), + executor: this.#props.executor, + queryNode: select_query_node_js_1.SelectQueryNode.createFrom((0, table_parser_js_1.parseTableExpressionOrList)(from), this.#props.withNode), + }); + } + selectNoFrom(selection) { + return (0, select_query_builder_js_1.createSelectQueryBuilder)({ + queryId: (0, query_id_js_1.createQueryId)(), + executor: this.#props.executor, + queryNode: select_query_node_js_1.SelectQueryNode.cloneWithSelections(select_query_node_js_1.SelectQueryNode.create(this.#props.withNode), (0, select_parser_js_1.parseSelectArg)(selection)), + }); + } + insertInto(table) { + return new insert_query_builder_js_1.InsertQueryBuilder({ + queryId: (0, query_id_js_1.createQueryId)(), + executor: this.#props.executor, + queryNode: insert_query_node_js_1.InsertQueryNode.create((0, table_parser_js_1.parseTable)(table), this.#props.withNode), + }); + } + replaceInto(table) { + return new insert_query_builder_js_1.InsertQueryBuilder({ + queryId: (0, query_id_js_1.createQueryId)(), + executor: this.#props.executor, + queryNode: insert_query_node_js_1.InsertQueryNode.create((0, table_parser_js_1.parseTable)(table), this.#props.withNode, true), + }); + } + deleteFrom(tables) { + return new delete_query_builder_js_1.DeleteQueryBuilder({ + queryId: (0, query_id_js_1.createQueryId)(), + executor: this.#props.executor, + queryNode: delete_query_node_js_1.DeleteQueryNode.create((0, table_parser_js_1.parseTableExpressionOrList)(tables), this.#props.withNode), + }); + } + updateTable(table) { + return new update_query_builder_js_1.UpdateQueryBuilder({ + queryId: (0, query_id_js_1.createQueryId)(), + executor: this.#props.executor, + queryNode: update_query_node_js_1.UpdateQueryNode.create((0, table_parser_js_1.parseTableExpression)(table), this.#props.withNode), + }); + } + withPlugin(plugin) { + return new TriggerQueryCreator({ + ...this.#props, + executor: this.#props.executor.withPlugin(plugin), + }); + } + withoutPlugins() { + return new TriggerQueryCreator({ + ...this.#props, + executor: this.#props.executor.withoutPlugins(), + }); + } +} +exports.TriggerQueryCreator = TriggerQueryCreator; diff --git a/node_modules/kysely/dist/cjs/util/column-type.d.ts b/node_modules/kysely/dist/cjs/util/column-type.d.ts index bb33464..88a26b2 100644 --- a/node_modules/kysely/dist/cjs/util/column-type.d.ts +++ b/node_modules/kysely/dist/cjs/util/column-type.d.ts @@ -1,4 +1,4 @@ -import { DrainOuterGeneric } from './type-utils.js'; +import { DrainOuterGeneric } from 'kysely/dist/cjs/util/type-utils.js'; /** * This type can be used to specify a different type for * select, insert and update operations. diff --git a/node_modules/kysely/dist/cjs/util/compilable.d.ts b/node_modules/kysely/dist/cjs/util/compilable.d.ts index 638b5d0..5c8f0e9 100644 --- a/node_modules/kysely/dist/cjs/util/compilable.d.ts +++ b/node_modules/kysely/dist/cjs/util/compilable.d.ts @@ -1,4 +1,4 @@ -import { CompiledQuery } from '../query-compiler/compiled-query.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; export interface Compilable { compile(): CompiledQuery; } diff --git a/node_modules/kysely/dist/cjs/util/explainable.d.ts b/node_modules/kysely/dist/cjs/util/explainable.d.ts index 5e05810..86789f2 100644 --- a/node_modules/kysely/dist/cjs/util/explainable.d.ts +++ b/node_modules/kysely/dist/cjs/util/explainable.d.ts @@ -1,4 +1,4 @@ -import { Expression } from '../expression/expression.js'; +import { Expression } from 'kysely/dist/cjs/expression/expression.js'; export type ExplainFormat = 'text' | 'xml' | 'json' | 'yaml' | 'traditional' | 'tree'; export interface Explainable { /** diff --git a/node_modules/kysely/dist/cjs/util/log.d.ts b/node_modules/kysely/dist/cjs/util/log.d.ts index 840a172..69c7b55 100644 --- a/node_modules/kysely/dist/cjs/util/log.d.ts +++ b/node_modules/kysely/dist/cjs/util/log.d.ts @@ -1,5 +1,5 @@ -import { CompiledQuery } from '../query-compiler/compiled-query.js'; -import { ArrayItemType } from './type-utils.js'; +import { CompiledQuery } from 'kysely/dist/cjs/query-compiler/compiled-query.js'; +import { ArrayItemType } from 'kysely/dist/cjs/util/type-utils.js'; export declare const LOG_LEVELS: readonly ["query", "error"]; export type LogLevel = ArrayItemType; export interface QueryLogEvent { diff --git a/node_modules/kysely/dist/cjs/util/object-utils.d.ts b/node_modules/kysely/dist/cjs/util/object-utils.d.ts index 1b9f563..c9fa82b 100644 --- a/node_modules/kysely/dist/cjs/util/object-utils.d.ts +++ b/node_modules/kysely/dist/cjs/util/object-utils.d.ts @@ -6,7 +6,7 @@ export declare function isNumber(obj: unknown): obj is number; export declare function isBoolean(obj: unknown): obj is boolean; export declare function isNull(obj: unknown): obj is null; export declare function isDate(obj: unknown): obj is Date; -export declare function isBigInt(obj: unknown): obj is BigInt; +export declare function isBigInt(obj: unknown): obj is bigint; export declare function isBuffer(obj: unknown): obj is { length: number; }; diff --git a/node_modules/kysely/dist/cjs/util/type-utils.d.ts b/node_modules/kysely/dist/cjs/util/type-utils.d.ts index 5fd42ff..4daf187 100644 --- a/node_modules/kysely/dist/cjs/util/type-utils.d.ts +++ b/node_modules/kysely/dist/cjs/util/type-utils.d.ts @@ -1,7 +1,7 @@ -import { InsertResult } from '../query-builder/insert-result.js'; -import { DeleteResult } from '../query-builder/delete-result.js'; -import { UpdateResult } from '../query-builder/update-result.js'; -import { KyselyTypeError } from './type-error.js'; +import { InsertResult } from 'kysely/dist/cjs/query-builder/insert-result.js'; +import { DeleteResult } from 'kysely/dist/cjs/query-builder/delete-result.js'; +import { UpdateResult } from 'kysely/dist/cjs/query-builder/update-result.js'; +import { KyselyTypeError } from 'kysely/dist/cjs/util/type-error.js'; /** * Given a database type and a union of table names in that db, returns * a union type with all possible column names. diff --git a/node_modules/kysely/dist/esm/dialect/dialect-adapter-base.d.ts b/node_modules/kysely/dist/esm/dialect/dialect-adapter-base.d.ts index dc87916..e3fb628 100644 --- a/node_modules/kysely/dist/esm/dialect/dialect-adapter-base.d.ts +++ b/node_modules/kysely/dist/esm/dialect/dialect-adapter-base.d.ts @@ -7,6 +7,14 @@ import { DialectAdapter, MigrationLockOptions } from './dialect-adapter.js'; * they are added and there will be less breaking changes. */ export declare abstract class DialectAdapterBase implements DialectAdapter { + /** + * Whether or not this dialect supports `if not exists` in creation of tables/schemas/views/etc. + * + * If this is false, Kysely's internal migrations tables and schemas are created + * without `if not exists` in migrations. This is not a problem if the dialect + * supports transactional DDL. + */ + get supportsCreateIfNotExists(): boolean; /** * Whether or not this dialect supports transactional DDL. * diff --git a/node_modules/kysely/dist/esm/dialect/dialect-adapter-base.js b/node_modules/kysely/dist/esm/dialect/dialect-adapter-base.js index b5f7843..7065ce6 100644 --- a/node_modules/kysely/dist/esm/dialect/dialect-adapter-base.js +++ b/node_modules/kysely/dist/esm/dialect/dialect-adapter-base.js @@ -6,6 +6,9 @@ * they are added and there will be less breaking changes. */ export class DialectAdapterBase { + get supportsCreateIfNotExists() { + return true; + } get supportsTransactionalDdl() { return false; } diff --git a/node_modules/kysely/dist/esm/dialect/dialect-adapter.d.ts b/node_modules/kysely/dist/esm/dialect/dialect-adapter.d.ts index 73a925a..fe7f1b3 100644 --- a/node_modules/kysely/dist/esm/dialect/dialect-adapter.d.ts +++ b/node_modules/kysely/dist/esm/dialect/dialect-adapter.d.ts @@ -8,6 +8,14 @@ import { Kysely } from '../kysely.js'; * it. For that there's a `supportsTransactionalDdl` boolean in this interface. */ export interface DialectAdapter { + /** + * Whether or not this dialect supports `if not exists` in creation of tables/schemas/views/etc. + * + * If this is false, Kysely's internal migrations tables and schemas are created + * without `if not exists` in migrations. This is not a problem if the dialect + * supports transactional DDL. + */ + readonly supportsCreateIfNotExists: boolean; /** * Whether or not this dialect supports transactional DDL. * diff --git a/node_modules/kysely/dist/esm/dialect/postgres/postgres-driver.js b/node_modules/kysely/dist/esm/dialect/postgres/postgres-driver.js index c83b381..3bcddb6 100644 --- a/node_modules/kysely/dist/esm/dialect/postgres/postgres-driver.js +++ b/node_modules/kysely/dist/esm/dialect/postgres/postgres-driver.js @@ -26,7 +26,7 @@ export class PostgresDriver { // The driver must take care of calling `onCreateConnection` when a new // connection is created. The `pg` module doesn't provide an async hook // for the connection creation. We need to call the method explicitly. - if (this.#config?.onCreateConnection) { + if (this.#config.onCreateConnection) { await this.#config.onCreateConnection(connection); } } diff --git a/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-adapter.d.ts b/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-adapter.d.ts index 69a0a7d..550df53 100644 --- a/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +++ b/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-adapter.d.ts @@ -1,7 +1,7 @@ import { Kysely } from '../../kysely.js'; import { DialectAdapterBase } from '../dialect-adapter-base.js'; import { MigrationLockOptions } from '../dialect-adapter.js'; -export declare class SqliteAdapter implements DialectAdapterBase { +export declare class SqliteAdapter extends DialectAdapterBase { /** * Whether or not this dialect supports transactional DDL. * diff --git a/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-adapter.js b/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-adapter.js index f095ebb..4f1b71f 100644 --- a/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-adapter.js +++ b/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-adapter.js @@ -1,5 +1,6 @@ /// -export class SqliteAdapter { +import { DialectAdapterBase } from '../dialect-adapter-base.js'; +export class SqliteAdapter extends DialectAdapterBase { get supportsTransactionalDdl() { return false; } diff --git a/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-dialect-config.d.ts b/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-dialect-config.d.ts index 810af98..a873682 100644 --- a/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-dialect-config.d.ts +++ b/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-dialect-config.d.ts @@ -37,4 +37,5 @@ export interface SqliteStatement { changes: number | bigint; lastInsertRowid: number | bigint; }; + iterate(parameters: ReadonlyArray): IterableIterator; } diff --git a/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-driver.js b/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-driver.js index 23f21e3..d20935f 100644 --- a/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-driver.js +++ b/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-driver.js @@ -1,4 +1,5 @@ /// +import { SelectQueryNode } from '../../operation-node/select-query-node.js'; import { CompiledQuery } from '../../query-compiler/compiled-query.js'; import { freeze, isFunction } from '../../util/object-utils.js'; export class SqliteDriver { @@ -67,8 +68,20 @@ class SqliteConnection { }); } } - async *streamQuery() { - throw new Error("Sqlite driver doesn't support streaming"); + async *streamQuery(compiledQuery, _chunkSize) { + const { sql, parameters, query } = compiledQuery; + const stmt = this.#db.prepare(sql); + if (SelectQueryNode.is(query)) { + const iter = stmt.iterate(parameters); + for (const row of iter) { + yield { + rows: [row], + }; + } + } + else { + throw new Error('Sqlite driver only supports streaming of select queries'); + } } } class ConnectionMutex { diff --git a/node_modules/kysely/dist/esm/driver/driver.d.ts b/node_modules/kysely/dist/esm/driver/driver.d.ts index 00babcb..11d2d55 100644 --- a/node_modules/kysely/dist/esm/driver/driver.d.ts +++ b/node_modules/kysely/dist/esm/driver/driver.d.ts @@ -40,5 +40,5 @@ export interface Driver { export interface TransactionSettings { readonly isolationLevel?: IsolationLevel; } -export declare const TRANSACTION_ISOLATION_LEVELS: readonly ["read uncommitted", "read committed", "repeatable read", "serializable"]; +export declare const TRANSACTION_ISOLATION_LEVELS: readonly ["read uncommitted", "read committed", "repeatable read", "serializable", "snapshot"]; export type IsolationLevel = ArrayItemType; diff --git a/node_modules/kysely/dist/esm/driver/driver.js b/node_modules/kysely/dist/esm/driver/driver.js index 88c2a07..2ae1469 100644 --- a/node_modules/kysely/dist/esm/driver/driver.js +++ b/node_modules/kysely/dist/esm/driver/driver.js @@ -4,4 +4,5 @@ export const TRANSACTION_ISOLATION_LEVELS = [ 'read committed', 'repeatable read', 'serializable', + 'snapshot', ]; diff --git a/node_modules/kysely/dist/esm/driver/single-connection-provider.js b/node_modules/kysely/dist/esm/driver/single-connection-provider.js index aafebb7..ef341ee 100644 --- a/node_modules/kysely/dist/esm/driver/single-connection-provider.js +++ b/node_modules/kysely/dist/esm/driver/single-connection-provider.js @@ -1,4 +1,5 @@ /// +const ignoreError = () => { }; export class SingleConnectionProvider { #connection; #runningPromise; @@ -7,17 +8,15 @@ export class SingleConnectionProvider { } async provideConnection(consumer) { while (this.#runningPromise) { - await this.#runningPromise; + await this.#runningPromise.catch(ignoreError); } - const promise = this.#run(consumer); - this.#runningPromise = promise - .then(() => { - this.#runningPromise = undefined; - }) - .catch(() => { + // `#runningPromise` must be set to undefined before it's + // resolved or rejected. Otherwise the while loop above + // will misbehave. + this.#runningPromise = this.#run(consumer).finally(() => { this.#runningPromise = undefined; }); - return promise; + return this.#runningPromise; } // Run the runner in an async function to make sure it doesn't // throw synchronous errors. diff --git a/node_modules/kysely/dist/esm/expression/expression-builder.d.ts b/node_modules/kysely/dist/esm/expression/expression-builder.d.ts index 7b4a340..07933a1 100644 --- a/node_modules/kysely/dist/esm/expression/expression-builder.d.ts +++ b/node_modules/kysely/dist/esm/expression/expression-builder.d.ts @@ -14,6 +14,7 @@ import { JSONPathBuilder } from '../query-builder/json-path-builder.js'; import { OperandExpression } from '../parser/expression-parser.js'; import { CallbackSelection, SelectCallback, SelectExpression, Selection } from '../parser/select-parser.js'; import { RefTuple2, RefTuple3, RefTuple4, RefTuple5, ValTuple2, ValTuple3, ValTuple4, ValTuple5 } from '../parser/tuple-parser.js'; +import { Selectable } from '../util/column-type.js'; export interface ExpressionBuilder { /** * Creates a binary expression. @@ -344,6 +345,30 @@ export interface ExpressionBuilder { */ ref>(reference: RE): ExpressionWrapper>; ref>(reference: RE, op: JSONOperatorWith$): JSONPathBuilder>; + /** + * Creates a table reference. + * + * ```ts + * db.selectFrom('person') + * .innerJoin('pet', 'pet.owner_id', 'person.id') + * .select(eb => [ + * 'person.id', + * sql`jsonb_agg(${eb.table('pet')})`.as('pets') + * ]) + * .groupBy('person.id') + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * select "person"."id", jsonb_agg("pet") as "pets" + * from "person" + * inner join "pet" on "pet"."owner_id" = "person"."id" + * group by "person"."id" + * ``` + */ + table(table: T): ExpressionWrapper>; /** * Returns a value expression. * diff --git a/node_modules/kysely/dist/esm/expression/expression-builder.js b/node_modules/kysely/dist/esm/expression/expression-builder.js index f550460..86b0098 100644 --- a/node_modules/kysely/dist/esm/expression/expression-builder.js +++ b/node_modules/kysely/dist/esm/expression/expression-builder.js @@ -1,7 +1,7 @@ /// import { createSelectQueryBuilder, } from '../query-builder/select-query-builder.js'; import { SelectQueryNode } from '../operation-node/select-query-node.js'; -import { parseTableExpressionOrList, } from '../parser/table-parser.js'; +import { parseTableExpressionOrList, parseTable, } from '../parser/table-parser.js'; import { WithSchemaPlugin } from '../plugin/with-schema/with-schema-plugin.js'; import { createQueryId } from '../util/query-id.js'; import { createFunctionModule, } from '../query-builder/function-module.js'; @@ -11,7 +11,7 @@ import { ParensNode } from '../operation-node/parens-node.js'; import { ExpressionWrapper } from './expression-wrapper.js'; import { OperatorNode, } from '../operation-node/operator-node.js'; import { parseUnaryOperation } from '../parser/unary-operation-parser.js'; -import { parseSafeImmediateValue, parseValueExpression, parseValueExpressionOrList, } from '../parser/value-parser.js'; +import { parseSafeImmediateValue, parseValueExpression, } from '../parser/value-parser.js'; import { NOOP_QUERY_EXECUTOR } from '../query-executor/noop-query-executor.js'; import { CaseBuilder } from '../query-builder/case-builder.js'; import { CaseNode } from '../operation-node/case-node.js'; @@ -58,8 +58,11 @@ export function createExpressionBuilder(executor = NOOP_QUERY_EXECUTOR) { } return new JSONPathBuilder(parseJSONReference(reference, op)); }, + table(table) { + return new ExpressionWrapper(parseTable(table)); + }, val(value) { - return new ExpressionWrapper(parseValueExpressionOrList(value)); + return new ExpressionWrapper(parseValueExpression(value)); }, refTuple(...values) { return new ExpressionWrapper(TupleNode.create(values.map(parseReferenceExpression))); diff --git a/node_modules/kysely/dist/esm/index.d.ts b/node_modules/kysely/dist/esm/index.d.ts index cf166f8..37cf701 100644 --- a/node_modules/kysely/dist/esm/index.d.ts +++ b/node_modules/kysely/dist/esm/index.d.ts @@ -72,6 +72,12 @@ export * from './dialect/postgres/postgres-dialect.js'; export * from './dialect/sqlite/sqlite-query-compiler.js'; export * from './dialect/sqlite/sqlite-introspector.js'; export * from './dialect/sqlite/sqlite-adapter.js'; +export * from './dialect/mssql/mssql-adapter.js'; +export * from './dialect/mssql/mssql-dialect-config.js'; +export * from './dialect/mssql/mssql-dialect.js'; +export * from './dialect/mssql/mssql-driver.js'; +export * from './dialect/mssql/mssql-introspector.js'; +export * from './dialect/mssql/mssql-query-compiler.js'; export * from './query-compiler/default-query-compiler.js'; export * from './query-compiler/query-compiler.js'; export * from './migration/migrator.js'; @@ -176,7 +182,7 @@ export * from './util/compilable.js'; export * from './util/explainable.js'; export * from './util/streamable.js'; export * from './util/log.js'; -export { AnyAliasedColumn, AnyAliasedColumnWithTable, AnyColumn, AnyColumnWithTable, Equals, UnknownRow, Simplify, SqlBool, } from './util/type-utils.js'; +export { AnyAliasedColumn, AnyAliasedColumnWithTable, AnyColumn, AnyColumnWithTable, Equals, UnknownRow, Simplify, SqlBool, Nullable, } from './util/type-utils.js'; export * from './util/infer-result.js'; export { logOnce } from './util/log-once.js'; export { SelectExpression, SelectCallback, SelectArg, Selection, CallbackSelection, } from './parser/select-parser.js'; diff --git a/node_modules/kysely/dist/esm/kysely.d.ts b/node_modules/kysely/dist/esm/kysely.d.ts index 52e909a..8e45b8c 100644 --- a/node_modules/kysely/dist/esm/kysely.d.ts +++ b/node_modules/kysely/dist/esm/kysely.d.ts @@ -66,7 +66,7 @@ export declare class Kysely extends QueryCreator implements QueryExecuto /** * Returns the {@link SchemaModule} module for building database schema. */ - get schema(): SchemaModule; + get schema(): SchemaModule; /** * Returns a the {@link DynamicModule} module. * diff --git a/node_modules/kysely/dist/esm/migration/migrator.js b/node_modules/kysely/dist/esm/migration/migrator.js index 8c7a0b4..7d3a26a 100644 --- a/node_modules/kysely/dist/esm/migration/migrator.js +++ b/node_modules/kysely/dist/esm/migration/migrator.js @@ -218,10 +218,7 @@ export class Migrator { } if (!(await this.#doesSchemaExists())) { try { - await this.#props.db.schema - .createSchema(this.#migrationTableSchema) - .ifNotExists() - .execute(); + await this.#createIfNotExists(this.#props.db.schema.createSchema(this.#migrationTableSchema)); } catch (error) { // At least on PostgreSQL, `if not exists` doesn't guarantee the `create schema` @@ -237,20 +234,15 @@ export class Migrator { if (!(await this.#doesTableExists(this.#migrationTable))) { try { if (this.#migrationTableSchema) { - await this.#props.db.schema - .createSchema(this.#migrationTableSchema) - .ifNotExists() - .execute(); + await this.#createIfNotExists(this.#props.db.schema.createSchema(this.#migrationTableSchema)); } - await this.#props.db.schema + await this.#createIfNotExists(this.#props.db.schema .withPlugin(this.#schemaPlugin) .createTable(this.#migrationTable) - .ifNotExists() .addColumn('name', 'varchar(255)', (col) => col.notNull().primaryKey()) // The migration run time as ISO string. This is not a real date type as we // can't know which data type is supported by all future dialects. - .addColumn('timestamp', 'varchar(255)', (col) => col.notNull()) - .execute(); + .addColumn('timestamp', 'varchar(255)', (col) => col.notNull())); } catch (error) { // At least on PostgreSQL, `if not exists` doesn't guarantee the `create table` @@ -265,13 +257,11 @@ export class Migrator { async #ensureMigrationLockTableExists() { if (!(await this.#doesTableExists(this.#migrationLockTable))) { try { - await this.#props.db.schema + await this.#createIfNotExists(this.#props.db.schema .withPlugin(this.#schemaPlugin) .createTable(this.#migrationLockTable) - .ifNotExists() .addColumn('id', 'varchar(255)', (col) => col.notNull().primaryKey()) - .addColumn('is_locked', 'integer', (col) => col.notNull().defaultTo(0)) - .execute(); + .addColumn('is_locked', 'integer', (col) => col.notNull().defaultTo(0))); } catch (error) { // At least on PostgreSQL, `if not exists` doesn't guarantee the `create table` @@ -479,6 +469,12 @@ export class Migrator { } return { results }; } + async #createIfNotExists(qb) { + if (this.#props.db.getExecutor().adapter.supportsCreateIfNotExists) { + qb = qb.ifNotExists(); + } + await qb.execute(); + } } class MigrationResultSetError extends Error { #resultSet; diff --git a/node_modules/kysely/dist/esm/operation-node/add-index-node.d.ts b/node_modules/kysely/dist/esm/operation-node/add-index-node.d.ts new file mode 100644 index 0000000..b81f95f --- /dev/null +++ b/node_modules/kysely/dist/esm/operation-node/add-index-node.d.ts @@ -0,0 +1,21 @@ +import { IdentifierNode } from './identifier-node.js'; +import { OperationNode } from './operation-node.js'; +import { RawNode } from './raw-node.js'; +export type AddIndexNodeProps = Omit; +export interface AddIndexNode extends OperationNode { + readonly kind: 'AddIndexNode'; + readonly name: IdentifierNode; + readonly columns?: OperationNode[]; + readonly unique?: boolean; + readonly using?: RawNode; + readonly ifNotExists?: boolean; +} +/** + * @internal + */ +export declare const AddIndexNode: Readonly<{ + is(node: OperationNode): node is AddIndexNode; + create(name: string): AddIndexNode; + cloneWith(node: AddIndexNode, props: AddIndexNodeProps): AddIndexNode; + cloneWithColumns(node: AddIndexNode, columns: OperationNode[]): AddIndexNode; +}>; diff --git a/node_modules/kysely/dist/esm/operation-node/add-index-node.js b/node_modules/kysely/dist/esm/operation-node/add-index-node.js new file mode 100644 index 0000000..134b7d8 --- /dev/null +++ b/node_modules/kysely/dist/esm/operation-node/add-index-node.js @@ -0,0 +1,29 @@ +/// +import { freeze } from '../util/object-utils.js'; +import { IdentifierNode } from './identifier-node.js'; +/** + * @internal + */ +export const AddIndexNode = freeze({ + is(node) { + return node.kind === 'AddIndexNode'; + }, + create(name) { + return freeze({ + kind: 'AddIndexNode', + name: IdentifierNode.create(name) + }); + }, + cloneWith(node, props) { + return freeze({ + ...node, + ...props, + }); + }, + cloneWithColumns(node, columns) { + return freeze({ + ...node, + columns: [...(node.columns || []), ...columns], + }); + }, +}); diff --git a/node_modules/kysely/dist/esm/operation-node/alter-table-node.d.ts b/node_modules/kysely/dist/esm/operation-node/alter-table-node.d.ts index 5b03535..b09aca3 100644 --- a/node_modules/kysely/dist/esm/operation-node/alter-table-node.d.ts +++ b/node_modules/kysely/dist/esm/operation-node/alter-table-node.d.ts @@ -8,7 +8,9 @@ import { AlterColumnNode } from './alter-column-node.js'; import { AddConstraintNode } from './add-constraint-node.js'; import { DropConstraintNode } from './drop-constraint-node.js'; import { ModifyColumnNode } from './modify-column-node.js'; -export type AlterTableNodeTableProps = Pick; +import { DropIndexNode } from './drop-index-node.js'; +import { AddIndexNode } from './add-index-node.js'; +export type AlterTableNodeTableProps = Pick; export type AlterTableColumnAlterationNode = RenameColumnNode | AddColumnNode | DropColumnNode | AlterColumnNode | ModifyColumnNode; export interface AlterTableNode extends OperationNode { readonly kind: 'AlterTableNode'; @@ -18,6 +20,8 @@ export interface AlterTableNode extends OperationNode { readonly columnAlterations?: ReadonlyArray; readonly addConstraint?: AddConstraintNode; readonly dropConstraint?: DropConstraintNode; + readonly addIndex?: AddIndexNode; + readonly dropIndex?: DropIndexNode; } /** * @internal diff --git a/node_modules/kysely/dist/esm/operation-node/column-definition-node.d.ts b/node_modules/kysely/dist/esm/operation-node/column-definition-node.d.ts index 6442d83..b518d35 100644 --- a/node_modules/kysely/dist/esm/operation-node/column-definition-node.d.ts +++ b/node_modules/kysely/dist/esm/operation-node/column-definition-node.d.ts @@ -20,6 +20,7 @@ export interface ColumnDefinitionNode extends OperationNode { readonly unsigned?: boolean; readonly frontModifiers?: ReadonlyArray; readonly endModifiers?: ReadonlyArray; + readonly nullsNotDistinct?: boolean; } /** * @internal diff --git a/node_modules/kysely/dist/esm/operation-node/column-update-node.d.ts b/node_modules/kysely/dist/esm/operation-node/column-update-node.d.ts index 2e8ab34..bb59937 100644 --- a/node_modules/kysely/dist/esm/operation-node/column-update-node.d.ts +++ b/node_modules/kysely/dist/esm/operation-node/column-update-node.d.ts @@ -1,8 +1,7 @@ -import { ColumnNode } from './column-node.js'; import { OperationNode } from './operation-node.js'; export interface ColumnUpdateNode extends OperationNode { readonly kind: 'ColumnUpdateNode'; - readonly column: ColumnNode; + readonly column: OperationNode; readonly value: OperationNode; } /** @@ -10,5 +9,5 @@ export interface ColumnUpdateNode extends OperationNode { */ export declare const ColumnUpdateNode: Readonly<{ is(node: OperationNode): node is ColumnUpdateNode; - create(column: ColumnNode, value: OperationNode): ColumnUpdateNode; + create(column: OperationNode, value: OperationNode): ColumnUpdateNode; }>; diff --git a/node_modules/kysely/dist/esm/operation-node/create-index-node.d.ts b/node_modules/kysely/dist/esm/operation-node/create-index-node.d.ts index a3a99d1..d474032 100644 --- a/node_modules/kysely/dist/esm/operation-node/create-index-node.d.ts +++ b/node_modules/kysely/dist/esm/operation-node/create-index-node.d.ts @@ -14,6 +14,7 @@ export interface CreateIndexNode extends OperationNode { readonly using?: RawNode; readonly ifNotExists?: boolean; readonly where?: WhereNode; + readonly nullsNotDistinct?: boolean; } /** * @internal diff --git a/node_modules/kysely/dist/esm/operation-node/create-table-node.d.ts b/node_modules/kysely/dist/esm/operation-node/create-table-node.d.ts index cc8ceda..f36036c 100644 --- a/node_modules/kysely/dist/esm/operation-node/create-table-node.d.ts +++ b/node_modules/kysely/dist/esm/operation-node/create-table-node.d.ts @@ -16,6 +16,7 @@ export interface CreateTableNode extends OperationNode { readonly onCommit?: OnCommitAction; readonly frontModifiers?: ReadonlyArray; readonly endModifiers?: ReadonlyArray; + readonly selectQuery?: OperationNode; } /** * @internal diff --git a/node_modules/kysely/dist/esm/operation-node/create-trigger-node.d.ts b/node_modules/kysely/dist/esm/operation-node/create-trigger-node.d.ts new file mode 100644 index 0000000..8244954 --- /dev/null +++ b/node_modules/kysely/dist/esm/operation-node/create-trigger-node.d.ts @@ -0,0 +1,34 @@ +import { OperationNode } from './operation-node.js'; +import { TableNode } from './table-node.js'; +import { IdentifierNode } from './identifier-node.js'; +import { QueryNode } from './query-node.js'; +import { TriggerEventNode } from './trigger-event-node.js'; +import { TriggerOrderNode } from './trigger-order-node.js'; +import { FunctionNode } from './function-node.js'; +export type TriggerTime = 'after' | 'before' | 'instead of'; +export type CreateTriggerNodeParams = Omit; +export interface CreateTriggerNode extends OperationNode { + readonly kind: 'CreateTriggerNode'; + readonly name: IdentifierNode; + readonly queries?: ReadonlyArray; + readonly function?: FunctionNode; + readonly time?: TriggerTime; + readonly events?: ReadonlyArray; + readonly table?: TableNode; + readonly orReplace?: boolean; + readonly ifNotExists?: boolean; + readonly when?: OperationNode; + readonly temporary?: boolean; + readonly forEach?: 'row' | 'statement'; + readonly order?: TriggerOrderNode; +} +/** + * @internal + */ +export declare const CreateTriggerNode: Readonly<{ + is(node: OperationNode): node is CreateTriggerNode; + create(name: IdentifierNode): CreateTriggerNode; + cloneWithQuery(createTrigger: CreateTriggerNode, query: QueryNode): CreateTriggerNode; + cloneWithEvent(createTrigger: CreateTriggerNode, event: TriggerEventNode): CreateTriggerNode; + cloneWith(createTrigger: CreateTriggerNode, params: CreateTriggerNodeParams): CreateTriggerNode; +}>; diff --git a/node_modules/kysely/dist/esm/operation-node/create-trigger-node.js b/node_modules/kysely/dist/esm/operation-node/create-trigger-node.js new file mode 100644 index 0000000..90dd0f3 --- /dev/null +++ b/node_modules/kysely/dist/esm/operation-node/create-trigger-node.js @@ -0,0 +1,34 @@ +/// +import { freeze } from '../util/object-utils.js'; +/** + * @internal + */ +export const CreateTriggerNode = freeze({ + is(node) { + return node.kind === 'CreateTriggerNode'; + }, + create(name) { + return freeze({ + kind: 'CreateTriggerNode', + name, + }); + }, + cloneWithQuery(createTrigger, query) { + return freeze({ + ...createTrigger, + queries: freeze([...(createTrigger.queries || []), query]), + }); + }, + cloneWithEvent(createTrigger, event) { + return freeze({ + ...createTrigger, + events: freeze([...(createTrigger.events || []), event]), + }); + }, + cloneWith(createTrigger, params) { + return freeze({ + ...createTrigger, + ...params, + }); + }, +}); diff --git a/node_modules/kysely/dist/esm/operation-node/drop-trigger-node.d.ts b/node_modules/kysely/dist/esm/operation-node/drop-trigger-node.d.ts new file mode 100644 index 0000000..4e38772 --- /dev/null +++ b/node_modules/kysely/dist/esm/operation-node/drop-trigger-node.d.ts @@ -0,0 +1,17 @@ +import { OperationNode } from './operation-node.js'; +import { SchemableIdentifierNode } from './schemable-identifier-node.js'; +export type DropTriggerNodeParams = Omit, 'kind' | 'name'>; +export interface DropTriggerNode extends OperationNode { + readonly kind: 'DropTriggerNode'; + readonly name: SchemableIdentifierNode; + readonly ifExists?: boolean; + readonly cascade?: boolean; +} +/** + * @internal + */ +export declare const DropTriggerNode: Readonly<{ + is(node: OperationNode): node is DropTriggerNode; + create(name: SchemableIdentifierNode): DropTriggerNode; + cloneWith(dropTrigger: DropTriggerNode, params: DropTriggerNodeParams): DropTriggerNode; +}>; diff --git a/node_modules/kysely/dist/esm/operation-node/drop-trigger-node.js b/node_modules/kysely/dist/esm/operation-node/drop-trigger-node.js new file mode 100644 index 0000000..ebabeb4 --- /dev/null +++ b/node_modules/kysely/dist/esm/operation-node/drop-trigger-node.js @@ -0,0 +1,22 @@ +/// +import { freeze } from '../util/object-utils.js'; +/** + * @internal + */ +export const DropTriggerNode = freeze({ + is(node) { + return node.kind === 'DropTriggerNode'; + }, + create(name) { + return freeze({ + kind: 'DropTriggerNode', + name, + }); + }, + cloneWith(dropTrigger, params) { + return freeze({ + ...dropTrigger, + ...params, + }); + }, +}); diff --git a/node_modules/kysely/dist/esm/operation-node/operation-node-transformer.d.ts b/node_modules/kysely/dist/esm/operation-node/operation-node-transformer.d.ts index 6b3a13c..5d7fd9d 100644 --- a/node_modules/kysely/dist/esm/operation-node/operation-node-transformer.d.ts +++ b/node_modules/kysely/dist/esm/operation-node/operation-node-transformer.d.ts @@ -85,6 +85,11 @@ import { JSONPathNode } from './json-path-node.js'; import { JSONPathLegNode } from './json-path-leg-node.js'; import { JSONOperatorChainNode } from './json-operator-chain-node.js'; import { TupleNode } from './tuple-node.js'; +import { AddIndexNode } from './add-index-node.js'; +import { CreateTriggerNode } from './create-trigger-node.js'; +import { DropTriggerNode } from './drop-trigger-node.js'; +import { TriggerEventNode } from './trigger-event-node.js'; +import { TriggerOrderNode } from './trigger-order-node.js'; /** * Transforms an operation node tree into another one. * @@ -139,9 +144,13 @@ export declare class OperationNodeTransformer { protected transformDeleteQuery(node: DeleteQueryNode): DeleteQueryNode; protected transformReturning(node: ReturningNode): ReturningNode; protected transformCreateTable(node: CreateTableNode): CreateTableNode; + protected transformCreateTrigger(node: CreateTriggerNode): CreateTriggerNode; + protected transformTriggerEvent(node: TriggerEventNode): TriggerEventNode; + protected transformTriggerOrder(node: TriggerOrderNode): TriggerOrderNode; protected transformColumnDefinition(node: ColumnDefinitionNode): ColumnDefinitionNode; protected transformAddColumn(node: AddColumnNode): AddColumnNode; protected transformDropTable(node: DropTableNode): DropTableNode; + protected transformDropTrigger(node: DropTriggerNode): DropTriggerNode; protected transformOrderBy(node: OrderByNode): OrderByNode; protected transformOrderByItem(node: OrderByItemNode): OrderByItemNode; protected transformGroupBy(node: GroupByNode): GroupByNode; @@ -199,6 +208,7 @@ export declare class OperationNodeTransformer { protected transformJSONPathLeg(node: JSONPathLegNode): JSONPathLegNode; protected transformJSONOperatorChain(node: JSONOperatorChainNode): JSONOperatorChainNode; protected transformTuple(node: TupleNode): TupleNode; + protected transformAddIndex(node: AddIndexNode): AddIndexNode; protected transformDataType(node: DataTypeNode): DataTypeNode; protected transformSelectAll(node: SelectAllNode): SelectAllNode; protected transformIdentifier(node: IdentifierNode): IdentifierNode; diff --git a/node_modules/kysely/dist/esm/operation-node/operation-node-transformer.js b/node_modules/kysely/dist/esm/operation-node/operation-node-transformer.js index f35075b..9e216f8 100644 --- a/node_modules/kysely/dist/esm/operation-node/operation-node-transformer.js +++ b/node_modules/kysely/dist/esm/operation-node/operation-node-transformer.js @@ -119,6 +119,11 @@ export class OperationNodeTransformer { JSONPathLegNode: this.transformJSONPathLeg.bind(this), JSONOperatorChainNode: this.transformJSONOperatorChain.bind(this), TupleNode: this.transformTuple.bind(this), + AddIndexNode: this.transformAddIndex.bind(this), + CreateTriggerNode: this.transformCreateTrigger.bind(this), + TriggerEventNode: this.transformTriggerEvent.bind(this), + TriggerOrderNode: this.transformTriggerOrder.bind(this), + DropTriggerNode: this.transformDropTrigger.bind(this), }); transformNode(node) { if (!node) { @@ -295,6 +300,38 @@ export class OperationNodeTransformer { onCommit: node.onCommit, frontModifiers: this.transformNodeList(node.frontModifiers), endModifiers: this.transformNodeList(node.endModifiers), + selectQuery: this.transformNode(node.selectQuery), + }); + } + transformCreateTrigger(node) { + return requireAllProps({ + kind: 'CreateTriggerNode', + name: this.transformNode(node.name), + table: this.transformNode(node.table), + ifNotExists: node.ifNotExists, + time: node.time, + events: this.transformNodeList(node.events), + forEach: node.forEach, + orReplace: node.orReplace, + temporary: node.temporary, + queries: this.transformNodeList(node.queries), + function: this.transformNode(node.function), + when: this.transformNode(node.when), + order: this.transformNode(node.order), + }); + } + transformTriggerEvent(node) { + return requireAllProps({ + kind: 'TriggerEventNode', + event: node.event, + columns: this.transformNodeList(node.columns), + }); + } + transformTriggerOrder(node) { + return requireAllProps({ + kind: 'TriggerOrderNode', + order: node.order, + otherTriggerName: this.transformNode(node.otherTriggerName), }); } transformColumnDefinition(node) { @@ -313,6 +350,7 @@ export class OperationNodeTransformer { generated: this.transformNode(node.generated), frontModifiers: this.transformNodeList(node.frontModifiers), endModifiers: this.transformNodeList(node.endModifiers), + nullsNotDistinct: node.nullsNotDistinct, }); } transformAddColumn(node) { @@ -329,6 +367,14 @@ export class OperationNodeTransformer { cascade: node.cascade, }); } + transformDropTrigger(node) { + return requireAllProps({ + kind: 'DropTriggerNode', + name: this.transformNode(node.name), + ifExists: node.ifExists, + cascade: node.cascade, + }); + } transformOrderBy(node) { return requireAllProps({ kind: 'OrderByNode', @@ -414,6 +460,7 @@ export class OperationNodeTransformer { using: this.transformNode(node.using), ifNotExists: node.ifNotExists, where: this.transformNode(node.where), + nullsNotDistinct: node.nullsNotDistinct, }); } transformList(node) { @@ -443,6 +490,7 @@ export class OperationNodeTransformer { kind: 'UniqueConstraintNode', columns: this.transformNodeList(node.columns), name: this.transformNode(node.name), + nullsNotDistinct: node.nullsNotDistinct, }); } transformForeignKeyConstraint(node) { @@ -531,6 +579,8 @@ export class OperationNodeTransformer { columnAlterations: this.transformNodeList(node.columnAlterations), addConstraint: this.transformNode(node.addConstraint), dropConstraint: this.transformNode(node.dropConstraint), + addIndex: this.transformNode(node.addIndex), + dropIndex: this.transformNode(node.dropIndex), }); } transformDropColumn(node) { @@ -763,6 +813,16 @@ export class OperationNodeTransformer { values: this.transformNodeList(node.values), }); } + transformAddIndex(node) { + return requireAllProps({ + kind: 'AddIndexNode', + name: this.transformNode(node.name), + columns: this.transformNodeList(node.columns), + unique: node.unique, + using: this.transformNode(node.using), + ifNotExists: node.ifNotExists, + }); + } transformDataType(node) { // An Object.freezed leaf node. No need to clone. return node; diff --git a/node_modules/kysely/dist/esm/operation-node/operation-node-visitor.d.ts b/node_modules/kysely/dist/esm/operation-node/operation-node-visitor.d.ts index 7c267cd..6a66bc7 100644 --- a/node_modules/kysely/dist/esm/operation-node/operation-node-visitor.d.ts +++ b/node_modules/kysely/dist/esm/operation-node/operation-node-visitor.d.ts @@ -85,6 +85,11 @@ import { JSONPathNode } from './json-path-node.js'; import { JSONPathLegNode } from './json-path-leg-node.js'; import { JSONOperatorChainNode } from './json-operator-chain-node.js'; import { TupleNode } from './tuple-node.js'; +import { AddIndexNode } from './add-index-node.js'; +import { CreateTriggerNode } from './create-trigger-node.js'; +import { DropTriggerNode } from './drop-trigger-node.js'; +import { TriggerEventNode } from './trigger-event-node.js'; +import { TriggerOrderNode } from './trigger-order-node.js'; export declare abstract class OperationNodeVisitor { #private; protected readonly nodeStack: OperationNode[]; @@ -108,9 +113,13 @@ export declare abstract class OperationNodeVisitor { protected abstract visitDeleteQuery(node: DeleteQueryNode): void; protected abstract visitReturning(node: ReturningNode): void; protected abstract visitCreateTable(node: CreateTableNode): void; + protected abstract visitCreateTrigger(node: CreateTriggerNode): void; + protected abstract visitTriggerEvent(node: TriggerEventNode): void; + protected abstract visitTriggerOrder(node: TriggerOrderNode): void; protected abstract visitAddColumn(node: AddColumnNode): void; protected abstract visitColumnDefinition(node: ColumnDefinitionNode): void; protected abstract visitDropTable(node: DropTableNode): void; + protected abstract visitDropTrigger(node: DropTriggerNode): void; protected abstract visitOrderBy(node: OrderByNode): void; protected abstract visitOrderByItem(node: OrderByItemNode): void; protected abstract visitGroupBy(node: GroupByNode): void; @@ -176,4 +185,5 @@ export declare abstract class OperationNodeVisitor { protected abstract visitJSONPathLeg(node: JSONPathLegNode): void; protected abstract visitJSONOperatorChain(node: JSONOperatorChainNode): void; protected abstract visitTuple(node: TupleNode): void; + protected abstract visitAddIndex(node: AddIndexNode): void; } diff --git a/node_modules/kysely/dist/esm/operation-node/operation-node-visitor.js b/node_modules/kysely/dist/esm/operation-node/operation-node-visitor.js index 7ded762..cc6431e 100644 --- a/node_modules/kysely/dist/esm/operation-node/operation-node-visitor.js +++ b/node_modules/kysely/dist/esm/operation-node/operation-node-visitor.js @@ -92,6 +92,11 @@ export class OperationNodeVisitor { JSONPathLegNode: this.visitJSONPathLeg.bind(this), JSONOperatorChainNode: this.visitJSONOperatorChain.bind(this), TupleNode: this.visitTuple.bind(this), + AddIndexNode: this.visitAddIndex.bind(this), + CreateTriggerNode: this.visitCreateTrigger.bind(this), + TriggerEventNode: this.visitTriggerEvent.bind(this), + TriggerOrderNode: this.visitTriggerOrder.bind(this), + DropTriggerNode: this.visitDropTrigger.bind(this), }); visitNode = (node) => { this.nodeStack.push(node); diff --git a/node_modules/kysely/dist/esm/operation-node/operation-node.d.ts b/node_modules/kysely/dist/esm/operation-node/operation-node.d.ts index 24cad68..a01b9ed 100644 --- a/node_modules/kysely/dist/esm/operation-node/operation-node.d.ts +++ b/node_modules/kysely/dist/esm/operation-node/operation-node.d.ts @@ -1,4 +1,4 @@ -export type OperationNodeKind = 'IdentifierNode' | 'SchemableIdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'CreateViewNode' | 'DropViewNode' | 'GeneratedNode' | 'DefaultValueNode' | 'OnNode' | 'ValuesNode' | 'CommonTableExpressionNameNode' | 'SelectModifierNode' | 'CreateTypeNode' | 'DropTypeNode' | 'ExplainNode' | 'DefaultInsertValueNode' | 'AggregateFunctionNode' | 'OverNode' | 'PartitionByNode' | 'PartitionByItemNode' | 'SetOperationNode' | 'BinaryOperationNode' | 'UnaryOperationNode' | 'UsingNode' | 'FunctionNode' | 'CaseNode' | 'WhenNode' | 'JSONReferenceNode' | 'JSONPathNode' | 'JSONPathLegNode' | 'JSONOperatorChainNode' | 'TupleNode'; +export type OperationNodeKind = 'IdentifierNode' | 'SchemableIdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'CreateViewNode' | 'DropViewNode' | 'GeneratedNode' | 'DefaultValueNode' | 'OnNode' | 'ValuesNode' | 'CommonTableExpressionNameNode' | 'SelectModifierNode' | 'CreateTypeNode' | 'DropTypeNode' | 'ExplainNode' | 'DefaultInsertValueNode' | 'AggregateFunctionNode' | 'OverNode' | 'PartitionByNode' | 'PartitionByItemNode' | 'SetOperationNode' | 'BinaryOperationNode' | 'UnaryOperationNode' | 'UsingNode' | 'FunctionNode' | 'CaseNode' | 'WhenNode' | 'JSONReferenceNode' | 'JSONPathNode' | 'JSONPathLegNode' | 'JSONOperatorChainNode' | 'TupleNode' | 'AddIndexNode' | 'CreateTriggerNode' | 'TriggerEventNode' | 'TriggerOrderNode' | 'DropTriggerNode'; export interface OperationNode { readonly kind: OperationNodeKind; } diff --git a/node_modules/kysely/dist/esm/operation-node/operator-node.d.ts b/node_modules/kysely/dist/esm/operation-node/operator-node.d.ts index 1076866..18b6e05 100644 --- a/node_modules/kysely/dist/esm/operation-node/operator-node.d.ts +++ b/node_modules/kysely/dist/esm/operation-node/operator-node.d.ts @@ -1,11 +1,11 @@ import { OperationNode } from './operation-node.js'; -export declare const COMPARISON_OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "&&", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp"]; +export declare const COMPARISON_OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "&&", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "is distinct from", "is not distinct from"]; export declare const ARITHMETIC_OPERATORS: readonly ["+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>"]; export declare const JSON_OPERATORS: readonly ["->", "->>"]; -export declare const BINARY_OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "&&", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>", "&&", "||"]; +export declare const BINARY_OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "&&", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "is distinct from", "is not distinct from", "+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>", "&&", "||"]; export declare const UNARY_FILTER_OPERATORS: readonly ["exists", "not exists"]; export declare const UNARY_OPERATORS: readonly ["not", "-", "exists", "not exists"]; -export declare const OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "&&", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>", "&&", "||", "->", "->>", "not", "-", "exists", "not exists", "between", "between symmetric"]; +export declare const OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "&&", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "is distinct from", "is not distinct from", "+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>", "&&", "||", "->", "->>", "not", "-", "exists", "not exists", "between", "between symmetric"]; export type ComparisonOperator = (typeof COMPARISON_OPERATORS)[number]; export type ArithmeticOperator = (typeof ARITHMETIC_OPERATORS)[number]; export type JSONOperator = (typeof JSON_OPERATORS)[number]; diff --git a/node_modules/kysely/dist/esm/operation-node/operator-node.js b/node_modules/kysely/dist/esm/operation-node/operator-node.js index ba655e6..2df5b92 100644 --- a/node_modules/kysely/dist/esm/operation-node/operator-node.js +++ b/node_modules/kysely/dist/esm/operation-node/operator-node.js @@ -35,6 +35,8 @@ export const COMPARISON_OPERATORS = [ '!!', '<->', 'regexp', + 'is distinct from', + 'is not distinct from', ]; export const ARITHMETIC_OPERATORS = [ '+', diff --git a/node_modules/kysely/dist/esm/operation-node/trigger-event-node.d.ts b/node_modules/kysely/dist/esm/operation-node/trigger-event-node.d.ts new file mode 100644 index 0000000..8a3677d --- /dev/null +++ b/node_modules/kysely/dist/esm/operation-node/trigger-event-node.d.ts @@ -0,0 +1,15 @@ +import { OperationNode } from './operation-node.js'; +export type TriggerEvent = 'delete' | 'update' | 'insert' | 'truncate'; +export type TriggerEventNodeParams = Omit; +export interface TriggerEventNode extends OperationNode { + readonly kind: 'TriggerEventNode'; + readonly event: TriggerEvent; + readonly columns?: ReadonlyArray; +} +/** + * @internal + */ +export declare const TriggerEventNode: Readonly<{ + is(node: OperationNode): node is TriggerEventNode; + create(event: TriggerEvent, columns?: ReadonlyArray): TriggerEventNode; +}>; diff --git a/node_modules/kysely/dist/esm/operation-node/trigger-event-node.js b/node_modules/kysely/dist/esm/operation-node/trigger-event-node.js new file mode 100644 index 0000000..6f97ee3 --- /dev/null +++ b/node_modules/kysely/dist/esm/operation-node/trigger-event-node.js @@ -0,0 +1,17 @@ +/// +import { freeze } from '../util/object-utils.js'; +/** + * @internal + */ +export const TriggerEventNode = freeze({ + is(node) { + return node.kind === 'TriggerEventNode'; + }, + create(event, columns) { + return freeze({ + kind: 'TriggerEventNode', + event, + columns, + }); + }, +}); diff --git a/node_modules/kysely/dist/esm/operation-node/trigger-order-node.d.ts b/node_modules/kysely/dist/esm/operation-node/trigger-order-node.d.ts new file mode 100644 index 0000000..12bad8d --- /dev/null +++ b/node_modules/kysely/dist/esm/operation-node/trigger-order-node.d.ts @@ -0,0 +1,16 @@ +import { IdentifierNode } from './identifier-node.js'; +import { OperationNode } from './operation-node.js'; +export type TriggerOrder = 'follows' | 'precedes'; +export type TriggerOrderNodeParams = Omit; +export interface TriggerOrderNode extends OperationNode { + readonly kind: 'TriggerOrderNode'; + readonly order: TriggerOrder; + readonly otherTriggerName: IdentifierNode; +} +/** + * @internal + */ +export declare const TriggerOrderNode: Readonly<{ + is(node: OperationNode): node is TriggerOrderNode; + create(order: TriggerOrder, otherTriggerName: IdentifierNode): TriggerOrderNode; +}>; diff --git a/node_modules/kysely/dist/esm/operation-node/trigger-order-node.js b/node_modules/kysely/dist/esm/operation-node/trigger-order-node.js new file mode 100644 index 0000000..eea5441 --- /dev/null +++ b/node_modules/kysely/dist/esm/operation-node/trigger-order-node.js @@ -0,0 +1,17 @@ +/// +import { freeze } from '../util/object-utils.js'; +/** + * @internal + */ +export const TriggerOrderNode = freeze({ + is(node) { + return node.kind === 'TriggerOrderNode'; + }, + create(order, otherTriggerName) { + return freeze({ + kind: 'TriggerOrderNode', + order, + otherTriggerName, + }); + }, +}); diff --git a/node_modules/kysely/dist/esm/operation-node/unique-constraint-node.d.ts b/node_modules/kysely/dist/esm/operation-node/unique-constraint-node.d.ts index c179f1f..4a544de 100644 --- a/node_modules/kysely/dist/esm/operation-node/unique-constraint-node.d.ts +++ b/node_modules/kysely/dist/esm/operation-node/unique-constraint-node.d.ts @@ -5,11 +5,14 @@ export interface UniqueConstraintNode extends OperationNode { readonly kind: 'UniqueConstraintNode'; readonly columns: ReadonlyArray; readonly name?: IdentifierNode; + readonly nullsNotDistinct?: boolean; } +export type UniqueConstraintNodeProps = Omit, 'kind'>; /** * @internal */ export declare const UniqueConstraintNode: Readonly<{ is(node: OperationNode): node is UniqueConstraintNode; - create(columns: string[], constraintName?: string): UniqueConstraintNode; + create(columns: string[], constraintName?: string, nullsNotDistinct?: boolean): UniqueConstraintNode; + cloneWith(node: UniqueConstraintNode, props: UniqueConstraintNodeProps): UniqueConstraintNode; }>; diff --git a/node_modules/kysely/dist/esm/operation-node/unique-constraint-node.js b/node_modules/kysely/dist/esm/operation-node/unique-constraint-node.js index 0c903a6..d05e623 100644 --- a/node_modules/kysely/dist/esm/operation-node/unique-constraint-node.js +++ b/node_modules/kysely/dist/esm/operation-node/unique-constraint-node.js @@ -9,11 +9,18 @@ export const UniqueConstraintNode = freeze({ is(node) { return node.kind === 'UniqueConstraintNode'; }, - create(columns, constraintName) { + create(columns, constraintName, nullsNotDistinct) { return freeze({ kind: 'UniqueConstraintNode', columns: freeze(columns.map(ColumnNode.create)), name: constraintName ? IdentifierNode.create(constraintName) : undefined, + nullsNotDistinct, + }); + }, + cloneWith(node, props) { + return freeze({ + ...node, + ...props, }); }, }); diff --git a/node_modules/kysely/dist/esm/parser/binary-operation-parser.js b/node_modules/kysely/dist/esm/parser/binary-operation-parser.js index 7c6e042..b136830 100644 --- a/node_modules/kysely/dist/esm/parser/binary-operation-parser.js +++ b/node_modules/kysely/dist/esm/parser/binary-operation-parser.js @@ -35,7 +35,7 @@ export function parseFilterObject(obj, combinator) { export function parseFilterList(list, combinator) { const combine = combinator === 'and' ? AndNode.create : OrNode.create; if (list.length === 0) { - return ValueNode.createImmediate(combinator === 'and'); + return BinaryOperationNode.create(ValueNode.createImmediate(1), OperatorNode.create('='), ValueNode.createImmediate(combinator === 'and' ? 1 : 0)); } let node = toOperationNode(list[0]); for (let i = 1; i < list.length; ++i) { diff --git a/node_modules/kysely/dist/esm/parser/reference-parser.d.ts b/node_modules/kysely/dist/esm/parser/reference-parser.d.ts index cd4d656..08204c7 100644 --- a/node_modules/kysely/dist/esm/parser/reference-parser.d.ts +++ b/node_modules/kysely/dist/esm/parser/reference-parser.d.ts @@ -16,7 +16,8 @@ export type StringReference = AnyColumn | AnyCo export type SimpleReferenceExpression = StringReference | DynamicReferenceBuilder; export type ReferenceExpression = SimpleReferenceExpression | ExpressionOrFactory; export type ReferenceExpressionOrList = ReferenceExpression | ReadonlyArray>; -export type ExtractTypeFromReferenceExpression = RE extends string ? SelectType> : RE extends SelectQueryBuilderExpression ? O[keyof O] | null : RE extends (qb: any) => SelectQueryBuilderExpression ? O[keyof O] | null : RE extends Expression ? O : RE extends (qb: any) => Expression ? O : DV; +export type ExtractTypeFromReferenceExpression = SelectType>; +export type ExtractRawTypeFromReferenceExpression = RE extends string ? ExtractTypeFromStringReference : RE extends SelectQueryBuilderExpression ? O[keyof O] | null : RE extends (qb: any) => SelectQueryBuilderExpression ? O[keyof O] | null : RE extends Expression ? O : RE extends (qb: any) => Expression ? O : DV; export type ExtractTypeFromStringReference = RE extends `${infer SC}.${infer T}.${infer C}` ? `${SC}.${T}` extends TB ? C extends keyof DB[`${SC}.${T}`] ? DB[`${SC}.${T}`][C] : never : never : RE extends `${infer T}.${infer C}` ? T extends TB ? C extends keyof DB[T] ? DB[T][C] : never : never : RE extends AnyColumn ? ExtractColumnType : DV; export type OrderedColumnName = C extends `${string} ${infer O}` ? O extends OrderByDirection ? C : never : C; export type ExtractColumnNameFromOrderedColumnName = C extends `${infer CL} ${infer O}` ? O extends OrderByDirection ? CL : never : C; diff --git a/node_modules/kysely/dist/esm/parser/update-set-parser.d.ts b/node_modules/kysely/dist/esm/parser/update-set-parser.d.ts index d4b2dd0..2763b7c 100644 --- a/node_modules/kysely/dist/esm/parser/update-set-parser.d.ts +++ b/node_modules/kysely/dist/esm/parser/update-set-parser.d.ts @@ -2,9 +2,12 @@ import { ColumnUpdateNode } from '../operation-node/column-update-node.js'; import { ExpressionBuilder } from '../expression/expression-builder.js'; import { UpdateKeys, UpdateType } from '../util/column-type.js'; import { ValueExpression } from './value-parser.js'; +import { ExtractRawTypeFromReferenceExpression, ReferenceExpression } from './reference-parser.js'; export type UpdateObject = { [C in UpdateKeys]?: ValueExpression> | undefined; }; export type UpdateObjectFactory = (eb: ExpressionBuilder) => UpdateObject; -export type UpdateExpression = UpdateObject | UpdateObjectFactory; -export declare function parseUpdateExpression(update: UpdateExpression): ReadonlyArray; +export type UpdateObjectExpression = UpdateObject | UpdateObjectFactory; +export type ExtractUpdateTypeFromReferenceExpression = UpdateType>; +export declare function parseUpdate(...args: [UpdateObjectExpression] | [ReferenceExpression, ValueExpression]): ReadonlyArray; +export declare function parseUpdateObjectExpression(update: UpdateObjectExpression): ReadonlyArray; diff --git a/node_modules/kysely/dist/esm/parser/update-set-parser.js b/node_modules/kysely/dist/esm/parser/update-set-parser.js index 495e092..e644c94 100644 --- a/node_modules/kysely/dist/esm/parser/update-set-parser.js +++ b/node_modules/kysely/dist/esm/parser/update-set-parser.js @@ -4,7 +4,16 @@ import { ColumnUpdateNode } from '../operation-node/column-update-node.js'; import { expressionBuilder, } from '../expression/expression-builder.js'; import { isFunction } from '../util/object-utils.js'; import { parseValueExpression } from './value-parser.js'; -export function parseUpdateExpression(update) { +import { parseReferenceExpression, } from './reference-parser.js'; +export function parseUpdate(...args) { + if (args.length === 2) { + return [ + ColumnUpdateNode.create(parseReferenceExpression(args[0]), parseValueExpression(args[1])), + ]; + } + return parseUpdateObjectExpression(args[0]); +} +export function parseUpdateObjectExpression(update) { const updateObj = isFunction(update) ? update(expressionBuilder()) : update; return Object.entries(updateObj) .filter(([_, value]) => value !== undefined) diff --git a/node_modules/kysely/dist/esm/plugin/with-schema/with-schema-transformer.js b/node_modules/kysely/dist/esm/plugin/with-schema/with-schema-transformer.js index 0ccc8a1..6e212e6 100644 --- a/node_modules/kysely/dist/esm/plugin/with-schema/with-schema-transformer.js +++ b/node_modules/kysely/dist/esm/plugin/with-schema/with-schema-transformer.js @@ -17,12 +17,14 @@ const ROOT_OPERATION_NODES = freeze({ CreateTableNode: true, CreateTypeNode: true, CreateViewNode: true, + CreateTriggerNode: true, DeleteQueryNode: true, DropIndexNode: true, DropSchemaNode: true, DropTableNode: true, DropTypeNode: true, DropViewNode: true, + DropTriggerNode: true, InsertQueryNode: true, RawNode: true, SelectQueryNode: true, diff --git a/node_modules/kysely/dist/esm/query-builder/function-module.d.ts b/node_modules/kysely/dist/esm/query-builder/function-module.d.ts index 592c5e9..8f326c1 100644 --- a/node_modules/kysely/dist/esm/query-builder/function-module.d.ts +++ b/node_modules/kysely/dist/esm/query-builder/function-module.d.ts @@ -7,6 +7,7 @@ import { KyselyTypeError } from '../util/type-error.js'; import { Equals, IsAny } from '../util/type-utils.js'; import { AggregateFunctionBuilder } from './aggregate-function-builder.js'; import { SelectQueryBuilderExpression } from '../query-builder/select-query-builder-expression.js'; +import { Selectable } from '../util/column-type.js'; /** * Helpers for type safe SQL function calls. * @@ -17,21 +18,47 @@ import { SelectQueryBuilderExpression } from '../query-builder/select-query-buil * * * - * This example uses the `fn` module to select some aggregates: + * This example shows how to create function calls. These examples also work in any + * other place (`where` calls, updates, inserts etc.). The only difference is that you + * leave out the alias (the `as` call) if you use these in any other place than `select`. * * ```ts + * import { sql } from 'kysely' + * * const result = await db.selectFrom('person') * .innerJoin('pet', 'pet.owner_id', 'person.id') - * .select(({ fn }) => [ + * .select(({ fn, val, ref }) => [ * 'person.id', * * // The `fn` module contains the most common * // functions. * fn.count('pet.id').as('pet_count'), * - * // You can call any function using the - * // `agg` method - * fn.agg('array_agg', ['pet.name']).as('pet_names') + * // You can call any function by calling `fn` + * // directly. The arguments are treated as column + * // references by default. If you want to pass in + * // values, use the `val` function. + * fn('concat', [ + * val('Ms. '), + * 'first_name', + * val(' '), + * 'last_name' + * ]).as('full_name_with_title'), + * + * // You can call any aggregate function using the + * // `fn.agg` function. + * fn.agg('array_agg', ['pet.name']).as('pet_names'), + * + * // And once again, you can use the `sql` + * // template tag. The template tag substitutions + * // are treated as values by default. If you want + * // to reference columns, you can use the `ref` + * // function. + * sql`concat( + * ${ref('first_name')}, + * ' ', + * ${ref('last_name')} + * )`.as('full_name') * ]) * .groupBy('person.id') * .having((eb) => eb.fn.count('pet.id'), '>', 10) @@ -44,11 +71,13 @@ import { SelectQueryBuilderExpression } from '../query-builder/select-query-buil * select * "person"."id", * count("pet"."id") as "pet_count", - * array_agg("pet"."name") as "pet_names" + * concat($1, "first_name", $2, "last_name") as "full_name_with_title", + * array_agg("pet"."name") as "pet_names", + * concat("first_name", ' ', "last_name") as "full_name" * from "person" * inner join "pet" on "pet"."owner_id" = "person"."id" * group by "person"."id" - * having count("pet"."id") > $1 + * having count("pet"."id") > $3 * ``` */ export interface FunctionModule { @@ -540,6 +569,50 @@ export interface FunctionModule { any>(expr: RE): Exclude, null> extends ReadonlyArray ? ExpressionWrapper : KyselyTypeError<'any(expr) call failed: expr must be an array'>; any(subquery: SelectQueryBuilderExpression>): ExpressionWrapper; any(expr: Expression>): ExpressionWrapper; + /** + * Creates a json_agg function call. + * + * This function is only available on PostgreSQL. + * + * ```ts + * db.selectFrom('person') + * .innerJoin('pet', 'pet.owner_id', 'person.id') + * .select((eb) => ['first_name', eb.fn.jsonAgg('pet').as('pets')]) + * .groupBy('person.first_name') + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * select "first_name", json_agg("pet") as "pets" + * from "person" + * inner join "pet" on "pet"."owner_id" = "person"."id" + * group by "person"."first_name" + * ``` + */ + jsonAgg>(table: T): AggregateFunctionBuilder[] : T extends Expression ? O[] : never>; + /** + * Creates a to_json function call. + * + * This function is only available on PostgreSQL. + * + * ```ts + * db.selectFrom('person') + * .innerJoin('pet', 'pet.owner_id', 'person.id') + * .select((eb) => ['first_name', eb.fn.toJson('pet').as('pet')]) + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * select "first_name", to_json("pet") as "pet" + * from "person" + * inner join "pet" on "pet"."owner_id" = "person"."id" + * ``` + */ + toJson>(table: T): ExpressionWrapper : T extends Expression ? O : never>; } export declare function createFunctionModule(): FunctionModule; type OutputBoundStringReference, O> = IsAny extends true ? C : Equals | null, O | null> extends true ? C : never; diff --git a/node_modules/kysely/dist/esm/query-builder/function-module.js b/node_modules/kysely/dist/esm/query-builder/function-module.js index 7e1d28d..3744008 100644 --- a/node_modules/kysely/dist/esm/query-builder/function-module.js +++ b/node_modules/kysely/dist/esm/query-builder/function-module.js @@ -5,6 +5,8 @@ import { FunctionNode } from '../operation-node/function-node.js'; import { parseReferenceExpressionOrList, } from '../parser/reference-parser.js'; import { parseSelectAll } from '../parser/select-parser.js'; import { AggregateFunctionBuilder } from './aggregate-function-builder.js'; +import { isString } from '../util/object-utils.js'; +import { parseTable } from '../parser/table-parser.js'; export function createFunctionModule() { const fn = (name, args) => { return new ExpressionWrapper(FunctionNode.create(name, parseReferenceExpressionOrList(args))); @@ -42,5 +44,17 @@ export function createFunctionModule() { any(column) { return fn('any', [column]); }, + jsonAgg(table) { + return new AggregateFunctionBuilder({ + aggregateFunctionNode: AggregateFunctionNode.create('json_agg', [ + isString(table) ? parseTable(table) : table.toOperationNode(), + ]), + }); + }, + toJson(table) { + return new ExpressionWrapper(FunctionNode.create('to_json', [ + isString(table) ? parseTable(table) : table.toOperationNode(), + ])); + }, }); } diff --git a/node_modules/kysely/dist/esm/query-builder/insert-query-builder.d.ts b/node_modules/kysely/dist/esm/query-builder/insert-query-builder.d.ts index 6be4113..ffc6c3f 100644 --- a/node_modules/kysely/dist/esm/query-builder/insert-query-builder.d.ts +++ b/node_modules/kysely/dist/esm/query-builder/insert-query-builder.d.ts @@ -5,7 +5,7 @@ import { InsertObjectOrList, InsertObjectOrListFactory } from '../parser/insert- import { InsertQueryNode } from '../operation-node/insert-query-node.js'; import { QueryNode } from '../operation-node/query-node.js'; import { NarrowPartial, SimplifyResult, SimplifySingleResult } from '../util/type-utils.js'; -import { UpdateExpression } from '../parser/update-set-parser.js'; +import { UpdateObjectExpression } from '../parser/update-set-parser.js'; import { Compilable } from '../util/compilable.js'; import { QueryExecutor } from '../query-executor/query-executor.js'; import { QueryId } from '../util/query-id.js'; @@ -60,13 +60,18 @@ export declare class InsertQueryBuilder implements R * }) * .executeTakeFirst() * + * // `insertId` is only available on dialects that + * // automatically return the id of the inserted row + * // such as MySQL and SQLite. On PostgreSQL, for example, + * // you need to add a `returning` clause to the query to + * // get anything out. See the "returning data" example. * console.log(result.insertId) * ``` * - * The generated SQL (PostgreSQL): + * The generated SQL (MySQL): * * ```sql - * insert into "person" ("first_name", "last_name", "age") values ($1, $2, $3) + * insert into `person` (`first_name`, `last_name`, `age`) values (?, ?, ?) * ``` * * @@ -131,11 +136,14 @@ export declare class InsertQueryBuilder implements R * ```ts * import { sql } from 'kysely' * + * const ani = "Ani" + * const ston = "ston" + * * const result = await db * .insertInto('person') * .values(({ ref, selectFrom, fn }) => ({ * first_name: 'Jennifer', - * last_name: sql`${'Ani'} || ${'ston'}`, + * last_name: sql`concat(${ani}, ${ston})`, * middle_name: ref('first_name'), * age: selectFrom('person') * .select(fn.avg('age') @@ -147,8 +155,18 @@ export declare class InsertQueryBuilder implements R * The generated SQL (PostgreSQL): * * ```sql - * insert into "person" ("first_name", "last_name", "age") - * values ($1, $2 || $3, (select avg("age") as "avg_age" from "person")) + * insert into "person" ( + * "first_name", + * "last_name", + * "middle_name", + * "age" + * ) + * values ( + * $1, + * concat($2, $3), + * "first_name", + * (select avg("age") as "avg_age" from "person") + * ) * ``` * * You can also use the callback version of subqueries or raw expressions: @@ -208,7 +226,7 @@ export declare class InsertQueryBuilder implements R * .select((eb) => [ * 'pet.name', * eb.val('Petson').as('last_name'), - * eb.val(7).as('age'), + * eb.lit(7).as('age'), * ]) * ) * .execute() @@ -218,7 +236,7 @@ export declare class InsertQueryBuilder implements R * * ```sql * insert into "person" ("first_name", "last_name", "age") - * select "pet"."name", $1 as "first_name", $2 as "last_name" from "pet" + * select "pet"."name", $1 as "last_name", 7 as "age from "pet" * ``` */ expression(expression: ExpressionOrFactory): InsertQueryBuilder; @@ -414,7 +432,7 @@ export declare class InsertQueryBuilder implements R * .onDuplicateKeyUpdate({ species: 'hamster' }) * ``` */ - onDuplicateKeyUpdate(update: UpdateExpression): InsertQueryBuilder; + onDuplicateKeyUpdate(update: UpdateObjectExpression): InsertQueryBuilder; /** * Allows you to return data from modified rows. * diff --git a/node_modules/kysely/dist/esm/query-builder/insert-query-builder.js b/node_modules/kysely/dist/esm/query-builder/insert-query-builder.js index 3cd23c3..d9f1cc8 100644 --- a/node_modules/kysely/dist/esm/query-builder/insert-query-builder.js +++ b/node_modules/kysely/dist/esm/query-builder/insert-query-builder.js @@ -3,7 +3,7 @@ import { parseSelectArg, parseSelectAll, } from '../parser/select-parser.js'; import { parseInsertExpression, } from '../parser/insert-values-parser.js'; import { InsertQueryNode } from '../operation-node/insert-query-node.js'; import { QueryNode } from '../operation-node/query-node.js'; -import { parseUpdateExpression, } from '../parser/update-set-parser.js'; +import { parseUpdateObjectExpression, } from '../parser/update-set-parser.js'; import { preventAwait } from '../util/prevent-await.js'; import { freeze } from '../util/object-utils.js'; import { OnDuplicateKeyNode } from '../operation-node/on-duplicate-key-node.js'; @@ -75,7 +75,7 @@ export class InsertQueryBuilder { * .select((eb) => [ * 'pet.name', * eb.val('Petson').as('last_name'), - * eb.val(7).as('age'), + * eb.lit(7).as('age'), * ]) * ) * .execute() @@ -85,7 +85,7 @@ export class InsertQueryBuilder { * * ```sql * insert into "person" ("first_name", "last_name", "age") - * select "pet"."name", $1 as "first_name", $2 as "last_name" from "pet" + * select "pet"."name", $1 as "last_name", 7 as "age from "pet" * ``` */ expression(expression) { @@ -308,7 +308,7 @@ export class InsertQueryBuilder { return new InsertQueryBuilder({ ...this.#props, queryNode: InsertQueryNode.cloneWith(this.#props.queryNode, { - onDuplicateKey: OnDuplicateKeyNode.create(parseUpdateExpression(update)), + onDuplicateKey: OnDuplicateKeyNode.create(parseUpdateObjectExpression(update)), }), }); } diff --git a/node_modules/kysely/dist/esm/query-builder/insert-result.d.ts b/node_modules/kysely/dist/esm/query-builder/insert-result.d.ts index c16fb08..d22a9e5 100644 --- a/node_modules/kysely/dist/esm/query-builder/insert-result.d.ts +++ b/node_modules/kysely/dist/esm/query-builder/insert-result.d.ts @@ -23,7 +23,14 @@ */ export declare class InsertResult { /** - * The auto incrementing primary key + * The auto incrementing primary key of the inserted row. + * + * This property can be undefined when the query contains an `on conflict` + * clause that makes the query succeed even when nothing gets inserted. + * + * This property is always undefined on dialects like PostgreSQL that + * don't return the inserted id by default. On those dialects you need + * to use the {@link ReturningInterface.returning | returning} method. */ readonly insertId: bigint | undefined; /** diff --git a/node_modules/kysely/dist/esm/query-builder/insert-result.js b/node_modules/kysely/dist/esm/query-builder/insert-result.js index ba00de9..ff11e8c 100644 --- a/node_modules/kysely/dist/esm/query-builder/insert-result.js +++ b/node_modules/kysely/dist/esm/query-builder/insert-result.js @@ -24,7 +24,14 @@ */ export class InsertResult { /** - * The auto incrementing primary key + * The auto incrementing primary key of the inserted row. + * + * This property can be undefined when the query contains an `on conflict` + * clause that makes the query succeed even when nothing gets inserted. + * + * This property is always undefined on dialects like PostgreSQL that + * don't return the inserted id by default. On those dialects you need + * to use the {@link ReturningInterface.returning | returning} method. */ insertId; /** diff --git a/node_modules/kysely/dist/esm/query-builder/on-conflict-builder.d.ts b/node_modules/kysely/dist/esm/query-builder/on-conflict-builder.d.ts index 803563e..cfb9d96 100644 --- a/node_modules/kysely/dist/esm/query-builder/on-conflict-builder.d.ts +++ b/node_modules/kysely/dist/esm/query-builder/on-conflict-builder.d.ts @@ -4,7 +4,7 @@ import { OperationNodeSource } from '../operation-node/operation-node-source.js' import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js'; import { ExpressionOrFactory } from '../parser/expression-parser.js'; import { ReferenceExpression } from '../parser/reference-parser.js'; -import { UpdateExpression } from '../parser/update-set-parser.js'; +import { UpdateObjectExpression } from '../parser/update-set-parser.js'; import { AnyColumn, SqlBool } from '../util/type-utils.js'; import { WhereInterface } from './where-interface.js'; export declare class OnConflictBuilder implements WhereInterface { @@ -435,7 +435,7 @@ export declare class OnConflictBuilder implements Where * ) * ``` */ - doUpdateSet(update: UpdateExpression, OnConflictTables, OnConflictTables>): OnConflictUpdateBuilder, OnConflictTables>; + doUpdateSet(update: UpdateObjectExpression, OnConflictTables, OnConflictTables>): OnConflictUpdateBuilder, OnConflictTables>; /** * Simply calls the provided function passing `this` as the only argument. `$call` returns * what the provided function returns. diff --git a/node_modules/kysely/dist/esm/query-builder/on-conflict-builder.js b/node_modules/kysely/dist/esm/query-builder/on-conflict-builder.js index bd95015..02c9135 100644 --- a/node_modules/kysely/dist/esm/query-builder/on-conflict-builder.js +++ b/node_modules/kysely/dist/esm/query-builder/on-conflict-builder.js @@ -3,7 +3,7 @@ import { ColumnNode } from '../operation-node/column-node.js'; import { IdentifierNode } from '../operation-node/identifier-node.js'; import { OnConflictNode } from '../operation-node/on-conflict-node.js'; import { parseValueBinaryOperationOrExpression, parseReferentialBinaryOperation, } from '../parser/binary-operation-parser.js'; -import { parseUpdateExpression, } from '../parser/update-set-parser.js'; +import { parseUpdateObjectExpression, } from '../parser/update-set-parser.js'; import { freeze } from '../util/object-utils.js'; import { preventAwait } from '../util/prevent-await.js'; export class OnConflictBuilder { @@ -173,7 +173,7 @@ export class OnConflictBuilder { return new OnConflictUpdateBuilder({ ...this.#props, onConflictNode: OnConflictNode.cloneWith(this.#props.onConflictNode, { - updates: parseUpdateExpression(update), + updates: parseUpdateObjectExpression(update), }), }); } diff --git a/node_modules/kysely/dist/esm/query-builder/update-query-builder.d.ts b/node_modules/kysely/dist/esm/query-builder/update-query-builder.d.ts index 3d30eed..a71462a 100644 --- a/node_modules/kysely/dist/esm/query-builder/update-query-builder.d.ts +++ b/node_modules/kysely/dist/esm/query-builder/update-query-builder.d.ts @@ -8,7 +8,7 @@ import { ReferenceExpression } from '../parser/reference-parser.js'; import { QueryNode } from '../operation-node/query-node.js'; import { DrainOuterGeneric, NarrowPartial, Nullable, ShallowRecord, SimplifyResult, SimplifySingleResult, SqlBool } from '../util/type-utils.js'; import { UpdateQueryNode } from '../operation-node/update-query-node.js'; -import { UpdateObject, UpdateObjectFactory } from '../parser/update-set-parser.js'; +import { UpdateObject, UpdateObjectFactory, ExtractUpdateTypeFromReferenceExpression } from '../parser/update-set-parser.js'; import { Compilable } from '../util/compilable.js'; import { QueryExecutor } from '../query-executor/query-executor.js'; import { QueryId } from '../util/query-id.js'; @@ -24,6 +24,7 @@ import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../p import { KyselyTypeError } from '../util/type-error.js'; import { Streamable } from '../util/streamable.js'; import { ExpressionOrFactory } from '../parser/expression-parser.js'; +import { ValueExpression } from '../parser/value-parser.js'; export declare class UpdateQueryBuilder implements WhereInterface, ReturningInterface, OperationNodeSource, Compilable, Explainable, Streamable { #private; constructor(props: UpdateQueryBuilderProps); @@ -625,6 +626,20 @@ export declare class UpdateQueryBuilder eb.val('61710)) + * .where('id', '=', '1') + * .executeTakeFirst() + * ``` + * * On PostgreSQL you can chain `returning` to the query to get * the updated rows' columns (or any other expression) as the * return value: @@ -682,6 +697,7 @@ export declare class UpdateQueryBuilder): UpdateQueryBuilder; set(update: UpdateObjectFactory): UpdateQueryBuilder; + set>(key: RE, value: ValueExpression>): UpdateQueryBuilder; /** * Allows you to return data from modified rows. * diff --git a/node_modules/kysely/dist/esm/query-builder/update-query-builder.js b/node_modules/kysely/dist/esm/query-builder/update-query-builder.js index b20c740..6487ecf 100644 --- a/node_modules/kysely/dist/esm/query-builder/update-query-builder.js +++ b/node_modules/kysely/dist/esm/query-builder/update-query-builder.js @@ -4,7 +4,7 @@ import { parseTableExpressionOrList, } from '../parser/table-parser.js'; import { parseSelectArg, parseSelectAll, } from '../parser/select-parser.js'; import { QueryNode } from '../operation-node/query-node.js'; import { UpdateQueryNode } from '../operation-node/update-query-node.js'; -import { parseUpdateExpression, } from '../parser/update-set-parser.js'; +import { parseUpdate, } from '../parser/update-set-parser.js'; import { preventAwait } from '../util/prevent-await.js'; import { freeze } from '../util/object-utils.js'; import { UpdateResult } from './update-result.js'; @@ -63,10 +63,10 @@ export class UpdateQueryBuilder { queryNode: QueryNode.cloneWithJoin(this.#props.queryNode, parseJoin('FullJoin', args)), }); } - set(update) { + set(...args) { return new UpdateQueryBuilder({ ...this.#props, - queryNode: UpdateQueryNode.cloneWithUpdates(this.#props.queryNode, parseUpdateExpression(update)), + queryNode: UpdateQueryNode.cloneWithUpdates(this.#props.queryNode, parseUpdate(...args)), }); } returning(selection) { diff --git a/node_modules/kysely/dist/esm/query-compiler/default-query-compiler.d.ts b/node_modules/kysely/dist/esm/query-compiler/default-query-compiler.d.ts index dbd954a..2f73125 100644 --- a/node_modules/kysely/dist/esm/query-compiler/default-query-compiler.d.ts +++ b/node_modules/kysely/dist/esm/query-compiler/default-query-compiler.d.ts @@ -48,7 +48,7 @@ import { RootOperationNode, QueryCompiler } from './query-compiler.js'; import { HavingNode } from '../operation-node/having-node.js'; import { CreateSchemaNode } from '../operation-node/create-schema-node.js'; import { DropSchemaNode } from '../operation-node/drop-schema-node.js'; -import { AlterTableNode } from '../operation-node/alter-table-node.js'; +import { AlterTableColumnAlterationNode, AlterTableNode } from '../operation-node/alter-table-node.js'; import { DropColumnNode } from '../operation-node/drop-column-node.js'; import { RenameColumnNode } from '../operation-node/rename-column-node.js'; import { AlterColumnNode } from '../operation-node/alter-column-node.js'; @@ -88,6 +88,11 @@ import { JSONPathNode } from '../operation-node/json-path-node.js'; import { JSONPathLegNode } from '../operation-node/json-path-leg-node.js'; import { JSONOperatorChainNode } from '../operation-node/json-operator-chain-node.js'; import { TupleNode } from '../operation-node/tuple-node.js'; +import { AddIndexNode } from '../operation-node/add-index-node.js'; +import { CreateTriggerNode } from '../operation-node/create-trigger-node.js'; +import { DropTriggerNode } from '../operation-node/drop-trigger-node.js'; +import { TriggerEventNode } from '../operation-node/trigger-event-node.js'; +import { TriggerOrderNode } from '../operation-node/trigger-order-node.js'; export declare class DefaultQueryCompiler extends OperationNodeVisitor implements QueryCompiler { #private; protected get numParameters(): number; @@ -124,6 +129,10 @@ export declare class DefaultQueryCompiler extends OperationNodeVisitor implement protected visitTable(node: TableNode): void; protected visitSchemableIdentifier(node: SchemableIdentifierNode): void; protected visitCreateTable(node: CreateTableNode): void; + protected visitCreateTrigger(node: CreateTriggerNode): void; + protected visitTriggerEvent(node: TriggerEventNode): void; + protected visitTriggerOrder(node: TriggerOrderNode): void; + protected visitDropTrigger(node: DropTriggerNode): void; protected visitColumnDefinition(node: ColumnDefinitionNode): void; protected getAutoIncrement(): string; protected visitReferences(node: ReferencesNode): void; @@ -184,6 +193,7 @@ export declare class DefaultQueryCompiler extends OperationNodeVisitor implement protected visitJSONPath(node: JSONPathNode): void; protected visitJSONPathLeg(node: JSONPathLegNode): void; protected visitJSONOperatorChain(node: JSONOperatorChainNode): void; + protected visitAddIndex(node: AddIndexNode): void; protected append(str: string): void; protected appendValue(parameter: unknown): void; protected getLeftIdentifierWrapper(): string; @@ -197,4 +207,10 @@ export declare class DefaultQueryCompiler extends OperationNodeVisitor implement protected addParameter(parameter: unknown): void; protected appendImmediateValue(value: unknown): void; protected sortSelectModifiers(arr: SelectModifierNode[]): ReadonlyArray; + protected compileColumnAlterations(columnAlterations: readonly AlterTableColumnAlterationNode[]): void; + /** + * controls whether the dialect adds a "type" keyword before a column's new data + * type in an ALTER TABLE statement. + */ + protected announcesNewColumnDataType(): boolean; } diff --git a/node_modules/kysely/dist/esm/query-compiler/default-query-compiler.js b/node_modules/kysely/dist/esm/query-compiler/default-query-compiler.js index c75a92d..0762ebd 100644 --- a/node_modules/kysely/dist/esm/query-compiler/default-query-compiler.js +++ b/node_modules/kysely/dist/esm/query-compiler/default-query-compiler.js @@ -1,4 +1,5 @@ /// +import { CreateTableNode } from '../operation-node/create-table-node.js'; import { InsertQueryNode } from '../operation-node/insert-query-node.js'; import { OperationNodeVisitor } from '../operation-node/operation-node-visitor.js'; import { OperatorNode } from '../operation-node/operator-node.js'; @@ -30,6 +31,7 @@ export class DefaultQueryCompiler extends OperationNodeVisitor { const wrapInParens = this.parentNode !== undefined && !ParensNode.is(this.parentNode) && !InsertQueryNode.is(this.parentNode) && + !CreateTableNode.is(this.parentNode) && !CreateViewNode.is(this.parentNode) && !SetOperationNode.is(this.parentNode); if (this.parentNode === undefined && node.explain) { @@ -346,17 +348,83 @@ export class DefaultQueryCompiler extends OperationNodeVisitor { this.append('if not exists '); } this.visitNode(node.table); - this.append(' ('); - this.compileList([...node.columns, ...(node.constraints ?? [])]); - this.append(')'); - if (node.onCommit) { - this.append(' on commit '); - this.append(node.onCommit); + if (node.selectQuery) { + this.append(' as '); + this.visitNode(node.selectQuery); } - if (node.endModifiers && node.endModifiers.length > 0) { - this.append(' '); - this.compileList(node.endModifiers, ' '); + else { + this.append(' ('); + this.compileList([...node.columns, ...(node.constraints ?? [])]); + this.append(')'); + if (node.onCommit) { + this.append(' on commit '); + this.append(node.onCommit); + } + if (node.endModifiers && node.endModifiers.length > 0) { + this.append(' '); + this.compileList(node.endModifiers, ' '); + } + } + } + visitCreateTrigger(node) { + if (!node.time) + throw new Error('Trigger time is required.'); + if (!node.events) + throw new Error('Trigger event is required.'); + if (!node.table) + throw new Error('Trigger table is required.'); + this.append('create '); + if (node.temporary) { + this.append('temporary '); } + if (node.orReplace) { + this.append('or replace '); + } + this.append('trigger '); + if (node.ifNotExists) { + this.append('if not exists '); + } + this.visitNode(node.name); + this.append(` ${node.time} `); + this.compileList(node.events, ' or '); + this.append(' on '); + this.visitNode(node.table); + if (node.forEach) + this.append(` for each ${node.forEach} `); + if (node.when) { + this.append(' when '); + this.visitNode(node.when); + } + if (node.order) + this.visitNode(node.order); + if (node.queries) { + this.append(' begin '); + this.compileList(node.queries, '; '); + this.append('; '); + this.append('end'); + } + else if (node.function) { + this.append(' execute function '); + this.visitNode(node.function); + } + } + visitTriggerEvent(node) { + this.append(`${node.event} `); + if (node.event === 'update' && node.columns) { + this.append('of '); + this.compileList(node.columns, ', '); + } + } + visitTriggerOrder(node) { + this.append(`${node.order} `); + this.visitNode(node.otherTriggerName); + } + visitDropTrigger(node) { + this.append('drop trigger '); + if (node.ifExists) { + this.append('if exists '); + } + this.visitNode(node.name); } visitColumnDefinition(node) { this.visitNode(node.column); @@ -383,6 +451,9 @@ export class DefaultQueryCompiler extends OperationNodeVisitor { if (node.unique) { this.append(' unique'); } + if (node.nullsNotDistinct) { + this.append(' nulls not distinct'); + } if (node.primaryKey) { this.append(' primary key'); } @@ -563,6 +634,9 @@ export class DefaultQueryCompiler extends OperationNodeVisitor { this.compileList(node.columns); this.append(')'); } + if (node.nullsNotDistinct) { + this.append(' nulls not distinct'); + } if (node.where) { this.append(' '); this.visitNode(node.where); @@ -615,7 +689,11 @@ export class DefaultQueryCompiler extends OperationNodeVisitor { this.visitNode(node.name); this.append(' '); } - this.append('unique ('); + this.append('unique'); + if (node.nullsNotDistinct) { + this.append(' nulls not distinct'); + } + this.append(' ('); this.compileList(node.columns); this.append(')'); } @@ -696,7 +774,13 @@ export class DefaultQueryCompiler extends OperationNodeVisitor { this.visitNode(node.dropConstraint); } if (node.columnAlterations) { - this.compileList(node.columnAlterations); + this.compileColumnAlterations(node.columnAlterations); + } + if (node.addIndex) { + this.visitNode(node.addIndex); + } + if (node.dropIndex) { + this.visitNode(node.dropIndex); } } visitAddColumn(node) { @@ -718,7 +802,9 @@ export class DefaultQueryCompiler extends OperationNodeVisitor { this.visitNode(node.column); this.append(' '); if (node.dataType) { - this.append('type '); + if (this.announcesNewColumnDataType()) { + this.append('type '); + } this.visitNode(node.dataType); if (node.dataTypeExpression) { this.append('using '); @@ -1004,6 +1090,23 @@ export class DefaultQueryCompiler extends OperationNodeVisitor { this.visitNode(node.values[i]); } } + visitAddIndex(node) { + this.append('add '); + if (node.unique) { + this.append('unique '); + } + this.append('index '); + this.visitNode(node.name); + if (node.columns) { + this.append(' ('); + this.compileList(node.columns); + this.append(')'); + } + if (node.using) { + this.append(' using '); + this.visitNode(node.using); + } + } append(str) { this.#sql += str; } @@ -1077,6 +1180,16 @@ export class DefaultQueryCompiler extends OperationNodeVisitor { : 1); return freeze(arr); } + compileColumnAlterations(columnAlterations) { + this.compileList(columnAlterations); + } + /** + * controls whether the dialect adds a "type" keyword before a column's new data + * type in an ALTER TABLE statement. + */ + announcesNewColumnDataType() { + return true; + } } const SELECT_MODIFIER_SQL = freeze({ ForKeyShare: 'for key share', diff --git a/node_modules/kysely/dist/esm/query-compiler/query-compiler.d.ts b/node_modules/kysely/dist/esm/query-compiler/query-compiler.d.ts index e3a8555..e96bd90 100644 --- a/node_modules/kysely/dist/esm/query-compiler/query-compiler.d.ts +++ b/node_modules/kysely/dist/esm/query-compiler/query-compiler.d.ts @@ -2,17 +2,19 @@ import { AlterTableNode } from '../operation-node/alter-table-node.js'; import { CreateIndexNode } from '../operation-node/create-index-node.js'; import { CreateSchemaNode } from '../operation-node/create-schema-node.js'; import { CreateTableNode } from '../operation-node/create-table-node.js'; +import { CreateTriggerNode } from '../operation-node/create-trigger-node.js'; import { CreateTypeNode } from '../operation-node/create-type-node.js'; import { CreateViewNode } from '../operation-node/create-view-node.js'; import { DropIndexNode } from '../operation-node/drop-index-node.js'; import { DropSchemaNode } from '../operation-node/drop-schema-node.js'; import { DropTableNode } from '../operation-node/drop-table-node.js'; +import { DropTriggerNode } from '../operation-node/drop-trigger-node.js'; import { DropTypeNode } from '../operation-node/drop-type-node.js'; import { DropViewNode } from '../operation-node/drop-view-node.js'; import { QueryNode } from '../operation-node/query-node.js'; import { RawNode } from '../operation-node/raw-node.js'; import { CompiledQuery } from './compiled-query.js'; -export type RootOperationNode = QueryNode | CreateTableNode | CreateIndexNode | CreateSchemaNode | CreateViewNode | DropTableNode | DropIndexNode | DropSchemaNode | DropViewNode | AlterTableNode | RawNode | CreateTypeNode | DropTypeNode; +export type RootOperationNode = QueryNode | CreateTableNode | CreateIndexNode | CreateSchemaNode | CreateViewNode | DropTableNode | DropIndexNode | DropSchemaNode | DropViewNode | AlterTableNode | RawNode | CreateTypeNode | DropTypeNode | CreateTriggerNode | DropTriggerNode; /** * a `QueryCompiler` compiles a query expressed as a tree of `OperationNodes` into SQL. */ diff --git a/node_modules/kysely/dist/esm/schema/alter-table-add-index-builder.d.ts b/node_modules/kysely/dist/esm/schema/alter-table-add-index-builder.d.ts new file mode 100644 index 0000000..b297698 --- /dev/null +++ b/node_modules/kysely/dist/esm/schema/alter-table-add-index-builder.d.ts @@ -0,0 +1,104 @@ +import { Expression } from '../expression/expression.js'; +import { AlterTableNode } from '../operation-node/alter-table-node.js'; +import { IndexType } from '../operation-node/create-index-node.js'; +import { OperationNodeSource } from '../operation-node/operation-node-source.js'; +import { OrderedColumnName } from '../parser/reference-parser.js'; +import { CompiledQuery } from '../query-compiler/compiled-query.js'; +import { QueryExecutor } from '../query-executor/query-executor.js'; +import { Compilable } from '../util/compilable.js'; +import { QueryId } from '../util/query-id.js'; +export declare class AlterTableAddIndexBuilder implements OperationNodeSource, Compilable { + #private; + constructor(props: AlterTableAddIndexBuilderProps); + /** + * Makes the index unique. + */ + unique(): AlterTableAddIndexBuilder; + /** + * Adds a column to the index. + * + * Also see {@link columns} for adding multiple columns at once or {@link expression} + * for specifying an arbitrary expression. + * + * ### Examples + * + * ```ts + * await db.schema + * .alterTable('person') + * .createIndex('person_first_name_and_age_index') + * .column('first_name') + * .column('age desc') + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` add index `person_first_name_and_age_index` (`first_name`, `age` desc) + * ``` + */ + column(column: OrderedColumnName): AlterTableAddIndexBuilder; + /** + * Specifies a list of columns for the index. + * + * Also see {@link column} for adding a single column or {@link expression} for + * specifying an arbitrary expression. + * + * ### Examples + * + * ```ts + * await db.schema + * .alterTable('person') + * .addIndex('person_first_name_and_age_index') + * .columns(['first_name', 'age desc']) + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` add index `person_first_name_and_age_index` (`first_name`, `age` desc) + * ``` + */ + columns(columns: OrderedColumnName[]): AlterTableAddIndexBuilder; + /** + * Specifies an arbitrary expression for the index. + * + * ### Examples + * + * ```ts + * import { sql } from 'kysely' + * + * await db.schema + * .alterTable('person') + * .addIndex('person_first_name_index') + * .expression(sql`(first_name < 'Sami')`) + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` add index `person_first_name_index` ((first_name < 'Sami')) + * ``` + */ + expression(expression: Expression): AlterTableAddIndexBuilder; + /** + * Specifies the index type. + */ + using(indexType: IndexType): AlterTableAddIndexBuilder; + using(indexType: string): AlterTableAddIndexBuilder; + /** + * Simply calls the provided function passing `this` as the only argument. `$call` returns + * what the provided function returns. + */ + $call(func: (qb: this) => T): T; + toOperationNode(): AlterTableNode; + compile(): CompiledQuery; + execute(): Promise; +} +export interface AlterTableAddIndexBuilderProps { + readonly queryId: QueryId; + readonly executor: QueryExecutor; + readonly node: AlterTableNode; +} diff --git a/node_modules/kysely/dist/esm/schema/alter-table-add-index-builder.js b/node_modules/kysely/dist/esm/schema/alter-table-add-index-builder.js new file mode 100644 index 0000000..00a8ef4 --- /dev/null +++ b/node_modules/kysely/dist/esm/schema/alter-table-add-index-builder.js @@ -0,0 +1,143 @@ +/// +import { AddIndexNode } from '../operation-node/add-index-node.js'; +import { AlterTableNode } from '../operation-node/alter-table-node.js'; +import { RawNode } from '../operation-node/raw-node.js'; +import { parseOrderedColumnName } from '../parser/reference-parser.js'; +import { freeze } from '../util/object-utils.js'; +import { preventAwait } from '../util/prevent-await.js'; +export class AlterTableAddIndexBuilder { + #props; + constructor(props) { + this.#props = freeze(props); + } + /** + * Makes the index unique. + */ + unique() { + return new AlterTableAddIndexBuilder({ + ...this.#props, + node: AlterTableNode.cloneWithTableProps(this.#props.node, { + addIndex: AddIndexNode.cloneWith(this.#props.node.addIndex, { + unique: true, + }), + }), + }); + } + /** + * Adds a column to the index. + * + * Also see {@link columns} for adding multiple columns at once or {@link expression} + * for specifying an arbitrary expression. + * + * ### Examples + * + * ```ts + * await db.schema + * .alterTable('person') + * .createIndex('person_first_name_and_age_index') + * .column('first_name') + * .column('age desc') + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` add index `person_first_name_and_age_index` (`first_name`, `age` desc) + * ``` + */ + column(column) { + return new AlterTableAddIndexBuilder({ + ...this.#props, + node: AlterTableNode.cloneWithTableProps(this.#props.node, { + addIndex: AddIndexNode.cloneWithColumns(this.#props.node.addIndex, [parseOrderedColumnName(column)]), + }), + }); + } + /** + * Specifies a list of columns for the index. + * + * Also see {@link column} for adding a single column or {@link expression} for + * specifying an arbitrary expression. + * + * ### Examples + * + * ```ts + * await db.schema + * .alterTable('person') + * .addIndex('person_first_name_and_age_index') + * .columns(['first_name', 'age desc']) + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` add index `person_first_name_and_age_index` (`first_name`, `age` desc) + * ``` + */ + columns(columns) { + return new AlterTableAddIndexBuilder({ + ...this.#props, + node: AlterTableNode.cloneWithTableProps(this.#props.node, { + addIndex: AddIndexNode.cloneWithColumns(this.#props.node.addIndex, columns.map(parseOrderedColumnName)), + }), + }); + } + /** + * Specifies an arbitrary expression for the index. + * + * ### Examples + * + * ```ts + * import { sql } from 'kysely' + * + * await db.schema + * .alterTable('person') + * .addIndex('person_first_name_index') + * .expression(sql`(first_name < 'Sami')`) + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` add index `person_first_name_index` ((first_name < 'Sami')) + * ``` + */ + expression(expression) { + return new AlterTableAddIndexBuilder({ + ...this.#props, + node: AlterTableNode.cloneWithTableProps(this.#props.node, { + addIndex: AddIndexNode.cloneWithColumns(this.#props.node.addIndex, [expression.toOperationNode()]), + }), + }); + } + using(indexType) { + return new AlterTableAddIndexBuilder({ + ...this.#props, + node: AlterTableNode.cloneWithTableProps(this.#props.node, { + addIndex: AddIndexNode.cloneWith(this.#props.node.addIndex, { + using: RawNode.createWithSql(indexType), + }), + }), + }); + } + /** + * Simply calls the provided function passing `this` as the only argument. `$call` returns + * what the provided function returns. + */ + $call(func) { + return func(this); + } + toOperationNode() { + return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId); + } + compile() { + return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId); + } + async execute() { + await this.#props.executor.executeQuery(this.compile(), this.#props.queryId); + } +} +preventAwait(AlterTableAddIndexBuilder, "don't await AlterTableAddIndexBuilder instances directly. To execute the query you need to call `execute`"); diff --git a/node_modules/kysely/dist/esm/schema/alter-table-builder.d.ts b/node_modules/kysely/dist/esm/schema/alter-table-builder.d.ts index b0726ca..4453c5b 100644 --- a/node_modules/kysely/dist/esm/schema/alter-table-builder.d.ts +++ b/node_modules/kysely/dist/esm/schema/alter-table-builder.d.ts @@ -11,6 +11,8 @@ import { AlterColumnBuilderCallback } from './alter-column-builder.js'; import { AlterTableExecutor } from './alter-table-executor.js'; import { AlterTableAddForeignKeyConstraintBuilder } from './alter-table-add-foreign-key-constraint-builder.js'; import { AlterTableDropConstraintBuilder } from './alter-table-drop-constraint-builder.js'; +import { AlterTableAddIndexBuilder } from './alter-table-add-index-builder.js'; +import { UniqueConstraintNodeBuilderCallback } from './unique-constraint-builder.js'; /** * This builder can be used to create a `alter table` query. */ @@ -35,7 +37,7 @@ export declare class AlterTableBuilder implements ColumnAlteringInterface { /** * See {@link CreateTableBuilder.addUniqueConstraint} */ - addUniqueConstraint(constraintName: string, columns: string[]): AlterTableExecutor; + addUniqueConstraint(constraintName: string, columns: string[], build?: UniqueConstraintNodeBuilderCallback): AlterTableExecutor; /** * See {@link CreateTableBuilder.addCheckConstraint} */ @@ -53,6 +55,44 @@ export declare class AlterTableBuilder implements ColumnAlteringInterface { */ addPrimaryKeyConstraint(constraintName: string, columns: string[]): AlterTableExecutor; dropConstraint(constraintName: string): AlterTableDropConstraintBuilder; + /** + * This can be used to add index to table. + * + * ### Examples + * + * ```ts + * db.schema.alterTable('person') + * .addIndex('person_email_index') + * .column('email') + * .unique() + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` add unique index `person_email_index` (`email`) + * ``` + */ + addIndex(indexName: string): AlterTableAddIndexBuilder; + /** + * This can be used to drop index from table. + * + * ### Examples + * + * ```ts + * db.schema.alterTable('person') + * .dropIndex('person_email_index') + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` drop index `test_first_name_index` + * ``` + */ + dropIndex(indexName: string): AlterTableExecutor; /** * Calls the given function passing `this` as the only argument. * diff --git a/node_modules/kysely/dist/esm/schema/alter-table-builder.js b/node_modules/kysely/dist/esm/schema/alter-table-builder.js index f003eb8..2d8dac8 100644 --- a/node_modules/kysely/dist/esm/schema/alter-table-builder.js +++ b/node_modules/kysely/dist/esm/schema/alter-table-builder.js @@ -23,6 +23,10 @@ import { AlterTableExecutor } from './alter-table-executor.js'; import { AlterTableAddForeignKeyConstraintBuilder } from './alter-table-add-foreign-key-constraint-builder.js'; import { AlterTableDropConstraintBuilder } from './alter-table-drop-constraint-builder.js'; import { PrimaryConstraintNode } from '../operation-node/primary-constraint-node.js'; +import { DropIndexNode } from '../operation-node/drop-index-node.js'; +import { AddIndexNode } from '../operation-node/add-index-node.js'; +import { AlterTableAddIndexBuilder } from './alter-table-add-index-builder.js'; +import { UniqueConstraintNodeBuilder, } from './unique-constraint-builder.js'; /** * This builder can be used to create a `alter table` query. */ @@ -83,11 +87,12 @@ export class AlterTableBuilder { /** * See {@link CreateTableBuilder.addUniqueConstraint} */ - addUniqueConstraint(constraintName, columns) { + addUniqueConstraint(constraintName, columns, build = noop) { + const uniqueConstraintBuilder = build(new UniqueConstraintNodeBuilder(UniqueConstraintNode.create(columns, constraintName))); return new AlterTableExecutor({ ...this.#props, node: AlterTableNode.cloneWithTableProps(this.#props.node, { - addConstraint: AddConstraintNode.create(UniqueConstraintNode.create(columns, constraintName)), + addConstraint: AddConstraintNode.create(uniqueConstraintBuilder.toOperationNode()), }), }); } @@ -134,6 +139,58 @@ export class AlterTableBuilder { }), }); } + /** + * This can be used to add index to table. + * + * ### Examples + * + * ```ts + * db.schema.alterTable('person') + * .addIndex('person_email_index') + * .column('email') + * .unique() + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` add unique index `person_email_index` (`email`) + * ``` + */ + addIndex(indexName) { + return new AlterTableAddIndexBuilder({ + ...this.#props, + node: AlterTableNode.cloneWithTableProps(this.#props.node, { + addIndex: AddIndexNode.create(indexName), + }), + }); + } + /** + * This can be used to drop index from table. + * + * ### Examples + * + * ```ts + * db.schema.alterTable('person') + * .dropIndex('person_email_index') + * .execute() + * ``` + * + * The generated SQL (MySQL): + * + * ```sql + * alter table `person` drop index `test_first_name_index` + * ``` + */ + dropIndex(indexName) { + return new AlterTableExecutor({ + ...this.#props, + node: AlterTableNode.cloneWithTableProps(this.#props.node, { + dropIndex: DropIndexNode.create(indexName), + }), + }); + } /** * Calls the given function passing `this` as the only argument. * diff --git a/node_modules/kysely/dist/esm/schema/column-definition-builder.d.ts b/node_modules/kysely/dist/esm/schema/column-definition-builder.d.ts index 2a99c4c..a76104c 100644 --- a/node_modules/kysely/dist/esm/schema/column-definition-builder.d.ts +++ b/node_modules/kysely/dist/esm/schema/column-definition-builder.d.ts @@ -183,6 +183,31 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource { * ``` */ modifyFront(modifier: Expression): ColumnDefinitionBuilder; + /** + * Adds `nulls not distinct` specifier. + * Should be used with `unique` constraint. + * + * This only works on some dialects like PostgreSQL. + * + * ### Examples + * + * ```ts + * db.schema.createTable('person') + * .addColumn('id', 'integer', col => col.primaryKey()) + * .addColumn('first_name', 'varchar(30)', col => col.unique().nullsNotDistinct()) + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * create table "person" ( + * "id" integer primary key, + * "first_name" varchar(30) unique nulls not distinct + * ) + * ``` + */ + nullsNotDistinct(): ColumnDefinitionBuilder; /** * This can be used to add any additional SQL to the end of the column definition. * diff --git a/node_modules/kysely/dist/esm/schema/column-definition-builder.js b/node_modules/kysely/dist/esm/schema/column-definition-builder.js index 8ff9bf2..7111109 100644 --- a/node_modules/kysely/dist/esm/schema/column-definition-builder.js +++ b/node_modules/kysely/dist/esm/schema/column-definition-builder.js @@ -256,6 +256,33 @@ export class ColumnDefinitionBuilder { modifyFront(modifier) { return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWithFrontModifier(this.#node, modifier.toOperationNode())); } + /** + * Adds `nulls not distinct` specifier. + * Should be used with `unique` constraint. + * + * This only works on some dialects like PostgreSQL. + * + * ### Examples + * + * ```ts + * db.schema.createTable('person') + * .addColumn('id', 'integer', col => col.primaryKey()) + * .addColumn('first_name', 'varchar(30)', col => col.unique().nullsNotDistinct()) + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * create table "person" ( + * "id" integer primary key, + * "first_name" varchar(30) unique nulls not distinct + * ) + * ``` + */ + nullsNotDistinct() { + return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, { nullsNotDistinct: true })); + } /** * This can be used to add any additional SQL to the end of the column definition. * diff --git a/node_modules/kysely/dist/esm/schema/create-index-builder.d.ts b/node_modules/kysely/dist/esm/schema/create-index-builder.d.ts index 27502c4..b44e116 100644 --- a/node_modules/kysely/dist/esm/schema/create-index-builder.d.ts +++ b/node_modules/kysely/dist/esm/schema/create-index-builder.d.ts @@ -22,6 +22,29 @@ export declare class CreateIndexBuilder implements OperationNodeSourc * Makes the index unique. */ unique(): CreateIndexBuilder; + /** + * Adds `nulls not distinct` specifier to index. + * This only works on some dialects like PostgreSQL. + * + * ### Examples + * + * ```ts + * db.schema.createIndex('person_first_name_index') + * .on('person') + * .column('first_name') + * .nullsNotDistinct() + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * create index "person_first_name_index" + * on "test" ("first_name") + * nulls not distinct; + * ``` + */ + nullsNotDistinct(): CreateIndexBuilder; /** * Specifies the table for the index. */ diff --git a/node_modules/kysely/dist/esm/schema/create-index-builder.js b/node_modules/kysely/dist/esm/schema/create-index-builder.js index 7886ba1..5d40347 100644 --- a/node_modules/kysely/dist/esm/schema/create-index-builder.js +++ b/node_modules/kysely/dist/esm/schema/create-index-builder.js @@ -37,6 +37,36 @@ export class CreateIndexBuilder { }), }); } + /** + * Adds `nulls not distinct` specifier to index. + * This only works on some dialects like PostgreSQL. + * + * ### Examples + * + * ```ts + * db.schema.createIndex('person_first_name_index') + * .on('person') + * .column('first_name') + * .nullsNotDistinct() + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * create index "person_first_name_index" + * on "test" ("first_name") + * nulls not distinct; + * ``` + */ + nullsNotDistinct() { + return new CreateIndexBuilder({ + ...this.#props, + node: CreateIndexNode.cloneWith(this.#props.node, { + nullsNotDistinct: true, + }), + }); + } /** * Specifies the table for the index. */ diff --git a/node_modules/kysely/dist/esm/schema/create-table-builder.d.ts b/node_modules/kysely/dist/esm/schema/create-table-builder.d.ts index e160575..3b7e7ce 100644 --- a/node_modules/kysely/dist/esm/schema/create-table-builder.d.ts +++ b/node_modules/kysely/dist/esm/schema/create-table-builder.d.ts @@ -8,6 +8,7 @@ import { QueryId } from '../util/query-id.js'; import { ForeignKeyConstraintBuilder } from './foreign-key-constraint-builder.js'; import { DataTypeExpression } from '../parser/data-type-parser.js'; import { Expression } from '../expression/expression.js'; +import { UniqueConstraintNodeBuilderCallback } from './unique-constraint-builder.js'; /** * This builder can be used to create a `create table` query. */ @@ -56,7 +57,7 @@ export declare class CreateTableBuilder builder.nullsNotDistinct()) + * ``` */ - addUniqueConstraint(constraintName: string, columns: C[]): CreateTableBuilder; + addUniqueConstraint(constraintName: string, columns: C[], build?: UniqueConstraintNodeBuilderCallback): CreateTableBuilder; /** * Adds a check constraint. * @@ -205,6 +211,26 @@ export declare class CreateTableBuilder): CreateTableBuilder; + /** + * Allows to create table from `select` query. + * + * ### Examples + * + * ```ts + * db.schema.createTable('copy') + * .temporary() + * .as(db.selectFrom('person').select(['first_name', 'last_name'])) + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * create temporary table "copy" as + * select "first_name", "last_name" from "person" + * ``` + */ + as(expression: Expression): CreateTableBuilder; /** * Calls the given function passing `this` as the only argument. * diff --git a/node_modules/kysely/dist/esm/schema/create-table-builder.js b/node_modules/kysely/dist/esm/schema/create-table-builder.js index 20fb8c5..f3423e2 100644 --- a/node_modules/kysely/dist/esm/schema/create-table-builder.js +++ b/node_modules/kysely/dist/esm/schema/create-table-builder.js @@ -13,6 +13,8 @@ import { UniqueConstraintNode } from '../operation-node/unique-constraint-node.j import { CheckConstraintNode } from '../operation-node/check-constraint-node.js'; import { parseTable } from '../parser/table-parser.js'; import { parseOnCommitAction } from '../parser/on-commit-action-parse.js'; +import { UniqueConstraintNodeBuilder, } from './unique-constraint-builder.js'; +import { parseExpression } from '../parser/expression-parser.js'; /** * This builder can be used to create a `create table` query. */ @@ -84,7 +86,7 @@ export class CreateTableBuilder { * ``` * * With this method, it's once again good to remember that Kysely just builds the - * query and doesn't provide the same API for all databses. For example, some + * query and doesn't provide the same API for all databases. For example, some * databases like older MySQL don't support the `references` statement in the * column definition. Instead foreign key constraints need to be defined in the * `create table` query. See the next example: @@ -143,11 +145,17 @@ export class CreateTableBuilder { * ```ts * addUniqueConstraint('first_name_last_name_unique', ['first_name', 'last_name']) * ``` + * + * In dialects such as PostgreSQL you can specify `nulls not distinct` as follows: + * ```ts + * addUniqueConstraint('first_name_last_name_unique', ['first_name', 'last_name'], (builder) => builder.nullsNotDistinct()) + * ``` */ - addUniqueConstraint(constraintName, columns) { + addUniqueConstraint(constraintName, columns, build = noop) { + const uniqueConstraintBuilder = build(new UniqueConstraintNodeBuilder(UniqueConstraintNode.create(columns, constraintName))); return new CreateTableBuilder({ ...this.#props, - node: CreateTableNode.cloneWithConstraint(this.#props.node, UniqueConstraintNode.create(columns, constraintName)), + node: CreateTableNode.cloneWithConstraint(this.#props.node, uniqueConstraintBuilder.toOperationNode()), }); } /** @@ -270,6 +278,33 @@ export class CreateTableBuilder { node: CreateTableNode.cloneWithEndModifier(this.#props.node, modifier.toOperationNode()), }); } + /** + * Allows to create table from `select` query. + * + * ### Examples + * + * ```ts + * db.schema.createTable('copy') + * .temporary() + * .as(db.selectFrom('person').select(['first_name', 'last_name'])) + * .execute() + * ``` + * + * The generated SQL (PostgreSQL): + * + * ```sql + * create temporary table "copy" as + * select "first_name", "last_name" from "person" + * ``` + */ + as(expression) { + return new CreateTableBuilder({ + ...this.#props, + node: CreateTableNode.cloneWith(this.#props.node, { + selectQuery: parseExpression(expression), + }), + }); + } /** * Calls the given function passing `this` as the only argument. * diff --git a/node_modules/kysely/dist/esm/schema/create-trigger-builder.d.ts b/node_modules/kysely/dist/esm/schema/create-trigger-builder.d.ts new file mode 100644 index 0000000..c65746a --- /dev/null +++ b/node_modules/kysely/dist/esm/schema/create-trigger-builder.d.ts @@ -0,0 +1,68 @@ +import { CreateTriggerNode } from '../operation-node/create-trigger-node.js'; +import { OperationNodeSource } from '../operation-node/operation-node-source.js'; +import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js'; +import { ReferenceExpression } from '../parser/reference-parser.js'; +import { CompiledQuery } from '../query-compiler/compiled-query.js'; +import { QueryExecutor } from '../query-executor/query-executor.js'; +import { Compilable } from '../util/compilable.js'; +import { QueryId } from '../util/query-id.js'; +import { AnyColumn, AnyColumnWithTable, SqlBool } from '../util/type-utils.js'; +import { TriggerEvent } from '../operation-node/trigger-event-node.js'; +import { ExpressionOrFactory } from '../parser/expression-parser.js'; +import { TriggerQueryCreator } from '../trigger-query-creator.js'; +export type DatabaseWithOldNewTables = DB & { + old: DB[TB]; + new: DB[TB]; +}; +/** + * This builder can be used to create a `create table` query. + */ +export declare class CreateTriggerBuilder implements OperationNodeSource, Compilable { + #private; + constructor(props: CreateTriggerBuilderProps); + before(): CreateTriggerBuilder; + after(): CreateTriggerBuilder; + insteadOf(): CreateTriggerBuilder; + addEvent(event: E, columns?: E extends 'update' ? AnyColumn[] : never[]): CreateTriggerBuilder; + forEachRow(): CreateTriggerBuilder; + forEachStatement(): CreateTriggerBuilder; + follows(otherTriggerName: string): CreateTriggerBuilder; + precedes(otherTriggerName: string): CreateTriggerBuilder; + /** + * Specifies the table for the trigger. + */ + onTable(table: TE, schema?: string): CreateTriggerBuilder; + /** + * Adds the "temporary" modifier. + * + * Use this to create a temporary trigger. + */ + temporary(): CreateTriggerBuilder; + /** + * Adds the "if not exists" modifier. + * + * If the trigger already exists, no error is thrown if this method has been called. + */ + ifNotExists(): CreateTriggerBuilder; + /** + * Only supported on PostgreSQL + */ + orReplace(): CreateTriggerBuilder; + /** + * Adds a query to the trigger. + */ + addQuery(build: QueryCreatorCallback): CreateTriggerBuilder; + function(name: string, args: ReadonlyArray>): CreateTriggerBuilder; + when, 'old' | 'new'>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList): CreateTriggerBuilder; + when(factory: ExpressionOrFactory, 'old' | 'new', SqlBool>): CreateTriggerBuilder; + $call(func: (qb: this) => T): T; + toOperationNode(): CreateTriggerNode; + compile(): CompiledQuery; + execute(): Promise; +} +export interface CreateTriggerBuilderProps { + readonly queryId: QueryId; + readonly executor: QueryExecutor; + readonly node: CreateTriggerNode; +} +export type QueryCreatorCallback = (creator: TriggerQueryCreator) => OperationNodeSource; diff --git a/node_modules/kysely/dist/esm/schema/create-trigger-builder.js b/node_modules/kysely/dist/esm/schema/create-trigger-builder.js new file mode 100644 index 0000000..d3eb721 --- /dev/null +++ b/node_modules/kysely/dist/esm/schema/create-trigger-builder.js @@ -0,0 +1,177 @@ +/// +import { CreateTriggerNode } from '../operation-node/create-trigger-node.js'; +import { QueryNode } from '../operation-node/query-node.js'; +import { parseValueBinaryOperationOrExpression, } from '../parser/binary-operation-parser.js'; +import { parseOrderedColumnName, parseReferenceExpressionOrList, } from '../parser/reference-parser.js'; +import { ImmediateValueTransformer } from '../plugin/immediate-value/immediate-value-transformer.js'; +import { freeze } from '../util/object-utils.js'; +import { preventAwait } from '../util/prevent-await.js'; +import { IdentifierNode } from '../operation-node/identifier-node.js'; +import { TriggerOrderNode } from '../operation-node/trigger-order-node.js'; +import { TriggerEventNode, } from '../operation-node/trigger-event-node.js'; +import { FunctionNode } from '../operation-node/function-node.js'; +import { TriggerQueryCreator } from '../trigger-query-creator.js'; +import { TableNode } from '../operation-node/table-node.js'; +/** + * This builder can be used to create a `create table` query. + */ +export class CreateTriggerBuilder { + #props; + constructor(props) { + this.#props = freeze(props); + } + before() { + return new CreateTriggerBuilder({ + ...this.#props, + node: CreateTriggerNode.cloneWith(this.#props.node, { + time: 'before', + }), + }); + } + after() { + return new CreateTriggerBuilder({ + ...this.#props, + node: CreateTriggerNode.cloneWith(this.#props.node, { + time: 'after', + }), + }); + } + insteadOf() { + return new CreateTriggerBuilder({ + ...this.#props, + node: CreateTriggerNode.cloneWith(this.#props.node, { + time: 'instead of', + }), + }); + } + addEvent(event, columns) { + return new CreateTriggerBuilder({ + ...this.#props, + node: CreateTriggerNode.cloneWithEvent(this.#props.node, TriggerEventNode.create(event, columns?.map(parseOrderedColumnName))), + }); + } + forEachRow() { + return new CreateTriggerBuilder({ + ...this.#props, + node: CreateTriggerNode.cloneWith(this.#props.node, { + forEach: `row`, + }), + }); + } + forEachStatement() { + return new CreateTriggerBuilder({ + ...this.#props, + node: CreateTriggerNode.cloneWith(this.#props.node, { + forEach: `statement`, + }), + }); + } + follows(otherTriggerName) { + return new CreateTriggerBuilder({ + ...this.#props, + node: CreateTriggerNode.cloneWith(this.#props.node, { + order: TriggerOrderNode.create('follows', IdentifierNode.create(otherTriggerName)), + }), + }); + } + precedes(otherTriggerName) { + return new CreateTriggerBuilder({ + ...this.#props, + node: CreateTriggerNode.cloneWith(this.#props.node, { + order: TriggerOrderNode.create('precedes', IdentifierNode.create(otherTriggerName)), + }), + }); + } + /** + * Specifies the table for the trigger. + */ + onTable(table, schema) { + return new CreateTriggerBuilder({ + ...this.#props, + node: CreateTriggerNode.cloneWith(this.#props.node, { + table: schema + ? TableNode.createWithSchema(schema, table) + : TableNode.create(table), + }), + }); + } + /** + * Adds the "temporary" modifier. + * + * Use this to create a temporary trigger. + */ + temporary() { + return new CreateTriggerBuilder({ + ...this.#props, + node: CreateTriggerNode.cloneWith(this.#props.node, { + temporary: true, + }), + }); + } + /** + * Adds the "if not exists" modifier. + * + * If the trigger already exists, no error is thrown if this method has been called. + */ + ifNotExists() { + return new CreateTriggerBuilder({ + ...this.#props, + node: CreateTriggerNode.cloneWith(this.#props.node, { + ifNotExists: true, + }), + }); + } + /** + * Only supported on PostgreSQL + */ + orReplace() { + return new CreateTriggerBuilder({ + ...this.#props, + node: CreateTriggerNode.cloneWith(this.#props.node, { + orReplace: true, + }), + }); + } + /** + * Adds a query to the trigger. + */ + addQuery(build) { + const node = build(new TriggerQueryCreator({ executor: this.#props.executor })).toOperationNode(); + if (!QueryNode.is(node)) + throw new Error('Must be a query node.'); + return new CreateTriggerBuilder({ + ...this.#props, + node: CreateTriggerNode.cloneWithQuery(this.#props.node, node), + }); + } + function(name, args) { + return new CreateTriggerBuilder({ + ...this.#props, + node: CreateTriggerNode.cloneWith(this.#props.node, { + function: FunctionNode.create(name, parseReferenceExpressionOrList(args)), + }), + }); + } + when(...args) { + const transformer = new ImmediateValueTransformer(); + return new CreateTriggerBuilder({ + ...this.#props, + node: CreateTriggerNode.cloneWith(this.#props.node, { + when: transformer.transformNode(parseValueBinaryOperationOrExpression(args)), + }), + }); + } + $call(func) { + return func(this); + } + toOperationNode() { + return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId); + } + compile() { + return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId); + } + async execute() { + await this.#props.executor.executeQuery(this.compile(), this.#props.queryId); + } +} +preventAwait(CreateTriggerBuilder, "don't await CreateTriggerBuilder instances directly. To execute the query you need to call `execute`"); diff --git a/node_modules/kysely/dist/esm/schema/drop-trigger-builder.d.ts b/node_modules/kysely/dist/esm/schema/drop-trigger-builder.d.ts new file mode 100644 index 0000000..b0e3fce --- /dev/null +++ b/node_modules/kysely/dist/esm/schema/drop-trigger-builder.d.ts @@ -0,0 +1,25 @@ +import { OperationNodeSource } from '../operation-node/operation-node-source.js'; +import { CompiledQuery } from '../query-compiler/compiled-query.js'; +import { Compilable } from '../util/compilable.js'; +import { QueryExecutor } from '../query-executor/query-executor.js'; +import { QueryId } from '../util/query-id.js'; +import { DropTriggerNode } from '../operation-node/drop-trigger-node.js'; +export declare class DropTriggerBuilder implements OperationNodeSource, Compilable { + #private; + constructor(props: DropTriggerBuilderProps); + ifExists(): DropTriggerBuilder; + cascade(): DropTriggerBuilder; + /** + * Simply calls the provided function passing `this` as the only argument. `$call` returns + * what the provided function returns. + */ + $call(func: (qb: this) => T): T; + toOperationNode(): DropTriggerNode; + compile(): CompiledQuery; + execute(): Promise; +} +export interface DropTriggerBuilderProps { + readonly queryId: QueryId; + readonly executor: QueryExecutor; + readonly node: DropTriggerNode; +} diff --git a/node_modules/kysely/dist/esm/schema/drop-trigger-builder.js b/node_modules/kysely/dist/esm/schema/drop-trigger-builder.js new file mode 100644 index 0000000..0a0f2e1 --- /dev/null +++ b/node_modules/kysely/dist/esm/schema/drop-trigger-builder.js @@ -0,0 +1,43 @@ +/// +import { preventAwait } from '../util/prevent-await.js'; +import { freeze } from '../util/object-utils.js'; +import { DropTriggerNode } from '../operation-node/drop-trigger-node.js'; +export class DropTriggerBuilder { + #props; + constructor(props) { + this.#props = freeze(props); + } + ifExists() { + return new DropTriggerBuilder({ + ...this.#props, + node: DropTriggerNode.cloneWith(this.#props.node, { + ifExists: true, + }), + }); + } + cascade() { + return new DropTriggerBuilder({ + ...this.#props, + node: DropTriggerNode.cloneWith(this.#props.node, { + cascade: true, + }), + }); + } + /** + * Simply calls the provided function passing `this` as the only argument. `$call` returns + * what the provided function returns. + */ + $call(func) { + return func(this); + } + toOperationNode() { + return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId); + } + compile() { + return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId); + } + async execute() { + await this.#props.executor.executeQuery(this.compile(), this.#props.queryId); + } +} +preventAwait(DropTriggerBuilder, "don't await DropTriggerBuilder instances directly. To execute the query you need to call `execute`"); diff --git a/node_modules/kysely/dist/esm/schema/schema.d.ts b/node_modules/kysely/dist/esm/schema/schema.d.ts index 8634b84..19cf68c 100644 --- a/node_modules/kysely/dist/esm/schema/schema.d.ts +++ b/node_modules/kysely/dist/esm/schema/schema.d.ts @@ -11,10 +11,12 @@ import { DropViewBuilder } from './drop-view-builder.js'; import { KyselyPlugin } from '../plugin/kysely-plugin.js'; import { CreateTypeBuilder } from './create-type-builder.js'; import { DropTypeBuilder } from './drop-type-builder.js'; +import { CreateTriggerBuilder } from './create-trigger-builder.js'; +import { DropTriggerBuilder } from './drop-trigger-builder.js'; /** * Provides methods for building database schema. */ -export declare class SchemaModule { +export declare class SchemaModule { #private; constructor(executor: QueryExecutor); /** @@ -201,16 +203,18 @@ export declare class SchemaModule { * ``` */ dropType(typeName: string): DropTypeBuilder; + createTrigger(name: string): CreateTriggerBuilder; + dropTrigger(triggerName: string): DropTriggerBuilder; /** * Returns a copy of this schema module with the given plugin installed. */ - withPlugin(plugin: KyselyPlugin): SchemaModule; + withPlugin(plugin: KyselyPlugin): SchemaModule; /** * Returns a copy of this schema module without any plugins. */ - withoutPlugins(): SchemaModule; + withoutPlugins(): SchemaModule; /** * See {@link QueryCreator.withSchema} */ - withSchema(schema: string): SchemaModule; + withSchema(schema: string): SchemaModule; } diff --git a/node_modules/kysely/dist/esm/schema/schema.js b/node_modules/kysely/dist/esm/schema/schema.js index 8244039..4ba6917 100644 --- a/node_modules/kysely/dist/esm/schema/schema.js +++ b/node_modules/kysely/dist/esm/schema/schema.js @@ -25,6 +25,11 @@ import { DropTypeBuilder } from './drop-type-builder.js'; import { CreateTypeNode } from '../operation-node/create-type-node.js'; import { DropTypeNode } from '../operation-node/drop-type-node.js'; import { parseSchemableIdentifier } from '../parser/identifier-parser.js'; +import { CreateTriggerBuilder } from './create-trigger-builder.js'; +import { CreateTriggerNode } from '../operation-node/create-trigger-node.js'; +import { IdentifierNode } from '../operation-node/identifier-node.js'; +import { DropTriggerNode } from '../operation-node/drop-trigger-node.js'; +import { DropTriggerBuilder } from './drop-trigger-builder.js'; /** * Provides methods for building database schema. */ @@ -283,6 +288,20 @@ export class SchemaModule { node: DropTypeNode.create(parseSchemableIdentifier(typeName)), }); } + createTrigger(name) { + return new CreateTriggerBuilder({ + queryId: createQueryId(), + executor: this.#executor, + node: CreateTriggerNode.create(IdentifierNode.create(name)), + }); + } + dropTrigger(triggerName) { + return new DropTriggerBuilder({ + queryId: createQueryId(), + executor: this.#executor, + node: DropTriggerNode.create(parseSchemableIdentifier(triggerName)), + }); + } /** * Returns a copy of this schema module with the given plugin installed. */ diff --git a/node_modules/kysely/dist/esm/schema/unique-constraint-builder.d.ts b/node_modules/kysely/dist/esm/schema/unique-constraint-builder.d.ts new file mode 100644 index 0000000..4362213 --- /dev/null +++ b/node_modules/kysely/dist/esm/schema/unique-constraint-builder.d.ts @@ -0,0 +1,14 @@ +import { OperationNodeSource } from '../operation-node/operation-node-source.js'; +import { UniqueConstraintNode } from '../operation-node/unique-constraint-node.js'; +export declare class UniqueConstraintNodeBuilder implements OperationNodeSource { + #private; + constructor(node: UniqueConstraintNode); + toOperationNode(): UniqueConstraintNode; + /** + * Adds `nulls not distinct` to the unique constraint definition + * + * Supported by PostgreSQL dialect only + */ + nullsNotDistinct(): UniqueConstraintNodeBuilder; +} +export type UniqueConstraintNodeBuilderCallback = (builder: UniqueConstraintNodeBuilder) => UniqueConstraintNodeBuilder; diff --git a/node_modules/kysely/dist/esm/schema/unique-constraint-builder.js b/node_modules/kysely/dist/esm/schema/unique-constraint-builder.js new file mode 100644 index 0000000..dba8cef --- /dev/null +++ b/node_modules/kysely/dist/esm/schema/unique-constraint-builder.js @@ -0,0 +1,21 @@ +/// +import { UniqueConstraintNode } from '../operation-node/unique-constraint-node.js'; +import { preventAwait } from '../util/prevent-await.js'; +export class UniqueConstraintNodeBuilder { + #node; + constructor(node) { + this.#node = node; + } + toOperationNode() { + return this.#node; + } + /** + * Adds `nulls not distinct` to the unique constraint definition + * + * Supported by PostgreSQL dialect only + */ + nullsNotDistinct() { + return new UniqueConstraintNodeBuilder(UniqueConstraintNode.cloneWith(this.#node, { nullsNotDistinct: true })); + } +} +preventAwait(UniqueConstraintNodeBuilder, "don't await UniqueConstraintNodeBuilder instances directly."); diff --git a/node_modules/kysely/dist/esm/trigger-query-creator.d.ts b/node_modules/kysely/dist/esm/trigger-query-creator.d.ts new file mode 100644 index 0000000..51d0b2f --- /dev/null +++ b/node_modules/kysely/dist/esm/trigger-query-creator.d.ts @@ -0,0 +1,35 @@ +import { SelectQueryBuilder } from './query-builder/select-query-builder.js'; +import { InsertQueryBuilder } from './query-builder/insert-query-builder.js'; +import { DeleteQueryBuilder } from './query-builder/delete-query-builder.js'; +import { UpdateQueryBuilder } from './query-builder/update-query-builder.js'; +import { TableExpression, From, FromTables, TableReference, ExtractTableAlias, AnyAliasedTable, PickTableWithAlias } from './parser/table-parser.js'; +import { InsertResult } from './query-builder/insert-result.js'; +import { DeleteResult } from './query-builder/delete-result.js'; +import { UpdateResult } from './query-builder/update-result.js'; +import { KyselyPlugin } from './plugin/kysely-plugin.js'; +import { CallbackSelection, SelectCallback, SelectExpression, Selection } from './parser/select-parser.js'; +import { QueryCreatorProps } from './query-creator.js'; +import { DatabaseWithOldNewTables } from './schema/create-trigger-builder.js'; +export declare class TriggerQueryCreator { + #private; + constructor(props: QueryCreatorProps); + selectFrom(from: TE[]): SelectQueryBuilder, ExtractTableAlias | 'new' | 'old', {}>; + selectFrom>(from: TE[]): SelectQueryBuilder, TE>, FromTables | 'new' | 'old', {}>; + selectFrom(from: TE): SelectQueryBuilder, ExtractTableAlias | 'new' | 'old', {}>; + selectFrom>(from: TE): SelectQueryBuilder & PickTableWithAlias, TE>, ExtractTableAlias | 'new' | 'old', {}>; + selectFrom>(from: TE): SelectQueryBuilder, TE>, FromTables | 'new' | 'old', {}>; + selectNoFrom>(selections: ReadonlyArray): SelectQueryBuilder>; + selectNoFrom>(callback: CB): SelectQueryBuilder>; + selectNoFrom>(selection: SE): SelectQueryBuilder>; + insertInto(table: T): InsertQueryBuilder; + replaceInto(table: T): InsertQueryBuilder; + deleteFrom(from: TR[]): DeleteQueryBuilder, ExtractTableAlias | 'new' | 'old', DeleteResult>; + deleteFrom>(tables: TR[]): DeleteQueryBuilder, TR>, FromTables | 'new' | 'old', DeleteResult>; + deleteFrom(from: TR): DeleteQueryBuilder, ExtractTableAlias | 'new' | 'old', DeleteResult>; + deleteFrom>(table: TR): DeleteQueryBuilder, TR>, FromTables | 'new' | 'old', DeleteResult>; + updateTable(table: TR): UpdateQueryBuilder, ExtractTableAlias, UpdateResult>; + updateTable>(table: TR): UpdateQueryBuilder, ExtractTableAlias, ExtractTableAlias, UpdateResult>; + updateTable>(table: TR): UpdateQueryBuilder, FromTables, FromTables, UpdateResult>; + withPlugin(plugin: KyselyPlugin): TriggerQueryCreator; + withoutPlugins(): TriggerQueryCreator; +} diff --git a/node_modules/kysely/dist/esm/trigger-query-creator.js b/node_modules/kysely/dist/esm/trigger-query-creator.js new file mode 100644 index 0000000..c8960dc --- /dev/null +++ b/node_modules/kysely/dist/esm/trigger-query-creator.js @@ -0,0 +1,73 @@ +/// +import { createSelectQueryBuilder, } from './query-builder/select-query-builder.js'; +import { InsertQueryBuilder } from './query-builder/insert-query-builder.js'; +import { DeleteQueryBuilder } from './query-builder/delete-query-builder.js'; +import { UpdateQueryBuilder } from './query-builder/update-query-builder.js'; +import { DeleteQueryNode } from './operation-node/delete-query-node.js'; +import { InsertQueryNode } from './operation-node/insert-query-node.js'; +import { SelectQueryNode } from './operation-node/select-query-node.js'; +import { UpdateQueryNode } from './operation-node/update-query-node.js'; +import { parseTable, parseTableExpression, parseTableExpressionOrList, } from './parser/table-parser.js'; +import { createQueryId } from './util/query-id.js'; +import { freeze } from './util/object-utils.js'; +import { parseSelectArg, } from './parser/select-parser.js'; +export class TriggerQueryCreator { + #props; + constructor(props) { + this.#props = freeze(props); + } + selectFrom(from) { + return createSelectQueryBuilder({ + queryId: createQueryId(), + executor: this.#props.executor, + queryNode: SelectQueryNode.createFrom(parseTableExpressionOrList(from), this.#props.withNode), + }); + } + selectNoFrom(selection) { + return createSelectQueryBuilder({ + queryId: createQueryId(), + executor: this.#props.executor, + queryNode: SelectQueryNode.cloneWithSelections(SelectQueryNode.create(this.#props.withNode), parseSelectArg(selection)), + }); + } + insertInto(table) { + return new InsertQueryBuilder({ + queryId: createQueryId(), + executor: this.#props.executor, + queryNode: InsertQueryNode.create(parseTable(table), this.#props.withNode), + }); + } + replaceInto(table) { + return new InsertQueryBuilder({ + queryId: createQueryId(), + executor: this.#props.executor, + queryNode: InsertQueryNode.create(parseTable(table), this.#props.withNode, true), + }); + } + deleteFrom(tables) { + return new DeleteQueryBuilder({ + queryId: createQueryId(), + executor: this.#props.executor, + queryNode: DeleteQueryNode.create(parseTableExpressionOrList(tables), this.#props.withNode), + }); + } + updateTable(table) { + return new UpdateQueryBuilder({ + queryId: createQueryId(), + executor: this.#props.executor, + queryNode: UpdateQueryNode.create(parseTableExpression(table), this.#props.withNode), + }); + } + withPlugin(plugin) { + return new TriggerQueryCreator({ + ...this.#props, + executor: this.#props.executor.withPlugin(plugin), + }); + } + withoutPlugins() { + return new TriggerQueryCreator({ + ...this.#props, + executor: this.#props.executor.withoutPlugins(), + }); + } +} diff --git a/node_modules/kysely/dist/esm/util/object-utils.d.ts b/node_modules/kysely/dist/esm/util/object-utils.d.ts index 1b9f563..c9fa82b 100644 --- a/node_modules/kysely/dist/esm/util/object-utils.d.ts +++ b/node_modules/kysely/dist/esm/util/object-utils.d.ts @@ -6,7 +6,7 @@ export declare function isNumber(obj: unknown): obj is number; export declare function isBoolean(obj: unknown): obj is boolean; export declare function isNull(obj: unknown): obj is null; export declare function isDate(obj: unknown): obj is Date; -export declare function isBigInt(obj: unknown): obj is BigInt; +export declare function isBigInt(obj: unknown): obj is bigint; export declare function isBuffer(obj: unknown): obj is { length: number; }; diff --git a/node_modules/kysely/helpers/sqlite.js b/node_modules/kysely/helpers/sqlite.js index cc6b411..a579b48 100644 --- a/node_modules/kysely/helpers/sqlite.js +++ b/node_modules/kysely/helpers/sqlite.js @@ -1 +1 @@ -module.exports = require('../dist/cjs/helpers/sqlite.js') \ No newline at end of file +module.exports = require('kysely/dist/cjs/helpers/sqlite.js') \ No newline at end of file