@deterministic-code/datasources 0.1.0 → 0.1.2

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 (715) hide show
  1. package/dist/ArrayReader.d.ts +12 -0
  2. package/dist/ArrayReader.js +27 -0
  3. package/dist/BatchCommandIBulkWriteStrategy.d.ts +33 -0
  4. package/dist/BatchCommandIBulkWriteStrategy.js +150 -0
  5. package/dist/BuiltRepository.d.ts +16 -0
  6. package/dist/BuiltRepository.js +1 -0
  7. package/dist/BulkCRUDRepository.d.ts +17 -0
  8. package/dist/BulkCRUDRepository.js +48 -0
  9. package/dist/BulkCommand.d.ts +5 -0
  10. package/dist/BulkCommand.js +1 -0
  11. package/dist/BulkWriteEnrichment.d.ts +4 -0
  12. package/dist/BulkWriteEnrichment.js +11 -0
  13. package/dist/CRUDRepository.d.ts +40 -0
  14. package/dist/CRUDRepository.js +182 -0
  15. package/dist/CRUDRepositoryBuilder.d.ts +19 -0
  16. package/dist/CRUDRepositoryBuilder.js +30 -0
  17. package/{src/CRUDRepositoryOptions.ts → dist/CRUDRepositoryOptions.d.ts} +5 -6
  18. package/dist/CRUDRepositoryOptions.js +1 -0
  19. package/dist/CRUDRepositoryStatements.d.ts +17 -0
  20. package/dist/CRUDRepositoryStatements.js +19 -0
  21. package/dist/CascadeDeleteEnrichmentStrategy.d.ts +7 -0
  22. package/dist/CascadeDeleteEnrichmentStrategy.js +28 -0
  23. package/dist/CascadeDeleteUpdateEnrichmentStrategy.d.ts +8 -0
  24. package/dist/CascadeDeleteUpdateEnrichmentStrategy.js +25 -0
  25. package/dist/CommandMiddlewareHost.d.ts +22 -0
  26. package/dist/CommandMiddlewareHost.js +73 -0
  27. package/dist/ConsoleCommandMiddleware.d.ts +14 -0
  28. package/dist/ConsoleCommandMiddleware.js +45 -0
  29. package/dist/CreateEnrichmentStrategy.d.ts +14 -0
  30. package/dist/CreateEnrichmentStrategy.js +64 -0
  31. package/dist/Datasource.d.ts +30 -0
  32. package/dist/Datasource.js +98 -0
  33. package/dist/DatasourceError.d.ts +3 -0
  34. package/dist/DatasourceError.js +6 -0
  35. package/dist/DatasourceFactory.d.ts +12 -0
  36. package/dist/DatasourceFactory.js +76 -0
  37. package/dist/DatasourceOptions.js +1 -0
  38. package/dist/DatasourceUrl.d.ts +12 -0
  39. package/dist/DatasourceUrl.js +28 -0
  40. package/dist/DatasourceUrlParser.d.ts +4 -0
  41. package/dist/DatasourceUrlParser.js +168 -0
  42. package/dist/DefaultCreateEnrichmentStrategy.d.ts +7 -0
  43. package/dist/DefaultCreateEnrichmentStrategy.js +18 -0
  44. package/dist/DefaultReadonlyEnrichmentStrategy.d.ts +19 -0
  45. package/dist/DefaultReadonlyEnrichmentStrategy.js +107 -0
  46. package/dist/DefaultUpdateEnrichmentStrategy.d.ts +7 -0
  47. package/dist/DefaultUpdateEnrichmentStrategy.js +41 -0
  48. package/dist/DefaultWriteEnrichmentStrategy.d.ts +21 -0
  49. package/dist/DefaultWriteEnrichmentStrategy.js +135 -0
  50. package/dist/DeleteEnrichmentStrategy.d.ts +11 -0
  51. package/dist/DeleteEnrichmentStrategy.js +28 -0
  52. package/dist/DriverLoader.d.ts +5 -0
  53. package/dist/DriverLoader.js +87 -0
  54. package/dist/Enrichment.d.ts +13 -0
  55. package/dist/Enrichment.js +1 -0
  56. package/dist/EnrichmentPropertyType.d.ts +7 -0
  57. package/dist/EnrichmentPropertyType.js +6 -0
  58. package/dist/ExpectConsoleMiddleware.d.ts +15 -0
  59. package/dist/ExpectConsoleMiddleware.js +30 -0
  60. package/dist/FirstResultReader.d.ts +19 -0
  61. package/dist/FirstResultReader.js +43 -0
  62. package/dist/HashsetOptimizedReadonlyEnrichmentStrategy.d.ts +9 -0
  63. package/dist/HashsetOptimizedReadonlyEnrichmentStrategy.js +58 -0
  64. package/dist/IBulkWriteStrategy.d.ts +12 -0
  65. package/dist/IBulkWriteStrategy.js +1 -0
  66. package/dist/ICRUDRepository.d.ts +12 -0
  67. package/dist/ICRUDRepository.js +1 -0
  68. package/dist/ICRUDRepositoryFactory.d.ts +7 -0
  69. package/dist/ICRUDRepositoryFactory.js +1 -0
  70. package/dist/ICommand.d.ts +20 -0
  71. package/dist/ICommand.js +6 -0
  72. package/dist/ICommandMiddleware.d.ts +12 -0
  73. package/dist/ICommandMiddleware.js +1 -0
  74. package/dist/IConnection.d.ts +12 -0
  75. package/dist/IConnection.js +1 -0
  76. package/dist/IDatasource.d.ts +18 -0
  77. package/dist/IDatasource.js +1 -0
  78. package/dist/IDatasourceFactory.d.ts +5 -0
  79. package/dist/IDatasourceFactory.js +1 -0
  80. package/dist/IDriver.d.ts +23 -0
  81. package/dist/IDriver.js +1 -0
  82. package/dist/IEnriched.d.ts +6 -0
  83. package/dist/IEnriched.js +1 -0
  84. package/dist/IReader.d.ts +8 -0
  85. package/dist/IReader.js +1 -0
  86. package/dist/IReadonlyEnrichmentStrategy.d.ts +7 -0
  87. package/dist/IReadonlyEnrichmentStrategy.js +1 -0
  88. package/dist/IReadonlyRepository.d.ts +11 -0
  89. package/dist/IReadonlyRepository.js +1 -0
  90. package/dist/IRepository.d.ts +4 -0
  91. package/dist/IRepository.js +1 -0
  92. package/dist/IRepositoryFactory.d.ts +7 -0
  93. package/dist/IRepositoryFactory.js +1 -0
  94. package/{src/IRepositoryTree.ts → dist/IRepositoryTree.d.ts} +2 -3
  95. package/dist/IRepositoryTree.js +1 -0
  96. package/dist/IRepositoryTreeNode.d.ts +7 -0
  97. package/dist/IRepositoryTreeNode.js +1 -0
  98. package/dist/ITransaction.d.ts +8 -0
  99. package/dist/ITransaction.js +1 -0
  100. package/dist/IUnitOfWork.d.ts +5 -0
  101. package/dist/IUnitOfWork.js +1 -0
  102. package/dist/IWriteEnrichmentStrategy.d.ts +7 -0
  103. package/dist/IWriteEnrichmentStrategy.js +1 -0
  104. package/dist/Information.d.ts +5 -0
  105. package/dist/Information.js +1 -0
  106. package/dist/IsolationLevel.d.ts +7 -0
  107. package/dist/IsolationLevel.js +6 -0
  108. package/dist/LazyWriteEnrichmentStrategy.d.ts +4 -0
  109. package/dist/LazyWriteEnrichmentStrategy.js +4 -0
  110. package/dist/NestedToObjectEnrichmentStrategy.d.ts +10 -0
  111. package/dist/NestedToObjectEnrichmentStrategy.js +20 -0
  112. package/dist/Parameter.d.ts +7 -0
  113. package/dist/Parameter.js +1 -0
  114. package/dist/ParameterDirection.d.ts +7 -0
  115. package/dist/ParameterDirection.js +6 -0
  116. package/dist/ProviderCatalog.d.ts +7 -0
  117. package/dist/ProviderCatalog.js +23 -0
  118. package/dist/ProviderNotImplementedError.d.ts +4 -0
  119. package/dist/ProviderNotImplementedError.js +8 -0
  120. package/dist/ProviderNotInstalledError.d.ts +4 -0
  121. package/dist/ProviderNotInstalledError.js +8 -0
  122. package/dist/ReadonlyRepository.d.ts +59 -0
  123. package/dist/ReadonlyRepository.js +150 -0
  124. package/dist/ReadonlyRepositoryBuilder.d.ts +12 -0
  125. package/dist/ReadonlyRepositoryBuilder.js +43 -0
  126. package/dist/ReadonlyRepositoryMappingOptions.d.ts +14 -0
  127. package/dist/ReadonlyRepositoryMappingOptions.js +1 -0
  128. package/dist/ReadonlyRepositoryStatements.d.ts +8 -0
  129. package/dist/ReadonlyRepositoryStatements.js +10 -0
  130. package/dist/RepositoryAccess.d.ts +11 -0
  131. package/dist/RepositoryAccess.js +12 -0
  132. package/dist/RepositoryFactory.d.ts +23 -0
  133. package/dist/RepositoryFactory.js +71 -0
  134. package/dist/RepositoryNotRegisteredError.d.ts +4 -0
  135. package/dist/RepositoryNotRegisteredError.js +8 -0
  136. package/dist/RepositoryTree.d.ts +6 -0
  137. package/dist/RepositoryTree.js +6 -0
  138. package/dist/RepositoryTreeNode.d.ts +9 -0
  139. package/dist/RepositoryTreeNode.js +12 -0
  140. package/dist/Response.d.ts +7 -0
  141. package/dist/Response.js +13 -0
  142. package/dist/Row.d.ts +2 -0
  143. package/dist/Row.js +1 -0
  144. package/dist/SingleCommandIBulkWriteStrategy.d.ts +11 -0
  145. package/dist/SingleCommandIBulkWriteStrategy.js +21 -0
  146. package/dist/StatementMappers.d.ts +16 -0
  147. package/dist/StatementMappers.js +88 -0
  148. package/dist/StoredEnrichment.d.ts +11 -0
  149. package/dist/StoredEnrichment.js +12 -0
  150. package/dist/StoredProcedureBulkWriteStrategy.d.ts +27 -0
  151. package/dist/StoredProcedureBulkWriteStrategy.js +143 -0
  152. package/dist/StreamingReader.d.ts +16 -0
  153. package/dist/StreamingReader.js +53 -0
  154. package/dist/UnitOfWorkTransaction.d.ts +12 -0
  155. package/dist/UnitOfWorkTransaction.js +51 -0
  156. package/dist/UpdateEnrichmentStrategy.d.ts +18 -0
  157. package/dist/UpdateEnrichmentStrategy.js +61 -0
  158. package/dist/WriteMode.js +1 -0
  159. package/dist/builders/Field.d.ts +5 -0
  160. package/dist/builders/Field.js +1 -0
  161. package/dist/builders/Scalar.js +1 -0
  162. package/dist/builders/index.d.ts +2 -0
  163. package/dist/builders/index.js +1 -0
  164. package/dist/collectAsync.d.ts +1 -0
  165. package/dist/collectAsync.js +7 -0
  166. package/dist/converters/Cell.d.ts +2 -0
  167. package/dist/converters/Cell.js +1 -0
  168. package/dist/converters/ChangeCasingConverter.d.ts +7 -0
  169. package/dist/converters/ChangeCasingConverter.js +46 -0
  170. package/dist/converters/Constructable.js +1 -0
  171. package/dist/converters/DefaultValueConverter.d.ts +25 -0
  172. package/dist/converters/DefaultValueConverter.js +183 -0
  173. package/dist/converters/DefaultValueOptions.d.ts +9 -0
  174. package/dist/converters/DefaultValueOptions.js +1 -0
  175. package/dist/converters/DeterministicTypeConverter.d.ts +11 -0
  176. package/dist/converters/DeterministicTypeConverter.js +74 -0
  177. package/dist/converters/IMapping.d.ts +4 -0
  178. package/dist/converters/IMapping.js +1 -0
  179. package/dist/converters/MetaDataRowTypeConverter.d.ts +14 -0
  180. package/dist/converters/MetaDataRowTypeConverter.js +71 -0
  181. package/dist/converters/PluralizerConverter.d.ts +4 -0
  182. package/dist/converters/PluralizerConverter.js +54 -0
  183. package/dist/converters/RegexConverter.d.ts +7 -0
  184. package/dist/converters/RegexConverter.js +12 -0
  185. package/dist/converters/ReplaceConverter.d.ts +7 -0
  186. package/dist/converters/ReplaceConverter.js +10 -0
  187. package/dist/converters/RowTypeConverter.d.ts +10 -0
  188. package/dist/converters/RowTypeConverter.js +25 -0
  189. package/dist/converters/SpecField.d.ts +7 -0
  190. package/dist/converters/SpecField.js +1 -0
  191. package/dist/converters/SpecFieldRules.d.ts +17 -0
  192. package/dist/converters/SpecFieldRules.js +1 -0
  193. package/dist/converters/ToLowerCaseConverter.d.ts +4 -0
  194. package/dist/converters/ToLowerCaseConverter.js +4 -0
  195. package/dist/converters/ToUpperCaseConverter.d.ts +4 -0
  196. package/dist/converters/ToUpperCaseConverter.js +4 -0
  197. package/dist/converters/TypeConverter.d.ts +5 -0
  198. package/dist/converters/TypeConverter.js +2 -0
  199. package/dist/createCRUDRepositoryOptions.d.ts +7 -0
  200. package/dist/createCRUDRepositoryOptions.js +7 -0
  201. package/dist/createReadonlyRepositoryMappingOptions.d.ts +6 -0
  202. package/dist/createReadonlyRepositoryMappingOptions.js +16 -0
  203. package/dist/dotEnv.d.ts +5 -0
  204. package/dist/dotEnv.js +9 -0
  205. package/dist/index.d.ts +126 -0
  206. package/dist/index.js +83 -0
  207. package/dist/mappers/ChangeCasingMapper.d.ts +9 -0
  208. package/dist/mappers/ChangeCasingMapper.js +11 -0
  209. package/dist/mappers/DictionaryMapper.d.ts +8 -0
  210. package/dist/mappers/DictionaryMapper.js +13 -0
  211. package/dist/mappers/FlatToNestedMapper.d.ts +20 -0
  212. package/dist/mappers/FlatToNestedMapper.js +105 -0
  213. package/dist/mappers/IFlatToNestedMapper.d.ts +6 -0
  214. package/dist/mappers/IFlatToNestedMapper.js +1 -0
  215. package/dist/mappers/IMapper.d.ts +4 -0
  216. package/dist/mappers/IMapper.js +1 -0
  217. package/dist/mappers/IdentityMapper.d.ts +5 -0
  218. package/dist/mappers/IdentityMapper.js +4 -0
  219. package/dist/mappers/PluralizerMapper.d.ts +6 -0
  220. package/dist/mappers/PluralizerMapper.js +6 -0
  221. package/dist/mappers/RowTypeMapper.d.ts +6 -0
  222. package/dist/mappers/RowTypeMapper.js +7 -0
  223. package/dist/mappers/TransformConverterMapper.d.ts +5 -0
  224. package/dist/mappers/TransformConverterMapper.js +6 -0
  225. package/dist/mappers/TransformMapper.d.ts +6 -0
  226. package/dist/mappers/TransformMapper.js +8 -0
  227. package/dist/mappers/TypeMap.d.ts +8 -0
  228. package/dist/mappers/TypeMap.js +1 -0
  229. package/dist/mappers/TypeMapGroup.d.ts +5 -0
  230. package/dist/mappers/TypeMapGroup.js +1 -0
  231. package/dist/mocks/index.d.ts +9 -0
  232. package/dist/mocks/index.js +9 -0
  233. package/dist/mocks/mock-command.d.ts +28 -0
  234. package/dist/mocks/mock-command.js +42 -0
  235. package/dist/mocks/mock-connection.d.ts +22 -0
  236. package/dist/mocks/mock-connection.js +48 -0
  237. package/dist/mocks/mock-datasource.d.ts +24 -0
  238. package/dist/mocks/mock-datasource.js +44 -0
  239. package/dist/mocks/mock-driver.d.ts +15 -0
  240. package/dist/mocks/mock-driver.js +15 -0
  241. package/dist/mocks/mock-reader.d.ts +14 -0
  242. package/dist/mocks/mock-reader.js +33 -0
  243. package/dist/mocks/mock-repository.d.ts +42 -0
  244. package/dist/mocks/mock-repository.js +61 -0
  245. package/dist/mocks/mock-select-statement.d.ts +10 -0
  246. package/dist/mocks/mock-select-statement.js +13 -0
  247. package/dist/mocks/mock-transaction.d.ts +16 -0
  248. package/dist/mocks/mock-transaction.js +28 -0
  249. package/dist/mocks/mock-where.d.ts +8 -0
  250. package/dist/mocks/mock-where.js +11 -0
  251. package/dist/parametersToRecord.d.ts +2 -0
  252. package/dist/parametersToRecord.js +9 -0
  253. package/dist/readerToAsyncIterable.d.ts +2 -0
  254. package/dist/readerToAsyncIterable.js +7 -0
  255. package/dist/splitStatements.d.ts +1 -0
  256. package/dist/splitStatements.js +106 -0
  257. package/dist/statementParameters.d.ts +1 -0
  258. package/dist/statementParameters.js +25 -0
  259. package/dist/statementUsesParameter.d.ts +1 -0
  260. package/dist/statementUsesParameter.js +2 -0
  261. package/dist/statements/Aggregate.d.ts +6 -0
  262. package/dist/statements/Aggregate.js +7 -0
  263. package/dist/statements/AlterTableStatement.d.ts +33 -0
  264. package/dist/statements/AlterTableStatement.js +9 -0
  265. package/dist/statements/AlterTableStatementTextRenderer.d.ts +9 -0
  266. package/dist/statements/AlterTableStatementTextRenderer.js +33 -0
  267. package/dist/statements/ArrayExpression.d.ts +5 -0
  268. package/dist/statements/ArrayExpression.js +6 -0
  269. package/dist/statements/BulkDeleteStatement.d.ts +11 -0
  270. package/dist/statements/BulkDeleteStatement.js +15 -0
  271. package/dist/statements/BulkDeleteStatementTextRenderer.d.ts +4 -0
  272. package/dist/statements/BulkDeleteStatementTextRenderer.js +15 -0
  273. package/dist/statements/BulkInsertStatement.d.ts +12 -0
  274. package/dist/statements/BulkInsertStatement.js +29 -0
  275. package/dist/statements/BulkInsertStatementTextRenderer.d.ts +4 -0
  276. package/dist/statements/BulkInsertStatementTextRenderer.js +6 -0
  277. package/dist/statements/BulkUpdateStatement.d.ts +16 -0
  278. package/dist/statements/BulkUpdateStatement.js +17 -0
  279. package/dist/statements/BulkUpdateStatementTextRenderer.d.ts +8 -0
  280. package/dist/statements/BulkUpdateStatementTextRenderer.js +20 -0
  281. package/dist/statements/CheckConstraint.d.ts +7 -0
  282. package/dist/statements/CheckConstraint.js +9 -0
  283. package/dist/statements/Cmp.d.ts +9 -0
  284. package/dist/statements/Cmp.js +7 -0
  285. package/dist/statements/Column.d.ts +9 -0
  286. package/dist/statements/Column.js +1 -0
  287. package/dist/statements/ColumnDefault.d.ts +5 -0
  288. package/dist/statements/ColumnDefault.js +8 -0
  289. package/dist/statements/Condition.d.ts +3 -0
  290. package/dist/statements/Condition.js +2 -0
  291. package/dist/statements/ConditionRenderer.d.ts +12 -0
  292. package/dist/statements/ConditionRenderer.js +11 -0
  293. package/dist/statements/CreateBulkCreateStoredProcedureStatement.d.ts +13 -0
  294. package/dist/statements/CreateBulkCreateStoredProcedureStatement.js +17 -0
  295. package/dist/statements/CreateBulkCreateStoredProcedureStatementTextRenderer.d.ts +4 -0
  296. package/dist/statements/CreateBulkCreateStoredProcedureStatementTextRenderer.js +5 -0
  297. package/dist/statements/CreateBulkDeleteStoredProcedureStatement.d.ts +13 -0
  298. package/dist/statements/CreateBulkDeleteStoredProcedureStatement.js +17 -0
  299. package/dist/statements/CreateBulkDeleteStoredProcedureStatementTextRenderer.d.ts +4 -0
  300. package/dist/statements/CreateBulkDeleteStoredProcedureStatementTextRenderer.js +5 -0
  301. package/dist/statements/CreateBulkUpdateStoredProcedureStatement.d.ts +13 -0
  302. package/dist/statements/CreateBulkUpdateStoredProcedureStatement.js +17 -0
  303. package/dist/statements/CreateBulkUpdateStoredProcedureStatementTextRenderer.d.ts +4 -0
  304. package/dist/statements/CreateBulkUpdateStoredProcedureStatementTextRenderer.js +5 -0
  305. package/dist/statements/CreateCreateStoredProcedureStatement.d.ts +16 -0
  306. package/dist/statements/CreateCreateStoredProcedureStatement.js +23 -0
  307. package/dist/statements/CreateCreateStoredProcedureStatementTextRenderer.d.ts +4 -0
  308. package/dist/statements/CreateCreateStoredProcedureStatementTextRenderer.js +5 -0
  309. package/dist/statements/CreateDeleteStoredProcedureStatement.d.ts +17 -0
  310. package/dist/statements/CreateDeleteStoredProcedureStatement.js +25 -0
  311. package/dist/statements/CreateDeleteStoredProcedureStatementTextRenderer.d.ts +4 -0
  312. package/dist/statements/CreateDeleteStoredProcedureStatementTextRenderer.js +5 -0
  313. package/dist/statements/CreateIndexStatement.d.ts +10 -0
  314. package/dist/statements/CreateIndexStatement.js +13 -0
  315. package/dist/statements/CreateIndexStatementTextRenderer.d.ts +5 -0
  316. package/dist/statements/CreateIndexStatementTextRenderer.js +8 -0
  317. package/dist/statements/CreateReadStoredProcedureStatement.d.ts +17 -0
  318. package/dist/statements/CreateReadStoredProcedureStatement.js +25 -0
  319. package/dist/statements/CreateReadStoredProcedureStatementTextRenderer.d.ts +4 -0
  320. package/dist/statements/CreateReadStoredProcedureStatementTextRenderer.js +5 -0
  321. package/dist/statements/CreateRoutineStatement.d.ts +22 -0
  322. package/dist/statements/CreateRoutineStatementTextRenderer.d.ts +4 -0
  323. package/dist/statements/CreateTableStatement.d.ts +11 -0
  324. package/dist/statements/CreateTableStatement.js +11 -0
  325. package/dist/statements/CreateTableStatementTextRenderer.d.ts +18 -0
  326. package/dist/statements/CreateTableStatementTextRenderer.js +65 -0
  327. package/dist/statements/CreateTriggerStatement.d.ts +11 -0
  328. package/dist/statements/CreateTriggerStatement.js +15 -0
  329. package/dist/statements/CreateTriggerStatementTextRenderer.d.ts +4 -0
  330. package/dist/statements/CreateTriggerStatementTextRenderer.js +5 -0
  331. package/dist/statements/CreateUpdateStoredProcedureStatement.d.ts +17 -0
  332. package/dist/statements/CreateUpdateStoredProcedureStatement.js +25 -0
  333. package/dist/statements/CreateUpdateStoredProcedureStatementTextRenderer.d.ts +4 -0
  334. package/dist/statements/CreateUpdateStoredProcedureStatementTextRenderer.js +5 -0
  335. package/dist/statements/DefaultStatementTextRenderer.d.ts +5 -0
  336. package/dist/statements/DefaultStatementTextRenderer.js +7 -0
  337. package/dist/statements/DeleteStatement.d.ts +9 -0
  338. package/dist/statements/DeleteStatement.js +9 -0
  339. package/dist/statements/DeleteStatementTextRenderer.d.ts +7 -0
  340. package/dist/statements/DeleteStatementTextRenderer.js +11 -0
  341. package/dist/statements/DropIndexStatement.d.ts +8 -0
  342. package/dist/statements/DropIndexStatement.js +9 -0
  343. package/dist/statements/DropIndexStatementTextRenderer.d.ts +5 -0
  344. package/dist/statements/DropIndexStatementTextRenderer.js +8 -0
  345. package/dist/statements/DropRoutineStatement.d.ts +7 -0
  346. package/dist/statements/DropRoutineStatement.js +7 -0
  347. package/dist/statements/DropRoutineStatementTextRenderer.d.ts +4 -0
  348. package/dist/statements/DropRoutineStatementTextRenderer.js +5 -0
  349. package/dist/statements/DropTableStatement.d.ts +7 -0
  350. package/dist/statements/DropTableStatement.js +7 -0
  351. package/dist/statements/DropTableStatementTextRenderer.d.ts +5 -0
  352. package/dist/statements/DropTableStatementTextRenderer.js +8 -0
  353. package/dist/statements/DropTriggerStatement.d.ts +8 -0
  354. package/dist/statements/DropTriggerStatement.js +9 -0
  355. package/dist/statements/DropTriggerStatementTextRenderer.d.ts +5 -0
  356. package/dist/statements/DropTriggerStatementTextRenderer.js +8 -0
  357. package/dist/statements/ExecuteStoredProcedureStatement.d.ts +9 -0
  358. package/dist/statements/ExecuteStoredProcedureStatement.js +9 -0
  359. package/dist/statements/ExecuteStoredProcedureStatementTextRenderer.d.ts +4 -0
  360. package/dist/statements/ExecuteStoredProcedureStatementTextRenderer.js +10 -0
  361. package/dist/statements/ExpressionEvaluator.d.ts +5 -0
  362. package/dist/statements/ExpressionEvaluator.js +122 -0
  363. package/dist/statements/ExpressionRenderer.d.ts +8 -0
  364. package/dist/statements/ExpressionRenderer.js +141 -0
  365. package/dist/statements/ForeignKey.d.ts +19 -0
  366. package/dist/statements/ForeignKey.js +24 -0
  367. package/dist/statements/IAlterTableStatement.d.ts +3 -0
  368. package/dist/statements/IAlterTableStatement.js +1 -0
  369. package/dist/statements/IBulkDeleteStatement.d.ts +3 -0
  370. package/dist/statements/IBulkDeleteStatement.js +1 -0
  371. package/dist/statements/IBulkInsertStatement.d.ts +3 -0
  372. package/dist/statements/IBulkInsertStatement.js +1 -0
  373. package/dist/statements/IBulkUpdateStatement.d.ts +3 -0
  374. package/dist/statements/IBulkUpdateStatement.js +1 -0
  375. package/dist/statements/ICondition.d.ts +4 -0
  376. package/dist/statements/ICondition.js +1 -0
  377. package/dist/statements/IConditionVisitor.d.ts +6 -0
  378. package/dist/statements/IConditionVisitor.js +1 -0
  379. package/dist/statements/ICreateBulkCreateStoredProcedureStatement.d.ts +3 -0
  380. package/dist/statements/ICreateBulkCreateStoredProcedureStatement.js +1 -0
  381. package/dist/statements/ICreateBulkDeleteStoredProcedureStatement.d.ts +3 -0
  382. package/dist/statements/ICreateBulkDeleteStoredProcedureStatement.js +1 -0
  383. package/dist/statements/ICreateBulkUpdateStoredProcedureStatement.d.ts +3 -0
  384. package/dist/statements/ICreateBulkUpdateStoredProcedureStatement.js +1 -0
  385. package/dist/statements/ICreateCreateStoredProcedureStatement.d.ts +3 -0
  386. package/dist/statements/ICreateCreateStoredProcedureStatement.js +1 -0
  387. package/dist/statements/ICreateDeleteStoredProcedureStatement.d.ts +3 -0
  388. package/dist/statements/ICreateDeleteStoredProcedureStatement.js +1 -0
  389. package/dist/statements/ICreateIndexStatement.d.ts +3 -0
  390. package/dist/statements/ICreateIndexStatement.js +1 -0
  391. package/dist/statements/ICreateReadStoredProcedureStatement.d.ts +3 -0
  392. package/dist/statements/ICreateReadStoredProcedureStatement.js +1 -0
  393. package/dist/statements/ICreateRoutineStatement.d.ts +3 -0
  394. package/dist/statements/ICreateTableStatement.d.ts +3 -0
  395. package/dist/statements/ICreateTableStatement.js +1 -0
  396. package/dist/statements/ICreateTriggerStatement.d.ts +3 -0
  397. package/dist/statements/ICreateTriggerStatement.js +1 -0
  398. package/dist/statements/ICreateUpdateStoredProcedureStatement.d.ts +3 -0
  399. package/dist/statements/ICreateUpdateStoredProcedureStatement.js +1 -0
  400. package/dist/statements/IDeleteStatement.d.ts +5 -0
  401. package/dist/statements/IDeleteStatement.js +1 -0
  402. package/dist/statements/IDropIndexStatement.d.ts +3 -0
  403. package/dist/statements/IDropIndexStatement.js +1 -0
  404. package/dist/statements/IDropRoutineStatement.d.ts +3 -0
  405. package/dist/statements/IDropRoutineStatement.js +1 -0
  406. package/dist/statements/IDropTableStatement.d.ts +3 -0
  407. package/dist/statements/IDropTableStatement.js +1 -0
  408. package/dist/statements/IDropTriggerStatement.d.ts +3 -0
  409. package/dist/statements/IDropTriggerStatement.js +1 -0
  410. package/{src/statements/IExecuteStoredProcedureStatement.ts → dist/statements/IExecuteStoredProcedureStatement.d.ts} +3 -3
  411. package/dist/statements/IExecuteStoredProcedureStatement.js +1 -0
  412. package/dist/statements/IExpression.d.ts +2 -0
  413. package/dist/statements/IExpression.js +1 -0
  414. package/dist/statements/IIdentityInsertStatement.d.ts +3 -0
  415. package/dist/statements/IIdentityInsertStatement.js +1 -0
  416. package/dist/statements/IInsertStatement.d.ts +3 -0
  417. package/dist/statements/IInsertStatement.js +1 -0
  418. package/dist/statements/IReturnStatement.d.ts +3 -0
  419. package/dist/statements/IReturnStatement.js +1 -0
  420. package/dist/statements/ISelectStatement.d.ts +5 -0
  421. package/dist/statements/ISelectStatement.js +1 -0
  422. package/dist/statements/IStatement.d.ts +4 -0
  423. package/dist/statements/IStatement.js +1 -0
  424. package/dist/statements/IStatementVisitor.d.ts +54 -0
  425. package/dist/statements/IStatementVisitor.js +1 -0
  426. package/{src/statements/ITableConstraint.ts → dist/statements/ITableConstraint.d.ts} +2 -3
  427. package/dist/statements/ITableConstraint.js +1 -0
  428. package/dist/statements/IUpdateStatement.d.ts +5 -0
  429. package/dist/statements/IUpdateStatement.js +1 -0
  430. package/dist/statements/IWhere.d.ts +6 -0
  431. package/dist/statements/IWhere.js +1 -0
  432. package/dist/statements/Identifier.d.ts +5 -0
  433. package/dist/statements/Identifier.js +6 -0
  434. package/dist/statements/IdentityInsertStatement.d.ts +11 -0
  435. package/dist/statements/IdentityInsertStatement.js +13 -0
  436. package/dist/statements/IdentityInsertStatementTextRenderer.d.ts +6 -0
  437. package/dist/statements/IdentityInsertStatementTextRenderer.js +8 -0
  438. package/dist/statements/InsertStatement.d.ts +9 -0
  439. package/dist/statements/InsertStatement.js +9 -0
  440. package/dist/statements/InsertStatementTextRenderer.d.ts +4 -0
  441. package/dist/statements/InsertStatementTextRenderer.js +5 -0
  442. package/dist/statements/Join.d.ts +14 -0
  443. package/dist/statements/Join.js +10 -0
  444. package/dist/statements/Literal.d.ts +6 -0
  445. package/dist/statements/Literal.js +6 -0
  446. package/dist/statements/Native.d.ts +5 -0
  447. package/dist/statements/Native.js +7 -0
  448. package/dist/statements/NotNull.d.ts +4 -0
  449. package/dist/statements/NotNull.js +6 -0
  450. package/dist/statements/Operator.d.ts +107 -0
  451. package/dist/statements/Operator.js +207 -0
  452. package/dist/statements/OrderBy.d.ts +10 -0
  453. package/dist/statements/OrderBy.js +9 -0
  454. package/dist/statements/PrimaryKey.d.ts +7 -0
  455. package/dist/statements/PrimaryKey.js +9 -0
  456. package/dist/statements/ReturnStatement.d.ts +9 -0
  457. package/dist/statements/ReturnStatement.js +9 -0
  458. package/dist/statements/ReturnStatementTextRenderer.d.ts +4 -0
  459. package/dist/statements/ReturnStatementTextRenderer.js +10 -0
  460. package/dist/statements/RoutineParameter.d.ts +4 -0
  461. package/dist/statements/RoutineParameter.js +1 -0
  462. package/dist/statements/SelectInsertedIdStatement.d.ts +8 -0
  463. package/dist/statements/SelectInsertedIdStatement.js +9 -0
  464. package/dist/statements/SelectInsertedIdStatementTextRenderer.d.ts +4 -0
  465. package/dist/statements/SelectInsertedIdStatementTextRenderer.js +5 -0
  466. package/dist/statements/SelectStatement.d.ts +20 -0
  467. package/dist/statements/SelectStatement.js +25 -0
  468. package/dist/statements/SelectStatementOptions.d.ts +15 -0
  469. package/dist/statements/SelectStatementOptions.js +1 -0
  470. package/dist/statements/SelectStatementTextRenderer.d.ts +19 -0
  471. package/dist/statements/SelectStatementTextRenderer.js +54 -0
  472. package/dist/statements/StatementEvaluator.d.ts +4 -0
  473. package/dist/statements/StatementEvaluator.js +3 -0
  474. package/dist/statements/StatementParser.d.ts +4 -0
  475. package/dist/statements/StatementParser.js +454 -0
  476. package/dist/statements/StatementRenderer.d.ts +84 -0
  477. package/dist/statements/StatementRenderer.js +140 -0
  478. package/dist/statements/StatementTextRenderer.d.ts +14 -0
  479. package/dist/statements/StatementTextRenderer.js +27 -0
  480. package/dist/statements/Subquery.d.ts +6 -0
  481. package/dist/statements/Subquery.js +6 -0
  482. package/dist/statements/UniqueConstraint.d.ts +7 -0
  483. package/dist/statements/UniqueConstraint.js +9 -0
  484. package/dist/statements/UpdateStatement.d.ts +14 -0
  485. package/dist/statements/UpdateStatement.js +19 -0
  486. package/dist/statements/UpdateStatementTextRenderer.d.ts +14 -0
  487. package/dist/statements/UpdateStatementTextRenderer.js +51 -0
  488. package/dist/statements/Where.d.ts +16 -0
  489. package/dist/statements/Where.js +182 -0
  490. package/dist/statements/WhereText.d.ts +8 -0
  491. package/dist/statements/WhereText.js +10 -0
  492. package/dist/statements/index.d.ts +119 -0
  493. package/dist/statements/index.js +79 -0
  494. package/dist/stubs/StubCommand.d.ts +15 -0
  495. package/dist/stubs/StubCommand.js +13 -0
  496. package/dist/stubs/StubConnection.d.ts +13 -0
  497. package/dist/stubs/StubConnection.js +14 -0
  498. package/dist/stubs/StubDatasource.d.ts +20 -0
  499. package/dist/stubs/StubDatasource.js +34 -0
  500. package/dist/stubs/StubReader.d.ts +11 -0
  501. package/dist/stubs/StubReader.js +20 -0
  502. package/dist/stubs/StubRepository.d.ts +22 -0
  503. package/dist/stubs/StubRepository.js +17 -0
  504. package/dist/stubs/StubTransaction.d.ts +10 -0
  505. package/dist/stubs/StubTransaction.js +13 -0
  506. package/dist/stubs/createStubDatasource.d.ts +2 -0
  507. package/dist/stubs/createStubDatasource.js +2 -0
  508. package/dist/stubs/index.d.ts +7 -0
  509. package/dist/stubs/index.js +7 -0
  510. package/dist/stubs/notImplemented.d.ts +1 -0
  511. package/dist/stubs/notImplemented.js +4 -0
  512. package/package.json +15 -8
  513. package/src/ArrayReader.ts +0 -32
  514. package/src/BatchCommandIBulkWriteStrategy.ts +0 -228
  515. package/src/BuiltRepository.ts +0 -17
  516. package/src/BulkCRUDRepository.ts +0 -84
  517. package/src/BulkCommand.ts +0 -6
  518. package/src/BulkWriteEnrichment.ts +0 -19
  519. package/src/CRUDRepository.ts +0 -264
  520. package/src/CRUDRepositoryBuilder.ts +0 -53
  521. package/src/CRUDRepositoryStatements.ts +0 -43
  522. package/src/CascadeDeleteEnrichmentStrategy.ts +0 -51
  523. package/src/CascadeDeleteUpdateEnrichmentStrategy.ts +0 -28
  524. package/src/CommandMiddlewareHost.ts +0 -113
  525. package/src/ConsoleCommandMiddleware.ts +0 -64
  526. package/src/CreateEnrichmentStrategy.ts +0 -82
  527. package/src/Datasource.ts +0 -152
  528. package/src/DatasourceError.ts +0 -6
  529. package/src/DatasourceFactory.ts +0 -86
  530. package/src/DatasourceUrl.ts +0 -37
  531. package/src/DatasourceUrlParser.ts +0 -188
  532. package/src/DefaultCreateEnrichmentStrategy.ts +0 -21
  533. package/src/DefaultReadonlyEnrichmentStrategy.ts +0 -164
  534. package/src/DefaultUpdateEnrichmentStrategy.ts +0 -40
  535. package/src/DefaultWriteEnrichmentStrategy.ts +0 -151
  536. package/src/DeleteEnrichmentStrategy.ts +0 -56
  537. package/src/DriverLoader.ts +0 -97
  538. package/src/Enrichment.ts +0 -15
  539. package/src/EnrichmentPropertyType.ts +0 -9
  540. package/src/ExpectConsoleMiddleware.ts +0 -47
  541. package/src/FirstResultReader.ts +0 -49
  542. package/src/HashsetOptimizedReadonlyEnrichmentStrategy.ts +0 -80
  543. package/src/IBulkWriteStrategy.ts +0 -13
  544. package/src/ICRUDRepository.ts +0 -13
  545. package/src/ICRUDRepositoryFactory.ts +0 -8
  546. package/src/ICommand.ts +0 -45
  547. package/src/ICommandMiddleware.ts +0 -20
  548. package/src/IConnection.ts +0 -13
  549. package/src/IDatasource.ts +0 -27
  550. package/src/IDatasourceFactory.ts +0 -6
  551. package/src/IDriver.ts +0 -24
  552. package/src/IEnriched.ts +0 -11
  553. package/src/IReader.ts +0 -8
  554. package/src/IReadonlyEnrichmentStrategy.ts +0 -19
  555. package/src/IReadonlyRepository.ts +0 -21
  556. package/src/IRepository.ts +0 -5
  557. package/src/IRepositoryFactory.ts +0 -8
  558. package/src/IRepositoryTreeNode.ts +0 -8
  559. package/src/ITransaction.ts +0 -9
  560. package/src/IUnitOfWork.ts +0 -5
  561. package/src/IWriteEnrichmentStrategy.ts +0 -8
  562. package/src/Information.ts +0 -5
  563. package/src/IsolationLevel.ts +0 -8
  564. package/src/LazyWriteEnrichmentStrategy.ts +0 -5
  565. package/src/NestedToObjectEnrichmentStrategy.ts +0 -33
  566. package/src/Parameter.ts +0 -8
  567. package/src/ParameterDirection.ts +0 -9
  568. package/src/ProviderCatalog.ts +0 -21
  569. package/src/ProviderNotImplementedError.ts +0 -9
  570. package/src/ProviderNotInstalledError.ts +0 -9
  571. package/src/ReadonlyRepository.ts +0 -276
  572. package/src/ReadonlyRepositoryBuilder.ts +0 -53
  573. package/src/ReadonlyRepositoryMappingOptions.ts +0 -15
  574. package/src/ReadonlyRepositoryStatements.ts +0 -13
  575. package/src/RepositoryAccess.ts +0 -14
  576. package/src/RepositoryFactory.ts +0 -115
  577. package/src/RepositoryNotRegisteredError.ts +0 -9
  578. package/src/RepositoryTree.ts +0 -6
  579. package/src/RepositoryTreeNode.ts +0 -11
  580. package/src/Response.ts +0 -15
  581. package/src/Row.ts +0 -3
  582. package/src/SingleCommandIBulkWriteStrategy.ts +0 -35
  583. package/src/StatementMappers.ts +0 -110
  584. package/src/StoredEnrichment.ts +0 -25
  585. package/src/StoredProcedureBulkWriteStrategy.ts +0 -164
  586. package/src/StreamingReader.ts +0 -64
  587. package/src/UnitOfWorkTransaction.ts +0 -50
  588. package/src/UpdateEnrichmentStrategy.ts +0 -97
  589. package/src/builders/Field.ts +0 -6
  590. package/src/builders/index.ts +0 -2
  591. package/src/collectAsync.ts +0 -7
  592. package/src/converters/Cell.ts +0 -10
  593. package/src/converters/ChangeCasingConverter.ts +0 -59
  594. package/src/converters/MetaDataRowTypeConverter.ts +0 -80
  595. package/src/converters/PluralizerConverter.ts +0 -67
  596. package/src/converters/RegexConverter.ts +0 -14
  597. package/src/converters/ReplaceConverter.ts +0 -6
  598. package/src/converters/RowTypeConverter.ts +0 -33
  599. package/src/converters/ToLowerCaseConverter.ts +0 -4
  600. package/src/converters/ToUpperCaseConverter.ts +0 -4
  601. package/src/converters/TypeConverter.ts +0 -6
  602. package/src/createCRUDRepositoryOptions.ts +0 -21
  603. package/src/createReadonlyRepositoryMappingOptions.ts +0 -26
  604. package/src/dotEnv.ts +0 -16
  605. package/src/index.ts +0 -222
  606. package/src/mappers/ChangeCasingMapper.ts +0 -15
  607. package/src/mappers/DictionaryMapper.ts +0 -16
  608. package/src/mappers/FlatToNestedMapper.ts +0 -127
  609. package/src/mappers/IFlatToNestedMapper.ts +0 -7
  610. package/src/mappers/IMapper.ts +0 -4
  611. package/src/mappers/IdentityMapper.ts +0 -6
  612. package/src/mappers/PluralizerMapper.ts +0 -9
  613. package/src/mappers/RowTypeMapper.ts +0 -13
  614. package/src/mappers/TransformConverterMapper.ts +0 -11
  615. package/src/mappers/TransformMapper.ts +0 -8
  616. package/src/mappers/TypeMap.ts +0 -10
  617. package/src/mappers/TypeMapGroup.ts +0 -6
  618. package/src/mocks/index.ts +0 -9
  619. package/src/mocks/mock-command.ts +0 -66
  620. package/src/mocks/mock-connection.ts +0 -57
  621. package/src/mocks/mock-datasource.ts +0 -65
  622. package/src/mocks/mock-driver.ts +0 -27
  623. package/src/mocks/mock-reader.ts +0 -38
  624. package/src/mocks/mock-repository.ts +0 -91
  625. package/src/mocks/mock-select-statement.ts +0 -17
  626. package/src/mocks/mock-transaction.ts +0 -31
  627. package/src/mocks/mock-where.ts +0 -13
  628. package/src/parametersToRecord.ts +0 -11
  629. package/src/readerToAsyncIterable.ts +0 -11
  630. package/src/splitStatements.ts +0 -99
  631. package/src/statementParameters.ts +0 -22
  632. package/src/statementUsesParameter.ts +0 -4
  633. package/src/statements/Aggregate.ts +0 -9
  634. package/src/statements/ArrayExpression.ts +0 -5
  635. package/src/statements/BulkDeleteStatement.ts +0 -18
  636. package/src/statements/BulkDeleteStatementTextRenderer.ts +0 -16
  637. package/src/statements/BulkInsertStatement.ts +0 -37
  638. package/src/statements/BulkInsertStatementTextRenderer.ts +0 -10
  639. package/src/statements/BulkUpdateStatement.ts +0 -24
  640. package/src/statements/BulkUpdateStatementTextRenderer.ts +0 -29
  641. package/src/statements/CheckConstraint.ts +0 -9
  642. package/src/statements/Cmp.ts +0 -12
  643. package/src/statements/Column.ts +0 -10
  644. package/src/statements/ColumnDefault.ts +0 -6
  645. package/src/statements/Condition.ts +0 -3
  646. package/src/statements/ConditionRenderer.ts +0 -17
  647. package/src/statements/CreateIndexStatement.ts +0 -18
  648. package/src/statements/CreateIndexStatementTextRenderer.ts +0 -11
  649. package/src/statements/CreateTableStatement.ts +0 -18
  650. package/src/statements/CreateTableStatementTextRenderer.ts +0 -92
  651. package/src/statements/DefaultStatementTextRenderer.ts +0 -9
  652. package/src/statements/DeleteStatement.ts +0 -15
  653. package/src/statements/DeleteStatementTextRenderer.ts +0 -12
  654. package/src/statements/ExecuteStoredProcedureStatement.ts +0 -15
  655. package/src/statements/ExecuteStoredProcedureStatementTextRenderer.ts +0 -15
  656. package/src/statements/ExpressionEvaluator.ts +0 -166
  657. package/src/statements/ExpressionRenderer.ts +0 -161
  658. package/src/statements/ForeignKey.ts +0 -23
  659. package/src/statements/IBulkDeleteStatement.ts +0 -3
  660. package/src/statements/IBulkInsertStatement.ts +0 -3
  661. package/src/statements/IBulkUpdateStatement.ts +0 -3
  662. package/src/statements/ICondition.ts +0 -5
  663. package/src/statements/IConditionVisitor.ts +0 -7
  664. package/src/statements/ICreateIndexStatement.ts +0 -3
  665. package/src/statements/ICreateTableStatement.ts +0 -3
  666. package/src/statements/IDeleteStatement.ts +0 -6
  667. package/src/statements/IExpression.ts +0 -1
  668. package/src/statements/IInsertStatement.ts +0 -3
  669. package/src/statements/IReturnStatement.ts +0 -3
  670. package/src/statements/ISelectStatement.ts +0 -6
  671. package/src/statements/IStatement.ts +0 -5
  672. package/src/statements/IStatementVisitor.ts +0 -27
  673. package/src/statements/IUpdateStatement.ts +0 -6
  674. package/src/statements/IWhere.ts +0 -7
  675. package/src/statements/Identifier.ts +0 -5
  676. package/src/statements/InsertStatement.ts +0 -15
  677. package/src/statements/InsertStatementTextRenderer.ts +0 -7
  678. package/src/statements/Join.ts +0 -26
  679. package/src/statements/Literal.ts +0 -6
  680. package/src/statements/Native.ts +0 -5
  681. package/src/statements/NotNull.ts +0 -3
  682. package/src/statements/Operator.ts +0 -234
  683. package/src/statements/OrderBy.ts +0 -19
  684. package/src/statements/PrimaryKey.ts +0 -9
  685. package/src/statements/ReturnStatement.ts +0 -15
  686. package/src/statements/ReturnStatementTextRenderer.ts +0 -15
  687. package/src/statements/SelectInsertedIdStatement.ts +0 -11
  688. package/src/statements/SelectInsertedIdStatementTextRenderer.ts +0 -7
  689. package/src/statements/SelectStatement.ts +0 -34
  690. package/src/statements/SelectStatementOptions.ts +0 -16
  691. package/src/statements/SelectStatementTextRenderer.ts +0 -71
  692. package/src/statements/StatementEvaluator.ts +0 -5
  693. package/src/statements/StatementParser.ts +0 -461
  694. package/src/statements/StatementRenderer.ts +0 -120
  695. package/src/statements/StatementTextRenderer.ts +0 -60
  696. package/src/statements/Subquery.ts +0 -6
  697. package/src/statements/UniqueConstraint.ts +0 -9
  698. package/src/statements/UpdateStatement.ts +0 -34
  699. package/src/statements/UpdateStatementTextRenderer.ts +0 -63
  700. package/src/statements/Where.ts +0 -250
  701. package/src/statements/WhereText.ts +0 -10
  702. package/src/statements/index.ts +0 -75
  703. package/src/stubs/StubCommand.ts +0 -30
  704. package/src/stubs/StubConnection.ts +0 -21
  705. package/src/stubs/StubDatasource.ts +0 -60
  706. package/src/stubs/StubReader.ts +0 -25
  707. package/src/stubs/StubRepository.ts +0 -42
  708. package/src/stubs/StubTransaction.ts +0 -17
  709. package/src/stubs/createStubDatasource.ts +0 -4
  710. package/src/stubs/index.ts +0 -7
  711. package/src/stubs/notImplemented.ts +0 -5
  712. /package/{src/DatasourceOptions.ts → dist/DatasourceOptions.d.ts} +0 -0
  713. /package/{src/WriteMode.ts → dist/WriteMode.d.ts} +0 -0
  714. /package/{src/builders/Scalar.ts → dist/builders/Scalar.d.ts} +0 -0
  715. /package/{src/converters/Constructable.ts → dist/converters/Constructable.d.ts} +0 -0
