@deterministic-code/datasources 0.1.1 → 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 (613) hide show
  1. package/dist/ArrayReader.js +27 -0
  2. package/dist/BatchCommandIBulkWriteStrategy.js +150 -0
  3. package/dist/BuiltRepository.js +1 -0
  4. package/dist/BulkCRUDRepository.js +48 -0
  5. package/dist/BulkCommand.js +1 -0
  6. package/dist/BulkWriteEnrichment.js +11 -0
  7. package/dist/CRUDRepository.js +182 -0
  8. package/dist/CRUDRepositoryBuilder.js +30 -0
  9. package/dist/CRUDRepositoryOptions.js +1 -0
  10. package/dist/CRUDRepositoryStatements.js +19 -0
  11. package/dist/CascadeDeleteEnrichmentStrategy.js +28 -0
  12. package/dist/CascadeDeleteUpdateEnrichmentStrategy.js +25 -0
  13. package/dist/CommandMiddlewareHost.js +73 -0
  14. package/dist/ConsoleCommandMiddleware.js +45 -0
  15. package/dist/CreateEnrichmentStrategy.js +64 -0
  16. package/dist/Datasource.js +98 -0
  17. package/dist/DatasourceError.js +6 -0
  18. package/dist/DatasourceFactory.js +76 -0
  19. package/dist/DatasourceOptions.js +1 -0
  20. package/dist/DatasourceUrl.js +28 -0
  21. package/dist/DatasourceUrlParser.js +168 -0
  22. package/dist/DefaultCreateEnrichmentStrategy.js +18 -0
  23. package/dist/DefaultReadonlyEnrichmentStrategy.js +107 -0
  24. package/dist/DefaultUpdateEnrichmentStrategy.js +41 -0
  25. package/dist/DefaultWriteEnrichmentStrategy.js +135 -0
  26. package/dist/DeleteEnrichmentStrategy.js +28 -0
  27. package/dist/DriverLoader.js +87 -0
  28. package/dist/Enrichment.js +1 -0
  29. package/dist/EnrichmentPropertyType.js +6 -0
  30. package/dist/ExpectConsoleMiddleware.js +30 -0
  31. package/dist/FirstResultReader.js +43 -0
  32. package/dist/HashsetOptimizedReadonlyEnrichmentStrategy.js +58 -0
  33. package/dist/IBulkWriteStrategy.js +1 -0
  34. package/dist/ICRUDRepository.js +1 -0
  35. package/dist/ICRUDRepositoryFactory.js +1 -0
  36. package/dist/ICommand.js +6 -0
  37. package/dist/ICommandMiddleware.js +1 -0
  38. package/dist/IConnection.js +1 -0
  39. package/dist/IDatasource.js +1 -0
  40. package/dist/IDatasourceFactory.js +1 -0
  41. package/dist/IDriver.d.ts +4 -0
  42. package/dist/IDriver.js +1 -0
  43. package/dist/IEnriched.js +1 -0
  44. package/dist/IReader.js +1 -0
  45. package/dist/IReadonlyEnrichmentStrategy.js +1 -0
  46. package/dist/IReadonlyRepository.js +1 -0
  47. package/dist/IRepository.js +1 -0
  48. package/dist/IRepositoryFactory.js +1 -0
  49. package/dist/IRepositoryTree.js +1 -0
  50. package/dist/IRepositoryTreeNode.js +1 -0
  51. package/dist/ITransaction.js +1 -0
  52. package/dist/IUnitOfWork.js +1 -0
  53. package/dist/IWriteEnrichmentStrategy.js +1 -0
  54. package/dist/Information.js +1 -0
  55. package/dist/IsolationLevel.js +6 -0
  56. package/dist/LazyWriteEnrichmentStrategy.js +4 -0
  57. package/dist/NestedToObjectEnrichmentStrategy.js +20 -0
  58. package/dist/Parameter.js +1 -0
  59. package/dist/ParameterDirection.js +6 -0
  60. package/dist/ProviderCatalog.js +23 -0
  61. package/dist/ProviderNotImplementedError.js +8 -0
  62. package/dist/ProviderNotInstalledError.js +8 -0
  63. package/dist/ReadonlyRepository.js +150 -0
  64. package/dist/ReadonlyRepositoryBuilder.js +43 -0
  65. package/dist/ReadonlyRepositoryMappingOptions.js +1 -0
  66. package/dist/ReadonlyRepositoryStatements.js +10 -0
  67. package/dist/RepositoryAccess.js +12 -0
  68. package/dist/RepositoryFactory.js +71 -0
  69. package/dist/RepositoryNotRegisteredError.js +8 -0
  70. package/dist/RepositoryTree.js +6 -0
  71. package/dist/RepositoryTreeNode.js +12 -0
  72. package/dist/Response.js +13 -0
  73. package/dist/Row.js +1 -0
  74. package/dist/SingleCommandIBulkWriteStrategy.js +21 -0
  75. package/dist/StatementMappers.js +88 -0
  76. package/dist/StoredEnrichment.js +12 -0
  77. package/dist/StoredProcedureBulkWriteStrategy.js +143 -0
  78. package/dist/StreamingReader.js +53 -0
  79. package/dist/UnitOfWorkTransaction.js +51 -0
  80. package/dist/UpdateEnrichmentStrategy.js +61 -0
  81. package/dist/WriteMode.js +1 -0
  82. package/dist/builders/Field.js +1 -0
  83. package/dist/builders/Scalar.js +1 -0
  84. package/dist/builders/index.js +1 -0
  85. package/dist/collectAsync.js +7 -0
  86. package/dist/converters/Cell.js +1 -0
  87. package/dist/converters/ChangeCasingConverter.js +46 -0
  88. package/dist/converters/Constructable.js +1 -0
  89. package/dist/converters/DefaultValueConverter.d.ts +25 -0
  90. package/dist/converters/DefaultValueConverter.js +183 -0
  91. package/dist/converters/DefaultValueOptions.d.ts +9 -0
  92. package/dist/converters/DefaultValueOptions.js +1 -0
  93. package/dist/converters/DeterministicTypeConverter.d.ts +11 -0
  94. package/dist/converters/DeterministicTypeConverter.js +74 -0
  95. package/dist/converters/IMapping.d.ts +4 -0
  96. package/dist/converters/IMapping.js +1 -0
  97. package/dist/converters/MetaDataRowTypeConverter.js +71 -0
  98. package/dist/converters/PluralizerConverter.js +54 -0
  99. package/dist/converters/RegexConverter.js +12 -0
  100. package/dist/converters/ReplaceConverter.js +10 -0
  101. package/dist/converters/RowTypeConverter.js +25 -0
  102. package/dist/converters/SpecField.d.ts +7 -0
  103. package/dist/converters/SpecField.js +1 -0
  104. package/dist/converters/SpecFieldRules.d.ts +17 -0
  105. package/dist/converters/SpecFieldRules.js +1 -0
  106. package/dist/converters/ToLowerCaseConverter.js +4 -0
  107. package/dist/converters/ToUpperCaseConverter.js +4 -0
  108. package/dist/converters/TypeConverter.js +2 -0
  109. package/dist/createCRUDRepositoryOptions.js +7 -0
  110. package/dist/createReadonlyRepositoryMappingOptions.js +16 -0
  111. package/dist/dotEnv.js +9 -0
  112. package/dist/index.d.ts +9 -2
  113. package/dist/index.js +83 -0
  114. package/dist/mappers/ChangeCasingMapper.js +11 -0
  115. package/dist/mappers/DictionaryMapper.js +13 -0
  116. package/dist/mappers/FlatToNestedMapper.js +105 -0
  117. package/dist/mappers/IFlatToNestedMapper.js +1 -0
  118. package/dist/mappers/IMapper.js +1 -0
  119. package/dist/mappers/IdentityMapper.js +4 -0
  120. package/dist/mappers/PluralizerMapper.js +6 -0
  121. package/dist/mappers/RowTypeMapper.js +7 -0
  122. package/dist/mappers/TransformConverterMapper.js +6 -0
  123. package/dist/mappers/TransformMapper.js +8 -0
  124. package/dist/mappers/TypeMap.js +1 -0
  125. package/dist/mappers/TypeMapGroup.js +1 -0
  126. package/dist/mocks/index.js +9 -0
  127. package/dist/mocks/mock-command.js +42 -0
  128. package/dist/mocks/mock-connection.js +48 -0
  129. package/dist/mocks/mock-datasource.js +44 -0
  130. package/dist/mocks/mock-driver.js +15 -0
  131. package/dist/mocks/mock-reader.js +33 -0
  132. package/dist/mocks/mock-repository.js +61 -0
  133. package/dist/mocks/mock-select-statement.js +13 -0
  134. package/dist/mocks/mock-transaction.js +28 -0
  135. package/dist/mocks/mock-where.js +11 -0
  136. package/dist/parametersToRecord.js +9 -0
  137. package/dist/readerToAsyncIterable.js +7 -0
  138. package/dist/splitStatements.js +106 -0
  139. package/dist/statementParameters.js +25 -0
  140. package/dist/statementUsesParameter.js +2 -0
  141. package/dist/statements/Aggregate.js +7 -0
  142. package/dist/statements/AlterTableStatement.d.ts +33 -0
  143. package/dist/statements/AlterTableStatement.js +9 -0
  144. package/dist/statements/AlterTableStatementTextRenderer.d.ts +9 -0
  145. package/dist/statements/AlterTableStatementTextRenderer.js +33 -0
  146. package/dist/statements/ArrayExpression.js +6 -0
  147. package/dist/statements/BulkDeleteStatement.js +15 -0
  148. package/dist/statements/BulkDeleteStatementTextRenderer.js +15 -0
  149. package/dist/statements/BulkInsertStatement.js +29 -0
  150. package/dist/statements/BulkInsertStatementTextRenderer.js +6 -0
  151. package/dist/statements/BulkUpdateStatement.js +17 -0
  152. package/dist/statements/BulkUpdateStatementTextRenderer.js +20 -0
  153. package/dist/statements/CheckConstraint.js +9 -0
  154. package/dist/statements/Cmp.js +7 -0
  155. package/dist/statements/Column.js +1 -0
  156. package/dist/statements/ColumnDefault.js +8 -0
  157. package/dist/statements/Condition.js +2 -0
  158. package/dist/statements/ConditionRenderer.js +11 -0
  159. package/dist/statements/CreateBulkCreateStoredProcedureStatement.d.ts +13 -0
  160. package/dist/statements/CreateBulkCreateStoredProcedureStatement.js +17 -0
  161. package/dist/statements/CreateBulkCreateStoredProcedureStatementTextRenderer.d.ts +4 -0
  162. package/dist/statements/CreateBulkCreateStoredProcedureStatementTextRenderer.js +5 -0
  163. package/dist/statements/CreateBulkDeleteStoredProcedureStatement.d.ts +13 -0
  164. package/dist/statements/CreateBulkDeleteStoredProcedureStatement.js +17 -0
  165. package/dist/statements/CreateBulkDeleteStoredProcedureStatementTextRenderer.d.ts +4 -0
  166. package/dist/statements/CreateBulkDeleteStoredProcedureStatementTextRenderer.js +5 -0
  167. package/dist/statements/CreateBulkUpdateStoredProcedureStatement.d.ts +13 -0
  168. package/dist/statements/CreateBulkUpdateStoredProcedureStatement.js +17 -0
  169. package/dist/statements/CreateBulkUpdateStoredProcedureStatementTextRenderer.d.ts +4 -0
  170. package/dist/statements/CreateBulkUpdateStoredProcedureStatementTextRenderer.js +5 -0
  171. package/dist/statements/CreateCreateStoredProcedureStatement.d.ts +16 -0
  172. package/dist/statements/CreateCreateStoredProcedureStatement.js +23 -0
  173. package/dist/statements/CreateCreateStoredProcedureStatementTextRenderer.d.ts +4 -0
  174. package/dist/statements/CreateCreateStoredProcedureStatementTextRenderer.js +5 -0
  175. package/dist/statements/CreateDeleteStoredProcedureStatement.d.ts +17 -0
  176. package/dist/statements/CreateDeleteStoredProcedureStatement.js +25 -0
  177. package/dist/statements/CreateDeleteStoredProcedureStatementTextRenderer.d.ts +4 -0
  178. package/dist/statements/CreateDeleteStoredProcedureStatementTextRenderer.js +5 -0
  179. package/dist/statements/CreateIndexStatement.js +13 -0
  180. package/dist/statements/CreateIndexStatementTextRenderer.js +8 -0
  181. package/dist/statements/CreateReadStoredProcedureStatement.d.ts +17 -0
  182. package/dist/statements/CreateReadStoredProcedureStatement.js +25 -0
  183. package/dist/statements/CreateReadStoredProcedureStatementTextRenderer.d.ts +4 -0
  184. package/dist/statements/CreateReadStoredProcedureStatementTextRenderer.js +5 -0
  185. package/dist/statements/CreateRoutineStatement.d.ts +22 -0
  186. package/dist/statements/CreateRoutineStatementTextRenderer.d.ts +4 -0
  187. package/dist/statements/CreateTableStatement.js +11 -0
  188. package/dist/statements/CreateTableStatementTextRenderer.js +65 -0
  189. package/dist/statements/CreateTriggerStatement.d.ts +11 -0
  190. package/dist/statements/CreateTriggerStatement.js +15 -0
  191. package/dist/statements/CreateTriggerStatementTextRenderer.d.ts +4 -0
  192. package/dist/statements/CreateTriggerStatementTextRenderer.js +5 -0
  193. package/dist/statements/CreateUpdateStoredProcedureStatement.d.ts +17 -0
  194. package/dist/statements/CreateUpdateStoredProcedureStatement.js +25 -0
  195. package/dist/statements/CreateUpdateStoredProcedureStatementTextRenderer.d.ts +4 -0
  196. package/dist/statements/CreateUpdateStoredProcedureStatementTextRenderer.js +5 -0
  197. package/dist/statements/DefaultStatementTextRenderer.js +7 -0
  198. package/dist/statements/DeleteStatement.js +9 -0
  199. package/dist/statements/DeleteStatementTextRenderer.js +11 -0
  200. package/dist/statements/DropIndexStatement.d.ts +8 -0
  201. package/dist/statements/DropIndexStatement.js +9 -0
  202. package/dist/statements/DropIndexStatementTextRenderer.d.ts +5 -0
  203. package/dist/statements/DropIndexStatementTextRenderer.js +8 -0
  204. package/dist/statements/DropRoutineStatement.d.ts +7 -0
  205. package/dist/statements/DropRoutineStatement.js +7 -0
  206. package/dist/statements/DropRoutineStatementTextRenderer.d.ts +4 -0
  207. package/dist/statements/DropRoutineStatementTextRenderer.js +5 -0
  208. package/dist/statements/DropTableStatement.d.ts +7 -0
  209. package/dist/statements/DropTableStatement.js +7 -0
  210. package/dist/statements/DropTableStatementTextRenderer.d.ts +5 -0
  211. package/dist/statements/DropTableStatementTextRenderer.js +8 -0
  212. package/dist/statements/DropTriggerStatement.d.ts +8 -0
  213. package/dist/statements/DropTriggerStatement.js +9 -0
  214. package/dist/statements/DropTriggerStatementTextRenderer.d.ts +5 -0
  215. package/dist/statements/DropTriggerStatementTextRenderer.js +8 -0
  216. package/dist/statements/ExecuteStoredProcedureStatement.js +9 -0
  217. package/dist/statements/ExecuteStoredProcedureStatementTextRenderer.js +10 -0
  218. package/dist/statements/ExpressionEvaluator.js +122 -0
  219. package/dist/statements/ExpressionRenderer.js +141 -0
  220. package/dist/statements/ForeignKey.js +24 -0
  221. package/dist/statements/IAlterTableStatement.d.ts +3 -0
  222. package/dist/statements/IAlterTableStatement.js +1 -0
  223. package/dist/statements/IBulkDeleteStatement.js +1 -0
  224. package/dist/statements/IBulkInsertStatement.js +1 -0
  225. package/dist/statements/IBulkUpdateStatement.js +1 -0
  226. package/dist/statements/ICondition.js +1 -0
  227. package/dist/statements/IConditionVisitor.js +1 -0
  228. package/dist/statements/ICreateBulkCreateStoredProcedureStatement.d.ts +3 -0
  229. package/dist/statements/ICreateBulkCreateStoredProcedureStatement.js +1 -0
  230. package/dist/statements/ICreateBulkDeleteStoredProcedureStatement.d.ts +3 -0
  231. package/dist/statements/ICreateBulkDeleteStoredProcedureStatement.js +1 -0
  232. package/dist/statements/ICreateBulkUpdateStoredProcedureStatement.d.ts +3 -0
  233. package/dist/statements/ICreateBulkUpdateStoredProcedureStatement.js +1 -0
  234. package/dist/statements/ICreateCreateStoredProcedureStatement.d.ts +3 -0
  235. package/dist/statements/ICreateCreateStoredProcedureStatement.js +1 -0
  236. package/dist/statements/ICreateDeleteStoredProcedureStatement.d.ts +3 -0
  237. package/dist/statements/ICreateDeleteStoredProcedureStatement.js +1 -0
  238. package/dist/statements/ICreateIndexStatement.js +1 -0
  239. package/dist/statements/ICreateReadStoredProcedureStatement.d.ts +3 -0
  240. package/dist/statements/ICreateReadStoredProcedureStatement.js +1 -0
  241. package/dist/statements/ICreateRoutineStatement.d.ts +3 -0
  242. package/dist/statements/ICreateTableStatement.js +1 -0
  243. package/dist/statements/ICreateTriggerStatement.d.ts +3 -0
  244. package/dist/statements/ICreateTriggerStatement.js +1 -0
  245. package/dist/statements/ICreateUpdateStoredProcedureStatement.d.ts +3 -0
  246. package/dist/statements/ICreateUpdateStoredProcedureStatement.js +1 -0
  247. package/dist/statements/IDeleteStatement.js +1 -0
  248. package/dist/statements/IDropIndexStatement.d.ts +3 -0
  249. package/dist/statements/IDropIndexStatement.js +1 -0
  250. package/dist/statements/IDropRoutineStatement.d.ts +3 -0
  251. package/dist/statements/IDropRoutineStatement.js +1 -0
  252. package/dist/statements/IDropTableStatement.d.ts +3 -0
  253. package/dist/statements/IDropTableStatement.js +1 -0
  254. package/dist/statements/IDropTriggerStatement.d.ts +3 -0
  255. package/dist/statements/IDropTriggerStatement.js +1 -0
  256. package/dist/statements/IExecuteStoredProcedureStatement.js +1 -0
  257. package/dist/statements/IExpression.js +1 -0
  258. package/dist/statements/IIdentityInsertStatement.d.ts +3 -0
  259. package/dist/statements/IIdentityInsertStatement.js +1 -0
  260. package/dist/statements/IInsertStatement.js +1 -0
  261. package/dist/statements/IReturnStatement.js +1 -0
  262. package/dist/statements/ISelectStatement.js +1 -0
  263. package/dist/statements/IStatement.js +1 -0
  264. package/dist/statements/IStatementVisitor.d.ts +28 -0
  265. package/dist/statements/IStatementVisitor.js +1 -0
  266. package/dist/statements/ITableConstraint.js +1 -0
  267. package/dist/statements/IUpdateStatement.js +1 -0
  268. package/dist/statements/IWhere.js +1 -0
  269. package/dist/statements/Identifier.js +6 -0
  270. package/dist/statements/IdentityInsertStatement.d.ts +11 -0
  271. package/dist/statements/IdentityInsertStatement.js +13 -0
  272. package/dist/statements/IdentityInsertStatementTextRenderer.d.ts +6 -0
  273. package/dist/statements/IdentityInsertStatementTextRenderer.js +8 -0
  274. package/dist/statements/InsertStatement.js +9 -0
  275. package/dist/statements/InsertStatementTextRenderer.js +5 -0
  276. package/dist/statements/Join.js +10 -0
  277. package/dist/statements/Literal.js +6 -0
  278. package/dist/statements/Native.js +7 -0
  279. package/dist/statements/NotNull.js +6 -0
  280. package/dist/statements/Operator.js +207 -0
  281. package/dist/statements/OrderBy.js +9 -0
  282. package/dist/statements/PrimaryKey.js +9 -0
  283. package/dist/statements/ReturnStatement.js +9 -0
  284. package/dist/statements/ReturnStatementTextRenderer.js +10 -0
  285. package/dist/statements/RoutineParameter.d.ts +4 -0
  286. package/dist/statements/RoutineParameter.js +1 -0
  287. package/dist/statements/SelectInsertedIdStatement.js +9 -0
  288. package/dist/statements/SelectInsertedIdStatementTextRenderer.js +5 -0
  289. package/dist/statements/SelectStatement.js +25 -0
  290. package/dist/statements/SelectStatementOptions.js +1 -0
  291. package/dist/statements/SelectStatementTextRenderer.js +54 -0
  292. package/dist/statements/StatementEvaluator.js +3 -0
  293. package/dist/statements/StatementParser.js +454 -0
  294. package/dist/statements/StatementRenderer.d.ts +42 -0
  295. package/dist/statements/StatementRenderer.js +140 -0
  296. package/dist/statements/StatementTextRenderer.js +27 -0
  297. package/dist/statements/Subquery.js +6 -0
  298. package/dist/statements/UniqueConstraint.js +9 -0
  299. package/dist/statements/UpdateStatement.js +19 -0
  300. package/dist/statements/UpdateStatementTextRenderer.js +51 -0
  301. package/dist/statements/Where.js +182 -0
  302. package/dist/statements/WhereText.js +10 -0
  303. package/dist/statements/index.d.ts +44 -0
  304. package/dist/statements/index.js +79 -0
  305. package/dist/stubs/StubCommand.js +13 -0
  306. package/dist/stubs/StubConnection.js +14 -0
  307. package/dist/stubs/StubDatasource.js +34 -0
  308. package/dist/stubs/StubReader.js +20 -0
  309. package/dist/stubs/StubRepository.js +17 -0
  310. package/dist/stubs/StubTransaction.js +13 -0
  311. package/dist/stubs/createStubDatasource.js +2 -0
  312. package/dist/stubs/index.js +7 -0
  313. package/dist/stubs/notImplemented.js +4 -0
  314. package/package.json +10 -11
  315. package/src/ArrayReader.test.ts +0 -23
  316. package/src/ArrayReader.ts +0 -32
  317. package/src/BatchCommandIBulkWriteStrategy.ts +0 -228
  318. package/src/BuiltRepository.ts +0 -17
  319. package/src/BulkCRUDRepository.test.ts +0 -183
  320. package/src/BulkCRUDRepository.ts +0 -84
  321. package/src/BulkCommand.ts +0 -6
  322. package/src/BulkWriteEnrichment.ts +0 -19
  323. package/src/BulkWriteStrategy.test.ts +0 -293
  324. package/src/CRUDRepository.test.ts +0 -420
  325. package/src/CRUDRepository.ts +0 -264
  326. package/src/CRUDRepositoryBuilder.ts +0 -53
  327. package/src/CRUDRepositoryOptions.test.ts +0 -76
  328. package/src/CRUDRepositoryOptions.ts +0 -8
  329. package/src/CRUDRepositoryStatements.ts +0 -43
  330. package/src/CascadeDeleteEnrichmentStrategy.ts +0 -51
  331. package/src/CascadeDeleteUpdateEnrichmentStrategy.ts +0 -28
  332. package/src/Command.test.ts +0 -105
  333. package/src/CommandMiddlewareHost.test.ts +0 -98
  334. package/src/CommandMiddlewareHost.ts +0 -113
  335. package/src/Connection.test.ts +0 -34
  336. package/src/ConsoleCommandMiddleware.test.ts +0 -149
  337. package/src/ConsoleCommandMiddleware.ts +0 -64
  338. package/src/CreateEnrichmentStrategy.ts +0 -82
  339. package/src/Datasource.test.ts +0 -63
  340. package/src/Datasource.ts +0 -152
  341. package/src/DatasourceError.test.ts +0 -10
  342. package/src/DatasourceError.ts +0 -6
  343. package/src/DatasourceFactory.test.ts +0 -159
  344. package/src/DatasourceFactory.ts +0 -86
  345. package/src/DatasourceOptions.ts +0 -1
  346. package/src/DatasourceUrl.ts +0 -37
  347. package/src/DatasourceUrlParser.test.ts +0 -173
  348. package/src/DatasourceUrlParser.ts +0 -188
  349. package/src/DefaultCreateEnrichmentStrategy.ts +0 -21
  350. package/src/DefaultReadonlyEnrichmentStrategy.ts +0 -164
  351. package/src/DefaultUpdateEnrichmentStrategy.ts +0 -40
  352. package/src/DefaultWriteEnrichmentStrategy.ts +0 -151
  353. package/src/DeleteEnrichmentStrategy.ts +0 -56
  354. package/src/DriverLoader.ts +0 -97
  355. package/src/Enrichment.ts +0 -15
  356. package/src/EnrichmentPropertyType.ts +0 -9
  357. package/src/ExpectConsoleMiddleware.test.ts +0 -79
  358. package/src/ExpectConsoleMiddleware.ts +0 -47
  359. package/src/FirstResultReader.test.ts +0 -43
  360. package/src/FirstResultReader.ts +0 -49
  361. package/src/HashsetOptimizedReadonlyEnrichmentStrategy.ts +0 -80
  362. package/src/IBulkWriteStrategy.ts +0 -13
  363. package/src/ICRUDRepository.ts +0 -13
  364. package/src/ICRUDRepositoryFactory.ts +0 -8
  365. package/src/ICommand.ts +0 -45
  366. package/src/ICommandMiddleware.ts +0 -20
  367. package/src/IConnection.ts +0 -13
  368. package/src/IDatasource.ts +0 -27
  369. package/src/IDatasourceFactory.ts +0 -6
  370. package/src/IDriver.ts +0 -24
  371. package/src/IEnriched.ts +0 -11
  372. package/src/IReader.ts +0 -8
  373. package/src/IReadonlyEnrichmentStrategy.ts +0 -19
  374. package/src/IReadonlyRepository.ts +0 -21
  375. package/src/IRepository.ts +0 -5
  376. package/src/IRepositoryFactory.ts +0 -8
  377. package/src/IRepositoryTree.ts +0 -5
  378. package/src/IRepositoryTreeNode.ts +0 -8
  379. package/src/ITransaction.ts +0 -9
  380. package/src/IUnitOfWork.ts +0 -5
  381. package/src/IWriteEnrichmentStrategy.ts +0 -8
  382. package/src/Information.ts +0 -5
  383. package/src/IsolationLevel.test.ts +0 -13
  384. package/src/IsolationLevel.ts +0 -8
  385. package/src/LazyWriteEnrichmentStrategy.ts +0 -5
  386. package/src/NestedToObjectEnrichmentStrategy.ts +0 -33
  387. package/src/Parameter.ts +0 -8
  388. package/src/ParameterDirection.ts +0 -9
  389. package/src/ProviderCatalog.test.ts +0 -110
  390. package/src/ProviderCatalog.ts +0 -21
  391. package/src/ProviderNotImplementedError.test.ts +0 -11
  392. package/src/ProviderNotImplementedError.ts +0 -9
  393. package/src/ProviderNotInstalledError.test.ts +0 -11
  394. package/src/ProviderNotInstalledError.ts +0 -9
  395. package/src/ReadonlyRepository.test.ts +0 -406
  396. package/src/ReadonlyRepository.ts +0 -276
  397. package/src/ReadonlyRepositoryBuilder.ts +0 -53
  398. package/src/ReadonlyRepositoryMappingOptions.ts +0 -15
  399. package/src/ReadonlyRepositoryStatements.ts +0 -13
  400. package/src/RepositoryAccess.ts +0 -14
  401. package/src/RepositoryFactory.test.ts +0 -94
  402. package/src/RepositoryFactory.ts +0 -115
  403. package/src/RepositoryNotRegisteredError.ts +0 -9
  404. package/src/RepositoryTree.ts +0 -6
  405. package/src/RepositoryTreeNode.ts +0 -11
  406. package/src/Response.ts +0 -15
  407. package/src/Row.ts +0 -3
  408. package/src/SingleCommandIBulkWriteStrategy.ts +0 -35
  409. package/src/StatementMappers.test.ts +0 -221
  410. package/src/StatementMappers.ts +0 -110
  411. package/src/StoredEnrichment.ts +0 -25
  412. package/src/StoredProcedureBulkWriteStrategy.ts +0 -164
  413. package/src/StreamingReader.test.ts +0 -126
  414. package/src/StreamingReader.ts +0 -64
  415. package/src/Transaction.test.ts +0 -37
  416. package/src/UnitOfWorkTransaction.test.ts +0 -43
  417. package/src/UnitOfWorkTransaction.ts +0 -50
  418. package/src/UpdateEnrichmentStrategy.ts +0 -97
  419. package/src/UserViewCRUDRepository.test.ts +0 -323
  420. package/src/WriteMode.ts +0 -1
  421. package/src/builders/Field.ts +0 -6
  422. package/src/builders/Scalar.ts +0 -1
  423. package/src/builders/builders.test.ts +0 -404
  424. package/src/builders/index.ts +0 -2
  425. package/src/collectAsync.ts +0 -7
  426. package/src/converters/Cell.ts +0 -10
  427. package/src/converters/ChangeCasingConverter.test.ts +0 -34
  428. package/src/converters/ChangeCasingConverter.ts +0 -59
  429. package/src/converters/Constructable.ts +0 -1
  430. package/src/converters/MetaDataRowTypeConverter.ts +0 -80
  431. package/src/converters/PluralizerConverter.test.ts +0 -43
  432. package/src/converters/PluralizerConverter.ts +0 -67
  433. package/src/converters/RegexConverter.test.ts +0 -11
  434. package/src/converters/RegexConverter.ts +0 -14
  435. package/src/converters/ReplaceConverter.test.ts +0 -9
  436. package/src/converters/ReplaceConverter.ts +0 -6
  437. package/src/converters/RowTypeConverter.test.ts +0 -79
  438. package/src/converters/RowTypeConverter.ts +0 -33
  439. package/src/converters/ToLowerCaseConverter.test.ts +0 -9
  440. package/src/converters/ToLowerCaseConverter.ts +0 -4
  441. package/src/converters/ToUpperCaseConverter.test.ts +0 -9
  442. package/src/converters/ToUpperCaseConverter.ts +0 -4
  443. package/src/converters/TypeConverter.ts +0 -6
  444. package/src/createCRUDRepositoryOptions.ts +0 -21
  445. package/src/createReadonlyRepositoryMappingOptions.ts +0 -26
  446. package/src/dotEnv.test.ts +0 -21
  447. package/src/dotEnv.ts +0 -16
  448. package/src/edgeCases.test.ts +0 -485
  449. package/src/index.ts +0 -222
  450. package/src/mappers/ChangeCasingMapper.test.ts +0 -32
  451. package/src/mappers/ChangeCasingMapper.ts +0 -15
  452. package/src/mappers/DictionaryMapper.test.ts +0 -69
  453. package/src/mappers/DictionaryMapper.ts +0 -16
  454. package/src/mappers/FlatToNestedMapper.test.ts +0 -269
  455. package/src/mappers/FlatToNestedMapper.ts +0 -127
  456. package/src/mappers/IFlatToNestedMapper.ts +0 -7
  457. package/src/mappers/IMapper.ts +0 -4
  458. package/src/mappers/IdentityMapper.test.ts +0 -12
  459. package/src/mappers/IdentityMapper.ts +0 -6
  460. package/src/mappers/PluralizerMapper.test.ts +0 -40
  461. package/src/mappers/PluralizerMapper.ts +0 -9
  462. package/src/mappers/RowTypeMapper.test.ts +0 -12
  463. package/src/mappers/RowTypeMapper.ts +0 -13
  464. package/src/mappers/TransformConverterMapper.test.ts +0 -181
  465. package/src/mappers/TransformConverterMapper.ts +0 -11
  466. package/src/mappers/TransformMapper.ts +0 -8
  467. package/src/mappers/TypeMap.ts +0 -10
  468. package/src/mappers/TypeMapGroup.ts +0 -6
  469. package/src/mappers/transformMapper.test.ts +0 -66
  470. package/src/mocks/MockCommand.test.ts +0 -75
  471. package/src/mocks/MockConnection.test.ts +0 -34
  472. package/src/mocks/MockDatasource.test.ts +0 -40
  473. package/src/mocks/MockReader.test.ts +0 -17
  474. package/src/mocks/MockRepository.test.ts +0 -32
  475. package/src/mocks/MockSelectStatement.test.ts +0 -11
  476. package/src/mocks/MockTransaction.test.ts +0 -17
  477. package/src/mocks/MockWhere.test.ts +0 -11
  478. package/src/mocks/index.ts +0 -9
  479. package/src/mocks/mock-command.ts +0 -66
  480. package/src/mocks/mock-connection.ts +0 -57
  481. package/src/mocks/mock-datasource.ts +0 -65
  482. package/src/mocks/mock-driver.ts +0 -27
  483. package/src/mocks/mock-reader.ts +0 -38
  484. package/src/mocks/mock-repository.ts +0 -91
  485. package/src/mocks/mock-select-statement.ts +0 -17
  486. package/src/mocks/mock-transaction.ts +0 -31
  487. package/src/mocks/mock-where.ts +0 -13
  488. package/src/parametersToRecord.test.ts +0 -19
  489. package/src/parametersToRecord.ts +0 -11
  490. package/src/public-surface.test.ts +0 -23
  491. package/src/readWithWhereClauseAndCustomFlatToNestedObjectMappingOptions.test.ts +0 -126
  492. package/src/readerToAsyncIterable.test.ts +0 -39
  493. package/src/readerToAsyncIterable.ts +0 -11
  494. package/src/repository.test.ts +0 -410
  495. package/src/repository.type.test.ts +0 -29
  496. package/src/splitStatements.ts +0 -99
  497. package/src/statementParameters.ts +0 -22
  498. package/src/statementUsesParameter.ts +0 -4
  499. package/src/statements/Aggregate.ts +0 -9
  500. package/src/statements/ArrayExpression.ts +0 -5
  501. package/src/statements/BulkDeleteStatement.ts +0 -18
  502. package/src/statements/BulkDeleteStatementTextRenderer.ts +0 -16
  503. package/src/statements/BulkInsertStatement.ts +0 -37
  504. package/src/statements/BulkInsertStatementTextRenderer.ts +0 -10
  505. package/src/statements/BulkUpdateStatement.ts +0 -24
  506. package/src/statements/BulkUpdateStatementTextRenderer.ts +0 -29
  507. package/src/statements/CheckConstraint.ts +0 -9
  508. package/src/statements/Cmp.ts +0 -12
  509. package/src/statements/Column.ts +0 -10
  510. package/src/statements/ColumnDefault.ts +0 -6
  511. package/src/statements/Condition.ts +0 -3
  512. package/src/statements/ConditionRenderer.ts +0 -17
  513. package/src/statements/CreateIndexStatement.ts +0 -18
  514. package/src/statements/CreateIndexStatementTextRenderer.ts +0 -11
  515. package/src/statements/CreateTableStatement.ts +0 -18
  516. package/src/statements/CreateTableStatementTextRenderer.ts +0 -92
  517. package/src/statements/DefaultStatementTextRenderer.ts +0 -9
  518. package/src/statements/DeleteStatement.ts +0 -15
  519. package/src/statements/DeleteStatementTextRenderer.ts +0 -12
  520. package/src/statements/ExecuteStoredProcedureStatement.ts +0 -15
  521. package/src/statements/ExecuteStoredProcedureStatementTextRenderer.ts +0 -15
  522. package/src/statements/ExpressionEvaluator.ts +0 -166
  523. package/src/statements/ExpressionRenderer.ts +0 -161
  524. package/src/statements/ForeignKey.ts +0 -23
  525. package/src/statements/IBulkDeleteStatement.ts +0 -3
  526. package/src/statements/IBulkInsertStatement.ts +0 -3
  527. package/src/statements/IBulkUpdateStatement.ts +0 -3
  528. package/src/statements/ICondition.ts +0 -5
  529. package/src/statements/IConditionVisitor.ts +0 -7
  530. package/src/statements/ICreateIndexStatement.ts +0 -3
  531. package/src/statements/ICreateTableStatement.ts +0 -3
  532. package/src/statements/IDeleteStatement.ts +0 -6
  533. package/src/statements/IExecuteStoredProcedureStatement.ts +0 -3
  534. package/src/statements/IExpression.ts +0 -1
  535. package/src/statements/IInsertStatement.ts +0 -3
  536. package/src/statements/IReturnStatement.ts +0 -3
  537. package/src/statements/ISelectStatement.ts +0 -6
  538. package/src/statements/IStatement.ts +0 -5
  539. package/src/statements/IStatementVisitor.ts +0 -27
  540. package/src/statements/ITableConstraint.ts +0 -6
  541. package/src/statements/IUpdateStatement.ts +0 -6
  542. package/src/statements/IWhere.ts +0 -7
  543. package/src/statements/Identifier.ts +0 -5
  544. package/src/statements/InsertStatement.ts +0 -15
  545. package/src/statements/InsertStatementTextRenderer.ts +0 -7
  546. package/src/statements/Join.ts +0 -26
  547. package/src/statements/Literal.ts +0 -6
  548. package/src/statements/Native.ts +0 -5
  549. package/src/statements/NotNull.ts +0 -3
  550. package/src/statements/Operator.ts +0 -234
  551. package/src/statements/OrderBy.ts +0 -19
  552. package/src/statements/PrimaryKey.ts +0 -9
  553. package/src/statements/ReturnStatement.ts +0 -15
  554. package/src/statements/ReturnStatementTextRenderer.ts +0 -15
  555. package/src/statements/SelectInsertedIdStatement.test.ts +0 -11
  556. package/src/statements/SelectInsertedIdStatement.ts +0 -11
  557. package/src/statements/SelectInsertedIdStatementTextRenderer.ts +0 -7
  558. package/src/statements/SelectStatement.ts +0 -34
  559. package/src/statements/SelectStatementOptions.ts +0 -16
  560. package/src/statements/SelectStatementTextRenderer.ts +0 -71
  561. package/src/statements/StatementCompile.test.ts +0 -231
  562. package/src/statements/StatementEvaluator.ts +0 -5
  563. package/src/statements/StatementParser.test.ts +0 -304
  564. package/src/statements/StatementParser.ts +0 -461
  565. package/src/statements/StatementRenderer.ts +0 -120
  566. package/src/statements/StatementTextRenderer.ts +0 -60
  567. package/src/statements/Subquery.ts +0 -6
  568. package/src/statements/UniqueConstraint.ts +0 -9
  569. package/src/statements/UpdateStatement.ts +0 -34
  570. package/src/statements/UpdateStatementTextRenderer.ts +0 -63
  571. package/src/statements/Where.ts +0 -250
  572. package/src/statements/WhereText.ts +0 -10
  573. package/src/statements/index.ts +0 -75
  574. package/src/stubs/StubCommand.ts +0 -30
  575. package/src/stubs/StubConnection.ts +0 -21
  576. package/src/stubs/StubDatasource.test.ts +0 -99
  577. package/src/stubs/StubDatasource.ts +0 -60
  578. package/src/stubs/StubReader.ts +0 -25
  579. package/src/stubs/StubRepository.ts +0 -42
  580. package/src/stubs/StubTransaction.ts +0 -17
  581. package/src/stubs/createStubDatasource.ts +0 -4
  582. package/src/stubs/index.ts +0 -7
  583. package/src/stubs/notImplemented.ts +0 -5
  584. package/src/tests/contact/Address.ts +0 -14
  585. package/src/tests/contact/AddressType.ts +0 -6
  586. package/src/tests/contact/Base.ts +0 -7
  587. package/src/tests/contact/Contact.ts +0 -12
  588. package/src/tests/contact/ContactBase.ts +0 -8
  589. package/src/tests/contact/ContactChangeLog.ts +0 -8
  590. package/src/tests/contact/ContactGroup.ts +0 -6
  591. package/src/tests/contact/ContactGroupBase.ts +0 -6
  592. package/src/tests/contact/ContactGroupMember.ts +0 -6
  593. package/src/tests/contact/ContactSource.ts +0 -6
  594. package/src/tests/contact/ContactType.ts +0 -6
  595. package/src/tests/contact/ContactsService.test.ts +0 -118
  596. package/src/tests/contact/ContactsService.ts +0 -32
  597. package/src/tests/contact/ImportContactRequest.ts +0 -4
  598. package/src/tests/contact/ImportContactResult.ts +0 -5
  599. package/src/tests/contact/LegacyContact.ts +0 -7
  600. package/src/tests/contact/LegacyMigrationResult.ts +0 -5
  601. package/src/tests/contact/Phone.ts +0 -9
  602. package/src/tests/contact/PhoneType.ts +0 -6
  603. package/src/tests/contact/asContactsView.ts +0 -63
  604. package/src/tests/contact/contactColumns.ts +0 -40
  605. package/src/tests/contact/contactLookupIds.ts +0 -32
  606. package/src/tests/contact/contactLookups.ts +0 -6
  607. package/src/tests/contact/contactsParity.ts +0 -63
  608. package/src/tests/contact/contactsServiceOf.ts +0 -38
  609. package/src/tests/contact/contactsView.ts +0 -31
  610. package/src/tests/contact/expectContactsView.ts +0 -23
  611. package/src/tests/contact/extraContact.ts +0 -61
  612. package/src/tests/contact/logMapped.ts +0 -5
  613. package/src/tests/contact/seedContacts.ts +0 -31
