@deterministic-code/datasources 0.0.0-stage → 0.1.1

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 (508) hide show
  1. package/dist/ArrayReader.d.ts +12 -0
  2. package/dist/BatchCommandIBulkWriteStrategy.d.ts +33 -0
  3. package/dist/BuiltRepository.d.ts +16 -0
  4. package/dist/BulkCRUDRepository.d.ts +17 -0
  5. package/dist/BulkCommand.d.ts +5 -0
  6. package/dist/BulkWriteEnrichment.d.ts +4 -0
  7. package/dist/CRUDRepository.d.ts +40 -0
  8. package/dist/CRUDRepositoryBuilder.d.ts +19 -0
  9. package/dist/CRUDRepositoryOptions.d.ts +7 -0
  10. package/dist/CRUDRepositoryStatements.d.ts +17 -0
  11. package/dist/CascadeDeleteEnrichmentStrategy.d.ts +7 -0
  12. package/dist/CascadeDeleteUpdateEnrichmentStrategy.d.ts +8 -0
  13. package/dist/CommandMiddlewareHost.d.ts +22 -0
  14. package/dist/ConsoleCommandMiddleware.d.ts +14 -0
  15. package/dist/CreateEnrichmentStrategy.d.ts +14 -0
  16. package/dist/Datasource.d.ts +30 -0
  17. package/dist/DatasourceError.d.ts +3 -0
  18. package/dist/DatasourceFactory.d.ts +12 -0
  19. package/dist/DatasourceOptions.d.ts +1 -0
  20. package/dist/DatasourceUrl.d.ts +12 -0
  21. package/dist/DatasourceUrlParser.d.ts +4 -0
  22. package/dist/DefaultCreateEnrichmentStrategy.d.ts +7 -0
  23. package/dist/DefaultReadonlyEnrichmentStrategy.d.ts +19 -0
  24. package/dist/DefaultUpdateEnrichmentStrategy.d.ts +7 -0
  25. package/dist/DefaultWriteEnrichmentStrategy.d.ts +21 -0
  26. package/dist/DeleteEnrichmentStrategy.d.ts +11 -0
  27. package/dist/DriverLoader.d.ts +5 -0
  28. package/dist/Enrichment.d.ts +13 -0
  29. package/dist/EnrichmentPropertyType.d.ts +7 -0
  30. package/dist/ExpectConsoleMiddleware.d.ts +15 -0
  31. package/dist/FirstResultReader.d.ts +19 -0
  32. package/dist/HashsetOptimizedReadonlyEnrichmentStrategy.d.ts +9 -0
  33. package/dist/IBulkWriteStrategy.d.ts +12 -0
  34. package/dist/ICRUDRepository.d.ts +12 -0
  35. package/dist/ICRUDRepositoryFactory.d.ts +7 -0
  36. package/dist/ICommand.d.ts +20 -0
  37. package/dist/ICommandMiddleware.d.ts +12 -0
  38. package/dist/IConnection.d.ts +12 -0
  39. package/dist/IDatasource.d.ts +18 -0
  40. package/dist/IDatasourceFactory.d.ts +5 -0
  41. package/dist/IDriver.d.ts +19 -0
  42. package/dist/IEnriched.d.ts +6 -0
  43. package/dist/IReader.d.ts +8 -0
  44. package/dist/IReadonlyEnrichmentStrategy.d.ts +7 -0
  45. package/dist/IReadonlyRepository.d.ts +11 -0
  46. package/dist/IRepository.d.ts +4 -0
  47. package/dist/IRepositoryFactory.d.ts +7 -0
  48. package/dist/IRepositoryTree.d.ts +4 -0
  49. package/dist/IRepositoryTreeNode.d.ts +7 -0
  50. package/dist/ITransaction.d.ts +8 -0
  51. package/dist/IUnitOfWork.d.ts +5 -0
  52. package/dist/IWriteEnrichmentStrategy.d.ts +7 -0
  53. package/dist/Information.d.ts +5 -0
  54. package/dist/IsolationLevel.d.ts +7 -0
  55. package/dist/LazyWriteEnrichmentStrategy.d.ts +4 -0
  56. package/dist/NestedToObjectEnrichmentStrategy.d.ts +10 -0
  57. package/dist/Parameter.d.ts +7 -0
  58. package/dist/ParameterDirection.d.ts +7 -0
  59. package/dist/ProviderCatalog.d.ts +7 -0
  60. package/dist/ProviderNotImplementedError.d.ts +4 -0
  61. package/dist/ProviderNotInstalledError.d.ts +4 -0
  62. package/dist/ReadonlyRepository.d.ts +59 -0
  63. package/dist/ReadonlyRepositoryBuilder.d.ts +12 -0
  64. package/dist/ReadonlyRepositoryMappingOptions.d.ts +14 -0
  65. package/dist/ReadonlyRepositoryStatements.d.ts +8 -0
  66. package/dist/RepositoryAccess.d.ts +11 -0
  67. package/dist/RepositoryFactory.d.ts +23 -0
  68. package/dist/RepositoryNotRegisteredError.d.ts +4 -0
  69. package/dist/RepositoryTree.d.ts +6 -0
  70. package/dist/RepositoryTreeNode.d.ts +9 -0
  71. package/dist/Response.d.ts +7 -0
  72. package/dist/Row.d.ts +2 -0
  73. package/dist/SingleCommandIBulkWriteStrategy.d.ts +11 -0
  74. package/dist/StatementMappers.d.ts +16 -0
  75. package/dist/StoredEnrichment.d.ts +11 -0
  76. package/dist/StoredProcedureBulkWriteStrategy.d.ts +27 -0
  77. package/dist/StreamingReader.d.ts +16 -0
  78. package/dist/UnitOfWorkTransaction.d.ts +12 -0
  79. package/dist/UpdateEnrichmentStrategy.d.ts +18 -0
  80. package/dist/WriteMode.d.ts +1 -0
  81. package/dist/builders/Field.d.ts +5 -0
  82. package/dist/builders/Scalar.d.ts +1 -0
  83. package/dist/builders/index.d.ts +2 -0
  84. package/dist/collectAsync.d.ts +1 -0
  85. package/dist/converters/Cell.d.ts +2 -0
  86. package/dist/converters/ChangeCasingConverter.d.ts +7 -0
  87. package/dist/converters/Constructable.d.ts +1 -0
  88. package/dist/converters/MetaDataRowTypeConverter.d.ts +14 -0
  89. package/dist/converters/PluralizerConverter.d.ts +4 -0
  90. package/dist/converters/RegexConverter.d.ts +7 -0
  91. package/dist/converters/ReplaceConverter.d.ts +7 -0
  92. package/dist/converters/RowTypeConverter.d.ts +10 -0
  93. package/dist/converters/ToLowerCaseConverter.d.ts +4 -0
  94. package/dist/converters/ToUpperCaseConverter.d.ts +4 -0
  95. package/dist/converters/TypeConverter.d.ts +5 -0
  96. package/dist/createCRUDRepositoryOptions.d.ts +7 -0
  97. package/dist/createReadonlyRepositoryMappingOptions.d.ts +6 -0
  98. package/dist/dotEnv.d.ts +5 -0
  99. package/dist/index.d.ts +119 -0
  100. package/dist/mappers/ChangeCasingMapper.d.ts +9 -0
  101. package/dist/mappers/DictionaryMapper.d.ts +8 -0
  102. package/dist/mappers/FlatToNestedMapper.d.ts +20 -0
  103. package/dist/mappers/IFlatToNestedMapper.d.ts +6 -0
  104. package/dist/mappers/IMapper.d.ts +4 -0
  105. package/dist/mappers/IdentityMapper.d.ts +5 -0
  106. package/dist/mappers/PluralizerMapper.d.ts +6 -0
  107. package/dist/mappers/RowTypeMapper.d.ts +6 -0
  108. package/dist/mappers/TransformConverterMapper.d.ts +5 -0
  109. package/dist/mappers/TransformMapper.d.ts +6 -0
  110. package/dist/mappers/TypeMap.d.ts +8 -0
  111. package/dist/mappers/TypeMapGroup.d.ts +5 -0
  112. package/dist/mocks/index.d.ts +9 -0
  113. package/dist/mocks/mock-command.d.ts +28 -0
  114. package/dist/mocks/mock-connection.d.ts +22 -0
  115. package/dist/mocks/mock-datasource.d.ts +24 -0
  116. package/dist/mocks/mock-driver.d.ts +15 -0
  117. package/dist/mocks/mock-reader.d.ts +14 -0
  118. package/dist/mocks/mock-repository.d.ts +42 -0
  119. package/dist/mocks/mock-select-statement.d.ts +10 -0
  120. package/dist/mocks/mock-transaction.d.ts +16 -0
  121. package/dist/mocks/mock-where.d.ts +8 -0
  122. package/dist/parametersToRecord.d.ts +2 -0
  123. package/dist/readerToAsyncIterable.d.ts +2 -0
  124. package/dist/splitStatements.d.ts +1 -0
  125. package/dist/statementParameters.d.ts +1 -0
  126. package/dist/statementUsesParameter.d.ts +1 -0
  127. package/dist/statements/Aggregate.d.ts +6 -0
  128. package/dist/statements/ArrayExpression.d.ts +5 -0
  129. package/dist/statements/BulkDeleteStatement.d.ts +11 -0
  130. package/dist/statements/BulkDeleteStatementTextRenderer.d.ts +4 -0
  131. package/dist/statements/BulkInsertStatement.d.ts +12 -0
  132. package/dist/statements/BulkInsertStatementTextRenderer.d.ts +4 -0
  133. package/dist/statements/BulkUpdateStatement.d.ts +16 -0
  134. package/dist/statements/BulkUpdateStatementTextRenderer.d.ts +8 -0
  135. package/dist/statements/CheckConstraint.d.ts +7 -0
  136. package/dist/statements/Cmp.d.ts +9 -0
  137. package/dist/statements/Column.d.ts +9 -0
  138. package/dist/statements/ColumnDefault.d.ts +5 -0
  139. package/dist/statements/Condition.d.ts +3 -0
  140. package/dist/statements/ConditionRenderer.d.ts +12 -0
  141. package/dist/statements/CreateIndexStatement.d.ts +10 -0
  142. package/dist/statements/CreateIndexStatementTextRenderer.d.ts +5 -0
  143. package/dist/statements/CreateTableStatement.d.ts +11 -0
  144. package/dist/statements/CreateTableStatementTextRenderer.d.ts +18 -0
  145. package/dist/statements/DefaultStatementTextRenderer.d.ts +5 -0
  146. package/dist/statements/DeleteStatement.d.ts +9 -0
  147. package/dist/statements/DeleteStatementTextRenderer.d.ts +7 -0
  148. package/dist/statements/ExecuteStoredProcedureStatement.d.ts +9 -0
  149. package/dist/statements/ExecuteStoredProcedureStatementTextRenderer.d.ts +4 -0
  150. package/dist/statements/ExpressionEvaluator.d.ts +5 -0
  151. package/dist/statements/ExpressionRenderer.d.ts +8 -0
  152. package/dist/statements/ForeignKey.d.ts +19 -0
  153. package/dist/statements/IBulkDeleteStatement.d.ts +3 -0
  154. package/dist/statements/IBulkInsertStatement.d.ts +3 -0
  155. package/dist/statements/IBulkUpdateStatement.d.ts +3 -0
  156. package/dist/statements/ICondition.d.ts +4 -0
  157. package/dist/statements/IConditionVisitor.d.ts +6 -0
  158. package/dist/statements/ICreateIndexStatement.d.ts +3 -0
  159. package/dist/statements/ICreateTableStatement.d.ts +3 -0
  160. package/dist/statements/IDeleteStatement.d.ts +5 -0
  161. package/dist/statements/IExecuteStoredProcedureStatement.d.ts +3 -0
  162. package/dist/statements/IExpression.d.ts +2 -0
  163. package/dist/statements/IInsertStatement.d.ts +3 -0
  164. package/dist/statements/IReturnStatement.d.ts +3 -0
  165. package/dist/statements/ISelectStatement.d.ts +5 -0
  166. package/dist/statements/IStatement.d.ts +4 -0
  167. package/dist/statements/IStatementVisitor.d.ts +26 -0
  168. package/dist/statements/ITableConstraint.d.ts +5 -0
  169. package/dist/statements/IUpdateStatement.d.ts +5 -0
  170. package/dist/statements/IWhere.d.ts +6 -0
  171. package/dist/statements/Identifier.d.ts +5 -0
  172. package/dist/statements/InsertStatement.d.ts +9 -0
  173. package/dist/statements/InsertStatementTextRenderer.d.ts +4 -0
  174. package/dist/statements/Join.d.ts +14 -0
  175. package/dist/statements/Literal.d.ts +6 -0
  176. package/dist/statements/Native.d.ts +5 -0
  177. package/dist/statements/NotNull.d.ts +4 -0
  178. package/dist/statements/Operator.d.ts +107 -0
  179. package/dist/statements/OrderBy.d.ts +10 -0
  180. package/dist/statements/PrimaryKey.d.ts +7 -0
  181. package/dist/statements/ReturnStatement.d.ts +9 -0
  182. package/dist/statements/ReturnStatementTextRenderer.d.ts +4 -0
  183. package/dist/statements/SelectInsertedIdStatement.d.ts +8 -0
  184. package/dist/statements/SelectInsertedIdStatementTextRenderer.d.ts +4 -0
  185. package/dist/statements/SelectStatement.d.ts +20 -0
  186. package/dist/statements/SelectStatementOptions.d.ts +15 -0
  187. package/dist/statements/SelectStatementTextRenderer.d.ts +19 -0
  188. package/dist/statements/StatementEvaluator.d.ts +4 -0
  189. package/dist/statements/StatementParser.d.ts +4 -0
  190. package/dist/statements/StatementRenderer.d.ts +42 -0
  191. package/dist/statements/StatementTextRenderer.d.ts +14 -0
  192. package/dist/statements/Subquery.d.ts +6 -0
  193. package/dist/statements/UniqueConstraint.d.ts +7 -0
  194. package/dist/statements/UpdateStatement.d.ts +14 -0
  195. package/dist/statements/UpdateStatementTextRenderer.d.ts +14 -0
  196. package/dist/statements/Where.d.ts +16 -0
  197. package/dist/statements/WhereText.d.ts +8 -0
  198. package/dist/statements/index.d.ts +75 -0
  199. package/dist/stubs/StubCommand.d.ts +15 -0
  200. package/dist/stubs/StubConnection.d.ts +13 -0
  201. package/dist/stubs/StubDatasource.d.ts +20 -0
  202. package/dist/stubs/StubReader.d.ts +11 -0
  203. package/dist/stubs/StubRepository.d.ts +22 -0
  204. package/dist/stubs/StubTransaction.d.ts +10 -0
  205. package/dist/stubs/createStubDatasource.d.ts +2 -0
  206. package/dist/stubs/index.d.ts +7 -0
  207. package/dist/stubs/notImplemented.d.ts +1 -0
  208. package/package.json +24 -4
  209. package/src/ArrayReader.test.ts +23 -0
  210. package/src/ArrayReader.ts +32 -0
  211. package/src/BatchCommandIBulkWriteStrategy.ts +228 -0
  212. package/src/BuiltRepository.ts +17 -0
  213. package/src/BulkCRUDRepository.test.ts +183 -0
  214. package/src/BulkCRUDRepository.ts +84 -0
  215. package/src/BulkCommand.ts +6 -0
  216. package/src/BulkWriteEnrichment.ts +19 -0
  217. package/src/BulkWriteStrategy.test.ts +293 -0
  218. package/src/CRUDRepository.test.ts +420 -0
  219. package/src/CRUDRepository.ts +264 -0
  220. package/src/CRUDRepositoryBuilder.ts +53 -0
  221. package/src/CRUDRepositoryOptions.test.ts +76 -0
  222. package/src/CRUDRepositoryOptions.ts +8 -0
  223. package/src/CRUDRepositoryStatements.ts +43 -0
  224. package/src/CascadeDeleteEnrichmentStrategy.ts +51 -0
  225. package/src/CascadeDeleteUpdateEnrichmentStrategy.ts +28 -0
  226. package/src/Command.test.ts +105 -0
  227. package/src/CommandMiddlewareHost.test.ts +98 -0
  228. package/src/CommandMiddlewareHost.ts +113 -0
  229. package/src/Connection.test.ts +34 -0
  230. package/src/ConsoleCommandMiddleware.test.ts +149 -0
  231. package/src/ConsoleCommandMiddleware.ts +64 -0
  232. package/src/CreateEnrichmentStrategy.ts +82 -0
  233. package/src/Datasource.test.ts +63 -0
  234. package/src/Datasource.ts +152 -0
  235. package/src/DatasourceError.test.ts +10 -0
  236. package/src/DatasourceError.ts +6 -0
  237. package/src/DatasourceFactory.test.ts +159 -0
  238. package/src/DatasourceFactory.ts +86 -0
  239. package/src/DatasourceOptions.ts +1 -0
  240. package/src/DatasourceUrl.ts +37 -0
  241. package/src/DatasourceUrlParser.test.ts +173 -0
  242. package/src/DatasourceUrlParser.ts +188 -0
  243. package/src/DefaultCreateEnrichmentStrategy.ts +21 -0
  244. package/src/DefaultReadonlyEnrichmentStrategy.ts +164 -0
  245. package/src/DefaultUpdateEnrichmentStrategy.ts +40 -0
  246. package/src/DefaultWriteEnrichmentStrategy.ts +151 -0
  247. package/src/DeleteEnrichmentStrategy.ts +56 -0
  248. package/src/DriverLoader.ts +97 -0
  249. package/src/Enrichment.ts +15 -0
  250. package/src/EnrichmentPropertyType.ts +9 -0
  251. package/src/ExpectConsoleMiddleware.test.ts +79 -0
  252. package/src/ExpectConsoleMiddleware.ts +47 -0
  253. package/src/FirstResultReader.test.ts +43 -0
  254. package/src/FirstResultReader.ts +49 -0
  255. package/src/HashsetOptimizedReadonlyEnrichmentStrategy.ts +80 -0
  256. package/src/IBulkWriteStrategy.ts +13 -0
  257. package/src/ICRUDRepository.ts +13 -0
  258. package/src/ICRUDRepositoryFactory.ts +8 -0
  259. package/src/ICommand.ts +45 -0
  260. package/src/ICommandMiddleware.ts +20 -0
  261. package/src/IConnection.ts +13 -0
  262. package/src/IDatasource.ts +27 -0
  263. package/src/IDatasourceFactory.ts +6 -0
  264. package/src/IDriver.ts +24 -0
  265. package/src/IEnriched.ts +11 -0
  266. package/src/IReader.ts +8 -0
  267. package/src/IReadonlyEnrichmentStrategy.ts +19 -0
  268. package/src/IReadonlyRepository.ts +21 -0
  269. package/src/IRepository.ts +5 -0
  270. package/src/IRepositoryFactory.ts +8 -0
  271. package/src/IRepositoryTree.ts +5 -0
  272. package/src/IRepositoryTreeNode.ts +8 -0
  273. package/src/ITransaction.ts +9 -0
  274. package/src/IUnitOfWork.ts +5 -0
  275. package/src/IWriteEnrichmentStrategy.ts +8 -0
  276. package/src/Information.ts +5 -0
  277. package/src/IsolationLevel.test.ts +13 -0
  278. package/src/IsolationLevel.ts +8 -0
  279. package/src/LazyWriteEnrichmentStrategy.ts +5 -0
  280. package/src/NestedToObjectEnrichmentStrategy.ts +33 -0
  281. package/src/Parameter.ts +8 -0
  282. package/src/ParameterDirection.ts +9 -0
  283. package/src/ProviderCatalog.test.ts +110 -0
  284. package/src/ProviderCatalog.ts +21 -0
  285. package/src/ProviderNotImplementedError.test.ts +11 -0
  286. package/src/ProviderNotImplementedError.ts +9 -0
  287. package/src/ProviderNotInstalledError.test.ts +11 -0
  288. package/src/ProviderNotInstalledError.ts +9 -0
  289. package/src/ReadonlyRepository.test.ts +406 -0
  290. package/src/ReadonlyRepository.ts +276 -0
  291. package/src/ReadonlyRepositoryBuilder.ts +53 -0
  292. package/src/ReadonlyRepositoryMappingOptions.ts +15 -0
  293. package/src/ReadonlyRepositoryStatements.ts +13 -0
  294. package/src/RepositoryAccess.ts +14 -0
  295. package/src/RepositoryFactory.test.ts +94 -0
  296. package/src/RepositoryFactory.ts +115 -0
  297. package/src/RepositoryNotRegisteredError.ts +9 -0
  298. package/src/RepositoryTree.ts +6 -0
  299. package/src/RepositoryTreeNode.ts +11 -0
  300. package/src/Response.ts +15 -0
  301. package/src/Row.ts +3 -0
  302. package/src/SingleCommandIBulkWriteStrategy.ts +35 -0
  303. package/src/StatementMappers.test.ts +221 -0
  304. package/src/StatementMappers.ts +110 -0
  305. package/src/StoredEnrichment.ts +25 -0
  306. package/src/StoredProcedureBulkWriteStrategy.ts +164 -0
  307. package/src/StreamingReader.test.ts +126 -0
  308. package/src/StreamingReader.ts +64 -0
  309. package/src/Transaction.test.ts +37 -0
  310. package/src/UnitOfWorkTransaction.test.ts +43 -0
  311. package/src/UnitOfWorkTransaction.ts +50 -0
  312. package/src/UpdateEnrichmentStrategy.ts +97 -0
  313. package/src/UserViewCRUDRepository.test.ts +323 -0
  314. package/src/WriteMode.ts +1 -0
  315. package/src/builders/Field.ts +6 -0
  316. package/src/builders/Scalar.ts +1 -0
  317. package/src/builders/builders.test.ts +404 -0
  318. package/src/builders/index.ts +2 -0
  319. package/src/collectAsync.ts +7 -0
  320. package/src/converters/Cell.ts +10 -0
  321. package/src/converters/ChangeCasingConverter.test.ts +34 -0
  322. package/src/converters/ChangeCasingConverter.ts +59 -0
  323. package/src/converters/Constructable.ts +1 -0
  324. package/src/converters/MetaDataRowTypeConverter.ts +80 -0
  325. package/src/converters/PluralizerConverter.test.ts +43 -0
  326. package/src/converters/PluralizerConverter.ts +67 -0
  327. package/src/converters/RegexConverter.test.ts +11 -0
  328. package/src/converters/RegexConverter.ts +14 -0
  329. package/src/converters/ReplaceConverter.test.ts +9 -0
  330. package/src/converters/ReplaceConverter.ts +6 -0
  331. package/src/converters/RowTypeConverter.test.ts +79 -0
  332. package/src/converters/RowTypeConverter.ts +33 -0
  333. package/src/converters/ToLowerCaseConverter.test.ts +9 -0
  334. package/src/converters/ToLowerCaseConverter.ts +4 -0
  335. package/src/converters/ToUpperCaseConverter.test.ts +9 -0
  336. package/src/converters/ToUpperCaseConverter.ts +4 -0
  337. package/src/converters/TypeConverter.ts +6 -0
  338. package/src/createCRUDRepositoryOptions.ts +21 -0
  339. package/src/createReadonlyRepositoryMappingOptions.ts +26 -0
  340. package/src/dotEnv.test.ts +21 -0
  341. package/src/dotEnv.ts +16 -0
  342. package/src/edgeCases.test.ts +485 -0
  343. package/src/index.ts +222 -0
  344. package/src/mappers/ChangeCasingMapper.test.ts +32 -0
  345. package/src/mappers/ChangeCasingMapper.ts +15 -0
  346. package/src/mappers/DictionaryMapper.test.ts +69 -0
  347. package/src/mappers/DictionaryMapper.ts +16 -0
  348. package/src/mappers/FlatToNestedMapper.test.ts +269 -0
  349. package/src/mappers/FlatToNestedMapper.ts +127 -0
  350. package/src/mappers/IFlatToNestedMapper.ts +7 -0
  351. package/src/mappers/IMapper.ts +4 -0
  352. package/src/mappers/IdentityMapper.test.ts +12 -0
  353. package/src/mappers/IdentityMapper.ts +6 -0
  354. package/src/mappers/PluralizerMapper.test.ts +40 -0
  355. package/src/mappers/PluralizerMapper.ts +9 -0
  356. package/src/mappers/RowTypeMapper.test.ts +12 -0
  357. package/src/mappers/RowTypeMapper.ts +13 -0
  358. package/src/mappers/TransformConverterMapper.test.ts +181 -0
  359. package/src/mappers/TransformConverterMapper.ts +11 -0
  360. package/src/mappers/TransformMapper.ts +8 -0
  361. package/src/mappers/TypeMap.ts +10 -0
  362. package/src/mappers/TypeMapGroup.ts +6 -0
  363. package/src/mappers/transformMapper.test.ts +66 -0
  364. package/src/mocks/MockCommand.test.ts +75 -0
  365. package/src/mocks/MockConnection.test.ts +34 -0
  366. package/src/mocks/MockDatasource.test.ts +40 -0
  367. package/src/mocks/MockReader.test.ts +17 -0
  368. package/src/mocks/MockRepository.test.ts +32 -0
  369. package/src/mocks/MockSelectStatement.test.ts +11 -0
  370. package/src/mocks/MockTransaction.test.ts +17 -0
  371. package/src/mocks/MockWhere.test.ts +11 -0
  372. package/src/mocks/index.ts +9 -0
  373. package/src/mocks/mock-command.ts +66 -0
  374. package/src/mocks/mock-connection.ts +57 -0
  375. package/src/mocks/mock-datasource.ts +65 -0
  376. package/src/mocks/mock-driver.ts +27 -0
  377. package/src/mocks/mock-reader.ts +38 -0
  378. package/src/mocks/mock-repository.ts +91 -0
  379. package/src/mocks/mock-select-statement.ts +17 -0
  380. package/src/mocks/mock-transaction.ts +31 -0
  381. package/src/mocks/mock-where.ts +13 -0
  382. package/src/parametersToRecord.test.ts +19 -0
  383. package/src/parametersToRecord.ts +11 -0
  384. package/src/public-surface.test.ts +23 -0
  385. package/src/readWithWhereClauseAndCustomFlatToNestedObjectMappingOptions.test.ts +126 -0
  386. package/src/readerToAsyncIterable.test.ts +39 -0
  387. package/src/readerToAsyncIterable.ts +11 -0
  388. package/src/repository.test.ts +410 -0
  389. package/src/repository.type.test.ts +29 -0
  390. package/src/splitStatements.ts +99 -0
  391. package/src/statementParameters.ts +22 -0
  392. package/src/statementUsesParameter.ts +4 -0
  393. package/src/statements/Aggregate.ts +9 -0
  394. package/src/statements/ArrayExpression.ts +5 -0
  395. package/src/statements/BulkDeleteStatement.ts +18 -0
  396. package/src/statements/BulkDeleteStatementTextRenderer.ts +16 -0
  397. package/src/statements/BulkInsertStatement.ts +37 -0
  398. package/src/statements/BulkInsertStatementTextRenderer.ts +10 -0
  399. package/src/statements/BulkUpdateStatement.ts +24 -0
  400. package/src/statements/BulkUpdateStatementTextRenderer.ts +29 -0
  401. package/src/statements/CheckConstraint.ts +9 -0
  402. package/src/statements/Cmp.ts +12 -0
  403. package/src/statements/Column.ts +10 -0
  404. package/src/statements/ColumnDefault.ts +6 -0
  405. package/src/statements/Condition.ts +3 -0
  406. package/src/statements/ConditionRenderer.ts +17 -0
  407. package/src/statements/CreateIndexStatement.ts +18 -0
  408. package/src/statements/CreateIndexStatementTextRenderer.ts +11 -0
  409. package/src/statements/CreateTableStatement.ts +18 -0
  410. package/src/statements/CreateTableStatementTextRenderer.ts +92 -0
  411. package/src/statements/DefaultStatementTextRenderer.ts +9 -0
  412. package/src/statements/DeleteStatement.ts +15 -0
  413. package/src/statements/DeleteStatementTextRenderer.ts +12 -0
  414. package/src/statements/ExecuteStoredProcedureStatement.ts +15 -0
  415. package/src/statements/ExecuteStoredProcedureStatementTextRenderer.ts +15 -0
  416. package/src/statements/ExpressionEvaluator.ts +166 -0
  417. package/src/statements/ExpressionRenderer.ts +161 -0
  418. package/src/statements/ForeignKey.ts +23 -0
  419. package/src/statements/IBulkDeleteStatement.ts +3 -0
  420. package/src/statements/IBulkInsertStatement.ts +3 -0
  421. package/src/statements/IBulkUpdateStatement.ts +3 -0
  422. package/src/statements/ICondition.ts +5 -0
  423. package/src/statements/IConditionVisitor.ts +7 -0
  424. package/src/statements/ICreateIndexStatement.ts +3 -0
  425. package/src/statements/ICreateTableStatement.ts +3 -0
  426. package/src/statements/IDeleteStatement.ts +6 -0
  427. package/src/statements/IExecuteStoredProcedureStatement.ts +3 -0
  428. package/src/statements/IExpression.ts +1 -0
  429. package/src/statements/IInsertStatement.ts +3 -0
  430. package/src/statements/IReturnStatement.ts +3 -0
  431. package/src/statements/ISelectStatement.ts +6 -0
  432. package/src/statements/IStatement.ts +5 -0
  433. package/src/statements/IStatementVisitor.ts +27 -0
  434. package/src/statements/ITableConstraint.ts +6 -0
  435. package/src/statements/IUpdateStatement.ts +6 -0
  436. package/src/statements/IWhere.ts +7 -0
  437. package/src/statements/Identifier.ts +5 -0
  438. package/src/statements/InsertStatement.ts +15 -0
  439. package/src/statements/InsertStatementTextRenderer.ts +7 -0
  440. package/src/statements/Join.ts +26 -0
  441. package/src/statements/Literal.ts +6 -0
  442. package/src/statements/Native.ts +5 -0
  443. package/src/statements/NotNull.ts +3 -0
  444. package/src/statements/Operator.ts +234 -0
  445. package/src/statements/OrderBy.ts +19 -0
  446. package/src/statements/PrimaryKey.ts +9 -0
  447. package/src/statements/ReturnStatement.ts +15 -0
  448. package/src/statements/ReturnStatementTextRenderer.ts +15 -0
  449. package/src/statements/SelectInsertedIdStatement.test.ts +11 -0
  450. package/src/statements/SelectInsertedIdStatement.ts +11 -0
  451. package/src/statements/SelectInsertedIdStatementTextRenderer.ts +7 -0
  452. package/src/statements/SelectStatement.ts +34 -0
  453. package/src/statements/SelectStatementOptions.ts +16 -0
  454. package/src/statements/SelectStatementTextRenderer.ts +71 -0
  455. package/src/statements/StatementCompile.test.ts +231 -0
  456. package/src/statements/StatementEvaluator.ts +5 -0
  457. package/src/statements/StatementParser.test.ts +304 -0
  458. package/src/statements/StatementParser.ts +461 -0
  459. package/src/statements/StatementRenderer.ts +120 -0
  460. package/src/statements/StatementTextRenderer.ts +60 -0
  461. package/src/statements/Subquery.ts +6 -0
  462. package/src/statements/UniqueConstraint.ts +9 -0
  463. package/src/statements/UpdateStatement.ts +34 -0
  464. package/src/statements/UpdateStatementTextRenderer.ts +63 -0
  465. package/src/statements/Where.ts +250 -0
  466. package/src/statements/WhereText.ts +10 -0
  467. package/src/statements/index.ts +75 -0
  468. package/src/stubs/StubCommand.ts +30 -0
  469. package/src/stubs/StubConnection.ts +21 -0
  470. package/src/stubs/StubDatasource.test.ts +99 -0
  471. package/src/stubs/StubDatasource.ts +60 -0
  472. package/src/stubs/StubReader.ts +25 -0
  473. package/src/stubs/StubRepository.ts +42 -0
  474. package/src/stubs/StubTransaction.ts +17 -0
  475. package/src/stubs/createStubDatasource.ts +4 -0
  476. package/src/stubs/index.ts +7 -0
  477. package/src/stubs/notImplemented.ts +5 -0
  478. package/src/tests/contact/Address.ts +14 -0
  479. package/src/tests/contact/AddressType.ts +6 -0
  480. package/src/tests/contact/Base.ts +7 -0
  481. package/src/tests/contact/Contact.ts +12 -0
  482. package/src/tests/contact/ContactBase.ts +8 -0
  483. package/src/tests/contact/ContactChangeLog.ts +8 -0
  484. package/src/tests/contact/ContactGroup.ts +6 -0
  485. package/src/tests/contact/ContactGroupBase.ts +6 -0
  486. package/src/tests/contact/ContactGroupMember.ts +6 -0
  487. package/src/tests/contact/ContactSource.ts +6 -0
  488. package/src/tests/contact/ContactType.ts +6 -0
  489. package/src/tests/contact/ContactsService.test.ts +118 -0
  490. package/src/tests/contact/ContactsService.ts +32 -0
  491. package/src/tests/contact/ImportContactRequest.ts +4 -0
  492. package/src/tests/contact/ImportContactResult.ts +5 -0
  493. package/src/tests/contact/LegacyContact.ts +7 -0
  494. package/src/tests/contact/LegacyMigrationResult.ts +5 -0
  495. package/src/tests/contact/Phone.ts +9 -0
  496. package/src/tests/contact/PhoneType.ts +6 -0
  497. package/src/tests/contact/asContactsView.ts +63 -0
  498. package/src/tests/contact/contactColumns.ts +40 -0
  499. package/src/tests/contact/contactLookupIds.ts +32 -0
  500. package/src/tests/contact/contactLookups.ts +6 -0
  501. package/src/tests/contact/contactsParity.ts +63 -0
  502. package/src/tests/contact/contactsServiceOf.ts +38 -0
  503. package/src/tests/contact/contactsView.ts +31 -0
  504. package/src/tests/contact/expectContactsView.ts +23 -0
  505. package/src/tests/contact/extraContact.ts +61 -0
  506. package/src/tests/contact/logMapped.ts +5 -0
  507. package/src/tests/contact/seedContacts.ts +31 -0
  508. package/README.md +0 -3
