@stamhoofd/sql 2.1.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/LICENSE +661 -0
  2. package/dist/index.d.ts +9 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +12 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/src/SQL.d.ts +56 -0
  7. package/dist/src/SQL.d.ts.map +1 -0
  8. package/dist/src/SQL.js +47 -0
  9. package/dist/src/SQL.js.map +1 -0
  10. package/dist/src/SQLExpression.d.ts +15 -0
  11. package/dist/src/SQLExpression.d.ts.map +1 -0
  12. package/dist/src/SQLExpression.js +23 -0
  13. package/dist/src/SQLExpression.js.map +1 -0
  14. package/dist/src/SQLExpressions.d.ts +88 -0
  15. package/dist/src/SQLExpressions.d.ts.map +1 -0
  16. package/dist/src/SQLExpressions.js +222 -0
  17. package/dist/src/SQLExpressions.js.map +1 -0
  18. package/dist/src/SQLJoin.d.ts +29 -0
  19. package/dist/src/SQLJoin.d.ts.map +1 -0
  20. package/dist/src/SQLJoin.js +40 -0
  21. package/dist/src/SQLJoin.js.map +1 -0
  22. package/dist/src/SQLJsonExpressions.d.ts +41 -0
  23. package/dist/src/SQLJsonExpressions.d.ts.map +1 -0
  24. package/dist/src/SQLJsonExpressions.js +95 -0
  25. package/dist/src/SQLJsonExpressions.js.map +1 -0
  26. package/dist/src/SQLOrderBy.d.ts +28 -0
  27. package/dist/src/SQLOrderBy.d.ts.map +1 -0
  28. package/dist/src/SQLOrderBy.js +50 -0
  29. package/dist/src/SQLOrderBy.js.map +1 -0
  30. package/dist/src/SQLSelect.d.ts +44 -0
  31. package/dist/src/SQLSelect.d.ts.map +1 -0
  32. package/dist/src/SQLSelect.js +124 -0
  33. package/dist/src/SQLSelect.js.map +1 -0
  34. package/dist/src/SQLWhere.d.ts +92 -0
  35. package/dist/src/SQLWhere.d.ts.map +1 -0
  36. package/dist/src/SQLWhere.js +269 -0
  37. package/dist/src/SQLWhere.js.map +1 -0
  38. package/dist/src/filters/SQLFilter.d.ts +17 -0
  39. package/dist/src/filters/SQLFilter.d.ts.map +1 -0
  40. package/dist/src/filters/SQLFilter.js +196 -0
  41. package/dist/src/filters/SQLFilter.js.map +1 -0
  42. package/dist/src/filters/SQLSorter.d.ts +9 -0
  43. package/dist/src/filters/SQLSorter.d.ts.map +1 -0
  44. package/dist/src/filters/SQLSorter.js +20 -0
  45. package/dist/src/filters/SQLSorter.js.map +1 -0
  46. package/package.json +5 -3
  47. package/src/SQLExpressions.ts +27 -0
  48. package/src/filters/SQLFilter.ts +9 -0
