rawsql-ts 0.11.43-beta → 0.12.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 (294) hide show
  1. package/README.md +12 -12
  2. package/dist/esm/index.js +18 -0
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/index.min.js +15 -19
  5. package/dist/esm/index.min.js.map +4 -4
  6. package/dist/esm/src/index.d.ts +18 -0
  7. package/dist/esm/src/index.js +18 -0
  8. package/dist/esm/src/index.js.map +1 -1
  9. package/dist/esm/src/models/BinarySelectQuery.d.ts +25 -1
  10. package/dist/esm/src/models/BinarySelectQuery.js +28 -0
  11. package/dist/esm/src/models/BinarySelectQuery.js.map +1 -1
  12. package/dist/esm/src/models/Clause.d.ts +14 -2
  13. package/dist/esm/src/models/Clause.js +26 -1
  14. package/dist/esm/src/models/Clause.js.map +1 -1
  15. package/dist/esm/src/models/CreateTableQuery.d.ts +99 -5
  16. package/dist/esm/src/models/CreateTableQuery.js +85 -10
  17. package/dist/esm/src/models/CreateTableQuery.js.map +1 -1
  18. package/dist/esm/src/models/DDLStatements.d.ts +195 -0
  19. package/dist/esm/src/models/DDLStatements.js +201 -0
  20. package/dist/esm/src/models/DDLStatements.js.map +1 -0
  21. package/dist/esm/src/models/DeleteQuery.d.ts +17 -0
  22. package/dist/esm/src/models/DeleteQuery.js +16 -0
  23. package/dist/esm/src/models/DeleteQuery.js.map +1 -0
  24. package/dist/esm/src/models/InsertQuery.d.ts +7 -1
  25. package/dist/esm/src/models/InsertQuery.js +6 -2
  26. package/dist/esm/src/models/InsertQuery.js.map +1 -1
  27. package/dist/esm/src/models/MergeQuery.d.ts +63 -0
  28. package/dist/esm/src/models/MergeQuery.js +94 -0
  29. package/dist/esm/src/models/MergeQuery.js.map +1 -0
  30. package/dist/esm/src/models/SelectQuery.d.ts +37 -1
  31. package/dist/esm/src/models/SelectQuery.js +4 -1
  32. package/dist/esm/src/models/SelectQuery.js.map +1 -1
  33. package/dist/esm/src/models/SimpleSelectQuery.d.ts +29 -1
  34. package/dist/esm/src/models/SimpleSelectQuery.js +32 -0
  35. package/dist/esm/src/models/SimpleSelectQuery.js.map +1 -1
  36. package/dist/esm/src/models/SqlComponent.d.ts +2 -1
  37. package/dist/esm/src/models/SqlComponent.js +1 -1
  38. package/dist/esm/src/models/SqlComponent.js.map +1 -1
  39. package/dist/esm/src/models/SqlPrintToken.d.ts +36 -0
  40. package/dist/esm/src/models/SqlPrintToken.js +35 -0
  41. package/dist/esm/src/models/SqlPrintToken.js.map +1 -1
  42. package/dist/esm/src/models/ValuesQuery.d.ts +25 -1
  43. package/dist/esm/src/models/ValuesQuery.js +28 -0
  44. package/dist/esm/src/models/ValuesQuery.js.map +1 -1
  45. package/dist/esm/src/parsers/AlterTableParser.d.ts +25 -0
  46. package/dist/esm/src/parsers/AlterTableParser.js +428 -0
  47. package/dist/esm/src/parsers/AlterTableParser.js.map +1 -0
  48. package/dist/esm/src/parsers/AnalyzeStatementParser.d.ts +13 -0
  49. package/dist/esm/src/parsers/AnalyzeStatementParser.js +90 -0
  50. package/dist/esm/src/parsers/AnalyzeStatementParser.js.map +1 -0
  51. package/dist/esm/src/parsers/CreateIndexParser.d.ts +16 -0
  52. package/dist/esm/src/parsers/CreateIndexParser.js +237 -0
  53. package/dist/esm/src/parsers/CreateIndexParser.js.map +1 -0
  54. package/dist/esm/src/parsers/CreateTableParser.d.ts +41 -0
  55. package/dist/esm/src/parsers/CreateTableParser.js +734 -0
  56. package/dist/esm/src/parsers/CreateTableParser.js.map +1 -0
  57. package/dist/esm/src/parsers/DeleteClauseParser.d.ts +11 -0
  58. package/dist/esm/src/parsers/DeleteClauseParser.js +33 -0
  59. package/dist/esm/src/parsers/DeleteClauseParser.js.map +1 -0
  60. package/dist/esm/src/parsers/DeleteQueryParser.d.ts +16 -0
  61. package/dist/esm/src/parsers/DeleteQueryParser.js +73 -0
  62. package/dist/esm/src/parsers/DeleteQueryParser.js.map +1 -0
  63. package/dist/esm/src/parsers/DropConstraintParser.d.ts +12 -0
  64. package/dist/esm/src/parsers/DropConstraintParser.js +47 -0
  65. package/dist/esm/src/parsers/DropConstraintParser.js.map +1 -0
  66. package/dist/esm/src/parsers/DropIndexParser.d.ts +12 -0
  67. package/dist/esm/src/parsers/DropIndexParser.js +69 -0
  68. package/dist/esm/src/parsers/DropIndexParser.js.map +1 -0
  69. package/dist/esm/src/parsers/DropTableParser.d.ts +12 -0
  70. package/dist/esm/src/parsers/DropTableParser.js +59 -0
  71. package/dist/esm/src/parsers/DropTableParser.js.map +1 -0
  72. package/dist/esm/src/parsers/ExplainStatementParser.d.ts +23 -0
  73. package/dist/esm/src/parsers/ExplainStatementParser.js +185 -0
  74. package/dist/esm/src/parsers/ExplainStatementParser.js.map +1 -0
  75. package/dist/esm/src/parsers/FunctionExpressionParser.d.ts +4 -0
  76. package/dist/esm/src/parsers/FunctionExpressionParser.js +25 -8
  77. package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -1
  78. package/dist/esm/src/parsers/InsertQueryParser.js +103 -31
  79. package/dist/esm/src/parsers/InsertQueryParser.js.map +1 -1
  80. package/dist/esm/src/parsers/MergeQueryParser.d.ts +26 -0
  81. package/dist/esm/src/parsers/MergeQueryParser.js +479 -0
  82. package/dist/esm/src/parsers/MergeQueryParser.js.map +1 -0
  83. package/dist/esm/src/parsers/ParenExpressionParser.js +25 -0
  84. package/dist/esm/src/parsers/ParenExpressionParser.js.map +1 -1
  85. package/dist/esm/src/parsers/ReturningClauseParser.js +50 -7
  86. package/dist/esm/src/parsers/ReturningClauseParser.js.map +1 -1
  87. package/dist/esm/src/parsers/SelectClauseParser.js +3 -3
  88. package/dist/esm/src/parsers/SelectClauseParser.js.map +1 -1
  89. package/dist/esm/src/parsers/SelectQueryParser.d.ts +4 -0
  90. package/dist/esm/src/parsers/SelectQueryParser.js +4 -0
  91. package/dist/esm/src/parsers/SelectQueryParser.js.map +1 -1
  92. package/dist/esm/src/parsers/SetClauseParser.js +97 -15
  93. package/dist/esm/src/parsers/SetClauseParser.js.map +1 -1
  94. package/dist/esm/src/parsers/SqlParser.d.ts +40 -0
  95. package/dist/esm/src/parsers/SqlParser.js +400 -0
  96. package/dist/esm/src/parsers/SqlParser.js.map +1 -0
  97. package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +65 -3
  98. package/dist/esm/src/parsers/SqlPrintTokenParser.js +1145 -38
  99. package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
  100. package/dist/esm/src/parsers/SqlTokenizer.d.ts +24 -2
  101. package/dist/esm/src/parsers/SqlTokenizer.js +135 -74
  102. package/dist/esm/src/parsers/SqlTokenizer.js.map +1 -1
  103. package/dist/esm/src/parsers/UpdateQueryParser.js +11 -1
  104. package/dist/esm/src/parsers/UpdateQueryParser.js.map +1 -1
  105. package/dist/esm/src/parsers/UsingClauseParser.d.ts +11 -0
  106. package/dist/esm/src/parsers/UsingClauseParser.js +29 -0
  107. package/dist/esm/src/parsers/UsingClauseParser.js.map +1 -0
  108. package/dist/esm/src/parsers/ValueParser.js +5 -1
  109. package/dist/esm/src/parsers/ValueParser.js.map +1 -1
  110. package/dist/esm/src/parsers/ValuesQueryParser.d.ts +0 -2
  111. package/dist/esm/src/parsers/ValuesQueryParser.js +5 -45
  112. package/dist/esm/src/parsers/ValuesQueryParser.js.map +1 -1
  113. package/dist/esm/src/parsers/utils/LexemeCommentUtils.d.ts +6 -0
  114. package/dist/esm/src/parsers/utils/LexemeCommentUtils.js +26 -0
  115. package/dist/esm/src/parsers/utils/LexemeCommentUtils.js.map +1 -0
  116. package/dist/esm/src/tokenReaders/CommandTokenReader.js +50 -2
  117. package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +1 -1
  118. package/dist/esm/src/tokenReaders/LiteralTokenReader.js +8 -5
  119. package/dist/esm/src/tokenReaders/LiteralTokenReader.js.map +1 -1
  120. package/dist/esm/src/tokenReaders/OperatorTokenReader.js +10 -1
  121. package/dist/esm/src/tokenReaders/OperatorTokenReader.js.map +1 -1
  122. package/dist/esm/src/tokenReaders/TypeTokenReader.js +11 -1
  123. package/dist/esm/src/tokenReaders/TypeTokenReader.js.map +1 -1
  124. package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.d.ts +18 -0
  125. package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.js +118 -0
  126. package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.js.map +1 -0
  127. package/dist/esm/src/transformers/LinePrinter.d.ts +1 -0
  128. package/dist/esm/src/transformers/LinePrinter.js +12 -0
  129. package/dist/esm/src/transformers/LinePrinter.js.map +1 -1
  130. package/dist/esm/src/transformers/OnelineFormattingHelper.d.ts +29 -0
  131. package/dist/esm/src/transformers/OnelineFormattingHelper.js +95 -0
  132. package/dist/esm/src/transformers/OnelineFormattingHelper.js.map +1 -0
  133. package/dist/esm/src/transformers/QueryBuilder.d.ts +47 -13
  134. package/dist/esm/src/transformers/QueryBuilder.js +424 -62
  135. package/dist/esm/src/transformers/QueryBuilder.js.map +1 -1
  136. package/dist/esm/src/transformers/SqlFormatter.d.ts +13 -1
  137. package/dist/esm/src/transformers/SqlFormatter.js +13 -4
  138. package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
  139. package/dist/esm/src/transformers/SqlPrinter.d.ts +47 -8
  140. package/dist/esm/src/transformers/SqlPrinter.js +625 -72
  141. package/dist/esm/src/transformers/SqlPrinter.js.map +1 -1
  142. package/dist/esm/src/types/Formatting.d.ts +8 -0
  143. package/dist/esm/src/types/Formatting.js +2 -0
  144. package/dist/esm/src/types/Formatting.js.map +1 -0
  145. package/dist/esm/src/utils/ParserStringUtils.d.ts +6 -0
  146. package/dist/esm/src/utils/ParserStringUtils.js +28 -0
  147. package/dist/esm/src/utils/ParserStringUtils.js.map +1 -0
  148. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  149. package/dist/index.min.js +14 -18
  150. package/dist/index.min.js.map +4 -4
  151. package/dist/src/index.d.ts +18 -0
  152. package/dist/src/index.js +18 -0
  153. package/dist/src/index.js.map +1 -1
  154. package/dist/src/models/BinarySelectQuery.d.ts +25 -1
  155. package/dist/src/models/BinarySelectQuery.js +28 -0
  156. package/dist/src/models/BinarySelectQuery.js.map +1 -1
  157. package/dist/src/models/Clause.d.ts +14 -2
  158. package/dist/src/models/Clause.js +29 -2
  159. package/dist/src/models/Clause.js.map +1 -1
  160. package/dist/src/models/CreateTableQuery.d.ts +99 -5
  161. package/dist/src/models/CreateTableQuery.js +90 -11
  162. package/dist/src/models/CreateTableQuery.js.map +1 -1
  163. package/dist/src/models/DDLStatements.d.ts +195 -0
  164. package/dist/src/models/DDLStatements.js +216 -0
  165. package/dist/src/models/DDLStatements.js.map +1 -0
  166. package/dist/src/models/DeleteQuery.d.ts +17 -0
  167. package/dist/src/models/DeleteQuery.js +20 -0
  168. package/dist/src/models/DeleteQuery.js.map +1 -0
  169. package/dist/src/models/InsertQuery.d.ts +7 -1
  170. package/dist/src/models/InsertQuery.js +6 -2
  171. package/dist/src/models/InsertQuery.js.map +1 -1
  172. package/dist/src/models/MergeQuery.d.ts +63 -0
  173. package/dist/src/models/MergeQuery.js +104 -0
  174. package/dist/src/models/MergeQuery.js.map +1 -0
  175. package/dist/src/models/SelectQuery.d.ts +37 -1
  176. package/dist/src/models/SelectQuery.js +7 -1
  177. package/dist/src/models/SelectQuery.js.map +1 -1
  178. package/dist/src/models/SimpleSelectQuery.d.ts +29 -1
  179. package/dist/src/models/SimpleSelectQuery.js +32 -0
  180. package/dist/src/models/SimpleSelectQuery.js.map +1 -1
  181. package/dist/src/models/SqlComponent.d.ts +2 -1
  182. package/dist/src/models/SqlComponent.js +1 -1
  183. package/dist/src/models/SqlComponent.js.map +1 -1
  184. package/dist/src/models/SqlPrintToken.d.ts +36 -0
  185. package/dist/src/models/SqlPrintToken.js +35 -0
  186. package/dist/src/models/SqlPrintToken.js.map +1 -1
  187. package/dist/src/models/ValuesQuery.d.ts +25 -1
  188. package/dist/src/models/ValuesQuery.js +28 -0
  189. package/dist/src/models/ValuesQuery.js.map +1 -1
  190. package/dist/src/parsers/AlterTableParser.d.ts +25 -0
  191. package/dist/src/parsers/AlterTableParser.js +432 -0
  192. package/dist/src/parsers/AlterTableParser.js.map +1 -0
  193. package/dist/src/parsers/AnalyzeStatementParser.d.ts +13 -0
  194. package/dist/src/parsers/AnalyzeStatementParser.js +94 -0
  195. package/dist/src/parsers/AnalyzeStatementParser.js.map +1 -0
  196. package/dist/src/parsers/CreateIndexParser.d.ts +16 -0
  197. package/dist/src/parsers/CreateIndexParser.js +241 -0
  198. package/dist/src/parsers/CreateIndexParser.js.map +1 -0
  199. package/dist/src/parsers/CreateTableParser.d.ts +41 -0
  200. package/dist/src/parsers/CreateTableParser.js +738 -0
  201. package/dist/src/parsers/CreateTableParser.js.map +1 -0
  202. package/dist/src/parsers/DeleteClauseParser.d.ts +11 -0
  203. package/dist/src/parsers/DeleteClauseParser.js +37 -0
  204. package/dist/src/parsers/DeleteClauseParser.js.map +1 -0
  205. package/dist/src/parsers/DeleteQueryParser.d.ts +16 -0
  206. package/dist/src/parsers/DeleteQueryParser.js +77 -0
  207. package/dist/src/parsers/DeleteQueryParser.js.map +1 -0
  208. package/dist/src/parsers/DropConstraintParser.d.ts +12 -0
  209. package/dist/src/parsers/DropConstraintParser.js +51 -0
  210. package/dist/src/parsers/DropConstraintParser.js.map +1 -0
  211. package/dist/src/parsers/DropIndexParser.d.ts +12 -0
  212. package/dist/src/parsers/DropIndexParser.js +73 -0
  213. package/dist/src/parsers/DropIndexParser.js.map +1 -0
  214. package/dist/src/parsers/DropTableParser.d.ts +12 -0
  215. package/dist/src/parsers/DropTableParser.js +63 -0
  216. package/dist/src/parsers/DropTableParser.js.map +1 -0
  217. package/dist/src/parsers/ExplainStatementParser.d.ts +23 -0
  218. package/dist/src/parsers/ExplainStatementParser.js +189 -0
  219. package/dist/src/parsers/ExplainStatementParser.js.map +1 -0
  220. package/dist/src/parsers/FunctionExpressionParser.d.ts +4 -0
  221. package/dist/src/parsers/FunctionExpressionParser.js +25 -8
  222. package/dist/src/parsers/FunctionExpressionParser.js.map +1 -1
  223. package/dist/src/parsers/InsertQueryParser.js +103 -31
  224. package/dist/src/parsers/InsertQueryParser.js.map +1 -1
  225. package/dist/src/parsers/MergeQueryParser.d.ts +26 -0
  226. package/dist/src/parsers/MergeQueryParser.js +483 -0
  227. package/dist/src/parsers/MergeQueryParser.js.map +1 -0
  228. package/dist/src/parsers/ParenExpressionParser.js +25 -0
  229. package/dist/src/parsers/ParenExpressionParser.js.map +1 -1
  230. package/dist/src/parsers/ReturningClauseParser.js +50 -7
  231. package/dist/src/parsers/ReturningClauseParser.js.map +1 -1
  232. package/dist/src/parsers/SelectClauseParser.js +2 -2
  233. package/dist/src/parsers/SelectClauseParser.js.map +1 -1
  234. package/dist/src/parsers/SelectQueryParser.d.ts +4 -0
  235. package/dist/src/parsers/SelectQueryParser.js +4 -0
  236. package/dist/src/parsers/SelectQueryParser.js.map +1 -1
  237. package/dist/src/parsers/SetClauseParser.js +97 -15
  238. package/dist/src/parsers/SetClauseParser.js.map +1 -1
  239. package/dist/src/parsers/SqlParser.d.ts +40 -0
  240. package/dist/src/parsers/SqlParser.js +409 -0
  241. package/dist/src/parsers/SqlParser.js.map +1 -0
  242. package/dist/src/parsers/SqlPrintTokenParser.d.ts +65 -3
  243. package/dist/src/parsers/SqlPrintTokenParser.js +1143 -36
  244. package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
  245. package/dist/src/parsers/SqlTokenizer.d.ts +24 -2
  246. package/dist/src/parsers/SqlTokenizer.js +139 -74
  247. package/dist/src/parsers/SqlTokenizer.js.map +1 -1
  248. package/dist/src/parsers/UpdateQueryParser.js +11 -1
  249. package/dist/src/parsers/UpdateQueryParser.js.map +1 -1
  250. package/dist/src/parsers/UsingClauseParser.d.ts +11 -0
  251. package/dist/src/parsers/UsingClauseParser.js +33 -0
  252. package/dist/src/parsers/UsingClauseParser.js.map +1 -0
  253. package/dist/src/parsers/ValueParser.js +5 -1
  254. package/dist/src/parsers/ValueParser.js.map +1 -1
  255. package/dist/src/parsers/ValuesQueryParser.d.ts +0 -2
  256. package/dist/src/parsers/ValuesQueryParser.js +5 -45
  257. package/dist/src/parsers/ValuesQueryParser.js.map +1 -1
  258. package/dist/src/parsers/utils/LexemeCommentUtils.d.ts +6 -0
  259. package/dist/src/parsers/utils/LexemeCommentUtils.js +29 -0
  260. package/dist/src/parsers/utils/LexemeCommentUtils.js.map +1 -0
  261. package/dist/src/tokenReaders/CommandTokenReader.js +50 -2
  262. package/dist/src/tokenReaders/CommandTokenReader.js.map +1 -1
  263. package/dist/src/tokenReaders/LiteralTokenReader.js +8 -5
  264. package/dist/src/tokenReaders/LiteralTokenReader.js.map +1 -1
  265. package/dist/src/tokenReaders/OperatorTokenReader.js +10 -1
  266. package/dist/src/tokenReaders/OperatorTokenReader.js.map +1 -1
  267. package/dist/src/tokenReaders/TypeTokenReader.js +11 -1
  268. package/dist/src/tokenReaders/TypeTokenReader.js.map +1 -1
  269. package/dist/src/transformers/InsertQuerySelectValuesConverter.d.ts +18 -0
  270. package/dist/src/transformers/InsertQuerySelectValuesConverter.js +122 -0
  271. package/dist/src/transformers/InsertQuerySelectValuesConverter.js.map +1 -0
  272. package/dist/src/transformers/LinePrinter.d.ts +1 -0
  273. package/dist/src/transformers/LinePrinter.js +12 -0
  274. package/dist/src/transformers/LinePrinter.js.map +1 -1
  275. package/dist/src/transformers/OnelineFormattingHelper.d.ts +29 -0
  276. package/dist/src/transformers/OnelineFormattingHelper.js +99 -0
  277. package/dist/src/transformers/OnelineFormattingHelper.js.map +1 -0
  278. package/dist/src/transformers/QueryBuilder.d.ts +47 -13
  279. package/dist/src/transformers/QueryBuilder.js +433 -60
  280. package/dist/src/transformers/QueryBuilder.js.map +1 -1
  281. package/dist/src/transformers/SqlFormatter.d.ts +13 -1
  282. package/dist/src/transformers/SqlFormatter.js +20 -5
  283. package/dist/src/transformers/SqlFormatter.js.map +1 -1
  284. package/dist/src/transformers/SqlPrinter.d.ts +47 -8
  285. package/dist/src/transformers/SqlPrinter.js +625 -72
  286. package/dist/src/transformers/SqlPrinter.js.map +1 -1
  287. package/dist/src/types/Formatting.d.ts +8 -0
  288. package/dist/src/types/Formatting.js +3 -0
  289. package/dist/src/types/Formatting.js.map +1 -0
  290. package/dist/src/utils/ParserStringUtils.d.ts +6 -0
  291. package/dist/src/utils/ParserStringUtils.js +31 -0
  292. package/dist/src/utils/ParserStringUtils.js.map +1 -0
  293. package/dist/tsconfig.tsbuildinfo +1 -1
  294. package/package.json +3 -3