@@ -0,0 +1,119 @@
1
+ export type { ICommand } from "./ICommand.js";
2
+ export { execute, executeReader } from "./ICommand.js";
3
+ export type { ICommandMiddleware } from "./ICommandMiddleware.js";
4
+ export type { IConnection } from "./IConnection.js";
5
+ export type { IDatasource } from "./IDatasource.js";
6
+ export type { IDriver } from "./IDriver.js";
7
+ export { columnType } from "./IDriver.js";
8
+ export type { Information } from "./Information.js";
9
+ export type { DatasourceOptions } from "./DatasourceOptions.js";
10
+ export { DatasourceFactory } from "./DatasourceFactory.js";
11
+ export { ProviderCatalog } from "./ProviderCatalog.js";
12
+ export type { ICreateTableStatement, ICreateIndexStatement, IDeleteStatement, IExpression, IBulkDeleteStatement, IBulkInsertStatement, IBulkUpdateStatement, IInsertStatement, ISelectStatement, IStatement, IStatementVisitor, ICondition, IConditionVisitor, IExecuteStoredProcedureStatement, IReturnStatement, ITableConstraint, TableConstraintKind, IUpdateStatement, IWhere, } from "./statements/index.js";
13
+ export type { IReader } from "./IReader.js";
14
+ export type { IRepository } from "./IRepository.js";
15
+ export type { IReadonlyRepository } from "./IReadonlyRepository.js";
16
+ export type { ICRUDRepository } from "./ICRUDRepository.js";
17
+ export { ReadonlyRepository, untyped } from "./ReadonlyRepository.js";
18
+ export type { IRepositoryFactory } from "./IRepositoryFactory.js";
19
+ export type { ICRUDRepositoryFactory } from "./ICRUDRepositoryFactory.js";
20
+ export { RepositoryFactory } from "./RepositoryFactory.js";
21
+ export { RepositoryAccess } from "./RepositoryAccess.js";
22
+ export { RepositoryNotRegisteredError } from "./RepositoryNotRegisteredError.js";
23
+ export type { IEnriched } from "./IEnriched.js";
24
+ export type { IRepositoryTree } from "./IRepositoryTree.js";
25
+ export type { IRepositoryTreeNode } from "./IRepositoryTreeNode.js";
26
+ export type { Association, Enrichment } from "./Enrichment.js";
27
+ export { EnrichmentPropertyType } from "./EnrichmentPropertyType.js";
28
+ export type { IReadonlyEnrichmentStrategy } from "./IReadonlyEnrichmentStrategy.js";
29
+ export type { IWriteEnrichmentStrategy } from "./IWriteEnrichmentStrategy.js";
30
+ export type { WriteMode } from "./WriteMode.js";
31
+ export { DefaultReadonlyEnrichmentStrategy } from "./DefaultReadonlyEnrichmentStrategy.js";
32
+ export { DefaultWriteEnrichmentStrategy } from "./DefaultWriteEnrichmentStrategy.js";
33
+ export { DeleteEnrichmentStrategy } from "./DeleteEnrichmentStrategy.js";
34
+ export { CascadeDeleteEnrichmentStrategy } from "./CascadeDeleteEnrichmentStrategy.js";
35
+ export { UpdateEnrichmentStrategy } from "./UpdateEnrichmentStrategy.js";
36
+ export { DefaultUpdateEnrichmentStrategy } from "./DefaultUpdateEnrichmentStrategy.js";
37
+ export { CreateEnrichmentStrategy } from "./CreateEnrichmentStrategy.js";
38
+ export { DefaultCreateEnrichmentStrategy } from "./DefaultCreateEnrichmentStrategy.js";
39
+ export { CascadeDeleteUpdateEnrichmentStrategy } from "./CascadeDeleteUpdateEnrichmentStrategy.js";
40
+ export { LazyWriteEnrichmentStrategy } from "./LazyWriteEnrichmentStrategy.js";
41
+ export { HashsetOptimizedReadonlyEnrichmentStrategy } from "./HashsetOptimizedReadonlyEnrichmentStrategy.js";
42
+ export { NestedToObjectEnrichmentStrategy } from "./NestedToObjectEnrichmentStrategy.js";
43
+ export { BulkCRUDRepository } from "./BulkCRUDRepository.js";
44
+ export type { IBulkWriteStrategy } from "./IBulkWriteStrategy.js";
45
+ export type { BulkCommand } from "./BulkCommand.js";
46
+ export { SingleCommandIBulkWriteStrategy } from "./SingleCommandIBulkWriteStrategy.js";
47
+ export { BatchCommandIBulkWriteStrategy } from "./BatchCommandIBulkWriteStrategy.js";
48
+ export { StoredProcedureBulkWriteStrategy } from "./StoredProcedureBulkWriteStrategy.js";
49
+ export { RepositoryTree } from "./RepositoryTree.js";
50
+ export { RepositoryTreeNode } from "./RepositoryTreeNode.js";
51
+ export { CRUDRepository } from "./CRUDRepository.js";
52
+ export { ReadonlyRepositoryBuilder } from "./ReadonlyRepositoryBuilder.js";
53
+ export { CRUDRepositoryBuilder } from "./CRUDRepositoryBuilder.js";
54
+ export { StatementMappers } from "./StatementMappers.js";
55
+ export { ReadonlyRepositoryStatements } from "./ReadonlyRepositoryStatements.js";
56
+ export { CRUDRepositoryStatements } from "./CRUDRepositoryStatements.js";
57
+ export type { BuiltRepository } from "./BuiltRepository.js";
58
+ export { createCRUDRepositoryOptions } from "./createCRUDRepositoryOptions.js";
59
+ export { createReadonlyRepositoryMappingOptions } from "./createReadonlyRepositoryMappingOptions.js";
60
+ export type { ReadonlyRepositoryMappingOptions } from "./ReadonlyRepositoryMappingOptions.js";
61
+ export type { CRUDRepositoryOptions } from "./CRUDRepositoryOptions.js";
62
+ export { Response } from "./Response.js";
63
+ export type { ITransaction } from "./ITransaction.js";
64
+ export type { IUnitOfWork } from "./IUnitOfWork.js";
65
+ export { UnitOfWorkTransaction } from "./UnitOfWorkTransaction.js";
66
+ export { IsolationLevel } from "./IsolationLevel.js";
67
+ export type { IsolationLevel as IsolationLevelName } from "./IsolationLevel.js";
68
+ export type { Comparison } from "./statements/index.js";
69
+ export { ArrayExpression, CheckConstraint, ColumnDefault, Condition, ConditionRenderer, ExpressionRenderer, CreateIndexStatement, CreateTableStatement, CreateTableStatementTextRenderer, CreateIndexStatementTextRenderer, SelectStatementTextRenderer, InsertStatementTextRenderer, UpdateStatementTextRenderer, DeleteStatementTextRenderer, BulkInsertStatementTextRenderer, BulkUpdateStatementTextRenderer, BulkDeleteStatementTextRenderer, ExecuteStoredProcedureStatementTextRenderer, ReturnStatementTextRenderer, SelectInsertedIdStatementTextRenderer, DefaultStatementTextRenderer, DeleteStatement, ForeignKey, Identifier, InsertStatement, BulkInsertStatement, BulkUpdateStatement, BulkDeleteStatement, Literal, NotNull, Operator, eq, ne, gt, lt, ge, le, PrimaryKey, Aggregate, OrderBy, SelectStatement, StatementParser, StatementRenderer, StatementTextRenderer, Native, n, Subquery, ReferentialAction, ExpressionEvaluator, StatementEvaluator, ExecuteStoredProcedureStatement, SelectInsertedIdStatement, ReturnStatement, UniqueConstraint, UpdateStatement, WhereText, Where, Join, } from "./statements/index.js";
70
+ export type { IDatasourceFactory } from "./IDatasourceFactory.js";
71
+ export type { Parameter } from "./Parameter.js";
72
+ export { ParameterDirection } from "./ParameterDirection.js";
73
+ export type { ParameterDirection as ParameterDirectionName } from "./ParameterDirection.js";
74
+ export type { Row } from "./Row.js";
75
+ export { ArrayReader } from "./ArrayReader.js";
76
+ export { FirstResultReader } from "./FirstResultReader.js";
77
+ export { StreamingReader, statementReader } from "./StreamingReader.js";
78
+ export { splitStatements } from "./splitStatements.js";
79
+ export { statementParameters } from "./statementParameters.js";
80
+ export { statementUsesParameter } from "./statementUsesParameter.js";
81
+ export { collectAsync } from "./collectAsync.js";
82
+ export { CommandMiddlewareHost } from "./CommandMiddlewareHost.js";
83
+ export { ConsoleCommandMiddleware, formatElapsed, } from "./ConsoleCommandMiddleware.js";
84
+ export { ExpectConsoleMiddleware } from "./ExpectConsoleMiddleware.js";
85
+ export { Datasource } from "./Datasource.js";
86
+ export { DatasourceUrl } from "./DatasourceUrl.js";
87
+ export { DatasourceUrlParser } from "./DatasourceUrlParser.js";
88
+ export { DatasourceError } from "./DatasourceError.js";
89
+ export type { Cell, Cells } from "./converters/Cell.js";
90
+ export type { Constructable } from "./converters/Constructable.js";
91
+ export { TypeConverter } from "./converters/TypeConverter.js";
92
+ export { MetaDataRowTypeConverter } from "./converters/MetaDataRowTypeConverter.js";
93
+ export { RowTypeConverter } from "./converters/RowTypeConverter.js";
94
+ export { ToLowerCaseConverter } from "./converters/ToLowerCaseConverter.js";
95
+ export { ToUpperCaseConverter } from "./converters/ToUpperCaseConverter.js";
96
+ export { ChangeCasingConverter, type Casing } from "./converters/ChangeCasingConverter.js";
97
+ export { PluralizerConverter } from "./converters/PluralizerConverter.js";
98
+ export { RegexConverter } from "./converters/RegexConverter.js";
99
+ export { ReplaceConverter } from "./converters/ReplaceConverter.js";
100
+ export type { IMapper } from "./mappers/IMapper.js";
101
+ export type { IFlatToNestedMapper } from "./mappers/IFlatToNestedMapper.js";
102
+ export type { TypeMap, TypeMapFields } from "./mappers/TypeMap.js";
103
+ export type { TypeMapGroup } from "./mappers/TypeMapGroup.js";
104
+ export { FlatToNestedMapper } from "./mappers/FlatToNestedMapper.js";
105
+ export { ChangeCasingMapper } from "./mappers/ChangeCasingMapper.js";
106
+ export { DictionaryMapper } from "./mappers/DictionaryMapper.js";
107
+ export { IdentityMapper } from "./mappers/IdentityMapper.js";
108
+ export { PluralizerMapper } from "./mappers/PluralizerMapper.js";
109
+ export { TransformMapper } from "./mappers/TransformMapper.js";
110
+ export { TransformConverterMapper } from "./mappers/TransformConverterMapper.js";
111
+ export { RowTypeMapper } from "./mappers/RowTypeMapper.js";
112
+ export { parametersToRecord } from "./parametersToRecord.js";
113
+ export { ProviderNotImplementedError } from "./ProviderNotImplementedError.js";
114
+ export { ProviderNotInstalledError } from "./ProviderNotInstalledError.js";
115
+ export type { Column, JoinKind, SelectStatementOptions, ReferentialAction as ReferentialActionName, SortDirection } from "./statements/index.js";
116
+ export type { Field, Scalar } from "./builders/index.js";
117
+ export { readerToAsyncIterable } from "./readerToAsyncIterable.js";
118
+ export { StubCommand, StubConnection, StubDatasource, StubReader, StubRepository, StubTransaction, createStubDatasource, } from "./stubs/index.js";
119
+ export { MockCommand, MockConnection, MockDatasource, MockDriver, MockSelectStatement, MockReader, MockRepository, MockTransaction, MockWhere, } from "./mocks/index.js";
@@ -0,0 +1,9 @@
1
+ import { type Casing } from "../converters/ChangeCasingConverter.js";
2
+ import type { IMapper } from "./IMapper.js";
3
+ export declare class ChangeCasingMapper implements IMapper<string, string> {
4
+ private readonly forward;
5
+ private readonly reverse;
6
+ constructor(from: Casing, to: Casing);
7
+ map: (value: string) => string;
8
+ reverseMap: (value: string) => string;
9
+ }
@@ -0,0 +1,8 @@
1
+ import type { IMapper } from "./IMapper.js";
2
+ export declare class DictionaryMapper<T extends string | number> implements IMapper<T, T> {
3
+ private readonly forward;
4
+ private readonly reverse;
5
+ constructor(map: readonly (readonly [T, T])[]);
6
+ map: (value: T) => T;
7
+ reverseMap: (value: T) => T;
8
+ }
@@ -0,0 +1,20 @@
1
+ import type { Cells } from "../converters/Cell.js";
2
+ import type { IFlatToNestedMapper } from "./IFlatToNestedMapper.js";
3
+ import type { TypeMap } from "./TypeMap.js";
4
+ export declare class FlatToNestedMapper<T> implements IFlatToNestedMapper<T> {
5
+ readonly spec: TypeMap<T>;
6
+ private readonly scalars;
7
+ private readonly groups;
8
+ private readonly parentDest;
9
+ constructor(spec: TypeMap<T>);
10
+ map: (rows: Iterable<T | Cells>) => T[];
11
+ reverseMap: (values: T[]) => Cells[];
12
+ private _map;
13
+ private _collapse;
14
+ private explode;
15
+ private scalarsOf;
16
+ private withChild;
17
+ private mapped;
18
+ private mark;
19
+ private merge;
20
+ }
@@ -0,0 +1,6 @@
1
+ import type { Cells } from "../converters/Cell.js";
2
+ import type { IMapper } from "./IMapper.js";
3
+ import type { TypeMap } from "./TypeMap.js";
4
+ export interface IFlatToNestedMapper<T> extends IMapper<Iterable<T | Cells>, T[]> {
5
+ readonly spec: TypeMap<T>;
6
+ }
@@ -0,0 +1,4 @@
1
+ export interface IMapper<TFrom, TTo> {
2
+ map(value: TFrom): TTo;
3
+ reverseMap(value: TTo): TFrom;
4
+ }
@@ -0,0 +1,5 @@
1
+ import type { IMapper } from "./IMapper.js";
2
+ export declare class IdentityMapper<T> implements IMapper<T, T> {
3
+ map: (value: T) => T;
4
+ reverseMap: (value: T) => T;
5
+ }
@@ -0,0 +1,6 @@
1
+ import type { IMapper } from "./IMapper.js";
2
+ export declare class PluralizerMapper implements IMapper<string, string> {
3
+ private readonly pluralizer;
4
+ map: (value: string) => string;
5
+ reverseMap: (value: string) => string;
6
+ }
@@ -0,0 +1,6 @@
1
+ import type { Cells } from "../converters/Cell.js";
2
+ import type { TypeConverter } from "../converters/TypeConverter.js";
3
+ import { TransformMapper } from "./TransformMapper.js";
4
+ export declare class RowTypeMapper<T> extends TransformMapper<Cells, T> {
5
+ constructor(converter?: TypeConverter<T, Cells>);
6
+ }
@@ -0,0 +1,5 @@
1
+ import type { TypeConverter } from "../converters/TypeConverter.js";
2
+ import { TransformMapper } from "./TransformMapper.js";
3
+ export declare class TransformConverterMapper<T> extends TransformMapper<T, T> {
4
+ constructor(converter: TypeConverter<T, T>, filter?: (value: T) => boolean);
5
+ }
@@ -0,0 +1,6 @@
1
+ import type { IMapper } from "./IMapper.js";
2
+ export declare class TransformMapper<TFrom, TTo> implements IMapper<TFrom, TTo> {
3
+ readonly map: (value: TFrom) => TTo;
4
+ readonly reverseMap: (value: TTo) => TFrom;
5
+ constructor(map: (value: TFrom) => TTo, reverseMap: (value: TTo) => TFrom);
6
+ }
@@ -0,0 +1,8 @@
1
+ import type { TypeMapGroup } from "./TypeMapGroup.js";
2
+ export type TypeMapFields<T> = {
3
+ [K in keyof T]?: T[K] extends readonly (infer E)[] ? TypeMapGroup<E> : string;
4
+ };
5
+ export type TypeMap<T> = {
6
+ key: string;
7
+ fields: TypeMapFields<T>;
8
+ };
@@ -0,0 +1,5 @@
1
+ import type { TypeMapFields } from "./TypeMap.js";
2
+ export type TypeMapGroup<E> = {
3
+ key: string;
4
+ fields: TypeMapFields<E>;
5
+ };
@@ -0,0 +1,9 @@
1
+ export { MockCommand } from "./mock-command.js";
2
+ export { MockConnection } from "./mock-connection.js";
3
+ export { MockDatasource } from "./mock-datasource.js";
4
+ export { MockDriver } from "./mock-driver.js";
5
+ export { MockSelectStatement } from "./mock-select-statement.js";
6
+ export { MockReader } from "./mock-reader.js";
7
+ export { MockRepository } from "./mock-repository.js";
8
+ export { MockTransaction } from "./mock-transaction.js";
9
+ export { MockWhere } from "./mock-where.js";
@@ -0,0 +1,28 @@
1
+ import type { ICommand } from "../ICommand.js";
2
+ import type { IConnection } from "../IConnection.js";
3
+ import type { Cells } from "../converters/Cell.js";
4
+ import type { IReader } from "../IReader.js";
5
+ import type { Response } from "../Response.js";
6
+ import { CommandMiddlewareHost } from "../CommandMiddlewareHost.js";
7
+ import type { Parameter } from "../Parameter.js";
8
+ import type { IStatement } from "../statements/IStatement.js";
9
+ import { Native } from "../statements/Native.js";
10
+ export declare class MockCommand extends CommandMiddlewareHost implements ICommand {
11
+ readonly connection: IConnection;
12
+ executeCalls: {
13
+ text: string;
14
+ parameters?: Parameter[];
15
+ }[];
16
+ executeReaderCalls: {
17
+ text: string;
18
+ parameters?: Parameter[];
19
+ }[];
20
+ executeError?: unknown;
21
+ executeReaderError?: unknown;
22
+ response: Response;
23
+ reader: IReader<Cells>;
24
+ constructor(connection: IConnection);
25
+ executeReaderStatement: (statement: IStatement, parameters?: Parameter[]) => Promise<IReader<Cells>>;
26
+ executeReaderNative(text: Native, parameters?: Parameter[]): Promise<IReader<Cells>>;
27
+ executeNative(text: Native, parameters?: Parameter[]): Promise<Response>;
28
+ }
@@ -0,0 +1,22 @@
1
+ import type { ICommand } from "../ICommand.js";
2
+ import type { IConnection } from "../IConnection.js";
3
+ import type { ITransaction } from "../ITransaction.js";
4
+ import { type IsolationLevel as Isolation } from "../IsolationLevel.js";
5
+ export declare class MockConnection implements IConnection {
6
+ readonly provider: string;
7
+ openCalls: number;
8
+ closeCalls: number;
9
+ startTransactionCalls: number;
10
+ openError?: unknown;
11
+ closeError?: unknown;
12
+ startTransactionError?: unknown;
13
+ transaction: ITransaction;
14
+ command?: ICommand;
15
+ isOpen: boolean;
16
+ constructor(transaction?: ITransaction, provider?: string);
17
+ createCommand: () => ICommand;
18
+ open(): Promise<void>;
19
+ close(): Promise<void>;
20
+ [Symbol.asyncDispose]: () => Promise<void>;
21
+ startTransaction(isolation?: Isolation): Promise<ITransaction>;
22
+ }
@@ -0,0 +1,24 @@
1
+ import type { Constructable } from "../converters/Constructable.js";
2
+ import type { ICommand } from "../ICommand.js";
3
+ import type { IConnection } from "../IConnection.js";
4
+ import type { IDatasource } from "../IDatasource.js";
5
+ import type { IReadonlyRepository } from "../IReadonlyRepository.js";
6
+ import type { ICRUDRepository } from "../ICRUDRepository.js";
7
+ import { RepositoryFactory } from "../RepositoryFactory.js";
8
+ export declare class MockDatasource implements IDatasource {
9
+ readonly provider: string;
10
+ createConnectionCalls: number;
11
+ createCommandCalls: Array<IConnection | undefined>;
12
+ createRepositoryCalls: Array<IConnection | undefined>;
13
+ connection: IConnection;
14
+ command?: ICommand;
15
+ repository?: ICRUDRepository;
16
+ readonly repositories: RepositoryFactory;
17
+ constructor(provider?: string);
18
+ createConnection(): Promise<IConnection>;
19
+ createCommand(connection?: IConnection): Promise<ICommand>;
20
+ createRepository<T>(type: Constructable<T>, connection?: IConnection): ICRUDRepository<T>;
21
+ createRepository(typeName: string, connection?: IConnection): ICRUDRepository;
22
+ createReadonlyRepository<T>(type: Constructable<T>, connection?: IConnection): IReadonlyRepository<T>;
23
+ createReadonlyRepository(typeName: string, connection?: IConnection): IReadonlyRepository;
24
+ }
@@ -0,0 +1,15 @@
1
+ import type { DatasourceOptions } from "../DatasourceOptions.js";
2
+ import type { ICommand } from "../ICommand.js";
3
+ import type { IConnection } from "../IConnection.js";
4
+ import type { IDriver } from "../IDriver.js";
5
+ import type { ITransaction } from "../ITransaction.js";
6
+ import type { IsolationLevel } from "../IsolationLevel.js";
7
+ import type { Cell } from "../converters/Cell.js";
8
+ import type { TypeConverter } from "../converters/TypeConverter.js";
9
+ export declare class MockDriver implements IDriver {
10
+ rowTypeConverters: Record<string, TypeConverter<Cell, Cell>>;
11
+ columnType: (name: string) => string;
12
+ connection: (_options?: DatasourceOptions) => IConnection;
13
+ command: (connection: IConnection) => ICommand;
14
+ transaction: (connection: IConnection, isolation?: IsolationLevel) => ITransaction;
15
+ }
@@ -0,0 +1,14 @@
1
+ import type { IReader } from "../IReader.js";
2
+ export declare class MockReader<T = unknown> implements IReader<T> {
3
+ rows: readonly T[];
4
+ current: T | undefined;
5
+ nextCalls: number;
6
+ nextError?: unknown;
7
+ private index;
8
+ constructor(rows?: readonly T[]);
9
+ next(): Promise<boolean>;
10
+ read(): AsyncIterable<T>;
11
+ nextResult(): Promise<boolean>;
12
+ dispose(): Promise<void>;
13
+ [Symbol.asyncDispose]: () => Promise<void>;
14
+ }
@@ -0,0 +1,42 @@
1
+ import type { Scalar } from "../builders/Scalar.js";
2
+ import type { Cells } from "../converters/Cell.js";
3
+ import type { Constructable } from "../converters/Constructable.js";
4
+ import type { IConnection } from "../IConnection.js";
5
+ import type { Parameter } from "../Parameter.js";
6
+ import type { IExecuteStoredProcedureStatement } from "../statements/IExecuteStoredProcedureStatement.js";
7
+ import type { ISelectStatement } from "../statements/ISelectStatement.js";
8
+ import type { ICRUDRepository } from "../ICRUDRepository.js";
9
+ import { ReadonlyRepository } from "../ReadonlyRepository.js";
10
+ import type { ReadonlyRepositoryMappingOptions } from "../ReadonlyRepositoryMappingOptions.js";
11
+ import type { Response } from "../Response.js";
12
+ import type { IWhere } from "../statements/IWhere.js";
13
+ export declare class MockRepository<T = unknown> extends ReadonlyRepository<T> implements ICRUDRepository<T> {
14
+ readonly ids: readonly string[];
15
+ items: T[];
16
+ readSingleCalls: Array<ISelectStatement | IWhere | IExecuteStoredProcedureStatement | undefined>;
17
+ readCalls: Array<ISelectStatement | IWhere | IExecuteStoredProcedureStatement | undefined>;
18
+ addCalls: T[];
19
+ updateCalls: Array<{
20
+ item: T;
21
+ byWhere?: IWhere;
22
+ }>;
23
+ deleteCalls: Array<{
24
+ item: T;
25
+ byWhere?: IWhere;
26
+ }>;
27
+ readSingleError?: unknown;
28
+ readError?: unknown;
29
+ addError?: unknown;
30
+ updateError?: unknown;
31
+ deleteError?: unknown;
32
+ addResponse: Response;
33
+ updateResponse: Response;
34
+ deleteResponse: Response;
35
+ constructor(_connection: IConnection, type?: Constructable<T>);
36
+ readSingle(query?: ISelectStatement | IWhere | IExecuteStoredProcedureStatement, _parameters?: Parameter[], _options?: ReadonlyRepositoryMappingOptions<T>): Promise<T | undefined>;
37
+ read(query?: ISelectStatement | IWhere | IExecuteStoredProcedureStatement, _parameters?: Parameter[], _options?: ReadonlyRepositoryMappingOptions<T>): AsyncIterable<T>;
38
+ create(item: T): Promise<T>;
39
+ update(item: T, byWhere?: IWhere): Promise<Response>;
40
+ delete(item: T, byWhere?: IWhere): Promise<Response>;
41
+ readSingleById: (_id: Scalar | Cells) => Promise<T | undefined>;
42
+ }
@@ -0,0 +1,10 @@
1
+ import type { ISelectStatement } from "../statements/ISelectStatement.js";
2
+ import type { IStatementVisitor } from "../statements/IStatementVisitor.js";
3
+ import type { IWhere } from "../statements/IWhere.js";
4
+ export declare class MockSelectStatement implements ISelectStatement {
5
+ text: string;
6
+ where?: IWhere | undefined;
7
+ acceptCalls: number;
8
+ constructor(text: string, where?: IWhere | undefined);
9
+ accept(_visitor: IStatementVisitor): string;
10
+ }
@@ -0,0 +1,16 @@
1
+ import type { IConnection } from "../IConnection.js";
2
+ import type { ITransaction } from "../ITransaction.js";
3
+ import { IsolationLevel } from "../IsolationLevel.js";
4
+ export declare class MockTransaction implements ITransaction {
5
+ readonly connection: IConnection;
6
+ commitCalls: number;
7
+ abortCalls: number;
8
+ commitError?: unknown;
9
+ abortError?: unknown;
10
+ committed: boolean;
11
+ aborted: boolean;
12
+ isolation: IsolationLevel;
13
+ constructor(connection: IConnection);
14
+ commit(): Promise<void>;
15
+ abort(): Promise<void>;
16
+ }
@@ -0,0 +1,8 @@
1
+ import type { IConditionVisitor } from "../statements/IConditionVisitor.js";
2
+ import type { IWhere } from "../statements/IWhere.js";
3
+ export declare class MockWhere implements IWhere {
4
+ text: string;
5
+ acceptCalls: number;
6
+ constructor(text: string);
7
+ accept(_visitor: IConditionVisitor): string;
8
+ }
@@ -0,0 +1,2 @@
1
+ import type { Parameter } from "./Parameter.js";
2
+ export declare function parametersToRecord<T>(parameters?: Parameter<T>[] | null): Record<string, T>;
@@ -0,0 +1,2 @@
1
+ import type { IReader } from "./IReader.js";
2
+ export declare function readerToAsyncIterable<T>(reader: IReader<T>): AsyncIterable<T>;
@@ -0,0 +1 @@
1
+ export declare const splitStatements: (sql: string) => string[];
@@ -0,0 +1 @@
1
+ export declare const statementParameters: (sql: string) => string[];
@@ -0,0 +1 @@
1
+ export declare const statementUsesParameter: (sql: string, name: string) => boolean;
@@ -0,0 +1,6 @@
1
+ export declare const Aggregate: {
2
+ count: (column: string, alias?: string) => string;
3
+ sum: (column: string, alias?: string) => string;
4
+ min: (column: string, alias?: string) => string;
5
+ max: (column: string, alias?: string) => string;
6
+ };
@@ -0,0 +1,5 @@
1
+ import type { IExpression } from "./IExpression.js";
2
+ export declare class ArrayExpression implements IExpression {
3
+ readonly elements: IExpression[];
4
+ constructor(elements: IExpression[]);
5
+ }
@@ -0,0 +1,11 @@
1
+ import type { Parameter } from "../Parameter.js";
2
+ import type { IBulkDeleteStatement } from "./IBulkDeleteStatement.js";
3
+ import type { IStatementVisitor } from "./IStatementVisitor.js";
4
+ export declare class BulkDeleteStatement implements IBulkDeleteStatement {
5
+ readonly table: string;
6
+ readonly ids: readonly string[];
7
+ readonly rows: readonly Parameter[][];
8
+ constructor(table: string, ids: readonly string[], rows: readonly Parameter[][]);
9
+ accept: (visitor: IStatementVisitor) => string;
10
+ get parameters(): Parameter[];
11
+ }
@@ -0,0 +1,4 @@
1
+ import type { BulkDeleteStatement } from "./BulkDeleteStatement.js";
2
+ export declare class BulkDeleteStatementTextRenderer {
3
+ render: (statement: BulkDeleteStatement) => string;
4
+ }
@@ -0,0 +1,12 @@
1
+ import type { Parameter } from "../Parameter.js";
2
+ import type { IBulkInsertStatement } from "./IBulkInsertStatement.js";
3
+ import type { IStatementVisitor } from "./IStatementVisitor.js";
4
+ export declare const flattenBulkParameters: (columns: readonly string[], rows: readonly Parameter[][]) => Parameter[];
5
+ export declare class BulkInsertStatement implements IBulkInsertStatement {
6
+ readonly table: string;
7
+ readonly columns: readonly string[];
8
+ readonly rows: readonly Parameter[][];
9
+ constructor(table: string, columns: readonly string[], rows: readonly Parameter[][]);
10
+ accept: (visitor: IStatementVisitor) => string;
11
+ get parameters(): Parameter[];
12
+ }
@@ -0,0 +1,4 @@
1
+ import type { BulkInsertStatement } from "./BulkInsertStatement.js";
2
+ export declare class BulkInsertStatementTextRenderer {
3
+ render: (statement: BulkInsertStatement) => string;
4
+ }
@@ -0,0 +1,16 @@
1
+ import type { Parameter } from "../Parameter.js";
2
+ import type { IBulkUpdateStatement } from "./IBulkUpdateStatement.js";
3
+ import type { IStatementVisitor } from "./IStatementVisitor.js";
4
+ export type BulkUpdatedRow = {
5
+ fields: Parameter[];
6
+ ids: Parameter[];
7
+ };
8
+ export declare class BulkUpdateStatement implements IBulkUpdateStatement {
9
+ readonly table: string;
10
+ readonly set: readonly string[];
11
+ readonly ids: readonly string[];
12
+ readonly rows: readonly BulkUpdatedRow[];
13
+ constructor(table: string, set: readonly string[], ids: readonly string[], rows: readonly BulkUpdatedRow[]);
14
+ accept: (visitor: IStatementVisitor) => string;
15
+ get parameters(): Parameter[];
16
+ }
@@ -0,0 +1,8 @@
1
+ import type { Cell } from "../converters/Cell.js";
2
+ import type { BulkUpdateStatement } from "./BulkUpdateStatement.js";
3
+ export declare class BulkUpdateStatementTextRenderer {
4
+ render: (statement: BulkUpdateStatement) => string;
5
+ protected on: (statement: BulkUpdateStatement) => string;
6
+ protected source: (statement: BulkUpdateStatement) => string;
7
+ protected cell: (column: string, index: number, _value: Cell) => string;
8
+ }
@@ -0,0 +1,7 @@
1
+ import type { ITableConstraint } from "./ITableConstraint.js";
2
+ export declare class CheckConstraint implements ITableConstraint {
3
+ readonly name: string;
4
+ readonly expression: string;
5
+ readonly kind: "check";
6
+ constructor(name: string, expression: string);
7
+ }
@@ -0,0 +1,9 @@
1
+ import type { Cell } from "../converters/Cell.js";
2
+ import type { Condition } from "./Condition.js";
3
+ export type Comparison = (column: string, value: Cell) => Condition;
4
+ export declare const eq: Comparison;
5
+ export declare const ne: Comparison;
6
+ export declare const gt: Comparison;
7
+ export declare const lt: Comparison;
8
+ export declare const ge: Comparison;
9
+ export declare const le: Comparison;
@@ -0,0 +1,9 @@
1
+ import type { ColumnDefault } from "./ColumnDefault.js";
2
+ import type { NotNull } from "./NotNull.js";
3
+ export interface Column {
4
+ name: string;
5
+ type: string;
6
+ default?: ColumnDefault;
7
+ notNull?: NotNull;
8
+ identity?: boolean;
9
+ }
@@ -0,0 +1,5 @@
1
+ export declare class ColumnDefault {
2
+ readonly value: string;
3
+ readonly name?: string | undefined;
4
+ constructor(value: string, name?: string | undefined);
5
+ }
@@ -0,0 +1,3 @@
1
+ import type { IExpression } from "./IExpression.js";
2
+ export declare abstract class Condition implements IExpression {
3
+ }
@@ -0,0 +1,12 @@
1
+ import type { ICondition } from "./ICondition.js";
2
+ import type { IConditionVisitor } from "./IConditionVisitor.js";
3
+ import type { ExpressionRenderer } from "./ExpressionRenderer.js";
4
+ import { Where } from "./Where.js";
5
+ import { WhereText } from "./WhereText.js";
6
+ export declare class ConditionRenderer implements IConditionVisitor {
7
+ private readonly expressions;
8
+ constructor(expressions: ExpressionRenderer);
9
+ render: (condition: ICondition) => string;
10
+ visit(where: Where): string;
11
+ visit(where: WhereText): string;
12
+ }
@@ -0,0 +1,10 @@
1
+ import type { ICreateIndexStatement } from "./ICreateIndexStatement.js";
2
+ import type { IStatementVisitor } from "./IStatementVisitor.js";
3
+ export declare class CreateIndexStatement implements ICreateIndexStatement {
4
+ readonly name: string;
5
+ readonly table: string;
6
+ readonly columns: string[];
7
+ readonly unique: boolean;
8
+ constructor(name: string, table: string, columns: string[], unique?: boolean);
9
+ accept: (visitor: IStatementVisitor) => string;
10
+ }
@@ -0,0 +1,5 @@
1
+ import type { CreateIndexStatement } from "./CreateIndexStatement.js";
2
+ export declare class CreateIndexStatementTextRenderer {
3
+ render(statement: CreateIndexStatement): string;
4
+ protected quote(name: string): string;
5
+ }
@@ -0,0 +1,11 @@
1
+ import type { Column } from "./Column.js";
2
+ import type { ICreateTableStatement } from "./ICreateTableStatement.js";
3
+ import type { IStatementVisitor } from "./IStatementVisitor.js";
4
+ import type { ITableConstraint } from "./ITableConstraint.js";
5
+ export declare class CreateTableStatement implements ICreateTableStatement {
6
+ readonly table: string;
7
+ readonly columns: Column[];
8
+ readonly constraints: ITableConstraint[];
9
+ constructor(table: string, columns: Column[], constraints?: ITableConstraint[]);
10
+ accept: (visitor: IStatementVisitor) => string;
11
+ }