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

ts-sql-query

Package Overview
Dependencies
Maintainers
1
Versions
77
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ts-sql-query - npm Package Compare versions

Comparing version 1.12.0 to 1.13.0

extras/utils.d.ts

2

package.json
{
"name": "ts-sql-query",
"version": "1.12.0",
"version": "1.13.0",
"description": "Type-safe SQL query builder like QueryDSL or JOOQ in Java or Linq in .Net for TypeScript with MariaDB, MySql, Oracle, PostgreSql, Sqlite and SqlServer support.",

@@ -5,0 +5,0 @@ "license": "MIT",

import type { SqlBuilder, JoinData, ToSql, SelectData, CompoundOperator, CompoundSelectData, PlainSelectData } from "../sqlBuilders/SqlBuilder";
import type { SelectExpression, SelectColumns, OrderByMode, SelectExpressionSubquery, ExecutableSelectExpressionWithoutWhere, DynamicWhereExecutableSelectExpression, GroupByOrderByExecutableSelectExpression, OffsetExecutableSelectExpression, CustomizableExecutableSelect, DynamicWhereExpressionWithoutSelect, SelectExpressionFromNoTable, SelectWhereJoinExpression, DynamicOnExpression, OnExpression, SelectExpressionWithoutJoin, SelectWhereExpression, OrderByExecutableSelectExpression, GroupByOrderByHavingExecutableSelectExpression, DynamicHavingExecutableSelectExpression, GroupByOrderHavingByExpressionWithoutSelect, DynamicHavingExpressionWithoutSelect, ICompoundableSelect, CompoundableExecutableSelectExpression, CompoundedExecutableSelectExpression, ExecutableSelect, ComposeExpression, ComposeExpressionDeletingInternalProperty, ComposeExpressionDeletingExternalProperty, WithableExecutableSelect, SelectCustomization } from "../expressions/select";
import type { SelectExpression, SelectColumns, OrderByMode, SelectExpressionSubquery, ExecutableSelectExpressionWithoutWhere, DynamicWhereExecutableSelectExpression, GroupByOrderByExecutableSelectExpression, OffsetExecutableSelectExpression, DynamicWhereExpressionWithoutSelect, SelectExpressionFromNoTable, SelectWhereJoinExpression, DynamicOnExpression, OnExpression, SelectExpressionWithoutJoin, SelectWhereExpression, OrderByExecutableSelectExpression, GroupByOrderByHavingExecutableSelectExpression, DynamicHavingExecutableSelectExpression, GroupByOrderHavingByExpressionWithoutSelect, DynamicHavingExpressionWithoutSelect, ICompoundableSelect, CompoundableCustomizableExecutableSelectExpression, CompoundedExecutableSelectExpression, ExecutableSelect, ComposeExpression, ComposeExpressionDeletingInternalProperty, ComposeExpressionDeletingExternalProperty, WithableExecutableSelect, SelectCustomization, WhereableExecutableSelectExpressionWithGroupBy, DynamicWhereExecutableSelectExpressionWithGroupBy, GroupByOrderByHavingExecutableSelectExpressionWithoutWhere, DynamicHavingExecutableSelectExpressionWithoutWhere, DynamicWhereSelectExpressionWithoutSelect, CompoundableExecutableSelectExpression, CompoundedOrderByExecutableSelectExpression, CompoundedOffsetExecutableSelectExpression, CompoundedCustomizableExecutableSelect, OrderByExecutableSelectExpressionWithoutWhere, OrderedExecutableSelectExpressionWithoutWhere, OffsetExecutableSelectExpressionWithoutWhere, CompoundableCustomizableExpressionWithoutWhere, DynamicWhereOffsetExecutableSelectExpression, DynamicWhereCompoundableCustomizableExecutableSelectExpression, ExecutableSelectWithWhere, ExecutableSelectWithoutWhere, WithableExecutableSelectWithoutWhere, CompoundableExecutableSelectExpressionWithoutWhere, CompoundableCustomizableExecutableSelectExpressionWitoutWhere, SplitedComposedExecutableSelectWithoutWhere, SplitedComposedDynamicWhereExecutableSelectExpression, WhereableCompoundableExecutableSelectExpressionWithoutWhere } from "../expressions/select";
import { HasAddWiths, ITableOrView, IWithView, OuterJoinSource } from "../utils/ITableOrView";

@@ -38,3 +38,3 @@ import type { BooleanValueSource, NumberValueSource, IntValueSource, ValueSource, IfValueSource, IIfValueSource, IBooleanValueSource, INumberValueSource, IIntValueSource, IExecutableSelectQuery } from "../expressions/values";

declare type SplitCompose = Compose | Split | GuidedSplit;
declare abstract class AbstractSelect implements ToSql, HasAddWiths, IExecutableSelectQuery<any, any, any>, CompoundableExecutableSelectExpression<any, any, any, any, any, any>, CompoundedExecutableSelectExpression<any, any, any, any, any, any>, OrderByExecutableSelectExpression<any, any, any, any, any, any>, OffsetExecutableSelectExpression<any, any, any, any>, CustomizableExecutableSelect<any, any, any, any>, WithableExecutableSelect<any, any, any, any>, ExecutableSelect<any, any, any, any>, ComposeExpression<any, any, any, any, any, any, any>, ComposeExpressionDeletingInternalProperty<any, any, any, any, any, any, any>, ComposeExpressionDeletingExternalProperty<any, any, any, any, any, any, any> {
declare abstract class AbstractSelect implements ToSql, HasAddWiths, IExecutableSelectQuery<any, any, any>, CompoundableCustomizableExecutableSelectExpression<any, any, any, any, any, any>, CompoundedExecutableSelectExpression<any, any, any, any, any, any>, WithableExecutableSelect<any, any, any, any>, ExecutableSelect<any, any, any, any>, ComposeExpression<any, any, any, any, any, any, any>, ComposeExpressionDeletingInternalProperty<any, any, any, any, any, any, any>, ComposeExpressionDeletingExternalProperty<any, any, any, any, any, any, any>, OrderByExecutableSelectExpression<any, any, any, any, any, any>, OffsetExecutableSelectExpression<any, any, any, any, any, any>, CompoundableCustomizableExecutableSelectExpression<any, any, any, any, any, any>, CompoundableExecutableSelectExpression<any, any, any, any, any, any>, CompoundedOrderByExecutableSelectExpression<any, any, any, any, any, any>, CompoundedOffsetExecutableSelectExpression<any, any, any, any>, CompoundedCustomizableExecutableSelect<any, any, any, any>, OrderByExecutableSelectExpressionWithoutWhere<any, any, any, any, any, any>, ExecutableSelectWithWhere<any, any, any, any>, ExecutableSelectWithoutWhere<any, any, any, any, any>, WithableExecutableSelectWithoutWhere<any, any, any, any, any>, CompoundableExecutableSelectExpressionWithoutWhere<any, any, any, any, any, any>, CompoundableCustomizableExecutableSelectExpressionWitoutWhere<any, any, any, any, any, any> {
[database]: any;

@@ -80,6 +80,6 @@ [requiredTableOrView]: any;

abstract __finishJoinHaving(): void;
orderBy(column: any, mode?: OrderByMode): this;
orderByFromString(orderBy: string): this;
limit(limit: int | number | INumberValueSource<any, any> | IIntValueSource<any, any>): this;
offset(offset: int | number | INumberValueSource<any, any> | IIntValueSource<any, any>): this;
orderBy(column: any, mode?: OrderByMode): any;
orderByFromString(orderBy: string): any;
limit(limit: int | number | INumberValueSource<any, any> | IIntValueSource<any, any>): any;
offset(offset: int | number | INumberValueSource<any, any> | IIntValueSource<any, any>): any;
__combineSubSelectUsing(select: ICompoundableSelect<any, any, any, any>, result: CompoundSelectQueryBuilder): void;

@@ -118,10 +118,10 @@ union(select: ICompoundableSelect<any, any, any, any>): any;

__buildRecursive(fn: (view: any) => ICompoundableSelect<any, any, any, any>, unionAll: boolean): void;
recursiveUnion(fn: (view: any) => ICompoundableSelect<any, any, any, any>): this;
recursiveUnionAll(fn: (view: any) => ICompoundableSelect<any, any, any, any>): this;
recursiveUnion(fn: (view: any) => ICompoundableSelect<any, any, any, any>): any;
recursiveUnionAll(fn: (view: any) => ICompoundableSelect<any, any, any, any>): any;
__buildRecursiveFn(fn: (view: any) => IBooleanValueSource<any, any>): (view: any) => ICompoundableSelect<any, any, any, any>;
recursiveUnionOn(fn: (view: any) => IBooleanValueSource<any, any>): this;
recursiveUnionAllOn(fn: (view: any) => IBooleanValueSource<any, any>): this;
customizeQuery(customization: SelectCustomization<any>): this;
recursiveUnionOn(fn: (view: any) => IBooleanValueSource<any, any>): any;
recursiveUnionAllOn(fn: (view: any) => IBooleanValueSource<any, any>): any;
customizeQuery(customization: SelectCustomization<any>): any;
}
export declare class SelectQueryBuilder extends AbstractSelect implements ToSql, PlainSelectData, SelectExpression<any, any, any>, SelectExpressionFromNoTable<any>, ExecutableSelectExpressionWithoutWhere<any, any, any, any, any, any>, DynamicWhereExecutableSelectExpression<any, any, any, any, any, any>, DynamicWhereExpressionWithoutSelect<any, any, any>, GroupByOrderByExecutableSelectExpression<any, any, any, any, any, any>, SelectWhereJoinExpression<any, any, any>, DynamicOnExpression<any, any, any>, OnExpression<any, any, any>, SelectExpressionWithoutJoin<any, any, any>, SelectExpressionSubquery<any, any>, SelectWhereExpression<any, any, any>, GroupByOrderByHavingExecutableSelectExpression<any, any, any, any, any, any>, DynamicHavingExecutableSelectExpression<any, any, any, any, any, any>, GroupByOrderHavingByExpressionWithoutSelect<any, any, any>, DynamicHavingExpressionWithoutSelect<any, any, any> {
export declare class SelectQueryBuilder extends AbstractSelect implements ToSql, PlainSelectData, SelectExpression<any, any, any>, SelectExpressionFromNoTable<any>, ExecutableSelectExpressionWithoutWhere<any, any, any, any, any, any>, DynamicWhereExecutableSelectExpression<any, any, any, any, any, any>, DynamicWhereExpressionWithoutSelect<any, any, any>, GroupByOrderByExecutableSelectExpression<any, any, any, any, any, any>, SelectWhereJoinExpression<any, any, any>, DynamicOnExpression<any, any, any>, OnExpression<any, any, any>, SelectExpressionWithoutJoin<any, any, any>, SelectExpressionSubquery<any, any>, SelectWhereExpression<any, any, any>, GroupByOrderByHavingExecutableSelectExpression<any, any, any, any, any, any>, DynamicHavingExecutableSelectExpression<any, any, any, any, any, any>, GroupByOrderHavingByExpressionWithoutSelect<any, any, any>, DynamicHavingExpressionWithoutSelect<any, any, any>, WhereableExecutableSelectExpressionWithGroupBy<any, any, any, any, any, any>, DynamicWhereExecutableSelectExpressionWithGroupBy<any, any, any, any, any, any>, GroupByOrderByHavingExecutableSelectExpressionWithoutWhere<any, any, any, any, any, any>, DynamicHavingExecutableSelectExpressionWithoutWhere<any, any, any, any, any, any>, DynamicWhereSelectExpressionWithoutSelect<any, any, any>, OrderedExecutableSelectExpressionWithoutWhere<any, any, any, any, any, any>, OffsetExecutableSelectExpressionWithoutWhere<any, any, any, any, any, any>, CompoundableCustomizableExpressionWithoutWhere<any, any, any, any, any, any>, DynamicWhereOffsetExecutableSelectExpression<any, any, any, any, any, any>, DynamicWhereCompoundableCustomizableExecutableSelectExpression<any, any, any, any, any, any>, SplitedComposedExecutableSelectWithoutWhere<any, any, any, any, any>, SplitedComposedDynamicWhereExecutableSelectExpression<any, any, any, any, any>, WhereableCompoundableExecutableSelectExpressionWithoutWhere<any, any, any, any, any, any>, DynamicWhereCompoundableCustomizableExecutableSelectExpression<any, any, any, any, any, any> {
__type: 'plain';

@@ -141,22 +141,22 @@ __distinct: boolean;

select(columns: SelectColumns<any, any>): any;
selectOneColumn(column: ValueSource<any, any>): this;
from(table: ITableOrView<any>): this;
join(table: ITableOrView<any>): this;
innerJoin(table: ITableOrView<any>): this;
leftJoin(source: OuterJoinSource<any, any>): this;
leftOuterJoin(source: OuterJoinSource<any, any>): this;
optionalJoin(table: ITableOrView<any>): this;
optionalInnerJoin(table: ITableOrView<any>): this;
optionalLeftJoin(source: OuterJoinSource<any, any>): this;
optionalLeftOuterJoin(source: OuterJoinSource<any, any>): this;
dynamicOn(): this;
on(condition: IBooleanValueSource<any, any> | IIfValueSource<any, any>): this;
selectOneColumn(column: ValueSource<any, any>): any;
from(table: ITableOrView<any>): any;
join(table: ITableOrView<any>): any;
innerJoin(table: ITableOrView<any>): any;
leftJoin(source: OuterJoinSource<any, any>): any;
leftOuterJoin(source: OuterJoinSource<any, any>): any;
optionalJoin(table: ITableOrView<any>): any;
optionalInnerJoin(table: ITableOrView<any>): any;
optionalLeftJoin(source: OuterJoinSource<any, any>): any;
optionalLeftOuterJoin(source: OuterJoinSource<any, any>): any;
dynamicOn(): any;
on(condition: IBooleanValueSource<any, any> | IIfValueSource<any, any>): any;
__finishJoinHaving(): void;
dynamicWhere(): this;
where(condition: IBooleanValueSource<any, any> | IIfValueSource<any, any>): this;
and(condition: IBooleanValueSource<any, any> | IIfValueSource<any, any>): this;
or(condition: IBooleanValueSource<any, any> | IIfValueSource<any, any>): this;
dynamicHaving(): this;
having(condition: IBooleanValueSource<any, any> | IIfValueSource<any, any>): this;
groupBy(...columns: Array<string | number | symbol | ValueSource<any, any>>): this;
dynamicWhere(): any;
where(condition: IBooleanValueSource<any, any> | IIfValueSource<any, any>): any;
and(condition: IBooleanValueSource<any, any> | IIfValueSource<any, any>): any;
or(condition: IBooleanValueSource<any, any> | IIfValueSource<any, any>): any;
dynamicHaving(): any;
having(condition: IBooleanValueSource<any, any> | IIfValueSource<any, any>): any;
groupBy(...columns: Array<string | number | symbol | ValueSource<any, any>>): any;
__asSelectData(): SelectData;

@@ -163,0 +163,0 @@ __generateRequiredTableOrView(): Set<ITableOrView<any>>;

@@ -1081,3 +1081,2 @@ "use strict";

}
this.__finishJoinHaving();
if (this.__where) {

@@ -1084,0 +1083,0 @@ this.__where = this.__where.and(condition);

@@ -111,3 +111,14 @@ "use strict";

_buildInsertDefaultValues(query, params) {
return 'insert into ' + this._appendTableOrViewName(query.__table, params) + ' () values ()';
this._ensureRootQuery(query, params);
const customization = query.__customization;
let insertQuery = 'insert ';
if (customization && customization.afterInsertKeyword) {
insertQuery += this._appendRawFragment(customization.afterInsertKeyword, params) + ' ';
}
insertQuery += 'into ' + this._appendTableOrViewName(query.__table, params) + ' () values ()';
if (customization && customization.afterQuery) {
insertQuery += ' ' + this._appendRawFragment(customization.afterQuery, params);
}
this._resetRootQuery(query, params);
return insertQuery;
}

@@ -114,0 +125,0 @@ _buildInsertOutput(_query, _params) {

@@ -30,2 +30,7 @@ import type { ToSql, SqlBuilder, DeleteData, InsertData, UpdateData, SelectData, SqlOperation, WithQueryData, CompoundOperator } from "./SqlBuilder";

_setContainsInsertReturningClause(params: any[], value: boolean | undefined): void;
_ensureRootQuery(query: SelectData | InsertData | UpdateData | DeleteData, params: any[]): void;
_isCurrentRootQuery(query: SelectData | InsertData | UpdateData | DeleteData, params: any[]): boolean;
_resetRootQuery(query: SelectData | InsertData | UpdateData | DeleteData, params: any[]): void;
_getRootQuery(params: any[]): object | undefined;
_setRootQuery(params: any[], value: object | undefined): void;
_isValue(value: any): boolean;

@@ -67,2 +72,5 @@ _isReservedKeyword(_word: string): boolean;

_appendCompoundOperator(compoundOperator: CompoundOperator, _params: any[]): string;
_buildSelectWithColumnsInfoForCompound(query: SelectData, params: any[], columnsForInsert: {
[name: string]: Column | undefined;
}): string;
_buildSelectWithColumnsInfo(query: SelectData, params: any[], columnsForInsert: {

@@ -69,0 +77,0 @@ [name: string]: Column | undefined;

@@ -1,2 +0,2 @@

import type { ToSql, InsertData, CompoundOperator } from "./SqlBuilder";
import type { ToSql, InsertData, CompoundOperator, SelectData } from "./SqlBuilder";
import { TypeAdapter } from "../TypeAdapter";

@@ -26,2 +26,6 @@ import { ValueSource } from "../expressions/values";

_appendCompoundOperator(compoundOperator: CompoundOperator, _params: any[]): string;
_buildSelectWithColumnsInfoForCompound(query: SelectData, params: any[], columnsForInsert: {
[name: string]: Column | undefined;
}): string;
_buildSelectOrderBy(query: SelectData, params: any[]): string;
_buildInsertMultiple(query: InsertData, params: any[]): string;

@@ -28,0 +32,0 @@ _buildInsertDefaultValues(query: InsertData, params: any[]): string;

@@ -130,2 +130,80 @@ "use strict";

}
_buildSelectWithColumnsInfoForCompound(query, params, columnsForInsert) {
const result = this._buildSelectWithColumnsInfo(query, params, columnsForInsert);
if (query.__limit !== undefined || query.__offset !== undefined || query.__orderBy !== undefined) {
return 'select * from (' + result + ')';
}
return result;
}
_buildSelectOrderBy(query, params) {
if (query.__type === 'plain') {
return super._buildSelectOrderBy(query, params);
}
const orderBy = query.__orderBy;
if (!orderBy) {
return '';
}
const columns = query.__columns;
const columnNames = Object.getOwnPropertyNames(columns);
let orderByColumns = '';
for (const property in orderBy) {
if (orderByColumns) {
orderByColumns += ', ';
}
const column = columns[property];
if (!column) {
throw new Error('Column ' + property + ' included in the order by not found in the select clause');
}
const columnAlias = columnNames.indexOf(property) + 1;
const order = orderBy[property];
if (!order) {
orderByColumns += columnAlias;
}
else
switch (order) {
case 'asc':
case 'desc':
case 'asc nulls first':
case 'asc nulls last':
case 'desc nulls first':
case 'desc nulls last':
orderByColumns += columnAlias + ' ' + order;
break;
case 'insensitive':
case 'asc insensitive':
case 'desc insensitive':
case 'asc nulls first insensitive':
case 'asc nulls last insensitive':
case 'desc nulls first insensitive':
case 'desc nulls last insensitive': {
let sqlOrder = order.substring(0, order.length - 12);
if (sqlOrder) {
sqlOrder = ' ' + sqlOrder;
}
const collation = this._connectionConfiguration.insesitiveCollation;
const columnType = values_2.__getValueSourcePrivate(column).__valueType;
if (columnType != 'string') {
// Ignore the insensitive term, it do nothing
orderByColumns += columnAlias + ' ' + sqlOrder;
}
else if (collation) {
orderByColumns += columnAlias + ' collate ' + collation + sqlOrder;
}
else if (collation === '') {
orderByColumns += columnAlias + sqlOrder;
}
else {
orderByColumns += 'lower(' + columnAlias + ')' + sqlOrder;
}
break;
}
default:
throw new Error('Invalid order by: ' + property + ' ' + order);
}
}
if (!orderByColumns) {
return '';
}
return ' order by ' + orderByColumns;
}
_buildInsertMultiple(query, params) {

@@ -139,2 +217,3 @@ const multiple = query.__multiple;

}
this._ensureRootQuery(query, params);
const table = query.__table;

@@ -239,2 +318,3 @@ const oldSafeTableOrView = this._getSafeTableOrView(params);

this._setSafeTableOrView(params, oldSafeTableOrView);
this._resetRootQuery(query, params);
if (returning) {

@@ -249,2 +329,3 @@ insertQuery += 'end;';

_buildInsertDefaultValues(query, params) {
this._ensureRootQuery(query, params);
const oldSafeTableOrView = this._getSafeTableOrView(params);

@@ -300,2 +381,3 @@ const table = query.__table;

this._setSafeTableOrView(params, oldSafeTableOrView);
this._resetRootQuery(query, params);
return insertQuery;

@@ -302,0 +384,0 @@ }

@@ -5,5 +5,9 @@ import type { ToSql, SelectData, InsertData } from "./SqlBuilder";

import { AbstractSqlBuilder } from "./AbstractSqlBuilder";
import { Column } from "../utils/Column";
export declare class SqliteSqlBuilder extends AbstractSqlBuilder {
sqlite: true;
_isReservedKeyword(word: string): boolean;
_buildSelectWithColumnsInfoForCompound(query: SelectData, params: any[], columnsForInsert: {
[name: string]: Column | undefined;
}): string;
_buildSelectOrderBy(query: SelectData, _params: any[]): string;

@@ -10,0 +14,0 @@ _escapeInsensitive(identifier: string, column: ValueSource<any, any>): string;

@@ -19,2 +19,9 @@ "use strict";

}
_buildSelectWithColumnsInfoForCompound(query, params, columnsForInsert) {
const result = this._buildSelectWithColumnsInfo(query, params, columnsForInsert);
if (query.__limit !== undefined || query.__offset !== undefined || query.__orderBy !== undefined) {
return 'select * from (' + result + ')';
}
return result;
}
_buildSelectOrderBy(query, _params) {

@@ -21,0 +28,0 @@ const orderBy = query.__orderBy;

@@ -24,2 +24,5 @@ import { ToSql, SelectData, InsertData } from "./SqlBuilder";

_appendSelectColumn(value: ValueSource<any, any>, params: any[], columnForInsert: Column | undefined): string;
_buildSelectWithColumnsInfoForCompound(query: SelectData, params: any[], columnsForInsert: {
[name: string]: Column | undefined;
}): string;
_buildSelectOrderBy(query: SelectData, _params: any[]): string;

@@ -26,0 +29,0 @@ _escapeInsensitive(identifier: string, column: ValueSource<any, any>): string;

@@ -110,2 +110,9 @@ "use strict";

}
_buildSelectWithColumnsInfoForCompound(query, params, columnsForInsert) {
const result = this._buildSelectWithColumnsInfo(query, params, columnsForInsert);
if (query.__limit !== undefined || query.__offset !== undefined || query.__orderBy !== undefined) {
return 'select * from (' + result + ') _t_' + this._generateUnique() + '_';
}
return result;
}
_buildSelectOrderBy(query, _params) {

@@ -222,2 +229,6 @@ // How to index it: http://www.sqlines.com/oracle/function_based_indexes

}
if (!result && query.__orderBy && !this._isCurrentRootQuery(query, params)) {
// subqueries with order by requires always an offset, this add a noop offset
result += ' offset 0 rows';
}
return result;

@@ -224,0 +235,0 @@ }

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc