@grest-ts/sql 0.0.5

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 (146) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +498 -0
  3. package/dist/src/MysqlTable.d.ts +35 -0
  4. package/dist/src/MysqlTable.d.ts.map +1 -0
  5. package/dist/src/MysqlTable.js +70 -0
  6. package/dist/src/MysqlTable.js.map +1 -0
  7. package/dist/src/MysqlTableStructureParser.d.ts +106 -0
  8. package/dist/src/MysqlTableStructureParser.d.ts.map +1 -0
  9. package/dist/src/MysqlTableStructureParser.js +189 -0
  10. package/dist/src/MysqlTableStructureParser.js.map +1 -0
  11. package/dist/src/SQL.d.ts +72 -0
  12. package/dist/src/SQL.d.ts.map +1 -0
  13. package/dist/src/SQL.js +94 -0
  14. package/dist/src/SQL.js.map +1 -0
  15. package/dist/src/SqlExpression.d.ts +49 -0
  16. package/dist/src/SqlExpression.d.ts.map +1 -0
  17. package/dist/src/SqlExpression.js +117 -0
  18. package/dist/src/SqlExpression.js.map +1 -0
  19. package/dist/src/SqlFunctions.d.ts +118 -0
  20. package/dist/src/SqlFunctions.d.ts.map +1 -0
  21. package/dist/src/SqlFunctions.js +331 -0
  22. package/dist/src/SqlFunctions.js.map +1 -0
  23. package/dist/src/Symbols.d.ts +11 -0
  24. package/dist/src/Symbols.d.ts.map +1 -0
  25. package/dist/src/Symbols.js +11 -0
  26. package/dist/src/Symbols.js.map +1 -0
  27. package/dist/src/Types.d.ts +110 -0
  28. package/dist/src/Types.d.ts.map +1 -0
  29. package/dist/src/Types.js +34 -0
  30. package/dist/src/Types.js.map +1 -0
  31. package/dist/src/delete/DeleteBuilder.d.ts +19 -0
  32. package/dist/src/delete/DeleteBuilder.d.ts.map +1 -0
  33. package/dist/src/delete/DeleteBuilder.js +50 -0
  34. package/dist/src/delete/DeleteBuilder.js.map +1 -0
  35. package/dist/src/delete/DeleteInterfaces.d.ts +27 -0
  36. package/dist/src/delete/DeleteInterfaces.d.ts.map +1 -0
  37. package/dist/src/delete/DeleteInterfaces.js +2 -0
  38. package/dist/src/delete/DeleteInterfaces.js.map +1 -0
  39. package/dist/src/escape.d.ts +4 -0
  40. package/dist/src/escape.d.ts.map +1 -0
  41. package/dist/src/escape.js +50 -0
  42. package/dist/src/escape.js.map +1 -0
  43. package/dist/src/index.d.ts +7 -0
  44. package/dist/src/index.d.ts.map +1 -0
  45. package/dist/src/index.js +7 -0
  46. package/dist/src/index.js.map +1 -0
  47. package/dist/src/insert/InsertBuilder.d.ts +19 -0
  48. package/dist/src/insert/InsertBuilder.d.ts.map +1 -0
  49. package/dist/src/insert/InsertBuilder.js +62 -0
  50. package/dist/src/insert/InsertBuilder.js.map +1 -0
  51. package/dist/src/insert/InsertInterfaces.d.ts +11 -0
  52. package/dist/src/insert/InsertInterfaces.d.ts.map +1 -0
  53. package/dist/src/insert/InsertInterfaces.js +2 -0
  54. package/dist/src/insert/InsertInterfaces.js.map +1 -0
  55. package/dist/src/select/SelectBuilder.d.ts +72 -0
  56. package/dist/src/select/SelectBuilder.d.ts.map +1 -0
  57. package/dist/src/select/SelectBuilder.js +315 -0
  58. package/dist/src/select/SelectBuilder.js.map +1 -0
  59. package/dist/src/select/parts/GatewayWhere.d.ts +17 -0
  60. package/dist/src/select/parts/GatewayWhere.d.ts.map +1 -0
  61. package/dist/src/select/parts/GatewayWhere.js +2 -0
  62. package/dist/src/select/parts/GatewayWhere.js.map +1 -0
  63. package/dist/src/select/parts/S0Union.d.ts +20 -0
  64. package/dist/src/select/parts/S0Union.d.ts.map +1 -0
  65. package/dist/src/select/parts/S0Union.js +2 -0
  66. package/dist/src/select/parts/S0Union.js.map +1 -0
  67. package/dist/src/select/parts/S0Uses.d.ts +6 -0
  68. package/dist/src/select/parts/S0Uses.d.ts.map +1 -0
  69. package/dist/src/select/parts/S0Uses.js +2 -0
  70. package/dist/src/select/parts/S0Uses.js.map +1 -0
  71. package/dist/src/select/parts/S0With.d.ts +6 -0
  72. package/dist/src/select/parts/S0With.d.ts.map +1 -0
  73. package/dist/src/select/parts/S0With.js +2 -0
  74. package/dist/src/select/parts/S0With.js.map +1 -0
  75. package/dist/src/select/parts/S1Join.d.ts +12 -0
  76. package/dist/src/select/parts/S1Join.d.ts.map +1 -0
  77. package/dist/src/select/parts/S1Join.js +2 -0
  78. package/dist/src/select/parts/S1Join.js.map +1 -0
  79. package/dist/src/select/parts/S2Columns.d.ts +35 -0
  80. package/dist/src/select/parts/S2Columns.d.ts.map +1 -0
  81. package/dist/src/select/parts/S2Columns.js +3 -0
  82. package/dist/src/select/parts/S2Columns.js.map +1 -0
  83. package/dist/src/select/parts/S2Where.d.ts +13 -0
  84. package/dist/src/select/parts/S2Where.d.ts.map +1 -0
  85. package/dist/src/select/parts/S2Where.js +2 -0
  86. package/dist/src/select/parts/S2Where.js.map +1 -0
  87. package/dist/src/select/parts/S3GroupBy.d.ts +10 -0
  88. package/dist/src/select/parts/S3GroupBy.d.ts.map +1 -0
  89. package/dist/src/select/parts/S3GroupBy.js +2 -0
  90. package/dist/src/select/parts/S3GroupBy.js.map +1 -0
  91. package/dist/src/select/parts/S4Having.d.ts +10 -0
  92. package/dist/src/select/parts/S4Having.d.ts.map +1 -0
  93. package/dist/src/select/parts/S4Having.js +2 -0
  94. package/dist/src/select/parts/S4Having.js.map +1 -0
  95. package/dist/src/select/parts/S5OrderBy.d.ts +9 -0
  96. package/dist/src/select/parts/S5OrderBy.d.ts.map +1 -0
  97. package/dist/src/select/parts/S5OrderBy.js +2 -0
  98. package/dist/src/select/parts/S5OrderBy.js.map +1 -0
  99. package/dist/src/select/parts/S6Limit.d.ts +7 -0
  100. package/dist/src/select/parts/S6Limit.d.ts.map +1 -0
  101. package/dist/src/select/parts/S6Limit.js +2 -0
  102. package/dist/src/select/parts/S6Limit.js.map +1 -0
  103. package/dist/src/select/parts/S7Exec.d.ts +26 -0
  104. package/dist/src/select/parts/S7Exec.d.ts.map +1 -0
  105. package/dist/src/select/parts/S7Exec.js +2 -0
  106. package/dist/src/select/parts/S7Exec.js.map +1 -0
  107. package/dist/src/tsconfig.json +16 -0
  108. package/dist/src/update/UpdateBuilder.d.ts +28 -0
  109. package/dist/src/update/UpdateBuilder.d.ts.map +1 -0
  110. package/dist/src/update/UpdateBuilder.js +77 -0
  111. package/dist/src/update/UpdateBuilder.js.map +1 -0
  112. package/dist/src/update/UpdateInterfaces.d.ts +34 -0
  113. package/dist/src/update/UpdateInterfaces.d.ts.map +1 -0
  114. package/dist/src/update/UpdateInterfaces.js +2 -0
  115. package/dist/src/update/UpdateInterfaces.js.map +1 -0
  116. package/dist/tsconfig.publish.tsbuildinfo +1 -0
  117. package/package.json +54 -0
  118. package/src/MysqlTable.ts +102 -0
  119. package/src/MysqlTableStructureParser.ts +283 -0
  120. package/src/SQL.ts +244 -0
  121. package/src/SqlExpression.ts +172 -0
  122. package/src/SqlFunctions.ts +471 -0
  123. package/src/Symbols.ts +11 -0
  124. package/src/Types.ts +244 -0
  125. package/src/delete/DeleteBuilder.ts +65 -0
  126. package/src/delete/DeleteInterfaces.ts +70 -0
  127. package/src/escape.ts +52 -0
  128. package/src/index.ts +6 -0
  129. package/src/insert/InsertBuilder.ts +76 -0
  130. package/src/insert/InsertInterfaces.ts +16 -0
  131. package/src/select/SelectBuilder.ts +372 -0
  132. package/src/select/parts/GatewayWhere.ts +31 -0
  133. package/src/select/parts/S0Union.ts +43 -0
  134. package/src/select/parts/S0Uses.ts +21 -0
  135. package/src/select/parts/S0With.ts +21 -0
  136. package/src/select/parts/S1Join.ts +39 -0
  137. package/src/select/parts/S2Columns.ts +68 -0
  138. package/src/select/parts/S2Where.ts +51 -0
  139. package/src/select/parts/S3GroupBy.ts +23 -0
  140. package/src/select/parts/S4Having.ts +24 -0
  141. package/src/select/parts/S5OrderBy.ts +21 -0
  142. package/src/select/parts/S6Limit.ts +9 -0
  143. package/src/select/parts/S7Exec.ts +41 -0
  144. package/src/tsconfig.json +16 -0
  145. package/src/update/UpdateBuilder.ts +96 -0
  146. package/src/update/UpdateInterfaces.ts +87 -0
