rawsql-ts 0.1.0-beta.1 → 0.1.0-beta.11

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 (401) hide show
  1. package/README.md +194 -252
  2. package/dist/index.d.ts +14 -0
  3. package/dist/index.js +33 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/models/BinarySelectQuery.d.ts +91 -0
  6. package/dist/models/BinarySelectQuery.js +141 -0
  7. package/dist/models/BinarySelectQuery.js.map +1 -0
  8. package/dist/models/Clause.d.ts +189 -0
  9. package/dist/models/Clause.js +318 -0
  10. package/dist/models/Clause.js.map +1 -0
  11. package/dist/models/KeywordTrie.d.ts +11 -0
  12. package/dist/models/KeywordTrie.js +52 -0
  13. package/dist/models/KeywordTrie.js.map +1 -0
  14. package/dist/models/Lexeme.d.ts +25 -0
  15. package/dist/models/Lexeme.js +21 -0
  16. package/dist/models/Lexeme.js.map +1 -0
  17. package/dist/models/SelectQuery.d.ts +5 -0
  18. package/dist/models/SelectQuery.js +10 -0
  19. package/dist/models/SelectQuery.js.map +1 -0
  20. package/dist/models/SimpleSelectQuery.d.ts +167 -0
  21. package/dist/models/SimpleSelectQuery.js +292 -0
  22. package/dist/models/SimpleSelectQuery.js.map +1 -0
  23. package/dist/models/SqlComponent.d.ts +18 -0
  24. package/dist/models/SqlComponent.js +27 -0
  25. package/dist/models/SqlComponent.js.map +1 -0
  26. package/dist/models/ValueComponent.d.ts +158 -0
  27. package/dist/models/ValueComponent.js +250 -0
  28. package/dist/models/ValueComponent.js.map +1 -0
  29. package/dist/models/ValuesQuery.d.ts +10 -0
  30. package/dist/models/ValuesQuery.js +16 -0
  31. package/dist/models/ValuesQuery.js.map +1 -0
  32. package/dist/parsers/CommandExpressionParser.d.ts +15 -0
  33. package/dist/parsers/CommandExpressionParser.js +124 -0
  34. package/dist/parsers/CommandExpressionParser.js.map +1 -0
  35. package/dist/parsers/CommonTableParser.d.ts +9 -0
  36. package/dist/parsers/CommonTableParser.js +62 -0
  37. package/dist/parsers/CommonTableParser.js.map +1 -0
  38. package/dist/parsers/ForClauseParser.d.ts +9 -0
  39. package/dist/parsers/ForClauseParser.js +58 -0
  40. package/dist/parsers/ForClauseParser.js.map +1 -0
  41. package/dist/parsers/FromClauseParser.d.ts +9 -0
  42. package/dist/parsers/FromClauseParser.js +47 -0
  43. package/dist/parsers/FromClauseParser.js.map +1 -0
  44. package/dist/parsers/FunctionExpressionParser.d.ts +22 -0
  45. package/dist/parsers/FunctionExpressionParser.js +178 -0
  46. package/dist/parsers/FunctionExpressionParser.js.map +1 -0
  47. package/dist/parsers/GroupByParser.d.ts +10 -0
  48. package/dist/parsers/GroupByParser.js +58 -0
  49. package/dist/parsers/GroupByParser.js.map +1 -0
  50. package/dist/parsers/HavingParser.d.ts +9 -0
  51. package/dist/parsers/HavingParser.js +36 -0
  52. package/dist/parsers/HavingParser.js.map +1 -0
  53. package/dist/parsers/IdentifierParser.d.ts +8 -0
  54. package/dist/parsers/IdentifierParser.js +39 -0
  55. package/dist/parsers/IdentifierParser.js.map +1 -0
  56. package/dist/parsers/JoinClauseParser.d.ts +14 -0
  57. package/dist/parsers/JoinClauseParser.js +105 -0
  58. package/dist/parsers/JoinClauseParser.js.map +1 -0
  59. package/dist/parsers/KeywordParser.d.ts +17 -0
  60. package/dist/parsers/KeywordParser.js +91 -0
  61. package/dist/parsers/KeywordParser.js.map +1 -0
  62. package/dist/parsers/LimitClauseParser.d.ts +9 -0
  63. package/dist/parsers/LimitClauseParser.js +50 -0
  64. package/dist/parsers/LimitClauseParser.js.map +1 -0
  65. package/dist/parsers/LiteralParser.d.ts +8 -0
  66. package/dist/parsers/LiteralParser.js +38 -0
  67. package/dist/parsers/LiteralParser.js.map +1 -0
  68. package/dist/parsers/OrderByClauseParser.d.ts +10 -0
  69. package/dist/parsers/OrderByClauseParser.js +77 -0
  70. package/dist/parsers/OrderByClauseParser.js.map +1 -0
  71. package/dist/parsers/OverExpressionParser.d.ts +9 -0
  72. package/dist/parsers/OverExpressionParser.js +44 -0
  73. package/dist/parsers/OverExpressionParser.js.map +1 -0
  74. package/dist/parsers/ParameterExpressionParser.d.ts +8 -0
  75. package/dist/parsers/ParameterExpressionParser.js +15 -0
  76. package/dist/parsers/ParameterExpressionParser.js.map +1 -0
  77. package/dist/parsers/ParenExpressionParser.d.ts +8 -0
  78. package/dist/parsers/ParenExpressionParser.js +33 -0
  79. package/dist/parsers/ParenExpressionParser.js.map +1 -0
  80. package/dist/parsers/PartitionByParser.d.ts +9 -0
  81. package/dist/parsers/PartitionByParser.js +53 -0
  82. package/dist/parsers/PartitionByParser.js.map +1 -0
  83. package/dist/parsers/SelectClauseParser.d.ts +10 -0
  84. package/dist/parsers/SelectClauseParser.js +84 -0
  85. package/dist/parsers/SelectClauseParser.js.map +1 -0
  86. package/dist/parsers/SelectQueryParser.d.ts +13 -0
  87. package/dist/parsers/SelectQueryParser.js +153 -0
  88. package/dist/parsers/SelectQueryParser.js.map +1 -0
  89. package/dist/parsers/SourceAliasExpressionParser.d.ts +8 -0
  90. package/dist/parsers/SourceAliasExpressionParser.js +49 -0
  91. package/dist/parsers/SourceAliasExpressionParser.js.map +1 -0
  92. package/dist/parsers/SourceExpressionParser.d.ts +8 -0
  93. package/dist/parsers/SourceExpressionParser.js +35 -0
  94. package/dist/parsers/SourceExpressionParser.js.map +1 -0
  95. package/dist/parsers/SourceParser.d.ts +13 -0
  96. package/dist/parsers/SourceParser.js +119 -0
  97. package/dist/parsers/SourceParser.js.map +1 -0
  98. package/dist/parsers/SqlTokenizer.d.ts +64 -0
  99. package/dist/parsers/SqlTokenizer.js +174 -0
  100. package/dist/parsers/SqlTokenizer.js.map +1 -0
  101. package/dist/parsers/StringSpecifierExpressionParser.d.ts +8 -0
  102. package/dist/parsers/StringSpecifierExpressionParser.js +22 -0
  103. package/dist/parsers/StringSpecifierExpressionParser.js.map +1 -0
  104. package/dist/parsers/UnaryExpressionParser.d.ts +8 -0
  105. package/dist/parsers/UnaryExpressionParser.js +30 -0
  106. package/dist/parsers/UnaryExpressionParser.js.map +1 -0
  107. package/dist/parsers/ValueParser.d.ts +14 -0
  108. package/dist/parsers/ValueParser.js +136 -0
  109. package/dist/parsers/ValueParser.js.map +1 -0
  110. package/dist/parsers/ValuesQueryParser.d.ts +10 -0
  111. package/dist/parsers/ValuesQueryParser.js +86 -0
  112. package/dist/parsers/ValuesQueryParser.js.map +1 -0
  113. package/dist/parsers/WhereClauseParser.d.ts +9 -0
  114. package/dist/parsers/WhereClauseParser.js +36 -0
  115. package/dist/parsers/WhereClauseParser.js.map +1 -0
  116. package/dist/parsers/WindowClauseParser.d.ts +9 -0
  117. package/dist/parsers/WindowClauseParser.js +45 -0
  118. package/dist/parsers/WindowClauseParser.js.map +1 -0
  119. package/dist/parsers/WindowExpressionParser.d.ts +12 -0
  120. package/dist/parsers/WindowExpressionParser.js +163 -0
  121. package/dist/parsers/WindowExpressionParser.js.map +1 -0
  122. package/dist/parsers/WithClauseParser.d.ts +9 -0
  123. package/dist/parsers/WithClauseParser.js +57 -0
  124. package/dist/parsers/WithClauseParser.js.map +1 -0
  125. package/dist/tokenReaders/BaseTokenReader.d.ts +43 -0
  126. package/{.vs/CopilotSnapshots/02E79E48DFF5234787CB618DE990598A/48814CCF3E4E4B44A66AB8BC7D6CF6B6/A32D1DB906C73FA74EF270AAEE165FC0 → dist/tokenReaders/BaseTokenReader.js} +30 -34
  127. package/dist/tokenReaders/BaseTokenReader.js.map +1 -0
  128. package/dist/tokenReaders/CommandTokenReader.d.ts +7 -0
  129. package/dist/tokenReaders/CommandTokenReader.js +145 -0
  130. package/dist/tokenReaders/CommandTokenReader.js.map +1 -0
  131. package/dist/tokenReaders/FunctionTokenReader.d.ts +11 -0
  132. package/dist/tokenReaders/FunctionTokenReader.js +45 -0
  133. package/dist/tokenReaders/FunctionTokenReader.js.map +1 -0
  134. package/dist/tokenReaders/IdentifierTokenReader.d.ts +15 -0
  135. package/dist/tokenReaders/IdentifierTokenReader.js +70 -0
  136. package/dist/tokenReaders/IdentifierTokenReader.js.map +1 -0
  137. package/dist/tokenReaders/LiteralTokenReader.d.ts +23 -0
  138. package/dist/tokenReaders/LiteralTokenReader.js +189 -0
  139. package/dist/tokenReaders/LiteralTokenReader.js.map +1 -0
  140. package/dist/tokenReaders/OperatorTokenReader.d.ts +5 -0
  141. package/dist/tokenReaders/OperatorTokenReader.js +98 -0
  142. package/dist/tokenReaders/OperatorTokenReader.js.map +1 -0
  143. package/dist/tokenReaders/ParameterTokenReader.d.ts +11 -0
  144. package/dist/tokenReaders/ParameterTokenReader.js +44 -0
  145. package/dist/tokenReaders/ParameterTokenReader.js.map +1 -0
  146. package/dist/tokenReaders/StringSpecifierTokenReader.d.ts +8 -0
  147. package/dist/tokenReaders/StringSpecifierTokenReader.js +31 -0
  148. package/dist/tokenReaders/StringSpecifierTokenReader.js.map +1 -0
  149. package/dist/tokenReaders/SymbolTokenReader.d.ts +12 -0
  150. package/dist/tokenReaders/SymbolTokenReader.js +35 -0
  151. package/dist/tokenReaders/SymbolTokenReader.js.map +1 -0
  152. package/dist/tokenReaders/TokenReaderManager.d.ts +53 -0
  153. package/dist/tokenReaders/TokenReaderManager.js +110 -0
  154. package/dist/tokenReaders/TokenReaderManager.js.map +1 -0
  155. package/dist/tokenReaders/TypeTokenReader.d.ts +11 -0
  156. package/dist/tokenReaders/TypeTokenReader.js +59 -0
  157. package/dist/tokenReaders/TypeTokenReader.js.map +1 -0
  158. package/dist/transformers/CTEBuilder.d.ts +52 -0
  159. package/dist/transformers/CTEBuilder.js +188 -0
  160. package/dist/transformers/CTEBuilder.js.map +1 -0
  161. package/dist/transformers/CTECollector.d.ts +81 -0
  162. package/dist/transformers/CTECollector.js +384 -0
  163. package/dist/transformers/CTECollector.js.map +1 -0
  164. package/dist/transformers/CTEDisabler.d.ts +77 -0
  165. package/dist/transformers/CTEDisabler.js +325 -0
  166. package/dist/transformers/CTEDisabler.js.map +1 -0
  167. package/dist/transformers/CTEInjector.d.ts +40 -0
  168. package/dist/transformers/CTEInjector.js +83 -0
  169. package/dist/transformers/CTEInjector.js.map +1 -0
  170. package/dist/transformers/CTENormalizer.d.ts +25 -0
  171. package/dist/transformers/CTENormalizer.js +46 -0
  172. package/dist/transformers/CTENormalizer.js.map +1 -0
  173. package/dist/transformers/Formatter.d.ts +82 -0
  174. package/dist/transformers/Formatter.js +467 -0
  175. package/dist/transformers/Formatter.js.map +1 -0
  176. package/dist/transformers/QueryConverter.d.ts +41 -0
  177. package/dist/transformers/QueryConverter.js +119 -0
  178. package/dist/transformers/QueryConverter.js.map +1 -0
  179. package/dist/transformers/SelectValueCollector.d.ts +60 -0
  180. package/dist/transformers/SelectValueCollector.js +249 -0
  181. package/dist/transformers/SelectValueCollector.js.map +1 -0
  182. package/dist/transformers/SelectableColumnCollector.d.ts +70 -0
  183. package/dist/transformers/SelectableColumnCollector.js +308 -0
  184. package/dist/transformers/SelectableColumnCollector.js.map +1 -0
  185. package/dist/transformers/TableColumnResolver.d.ts +10 -0
  186. package/dist/transformers/TableColumnResolver.js +3 -0
  187. package/dist/transformers/TableColumnResolver.js.map +1 -0
  188. package/dist/transformers/TableSourceCollector.d.ts +92 -0
  189. package/dist/transformers/TableSourceCollector.js +384 -0
  190. package/dist/transformers/TableSourceCollector.js.map +1 -0
  191. package/dist/transformers/UpstreamSelectQueryFinder.d.ts +27 -0
  192. package/dist/transformers/UpstreamSelectQueryFinder.js +129 -0
  193. package/dist/transformers/UpstreamSelectQueryFinder.js.map +1 -0
  194. package/dist/utils/charLookupTable.d.ts +11 -0
  195. package/dist/utils/charLookupTable.js +73 -0
  196. package/dist/utils/charLookupTable.js.map +1 -0
  197. package/dist/utils/stringUtils.d.ts +43 -0
  198. package/dist/utils/stringUtils.js +168 -0
  199. package/dist/utils/stringUtils.js.map +1 -0
  200. package/package.json +18 -7
  201. package/.vs/CopilotSnapshots/02E79E48DFF5234787CB618DE990598A/48814CCF3E4E4B44A66AB8BC7D6CF6B6/904140CF7EDF0C98AEA45F0D36062FE1 +0 -1
  202. package/.vs/CopilotSnapshots/02E79E48DFF5234787CB618DE990598A/48814CCF3E4E4B44A66AB8BC7D6CF6B6/E621434FB1D5415B14FBBCC11967E420 +0 -34
  203. package/.vs/CopilotSnapshots/02E79E48DFF5234787CB618DE990598A/48814CCF3E4E4B44A66AB8BC7D6CF6B6/EF71788BE39818EEA3F0164DC15E1BD7 +0 -170
  204. package/.vs/CopilotSnapshots/02E79E48DFF5234787CB618DE990598A/state.mpack +0 -1
  205. package/.vs/CopilotSnapshots/07B1013C385C5641A5F5100E0751210B/0C73C015B2C859419AFBD08BE1343FC0/BA5D2B145A59265D63FA3B3584344B02 +0 -236
  206. package/.vs/CopilotSnapshots/07B1013C385C5641A5F5100E0751210B/state.mpack +0 -1
  207. package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/A9AF50781E77B849AA3262D2738D9338/1F95FD72006ED6E92629CEFD7B2C4FEC +0 -1
  208. package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/A9AF50781E77B849AA3262D2738D9338/4CA7B9D3BC2D0A498DC0777EDA3F9B0F +0 -1
  209. package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/A9AF50781E77B849AA3262D2738D9338/7B623BFBAEB4EB61A9585F0BC8039B06 +0 -19
  210. package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/CA94452964F7A94B8ECE3B54EE21B50F/1F95FD72006ED6E92629CEFD7B2C4FEC +0 -5
  211. package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/CA94452964F7A94B8ECE3B54EE21B50F/4CA7B9D3BC2D0A498DC0777EDA3F9B0F +0 -3
  212. package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/CA94452964F7A94B8ECE3B54EE21B50F/7B623BFBAEB4EB61A9585F0BC8039B06 +0 -21
  213. package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/state.mpack +0 -1
  214. package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/23B181EB1228EF40ABCEF51E89FBF6E6/41035D2B1D57326B55F66372017E223A +0 -1
  215. package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/23B181EB1228EF40ABCEF51E89FBF6E6/45EABF6EF6BDFAA58C941A29E98C9C83 +0 -113
  216. package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/23B181EB1228EF40ABCEF51E89FBF6E6/748E0B8859CA1A5FDCA675C9E53B6D1C +0 -1
  217. package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/23B181EB1228EF40ABCEF51E89FBF6E6/A250FF4AD59546A65FFDC6AA92A4698E +0 -1
  218. package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/23B181EB1228EF40ABCEF51E89FBF6E6/C42432BC73D8AA122171FAB6EEB13CBC +0 -19
  219. package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/state.mpack +0 -1
  220. package/.vs/CopilotSnapshots/13B40109875D434BB24880356492BE7E/828B96E81CC7014B887AA519767FACC3/437DAEC1EBBAF4F25ABA1B6A25EB6933 +0 -25
  221. package/.vs/CopilotSnapshots/13B40109875D434BB24880356492BE7E/state.mpack +0 -1
  222. package/.vs/CopilotSnapshots/245168908540D646ACBD4FDE8D6DD2D4/1CDE8BAB21868E4D893E119554BA87E5/904140CF7EDF0C98AEA45F0D36062FE1 +0 -63
  223. package/.vs/CopilotSnapshots/245168908540D646ACBD4FDE8D6DD2D4/1CDE8BAB21868E4D893E119554BA87E5/DFF70C60F68ECD9A4E4C3C74E4CC4DEE +0 -1
  224. package/.vs/CopilotSnapshots/245168908540D646ACBD4FDE8D6DD2D4/1CDE8BAB21868E4D893E119554BA87E5/EF71788BE39818EEA3F0164DC15E1BD7 +0 -170
  225. package/.vs/CopilotSnapshots/245168908540D646ACBD4FDE8D6DD2D4/state.mpack +0 -1
  226. package/.vs/CopilotSnapshots/3BACC9346120824DB30006E353477163/87C831E9EA1AA249A25A44D08CF8E0B5/EF71788BE39818EEA3F0164DC15E1BD7 +0 -328
  227. package/.vs/CopilotSnapshots/3BACC9346120824DB30006E353477163/state.mpack +0 -1
  228. package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/23E7151F0483C5BB5E663F83D4962FD4 +0 -1
  229. package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/2D4DCEBC89D52B097AEEEABA23C0EB59 +0 -1
  230. package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/7C951A8A572EA5C371FDE657AF968B9C +0 -1
  231. package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/A32D1DB906C73FA74EF270AAEE165FC0 +0 -1
  232. package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/B692C85119711C76235AA5D78F9F3818 +0 -1
  233. package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/E602628EF6D764C2C267810C92906DBA +0 -1
  234. package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/E621434FB1D5415B14FBBCC11967E420 +0 -1
  235. package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/23E7151F0483C5BB5E663F83D4962FD4 +0 -1
  236. package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/2D4DCEBC89D52B097AEEEABA23C0EB59 +0 -1
  237. package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/7C951A8A572EA5C371FDE657AF968B9C +0 -1
  238. package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/A32D1DB906C73FA74EF270AAEE165FC0 +0 -1
  239. package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/B692C85119711C76235AA5D78F9F3818 +0 -1
  240. package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/E602628EF6D764C2C267810C92906DBA +0 -1
  241. package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/E621434FB1D5415B14FBBCC11967E420 +0 -1
  242. package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/EF71788BE39818EEA3F0164DC15E1BD7 +0 -489
  243. package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/state.mpack +0 -1
  244. package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/0E5F1D40C0CAE848B8F9457F29A1F3FF/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +0 -42
  245. package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/462A64EF41A4BF42A18708B83E02FD6F/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +0 -40
  246. package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/90C95C12B91FA142BEF509B6FA329DE5/A3B20E10A19C7CA170132274D2F9312B +0 -9
  247. package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/90C95C12B91FA142BEF509B6FA329DE5/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +0 -1
  248. package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/AD7513C9BBFE904AAB7F940397B95A99/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +0 -42
  249. package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/state.mpack +0 -1
  250. package/.vs/CopilotSnapshots/50E0417FAD2E524D887CB5763C2FB7B4/63A4C250D9DCE04B9F61D8833B89B5BF/EF71788BE39818EEA3F0164DC15E1BD7 +0 -174
  251. package/.vs/CopilotSnapshots/50E0417FAD2E524D887CB5763C2FB7B4/state.mpack +0 -1
  252. package/.vs/CopilotSnapshots/5EF2507B002AC14EA991043C37C36551/60FF68DE489DAD4FBCBBB54AA3F6A552/EF71788BE39818EEA3F0164DC15E1BD7 +0 -496
  253. package/.vs/CopilotSnapshots/5EF2507B002AC14EA991043C37C36551/state.mpack +0 -1
  254. package/.vs/CopilotSnapshots/6AA7610F1FB2B746821E54C28A8D109B/7FB78C0F8CB04F4AA6AF3315277B80F8/FB35DD13E708043D4CD8ACD54E14708F +0 -1
  255. package/.vs/CopilotSnapshots/6AA7610F1FB2B746821E54C28A8D109B/state.mpack +0 -1
  256. package/.vs/CopilotSnapshots/7F905F8BAC0DAD49BD507CA45C569AFD/5782E13CAB03A04E9E1EC5692F892170/BA5D2B145A59265D63FA3B3584344B02 +0 -5
  257. package/.vs/CopilotSnapshots/7F905F8BAC0DAD49BD507CA45C569AFD/5782E13CAB03A04E9E1EC5692F892170/EF71788BE39818EEA3F0164DC15E1BD7 +0 -158
  258. package/.vs/CopilotSnapshots/7F905F8BAC0DAD49BD507CA45C569AFD/9886598393C89944B51920C01EB650C9/BA5D2B145A59265D63FA3B3584344B02 +0 -35
  259. package/.vs/CopilotSnapshots/7F905F8BAC0DAD49BD507CA45C569AFD/state.mpack +0 -1
  260. package/.vs/CopilotSnapshots/8492D9C7A2D9514DB8A69D304B48BF3C/D2DA3C4E2131E84EA02E321802A65254/EF71788BE39818EEA3F0164DC15E1BD7 +0 -165
  261. package/.vs/CopilotSnapshots/8492D9C7A2D9514DB8A69D304B48BF3C/state.mpack +0 -1
  262. package/.vs/CopilotSnapshots/891A2DC0E5FA424CB8BDDA4FE26ED372/E244D49DDC79514DBA322770B03AE287/1CF9939611B0D194AC81951A171DF046 +0 -43
  263. package/.vs/CopilotSnapshots/891A2DC0E5FA424CB8BDDA4FE26ED372/state.mpack +0 -1
  264. package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/11E6D1F8E56D734F99C5216231273E8D/E621434FB1D5415B14FBBCC11967E420 +0 -66
  265. package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/24C69A83160FD844B0DEFECF8E1313DB/1CF9939611B0D194AC81951A171DF046 +0 -43
  266. package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/24C69A83160FD844B0DEFECF8E1313DB/E621434FB1D5415B14FBBCC11967E420 +0 -53
  267. package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/5E6D1BCD7CE81548AB445DE97505DC62/1CF9939611B0D194AC81951A171DF046 +0 -30
  268. package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/5E6D1BCD7CE81548AB445DE97505DC62/E621434FB1D5415B14FBBCC11967E420 +0 -53
  269. package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/EC4E81E0109C8F4BA1B5D9CFE1C122BC/E621434FB1D5415B14FBBCC11967E420 +0 -54
  270. package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/state.mpack +0 -1
  271. package/.vs/CopilotSnapshots/90C28D332F9B2949810126139FCA2640/6139F888FA743143B8E6C99306A478A6/30F913EA337870677E7C575773ECF531 +0 -130
  272. package/.vs/CopilotSnapshots/90C28D332F9B2949810126139FCA2640/F21743E379F9C1439F6A6405A289AA99/30F913EA337870677E7C575773ECF531 +0 -160
  273. package/.vs/CopilotSnapshots/90C28D332F9B2949810126139FCA2640/state.mpack +0 -1
  274. package/.vs/CopilotSnapshots/99E22E75C8AEDF4DB3A668A9ADF0BC43/2E2EFE66C5E05C4B809986E9B23D5409/45EABF6EF6BDFAA58C941A29E98C9C83 +0 -113
  275. package/.vs/CopilotSnapshots/99E22E75C8AEDF4DB3A668A9ADF0BC43/2E2EFE66C5E05C4B809986E9B23D5409/FB35DD13E708043D4CD8ACD54E14708F +0 -2
  276. package/.vs/CopilotSnapshots/99E22E75C8AEDF4DB3A668A9ADF0BC43/BE46916E3A8F2C4284792B951B674907/FB35DD13E708043D4CD8ACD54E14708F +0 -5
  277. package/.vs/CopilotSnapshots/99E22E75C8AEDF4DB3A668A9ADF0BC43/state.mpack +0 -1
  278. package/.vs/CopilotSnapshots/A6D99EA2D3819F45AD8087D7487F9318/state.mpack +0 -1
  279. package/.vs/CopilotSnapshots/A78C77F7A237704D95BCFE1BBC39FB0F/68BA9941941DC244BC799D89DB2BF86E/7C951A8A572EA5C371FDE657AF968B9C +0 -96
  280. package/.vs/CopilotSnapshots/A78C77F7A237704D95BCFE1BBC39FB0F/state.mpack +0 -1
  281. package/.vs/CopilotSnapshots/AD2203F1B9FECE44BB6D5DC5D83E87AA/734AB1B2974F9545B7F12AAA5842524B/840203FFA9CCF5B33DFD5C7CC5B13527 +0 -125
  282. package/.vs/CopilotSnapshots/AD2203F1B9FECE44BB6D5DC5D83E87AA/state.mpack +0 -1
  283. package/.vs/CopilotSnapshots/AEC950C2FAD20147AEE8E325E2CA0A78/89CF3F527D0687479D14274E8CDF3DFF/1CF9939611B0D194AC81951A171DF046 +0 -30
  284. package/.vs/CopilotSnapshots/AEC950C2FAD20147AEE8E325E2CA0A78/89CF3F527D0687479D14274E8CDF3DFF/BA5D2B145A59265D63FA3B3584344B02 +0 -158
  285. package/.vs/CopilotSnapshots/AEC950C2FAD20147AEE8E325E2CA0A78/E495EBF64DC77A4BBD470B92DB0391C4/1CF9939611B0D194AC81951A171DF046 +0 -30
  286. package/.vs/CopilotSnapshots/AEC950C2FAD20147AEE8E325E2CA0A78/E495EBF64DC77A4BBD470B92DB0391C4/BA5D2B145A59265D63FA3B3584344B02 +0 -67
  287. package/.vs/CopilotSnapshots/AEC950C2FAD20147AEE8E325E2CA0A78/state.mpack +0 -1
  288. package/.vs/CopilotSnapshots/AF947096A34634478C5D084B8442CD81/1FCDCC65B992954DB78BD1F46892312B/44EB81A1663981E3F52FFFECE3A2918E +0 -143
  289. package/.vs/CopilotSnapshots/AF947096A34634478C5D084B8442CD81/1FCDCC65B992954DB78BD1F46892312B/E602628EF6D764C2C267810C92906DBA +0 -253
  290. package/.vs/CopilotSnapshots/AF947096A34634478C5D084B8442CD81/state.mpack +0 -1
  291. package/.vs/CopilotSnapshots/B1DED422A45D5740BA4EE745C04B2B0B/226F822A22D6BD44BCF56BAA47FA274C/EF71788BE39818EEA3F0164DC15E1BD7 +0 -174
  292. package/.vs/CopilotSnapshots/B1DED422A45D5740BA4EE745C04B2B0B/state.mpack +0 -1
  293. package/.vs/CopilotSnapshots/B5DD5E50ACD0FD4998564F0FDE7FAEE0/97908D1D83AD2D4EA7082388DE07CBB4/44EB81A1663981E3F52FFFECE3A2918E +0 -148
  294. package/.vs/CopilotSnapshots/B5DD5E50ACD0FD4998564F0FDE7FAEE0/state.mpack +0 -1
  295. package/.vs/CopilotSnapshots/B8ADCAC0C19DB14FB8388BA59A86BC74/7ED3F1557FD7BE4DBEAF9B59FD442925/44EB81A1663981E3F52FFFECE3A2918E +0 -152
  296. package/.vs/CopilotSnapshots/B8ADCAC0C19DB14FB8388BA59A86BC74/state.mpack +0 -1
  297. package/.vs/CopilotSnapshots/BDFF50BBC1A93747A0001969C3BD195F/0130610530354840BB06BF4F4E744242/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +0 -138
  298. package/.vs/CopilotSnapshots/BDFF50BBC1A93747A0001969C3BD195F/5F1C58CEFBAF1B4E80C4CF38B83A0A5F/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +0 -129
  299. package/.vs/CopilotSnapshots/BDFF50BBC1A93747A0001969C3BD195F/BDC3D099FCCCC147848630670EED45CF/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +0 -139
  300. package/.vs/CopilotSnapshots/BDFF50BBC1A93747A0001969C3BD195F/D9E2B1CDD1E2BB468E0703BEF6706FF6/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +0 -139
  301. package/.vs/CopilotSnapshots/BDFF50BBC1A93747A0001969C3BD195F/state.mpack +0 -1
  302. package/.vs/CopilotSnapshots/C1E2C1A9C1DCFA46B1D5F1C6F36A152D/BC91C0FD38D8694BB992A8DEC1833670/148399016C7971F5592DAADBB9523118 +0 -120
  303. package/.vs/CopilotSnapshots/C1E2C1A9C1DCFA46B1D5F1C6F36A152D/state.mpack +0 -1
  304. package/.vs/CopilotSnapshots/C4D8E85893425E4F86F18850F5CA5C08/6C0950E97063C547A72D737E618436B0/1CF9939611B0D194AC81951A171DF046 +0 -9
  305. package/.vs/CopilotSnapshots/C4D8E85893425E4F86F18850F5CA5C08/6C0950E97063C547A72D737E618436B0/DFF70C60F68ECD9A4E4C3C74E4CC4DEE +0 -84
  306. package/.vs/CopilotSnapshots/C4D8E85893425E4F86F18850F5CA5C08/state.mpack +0 -1
  307. package/.vs/CopilotSnapshots/C5C3CA4C37B14A47B6BC753D09F69117/03EA1376F04C0D468FD0851119159D34/44EB81A1663981E3F52FFFECE3A2918E +0 -148
  308. package/.vs/CopilotSnapshots/C5C3CA4C37B14A47B6BC753D09F69117/03EA1376F04C0D468FD0851119159D34/E602628EF6D764C2C267810C92906DBA +0 -265
  309. package/.vs/CopilotSnapshots/C5C3CA4C37B14A47B6BC753D09F69117/6887503C15557349842029E58C9C0D11/44EB81A1663981E3F52FFFECE3A2918E +0 -152
  310. package/.vs/CopilotSnapshots/C5C3CA4C37B14A47B6BC753D09F69117/6887503C15557349842029E58C9C0D11/E602628EF6D764C2C267810C92906DBA +0 -265
  311. package/.vs/CopilotSnapshots/C5C3CA4C37B14A47B6BC753D09F69117/state.mpack +0 -1
  312. package/.vs/CopilotSnapshots/C7190BBC8D95D44F9CF8E65E3E8C9CFD/4B6D07592F8EDC4AA3FF742B1F9531CC/1B80EB15A2FEBEC11C8210C5461F8DB7 +0 -43
  313. package/.vs/CopilotSnapshots/C7190BBC8D95D44F9CF8E65E3E8C9CFD/state.mpack +0 -1
  314. package/.vs/CopilotSnapshots/C79D12964917E44F9A5BB9D8FA725A0C/2071ADB146D8F7499419123B2A595A41/03E00441128DC70FFEA043158417AC9A +0 -15
  315. package/.vs/CopilotSnapshots/C79D12964917E44F9A5BB9D8FA725A0C/6ECBF707FE2A88418EA1649CE46068D5/03E00441128DC70FFEA043158417AC9A +0 -1
  316. package/.vs/CopilotSnapshots/C79D12964917E44F9A5BB9D8FA725A0C/70BAB1D82B755F47A2351CA905ACC0F1/03E00441128DC70FFEA043158417AC9A +0 -49
  317. package/.vs/CopilotSnapshots/C79D12964917E44F9A5BB9D8FA725A0C/99DDFADAEC5CA14D92CC470523A11743/03E00441128DC70FFEA043158417AC9A +0 -39
  318. package/.vs/CopilotSnapshots/C79D12964917E44F9A5BB9D8FA725A0C/state.mpack +0 -1
  319. package/.vs/CopilotSnapshots/D533D78C39683A4188A2CEC902BC03CD/2445F4111C26EB4DA5404F930E140F56/840203FFA9CCF5B33DFD5C7CC5B13527 +0 -6
  320. package/.vs/CopilotSnapshots/D533D78C39683A4188A2CEC902BC03CD/2445F4111C26EB4DA5404F930E140F56/C27E5C1787B7957BF6F0C3D417890141 +0 -1
  321. package/.vs/CopilotSnapshots/D533D78C39683A4188A2CEC902BC03CD/state.mpack +0 -1
  322. package/.vs/CopilotSnapshots/DCAA5A718EC8304685D14C52356D80E0/5FC7C36C7769414C80BFF27A07BB5063/BE400B34D9700403D2BA3A1AA6B1EF1D +0 -15
  323. package/.vs/CopilotSnapshots/DCAA5A718EC8304685D14C52356D80E0/A4DD9B92084D8E48A95435EDB2B14545/86848C7099AD75EE4E8F10E066F49671 +0 -15
  324. package/.vs/CopilotSnapshots/DCAA5A718EC8304685D14C52356D80E0/A4DD9B92084D8E48A95435EDB2B14545/BE400B34D9700403D2BA3A1AA6B1EF1D +0 -15
  325. package/.vs/CopilotSnapshots/DCAA5A718EC8304685D14C52356D80E0/state.mpack +0 -1
  326. package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/5F324CB20D1B5045A13090FA9D177B74/7C951A8A572EA5C371FDE657AF968B9C +0 -96
  327. package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/5F324CB20D1B5045A13090FA9D177B74/B692C85119711C76235AA5D78F9F3818 +0 -73
  328. package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/5F324CB20D1B5045A13090FA9D177B74/EF71788BE39818EEA3F0164DC15E1BD7 +0 -182
  329. package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/C1287B2893D30D40A46C30DC2CE05178/7C951A8A572EA5C371FDE657AF968B9C +0 -96
  330. package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/C1287B2893D30D40A46C30DC2CE05178/B692C85119711C76235AA5D78F9F3818 +0 -98
  331. package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/CA6304DFE7764A4C87ACE5816CDB7CD9/7C951A8A572EA5C371FDE657AF968B9C +0 -96
  332. package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/CA6304DFE7764A4C87ACE5816CDB7CD9/B692C85119711C76235AA5D78F9F3818 +0 -21
  333. package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/CA6304DFE7764A4C87ACE5816CDB7CD9/EF71788BE39818EEA3F0164DC15E1BD7 +0 -176
  334. package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/state.mpack +0 -1
  335. package/.vs/VSWorkspaceState.json +0 -6
  336. package/.vs/slnx.sqlite +0 -0
  337. package/.vs/ts-sample/CopilotIndices/17.13.433.20974/CodeChunks.db +0 -0
  338. package/.vs/ts-sample/CopilotIndices/17.13.433.20974/SemanticSymbols.db +0 -0
  339. package/.vs/ts-sample/CopilotIndices/17.13.439.2385/CodeChunks.db +0 -0
  340. package/.vs/ts-sample/CopilotIndices/17.13.439.2385/SemanticSymbols.db +0 -0
  341. package/.vs/ts-sample/CopilotIndices/17.13.441.19478/CodeChunks.db +0 -0
  342. package/.vs/ts-sample/CopilotIndices/17.13.441.19478/SemanticSymbols.db +0 -0
  343. package/.vs/ts-sample/FileContentIndex/2fa9d8cc-9158-496d-aa9b-3a471d46a157.vsidx +0 -0
  344. package/.vs/ts-sample/FileContentIndex/5530f45b-244e-4271-b3e3-d8250f03da64.vsidx +0 -0
  345. package/.vs/ts-sample/FileContentIndex/75f95b5d-c8f7-49ca-a3d7-d1d8f63db437.vsidx +0 -0
  346. package/.vs/ts-sample/FileContentIndex/abb2aeeb-f62a-4ca7-bfbf-7a1eada625a5.vsidx +0 -0
  347. package/.vs/ts-sample/FileContentIndex/fc749b54-0f95-45f6-ac75-a8ab3409a5ce.vsidx +0 -0
  348. package/.vs/ts-sample/config/applicationhost.config +0 -1026
  349. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/0901b413-5d87-4b43-b248-80356492be7e +0 -0
  350. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/0f61a76a-b21f-46b7-821e-54c28a8d109b +0 -0
  351. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/101aef14-dd28-4de3-b2eb-e0b26d587b3a +0 -0
  352. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/22d4deb1-5da4-4057-ba4e-e745c04b2b0b +0 -0
  353. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/2a76030d-a09e-48cb-85f2-114567f23f93 +0 -0
  354. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/2c6d08ca-cb98-4233-8f7c-011c3b409234 +0 -0
  355. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/338dc290-9b2f-4929-8101-26139fca2640 +0 -0
  356. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/34c9ac3b-2061-4d82-b300-06e353477163 +0 -0
  357. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/3c01b107-5c38-4156-a5f5-100e0751210b +0 -0
  358. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/489ee702-f5df-4723-87cb-618de990598a +0 -0
  359. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/4ccac3c5-b137-474a-b6bc-753d09f69117 +0 -0
  360. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/505eddb5-d0ac-49fd-9856-4f0fde7faee0 +0 -0
  361. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/58e8d8c4-4293-4f5e-86f1-8850f5ca5c08 +0 -0
  362. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/5dbafa3e-3015-4c80-a04c-606f5efddc38 +0 -0
  363. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/5f29f527-e43a-4661-b60e-ff772041f413 +0 -0
  364. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/6248dfd7-38ae-4fa6-9176-2fdc0694c3e8 +0 -0
  365. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/66fcbd64-32dc-436d-80e6-7435a1a3ecf1 +0 -0
  366. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/6f9ad733-d555-4d2c-b073-eb6a1aada347 +0 -0
  367. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/715aaadc-c88e-4630-85d1-4c52356d80e0 +0 -0
  368. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/71ab164c-01dc-468c-a734-fbf0bf4aedd9 +0 -0
  369. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/752ee299-aec8-4ddf-b3a6-68a9adf0bc43 +0 -0
  370. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/752ff6dc-741b-4286-a0bf-5d5125ab6769 +0 -0
  371. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/7b50f25e-2a00-4ec1-a991-043c37c36551 +0 -0
  372. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/7f41e050-2ead-4d52-887c-b5763c2fb7b4 +0 -0
  373. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/85b50c9e-8895-4085-89c1-934ad2704744 +0 -0
  374. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/8b2f308d-46ae-4ef5-a82a-e1ded1a5d240 +0 -0
  375. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/8b5f907f-0dac-49ad-bd50-7ca45c569afd +0 -0
  376. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/8cd733d5-6839-413a-88a2-cec902bc03cd +0 -0
  377. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/90685124-4085-46d6-acbd-4fde8d6dd2d4 +0 -0
  378. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/96129dc7-1749-4fe4-9a5b-b9d8fa725a0c +0 -0
  379. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/967094af-46a3-4734-8c5d-084b8442cd81 +0 -0
  380. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/a29ed9a6-81d3-459f-ad80-87d7487f9318 +0 -0
  381. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/a9c1e2c1-dcc1-46fa-b1d5-f1c6f36a152d +0 -0
  382. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/badc76f4-d284-4b6c-94e9-abdbc74de540 +0 -0
  383. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/bb50ffbd-a9c1-4737-a000-1969c3bd195f +0 -0
  384. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/bc0b19c7-958d-4fd4-9cf8-e65e3e8c9cfd +0 -0
  385. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/c02d1a89-fae5-4c42-b8bd-da4fe26ed372 +0 -0
  386. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/c0caadb8-9dc1-4fb1-b838-8ba59a86bc74 +0 -0
  387. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/c250c9ae-d2fa-4701-aee8-e325e2ca0a78 +0 -0
  388. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/c31db710-c1c4-4ec0-8602-fa06d3925f98 +0 -0
  389. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/c7d99284-d9a2-4d51-b8a6-9d304b48bf3c +0 -0
  390. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/ddd1fab4-4016-4cfc-bf9f-f4a85bdfc112 +0 -0
  391. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/f10322ad-feb9-44ce-bb6d-5dc5d83e87aa +0 -0
  392. package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/f7778ca7-37a2-4d70-95bc-fe1bbc39fb0f +0 -0
  393. package/.vs/ts-sample/v17/.suo +0 -0
  394. package/.vs/ts-sample/v17/.wsuo +0 -0
  395. package/.vs/ts-sample/v17/DocumentLayout.backup.json +0 -425
  396. package/.vs/ts-sample/v17/DocumentLayout.json +0 -423
  397. package/.vs/ts-sample/v17/TestStore/0/000.testlog +0 -0
  398. package/.vs/ts-sample/v17/TestStore/0/testlog.manifest +0 -0
  399. package/dist/tsconfig.tsbuildinfo +0 -1
  400. package/dist/vitest.config.js +0 -15
  401. package/dist/vitest.config.js.map +0 -1