@@ -1,120 +0,0 @@
1
- import type { IStatementVisitor } from "./IStatementVisitor.ts";
2
- import { BulkDeleteStatement } from "./BulkDeleteStatement.ts";
3
- import { BulkDeleteStatementTextRenderer } from "./BulkDeleteStatementTextRenderer.ts";
4
- import { BulkInsertStatement } from "./BulkInsertStatement.ts";
5
- import { BulkInsertStatementTextRenderer } from "./BulkInsertStatementTextRenderer.ts";
6
- import { BulkUpdateStatement } from "./BulkUpdateStatement.ts";
7
- import { BulkUpdateStatementTextRenderer } from "./BulkUpdateStatementTextRenderer.ts";
8
- import { CreateIndexStatement } from "./CreateIndexStatement.ts";
9
- import { CreateIndexStatementTextRenderer } from "./CreateIndexStatementTextRenderer.ts";
10
- import { CreateTableStatement } from "./CreateTableStatement.ts";
11
- import { CreateTableStatementTextRenderer } from "./CreateTableStatementTextRenderer.ts";
12
- import { DeleteStatement } from "./DeleteStatement.ts";
13
- import { DeleteStatementTextRenderer } from "./DeleteStatementTextRenderer.ts";
14
- import { ExecuteStoredProcedureStatement } from "./ExecuteStoredProcedureStatement.ts";
15
- import { ExecuteStoredProcedureStatementTextRenderer } from "./ExecuteStoredProcedureStatementTextRenderer.ts";
16
- import { InsertStatement } from "./InsertStatement.ts";
17
- import { InsertStatementTextRenderer } from "./InsertStatementTextRenderer.ts";
18
- import { ReturnStatement } from "./ReturnStatement.ts";
19
- import { ReturnStatementTextRenderer } from "./ReturnStatementTextRenderer.ts";
20
- import { SelectInsertedIdStatement } from "./SelectInsertedIdStatement.ts";
21
- import { SelectInsertedIdStatementTextRenderer } from "./SelectInsertedIdStatementTextRenderer.ts";
22
- import { SelectStatement } from "./SelectStatement.ts";
23
- import { SelectStatementTextRenderer } from "./SelectStatementTextRenderer.ts";
24
- import type { StatementTextRenderer } from "./StatementTextRenderer.ts";
25
- import { UpdateStatement } from "./UpdateStatement.ts";
26
- import { UpdateStatementTextRenderer } from "./UpdateStatementTextRenderer.ts";
27
-
28
- type AnyStatement =
29
- | SelectStatement
30
- | InsertStatement
31
- | UpdateStatement
32
- | DeleteStatement
33
- | CreateTableStatement
34
- | CreateIndexStatement
35
- | ExecuteStoredProcedureStatement
36
- | ReturnStatement
37
- | SelectInsertedIdStatement
38
- | BulkInsertStatement
39
- | BulkUpdateStatement
40
- | BulkDeleteStatement;
41
-
42
- export class StatementRenderer implements IStatementVisitor {
43
- constructor(protected readonly text: StatementTextRenderer) {}
44
-
45
- visit(statement: SelectStatement): string;
46
- visit(statement: InsertStatement): string;
47
- visit(statement: UpdateStatement): string;
48
- visit(statement: DeleteStatement): string;
49
- visit(statement: CreateTableStatement): string;
50
- visit(statement: CreateIndexStatement): string;
51
- visit(statement: ExecuteStoredProcedureStatement): string;
52
- visit(statement: ReturnStatement): string;
53
- visit(statement: SelectInsertedIdStatement): string;
54
- visit(statement: BulkInsertStatement): string;
55
- visit(statement: BulkUpdateStatement): string;
56
- visit(statement: BulkDeleteStatement): string;
57
- visit(statement: AnyStatement): string {
58
- if (statement instanceof SelectStatement) return this.visitSelect(statement);
59
- if (statement instanceof InsertStatement) return this.visitInsert(statement);
60
- if (statement instanceof UpdateStatement) return this.visitUpdate(statement);
61
- if (statement instanceof DeleteStatement) return this.visitDelete(statement);
62
- if (statement instanceof CreateTableStatement) return this.visitCreateTable(statement);
63
- if (statement instanceof CreateIndexStatement) return this.visitCreateIndex(statement);
64
- if (statement instanceof ExecuteStoredProcedureStatement)
65
- return this.visitExecuteStoredProcedure(statement);
66
- if (statement instanceof ReturnStatement) return this.visitReturn(statement);
67
- if (statement instanceof BulkInsertStatement) return this.visitBulkInsert(statement);
68
- if (statement instanceof BulkUpdateStatement) return this.visitBulkUpdate(statement);
69
- if (statement instanceof BulkDeleteStatement) return this.visitBulkDelete(statement);
70
- return this.visitSelectInsertedId(statement as SelectInsertedIdStatement);
71
- }
72
-
73
- protected visitSelect(statement: SelectStatement): string {
74
- return new SelectStatementTextRenderer(this.text).render(statement);
75
- }
76
-
77
- protected visitInsert(statement: InsertStatement): string {
78
- return new InsertStatementTextRenderer().render(statement);
79
- }
80
-
81
- protected visitUpdate(statement: UpdateStatement): string {
82
- return new UpdateStatementTextRenderer(this.text).render(statement);
83
- }
84
-
85
- protected visitDelete(statement: DeleteStatement): string {
86
- return new DeleteStatementTextRenderer(this.text).render(statement);
87
- }
88
-
89
- protected visitCreateTable(statement: CreateTableStatement): string {
90
- return new CreateTableStatementTextRenderer().render(statement);
91
- }
92
-
93
- protected visitCreateIndex(statement: CreateIndexStatement): string {
94
- return new CreateIndexStatementTextRenderer().render(statement);
95
- }
96
-
97
- protected visitExecuteStoredProcedure(statement: ExecuteStoredProcedureStatement): string {
98
- return new ExecuteStoredProcedureStatementTextRenderer().render(statement);
99
- }
100
-
101
- protected visitReturn(statement: ReturnStatement): string {
102
- return new ReturnStatementTextRenderer().render(statement);
103
- }
104
-
105
- protected visitSelectInsertedId(statement: SelectInsertedIdStatement): string {
106
- return new SelectInsertedIdStatementTextRenderer().render(statement);
107
- }
108
-
109
- protected visitBulkInsert(statement: BulkInsertStatement): string {
110
- return new BulkInsertStatementTextRenderer().render(statement);
111
- }
112
-
113
- protected visitBulkUpdate(statement: BulkUpdateStatement): string {
114
- return new BulkUpdateStatementTextRenderer().render(statement);
115
- }
116
-
117
- protected visitBulkDelete(statement: BulkDeleteStatement): string {
118
- return new BulkDeleteStatementTextRenderer().render(statement);
119
- }
120
- }
@@ -1,60 +0,0 @@
1
- import type { ICondition } from "./ICondition.ts";
2
- import type { IConditionVisitor } from "./IConditionVisitor.ts";
3
- import type { IStatement } from "./IStatement.ts";
4
- import type { IStatementVisitor } from "./IStatementVisitor.ts";
5
- import { ConditionRenderer } from "./ConditionRenderer.ts";
6
- import { BulkDeleteStatement } from "./BulkDeleteStatement.ts";
7
- import { BulkInsertStatement } from "./BulkInsertStatement.ts";
8
- import { BulkUpdateStatement } from "./BulkUpdateStatement.ts";
9
- import { CreateIndexStatement } from "./CreateIndexStatement.ts";
10
- import { CreateTableStatement } from "./CreateTableStatement.ts";
11
- import { DeleteStatement } from "./DeleteStatement.ts";
12
- import { ExecuteStoredProcedureStatement } from "./ExecuteStoredProcedureStatement.ts";
13
- import { ExpressionRenderer } from "./ExpressionRenderer.ts";
14
- import { InsertStatement } from "./InsertStatement.ts";
15
- import { ReturnStatement } from "./ReturnStatement.ts";
16
- import { SelectInsertedIdStatement } from "./SelectInsertedIdStatement.ts";
17
- import { SelectStatement } from "./SelectStatement.ts";
18
- import { StatementRenderer } from "./StatementRenderer.ts";
19
- import { UpdateStatement } from "./UpdateStatement.ts";
20
- import { Where } from "./Where.ts";
21
- import { WhereText } from "./WhereText.ts";
22
-
23
- export class StatementTextRenderer {
24
- protected readonly statements: IStatementVisitor;
25
- protected readonly conditions: IConditionVisitor;
26
-
27
- constructor(
28
- statements?: (text: StatementTextRenderer) => StatementRenderer,
29
- conditions?: (expressions: ExpressionRenderer) => ConditionRenderer,
30
- expressions?: (text: StatementTextRenderer) => ExpressionRenderer,
31
- ) {
32
- const expressionRenderer = expressions?.(this) ?? new ExpressionRenderer(this);
33
- this.statements = statements?.(this) ?? new StatementRenderer(this);
34
- this.conditions = conditions?.(expressionRenderer) ?? new ConditionRenderer(expressionRenderer);
35
- }
36
-
37
- render(statement: IStatement): string;
38
- render(condition: ICondition): string;
39
- render(target: IStatement | ICondition): string {
40
- if (target instanceof Where || target instanceof WhereText) return target.accept(this.conditions);
41
- if (
42
- target instanceof SelectStatement ||
43
- target instanceof InsertStatement ||
44
- target instanceof UpdateStatement ||
45
- target instanceof DeleteStatement ||
46
- target instanceof CreateTableStatement ||
47
- target instanceof CreateIndexStatement ||
48
- target instanceof ExecuteStoredProcedureStatement ||
49
- target instanceof ReturnStatement ||
50
- target instanceof SelectInsertedIdStatement ||
51
- target instanceof BulkInsertStatement ||
52
- target instanceof BulkUpdateStatement ||
53
- target instanceof BulkDeleteStatement
54
- )
55
- return target.accept(this.statements);
56
- return "where" in target || "fields" in target || "joins" in target || "column" in target
57
- ? (target as IStatement).accept(this.statements)
58
- : (target as ICondition).accept(this.conditions);
59
- }
60
- }
@@ -1,6 +0,0 @@
1
- import type { IExpression } from "./IExpression.ts";
2
- import type { SelectStatement } from "./SelectStatement.ts";
3
-
4
- export class Subquery implements IExpression {
5
- constructor(readonly query: SelectStatement) {}
6
- }
@@ -1,9 +0,0 @@
1
- import type { ITableConstraint } from "./ITableConstraint.ts";
2
-
3
- export class UniqueConstraint implements ITableConstraint {
4
- readonly kind = "unique" as const;
5
- constructor(
6
- readonly name: string,
7
- readonly columns: string[],
8
- ) {}
9
- }
@@ -1,34 +0,0 @@
1
- import type { Field } from "../builders/Field.ts";
2
- import type { Parameter } from "../Parameter.ts";
3
- import { DefaultStatementTextRenderer } from "./DefaultStatementTextRenderer.ts";
4
- import type { IStatementVisitor } from "./IStatementVisitor.ts";
5
- import type { IUpdateStatement } from "./IUpdateStatement.ts";
6
- import type { IWhere } from "./IWhere.ts";
7
- import { UpdateStatementTextRenderer } from "./UpdateStatementTextRenderer.ts";
8
-
9
- export class UpdateStatement implements IUpdateStatement {
10
- readonly table: string;
11
- readonly fields: Field[];
12
- readonly where?: IWhere;
13
-
14
- constructor(table: string, fields: Field[], where?: IWhere) {
15
- this.table = table;
16
- this.fields = fields;
17
- this.where = where;
18
- }
19
-
20
- accept = (visitor: IStatementVisitor): string => visitor.visit(this);
21
-
22
- get parameters(): Parameter[] {
23
- return new UpdateStatementTextRenderer(DefaultStatementTextRenderer.instance)
24
- .compose(
25
- `UPDATE ${this.table} SET ${this.fields.map((item) => `${item.name} = $${item.name}`).join(", ")}`,
26
- this.where,
27
- this.fields,
28
- ).parameters;
29
- }
30
-
31
- static parameterList = (fields: Field[], where?: IWhere): Parameter[] =>
32
- new UpdateStatementTextRenderer(DefaultStatementTextRenderer.instance).compose("", where, fields)
33
- .parameters;
34
- }
@@ -1,63 +0,0 @@
1
- import type { Field } from "../builders/Field.ts";
2
- import type { Scalar } from "../builders/Scalar.ts";
3
- import type { Parameter } from "../Parameter.ts";
4
- import type { IWhere } from "./IWhere.ts";
5
- import type { StatementTextRenderer } from "./StatementTextRenderer.ts";
6
- import type { UpdateStatement } from "./UpdateStatement.ts";
7
-
8
- const rename = (text: string, name: string, alias: string): string => {
9
- const token = `$${name}`;
10
- const next = `$${alias}`;
11
- let index = 0;
12
- let result = "";
13
- while (text.indexOf(token, index) >= 0) {
14
- const at = text.indexOf(token, index);
15
- const end = at + token.length;
16
- const nextChar = text.charAt(end);
17
- const boundary = nextChar === "" || !/[A-Za-z0-9_]/.test(nextChar);
18
- result += text.slice(index, at) + (boundary ? next : token);
19
- index = end;
20
- }
21
- return result + text.slice(index);
22
- };
23
-
24
- const setClause = (fields: Field[]): string =>
25
- fields.map((field) => `${field.name} = $${field.name}`).join(", ");
26
-
27
- export class UpdateStatementTextRenderer {
28
- constructor(private readonly text: StatementTextRenderer) {}
29
-
30
- render(statement: UpdateStatement): string {
31
- return this.compose(
32
- `UPDATE ${statement.table} SET ${setClause(statement.fields)}`,
33
- statement.where,
34
- statement.fields,
35
- ).text;
36
- }
37
-
38
- compose(
39
- sql: string,
40
- where: IWhere | undefined,
41
- fields: Field[],
42
- ): { text: string; parameters: Parameter[] } {
43
- if (!where) return { text: sql, parameters: fields };
44
- const rendered = `${sql} WHERE ${this.text.render(where)}`;
45
- const split = rendered.lastIndexOf(" WHERE ");
46
- /* v8 ignore next 2 */
47
- const head = split < 0 ? rendered : rendered.slice(0, split);
48
- let tail = split < 0 ? "" : rendered.slice(split);
49
- const parameters: Parameter[] = [...fields];
50
- const values = new Map<string, Scalar>();
51
- for (const field of fields) values.set(field.name, field.value);
52
- for (const parameter of where.parameters ?? []) {
53
- if (parameter.value === undefined) continue;
54
- const current = values.get(parameter.name);
55
- if (values.has(parameter.name) && current !== parameter.value) {
56
- const alias = `${parameter.name}__where`;
57
- tail = rename(tail, parameter.name, alias);
58
- parameters.push({ name: alias, value: parameter.value });
59
- } else parameters.push({ name: parameter.name, value: parameter.value });
60
- }
61
- return { text: head + tail, parameters };
62
- }
63
- }
@@ -1,250 +0,0 @@
1
- import type { Parameter } from "../Parameter.ts";
2
- import type { Cell } from "../converters/Cell.ts";
3
- import { ArrayExpression } from "./ArrayExpression.ts";
4
- import { Identifier } from "./Identifier.ts";
5
- import type { IConditionVisitor } from "./IConditionVisitor.ts";
6
- import type { IExpression } from "./IExpression.ts";
7
- import type { IWhere } from "./IWhere.ts";
8
- import { Literal } from "./Literal.ts";
9
- import { Operator } from "./Operator.ts";
10
- import type { Comparison } from "./Cmp.ts";
11
- import { eq } from "./Cmp.ts";
12
- import { SelectStatement } from "./SelectStatement.ts";
13
- import { Subquery } from "./Subquery.ts";
14
-
15
- const pair = (
16
- expression: Operator,
17
- ): { left: IExpression; right: IExpression } | undefined =>
18
- expression instanceof Operator.Equals ||
19
- expression instanceof Operator.NotEquals ||
20
- expression instanceof Operator.GreaterThan ||
21
- expression instanceof Operator.LessThan ||
22
- expression instanceof Operator.GreaterThanOrEqual ||
23
- expression instanceof Operator.LessThanOrEqual ||
24
- expression instanceof Operator.And ||
25
- expression instanceof Operator.Or ||
26
- expression instanceof Operator.In ||
27
- expression instanceof Operator.Like ||
28
- expression instanceof Operator.NotLike
29
- ? expression
30
- : undefined;
31
-
32
- const parameterName = (name: string): string =>
33
- parts(name)
34
- .map((part) =>
35
- part.length >= 2 && part.startsWith('"') && part.endsWith('"')
36
- ? part.slice(1, -1).replace(/""/g, '"')
37
- : part,
38
- )
39
- .join(".");
40
-
41
- const parts = (name: string): string[] => {
42
- const found: string[] = [];
43
- let start = 0;
44
- let quoted = false;
45
- for (let i = 0; i < name.length; i++) {
46
- if (name[i] === '"') quoted = !quoted;
47
- if (name[i] !== "." || quoted) continue;
48
- found.push(name.slice(start, i));
49
- start = i + 1;
50
- }
51
- found.push(name.slice(start));
52
- return found;
53
- };
54
-
55
- const side = (
56
- expression: IExpression,
57
- other: IExpression,
58
- column: (name: string) => string,
59
- value: (name: string, cell: Cell) => Cell,
60
- ): IExpression =>
61
- expression instanceof Literal && other instanceof Identifier
62
- ? new Literal(value(other.name, expression.value))
63
- : rewrite(expression, column, value);
64
-
65
- const inRight = (
66
- left: IExpression,
67
- right: IExpression,
68
- column: (name: string) => string,
69
- value: (name: string, cell: Cell) => Cell,
70
- ): IExpression =>
71
- left instanceof Identifier && right instanceof ArrayExpression
72
- ? new ArrayExpression(
73
- right.elements.map((element) =>
74
- element instanceof Literal
75
- ? new Literal(value(left.name, element.value))
76
- : rewrite(element, column, value),
77
- ),
78
- )
79
- : rewrite(right, column, value);
80
-
81
- const bound = (
82
- subject: IExpression,
83
- edge: IExpression,
84
- column: (name: string) => string,
85
- value: (name: string, cell: Cell) => Cell,
86
- ): IExpression =>
87
- subject instanceof Identifier && edge instanceof Literal
88
- ? new Literal(value(subject.name, edge.value))
89
- : rewrite(edge, column, value);
90
-
91
- const rewriteWhere = (
92
- where: IWhere | undefined,
93
- column: (name: string) => string,
94
- value: (name: string, cell: Cell) => Cell,
95
- ): IWhere | undefined =>
96
- where instanceof Where ? new Where(rewrite(where.condition, column, value)) : where;
97
-
98
- const rewriteQuery = (
99
- query: SelectStatement,
100
- column: (name: string) => string,
101
- value: (name: string, cell: Cell) => Cell,
102
- ): SelectStatement =>
103
- query.table === undefined
104
- ? query
105
- : new SelectStatement({
106
- distinct: query.distinct,
107
- table: query.table,
108
- fields: query.fields,
109
- where: rewriteWhere(query.where, column, value),
110
- joins: query.joins.map((join) =>
111
- join.on ? { ...join, on: rewrite(join.on, column, value) } : join,
112
- ),
113
- groupBy: query.groupBy,
114
- having: rewriteWhere(query.having, column, value),
115
- orderBy: query.orderBy,
116
- limit: query.limit,
117
- offset: query.offset,
118
- });
119
-
120
- const rewrite = (
121
- expression: IExpression,
122
- column: (name: string) => string,
123
- value: (name: string, cell: Cell) => Cell,
124
- ): IExpression =>
125
- expression instanceof Where
126
- ? rewrite(expression.condition, column, value)
127
- : expression instanceof Identifier
128
- ? new Identifier(column(expression.name))
129
- : expression instanceof Literal
130
- ? expression
131
- : expression instanceof ArrayExpression
132
- ? new ArrayExpression(expression.elements.map((element) => rewrite(element, column, value)))
133
- : expression instanceof Subquery
134
- ? new Subquery(rewriteQuery(expression.query, column, value))
135
- : expression instanceof Operator.Not
136
- ? new Operator.Not(rewrite(expression.argument, column, value))
137
- : expression instanceof Operator.IsNull
138
- ? new Operator.IsNull(rewrite(expression.argument, column, value))
139
- : expression instanceof Operator.IsNotNull
140
- ? new Operator.IsNotNull(rewrite(expression.argument, column, value))
141
- : expression instanceof Operator.Exists
142
- ? new Operator.Exists(rewrite(expression.argument, column, value))
143
- : expression instanceof Operator.And
144
- ? new Operator.And(rewrite(expression.left, column, value), rewrite(expression.right, column, value))
145
- : expression instanceof Operator.Or
146
- ? new Operator.Or(rewrite(expression.left, column, value), rewrite(expression.right, column, value))
147
- : expression instanceof Operator.In
148
- ? new Operator.In(rewrite(expression.left, column, value), inRight(expression.left, expression.right, column, value))
149
- : expression instanceof Operator.NotIn
150
- ? new Operator.NotIn(rewrite(expression.left, column, value), inRight(expression.left, expression.right, column, value))
151
- : expression instanceof Operator.Like
152
- ? new Operator.Like(side(expression.left, expression.right, column, value), side(expression.right, expression.left, column, value))
153
- : expression instanceof Operator.NotLike
154
- ? new Operator.NotLike(side(expression.left, expression.right, column, value), side(expression.right, expression.left, column, value))
155
- : expression instanceof Operator.Between
156
- ? new Operator.Between(rewrite(expression.value, column, value), bound(expression.value, expression.low, column, value), bound(expression.value, expression.high, column, value))
157
- : expression instanceof Operator.NotBetween
158
- ? new Operator.NotBetween(rewrite(expression.value, column, value), bound(expression.value, expression.low, column, value), bound(expression.value, expression.high, column, value))
159
- : expression instanceof Operator.Equals
160
- ? new Operator.Equals(side(expression.left, expression.right, column, value), side(expression.right, expression.left, column, value))
161
- : expression instanceof Operator.NotEquals
162
- ? new Operator.NotEquals(side(expression.left, expression.right, column, value), side(expression.right, expression.left, column, value))
163
- : expression instanceof Operator.GreaterThan
164
- ? new Operator.GreaterThan(side(expression.left, expression.right, column, value), side(expression.right, expression.left, column, value))
165
- : expression instanceof Operator.LessThan
166
- ? new Operator.LessThan(side(expression.left, expression.right, column, value), side(expression.right, expression.left, column, value))
167
- : expression instanceof Operator.GreaterThanOrEqual
168
- ? new Operator.GreaterThanOrEqual(side(expression.left, expression.right, column, value), side(expression.right, expression.left, column, value))
169
- : expression instanceof Operator.LessThanOrEqual
170
- ? new Operator.LessThanOrEqual(side(expression.left, expression.right, column, value), side(expression.right, expression.left, column, value))
171
- : (() => {
172
- throw new Error("empty expression");
173
- })();
174
-
175
- const listed = (name: string, elements: IExpression[]): Parameter<Cell>[] =>
176
- elements.map((element, i) =>
177
- element instanceof Literal
178
- ? { name: `${parameterName(name)}_${i}`, value: element.value }
179
- : (() => {
180
- throw new Error("empty in");
181
- })(),
182
- );
183
-
184
- const collect = (expression: IExpression): Parameter<Cell>[] => {
185
- if (expression instanceof Where) return collect(expression.condition);
186
- if (expression instanceof Literal || expression instanceof Identifier) return [];
187
- if (expression instanceof Operator.Not || expression instanceof Operator.IsNull || expression instanceof Operator.IsNotNull)
188
- return collect(expression.argument);
189
- if (expression instanceof Operator.Exists) return collect(expression.argument);
190
- if (expression instanceof Subquery)
191
- return [
192
- ...(expression.query.where ? collect(expression.query.where) : []),
193
- ...(expression.query.having ? collect(expression.query.having) : []),
194
- ...expression.query.joins.flatMap((join) => (join.on ? collect(join.on) : [])),
195
- ];
196
- if (expression instanceof Operator.In && expression.left instanceof Identifier && expression.right instanceof ArrayExpression)
197
- return listed(expression.left.name, expression.right.elements);
198
- if (expression instanceof Operator.NotIn && expression.left instanceof Identifier && expression.right instanceof ArrayExpression)
199
- return listed(expression.left.name, expression.right.elements);
200
- if (expression instanceof Operator.In || expression instanceof Operator.NotIn)
201
- return [...collect(expression.left), ...collect(expression.right)];
202
- if (
203
- (expression instanceof Operator.Between || expression instanceof Operator.NotBetween) &&
204
- expression.value instanceof Identifier &&
205
- expression.low instanceof Literal &&
206
- expression.high instanceof Literal
207
- )
208
- return [
209
- { name: `${parameterName(expression.value.name)}_0`, value: expression.low.value },
210
- { name: `${parameterName(expression.value.name)}_1`, value: expression.high.value },
211
- ];
212
- if (expression instanceof Operator.Between || expression instanceof Operator.NotBetween)
213
- return [...collect(expression.value), ...collect(expression.low), ...collect(expression.high)];
214
- const operands = expression instanceof Operator ? pair(expression) : undefined;
215
- if (operands && operands.left instanceof Identifier && operands.right instanceof Literal)
216
- return [{ name: parameterName(operands.left.name), value: operands.right.value }];
217
- if (operands && operands.left instanceof Literal && operands.right instanceof Literal) return [];
218
- if (operands) return [...collect(operands.left), ...collect(operands.right)];
219
- if (expression instanceof ArrayExpression) return expression.elements.flatMap(collect);
220
- throw new Error("empty expression");
221
- };
222
-
223
- export class Where implements IWhere {
224
- readonly condition: IExpression;
225
-
226
- constructor(condition: IExpression);
227
- constructor(column: string, op: Comparison, value: Cell);
228
- constructor(columnOrCondition: IExpression | string, op: Comparison = eq, value: Cell = null) {
229
- this.condition =
230
- typeof columnOrCondition === "string" ? op(columnOrCondition, value) : columnOrCondition;
231
- }
232
-
233
- and(column: string, op: Comparison, value: Cell): Where {
234
- return new Where(new Operator.And(this.condition, op(column, value)));
235
- }
236
-
237
- or(column: string, op: Comparison, value: Cell): Where {
238
- return new Where(new Operator.Or(this.condition, op(column, value)));
239
- }
240
-
241
- map(column: (name: string) => string, value: (name: string, cell: Cell) => Cell): Where {
242
- return new Where(rewrite(this.condition, column, value));
243
- }
244
-
245
- accept = (visitor: IConditionVisitor): string => visitor.visit(this);
246
-
247
- get parameters(): Parameter[] {
248
- return collect(this.condition) as Parameter[];
249
- }
250
- }
@@ -1,10 +0,0 @@
1
- import type { IConditionVisitor } from "./IConditionVisitor.ts";
2
- import type { IWhere } from "./IWhere.ts";
3
-
4
- export class WhereText implements IWhere {
5
- constructor(private readonly text: string) {}
6
- get rawText(): string {
7
- return this.text;
8
- }
9
- accept = (visitor: IConditionVisitor): string => visitor.visit(this);
10
- }
@@ -1,75 +0,0 @@
1
- export type { IExpression } from "./IExpression.ts";
2
- export type { IStatement } from "./IStatement.ts";
3
- export type { IStatementVisitor } from "./IStatementVisitor.ts";
4
- export type { ICondition } from "./ICondition.ts";
5
- export type { IConditionVisitor } from "./IConditionVisitor.ts";
6
- export type { IWhere } from "./IWhere.ts";
7
- export type { ISelectStatement } from "./ISelectStatement.ts";
8
- export type { IInsertStatement } from "./IInsertStatement.ts";
9
- export type { IUpdateStatement } from "./IUpdateStatement.ts";
10
- export type { IDeleteStatement } from "./IDeleteStatement.ts";
11
- export type { IBulkInsertStatement } from "./IBulkInsertStatement.ts";
12
- export type { IBulkUpdateStatement } from "./IBulkUpdateStatement.ts";
13
- export type { IBulkDeleteStatement } from "./IBulkDeleteStatement.ts";
14
- export type { ICreateTableStatement } from "./ICreateTableStatement.ts";
15
- export type { ICreateIndexStatement } from "./ICreateIndexStatement.ts";
16
- export type { IExecuteStoredProcedureStatement } from "./IExecuteStoredProcedureStatement.ts";
17
- export type { IReturnStatement } from "./IReturnStatement.ts";
18
- export type { Column } from "./Column.ts";
19
- export type { ITableConstraint, TableConstraintKind } from "./ITableConstraint.ts";
20
- export type { Join, JoinKind } from "./Join.ts";
21
- export { Join } from "./Join.ts";
22
- export { Aggregate } from "./Aggregate.ts";
23
- export type { SortDirection } from "./OrderBy.ts";
24
- export { OrderBy } from "./OrderBy.ts";
25
- export type { SelectStatementOptions } from "./SelectStatementOptions.ts";
26
- export { Condition } from "./Condition.ts";
27
- export { Operator } from "./Operator.ts";
28
- export { eq, ne, gt, lt, ge, le } from "./Cmp.ts";
29
- export type { Comparison } from "./Cmp.ts";
30
- export { Identifier } from "./Identifier.ts";
31
- export { Literal } from "./Literal.ts";
32
- export { ArrayExpression } from "./ArrayExpression.ts";
33
- export { Where } from "./Where.ts";
34
- export { ExpressionEvaluator } from "./ExpressionEvaluator.ts";
35
- export { StatementEvaluator } from "./StatementEvaluator.ts";
36
- export { WhereText } from "./WhereText.ts";
37
- export { SelectStatement } from "./SelectStatement.ts";
38
- export { StatementParser } from "./StatementParser.ts";
39
- export { StatementTextRenderer } from "./StatementTextRenderer.ts";
40
- export { DefaultStatementTextRenderer } from "./DefaultStatementTextRenderer.ts";
41
- export { StatementRenderer } from "./StatementRenderer.ts";
42
- export { ExpressionRenderer } from "./ExpressionRenderer.ts";
43
- export { ConditionRenderer } from "./ConditionRenderer.ts";
44
- export { Native, n } from "./Native.ts";
45
- export { Subquery } from "./Subquery.ts";
46
- export { InsertStatement } from "./InsertStatement.ts";
47
- export { UpdateStatement } from "./UpdateStatement.ts";
48
- export { DeleteStatement } from "./DeleteStatement.ts";
49
- export { BulkInsertStatement } from "./BulkInsertStatement.ts";
50
- export { BulkUpdateStatement } from "./BulkUpdateStatement.ts";
51
- export { BulkDeleteStatement } from "./BulkDeleteStatement.ts";
52
- export { BulkInsertStatementTextRenderer } from "./BulkInsertStatementTextRenderer.ts";
53
- export { BulkUpdateStatementTextRenderer } from "./BulkUpdateStatementTextRenderer.ts";
54
- export { BulkDeleteStatementTextRenderer } from "./BulkDeleteStatementTextRenderer.ts";
55
- export { CreateTableStatement } from "./CreateTableStatement.ts";
56
- export { CreateTableStatementTextRenderer } from "./CreateTableStatementTextRenderer.ts";
57
- export { CreateIndexStatement } from "./CreateIndexStatement.ts";
58
- export { CreateIndexStatementTextRenderer } from "./CreateIndexStatementTextRenderer.ts";
59
- export { SelectStatementTextRenderer } from "./SelectStatementTextRenderer.ts";
60
- export { InsertStatementTextRenderer } from "./InsertStatementTextRenderer.ts";
61
- export { UpdateStatementTextRenderer } from "./UpdateStatementTextRenderer.ts";
62
- export { DeleteStatementTextRenderer } from "./DeleteStatementTextRenderer.ts";
63
- export { ExecuteStoredProcedureStatementTextRenderer } from "./ExecuteStoredProcedureStatementTextRenderer.ts";
64
- export { ReturnStatementTextRenderer } from "./ReturnStatementTextRenderer.ts";
65
- export { SelectInsertedIdStatementTextRenderer } from "./SelectInsertedIdStatementTextRenderer.ts";
66
- export { ColumnDefault } from "./ColumnDefault.ts";
67
- export { NotNull } from "./NotNull.ts";
68
- export { PrimaryKey } from "./PrimaryKey.ts";
69
- export { ForeignKey, ReferentialAction } from "./ForeignKey.ts";
70
- export type { ReferentialAction as ReferentialActionName } from "./ForeignKey.ts";
71
- export { UniqueConstraint } from "./UniqueConstraint.ts";
72
- export { CheckConstraint } from "./CheckConstraint.ts";
73
- export { ExecuteStoredProcedureStatement } from "./ExecuteStoredProcedureStatement.ts";
74
- export { SelectInsertedIdStatement } from "./SelectInsertedIdStatement.ts";
75
- export { ReturnStatement } from "./ReturnStatement.ts";
@@ -1,30 +0,0 @@
1
- import type { ICommand } from "../ICommand.ts";
2
- import type { IConnection } from "../IConnection.ts";
3
- import type { Cells } from "../converters/Cell.ts";
4
- import type { IReader } from "../IReader.ts";
5
- import type { Response } from "../Response.ts";
6
- import type { Parameter } from "../Parameter.ts";
7
- import { CommandMiddlewareHost } from "../CommandMiddlewareHost.ts";
8
- import { Native } from "../statements/Native.ts";
9
- import { notImplemented } from "./notImplemented.ts";
10
-
11
- export class StubCommand extends CommandMiddlewareHost implements ICommand {
12
- constructor(
13
- readonly provider: string,
14
- readonly connection: IConnection,
15
- ) {
16
- super();
17
- }
18
-
19
- executeReaderNative = (
20
- text: Native,
21
- parameters?: Parameter[],
22
- ): Promise<IReader<Cells>> =>
23
- this.run(text.text, parameters, async () => notImplemented(this.provider));
24
-
25
- executeNative = (
26
- text: Native,
27
- parameters?: Parameter[],
28
- ): Promise<Response> =>
29
- this.run(text.text, parameters, async () => notImplemented(this.provider));
30
- }