@@ -0,0 +1,29 @@
1
+ import { SqlPrintToken, SqlPrintTokenContainerType } from "../models/SqlPrintToken";
2
+ import type { WithClauseStyle } from "./SqlFormatter";
3
+ export type CommaBreakStyle = 'none' | 'before' | 'after';
4
+ export interface OnelineFormattingOptions {
5
+ parenthesesOneLine: boolean;
6
+ betweenOneLine: boolean;
7
+ valuesOneLine: boolean;
8
+ joinOneLine: boolean;
9
+ caseOneLine: boolean;
10
+ subqueryOneLine: boolean;
11
+ insertColumnsOneLine: boolean;
12
+ withClauseStyle: WithClauseStyle;
13
+ }
14
+ interface FormatInsertClauseResult {
15
+ handled: boolean;
16
+ text?: string;
17
+ }
18
+ export declare class OnelineFormattingHelper {
19
+ private readonly options;
20
+ constructor(options: OnelineFormattingOptions);
21
+ shouldFormatContainer(token: SqlPrintToken, shouldIndentNested: boolean): boolean;
22
+ isInsertClauseOneline(parentContainerType?: SqlPrintTokenContainerType): boolean;
23
+ shouldInsertJoinNewline(insideWithClause: boolean): boolean;
24
+ resolveCommaBreak(parentContainerType: SqlPrintTokenContainerType | undefined, commaBreak: CommaBreakStyle, cteCommaBreak: CommaBreakStyle, valuesCommaBreak: CommaBreakStyle): CommaBreakStyle;
25
+ shouldSkipInsertClauseSpace(parentContainerType: SqlPrintTokenContainerType | undefined, nextToken: SqlPrintToken | undefined, currentLineText: string): boolean;
26
+ shouldSkipCommentBlockSpace(parentContainerType: SqlPrintTokenContainerType | undefined, insideWithClause: boolean): boolean;
27
+ formatInsertClauseToken(text: string, parentContainerType: SqlPrintTokenContainerType | undefined, currentLineText: string, ensureTrailingSpace: () => void): FormatInsertClauseResult;
28
+ }
29
+ export {};
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OnelineFormattingHelper = void 0;
4
+ const SqlPrintToken_1 = require("../models/SqlPrintToken");
5
+ class OnelineFormattingHelper {
6
+ constructor(options) {
7
+ this.options = options;
8
+ }
9
+ shouldFormatContainer(token, shouldIndentNested) {
10
+ switch (token.containerType) {
11
+ case SqlPrintToken_1.SqlPrintTokenContainerType.ParenExpression:
12
+ return this.options.parenthesesOneLine && !shouldIndentNested;
13
+ case SqlPrintToken_1.SqlPrintTokenContainerType.BetweenExpression:
14
+ return this.options.betweenOneLine;
15
+ case SqlPrintToken_1.SqlPrintTokenContainerType.Values:
16
+ return this.options.valuesOneLine;
17
+ case SqlPrintToken_1.SqlPrintTokenContainerType.JoinOnClause:
18
+ return this.options.joinOneLine;
19
+ case SqlPrintToken_1.SqlPrintTokenContainerType.CaseExpression:
20
+ return this.options.caseOneLine;
21
+ case SqlPrintToken_1.SqlPrintTokenContainerType.InlineQuery:
22
+ return this.options.subqueryOneLine;
23
+ default:
24
+ return false;
25
+ }
26
+ }
27
+ isInsertClauseOneline(parentContainerType) {
28
+ if (!this.options.insertColumnsOneLine) {
29
+ return false;
30
+ }
31
+ return parentContainerType === SqlPrintToken_1.SqlPrintTokenContainerType.InsertClause ||
32
+ parentContainerType === SqlPrintToken_1.SqlPrintTokenContainerType.MergeInsertAction;
33
+ }
34
+ shouldInsertJoinNewline(insideWithClause) {
35
+ return !(insideWithClause && this.options.withClauseStyle === 'full-oneline');
36
+ }
37
+ resolveCommaBreak(parentContainerType, commaBreak, cteCommaBreak, valuesCommaBreak) {
38
+ if (parentContainerType === SqlPrintToken_1.SqlPrintTokenContainerType.WithClause) {
39
+ return cteCommaBreak;
40
+ }
41
+ if (parentContainerType === SqlPrintToken_1.SqlPrintTokenContainerType.AnalyzeStatement) {
42
+ // Keep ANALYZE column lists compact so comma break preferences do not insert newlines.
43
+ return 'none';
44
+ }
45
+ if (parentContainerType === SqlPrintToken_1.SqlPrintTokenContainerType.ExplainStatement) {
46
+ return 'none';
47
+ }
48
+ if (parentContainerType === SqlPrintToken_1.SqlPrintTokenContainerType.Values) {
49
+ return valuesCommaBreak;
50
+ }
51
+ if (this.isInsertClauseOneline(parentContainerType)) {
52
+ return 'none';
53
+ }
54
+ return commaBreak;
55
+ }
56
+ shouldSkipInsertClauseSpace(parentContainerType, nextToken, currentLineText) {
57
+ const isInsertContainer = parentContainerType === SqlPrintToken_1.SqlPrintTokenContainerType.InsertClause ||
58
+ parentContainerType === SqlPrintToken_1.SqlPrintTokenContainerType.MergeInsertAction;
59
+ if (!isInsertContainer) {
60
+ return false;
61
+ }
62
+ if (nextToken && nextToken.type === SqlPrintToken_1.SqlPrintTokenType.parenthesis && nextToken.text === '(') {
63
+ return true;
64
+ }
65
+ if (!this.options.insertColumnsOneLine) {
66
+ return false;
67
+ }
68
+ const lastChar = currentLineText.slice(-1);
69
+ return lastChar === '(' || lastChar === ' ' || lastChar === '';
70
+ }
71
+ shouldSkipCommentBlockSpace(parentContainerType, insideWithClause) {
72
+ return parentContainerType === SqlPrintToken_1.SqlPrintTokenContainerType.CommentBlock &&
73
+ insideWithClause &&
74
+ this.options.withClauseStyle === 'full-oneline';
75
+ }
76
+ formatInsertClauseToken(text, parentContainerType, currentLineText, ensureTrailingSpace) {
77
+ var _a, _b;
78
+ if (!this.isInsertClauseOneline(parentContainerType)) {
79
+ return { handled: false };
80
+ }
81
+ if (text === '') {
82
+ return { handled: true };
83
+ }
84
+ const leadingWhitespace = (_b = (_a = text.match(/^\s+/)) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : '';
85
+ const trimmed = leadingWhitespace ? text.slice(leadingWhitespace.length) : text;
86
+ if (trimmed === '') {
87
+ return { handled: true };
88
+ }
89
+ if (leadingWhitespace) {
90
+ const lastChar = currentLineText.slice(-1);
91
+ if (lastChar !== '(' && lastChar !== ' ' && lastChar !== '') {
92
+ ensureTrailingSpace();
93
+ }
94
+ }
95
+ return { handled: true, text: trimmed };
96
+ }
97
+ }
98
+ exports.OnelineFormattingHelper = OnelineFormattingHelper;
99
+ //# sourceMappingURL=OnelineFormattingHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnelineFormattingHelper.js","sourceRoot":"","sources":["../../../src/transformers/OnelineFormattingHelper.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import { UpdateQuery } from '../models/UpdateQuery';
2
+ import { DeleteQuery } from '../models/DeleteQuery';
3
+ import { MergeQuery } from '../models/MergeQuery';
2
4
  import { BinarySelectQuery, SelectQuery, SimpleSelectQuery } from "../models/SelectQuery";
3
5
  import { CreateTableQuery } from "../models/CreateTableQuery";
4
6
  import { InsertQuery } from "../models/InsertQuery";
7
+ import type { InsertQueryConversionOptions, UpdateQueryConversionOptions, DeleteQueryConversionOptions, MergeQueryConversionOptions } from "../models/SelectQuery";
5
8
  /**
6
9
  * QueryBuilder provides static methods to build or convert various SQL query objects.
7
10
  */
@@ -65,21 +68,52 @@ export declare class QueryBuilder {
65
68
  * @param isTemporary If true, creates a temporary table
66
69
  * @returns A CreateTableQuery instance
67
70
  */
68
- static buildCreateTableQuery(query: SelectQuery, tableName: string, isTemporary?: boolean): CreateTableQuery;
71
+ static buildCreateTableQuery(query: SelectQuery, tableName: string, isTemporary?: boolean, ifNotExists?: boolean): CreateTableQuery;
69
72
  /**
70
- * Converts a SELECT query to an INSERT query (INSERT INTO ... SELECT ...)
71
- * @param selectQuery The SELECT query to use as the source
72
- * @param tableName The name of the table to insert into
73
- * @param columns Optional: array of column names. If omitted, columns are inferred from the selectQuery
74
- * @returns An InsertQuery instance
73
+ * Converts a SELECT query to an INSERT query (INSERT INTO ... SELECT ...).
75
74
  */
76
- static buildInsertQuery(selectQuery: SimpleSelectQuery, tableName: string): InsertQuery;
75
+ static buildInsertQuery(selectQuery: SimpleSelectQuery, targetOrOptions: string | InsertQueryConversionOptions, explicitColumns?: string[]): InsertQuery;
77
76
  /**
78
- * Builds an UPDATE query from a SELECT query, table name, and primary key(s).
79
- * @param selectQuery The SELECT query providing new values (must select all columns to update and PKs)
80
- * @param updateTableExprRaw The table name to update
81
- * @param primaryKeys The primary key column name(s)
82
- * @returns UpdateQuery instance
77
+ * Converts an INSERT ... VALUES query into INSERT ... SELECT form using UNION ALL.
78
+ * @param insertQuery The VALUES-based InsertQuery to convert.
79
+ * @returns A new InsertQuery that selects rows instead of using VALUES.
83
80
  */
84
- static buildUpdateQuery(selectQuery: SimpleSelectQuery, selectSourceName: string, updateTableExprRaw: string, primaryKeys: string | string[]): UpdateQuery;
81
+ static convertInsertValuesToSelect(insertQuery: InsertQuery): InsertQuery;
82
+ /**
83
+ * Converts an INSERT ... SELECT (optionally with UNION ALL) into INSERT ... VALUES form.
84
+ * @param insertQuery The SELECT-based InsertQuery to convert.
85
+ * @returns A new InsertQuery that uses VALUES tuples.
86
+ */
87
+ static convertInsertSelectToValues(insertQuery: InsertQuery): InsertQuery;
88
+ /**
89
+ * Builds an UPDATE query from a SELECT query and conversion options.
90
+ */
91
+ static buildUpdateQuery(selectQuery: SimpleSelectQuery, selectSourceOrOptions: string | UpdateQueryConversionOptions, updateTableExprRaw?: string, primaryKeys?: string | string[]): UpdateQuery;
92
+ /**
93
+ * Builds a DELETE query that deletes the rows matched by the SELECT query output.
94
+ */
95
+ static buildDeleteQuery(selectQuery: SimpleSelectQuery, options: DeleteQueryConversionOptions): DeleteQuery;
96
+ /**
97
+ * Builds a MERGE query (upsert) that coordinates actions based on row matches.
98
+ */
99
+ static buildMergeQuery(selectQuery: SimpleSelectQuery, options: MergeQueryConversionOptions): MergeQuery;
100
+ private static normalizeInsertOptions;
101
+ private static normalizeUpdateOptions;
102
+ private static normalizeDeleteOptions;
103
+ private static normalizeMergeOptions;
104
+ private static normalizeColumnArray;
105
+ private static collectSelectItems;
106
+ private static collectSelectColumnNames;
107
+ private static ensurePrimaryKeys;
108
+ private static prepareInsertColumns;
109
+ private static prepareUpdateColumns;
110
+ private static prepareDeleteColumns;
111
+ private static prepareMergeColumns;
112
+ private static rebuildSelectClause;
113
+ private static getSelectItemName;
114
+ private static ensureSelectClauseSize;
115
+ private static extractWithClause;
116
+ private static buildEqualityPredicate;
117
+ private static toColumnReference;
118
+ private static mergeUniqueColumns;
85
119
  }