@@ -0,0 +1,17 @@
1
+ export class CreateBulkUpdateStoredProcedureStatement {
2
+ name;
3
+ table;
4
+ columns;
5
+ payload;
6
+ key;
7
+ keyType;
8
+ constructor(name, table, columns, payload, key, keyType) {
9
+ this.name = name;
10
+ this.table = table;
11
+ this.columns = columns;
12
+ this.payload = payload;
13
+ this.key = key;
14
+ this.keyType = keyType;
15
+ }
16
+ accept = (visitor) => visitor.visit(this);
17
+ }
@@ -0,0 +1,4 @@
1
+ import type { CreateBulkUpdateStoredProcedureStatement } from "./CreateBulkUpdateStoredProcedureStatement.js";
2
+ export declare class CreateBulkUpdateStoredProcedureStatementTextRenderer {
3
+ render(_statement: CreateBulkUpdateStoredProcedureStatement): string;
4
+ }
@@ -0,0 +1,5 @@
1
+ export class CreateBulkUpdateStoredProcedureStatementTextRenderer {
2
+ render(_statement) {
3
+ return "";
4
+ }
5
+ }
@@ -0,0 +1,16 @@
1
+ import type { ICreateCreateStoredProcedureStatement } from "./ICreateCreateStoredProcedureStatement.js";
2
+ import type { IStatementVisitor } from "./IStatementVisitor.js";
3
+ import type { RoutineParameter } from "./RoutineParameter.js";
4
+ export declare class CreateCreateStoredProcedureStatement implements ICreateCreateStoredProcedureStatement {
5
+ readonly name: string;
6
+ readonly table: string;
7
+ readonly columns: readonly string[];
8
+ readonly parameters: readonly RoutineParameter[];
9
+ readonly key: string;
10
+ readonly keyType: string;
11
+ readonly writable: readonly string[];
12
+ readonly generatedKey: boolean;
13
+ readonly auditUpdated?: string | undefined;
14
+ constructor(name: string, table: string, columns: readonly string[], parameters: readonly RoutineParameter[], key: string, keyType: string, writable: readonly string[], generatedKey?: boolean, auditUpdated?: string | undefined);
15
+ accept: (visitor: IStatementVisitor) => string;
16
+ }
@@ -0,0 +1,23 @@
1
+ export class CreateCreateStoredProcedureStatement {
2
+ name;
3
+ table;
4
+ columns;
5
+ parameters;
6
+ key;
7
+ keyType;
8
+ writable;
9
+ generatedKey;
10
+ auditUpdated;
11
+ constructor(name, table, columns, parameters, key, keyType, writable, generatedKey = false, auditUpdated) {
12
+ this.name = name;
13
+ this.table = table;
14
+ this.columns = columns;
15
+ this.parameters = parameters;
16
+ this.key = key;
17
+ this.keyType = keyType;
18
+ this.writable = writable;
19
+ this.generatedKey = generatedKey;
20
+ this.auditUpdated = auditUpdated;
21
+ }
22
+ accept = (visitor) => visitor.visit(this);
23
+ }
@@ -0,0 +1,4 @@
1
+ import type { CreateCreateStoredProcedureStatement } from "./CreateCreateStoredProcedureStatement.js";
2
+ export declare class CreateCreateStoredProcedureStatementTextRenderer {
3
+ render(_statement: CreateCreateStoredProcedureStatement): string;
4
+ }
@@ -0,0 +1,5 @@
1
+ export class CreateCreateStoredProcedureStatementTextRenderer {
2
+ render(_statement) {
3
+ return "";
4
+ }
5
+ }
@@ -0,0 +1,17 @@
1
+ import type { ICreateDeleteStoredProcedureStatement } from "./ICreateDeleteStoredProcedureStatement.js";
2
+ import type { IStatementVisitor } from "./IStatementVisitor.js";
3
+ import type { RoutineParameter } from "./RoutineParameter.js";
4
+ export declare class CreateDeleteStoredProcedureStatement implements ICreateDeleteStoredProcedureStatement {
5
+ readonly name: string;
6
+ readonly table: string;
7
+ readonly columns: readonly string[];
8
+ readonly parameters: readonly RoutineParameter[];
9
+ readonly key: string;
10
+ readonly keyType: string;
11
+ readonly writable: readonly string[];
12
+ readonly byProperties: readonly string[];
13
+ readonly generatedKey: boolean;
14
+ readonly auditUpdated?: string | undefined;
15
+ constructor(name: string, table: string, columns: readonly string[], parameters: readonly RoutineParameter[], key: string, keyType: string, writable: readonly string[], byProperties?: readonly string[], generatedKey?: boolean, auditUpdated?: string | undefined);
16
+ accept: (visitor: IStatementVisitor) => string;
17
+ }
@@ -0,0 +1,25 @@
1
+ export class CreateDeleteStoredProcedureStatement {
2
+ name;
3
+ table;
4
+ columns;
5
+ parameters;
6
+ key;
7
+ keyType;
8
+ writable;
9
+ byProperties;
10
+ generatedKey;
11
+ auditUpdated;
12
+ constructor(name, table, columns, parameters, key, keyType, writable, byProperties = [], generatedKey = false, auditUpdated) {
13
+ this.name = name;
14
+ this.table = table;
15
+ this.columns = columns;
16
+ this.parameters = parameters;
17
+ this.key = key;
18
+ this.keyType = keyType;
19
+ this.writable = writable;
20
+ this.byProperties = byProperties;
21
+ this.generatedKey = generatedKey;
22
+ this.auditUpdated = auditUpdated;
23
+ }
24
+ accept = (visitor) => visitor.visit(this);
25
+ }
@@ -0,0 +1,4 @@
1
+ import type { CreateDeleteStoredProcedureStatement } from "./CreateDeleteStoredProcedureStatement.js";
2
+ export declare class CreateDeleteStoredProcedureStatementTextRenderer {
3
+ render(_statement: CreateDeleteStoredProcedureStatement): string;
4
+ }
@@ -0,0 +1,5 @@
1
+ export class CreateDeleteStoredProcedureStatementTextRenderer {
2
+ render(_statement) {
3
+ return "";
4
+ }
5
+ }
@@ -0,0 +1,13 @@
1
+ export class CreateIndexStatement {
2
+ name;
3
+ table;
4
+ columns;
5
+ unique;
6
+ constructor(name, table, columns, unique = false) {
7
+ this.name = name;
8
+ this.table = table;
9
+ this.columns = columns;
10
+ this.unique = unique;
11
+ }
12
+ accept = (visitor) => visitor.visit(this);
13
+ }
@@ -0,0 +1,8 @@
1
+ export class CreateIndexStatementTextRenderer {
2
+ render(statement) {
3
+ return `CREATE ${statement.unique ? "UNIQUE " : ""}INDEX ${this.quote(statement.name)} ON ${this.quote(statement.table)} (${statement.columns.map((column) => this.quote(column)).join(", ")})`;
4
+ }
5
+ quote(name) {
6
+ return name;
7
+ }
8
+ }
@@ -0,0 +1,17 @@
1
+ import type { ICreateReadStoredProcedureStatement } from "./ICreateReadStoredProcedureStatement.js";
2
+ import type { IStatementVisitor } from "./IStatementVisitor.js";
3
+ import type { RoutineParameter } from "./RoutineParameter.js";
4
+ export declare class CreateReadStoredProcedureStatement implements ICreateReadStoredProcedureStatement {
5
+ readonly name: string;
6
+ readonly table: string;
7
+ readonly columns: readonly string[];
8
+ readonly parameters: readonly RoutineParameter[];
9
+ readonly key: string;
10
+ readonly keyType: string;
11
+ readonly writable: readonly string[];
12
+ readonly byProperties: readonly string[];
13
+ readonly generatedKey: boolean;
14
+ readonly auditUpdated?: string | undefined;
15
+ constructor(name: string, table: string, columns: readonly string[], parameters: readonly RoutineParameter[], key: string, keyType: string, writable: readonly string[], byProperties?: readonly string[], generatedKey?: boolean, auditUpdated?: string | undefined);
16
+ accept: (visitor: IStatementVisitor) => string;
17
+ }
@@ -0,0 +1,25 @@
1
+ export class CreateReadStoredProcedureStatement {
2
+ name;
3
+ table;
4
+ columns;
5
+ parameters;
6
+ key;
7
+ keyType;
8
+ writable;
9
+ byProperties;
10
+ generatedKey;
11
+ auditUpdated;
12
+ constructor(name, table, columns, parameters, key, keyType, writable, byProperties = [], generatedKey = false, auditUpdated) {
13
+ this.name = name;
14
+ this.table = table;
15
+ this.columns = columns;
16
+ this.parameters = parameters;
17
+ this.key = key;
18
+ this.keyType = keyType;
19
+ this.writable = writable;
20
+ this.byProperties = byProperties;
21
+ this.generatedKey = generatedKey;
22
+ this.auditUpdated = auditUpdated;
23
+ }
24
+ accept = (visitor) => visitor.visit(this);
25
+ }
@@ -0,0 +1,4 @@
1
+ import type { CreateReadStoredProcedureStatement } from "./CreateReadStoredProcedureStatement.js";
2
+ export declare class CreateReadStoredProcedureStatementTextRenderer {
3
+ render(_statement: CreateReadStoredProcedureStatement): string;
4
+ }
@@ -0,0 +1,5 @@
1
+ export class CreateReadStoredProcedureStatementTextRenderer {
2
+ render(_statement) {
3
+ return "";
4
+ }
5
+ }
@@ -0,0 +1,22 @@
1
+ import type { ICreateRoutineStatement } from "./ICreateRoutineStatement.js";
2
+ import type { IStatementVisitor } from "./IStatementVisitor.js";
3
+ export type RoutineKind = "create" | "findOne" | "findAll" | "findBy" | "update" | "delete";
4
+ export type RoutineParameter = {
5
+ name: string;
6
+ type: string;
7
+ };
8
+ export declare class CreateRoutineStatement implements ICreateRoutineStatement {
9
+ readonly name: string;
10
+ readonly kind: RoutineKind;
11
+ readonly table: string;
12
+ readonly columns: readonly string[];
13
+ readonly parameters: readonly RoutineParameter[];
14
+ readonly key: string;
15
+ readonly keyType: string;
16
+ readonly writable: readonly string[];
17
+ readonly byField?: string | undefined;
18
+ readonly generatedKey: boolean;
19
+ readonly auditUpdated?: string | undefined;
20
+ constructor(name: string, kind: RoutineKind, table: string, columns: readonly string[], parameters: readonly RoutineParameter[], key: string, keyType: string, writable: readonly string[], byField?: string | undefined, generatedKey?: boolean, auditUpdated?: string | undefined);
21
+ accept: (visitor: IStatementVisitor) => string;
22
+ }
@@ -0,0 +1,4 @@
1
+ import type { CreateRoutineStatement } from "./CreateRoutineStatement.js";
2
+ export declare class CreateRoutineStatementTextRenderer {
3
+ render(_statement: CreateRoutineStatement): string;
4
+ }
@@ -0,0 +1,11 @@
1
+ export class CreateTableStatement {
2
+ table;
3
+ columns;
4
+ constraints;
5
+ constructor(table, columns, constraints = []) {
6
+ this.table = table;
7
+ this.columns = columns;
8
+ this.constraints = constraints;
9
+ }
10
+ accept = (visitor) => visitor.visit(this);
11
+ }
@@ -0,0 +1,65 @@
1
+ const actionKeyword = {
2
+ cascade: "CASCADE",
3
+ setNull: "SET NULL",
4
+ setDefault: "SET DEFAULT",
5
+ restrict: "RESTRICT",
6
+ noAction: "NO ACTION",
7
+ };
8
+ export class CreateTableStatementTextRenderer {
9
+ render(statement) {
10
+ return `CREATE TABLE ${this.quote(statement.table)} (${this.parts(statement).join(", ")})${this.suffix()}`;
11
+ }
12
+ quote(name) {
13
+ return name;
14
+ }
15
+ suffix() {
16
+ return "";
17
+ }
18
+ typeName(column) {
19
+ return column.type;
20
+ }
21
+ columnDefault(column) {
22
+ return column.default == null
23
+ ? ""
24
+ : column.default.name == null
25
+ ? ` DEFAULT ${column.default.value}`
26
+ : ` CONSTRAINT ${this.quote(column.default.name)} DEFAULT ${column.default.value}`;
27
+ }
28
+ identity(_column) {
29
+ return "";
30
+ }
31
+ column(column) {
32
+ return `${this.quote(column.name)} ${this.typeName(column)}${this.identity(column)}${this.columnDefault(column)}${this.notNullSql(column.notNull)}`;
33
+ }
34
+ constraint(constraint) {
35
+ return {
36
+ primaryKey: (item) => `CONSTRAINT ${this.quote(item.name)} PRIMARY KEY (${this.quoted(item.columns)})`,
37
+ foreignKey: (item) => this.foreignKey(item),
38
+ unique: (item) => `CONSTRAINT ${this.quote(item.name)} UNIQUE (${this.quoted(item.columns)})`,
39
+ check: (item) => `CONSTRAINT ${this.quote(item.name)} CHECK (${item.expression})`,
40
+ }[constraint.kind]?.(constraint) ??
41
+ (() => {
42
+ throw new Error("empty constraint");
43
+ })();
44
+ }
45
+ parts(statement) {
46
+ return statement.constraints.length === 0
47
+ ? statement.columns.map((column) => this.column(column))
48
+ : [
49
+ ...statement.columns.map((column) => this.column(column)),
50
+ ...statement.constraints.map((constraint) => this.constraint(constraint)),
51
+ ];
52
+ }
53
+ notNullSql(value) {
54
+ return value == null ? "" : value.name == null ? " NOT NULL" : ` CONSTRAINT ${this.quote(value.name)} NOT NULL`;
55
+ }
56
+ foreignKey(fk) {
57
+ return `CONSTRAINT ${this.quote(fk.name)} FOREIGN KEY (${this.quoted(fk.columns)}) REFERENCES ${this.quote(fk.referencesTable)} (${this.quoted(fk.referencesColumns)})${this.actionSql("DELETE", fk.onDelete)}${this.actionSql("UPDATE", fk.onUpdate)}`;
58
+ }
59
+ quoted(names) {
60
+ return names.map((name) => this.quote(name)).join(", ");
61
+ }
62
+ actionSql(kind, action) {
63
+ return action == null ? "" : ` ON ${kind} ${actionKeyword[action]}`;
64
+ }
65
+ }
@@ -0,0 +1,11 @@
1
+ import type { ICreateTriggerStatement } from "./ICreateTriggerStatement.js";
2
+ import type { IStatementVisitor } from "./IStatementVisitor.js";
3
+ export declare class CreateTriggerStatement implements ICreateTriggerStatement {
4
+ readonly table: string;
5
+ readonly name: string;
6
+ readonly updatedColumn: string;
7
+ readonly keyColumn: string;
8
+ readonly utcNow: string;
9
+ constructor(table: string, name: string, updatedColumn: string, keyColumn: string, utcNow: string);
10
+ accept: (visitor: IStatementVisitor) => string;
11
+ }
@@ -0,0 +1,15 @@
1
+ export class CreateTriggerStatement {
2
+ table;
3
+ name;
4
+ updatedColumn;
5
+ keyColumn;
6
+ utcNow;
7
+ constructor(table, name, updatedColumn, keyColumn, utcNow) {
8
+ this.table = table;
9
+ this.name = name;
10
+ this.updatedColumn = updatedColumn;
11
+ this.keyColumn = keyColumn;
12
+ this.utcNow = utcNow;
13
+ }
14
+ accept = (visitor) => visitor.visit(this);
15
+ }
@@ -0,0 +1,4 @@
1
+ import type { CreateTriggerStatement } from "./CreateTriggerStatement.js";
2
+ export declare class CreateTriggerStatementTextRenderer {
3
+ render(_statement: CreateTriggerStatement): string;
4
+ }
@@ -0,0 +1,5 @@
1
+ export class CreateTriggerStatementTextRenderer {
2
+ render(_statement) {
3
+ return "";
4
+ }
5
+ }
@@ -0,0 +1,17 @@
1
+ import type { ICreateUpdateStoredProcedureStatement } from "./ICreateUpdateStoredProcedureStatement.js";
2
+ import type { IStatementVisitor } from "./IStatementVisitor.js";
3
+ import type { RoutineParameter } from "./RoutineParameter.js";
4
+ export declare class CreateUpdateStoredProcedureStatement implements ICreateUpdateStoredProcedureStatement {
5
+ readonly name: string;
6
+ readonly table: string;
7
+ readonly columns: readonly string[];
8
+ readonly parameters: readonly RoutineParameter[];
9
+ readonly key: string;
10
+ readonly keyType: string;
11
+ readonly writable: readonly string[];
12
+ readonly byProperties: readonly string[];
13
+ readonly generatedKey: boolean;
14
+ readonly auditUpdated?: string | undefined;
15
+ constructor(name: string, table: string, columns: readonly string[], parameters: readonly RoutineParameter[], key: string, keyType: string, writable: readonly string[], byProperties?: readonly string[], generatedKey?: boolean, auditUpdated?: string | undefined);
16
+ accept: (visitor: IStatementVisitor) => string;
17
+ }
@@ -0,0 +1,25 @@
1
+ export class CreateUpdateStoredProcedureStatement {
2
+ name;
3
+ table;
4
+ columns;
5
+ parameters;
6
+ key;
7
+ keyType;
8
+ writable;
9
+ byProperties;
10
+ generatedKey;
11
+ auditUpdated;
12
+ constructor(name, table, columns, parameters, key, keyType, writable, byProperties = [], generatedKey = false, auditUpdated) {
13
+ this.name = name;
14
+ this.table = table;
15
+ this.columns = columns;
16
+ this.parameters = parameters;
17
+ this.key = key;
18
+ this.keyType = keyType;
19
+ this.writable = writable;
20
+ this.byProperties = byProperties;
21
+ this.generatedKey = generatedKey;
22
+ this.auditUpdated = auditUpdated;
23
+ }
24
+ accept = (visitor) => visitor.visit(this);
25
+ }
@@ -0,0 +1,4 @@
1
+ import type { CreateUpdateStoredProcedureStatement } from "./CreateUpdateStoredProcedureStatement.js";
2
+ export declare class CreateUpdateStoredProcedureStatementTextRenderer {
3
+ render(_statement: CreateUpdateStoredProcedureStatement): string;
4
+ }
@@ -0,0 +1,5 @@
1
+ export class CreateUpdateStoredProcedureStatementTextRenderer {
2
+ render(_statement) {
3
+ return "";
4
+ }
5
+ }
@@ -0,0 +1,7 @@
1
+ import { StatementTextRenderer } from "./StatementTextRenderer.js";
2
+ export class DefaultStatementTextRenderer extends StatementTextRenderer {
3
+ static instance = new DefaultStatementTextRenderer();
4
+ constructor() {
5
+ super();
6
+ }
7
+ }
@@ -0,0 +1,9 @@
1
+ export class DeleteStatement {
2
+ table;
3
+ where;
4
+ constructor(table, where) {
5
+ this.table = table;
6
+ this.where = where;
7
+ }
8
+ accept = (visitor) => visitor.visit(this);
9
+ }
@@ -0,0 +1,11 @@
1
+ export class DeleteStatementTextRenderer {
2
+ text;
3
+ constructor(text) {
4
+ this.text = text;
5
+ }
6
+ render(statement) {
7
+ return statement.where
8
+ ? `DELETE FROM ${statement.table} WHERE ${this.text.render(statement.where)}`
9
+ : `DELETE FROM ${statement.table}`;
10
+ }
11
+ }
@@ -0,0 +1,8 @@
1
+ import type { IDropIndexStatement } from "./IDropIndexStatement.js";
2
+ import type { IStatementVisitor } from "./IStatementVisitor.js";
3
+ export declare class DropIndexStatement implements IDropIndexStatement {
4
+ readonly name: string;
5
+ readonly table: string;
6
+ constructor(name: string, table: string);
7
+ accept: (visitor: IStatementVisitor) => string;
8
+ }
@@ -0,0 +1,9 @@
1
+ export class DropIndexStatement {
2
+ name;
3
+ table;
4
+ constructor(name, table) {
5
+ this.name = name;
6
+ this.table = table;
7
+ }
8
+ accept = (visitor) => visitor.visit(this);
9
+ }
@@ -0,0 +1,5 @@
1
+ import type { DropIndexStatement } from "./DropIndexStatement.js";
2
+ export declare class DropIndexStatementTextRenderer {
3
+ render(statement: DropIndexStatement): string;
4
+ protected quote(name: string): string;
5
+ }
@@ -0,0 +1,8 @@
1
+ export class DropIndexStatementTextRenderer {
2
+ render(statement) {
3
+ return `DROP INDEX IF EXISTS ${this.quote(statement.name)}`;
4
+ }
5
+ quote(name) {
6
+ return name;
7
+ }
8
+ }
@@ -0,0 +1,7 @@
1
+ import type { IDropRoutineStatement } from "./IDropRoutineStatement.js";
2
+ import type { IStatementVisitor } from "./IStatementVisitor.js";
3
+ export declare class DropRoutineStatement implements IDropRoutineStatement {
4
+ readonly name: string;
5
+ constructor(name: string);
6
+ accept: (visitor: IStatementVisitor) => string;
7
+ }
@@ -0,0 +1,7 @@
1
+ export class DropRoutineStatement {
2
+ name;
3
+ constructor(name) {
4
+ this.name = name;
5
+ }
6
+ accept = (visitor) => visitor.visit(this);
7
+ }
@@ -0,0 +1,4 @@
1
+ import type { DropRoutineStatement } from "./DropRoutineStatement.js";
2
+ export declare class DropRoutineStatementTextRenderer {
3
+ render(_statement: DropRoutineStatement): string;
4
+ }
@@ -0,0 +1,5 @@
1
+ export class DropRoutineStatementTextRenderer {
2
+ render(_statement) {
3
+ return "";
4
+ }
5
+ }
@@ -0,0 +1,7 @@
1
+ import type { IDropTableStatement } from "./IDropTableStatement.js";
2
+ import type { IStatementVisitor } from "./IStatementVisitor.js";
3
+ export declare class DropTableStatement implements IDropTableStatement {
4
+ readonly table: string;
5
+ constructor(table: string);
6
+ accept: (visitor: IStatementVisitor) => string;
7
+ }
@@ -0,0 +1,7 @@
1
+ export class DropTableStatement {
2
+ table;
3
+ constructor(table) {
4
+ this.table = table;
5
+ }
6
+ accept = (visitor) => visitor.visit(this);
7
+ }
@@ -0,0 +1,5 @@
1
+ import type { DropTableStatement } from "./DropTableStatement.js";
2
+ export declare class DropTableStatementTextRenderer {
3
+ render(statement: DropTableStatement): string;
4
+ protected quote(name: string): string;
5
+ }
@@ -0,0 +1,8 @@
1
+ export class DropTableStatementTextRenderer {
2
+ render(statement) {
3
+ return `DROP TABLE IF EXISTS ${this.quote(statement.table)}`;
4
+ }
5
+ quote(name) {
6
+ return name;
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ import type { IDropTriggerStatement } from "./IDropTriggerStatement.js";
2
+ import type { IStatementVisitor } from "./IStatementVisitor.js";
3
+ export declare class DropTriggerStatement implements IDropTriggerStatement {
4
+ readonly name: string;
5
+ readonly table: string;
6
+ constructor(name: string, table: string);
7
+ accept: (visitor: IStatementVisitor) => string;
8
+ }
@@ -0,0 +1,9 @@
1
+ export class DropTriggerStatement {
2
+ name;
3
+ table;
4
+ constructor(name, table) {
5
+ this.name = name;
6
+ this.table = table;
7
+ }
8
+ accept = (visitor) => visitor.visit(this);
9
+ }
@@ -0,0 +1,5 @@
1
+ import type { DropTriggerStatement } from "./DropTriggerStatement.js";
2
+ export declare class DropTriggerStatementTextRenderer {
3
+ render(statement: DropTriggerStatement): string;
4
+ protected quote(name: string): string;
5
+ }
@@ -0,0 +1,8 @@
1
+ export class DropTriggerStatementTextRenderer {
2
+ render(statement) {
3
+ return `DROP TRIGGER IF EXISTS ${this.quote(statement.name)}`;
4
+ }
5
+ quote(name) {
6
+ return name;
7
+ }
8
+ }
@@ -0,0 +1,9 @@
1
+ export class ExecuteStoredProcedureStatement {
2
+ name;
3
+ parameters;
4
+ constructor(name, parameters) {
5
+ this.name = name;
6
+ this.parameters = parameters;
7
+ }
8
+ accept = (visitor) => visitor.visit(this);
9
+ }
@@ -0,0 +1,10 @@
1
+ import { ParameterDirection } from "../ParameterDirection.js";
2
+ const args = (parameters) => parameters
3
+ .filter((parameter) => parameter.direction !== ParameterDirection.ReturnValue)
4
+ .map((parameter) => `$${parameter.name}`)
5
+ .join(", ");
6
+ export class ExecuteStoredProcedureStatementTextRenderer {
7
+ render(statement) {
8
+ return `CALL ${statement.name}(${args(statement.parameters)})`;
9
+ }
10
+ }