@@ -0,0 +1,11 @@
1
+ declare const SQL_EXPRESSION: unique symbol;
2
+ declare const SQL_ALIAS: unique symbol;
3
+ declare const SQL_ALIAS_FOR_WITH_QUERY: unique symbol;
4
+ declare const SQL_ENTITY: unique symbol;
5
+ declare const SQL_EDIT_ENTITY: unique symbol;
6
+ export { SQL_ENTITY };
7
+ export { SQL_EDIT_ENTITY };
8
+ export { SQL_ALIAS_FOR_WITH_QUERY };
9
+ export { SQL_ALIAS };
10
+ export { SQL_EXPRESSION };
11
+ //# sourceMappingURL=Symbols.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Symbols.d.ts","sourceRoot":"","sources":["../../src/Symbols.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,cAAc,eAA6B,CAAA;AACjD,QAAA,MAAM,SAAS,eAAkB,CAAA;AACjC,QAAA,MAAM,wBAAwB,eAAqB,CAAA;AACnD,QAAA,MAAM,UAAU,eAAmB,CAAA;AACnC,QAAA,MAAM,eAAe,eAAwB,CAAA;AAE7C,OAAO,EAAC,UAAU,EAAC,CAAC;AACpB,OAAO,EAAC,eAAe,EAAC,CAAC;AACzB,OAAO,EAAC,wBAAwB,EAAC,CAAC;AAClC,OAAO,EAAC,SAAS,EAAC,CAAC;AACnB,OAAO,EAAC,cAAc,EAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ const SQL_EXPRESSION = Symbol("Table expression");
2
+ const SQL_ALIAS = Symbol("Alias");
3
+ const SQL_ALIAS_FOR_WITH_QUERY = Symbol("RefAlias");
4
+ const SQL_ENTITY = Symbol("Entity");
5
+ const SQL_EDIT_ENTITY = Symbol("Edit entity");
6
+ export { SQL_ENTITY };
7
+ export { SQL_EDIT_ENTITY };
8
+ export { SQL_ALIAS_FOR_WITH_QUERY };
9
+ export { SQL_ALIAS };
10
+ export { SQL_EXPRESSION };
11
+ //# sourceMappingURL=Symbols.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Symbols.js","sourceRoot":"","sources":["../../src/Symbols.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;AACjC,MAAM,wBAAwB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;AACnD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;AACnC,MAAM,eAAe,GAAG,MAAM,CAAC,aAAa,CAAC,CAAA;AAE7C,OAAO,EAAC,UAAU,EAAC,CAAC;AACpB,OAAO,EAAC,eAAe,EAAC,CAAC;AACzB,OAAO,EAAC,wBAAwB,EAAC,CAAC;AAClC,OAAO,EAAC,SAAS,EAAC,CAAC;AACnB,OAAO,EAAC,cAAc,EAAC,CAAC"}
@@ -0,0 +1,110 @@
1
+ import { Expr } from "./SqlExpression";
2
+ import { SQL_ALIAS, SQL_ALIAS_FOR_WITH_QUERY, SQL_EDIT_ENTITY, SQL_ENTITY, SQL_EXPRESSION } from "./Symbols";
3
+ import { ColumnDataType } from "./MysqlTableStructureParser";
4
+ export type Key<Alias extends string> = Record<Alias, true>;
5
+ export type SqlQuery<Result> = {
6
+ [SQL_ENTITY]: Result;
7
+ toSqlString(): string;
8
+ };
9
+ export type SqlSelectQuery<Result> = SqlQuery<Result> & {
10
+ transformResult<T>(row: T[]): Promise<T[]>;
11
+ };
12
+ export type SelectExecutor<Result, Args extends any[] = never, Arg1 extends any = never> = (sql: string, ...args: Args) => Promise<Result[]>;
13
+ declare const TAB = " ";
14
+ declare const DISTINCT = "DISTINCT";
15
+ export { DISTINCT, TAB };
16
+ export type AliasedTable<Alias extends string, TableRef, Entity, EditEntity, AliasForWithQuery extends string | NotUsingWithPart> = {
17
+ [SQL_ALIAS]: Alias;
18
+ [SQL_EXPRESSION]: TableRef;
19
+ [SQL_ALIAS_FOR_WITH_QUERY]: AliasForWithQuery;
20
+ [SQL_ENTITY]: Entity;
21
+ [SQL_EDIT_ENTITY]: EditEntity;
22
+ } & {
23
+ [K in keyof Entity]: Expr<TableRef, K, Entity[K]>;
24
+ };
25
+ export type AnyAliasedTableDef = AliasedTable<string, string, {}, {}, string | NotUsingWithPart>;
26
+ export type DbTableDefinition<T> = {
27
+ [P in keyof T]: {
28
+ type: ColumnDataType;
29
+ len?: number;
30
+ default?: any;
31
+ isAutoIncrement?: true;
32
+ isPrimary?: true;
33
+ };
34
+ };
35
+ export type InsertRow<InsertRow, FullRow> = {
36
+ [P in keyof InsertRow]: P extends keyof FullRow ? FullRow[P] : never;
37
+ };
38
+ export type UpdateRow<InsertRow, FullRow> = {
39
+ [P in keyof InsertRow]?: P extends keyof FullRow ? FullRow[P] : never;
40
+ };
41
+ export type NotUsingWithPart = {
42
+ __not_referenced: true;
43
+ };
44
+ export type PrepareQueryArgument = {
45
+ __prepare_argument: true;
46
+ expression: string;
47
+ };
48
+ export declare function isPrepareArgument(arg: unknown): arg is PrepareQueryArgument;
49
+ export type SQL_BOOL = 0 | 1;
50
+ export type COMPARISON_SIGNS = "!=" | "<>" | "=" | ">=" | ">" | "<" | "<=" | "LIKE" | "NOT LIKE";
51
+ declare const ComparisonOperandsLookup: Set<COMPARISON_SIGNS>;
52
+ export { ComparisonOperandsLookup };
53
+ export type DATE_ADD_UNITS = "MICROSECOND" | 'SECOND' | 'MINUTE' | 'HOUR' | 'DAY' | 'WEEK' | 'MONTH' | 'QUARTER' | 'YEAR' | 'SECOND_MICROSECOND' | 'MINUTE_MICROSECOND' | 'MINUTE_SECOND' | 'HOUR_MICROSECOND' | 'HOUR_SECOND' | 'HOUR_MINUTE' | 'DAY_MICROSECOND' | 'DAY_SECOND' | 'DAY_MINUTE' | 'DAY_HOUR' | 'YEAR_MONTH';
54
+ declare const DateAddUnitsLookup: Set<DATE_ADD_UNITS>;
55
+ export { DateAddUnitsLookup };
56
+ /**
57
+ * Check if Alias ("c") already exists in UsedAliases=(R<"c"> & ...)
58
+ */
59
+ export type isAliasAlreadyUsed<Aliases, Alias extends string, OUT> = Alias extends keyof Aliases ? `Alias '${Alias}' is already used!` : OUT;
60
+ type _extractMissingAlias<Tables, CheckTables> = {
61
+ [K in keyof CheckTables]: K extends keyof Tables ? never : K;
62
+ }[keyof CheckTables];
63
+ /**
64
+ * Check if UsedTablesToMatch=(R<Alias.Table> & ...) exists in UsedTables=(R<Alias.Table> & ...)
65
+ */
66
+ export type isTableReferenced<Tables, CheckTables, OUT> = keyof CheckTables extends keyof Tables ? OUT : `Table '${_extractMissingAlias<Tables, CheckTables> extends `${infer TableRef}` ? `${TableRef}` : "???"}' is not used in this query!`;
67
+ /**
68
+ * Anyone finds a better way, please write it. Rules are as follows:
69
+ * 1) A is always first
70
+ * 2) B can only appear after A
71
+ *
72
+ To generate this stuff :)
73
+ function gen(len) {
74
+ if (len <= 0) return [];
75
+ const results = new Set(["A"]);
76
+ function generateCombinations(currentLen, currentStr) {
77
+ if (currentLen >= len) return;
78
+ const nextA = currentStr + ',A';
79
+ generateCombinations(currentLen + 1, nextA);
80
+ results.add(nextA);
81
+ if (currentStr[currentStr.length - 1] !== 'B') {
82
+ const nextB = currentStr + ',B';
83
+ generateCombinations(currentLen, nextB);
84
+ results.add(nextB);
85
+ }
86
+ }
87
+ generateCombinations(1, 'A');
88
+ return "[" + Array.from(results.values()).sort().join("]\n | [") + "]";
89
+ }
90
+ console.log(gen(5)); // Example usage
91
+ */
92
+ export type ORDER_BY = "asc" | "desc" | "ASC" | "DESC";
93
+ export type OrderByStructure<A, B = ORDER_BY> = [
94
+ A
95
+ ] | [A, A] | [A, A, A] | [A, A, A, A] | [A, A, A, A, A] | [A, A, A, A, B] | [A, A, A, A, B, A] | [A, A, A, B] | [A, A, A, B, A] | [A, A, A, B, A, A] | [A, A, A, B, A, B] | [A, A, A, B, A, B, A] | [A, A, B] | [A, A, B, A] | [A, A, B, A, A] | [A, A, B, A, A, A] | [A, A, B, A, A, B] | [A, A, B, A, A, B, A] | [A, A, B, A, B] | [A, A, B, A, B, A] | [A, A, B, A, B, A, A] | [A, A, B, A, B, A, B] | [A, A, B, A, B, A, B, A] | [A, B] | [A, B, A] | [A, B, A, A] | [A, B, A, A, A] | [A, B, A, A, A, A] | [A, B, A, A, A, B] | [A, B, A, A, A, B, A] | [A, B, A, A, B] | [A, B, A, A, B, A] | [A, B, A, A, B, A, A] | [A, B, A, A, B, A, B] | [A, B, A, A, B, A, B, A] | [A, B, A, B] | [A, B, A, B, A] | [A, B, A, B, A, A] | [A, B, A, B, A, A, A] | [A, B, A, B, A, A, B] | [A, B, A, B, A, A, B, A] | [A, B, A, B, A, B] | [A, B, A, B, A, B, A] | [A, B, A, B, A, B, A, A] | [A, B, A, B, A, B, A, B] | [A, B, A, B, A, B, A, B, A];
96
+ export type isColumnOkToUse<Tables, ColumnExpressions> = ColumnExpressions extends [] ? ColumnExpressions : ColumnExpressions extends [infer A, ...(infer Rest)] ? [_checkThatTableOrColumnCanBeReferenced<Tables, A>, ...isColumnOkToUse<Tables, Rest>] : ColumnExpressions;
97
+ type _checkThatTableOrColumnCanBeReferenced<Tables, Expr> = Expr extends {
98
+ tableRef: string;
99
+ } ? Expr["tableRef"] extends keyof Tables ? Expr : `Table '${_getMissing<Tables, Expr["tableRef"]>}' is not used in this query!` : Expr;
100
+ type _getMissing<Tables, Check> = Check extends keyof Tables ? never : Check;
101
+ export type IsAMatchingB<Result, Entity, OUT> = _findDifferentPropertyNames<Result, Entity> extends never ? OUT : _findDifferentPropertyNames<Result, Entity>;
102
+ type _valuesToUnion<T> = T[keyof T];
103
+ type _findDifferentPropertyNames<Result, Entity> = _valuesToUnion<{
104
+ [K in Exclude<keyof Entity, keyof Result>]: `Property '${K extends string ? K : ""}' is missing!`;
105
+ }> | _valuesToUnion<{
106
+ [K in Exclude<keyof Result, keyof Entity>]: `Property '${K extends string ? K : ""}' should not be listed!`;
107
+ }> | _valuesToUnion<{
108
+ [K in keyof Result & keyof Entity]: Result[K] extends Entity[K] ? never : `Property '${K extends string ? K : ""}' type does not match!`;
109
+ }>;
110
+ //# sourceMappingURL=Types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../src/Types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAC,SAAS,EAAE,wBAAwB,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC,MAAM,WAAW,CAAC;AAC3G,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAE3D,MAAM,MAAM,GAAG,CAAC,KAAK,SAAS,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAE5D,MAAM,MAAM,QAAQ,CAAC,MAAM,IAAI;IAE3B,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,IAAI,MAAM,CAAA;CAExB,CAAA;AAED,MAAM,MAAM,cAAc,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG;IAEpD,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CAC9C,CAAA;AAED,MAAM,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,SAAS,GAAG,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;AAE5I,QAAA,MAAM,GAAG,OAAO,CAAC;AACjB,QAAA,MAAM,QAAQ,aAAa,CAAC;AAC5B,OAAO,EAAC,QAAQ,EAAE,GAAG,EAAC,CAAA;AAItB,MAAM,MAAM,YAAY,CAAC,KAAK,SAAS,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,SAAS,MAAM,GAAG,gBAAgB,IAAI;IAChI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAA;IAClB,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAA;IAC1B,CAAC,wBAAwB,CAAC,EAAE,iBAAiB,CAAA;IAC7C,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IACpB,CAAC,eAAe,CAAC,EAAE,UAAU,CAAA;CAChC,GAAG;KACC,CAAC,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CACpD,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAA;AAEhG,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;KAC9B,CAAC,IAAI,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAC;QAAC,eAAe,CAAC,EAAE,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE;CAClH,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,SAAS,EAAE,OAAO,IAAI;KACvC,CAAC,IAAI,MAAM,SAAS,GAAG,CAAC,SAAS,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK;CACvE,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,SAAS,EAAE,OAAO,IAAI;KACvC,CAAC,IAAI,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK;CACxE,CAAC;AAIF,MAAM,MAAM,gBAAgB,GAAG;IAAE,gBAAgB,EAAE,IAAI,CAAA;CAAE,CAAA;AAEzD,MAAM,MAAM,oBAAoB,GAAG;IAAE,kBAAkB,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,oBAAoB,CAE3E;AAID,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7B,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,GAAG,UAAU,CAAA;AAEhG,QAAA,MAAM,wBAAwB,EAAE,GAAG,CAAC,gBAAgB,CAA2E,CAAA;AAE/H,OAAO,EAAC,wBAAwB,EAAC,CAAA;AAEjC,MAAM,MAAM,cAAc,GAAG,aAAa,GACpC,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,KAAK,GACL,MAAM,GACN,OAAO,GACP,SAAS,GACT,MAAM,GACN,oBAAoB,GACpB,oBAAoB,GACpB,eAAe,GACf,kBAAkB,GAClB,aAAa,GACb,aAAa,GACb,iBAAiB,GACjB,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,YAAY,CAAC;AAEnB,QAAA,MAAM,kBAAkB,EAAE,GAAG,CAAC,cAAc,CAqBjC,CAAC;AAEZ,OAAO,EAAC,kBAAkB,EAAC,CAAA;AAI3B;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,OAAO,EAAE,KAAK,SAAS,MAAM,EAAE,GAAG,IAAI,KAAK,SAAS,MAAM,OAAO,GAAG,UAAU,KAAK,oBAAoB,GAAG,GAAG,CAAA;AAK5I,KAAK,oBAAoB,CAAC,MAAM,EAAE,WAAW,IAAI;KAAG,CAAC,IAAI,MAAM,WAAW,GAAG,CAAC,SAAS,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC;CAAE,CAAC,MAAM,WAAW,CAAC,CAAC;AACrI;;GAEG;AAGH,MAAM,MAAM,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,MAAM,WAAW,SAAS,MAAM,MAAM,GAC1F,GAAG,GACH,UAAU,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,SAAS,GAAG,MAAM,QAAQ,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,KAAK,8BAA8B,CAAA;AAI3I;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;AAEtD,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,IACxC;IAAC,CAAC;CAAC,GACD,CAAC,CAAC,EAAE,CAAC,CAAC,GACN,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACZ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACZ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACZ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACxB,CAAC,CAAC,EAAE,CAAC,CAAC,GACN,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACZ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACxB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACZ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACxB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACxB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACxB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAIjC,MAAM,MAAM,eAAe,CAAC,MAAM,EAAE,iBAAiB,IACjD,iBAAiB,SAAS,EAAE,GACtB,iBAAiB,GACjB,iBAAiB,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAChD,CAAC,sCAAsC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GACrF,iBAAiB,CAAC;AAEhC,KAAK,sCAAsC,CAAC,MAAM,EAAE,IAAI,IACpD,IAAI,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,MAAM,MAAM,GACjC,IAAI,GACF,UAAU,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,8BAA8B,GACjF,IAAI,CAAA;AAEd,KAAK,WAAW,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,SAAS,MAAM,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAI7E,MAAM,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,KAAK,GAAG,GAAG,GAAG,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9J,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEpC,KAAK,2BAA2B,CAAC,MAAM,EAAE,MAAM,IAC3C,cAAc,CAAC;KAAG,CAAC,IAAI,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,GAAG,aAAa,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,EAAE,eAAe;CAAE,CAAC,GACnH,cAAc,CAAC;KAAG,CAAC,IAAI,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,GAAG,aAAa,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,EAAE,yBAAyB;CAAE,CAAC,GAC/H,cAAc,CAAC;KAAG,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,aAAa,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,EAAE,wBAAwB;CAAE,CAAC,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { SQL_ALIAS, SQL_ALIAS_FOR_WITH_QUERY, SQL_EDIT_ENTITY, SQL_ENTITY, SQL_EXPRESSION } from "./Symbols.js";
2
+ const TAB = " ";
3
+ const DISTINCT = "DISTINCT";
4
+ export { DISTINCT, TAB };
5
+ export function isPrepareArgument(arg) {
6
+ return arg?.__prepare_argument === true;
7
+ }
8
+ const ComparisonOperandsLookup = new Set(["!=", "=", ">=", ">", "<", "<=", "LIKE", "NOT LIKE"]);
9
+ export { ComparisonOperandsLookup };
10
+ const DateAddUnitsLookup = new Set([
11
+ "MICROSECOND",
12
+ 'SECOND',
13
+ 'MINUTE',
14
+ 'HOUR',
15
+ 'DAY',
16
+ 'WEEK',
17
+ 'MONTH',
18
+ 'QUARTER',
19
+ 'YEAR',
20
+ 'SECOND_MICROSECOND',
21
+ 'MINUTE_MICROSECOND',
22
+ 'MINUTE_SECOND',
23
+ 'HOUR_MICROSECOND',
24
+ 'HOUR_SECOND',
25
+ 'HOUR_MINUTE',
26
+ 'DAY_MICROSECOND',
27
+ 'DAY_SECOND',
28
+ 'DAY_MINUTE',
29
+ 'DAY_HOUR',
30
+ 'YEAR_MONTH'
31
+ ]);
32
+ export { DateAddUnitsLookup };
33
+ // ----------------------------------------------
34
+ //# sourceMappingURL=Types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Types.js","sourceRoot":"","sources":["../../src/Types.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAE,wBAAwB,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC,MAAM,WAAW,CAAC;AAoB3G,MAAM,GAAG,GAAG,IAAI,CAAC;AACjB,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,OAAO,EAAC,QAAQ,EAAE,GAAG,EAAC,CAAA;AAkCtB,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC1C,OAAQ,GAAW,EAAE,kBAAkB,KAAK,IAAI,CAAC;AACrD,CAAC;AAQD,MAAM,wBAAwB,GAA0B,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAU,CAAC,CAAA;AAE/H,OAAO,EAAC,wBAAwB,EAAC,CAAA;AAuBjC,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC;IACpD,aAAa;IACb,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,SAAS;IACT,MAAM;IACN,oBAAoB;IACpB,oBAAoB;IACpB,eAAe;IACf,kBAAkB;IAClB,aAAa;IACb,aAAa;IACb,iBAAiB;IACjB,YAAY;IACZ,YAAY;IACZ,UAAU;IACV,YAAY;CACN,CAAC,CAAC;AAEZ,OAAO,EAAC,kBAAkB,EAAC,CAAA;AAgI3B,iDAAiD"}
@@ -0,0 +1,19 @@
1
+ import { OrderByStructure } from "../Types";
2
+ import { AnyExpr, SqlExpression } from "../SqlExpression";
3
+ import { DeleteLimitMethods, DeleteOrderByMethods, DeleteWhereMethods, ExecDeleteMethods, GatewayDeleteOrderByMethods, GatewayDeleteWhereMethods } from "./DeleteInterfaces";
4
+ import { SQL_ENTITY } from "../Symbols";
5
+ export declare class DeleteBuilder<Tables, Entity> implements DeleteWhereMethods<Tables>, DeleteOrderByMethods<Tables>, DeleteLimitMethods, ExecDeleteMethods, GatewayDeleteWhereMethods<Entity>, GatewayDeleteOrderByMethods<Entity> {
6
+ readonly [SQL_ENTITY]: undefined;
7
+ private _from;
8
+ private readonly _where;
9
+ private readonly _orderBy;
10
+ private _limit;
11
+ from(table: string, alias: string): this;
12
+ where(...cols: any | SqlExpression<any, any, any>): this;
13
+ orderBy(...items: any | OrderByStructure<AnyExpr>): this;
14
+ noLimit(): this;
15
+ limit1(): this;
16
+ limit(limit: number | [number, number]): this;
17
+ toSqlString(lvl?: number): string;
18
+ }
19
+ //# sourceMappingURL=DeleteBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteBuilder.d.ts","sourceRoot":"","sources":["../../../src/delete/DeleteBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAM,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAC,OAAO,EAAE,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAC,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,yBAAyB,EAAC,MAAM,oBAAoB,CAAC;AAC3K,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AAEtC,qBAAa,aAAa,CAAC,MAAM,EAAE,MAAM,CAAE,YAAW,kBAAkB,CAAC,MAAM,CAAC,EAC5E,oBAAoB,CAAC,MAAM,CAAC,EAC5B,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,CAAC,MAAM,CAAC,EACjC,2BAA2B,CAAC,MAAM,CAAC;IAEnC,SAAgB,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAExC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,MAAM,CAAS;IAEhB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKxC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI;IASxD,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,IAAI;IAKxD,OAAO,IAAI,IAAI;IAIf,MAAM,IAAI,IAAI;IAId,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAS7C,WAAW,CAAC,GAAG,GAAE,MAAU,GAAG,MAAM;CAO9C"}
@@ -0,0 +1,50 @@
1
+ import { TAB } from "../Types.js";
2
+ import { escapeId } from "../escape.js";
3
+ import { orderByStructureToSqlString } from "../SqlFunctions.js";
4
+ import { SQL_ENTITY } from "../Symbols.js";
5
+ export class DeleteBuilder {
6
+ [SQL_ENTITY]; // never used
7
+ _from;
8
+ _where = [];
9
+ _orderBy = [];
10
+ _limit;
11
+ from(table, alias) {
12
+ this._from = table + (alias ? " as " + escapeId(alias) : "");
13
+ return this;
14
+ }
15
+ where(...cols) {
16
+ for (let i = 0; i < cols.length; i++) {
17
+ if (cols[i]) {
18
+ this._where.push(cols[i].expression);
19
+ }
20
+ }
21
+ return this;
22
+ }
23
+ orderBy(...items) {
24
+ this._orderBy.push(...orderByStructureToSqlString(items));
25
+ return this;
26
+ }
27
+ noLimit() {
28
+ return this;
29
+ }
30
+ limit1() {
31
+ return this.limit(1);
32
+ }
33
+ limit(limit) {
34
+ if (Array.isArray(limit)) {
35
+ this._limit = Number(limit[0]) + "," + Number(limit[1]);
36
+ }
37
+ else {
38
+ this._limit = String(Number(limit));
39
+ }
40
+ return this;
41
+ }
42
+ toSqlString(lvl = 0) {
43
+ const tabs = TAB.repeat(lvl);
44
+ return "DELETE FROM " + this._from + "\n" +
45
+ (this._where.length === 0 ? tabs + "WHERE " + this._where.join(" AND ") + "\n" : "WHERE 1=2") +
46
+ (this._orderBy.length > 0 ? tabs + "ORDER BY " + this._orderBy.join(", ") + "\n" : "") +
47
+ (this._limit ? tabs + "LIMIT " + this._limit + "\n" : "");
48
+ }
49
+ }
50
+ //# sourceMappingURL=DeleteBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteBuilder.js","sourceRoot":"","sources":["../../../src/delete/DeleteBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,GAAG,EAAC,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAC,QAAQ,EAAC,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAC,2BAA2B,EAAC,MAAM,iBAAiB,CAAC;AAE5D,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AAEtC,MAAM,OAAO,aAAa;IAON,CAAC,UAAU,CAAC,CAAY,CAAC,aAAa;IAE9C,KAAK,CAAS;IACL,MAAM,GAAa,EAAE,CAAC;IACtB,QAAQ,GAAa,EAAE,CAAC;IACjC,MAAM,CAAS;IAEhB,IAAI,CAAC,KAAa,EAAE,KAAa;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,GAAG,IAAwC;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;YACxC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAA;IACf,CAAC;IAEM,OAAO,CAAC,GAAG,KAAsC;QACpD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAA;QACzD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,KAAgC;QACzC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,WAAW,CAAC,MAAc,CAAC;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,cAAc,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI;YACrC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;YAC7F,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACjE,CAAC;CACJ"}
@@ -0,0 +1,27 @@
1
+ import { isColumnOkToUse, isTableReferenced, Key, OrderByStructure, SQL_BOOL, SqlQuery } from "../Types";
2
+ import { Expr } from "../SqlExpression";
3
+ export interface GatewayDeleteWhereMethods<Entity> {
4
+ where(c1: Partial<Entity>): GatewayDeleteOrderByMethods<Entity>;
5
+ }
6
+ export interface GatewayDeleteOrderByMethods<Entity> extends DeleteLimitMethods {
7
+ orderBy(fields: keyof Entity): DeleteLimitMethods;
8
+ }
9
+ export interface DeleteWhereMethods<Tables> {
10
+ where<T1 extends string, T2 extends string = never, T3 extends string = never, T4 extends string = never, T5 extends string = never, T6 extends string = never, T7 extends string = never, T8 extends string = never, T9 extends string = never, T10 extends string = never, T = Tables>(c1: C<T, T1>, c2?: C<T, T2>, c3?: C<T, T3>, c4?: C<T, T4>, c5?: C<T, T5>, c6?: C<T, T6>, c7?: C<T, T7>, c8?: C<T, T8>, c9?: C<T, T9>, c10?: C<T, T10>): DeleteOrderByMethods<Tables> & DeleteLimitMethods;
11
+ }
12
+ type C<Tables, T extends string> = isTableReferenced<Tables, Key<T>, Expr<T, unknown, SQL_BOOL>>;
13
+ export interface DeleteOrderByMethods<Tables> extends DeleteLimitMethods {
14
+ orderBy<TableRef, Columns extends OrderByStructure<Expr<TableRef, string | unknown, any>>>(...items: isColumnOkToUse<Tables, Columns>): DeleteLimitMethods;
15
+ }
16
+ export interface DeleteLimitMethods {
17
+ noLimit(): ExecDeleteMethods;
18
+ limit(limit: number | [number, number]): ExecDeleteMethods;
19
+ limit1(): ExecDeleteMethods;
20
+ }
21
+ export interface ExecDeleteMethods extends SqlQuery<{
22
+ affectedRows: number;
23
+ }> {
24
+ toString(lvl?: number): string;
25
+ }
26
+ export {};
27
+ //# sourceMappingURL=DeleteInterfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteInterfaces.d.ts","sourceRoot":"","sources":["../../../src/delete/DeleteInterfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,iBAAiB,EAAE,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAC,MAAM,UAAU,CAAC;AACvG,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAC;AAEtC,MAAM,WAAW,yBAAyB,CAAC,MAAM;IAE7C,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAA;CAClE;AAED,MAAM,WAAW,2BAA2B,CAAC,MAAM,CAAE,SAAQ,kBAAkB;IAE3E,OAAO,CAAC,MAAM,EAAE,MAAM,MAAM,GAAG,kBAAkB,CAAA;CAEpD;AAED,MAAM,WAAW,kBAAkB,CAAC,MAAM;IAEtC,KAAK,CACD,EAAE,SAAS,MAAM,EACjB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,GAAG,SAAS,MAAM,GAAG,KAAK,EAC1B,CAAC,GAAG,MAAM,EAEV,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACZ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAChB,oBAAoB,CAAC,MAAM,CAAC,GAAG,kBAAkB,CAAA;CAEvD;AAED,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;AAEhG,MAAM,WAAW,oBAAoB,CAAC,MAAM,CAAE,SAAQ,kBAAkB;IACpE,OAAO,CACH,QAAQ,EACR,OAAO,SAAS,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,EAEvE,GAAG,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,kBAAkB,CAAA;CACxB;AAGD,MAAM,WAAW,kBAAkB;IAC/B,OAAO,IAAI,iBAAiB,CAAA;IAE5B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAAA;IAE1D,MAAM,IAAI,iBAAiB,CAAA;CAC9B;AAGD,MAAM,WAAW,iBAAkB,SAAQ,QAAQ,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;IAEzE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAEjC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DeleteInterfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteInterfaces.js","sourceRoot":"","sources":["../../../src/delete/DeleteInterfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { PrepareQueryArgument } from "./Types";
2
+ export declare function escape(value: string | number | (string | number)[] | PrepareQueryArgument): string;
3
+ export declare function escapeId(value: string): string;
4
+ //# sourceMappingURL=escape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,SAAS,CAAC;AAG7C,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,oBAAoB,GAAG,MAAM,CAElG;AAqCD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAS9C"}
@@ -0,0 +1,50 @@
1
+ import sql from "sqlstring";
2
+ export function escape(value) {
3
+ return sql.escape(value);
4
+ }
5
+ const mysqlReservedKeywords = new Set([
6
+ "ADD", "ALL", "ALTER", "ANALYZE", "AND", "AS", "ASC", "AUTO_INCREMENT",
7
+ "BETWEEN", "BIGINT", "BINARY", "BLOB", "BOTH", "BY", "CALL", "CASCADE",
8
+ "CASE", "CHANGE", "CHAR", "CHARACTER", "CHECK", "COLLATE", "COLUMN",
9
+ "CONDITION", "CONSTRAINT", "CONTINUE", "CONVERT", "CREATE", "CROSS",
10
+ "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR",
11
+ "DATABASE", "DATABASES", "DAY_HOUR", "DAY_MICROSECOND", "DAY_MINUTE",
12
+ "DAY_SECOND", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DELAYED", "DELETE",
13
+ "DESC", "DESCRIBE", "DETERMINISTIC", "DISTINCT", "DISTINCTROW", "DIV",
14
+ "DOUBLE", "DROP", "DUAL", "EACH", "ELSE", "ELSEIF", "ENCLOSED", "ESCAPED",
15
+ "EXISTS", "EXIT", "EXPLAIN", "FALSE", "FETCH", "FLOAT", "FLOAT4", "FLOAT8",
16
+ "FOR", "FORCE", "FOREIGN", "FROM", "FULLTEXT", "GRANT", "GROUP", "HAVING",
17
+ "HIGH_PRIORITY", "HOUR_MICROSECOND", "HOUR_MINUTE", "HOUR_SECOND", "IF",
18
+ "IGNORE", "IN", "INDEX", "INFILE", "INNER", "INOUT", "INSENSITIVE", "INSERT",
19
+ "INT", "INT1", "INT2", "INT3", "INT4", "INT8", "INTEGER", "INTERVAL", "INTO",
20
+ "IS", "ITERATE", "JOIN", "KEY", "KEYS", "KILL", "LEADING", "LEAVE", "LEFT",
21
+ "LIKE", "LIMIT", "LINES", "LOAD", "LOCALTIME", "LOCALTIMESTAMP", "LOCK", "LONG",
22
+ "LONGBLOB", "LONGTEXT", "LOOP", "LOW_PRIORITY", "MATCH", "MEDIUMBLOB",
23
+ "MEDIUMINT", "MEDIUMTEXT", "MIDDLEINT", "MINUTE_MICROSECOND", "MINUTE_SECOND",
24
+ "MOD", "MODIFIES", "NATURAL", "NOT", "NO_WRITE_TO_BINLOG", "NULL", "NUMERIC",
25
+ "ON", "OPTIMIZE", "OPTION", "OPTIONALLY", "OR", "ORDER", "OUT", "OUTER",
26
+ "OUTFILE", "PRECISION", "PRIMARY", "PROCEDURE", "PURGE", "RANGE", "READ",
27
+ "READS", "REAL", "REFERENCES", "REGEXP", "RELEASE", "RENAME", "REPEAT",
28
+ "REPLACE", "REQUIRE", "RESTRICT", "RETURN", "REVOKE", "RIGHT", "RLIKE",
29
+ "SCHEMA", "SCHEMAS", "SECOND_MICROSECOND", "SELECT", "SENSITIVE", "SEPARATOR",
30
+ "SET", "SHOW", "SMALLINT", "SPATIAL", "SPECIFIC", "SQL", "SQLEXCEPTION",
31
+ "SQLSTATE", "SQLWARNING", "SQL_BIG_RESULT", "SQL_CALC_FOUND_ROWS", "SQL_SMALL_RESULT",
32
+ "SSL", "STARTING", "STRAIGHT_JOIN", "TABLE", "TERMINATED", "THEN", "TINYBLOB",
33
+ "TINYINT", "TINYTEXT", "TO", "TRAILING", "TRIGGER", "TRUE", "UNDO", "UNION",
34
+ "UNIQUE", "UNLOCK", "UNSIGNED", "UPDATE", "USAGE", "USE", "USING", "UTC_DATE",
35
+ "UTC_TIME", "UTC_TIMESTAMP", "VALUES", "VARBINARY", "VARCHAR", "VARCHARACTER",
36
+ "VARYING", "WHEN", "WHERE", "WHILE", "WITH", "WRITE", "XOR", "YEAR_MONTH",
37
+ "ZEROFILL", "ROWS"
38
+ ]);
39
+ export function escapeId(value) {
40
+ // We could skip/remove this check, but it makes prettier SQL queries as 99% of strings here do not need escaping.
41
+ if (typeof value === "string"
42
+ && /^[a-zA-Z][a-zA-Z0-9_]*$/.test(value)
43
+ && !mysqlReservedKeywords.has(value.toUpperCase())) {
44
+ return value;
45
+ }
46
+ else {
47
+ return sql.escapeId(value);
48
+ }
49
+ }
50
+ //# sourceMappingURL=escape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escape.js","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from './SQL';
2
+ export * from './SqlFunctions';
3
+ export * from './SqlExpression';
4
+ export * from './Types';
5
+ export * from './MysqlTable';
6
+ export * from './MysqlTableStructureParser';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './SQL.js';
2
+ export * from './SqlFunctions.js';
3
+ export * from './SqlExpression.js';
4
+ export * from './Types.js';
5
+ export * from './MysqlTable.js';
6
+ export * from './MysqlTableStructureParser.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { ExecInsertMethods, InsertSetMethods } from "./InsertInterfaces";
2
+ import { SQL_ENTITY } from "../Symbols";
3
+ export declare class InsertBuilder<Entity> implements ExecInsertMethods, InsertSetMethods<Entity> {
4
+ readonly [SQL_ENTITY]: undefined;
5
+ private _ignore;
6
+ private _tableName;
7
+ private _set;
8
+ private _valueNames;
9
+ private _valuesObjects;
10
+ private _select;
11
+ to(tableName: string): this;
12
+ ignore(): this;
13
+ select(query: any): this;
14
+ set(obj: any): this;
15
+ values(objects: any[]): this;
16
+ private toValuesString;
17
+ toSqlString(): string;
18
+ }
19
+ //# sourceMappingURL=InsertBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsertBuilder.d.ts","sourceRoot":"","sources":["../../../src/insert/InsertBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAC,UAAU,EAAiB,MAAM,YAAY,CAAC;AAEtD,qBAAa,aAAa,CAAC,MAAM,CAAE,YAAW,iBAAiB,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAErF,SAAgB,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAExC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,IAAI,CAAe;IAE3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,OAAO,CAAS;IAGjB,EAAE,CAAC,SAAS,EAAE,MAAM;IAKpB,MAAM;IAKN,MAAM,CAAC,KAAK,EAAE,GAAG;IAKjB,GAAG,CAAC,GAAG,EAAE,GAAG;IAOZ,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE;IAW5B,OAAO,CAAC,cAAc;IAiBf,WAAW;CAMrB"}
@@ -0,0 +1,62 @@
1
+ import { escape, escapeId } from "../escape.js";
2
+ import { SQL_ENTITY, SQL_EXPRESSION } from "../Symbols.js";
3
+ export class InsertBuilder {
4
+ [SQL_ENTITY]; // never used
5
+ _ignore = false;
6
+ _tableName;
7
+ _set = [];
8
+ _valueNames;
9
+ _valuesObjects;
10
+ _select;
11
+ to(tableName) {
12
+ this._tableName = tableName;
13
+ return this;
14
+ }
15
+ ignore() {
16
+ this._ignore = true;
17
+ return this;
18
+ }
19
+ select(query) {
20
+ this._select = query[SQL_EXPRESSION];
21
+ return this;
22
+ }
23
+ set(obj) {
24
+ for (const prop in obj) {
25
+ this._set.push(escapeId(prop) + " = " + escape(obj[prop]));
26
+ }
27
+ return this;
28
+ }
29
+ values(objects) {
30
+ this._valueNames = new Set();
31
+ for (let i = 0; i < objects.length; i++) {
32
+ for (const prop in objects[i]) {
33
+ this._valueNames.add(prop);
34
+ }
35
+ }
36
+ this._valuesObjects = objects;
37
+ return this;
38
+ }
39
+ toValuesString() {
40
+ const valueNames = Array.from(this._valueNames.values());
41
+ const fields = "(" + valueNames.map(e => escapeId(e)).join(", ") + ") VALUES \n";
42
+ const cols = [];
43
+ for (let i = 0; i < this._valuesObjects.length; i++) {
44
+ const obj = this._valuesObjects[i];
45
+ const col = [];
46
+ for (let v = 0; v < valueNames.length; v++) {
47
+ const value = obj[valueNames[v]];
48
+ col.push(value === undefined ? "NULL" : escape(value));
49
+ }
50
+ cols.push("(" + col.join(", ") + ")");
51
+ col.length = 0;
52
+ }
53
+ return fields + cols.join(",\n");
54
+ }
55
+ toSqlString() {
56
+ return "INSERT " + (this._ignore ? "IGNORE " : "") + "INTO " + this._tableName + " " +
57
+ (this._set.length > 0 ? "SET \n " + this._set.join(",\n") + "\n" : "") +
58
+ (this._valueNames?.size > 0 ? "" + this.toValuesString() : "") +
59
+ (this._select ? this._select : "");
60
+ }
61
+ }
62
+ //# sourceMappingURL=InsertBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsertBuilder.js","sourceRoot":"","sources":["../../../src/insert/InsertBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { AliasedTable, IsAMatchingB, NotUsingWithPart, SqlQuery } from "../Types";
2
+ export interface ExecInsertMethods extends SqlQuery<{
3
+ insertId: number;
4
+ }> {
5
+ }
6
+ export interface InsertSetMethods<Entity> {
7
+ set(value: Entity): ExecInsertMethods;
8
+ values(value: Entity[]): ExecInsertMethods;
9
+ select<Result>(value: IsAMatchingB<Result, Entity, AliasedTable<string, string, Result, object, NotUsingWithPart>>): ExecInsertMethods;
10
+ }
11
+ //# sourceMappingURL=InsertInterfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsertInterfaces.d.ts","sourceRoot":"","sources":["../../../src/insert/InsertInterfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAC,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,iBAAkB,SAAQ,QAAQ,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;CAExE;AAED,MAAM,WAAW,gBAAgB,CAAC,MAAM;IAEpC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAA;IAErC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAA;IAE1C,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,GAAG,iBAAiB,CAAA;CACzI"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=InsertInterfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsertInterfaces.js","sourceRoot":"","sources":["../../../src/insert/InsertInterfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,72 @@
1
+ import { Over, SqlExpression, Transformer } from "../SqlExpression";
2
+ import { WhereMethods } from "./parts/S2Where";
3
+ import { ColumnsMethods } from "./parts/S2Columns";
4
+ import { JoinMethods } from "./parts/S1Join";
5
+ import { WithMethods } from "./parts/S0With";
6
+ import { UsesMethods } from "./parts/S0Uses";
7
+ import { UnionMethods } from "./parts/S0Union";
8
+ import { GroupByMethods } from "./parts/S3GroupBy";
9
+ import { HavingMethods } from "./parts/S4Having";
10
+ import { OrderByMethods } from "./parts/S5OrderBy";
11
+ import { LimitMethods } from "./parts/S6Limit";
12
+ import { ExecMethods } from "./parts/S7Exec";
13
+ import { SQL_ENTITY } from "../Symbols";
14
+ import { AliasedTable, AnyAliasedTableDef, SelectExecutor } from "../Types";
15
+ import { GatewaySelectGroupByMethods, GatewaySelectLimitMethods, GatewaySelectOrderByMethods, GatewayWhereMethods } from "./parts/GatewayWhere";
16
+ export declare class SelectBuilder<Result, Aliases, AliasesFromWith, Tables> implements UnionMethods<Result>, WithMethods<AliasesFromWith>, UsesMethods<Aliases, Tables>, JoinMethods<Aliases, AliasesFromWith, Tables>, ColumnsMethods<Result, Tables>, WhereMethods<Result, Tables>, GroupByMethods<Result, Tables>, HavingMethods<Result, Tables>, OrderByMethods<Result, Tables>, LimitMethods<Result>, ExecMethods<Result>, GatewayWhereMethods<Result, Tables>, GatewaySelectGroupByMethods<Result, Tables>, GatewaySelectOrderByMethods<Result, Tables>, GatewaySelectOrderByMethods<Result, Tables>, GatewaySelectLimitMethods<Result> {
17
+ readonly [SQL_ENTITY]: undefined;
18
+ private _withQueries;
19
+ private _from;
20
+ private readonly _columns;
21
+ private _columnStruct;
22
+ private readonly _joins;
23
+ private readonly _windows;
24
+ private readonly _where;
25
+ private readonly _having;
26
+ private readonly _groupBy;
27
+ private _orderBy;
28
+ private _limit;
29
+ private readonly unions;
30
+ private _unionColumnOrder;
31
+ private _distinct;
32
+ private _forUpdate;
33
+ readonly transformers: {
34
+ property: string;
35
+ transformer: Transformer<any, any>;
36
+ }[];
37
+ union(table: any | SelectBuilder<any, any, any, any>): SelectBuilder<any, any, any, any>;
38
+ unionAll(table: any | SelectBuilder<any, any, any, any>): SelectBuilder<any, any, any, any>;
39
+ private _union;
40
+ with(...tables: (any | AnyAliasedTableDef)[]): this;
41
+ uses(table: any | AnyAliasedTableDef): this;
42
+ selectFrom(table: any | AnyAliasedTableDef): this;
43
+ join(table: any | AnyAliasedTableDef, condition: any): this;
44
+ leftJoin(table: any | AnyAliasedTableDef, condition: any): this;
45
+ private _join;
46
+ window(name: string, func: (builder: Over<any>) => Over<any>): this;
47
+ distinct(): this;
48
+ columns(...cols: (any | string | SqlExpression<string, string, any>)[]): this;
49
+ one(): this;
50
+ allColumnsFrom(table: any | AnyAliasedTableDef): this;
51
+ noWhere(): any;
52
+ where(...cols: (any | undefined | null | "" | object | SqlExpression<string, string, any>)[]): any;
53
+ groupBy(...items: (any | SqlExpression<string, string, any>)[]): any;
54
+ groupByF(func: (res: any | AliasedTable<string, string, Result, unknown, any>) => (any | SqlExpression<string, string, any>)[]): any;
55
+ having(...items: (any | SqlExpression<string, string, any>)[]): any;
56
+ havingF(func: (res: any | AliasedTable<string, string, Result, unknown, any>) => (any | SqlExpression<string, string, any>)[]): this;
57
+ orderBy(...items: (any | SqlExpression<string, string, any>)[]): any;
58
+ orderByF(func: (res: any | AliasedTable<string, string, Result, unknown, any>) => (any | SqlExpression<string, string, any>)[]): this;
59
+ noLimit(): any;
60
+ limit(limit: number | [number, number]): any;
61
+ limit1(): any;
62
+ forUpdate(): any;
63
+ asScalar(alias: any): any;
64
+ as(alias: any): any;
65
+ transformResult<T>(rows: T[]): Promise<T[]>;
66
+ toString(lvl?: number): string;
67
+ toSqlString(): string;
68
+ private _toString;
69
+ exec<Args extends any[]>(executor: SelectExecutor<Result, Args>, ...args: Args): Promise<Result[]>;
70
+ execOne<Args extends any[]>(executor: SelectExecutor<Result, Args>, ...args: Args): Promise<Result>;
71
+ }
72
+ //# sourceMappingURL=SelectBuilder.d.ts.map