package/dist/index.js ADDED
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./src/SQL"), exports);
5
+ tslib_1.__exportStar(require("./src/SQLExpression"), exports);
6
+ tslib_1.__exportStar(require("./src/SQLExpressions"), exports);
7
+ tslib_1.__exportStar(require("./src/SQLWhere"), exports);
8
+ tslib_1.__exportStar(require("./src/SQLSelect"), exports);
9
+ tslib_1.__exportStar(require("./src/filters/SQLFilter"), exports);
10
+ tslib_1.__exportStar(require("./src/filters/SQLSorter"), exports);
11
+ tslib_1.__exportStar(require("./src/SQLOrderBy"), exports);
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,oDAAyB;AACzB,8DAAmC;AACnC,+DAAoC;AACpC,yDAA8B;AAC9B,0DAA+B;AAC/B,kEAAuC;AACvC,kEAAuC;AACvC,2DAAgC"}
@@ -0,0 +1,56 @@
1
+ import { SQLExpression } from "./SQLExpression";
2
+ import { SQLSelect } from "./SQLSelect";
3
+ import { SQLColumnExpression, SQLTableExpression, SQLWildcardSelectExpression } from "./SQLExpressions";
4
+ import { SQLJsonExtract } from "./SQLJsonExpressions";
5
+ declare class StaticSQL {
6
+ wildcard(namespace?: string): SQLWildcardSelectExpression;
7
+ column(namespace: string, column: string): SQLColumnExpression;
8
+ column(column: string): SQLColumnExpression;
9
+ jsonValue(column: SQLExpression, path: string): SQLJsonExtract;
10
+ table(namespace: string, table: string): SQLTableExpression;
11
+ table(table: string): SQLTableExpression;
12
+ select(...columns: SQLExpression[]): InstanceType<typeof SQLSelect>;
13
+ leftJoin(table: SQLExpression): {
14
+ parseWhere(...[whereOrColumn, signOrValue, value]: import("./SQLWhere").ParseWhereArguments): import("./SQLWhere").SQLWhere;
15
+ where<T>(this: T, ...args: import("./SQLWhere").ParseWhereArguments): T;
16
+ andWhere(...args: import("./SQLWhere").ParseWhereArguments): any;
17
+ orWhere(...args: import("./SQLWhere").ParseWhereArguments): any;
18
+ whereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
19
+ andWhereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
20
+ orWhereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
21
+ _where: import("./SQLWhere").SQLWhere | null;
22
+ } & import("./SQLJoin").JoinBase;
23
+ rightJoin(table: SQLExpression): {
24
+ parseWhere(...[whereOrColumn, signOrValue, value]: import("./SQLWhere").ParseWhereArguments): import("./SQLWhere").SQLWhere;
25
+ where<T>(this: T, ...args: import("./SQLWhere").ParseWhereArguments): T;
26
+ andWhere(...args: import("./SQLWhere").ParseWhereArguments): any;
27
+ orWhere(...args: import("./SQLWhere").ParseWhereArguments): any;
28
+ whereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
29
+ andWhereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
30
+ orWhereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
31
+ _where: import("./SQLWhere").SQLWhere | null;
32
+ } & import("./SQLJoin").JoinBase;
33
+ innerJoin(table: SQLExpression): {
34
+ parseWhere(...[whereOrColumn, signOrValue, value]: import("./SQLWhere").ParseWhereArguments): import("./SQLWhere").SQLWhere;
35
+ where<T>(this: T, ...args: import("./SQLWhere").ParseWhereArguments): T;
36
+ andWhere(...args: import("./SQLWhere").ParseWhereArguments): any;
37
+ orWhere(...args: import("./SQLWhere").ParseWhereArguments): any;
38
+ whereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
39
+ andWhereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
40
+ orWhereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
41
+ _where: import("./SQLWhere").SQLWhere | null;
42
+ } & import("./SQLJoin").JoinBase;
43
+ join(table: SQLExpression): {
44
+ parseWhere(...[whereOrColumn, signOrValue, value]: import("./SQLWhere").ParseWhereArguments): import("./SQLWhere").SQLWhere;
45
+ where<T>(this: T, ...args: import("./SQLWhere").ParseWhereArguments): T;
46
+ andWhere(...args: import("./SQLWhere").ParseWhereArguments): any;
47
+ orWhere(...args: import("./SQLWhere").ParseWhereArguments): any;
48
+ whereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
49
+ andWhereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
50
+ orWhereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
51
+ _where: import("./SQLWhere").SQLWhere | null;
52
+ } & import("./SQLJoin").JoinBase;
53
+ }
54
+ export declare const SQL: StaticSQL;
55
+ export {};
56
+ //# sourceMappingURL=SQL.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQL.d.ts","sourceRoot":"","sources":["../../src/SQL.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAgB,kBAAkB,EAAE,2BAA2B,EAAyB,MAAM,kBAAkB,CAAC;AAE7I,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,cAAM,SAAS;IACX,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM;IAI3B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB;IAC9D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB;IAQ3C,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc;IAI9D,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAC3D,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAQxC,MAAM,CAAC,GAAG,OAAO,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC;IAOnE,QAAQ,CAAC,KAAK,EAAE,aAAa;;;;;;;;;;IAI7B,SAAS,CAAC,KAAK,EAAE,aAAa;;;;;;;;;;IAI9B,SAAS,CAAC,KAAK,EAAE,aAAa;;;;;;;;;;IAI9B,IAAI,CAAC,KAAK,EAAE,aAAa;;;;;;;;;;CAG5B;AAED,eAAO,MAAM,GAAG,WAAkB,CAAC"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SQL = void 0;
4
+ const SQLSelect_1 = require("./SQLSelect");
5
+ const SQLExpressions_1 = require("./SQLExpressions");
6
+ const SQLJoin_1 = require("./SQLJoin");
7
+ const SQLJsonExpressions_1 = require("./SQLJsonExpressions");
8
+ class StaticSQL {
9
+ wildcard(namespace) {
10
+ return new SQLExpressions_1.SQLWildcardSelectExpression(namespace);
11
+ }
12
+ column(namespaceOrColumn, column) {
13
+ if (column === undefined) {
14
+ return new SQLExpressions_1.SQLColumnExpression(namespaceOrColumn);
15
+ }
16
+ return new SQLExpressions_1.SQLColumnExpression(namespaceOrColumn, column);
17
+ }
18
+ jsonValue(column, path) {
19
+ return new SQLJsonExpressions_1.SQLJsonExtract(column, new SQLExpressions_1.SQLSafeValue(path));
20
+ }
21
+ table(namespaceOrTable, table) {
22
+ if (table === undefined) {
23
+ return new SQLExpressions_1.SQLTableExpression(namespaceOrTable);
24
+ }
25
+ return new SQLExpressions_1.SQLTableExpression(namespaceOrTable, table);
26
+ }
27
+ select(...columns) {
28
+ if (columns.length === 0) {
29
+ return new SQLSelect_1.SQLSelect(this.wildcard());
30
+ }
31
+ return new SQLSelect_1.SQLSelect(...columns);
32
+ }
33
+ leftJoin(table) {
34
+ return new SQLJoin_1.SQLJoin(SQLJoin_1.SQLJoinType.Left, table);
35
+ }
36
+ rightJoin(table) {
37
+ return new SQLJoin_1.SQLJoin(SQLJoin_1.SQLJoinType.Right, table);
38
+ }
39
+ innerJoin(table) {
40
+ return new SQLJoin_1.SQLJoin(SQLJoin_1.SQLJoinType.Inner, table);
41
+ }
42
+ join(table) {
43
+ return new SQLJoin_1.SQLJoin(SQLJoin_1.SQLJoinType.Inner, table);
44
+ }
45
+ }
46
+ exports.SQL = new StaticSQL();
47
+ //# sourceMappingURL=SQL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQL.js","sourceRoot":"","sources":["../../src/SQL.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AACxC,qDAA6I;AAC7I,uCAAiD;AACjD,6DAAsD;AAEtD,MAAM,SAAS;IACX,QAAQ,CAAC,SAAkB;QACvB,OAAO,IAAI,4CAA2B,CAAC,SAAS,CAAC,CAAA;IACrD,CAAC;IAID,MAAM,CAAC,iBAAyB,EAAE,MAAe;QAC7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,IAAI,oCAAmB,CAAC,iBAAiB,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,IAAI,oCAAmB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;IAC7D,CAAC;IAED,SAAS,CAAC,MAAqB,EAAE,IAAY;QACzC,OAAO,IAAI,mCAAc,CAAC,MAAM,EAAE,IAAI,6BAAY,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7D,CAAC;IAID,KAAK,CAAC,gBAAwB,EAAE,KAAc;QAC1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,IAAI,mCAAkB,CAAC,gBAAgB,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,IAAI,mCAAkB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,CAAC,GAAG,OAAwB;QAC9B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,qBAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QACzC,CAAC;QACD,OAAO,IAAI,qBAAS,CAAC,GAAG,OAAO,CAAC,CAAA;IACpC,CAAC;IAED,QAAQ,CAAC,KAAoB;QACzB,OAAO,IAAI,iBAAO,CAAC,qBAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC/C,CAAC;IAED,SAAS,CAAC,KAAoB;QAC1B,OAAO,IAAI,iBAAO,CAAC,qBAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;IAED,SAAS,CAAC,KAAoB;QAC1B,OAAO,IAAI,iBAAO,CAAC,qBAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;IAED,IAAI,CAAC,KAAoB;QACrB,OAAO,IAAI,iBAAO,CAAC,qBAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;CACJ;AAEY,QAAA,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ export type SQLExpressionOptions = {
2
+ defaultNamespace?: string;
3
+ };
4
+ export type NormalizedSQLQuery = {
5
+ query: string;
6
+ params: any[];
7
+ };
8
+ export type SQLQuery = NormalizedSQLQuery | string;
9
+ export declare function joinSQLQuery(queries: (SQLQuery | undefined | null)[], seperator?: string): NormalizedSQLQuery;
10
+ export declare function normalizeSQLQuery(q: SQLQuery): NormalizedSQLQuery;
11
+ export interface SQLExpression {
12
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
13
+ }
14
+ export declare function isSQLExpression(obj: unknown): obj is SQLExpression;
15
+ //# sourceMappingURL=SQLExpression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLExpression.d.ts","sourceRoot":"","sources":["../../src/SQLExpression.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,GAAG,EAAE,CAAA;CAAC,CAAA;AAC/D,MAAM,MAAM,QAAQ,GAAG,kBAAkB,GAAC,MAAM,CAAA;AAEhD,wBAAgB,YAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,GAAC,SAAS,GAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAMzG;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,GAAG,kBAAkB,CAKjE;AAGD,MAAM,WAAW,aAAa;IAC1B,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ,CAAA;CACnD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,aAAa,CAElE"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSQLExpression = exports.normalizeSQLQuery = exports.joinSQLQuery = void 0;
4
+ function joinSQLQuery(queries, seperator) {
5
+ queries = queries.filter(q => q !== undefined && q !== null);
6
+ return {
7
+ query: queries.map(q => typeof q === 'string' ? q : q.query).join(seperator !== null && seperator !== void 0 ? seperator : ''),
8
+ params: queries.flatMap(q => typeof q === 'string' ? [] : q.params)
9
+ };
10
+ }
11
+ exports.joinSQLQuery = joinSQLQuery;
12
+ function normalizeSQLQuery(q) {
13
+ return {
14
+ query: typeof q === 'string' ? q : q.query,
15
+ params: typeof q === 'string' ? [] : q.params
16
+ };
17
+ }
18
+ exports.normalizeSQLQuery = normalizeSQLQuery;
19
+ function isSQLExpression(obj) {
20
+ return typeof obj === 'object' && obj !== null && !!obj.getSQL && typeof obj.getSQL === 'function';
21
+ }
22
+ exports.isSQLExpression = isSQLExpression;
23
+ //# sourceMappingURL=SQLExpression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLExpression.js","sourceRoot":"","sources":["../../src/SQLExpression.ts"],"names":[],"mappings":";;;AAOA,SAAgB,YAAY,CAAC,OAAoC,EAAE,SAAkB;IACjF,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;IAC5D,OAAO;QACH,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC;QACnF,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC;KACvE,CAAA;AACL,CAAC;AAND,oCAMC;AAED,SAAgB,iBAAiB,CAAC,CAAW;IACzC,OAAO;QACH,KAAK,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;QAC1C,MAAM,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;KAChD,CAAA;AACL,CAAC;AALD,8CAKC;AAOD,SAAgB,eAAe,CAAC,GAAY;IACxC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,CAAE,GAAW,CAAC,MAAM,IAAI,OAAQ,GAAW,CAAC,MAAM,KAAK,UAAU,CAAA;AACxH,CAAC;AAFD,0CAEC"}
@@ -0,0 +1,88 @@
1
+ import { SQLExpression, SQLExpressionOptions, SQLQuery } from "./SQLExpression";
2
+ export type SQLScalarValue = string | number | boolean | Date;
3
+ export type SQLDynamicExpression = SQLScalarValue | SQLScalarValue[] | null | SQLExpression;
4
+ export declare function scalarToSQLJSONExpression(s: SQLScalarValue | null): SQLExpression;
5
+ export declare function scalarToSQLExpression(s: SQLScalarValue | null): SQLExpression;
6
+ export declare function readDynamicSQLExpression(s: SQLDynamicExpression): SQLExpression;
7
+ export declare class SQLDistinct implements SQLExpression {
8
+ expression: SQLExpression;
9
+ constructor(expression: SQLExpression);
10
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
11
+ }
12
+ export declare class SQLCount implements SQLExpression {
13
+ expression: SQLExpression | null;
14
+ constructor(expression?: SQLExpression | null);
15
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
16
+ }
17
+ export declare class SQLSum implements SQLExpression {
18
+ expression: SQLExpression;
19
+ constructor(expression: SQLExpression);
20
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
21
+ }
22
+ export declare class SQLSelectAs implements SQLExpression {
23
+ expression: SQLExpression;
24
+ as: SQLAlias;
25
+ constructor(expression: SQLExpression, as: SQLAlias);
26
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
27
+ }
28
+ export declare class SQLAlias implements SQLExpression {
29
+ name: string;
30
+ constructor(name: string);
31
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
32
+ }
33
+ export declare class SQLConcat implements SQLExpression {
34
+ expressions: SQLExpression[];
35
+ constructor(...expressions: SQLExpression[]);
36
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
37
+ }
38
+ export declare class SQLAge implements SQLExpression {
39
+ expression: SQLExpression;
40
+ constructor(expression: SQLExpression);
41
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
42
+ }
43
+ export declare class SQLJSONValue implements SQLExpression {
44
+ value: null | true | false;
45
+ constructor(value: null | true | false);
46
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
47
+ }
48
+ export declare class SQLNull implements SQLExpression {
49
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
50
+ }
51
+ export declare class SQLNow implements SQLExpression {
52
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
53
+ }
54
+ export declare class SQLScalar implements SQLExpression {
55
+ value: SQLScalarValue;
56
+ constructor(value: SQLScalarValue);
57
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
58
+ }
59
+ export declare class SQLSafeValue implements SQLExpression {
60
+ value: string | number;
61
+ constructor(value: string | number);
62
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
63
+ }
64
+ export declare class SQLArray implements SQLExpression {
65
+ value: SQLScalarValue[];
66
+ constructor(value: SQLScalarValue[]);
67
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
68
+ }
69
+ export declare class SQLWildcardSelectExpression implements SQLExpression {
70
+ namespace?: string;
71
+ constructor(namespace?: string);
72
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
73
+ }
74
+ export declare class SQLColumnExpression implements SQLExpression {
75
+ namespace?: string;
76
+ column: string;
77
+ constructor(namespace: string, column: string);
78
+ constructor(column: string);
79
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
80
+ }
81
+ export declare class SQLTableExpression implements SQLExpression {
82
+ namespace?: string;
83
+ table: string;
84
+ constructor(namespace: string, table: string);
85
+ constructor(table: string);
86
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
87
+ }
88
+ //# sourceMappingURL=SQLExpressions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLExpressions.d.ts","sourceRoot":"","sources":["../../src/SQLExpressions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SQLTableExpression = exports.SQLColumnExpression = exports.SQLWildcardSelectExpression = exports.SQLArray = exports.SQLSafeValue = exports.SQLScalar = exports.SQLNow = exports.SQLNull = exports.SQLJSONValue = exports.SQLAge = exports.SQLConcat = exports.SQLAlias = exports.SQLSelectAs = exports.SQLSum = exports.SQLCount = exports.SQLDistinct = exports.readDynamicSQLExpression = exports.scalarToSQLExpression = exports.scalarToSQLJSONExpression = void 0;
4
+ const SQLExpression_1 = require("./SQLExpression");
5
+ const simple_database_1 = require("@simonbackx/simple-database");
6
+ function scalarToSQLJSONExpression(s) {
7
+ if (s === null) {
8
+ return new SQLJSONValue(null);
9
+ }
10
+ if (s === true) {
11
+ return new SQLJSONValue(true);
12
+ }
13
+ if (s === false) {
14
+ return new SQLJSONValue(false);
15
+ }
16
+ return new SQLScalar(s);
17
+ }
18
+ exports.scalarToSQLJSONExpression = scalarToSQLJSONExpression;
19
+ function scalarToSQLExpression(s) {
20
+ if (s === null) {
21
+ return new SQLNull();
22
+ }
23
+ return new SQLScalar(s);
24
+ }
25
+ exports.scalarToSQLExpression = scalarToSQLExpression;
26
+ function readDynamicSQLExpression(s) {
27
+ if (Array.isArray(s)) {
28
+ return new SQLArray(s);
29
+ }
30
+ if (s === null) {
31
+ return new SQLNull();
32
+ }
33
+ if (typeof s === 'object' && !(s instanceof Date)) {
34
+ return s;
35
+ }
36
+ return new SQLScalar(s);
37
+ }
38
+ exports.readDynamicSQLExpression = readDynamicSQLExpression;
39
+ class SQLDistinct {
40
+ constructor(expression) {
41
+ this.expression = expression;
42
+ }
43
+ getSQL(options) {
44
+ return (0, SQLExpression_1.joinSQLQuery)([
45
+ 'DISTINCT',
46
+ this.expression.getSQL(options),
47
+ ]);
48
+ }
49
+ }
50
+ exports.SQLDistinct = SQLDistinct;
51
+ class SQLCount {
52
+ constructor(expression = null) {
53
+ this.expression = expression;
54
+ }
55
+ getSQL(options) {
56
+ return (0, SQLExpression_1.joinSQLQuery)([
57
+ 'COUNT(',
58
+ this.expression ? this.expression.getSQL(options) : '*',
59
+ ')'
60
+ ]);
61
+ }
62
+ }
63
+ exports.SQLCount = SQLCount;
64
+ class SQLSum {
65
+ constructor(expression) {
66
+ this.expression = expression;
67
+ }
68
+ getSQL(options) {
69
+ return (0, SQLExpression_1.joinSQLQuery)([
70
+ 'SUM(',
71
+ this.expression.getSQL(options),
72
+ ')'
73
+ ]);
74
+ }
75
+ }
76
+ exports.SQLSum = SQLSum;
77
+ class SQLSelectAs {
78
+ constructor(expression, as) {
79
+ this.expression = expression;
80
+ this.as = as;
81
+ }
82
+ getSQL(options) {
83
+ return (0, SQLExpression_1.joinSQLQuery)([
84
+ this.expression.getSQL(options),
85
+ ' AS ',
86
+ this.as.getSQL(options)
87
+ ]);
88
+ }
89
+ }
90
+ exports.SQLSelectAs = SQLSelectAs;
91
+ class SQLAlias {
92
+ constructor(name) {
93
+ this.name = name;
94
+ }
95
+ getSQL(options) {
96
+ return simple_database_1.Database.escapeId(this.name);
97
+ }
98
+ }
99
+ exports.SQLAlias = SQLAlias;
100
+ class SQLConcat {
101
+ constructor(...expressions) {
102
+ this.expressions = expressions;
103
+ }
104
+ getSQL(options) {
105
+ return (0, SQLExpression_1.joinSQLQuery)([
106
+ 'CONCAT(',
107
+ (0, SQLExpression_1.joinSQLQuery)(this.expressions.map(e => e.getSQL(options)), ', '),
108
+ ')'
109
+ ]);
110
+ }
111
+ }
112
+ exports.SQLConcat = SQLConcat;
113
+ class SQLAge {
114
+ constructor(expression) {
115
+ this.expression = expression;
116
+ }
117
+ getSQL(options) {
118
+ return (0, SQLExpression_1.joinSQLQuery)([
119
+ 'TIMESTAMPDIFF(YEAR, ',
120
+ this.expression.getSQL(options),
121
+ ', CURDATE())'
122
+ ]);
123
+ }
124
+ }
125
+ exports.SQLAge = SQLAge;
126
+ class SQLJSONValue {
127
+ constructor(value) {
128
+ this.value = value;
129
+ }
130
+ getSQL(options) {
131
+ return "CAST('" + JSON.stringify(this.value) + "' AS JSON)";
132
+ }
133
+ }
134
+ exports.SQLJSONValue = SQLJSONValue;
135
+ class SQLNull {
136
+ getSQL(options) {
137
+ return 'NULL';
138
+ }
139
+ }
140
+ exports.SQLNull = SQLNull;
141
+ class SQLNow {
142
+ getSQL(options) {
143
+ return 'NOW()';
144
+ }
145
+ }
146
+ exports.SQLNow = SQLNow;
147
+ class SQLScalar {
148
+ constructor(value) {
149
+ this.value = value;
150
+ }
151
+ getSQL(options) {
152
+ return {
153
+ query: '?',
154
+ params: [this.value]
155
+ };
156
+ }
157
+ }
158
+ exports.SQLScalar = SQLScalar;
159
+ class SQLSafeValue {
160
+ constructor(value) {
161
+ this.value = value;
162
+ }
163
+ getSQL(options) {
164
+ return JSON.stringify(this.value);
165
+ }
166
+ }
167
+ exports.SQLSafeValue = SQLSafeValue;
168
+ class SQLArray {
169
+ constructor(value) {
170
+ this.value = value;
171
+ }
172
+ getSQL(options) {
173
+ return {
174
+ query: '(?)',
175
+ params: [this.value]
176
+ };
177
+ }
178
+ }
179
+ exports.SQLArray = SQLArray;
180
+ class SQLWildcardSelectExpression {
181
+ constructor(namespace) {
182
+ this.namespace = namespace;
183
+ }
184
+ getSQL(options) {
185
+ var _a, _b;
186
+ return simple_database_1.Database.escapeId((_b = (_a = this.namespace) !== null && _a !== void 0 ? _a : options === null || options === void 0 ? void 0 : options.defaultNamespace) !== null && _b !== void 0 ? _b : '') + '.*';
187
+ }
188
+ }
189
+ exports.SQLWildcardSelectExpression = SQLWildcardSelectExpression;
190
+ class SQLColumnExpression {
191
+ constructor(namespaceOrColumn, column) {
192
+ if (column === undefined) {
193
+ this.column = namespaceOrColumn;
194
+ return;
195
+ }
196
+ this.namespace = namespaceOrColumn;
197
+ this.column = column;
198
+ }
199
+ getSQL(options) {
200
+ var _a, _b;
201
+ return simple_database_1.Database.escapeId((_b = (_a = this.namespace) !== null && _a !== void 0 ? _a : options === null || options === void 0 ? void 0 : options.defaultNamespace) !== null && _b !== void 0 ? _b : '') + '.' + simple_database_1.Database.escapeId(this.column);
202
+ }
203
+ }
204
+ exports.SQLColumnExpression = SQLColumnExpression;
205
+ class SQLTableExpression {
206
+ constructor(namespaceOrTable, table) {
207
+ if (table === undefined) {
208
+ this.table = namespaceOrTable;
209
+ return;
210
+ }
211
+ this.namespace = namespaceOrTable;
212
+ this.table = table;
213
+ }
214
+ getSQL(options) {
215
+ if (!this.namespace) {
216
+ return simple_database_1.Database.escapeId(this.table);
217
+ }
218
+ return simple_database_1.Database.escapeId(this.table) + ' ' + simple_database_1.Database.escapeId(this.namespace);
219
+ }
220
+ }
221
+ exports.SQLTableExpression = SQLTableExpression;
222
+ //# sourceMappingURL=SQLExpressions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLExpressions.js","sourceRoot":"","sources":["../../src/SQLExpressions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { SQLExpression, SQLExpressionOptions, SQLQuery } from "./SQLExpression";
2
+ import { SQLWhere } from "./SQLWhere";
3
+ export declare enum SQLJoinType {
4
+ Left = "Left",
5
+ Right = "Right",
6
+ Inner = "Inner",
7
+ Outer = "Outer"
8
+ }
9
+ export declare class JoinBase implements SQLExpression {
10
+ type: SQLJoinType;
11
+ table: SQLExpression;
12
+ _where: SQLWhere | null;
13
+ constructor(type: SQLJoinType, table: SQLExpression);
14
+ private getJoinPrefix;
15
+ getSQL(options?: SQLExpressionOptions | undefined): SQLQuery;
16
+ }
17
+ export declare const SQLJoin: {
18
+ new (...args: any[]): {
19
+ parseWhere(...[whereOrColumn, signOrValue, value]: import("./SQLWhere").ParseWhereArguments): SQLWhere;
20
+ where<T>(this: T, ...args: import("./SQLWhere").ParseWhereArguments): T;
21
+ andWhere(...args: import("./SQLWhere").ParseWhereArguments): any;
22
+ orWhere(...args: import("./SQLWhere").ParseWhereArguments): any;
23
+ whereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
24
+ andWhereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
25
+ orWhereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
26
+ _where: SQLWhere | null;
27
+ };
28
+ } & typeof JoinBase;
29
+ //# sourceMappingURL=SQLJoin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLJoin.d.ts","sourceRoot":"","sources":["../../src/SQLJoin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAgB,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAC;AAEvD,oBAAY,WAAW;IACnB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,UAAU;CAClB;AAED,qBAAa,QAAS,YAAW,aAAa;IAC1C,IAAI,cAAmB;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,QAAQ,GAAC,IAAI,CAAQ;gBAEjB,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa;IAKnD,OAAO,CAAC,aAAa;IASrB,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,GAAG,QAAQ;CAQ/D;AAED,eAAO,MAAM,OAAO;;;;;;;;;;;mBAA4B,CAAA"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SQLJoin = exports.JoinBase = exports.SQLJoinType = void 0;
4
+ const SQLExpression_1 = require("./SQLExpression");
5
+ const SQLWhere_1 = require("./SQLWhere");
6
+ var SQLJoinType;
7
+ (function (SQLJoinType) {
8
+ SQLJoinType["Left"] = "Left";
9
+ SQLJoinType["Right"] = "Right";
10
+ SQLJoinType["Inner"] = "Inner";
11
+ SQLJoinType["Outer"] = "Outer";
12
+ })(SQLJoinType || (exports.SQLJoinType = SQLJoinType = {}));
13
+ class JoinBase {
14
+ constructor(type, table) {
15
+ this.type = SQLJoinType.Left;
16
+ this._where = null;
17
+ this.type = type;
18
+ this.table = table;
19
+ }
20
+ getJoinPrefix() {
21
+ switch (this.type) {
22
+ case SQLJoinType.Left: return 'LEFT JOIN';
23
+ case SQLJoinType.Right: return 'RIGHT JOIN';
24
+ case SQLJoinType.Inner: return 'JOIN';
25
+ case SQLJoinType.Outer: return 'OUTER JOIN';
26
+ }
27
+ }
28
+ getSQL(options) {
29
+ var _a, _b;
30
+ return (0, SQLExpression_1.joinSQLQuery)([
31
+ this.getJoinPrefix(),
32
+ (_a = this.table) === null || _a === void 0 ? void 0 : _a.getSQL(),
33
+ this._where ? 'ON' : undefined,
34
+ (_b = this._where) === null || _b === void 0 ? void 0 : _b.getSQL()
35
+ ], ' ');
36
+ }
37
+ }
38
+ exports.JoinBase = JoinBase;
39
+ exports.SQLJoin = (0, SQLWhere_1.addWhereHelpers)(JoinBase);
40
+ //# sourceMappingURL=SQLJoin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLJoin.js","sourceRoot":"","sources":["../../src/SQLJoin.ts"],"names":[],"mappings":";;;AAAA,mDAA8F;AAC9F,yCAAuD;AAEvD,IAAY,WAKX;AALD,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,8BAAe,CAAA;IACf,8BAAe,CAAA;AACnB,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAED,MAAa,QAAQ;IAKjB,YAAY,IAAiB,EAAE,KAAoB;QAJnD,SAAI,GAAG,WAAW,CAAC,IAAI,CAAA;QAEvB,WAAM,GAAkB,IAAI,CAAC;QAGzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEO,aAAa;QACjB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,WAAW,CAAC;YAC1C,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,YAAY,CAAC;YAC5C,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,MAAM,CAAC;YACtC,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,YAAY,CAAC;QAChD,CAAC;IACL,CAAC;IAED,MAAM,CAAC,OAA0C;;QAC7C,OAAO,IAAA,4BAAY,EAAC;YAChB,IAAI,CAAC,aAAa,EAAE;YACpB,MAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,EAAE;YACpB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC9B,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,EAAE;SACxB,EAAE,GAAG,CAAC,CAAA;IACX,CAAC;CACJ;AA3BD,4BA2BC;AAEY,QAAA,OAAO,GAAG,IAAA,0BAAe,EAAC,QAAQ,CAAC,CAAA"}
@@ -0,0 +1,41 @@
1
+ import { SQLExpression, SQLExpressionOptions, SQLQuery } from "./SQLExpression";
2
+ /**
3
+ * Same as target->path, JSON_EXTRACT(target, path)
4
+ */
5
+ export declare class SQLJsonExtract implements SQLExpression {
6
+ target: SQLExpression;
7
+ path: SQLExpression;
8
+ constructor(target: SQLExpression, path: SQLExpression);
9
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
10
+ }
11
+ /**
12
+ * JSON_SEARCH(json_doc, one_or_all, search_str[, escape_char[, path] ...])
13
+ */
14
+ export declare class SQLJsonSearch implements SQLExpression {
15
+ target: SQLExpression;
16
+ oneOrAll: 'one' | 'all';
17
+ searchStr: SQLExpression;
18
+ path: SQLExpression | null;
19
+ constructor(target: SQLExpression, oneOrAll: 'one' | 'all', searchStr: SQLExpression, path?: SQLExpression | null);
20
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
21
+ }
22
+ /**
23
+ * JSON_CONTAINS(target, candidate[, path])
24
+ */
25
+ export declare class SQLJsonContains implements SQLExpression {
26
+ target: SQLExpression;
27
+ candidate: SQLExpression;
28
+ path: SQLExpression | null;
29
+ constructor(target: SQLExpression, candidate: SQLExpression, path?: SQLExpression | null);
30
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
31
+ }
32
+ /**
33
+ * JSON_CONTAINS(json_doc1, json_doc2)
34
+ */
35
+ export declare class SQLJsonOverlaps implements SQLExpression {
36
+ jsonDoc1: SQLExpression;
37
+ jsonDoc2: SQLExpression;
38
+ constructor(jsonDoc1: SQLExpression, jsonDoc2: SQLExpression);
39
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
40
+ }
41
+ //# sourceMappingURL=SQLJsonExpressions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLJsonExpressions.d.ts","sourceRoot":"","sources":["../../src/SQLJsonExpressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAgB,MAAM,iBAAiB,CAAC;AAG9F;;GAEG;AACH,qBAAa,cAAe,YAAW,aAAa;IAChD,MAAM,EAAE,aAAa,CAAA;IACrB,IAAI,EAAE,aAAa,CAAA;gBAEP,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa;IAKtD,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CASnD;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,aAAa;IAC/C,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,KAAK,GAAC,KAAK,CAAA;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,IAAI,EAAE,aAAa,GAAC,IAAI,CAAC;gBAEb,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,GAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,GAAE,aAAa,GAAC,IAAW;IAOnH,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAenD;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,aAAa;IACjD,MAAM,EAAE,aAAa,CAAA;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,IAAI,EAAE,aAAa,GAAC,IAAI,CAAC;gBAEb,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,GAAE,aAAa,GAAC,IAAW;IAM5F,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAanD;AAGD;;GAEG;AACH,qBAAa,eAAgB,YAAW,aAAa;IACjD,QAAQ,EAAE,aAAa,CAAA;IACvB,QAAQ,EAAE,aAAa,CAAC;gBAEZ,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa;IAK5D,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CASnD"}