package/README.md CHANGED
@@ -1,265 +1,202 @@
1
1
  # rawsql-ts
2
2
 
3
- A TypeScript SQL parser project that performs AST (Abstract Syntax Tree) analysis.
3
+ ![No external dependencies](https://img.shields.io/badge/dependencies-none-brightgreen)
4
4
 
5
- ## Installation
6
-
7
- Install the main project:
8
-
9
- ```bash
10
- npm install
11
- ```
5
+ rawsql-ts is a high-performance SQL parser and AST transformer library written in TypeScript. It is designed for extensibility and advanced SQL analysis, with initial focus on PostgreSQL syntax but not limited to it. The library enables easy SQL parsing, transformation, and analysis for a wide range of SQL dialects.
12
6
 
13
- ## Usage
7
+ > **Note:** This library is currently in beta. The API may change until the v1.0 release.
14
8
 
15
- Build the project:
9
+ ---
16
10
 
17
- ```bash
18
- npm run build
19
- ```
20
-
21
- Run tests:
22
-
23
- ```bash
24
- npm test
25
- ```
11
+ 💡 **Key Advantages**
26
12
 
27
- ## Supported Features
13
+ With rawsql-ts, raw SQL can be represented as objects, enabling flexible manipulation of SQL statements directly within your program. Objectified SQL can be partially transformed, decomposed into manageable components, and recombined as needed. This approach dramatically improves the maintainability and reusability of complex SQL, making even large-scale queries easy to manage and refactor.
28
14
 
29
- **Main features included in this parser:**
15
+ ---
30
16
 
31
- - **CTE Support**: Full Common Table Expression parsing
32
- - PostgreSQL `MATERIALIZED`/`NOT MATERIALIZED` options
33
- - Nested and recursive CTEs
34
- - **UNION Queries**: Handles UNION, UNION ALL, INTERSECT and EXCEPT
35
- - **Complex Subqueries**: Supports subqueries and inline queries
36
- - **Window Functions**: Complete WINDOW clause and function support
37
- - **PostgreSQL Optimized**: Deep support for PostgreSQL syntax
38
- - `DISTINCT ON (columns)` expressions
39
- - Array and range operators
17
+ ## Features
40
18
 
41
- ## ⚠️ Important Notes
19
+ - Zero dependencies: fully self-contained and lightweight
20
+ - High-speed SQL parsing and AST analysis
21
+ - Rich utilities for SQL structure transformation and analysis
42
22
 
43
- **Under development with the following limitations:**
44
-
45
- - **PostgreSQL Only**: Only PostgreSQL syntax is currently supported
46
- - **Comments Stripped**: SQL comments are removed during parsing
47
- - **SELECT Queries Only**: Currently only handles SELECT queries (no INSERT/UPDATE/DELETE)
48
- - **One-line Formatting**: Currently only supports single-line (compact) output formatting
49
- - **Beta Status**: API may change without notice until v1.0 release
50
-
51
- ## Transformer Utilities
52
-
53
- rawsql-ts includes powerful transformer utilities to analyze and transform SQL ASTs. These utilities let you format, analyze, and extract information from SQL queries in a super flexible way!
23
+ ## Installation
54
24
 
55
- ### Formatter
25
+ ```bash
26
+ npm install rawsql-ts
27
+ ```
56
28
 
57
- The Formatter transforms SQL ASTs into clean, standardized SQL text output. It handles all SQL components, ensuring proper escaping and consistent formatting regardless of the complexity of your queries.
29
+ ## Quick Start
58
30
 
59
31
  ```typescript
60
- import { SelectQueryParser } from './parsers/SelectQueryParser';
61
- import { Formatter } from './transformers/Formatter';
62
-
63
- // Example complex query with subquery and functions
64
- const sql = `
65
- SELECT
66
- p.product_id
67
- , p.name
68
- , SUM(o.quantity) AS total_ordered
69
- , CASE
70
- WHEN SUM(o.quantity) > 1000 THEN 'High Demand'
71
- WHEN SUM(o.quantity) > 500 THEN 'Medium Demand'
72
- ELSE 'Low Demand'
73
- END AS demand_category
74
- FROM
75
- products AS p
76
- JOIN order_items AS o ON p.product_id = o.product_id
77
- WHERE
78
- p.category IN (
79
- SELECT
80
- category
81
- FROM
82
- featured_categories
83
- WHERE
84
- active = TRUE
85
- )
86
- GROUP BY
87
- p.product_id
88
- , p.name
89
- HAVING
90
- SUM(o.quantity) > 100
91
- ORDER BY
92
- total_ordered DESC`;
93
-
94
- // Parse the query into an AST
95
- const query = SelectQueryParser.parseFromText(sql);
96
-
97
- // Format the AST back to SQL
32
+ import { SelectQueryParser, Formatter } from 'rawsql-ts';
33
+
34
+ const sql = `SELECT user_id, name FROM users WHERE active = TRUE`;
35
+ const query = SelectQueryParser.parse(sql);
98
36
  const formatter = new Formatter();
99
- const formattedSql = formatter.visit(query);
37
+ const formattedSql = formatter.format(query);
100
38
 
101
39
  console.log(formattedSql);
102
- // Outputs clean, consistently formatted SQL with proper identifiers
40
+ // => select "user_id", "name" from "users" where "active" = true
103
41
  ```
104
42
 
105
- ### SelectValueCollector
106
-
107
- The SelectValueCollector extracts all column items from a SELECT clause, including their aliases and expressions. It provides access to both column names and their corresponding value expressions, making it perfect for analyzing the output structure of SQL queries. For information on wildcard resolution (like `*` or `table.*`), see the Wildcard Resolution section below.
43
+ ---
44
+
45
+ ## Main Parser Features
46
+
47
+ - **SelectQueryParser**
48
+ The main class for converting SELECT and VALUES statements into AST. Fully supports CTEs (WITH), UNION/INTERSECT/EXCEPT, subqueries, and PostgreSQL-specific syntax.
49
+ - `parse(sql: string): SelectQuery`
50
+ Converts a SQL string to an AST. Throws an exception on error.
51
+ - Supports only PostgreSQL syntax
52
+ - Only SELECT and VALUES are supported (INSERT/UPDATE/DELETE are not yet implemented)
53
+ - SQL comments are automatically removed
54
+ - Handles CTEs (WITH), UNION/INTERSECT/EXCEPT, subqueries, window functions, complex expressions, and functions
55
+ - Provides detailed error messages
56
+ - Highly accurate tokenization
57
+
58
+ ---
59
+
60
+ ## Core SQL Query Classes
61
+
62
+ - **SimpleSelectQuery**
63
+ Represents a standard SELECT statement. Supports all major clauses such as WHERE, GROUP BY, JOIN, and CTE.
64
+ - `toUnion`, `toUnionAll`, ... for UNION operations
65
+ - `appendWhere`, `appendWhereRaw` to add WHERE conditions
66
+ - `innerJoin`, `leftJoin`, ... to add JOINs
67
+ - `toSource` to wrap as a subquery
68
+ - `appendWith`, `appendWithRaw` to add CTEs
69
+
70
+ - **BinarySelectQuery**
71
+ Represents binary SQL queries such as UNION, INTERSECT, and EXCEPT.
72
+ - `union`, `intersect`, ... to combine queries
73
+ - `toSource` to wrap as a subquery
74
+ - `unionRaw`, ... to combine with raw SQL
75
+
76
+ - **ValuesQuery**
77
+ For inline tables like `VALUES (1, 'a'), (2, 'b')`.
78
+ - Can be used as a subquery or converted to SELECT with QueryNormalizer
79
+
80
+ ---
81
+
82
+ ## AST Transformer Features
83
+
84
+ A suite of utilities for transforming and analyzing SQL ASTs.
85
+
86
+ ### Main Transformers
87
+
88
+ - **Formatter**
89
+ Converts ASTs to formatted SQL strings. Handles identifier escaping. Output is currently single-line (compact) style.
90
+ - **SelectValueCollector**
91
+ Extracts all columns, aliases, and expressions from SELECT clauses. Supports wildcard expansion (e.g., `*`, `table.*`) with TableColumnResolver.
92
+ - **SelectableColumnCollector**
93
+ Collects all columns available from root FROM/JOIN sources.
94
+ - **TableSourceCollector**
95
+ Collects all table and subquery sources from FROM and JOIN clauses.
96
+ - **CTECollector**
97
+ Collects all CTEs from WITH clauses, subqueries, and UNION queries.
98
+ - **UpstreamSelectQueryFinder**
99
+ Finds upstream SELECT queries that provide specific columns by traversing CTEs, subqueries, and UNION branches.
100
+ - **CTENormalizer**
101
+ Consolidates all CTEs into a single root-level WITH clause. Throws an error if duplicate CTE names with different definitions are found.
102
+ - **QueryNormalizer**
103
+ Converts any SELECT/UNION/VALUES query into a standard SimpleSelectQuery. Handles subquery wrapping and automatic column name generation.
104
+ - **TableColumnResolver**
105
+ A function type for resolving column names from a table name, mainly used for wildcard expansion (e.g., `table.*`). Used by analyzers like SelectValueCollector.
106
+ ```typescript
107
+ export type TableColumnResolver = (tableName: string) => string[];
108
+ ```
109
+
110
+ ---
111
+
112
+ ## Usage Example
108
113
 
109
114
  ```typescript
110
- import { SelectQueryParser } from './parsers/SelectQueryParser';
111
- import { SelectValueCollector } from './transformers/SelectValueCollector';
112
- import { Formatter } from './transformers/Formatter';
113
-
114
- // Example query with column references and expressions
115
- const sql = `
116
- SELECT
117
- id
118
- , name
119
- , price * quantity AS total
120
- , (
121
- SELECT
122
- COUNT(*)
123
- FROM
124
- orders AS o
125
- WHERE
126
- o.customer_id = c.id
127
- ) AS order_count
128
- FROM
129
- customers AS c
130
- WHERE
131
- status = 'active'`;
132
-
133
- const query = SelectQueryParser.parseFromText(sql);
134
-
135
- // Collect all select values
136
- const collector = new SelectValueCollector();
137
- const items = collector.collect(query);
138
-
139
- // Format expressions for display
140
- const formatter = new Formatter();
141
-
142
- // Output column names
143
- console.log(items.map(item => item.name));
144
- // ["id", "name", "total", "order_count"]
115
+ import { TableColumnResolver } from "./src/transformers/TableColumnResolver";
116
+ import { SelectQueryParser } from 'rawsql-ts';
117
+ import { SelectableColumnCollector } from 'rawsql-ts/transformers/SelectableColumnCollector';
118
+ import { SelectValueCollector } from 'rawsql-ts/transformers/SelectValueCollector';
119
+ import { TableSourceCollector } from 'rawsql-ts/transformers/TableSourceCollector';
120
+
121
+ // TableColumnResolver example
122
+ const resolver: TableColumnResolver = (tableName) => {
123
+ if (tableName === "users") return ["id", "name", "email"];
124
+ if (tableName === "posts") return ["id", "title", "content"];
125
+ return [];
126
+ };
145
127
 
146
- // Output column expressions to show full value components
147
- console.log(items.map(item => formatter.visit(item.value)));
148
- // ["id", "name", "price * quantity", "(SELECT COUNT(*) FROM orders AS o WHERE o.customer_id = c.id)"]
149
- ```
128
+ const sql = `SELECT u.* FROM users u JOIN posts p ON u.id = p.user_id`;
129
+ const query = SelectQueryParser.parse(sql);
150
130
 
151
- ### SelectableColumnCollector
131
+ // Wildcard expansion example
132
+ const selectValueCollector = new SelectValueCollector(resolver);
133
+ const selectValues = selectValueCollector.collect(query);
134
+ console.log(selectValues.map(val => val.alias || val.expression.toString()));
152
135
 
153
- The SelectableColumnCollector identifies all column references throughout a query that could potentially be included in a SELECT clause. It scans the entire query structure and extracts columns with their full context, making it ideal for query builders. For information on wildcard resolution (like `*` or `table.*`), see the Wildcard Resolution section below.
136
+ // Collect all selectable columns from FROM/JOIN sources
137
+ const selectableColumnCollector = new SelectableColumnCollector();
138
+ const selectableColumns = selectableColumnCollector.collect(query);
139
+ console.log(selectableColumns.map(col => col.name));
154
140
 
155
- ```typescript
156
- import { SelectQueryParser } from './parsers/SelectQueryParser';
157
- import { SelectableColumnCollector } from './transformers/SelectableColumnCollector';
158
- import { Formatter } from './transformers/Formatter';
159
-
160
- // Example query
161
- const sql = `
162
- SELECT
163
- u.id
164
- , u.name
165
- FROM
166
- users AS u
167
- JOIN profiles AS p ON u.id = p.user_id
168
- WHERE
169
- u.active = TRUE
170
- AND p.verified = TRUE`;
171
-
172
- const query = SelectQueryParser.parseFromText(sql);
173
- const collector = new SelectableColumnCollector();
174
-
175
- // Collect all column references from data sources
176
- collector.visit(query);
177
- const columns = collector.collect(query);
178
-
179
- // Format column references for display
180
- const formatter = new Formatter();
181
- const columnNames = columns.map(item => item.name);
182
- console.log(columnNames);
183
- // ["id", "name", "active", "user_id", "verified"]
184
-
185
- // Get the original column expressions with their full context
186
- const expressions = columns.map(item => formatter.visit(item.value));
187
- console.log(expressions);
188
- // ["u.id", "u.name", "u.active", "p.user_id", "p.verified"]
141
+ // Collect all table and subquery sources from FROM/JOIN clauses
142
+ const tableSourceCollector = new TableSourceCollector();
143
+ const sources = tableSourceCollector.collect(query);
144
+ console.log(sources.map(src => src.alias || src.name));
189
145
  ```
190
146
 
191
- ### Wildcard Resolution
147
+ ---
192
148
 
193
- The wildcard resolution feature enhances both collectors by supporting the expansion of wildcard expressions (`*` and `table.*`). Since SQL AST analysis alone cannot determine actual column names from wildcards, this feature allows you to provide table structure information through a custom resolver.
149
+ ## Advanced Example: Table Join
194
150
 
195
- To use this feature, simply provide a `TableColumnResolver` function when creating a collector. This resolver maps table names to their column definitions, allowing the collectors to fully expand wildcard expressions into individual columns with proper context.
151
+ This example demonstrates how to join two tables using rawsql-ts. You do not need to understand the internal structure or manage aliases manually. By specifying the join key(s), the ON clause is generated automatically.
196
152
 
197
153
  ```typescript
198
- import { SelectQueryParser } from './parsers/SelectQueryParser';
199
- import { SelectValueCollector } from './transformers/SelectValueCollector';
200
- import { Formatter } from './transformers/Formatter';
201
-
202
- // Define a function to resolve column names from table names
203
- const tableColumnResolver = (tableName: string): string[] => {
204
- // In real applications, this would fetch from database metadata or schema information
205
- const tableColumns: Record<string, string[]> = {
206
- 'users': ['id', 'name', 'email', 'created_at'],
207
- 'posts': ['id', 'title', 'content', 'user_id', 'created_at'],
208
- 'comments': ['id', 'post_id', 'user_id', 'content', 'created_at']
209
- };
210
-
211
- return tableColumns[tableName] || [];
212
- };
154
+ import { SelectQueryParser, Formatter, SimpleSelectQuery } from 'rawsql-ts';
155
+
156
+ // Parse the base query
157
+ const query = SelectQueryParser.parse('SELECT u.user_id, u.name FROM users u') as SimpleSelectQuery;
158
+
159
+ // Add LEFT JOIN using the leftJoinRaw method (join on user_id)
160
+ query.leftJoinRaw('orders', 'o', ['user_id']);
161
+
162
+ // Add WHERE clause
163
+ query.appendWhereRaw('o.order_id IS NULL');
213
164
 
214
- // Query containing wildcards
215
- const sql = `
216
- SELECT
217
- u.*
218
- , p.title
219
- , p.content
220
- FROM
221
- users AS u
222
- JOIN posts AS p ON u.id = p.user_id
223
- WHERE
224
- u.created_at > '2023-01-01'`;
225
-
226
- const query = SelectQueryParser.parseFromText(sql);
227
-
228
- // Pass the TableColumnResolver to resolve wildcards
229
- const collector = new SelectValueCollector(tableColumnResolver);
230
- const items = collector.collect(query);
231
-
232
- // Display results
233
165
  const formatter = new Formatter();
234
- console.log(items.map(item => item.name));
235
- // ["id", "name", "email", "created_at", "title", "content"]
166
+ const formattedSql = formatter.format(query);
236
167
 
237
- // Show full reference expressions for each column
238
- console.log(items.map(item => formatter.visit(item.value)));
239
- // ["u.id", "u.name", "u.email", "u.created_at", "p.title", "p.content"]
168
+ console.log(formattedSql);
169
+ // => select "u"."user_id", "u"."name" from "users" as "u" left join "orders" as "o" on "u"."user_id" = "o"."user_id" where "o"."order_id" is null
240
170
  ```
241
171
 
242
- This capability allows you to parse queries containing wildcards and understand exactly which columns are being referenced. It also supports expansion of wildcards from multiple tables and subqueries.
172
+ **Key Points:**
173
+ - No need to understand internal implementation or alias management
174
+ - Specify only the join key(s) (e.g., `['user_id']`); the ON clause is generated automatically
175
+ - Subqueries and aliases are handled automatically
176
+ - You can join queries without detailed knowledge of SQL structure or AST internals
177
+
178
+ ---
243
179
 
244
180
  ## Benchmarks
245
181
 
246
- This project includes benchmarking functionality.
247
- To run benchmarks:
182
+ This project includes a comprehensive benchmark suite to evaluate the performance of `rawsql-ts` in comparison with other popular libraries such as `node-sql-parser` and `sql-formatter`.
183
+
184
+ ### How to Run
248
185
 
249
186
  ```bash
250
187
  npm run benchmark
251
188
  ```
252
189
 
253
- ## Benchmark Details
190
+ ### Benchmark Details
254
191
 
255
- This benchmark evaluates the SQL parsing and formatting performance of `rawsql-ts` against popular libraries: `sql-formatter` and `node-sql-parser`. We test queries of varying complexity:
192
+ The benchmark suite measures SQL parsing and formatting speed across queries of varying complexity:
256
193
 
257
- - **Tokens20**: Simple `SELECT` query with a basic `WHERE` condition (~20 tokens)
258
- - **Tokens70**: Medium complexity query with `JOIN`s and multiple conditions (~70 tokens)
259
- - **Tokens140**: Complex query with `CTE`s and aggregations (~140 tokens)
260
- - **Tokens230**: Very complex query with multiple `CTE`s, subqueries, and window functions (~230 tokens)
194
+ - **Tokens20**: Simple SELECT with a basic WHERE clause (~20 tokens)
195
+ - **Tokens70**: Medium complexity query with JOINs and multiple conditions (~70 tokens)
196
+ - **Tokens140**: Complex query with CTEs and aggregations (~140 tokens)
197
+ - **Tokens230**: Highly complex query with multiple CTEs, subqueries, and window functions (~230 tokens)
261
198
 
262
- ## Benchmark Environment
199
+ ### Benchmark Environment
263
200
 
264
201
  ```
265
202
  benchmark.js v2.1.4
@@ -268,41 +205,46 @@ AMD Ryzen 7 7800X3D (8C/16T)
268
205
  Node.js v22.14.0
269
206
  ```
270
207
 
271
- ## Results
272
-
273
- ### Tokens20
274
- | Method | Mean | Error | StdDev |
275
- |---------------------------------- |-----------:|----------:|----------:|
276
- | rawsql-ts | 0.021 ms | 0.0044 ms | 0.0023 ms |
277
- | node-sql-parser | 0.169 ms | 0.0695 ms | 0.0355 ms |
278
- | sql-formatter | 0.208 ms | 0.0556 ms | 0.0284 ms |
279
-
280
- ### Tokens70
281
- | Method | Mean | Error | StdDev |
282
- |---------------------------------- |-----------:|----------:|----------:|
283
- | rawsql-ts | 0.057 ms | 0.0143 ms | 0.0073 ms |
284
- | node-sql-parser | 0.216 ms | 0.0780 ms | 0.0398 ms |
285
- | sql-formatter | 0.512 ms | 0.1251 ms | 0.0638 ms |
286
-
287
- ### Tokens140
288
- | Method | Mean | Error | StdDev |
289
- |---------------------------------- |-----------:|----------:|----------:|
290
- | rawsql-ts | 0.112 ms | 0.0236 ms | 0.0120 ms |
291
- | node-sql-parser | 0.404 ms | 0.0926 ms | 0.0472 ms |
292
- | sql-formatter | 1.004 ms | 0.3027 ms | 0.1545 ms |
293
-
294
- ### Tokens230
295
- | Method | Mean | Error | StdDev |
296
- |---------------------------------- |-----------:|----------:|----------:|
297
- | rawsql-ts | 0.182 ms | 0.0371 ms | 0.0189 ms |
298
- | node-sql-parser | 0.865 ms | 0.3325 ms | 0.1696 ms |
299
- | sql-formatter | 1.696 ms | 0.2754 ms | 0.1405 ms |
300
-
301
- ## Performance Summary
302
-
303
- - `rawsql-ts` **consistently outperforms** both `node-sql-parser` and `sql-formatter` in all tested cases.
304
- - **4x faster** than `node-sql-parser`.
305
- - **9-10x faster** than `sql-formatter`.
306
- - Maintains **full SQL parsing capabilities** while significantly improving performance.
307
-
308
- > ⚠️ **Note:** These benchmarks are based on a specific hardware and software environment. Actual performance may vary depending on system configuration and workload.
208
+ ### Results
209
+
210
+ #### Tokens20
211
+ | Method | Mean | Error | StdDev |
212
+ |------------------|----------:|----------:|----------:|
213
+ | rawsql-ts | 0.021 ms | 0.0044 ms | 0.0023 ms |
214
+ | node-sql-parser | 0.169 ms | 0.0695 ms | 0.0355 ms |
215
+ | sql-formatter | 0.208 ms | 0.0556 ms | 0.0284 ms |
216
+
217
+ #### Tokens70
218
+ | Method | Mean | Error | StdDev |
219
+ |------------------|----------:|----------:|----------:|
220
+ | rawsql-ts | 0.057 ms | 0.0143 ms | 0.0073 ms |
221
+ | node-sql-parser | 0.216 ms | 0.0780 ms | 0.0398 ms |
222
+ | sql-formatter | 0.512 ms | 0.1251 ms | 0.0638 ms |
223
+
224
+ #### Tokens140
225
+ | Method | Mean | Error | StdDev |
226
+ |------------------|----------:|----------:|----------:|
227
+ | rawsql-ts | 0.112 ms | 0.0236 ms | 0.0120 ms |
228
+ | node-sql-parser | 0.404 ms | 0.0926 ms | 0.0472 ms |
229
+ | sql-formatter | 1.004 ms | 0.3027 ms | 0.1545 ms |
230
+
231
+ #### Tokens230
232
+ | Method | Mean | Error | StdDev |
233
+ |------------------|----------:|----------:|----------:|
234
+ | rawsql-ts | 0.182 ms | 0.0371 ms | 0.0189 ms |
235
+ | node-sql-parser | 0.865 ms | 0.3325 ms | 0.1696 ms |
236
+ | sql-formatter | 1.696 ms | 0.2754 ms | 0.1405 ms |
237
+
238
+ ### Performance Summary
239
+
240
+ - `rawsql-ts` consistently outperforms both `node-sql-parser` and `sql-formatter` in all tested scenarios.
241
+ - Approximately 4x faster than `node-sql-parser`.
242
+ - Approximately 910x faster than `sql-formatter`.
243
+ - Maintains high performance even with complex SQL while providing comprehensive features.
244
+
245
+ > **Note:** These benchmarks are based on a specific hardware and software environment. Actual performance may vary depending on system configuration and query complexity.
246
+
247
+ ---
248
+
249
+ Feel free to try rawsql-ts! Questions, requests, and bug reports are always welcome.
250
+
@@ -0,0 +1,14 @@
1
+ export * from './parsers/SelectQueryParser';
2
+ export * from './models/BinarySelectQuery';
3
+ export * from './models/SelectQuery';
4
+ export * from './models/ValueComponent';
5
+ export * from './models/ValuesQuery';
6
+ export * from './transformers/CTECollector';
7
+ export * from './transformers/CTENormalizer';
8
+ export * from './transformers/Formatter';
9
+ export * from './transformers/QueryConverter';
10
+ export * from './transformers/SelectValueCollector';
11
+ export * from './transformers/SelectableColumnCollector';
12
+ export * from './transformers/TableColumnResolver';
13
+ export * from './transformers/TableSourceCollector';
14
+ export * from './transformers/UpstreamSelectQueryFinder';
package/dist/index.js ADDED
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // Entry point for rawsql-ts package
18
+ __exportStar(require("./parsers/SelectQueryParser"), exports);
19
+ __exportStar(require("./models/BinarySelectQuery"), exports);
20
+ __exportStar(require("./models/SelectQuery"), exports);
21
+ __exportStar(require("./models/ValueComponent"), exports);
22
+ __exportStar(require("./models/ValuesQuery"), exports);
23
+ __exportStar(require("./transformers/CTECollector"), exports);
24
+ __exportStar(require("./transformers/CTENormalizer"), exports);
25
+ __exportStar(require("./transformers/Formatter"), exports);
26
+ __exportStar(require("./transformers/QueryConverter"), exports);
27
+ __exportStar(require("./transformers/SelectValueCollector"), exports);
28
+ __exportStar(require("./transformers/SelectableColumnCollector"), exports);
29
+ __exportStar(require("./transformers/TableColumnResolver"), exports);
30
+ __exportStar(require("./transformers/TableSourceCollector"), exports);
31
+ __exportStar(require("./transformers/UpstreamSelectQueryFinder"), exports);
32
+ // Add more exports here if you want to expose additional public API
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,8DAA4C;AAE5C,6DAA2C;AAC3C,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AAErC,8DAA4C;AAC5C,+DAA6C;AAC7C,2DAAyC;AACzC,gEAA8C;AAC9C,sEAAoD;AACpD,2EAAyD;AACzD,qEAAmD;AACnD,sEAAoD;AACpD,2EAAyD;AACzD,oEAAoE"}
@@ -0,0 +1,91 @@
1
+ import { SourceExpression } from "./Clause";
2
+ import type { SelectQuery } from "./SelectQuery";
3
+ import { SqlComponent } from "./SqlComponent";
4
+ import { RawString } from "./ValueComponent";
5
+ /**
6
+ * Represents a binary SELECT query (e.g., UNION, INTERSECT, EXCEPT).
7
+ */
8
+ export declare class BinarySelectQuery extends SqlComponent {
9
+ static kind: symbol;
10
+ left: SelectQuery;
11
+ operator: RawString;
12
+ right: SelectQuery;
13
+ constructor(left: SelectQuery, operator: string, right: SelectQuery);
14
+ /**
15
+ * Appends another query to this binary query using UNION as the operator.
16
+ * This creates a new BinarySelectQuery where the left side is this binary query
17
+ * and the right side is the provided query.
18
+ *
19
+ * @param query The query to append with UNION
20
+ * @returns A new BinarySelectQuery representing "(this) UNION query"
21
+ */
22
+ union(query: SelectQuery): BinarySelectQuery;
23
+ /**
24
+ * Appends another query to this binary query using UNION ALL as the operator.
25
+ * This creates a new BinarySelectQuery where the left side is this binary query
26
+ * and the right side is the provided query.
27
+ *
28
+ * @param query The query to append with UNION ALL
29
+ * @returns A new BinarySelectQuery representing "(this) UNION ALL query"
30
+ */
31
+ unionAll(query: SelectQuery): BinarySelectQuery;
32
+ /**
33
+ * Appends another query to this binary query using INTERSECT as the operator.
34
+ * This creates a new BinarySelectQuery where the left side is this binary query
35
+ * and the right side is the provided query.
36
+ *
37
+ * @param query The query to append with INTERSECT
38
+ * @returns A new BinarySelectQuery representing "(this) INTERSECT query"
39
+ */
40
+ intersect(query: SelectQuery): BinarySelectQuery;
41
+ /**
42
+ * Appends another query to this binary query using INTERSECT ALL as the operator.
43
+ * This creates a new BinarySelectQuery where the left side is this binary query
44
+ * and the right side is the provided query.
45
+ *
46
+ * @param query The query to append with INTERSECT ALL
47
+ * @returns A new BinarySelectQuery representing "(this) INTERSECT ALL query"
48
+ */
49
+ intersectAll(query: SelectQuery): BinarySelectQuery;
50
+ /**
51
+ * Appends another query to this binary query using EXCEPT as the operator.
52
+ * This creates a new BinarySelectQuery where the left side is this binary query
53
+ * and the right side is the provided query.
54
+ *
55
+ * @param query The query to append with EXCEPT
56
+ * @returns A new BinarySelectQuery representing "(this) EXCEPT query"
57
+ */
58
+ except(query: SelectQuery): BinarySelectQuery;
59
+ /**
60
+ * Appends another query to this binary query using EXCEPT ALL as the operator.
61
+ * This creates a new BinarySelectQuery where the left side is this binary query
62
+ * and the right side is the provided query.
63
+ *
64
+ * @param query The query to append with EXCEPT ALL
65
+ * @returns A new BinarySelectQuery representing "(this) EXCEPT ALL query"
66
+ */
67
+ exceptAll(query: SelectQuery): BinarySelectQuery;
68
+ /**
69
+ * Appends another query to this binary query using the specified operator.
70
+ * This creates a new BinarySelectQuery where the left side is this binary query
71
+ * and the right side is the provided query.
72
+ *
73
+ * @param operator SQL operator to use (e.g. 'union', 'union all', 'intersect', 'except')
74
+ * @param query The query to append with the specified operator
75
+ * @returns A new BinarySelectQuery representing "(this) [operator] query"
76
+ */
77
+ appendSelectQuery(operator: string, query: SelectQuery): BinarySelectQuery;
78
+ /**
79
+ * Appends another query to this binary query using UNION as the operator, accepting a raw SQL string.
80
+ * This method parses the SQL string and appends the resulting query using UNION.
81
+ * @param sql The SQL string to parse and union
82
+ * @returns A new BinarySelectQuery representing "(this) UNION (parsed query)"
83
+ */
84
+ unionRaw(sql: string): BinarySelectQuery;
85
+ unionAllRaw(sql: string): BinarySelectQuery;
86
+ intersectRaw(sql: string): BinarySelectQuery;
87
+ intersectAllRaw(sql: string): BinarySelectQuery;
88
+ exceptRaw(sql: string): BinarySelectQuery;
89
+ exceptAllRaw(sql: string): BinarySelectQuery;
90
+ toSource(alias?: string): SourceExpression;
91
+ }