@neogroup/neorm 0.0.1 → 0.0.3

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 (344) hide show
  1. package/README.md +36 -35
  2. package/dist/database/Connection.d.ts +10 -0
  3. package/dist/database/Connection.js +3 -0
  4. package/dist/database/Connection.js.map +1 -0
  5. package/dist/database/DB.d.ts +63 -0
  6. package/dist/database/DB.js +247 -0
  7. package/dist/database/DB.js.map +1 -0
  8. package/dist/database/DataConnection.d.ts +24 -0
  9. package/dist/database/DataConnection.js +99 -0
  10. package/dist/database/DataConnection.js.map +1 -0
  11. package/dist/database/DataSet.d.ts +3 -0
  12. package/dist/database/DataSet.js +3 -0
  13. package/dist/database/DataSet.js.map +1 -0
  14. package/dist/database/DataSource.d.ts +23 -0
  15. package/dist/database/DataSource.js +56 -0
  16. package/dist/database/DataSource.js.map +1 -0
  17. package/dist/database/DataTable.d.ts +19 -0
  18. package/dist/database/DataTable.js +75 -0
  19. package/dist/database/DataTable.js.map +1 -0
  20. package/dist/database/index.d.ts +8 -0
  21. package/dist/database/index.js +25 -0
  22. package/dist/database/index.js.map +1 -0
  23. package/dist/database/query/DeleteQuery.d.ts +8 -0
  24. package/dist/database/query/DeleteQuery.js +17 -0
  25. package/dist/database/query/DeleteQuery.js.map +1 -0
  26. package/dist/database/query/InsertQuery.d.ts +8 -0
  27. package/dist/database/query/InsertQuery.js +17 -0
  28. package/dist/database/query/InsertQuery.js.map +1 -0
  29. package/dist/database/query/Query.d.ts +2 -0
  30. package/dist/database/query/Query.js +7 -0
  31. package/dist/database/query/Query.js.map +1 -0
  32. package/dist/database/query/QueryTable.d.ts +7 -0
  33. package/dist/database/query/QueryTable.js +3 -0
  34. package/dist/database/query/QueryTable.js.map +1 -0
  35. package/dist/database/query/SelectQuery.d.ts +9 -0
  36. package/dist/database/query/SelectQuery.js +33 -0
  37. package/dist/database/query/SelectQuery.js.map +1 -0
  38. package/dist/database/query/Statement.d.ts +4 -0
  39. package/dist/database/query/Statement.js +3 -0
  40. package/dist/database/query/Statement.js.map +1 -0
  41. package/dist/database/query/UpdateQuery.d.ts +8 -0
  42. package/dist/database/query/UpdateQuery.js +17 -0
  43. package/dist/database/query/UpdateQuery.js.map +1 -0
  44. package/dist/database/query/builders/DefaultQueryBuilder.d.ts +87 -0
  45. package/dist/database/query/builders/DefaultQueryBuilder.js +524 -0
  46. package/dist/database/query/builders/DefaultQueryBuilder.js.map +1 -0
  47. package/dist/database/query/builders/QueryBuilder.d.ts +5 -0
  48. package/dist/database/query/builders/QueryBuilder.js +7 -0
  49. package/dist/database/query/builders/QueryBuilder.js.map +1 -0
  50. package/dist/database/query/builders/index.d.ts +2 -0
  51. package/dist/database/query/builders/index.js +19 -0
  52. package/dist/database/query/builders/index.js.map +1 -0
  53. package/dist/database/query/conditions/BasicCondition.d.ts +6 -0
  54. package/dist/database/query/conditions/BasicCondition.js +3 -0
  55. package/dist/database/query/conditions/BasicCondition.js.map +1 -0
  56. package/dist/database/query/conditions/ColumnCondition.d.ts +6 -0
  57. package/dist/database/query/conditions/ColumnCondition.js +3 -0
  58. package/dist/database/query/conditions/ColumnCondition.js.map +1 -0
  59. package/dist/database/query/conditions/Condition.d.ts +5 -0
  60. package/dist/database/query/conditions/Condition.js +3 -0
  61. package/dist/database/query/conditions/Condition.js.map +1 -0
  62. package/dist/database/query/conditions/ConditionConnector.d.ts +4 -0
  63. package/dist/database/query/conditions/ConditionConnector.js +9 -0
  64. package/dist/database/query/conditions/ConditionConnector.js.map +1 -0
  65. package/dist/database/query/conditions/ConditionGroup.d.ts +40 -0
  66. package/dist/database/query/conditions/ConditionGroup.js +138 -0
  67. package/dist/database/query/conditions/ConditionGroup.js.map +1 -0
  68. package/dist/database/query/conditions/ConnectedCondition.d.ts +6 -0
  69. package/dist/database/query/conditions/ConnectedCondition.js +3 -0
  70. package/dist/database/query/conditions/ConnectedCondition.js.map +1 -0
  71. package/dist/database/query/conditions/RawCondition.d.ts +4 -0
  72. package/dist/database/query/conditions/RawCondition.js +3 -0
  73. package/dist/database/query/conditions/RawCondition.js.map +1 -0
  74. package/dist/database/query/conditions/index.d.ts +7 -0
  75. package/dist/database/query/conditions/index.js +24 -0
  76. package/dist/database/query/conditions/index.js.map +1 -0
  77. package/dist/database/query/features/HasAlias.d.ts +6 -0
  78. package/dist/database/query/features/HasAlias.js +17 -0
  79. package/dist/database/query/features/HasAlias.js.map +1 -0
  80. package/dist/database/query/features/HasDistinct.d.ts +6 -0
  81. package/dist/database/query/features/HasDistinct.js +20 -0
  82. package/dist/database/query/features/HasDistinct.js.map +1 -0
  83. package/dist/database/query/features/HasFieldValues.d.ts +9 -0
  84. package/dist/database/query/features/HasFieldValues.js +27 -0
  85. package/dist/database/query/features/HasFieldValues.js.map +1 -0
  86. package/dist/database/query/features/HasGroupByFields.d.ts +7 -0
  87. package/dist/database/query/features/HasGroupByFields.js +21 -0
  88. package/dist/database/query/features/HasGroupByFields.js.map +1 -0
  89. package/dist/database/query/features/HasHavingConditions.d.ts +13 -0
  90. package/dist/database/query/features/HasHavingConditions.js +28 -0
  91. package/dist/database/query/features/HasHavingConditions.js.map +1 -0
  92. package/dist/database/query/features/HasJoins.d.ts +41 -0
  93. package/dist/database/query/features/HasJoins.js +66 -0
  94. package/dist/database/query/features/HasJoins.js.map +1 -0
  95. package/dist/database/query/features/HasLimit.d.ts +6 -0
  96. package/dist/database/query/features/HasLimit.js +20 -0
  97. package/dist/database/query/features/HasLimit.js.map +1 -0
  98. package/dist/database/query/features/HasOffset.d.ts +6 -0
  99. package/dist/database/query/features/HasOffset.js +20 -0
  100. package/dist/database/query/features/HasOffset.js.map +1 -0
  101. package/dist/database/query/features/HasOrderByFields.d.ts +15 -0
  102. package/dist/database/query/features/HasOrderByFields.js +38 -0
  103. package/dist/database/query/features/HasOrderByFields.js.map +1 -0
  104. package/dist/database/query/features/HasSelectFields.d.ts +11 -0
  105. package/dist/database/query/features/HasSelectFields.js +21 -0
  106. package/dist/database/query/features/HasSelectFields.js.map +1 -0
  107. package/dist/database/query/features/HasTable.d.ts +7 -0
  108. package/dist/database/query/features/HasTable.js +20 -0
  109. package/dist/database/query/features/HasTable.js.map +1 -0
  110. package/dist/database/query/features/HasUnions.d.ts +13 -0
  111. package/dist/database/query/features/HasUnions.js +21 -0
  112. package/dist/database/query/features/HasUnions.js.map +1 -0
  113. package/dist/database/query/features/HasWhen.d.ts +3 -0
  114. package/dist/database/query/features/HasWhen.js +13 -0
  115. package/dist/database/query/features/HasWhen.js.map +1 -0
  116. package/dist/database/query/features/HasWhereConditions.d.ts +35 -0
  117. package/dist/database/query/features/HasWhereConditions.js +92 -0
  118. package/dist/database/query/features/HasWhereConditions.js.map +1 -0
  119. package/dist/database/query/features/index.d.ts +14 -0
  120. package/dist/database/query/features/index.js +31 -0
  121. package/dist/database/query/features/index.js.map +1 -0
  122. package/dist/database/query/fields/BasicField.d.ts +5 -0
  123. package/dist/database/query/fields/BasicField.js +3 -0
  124. package/dist/database/query/fields/BasicField.js.map +1 -0
  125. package/dist/database/query/fields/Field.d.ts +3 -0
  126. package/dist/database/query/fields/Field.js +3 -0
  127. package/dist/database/query/fields/Field.js.map +1 -0
  128. package/dist/database/query/fields/RawField.d.ts +1 -0
  129. package/dist/database/query/fields/RawField.js +3 -0
  130. package/dist/database/query/fields/RawField.js.map +1 -0
  131. package/dist/database/query/fields/index.d.ts +3 -0
  132. package/dist/database/query/fields/index.js +20 -0
  133. package/dist/database/query/fields/index.js.map +1 -0
  134. package/dist/database/query/index.d.ts +11 -0
  135. package/dist/database/query/index.js +28 -0
  136. package/dist/database/query/index.js.map +1 -0
  137. package/dist/database/sources/index.d.ts +3 -0
  138. package/dist/database/sources/index.js +20 -0
  139. package/dist/database/sources/index.js.map +1 -0
  140. package/dist/database/sources/mysql/MysqlConnection.d.ts +14 -0
  141. package/dist/database/sources/mysql/MysqlConnection.js +36 -0
  142. package/dist/database/sources/mysql/MysqlConnection.js.map +1 -0
  143. package/dist/database/sources/mysql/MysqlDataSource.d.ts +24 -0
  144. package/dist/database/sources/mysql/MysqlDataSource.js +72 -0
  145. package/dist/database/sources/mysql/MysqlDataSource.js.map +1 -0
  146. package/dist/database/sources/mysql/MysqlQueryBuilder.d.ts +6 -0
  147. package/dist/database/sources/mysql/MysqlQueryBuilder.js +28 -0
  148. package/dist/database/sources/mysql/MysqlQueryBuilder.js.map +1 -0
  149. package/dist/database/sources/mysql/index.d.ts +3 -0
  150. package/dist/database/sources/mysql/index.js +20 -0
  151. package/dist/database/sources/mysql/index.js.map +1 -0
  152. package/dist/database/sources/postgres/PostgresConnection.d.ts +13 -0
  153. package/dist/database/sources/postgres/PostgresConnection.js +40 -0
  154. package/dist/database/sources/postgres/PostgresConnection.js.map +1 -0
  155. package/dist/database/sources/postgres/PostgresDataSource.d.ts +24 -0
  156. package/dist/database/sources/postgres/PostgresDataSource.js +73 -0
  157. package/dist/database/sources/postgres/PostgresDataSource.js.map +1 -0
  158. package/dist/database/sources/postgres/PostgresQueryBuilder.d.ts +5 -0
  159. package/dist/database/sources/postgres/PostgresQueryBuilder.js +13 -0
  160. package/dist/database/sources/postgres/PostgresQueryBuilder.js.map +1 -0
  161. package/dist/database/sources/postgres/index.d.ts +2 -0
  162. package/dist/database/sources/postgres/index.js +19 -0
  163. package/dist/database/sources/postgres/index.js.map +1 -0
  164. package/dist/database/sources/sqlite/SqliteConnection.d.ts +14 -0
  165. package/dist/database/sources/sqlite/SqliteConnection.js +37 -0
  166. package/dist/database/sources/sqlite/SqliteConnection.js.map +1 -0
  167. package/dist/database/sources/sqlite/SqliteDataSource.d.ts +11 -0
  168. package/dist/database/sources/sqlite/SqliteDataSource.js +34 -0
  169. package/dist/database/sources/sqlite/SqliteDataSource.js.map +1 -0
  170. package/dist/database/sources/sqlite/SqliteQueryBuilder.d.ts +6 -0
  171. package/dist/database/sources/sqlite/SqliteQueryBuilder.js +23 -0
  172. package/dist/database/sources/sqlite/SqliteQueryBuilder.js.map +1 -0
  173. package/dist/database/sources/sqlite/index.d.ts +3 -0
  174. package/dist/database/sources/sqlite/index.js +20 -0
  175. package/dist/database/sources/sqlite/index.js.map +1 -0
  176. package/dist/entities/BaseEntity.d.ts +76 -0
  177. package/dist/entities/BaseEntity.js +208 -0
  178. package/dist/entities/BaseEntity.js.map +1 -0
  179. package/dist/entities/CastType.d.ts +1 -0
  180. package/dist/entities/CastType.js +3 -0
  181. package/dist/entities/CastType.js.map +1 -0
  182. package/dist/entities/Entities.d.ts +14 -0
  183. package/dist/entities/Entities.js +85 -0
  184. package/dist/entities/Entities.js.map +1 -0
  185. package/dist/entities/EntityQuery.d.ts +60 -0
  186. package/dist/entities/EntityQuery.js +305 -0
  187. package/dist/entities/EntityQuery.js.map +1 -0
  188. package/dist/entities/RelationshipType.d.ts +1 -0
  189. package/dist/entities/RelationshipType.js +3 -0
  190. package/dist/entities/RelationshipType.js.map +1 -0
  191. package/dist/entities/decorators/BelongsTo.d.ts +2 -0
  192. package/dist/entities/decorators/BelongsTo.js +15 -0
  193. package/dist/entities/decorators/BelongsTo.js.map +1 -0
  194. package/dist/entities/decorators/Column.d.ts +13 -0
  195. package/dist/entities/decorators/Column.js +12 -0
  196. package/dist/entities/decorators/Column.js.map +1 -0
  197. package/dist/entities/decorators/Entity.d.ts +20 -0
  198. package/dist/entities/decorators/Entity.js +50 -0
  199. package/dist/entities/decorators/Entity.js.map +1 -0
  200. package/dist/entities/decorators/HasMany.d.ts +2 -0
  201. package/dist/entities/decorators/HasMany.js +15 -0
  202. package/dist/entities/decorators/HasMany.js.map +1 -0
  203. package/dist/entities/decorators/HasManyThrough.d.ts +2 -0
  204. package/dist/entities/decorators/HasManyThrough.js +23 -0
  205. package/dist/entities/decorators/HasManyThrough.js.map +1 -0
  206. package/dist/entities/decorators/HasOne.d.ts +2 -0
  207. package/dist/entities/decorators/HasOne.js +12 -0
  208. package/dist/entities/decorators/HasOne.js.map +1 -0
  209. package/dist/entities/decorators/HasOneThrough.d.ts +2 -0
  210. package/dist/entities/decorators/HasOneThrough.js +23 -0
  211. package/dist/entities/decorators/HasOneThrough.js.map +1 -0
  212. package/dist/entities/decorators/casts.d.ts +3 -0
  213. package/dist/entities/decorators/casts.js +38 -0
  214. package/dist/entities/decorators/casts.js.map +1 -0
  215. package/dist/entities/decorators/index.d.ts +7 -0
  216. package/dist/entities/decorators/index.js +24 -0
  217. package/dist/entities/decorators/index.js.map +1 -0
  218. package/dist/entities/decorators/metadata.d.ts +19 -0
  219. package/dist/entities/decorators/metadata.js +12 -0
  220. package/dist/entities/decorators/metadata.js.map +1 -0
  221. package/dist/entities/index.d.ts +5 -3
  222. package/dist/entities/index.js +5 -2
  223. package/dist/entities/index.js.map +1 -1
  224. package/dist/entities/relationship.d.ts +1 -6
  225. package/dist/entities/relationship.js +1 -22
  226. package/dist/entities/relationship.js.map +1 -1
  227. package/dist/index.d.ts +1 -9
  228. package/dist/index.js +1 -14
  229. package/dist/index.js.map +1 -1
  230. package/dist/query/DeleteQuery.d.ts +8 -0
  231. package/dist/query/DeleteQuery.js +17 -0
  232. package/dist/query/DeleteQuery.js.map +1 -0
  233. package/dist/query/InsertQuery.d.ts +8 -0
  234. package/dist/query/InsertQuery.js +17 -0
  235. package/dist/query/InsertQuery.js.map +1 -0
  236. package/dist/query/QueryTable.d.ts +7 -0
  237. package/dist/query/QueryTable.js +3 -0
  238. package/dist/query/QueryTable.js.map +1 -0
  239. package/dist/query/SelectQuery.d.ts +9 -0
  240. package/dist/query/SelectQuery.js +33 -0
  241. package/dist/query/SelectQuery.js.map +1 -0
  242. package/dist/query/UpdateQuery.d.ts +8 -0
  243. package/dist/query/UpdateQuery.js +17 -0
  244. package/dist/query/UpdateQuery.js.map +1 -0
  245. package/dist/query/builders/DefaultQueryBuilder.d.ts +87 -0
  246. package/dist/query/builders/DefaultQueryBuilder.js +524 -0
  247. package/dist/query/builders/DefaultQueryBuilder.js.map +1 -0
  248. package/dist/query/builders/QueryBuilder.d.ts +5 -0
  249. package/dist/query/builders/QueryBuilder.js +7 -0
  250. package/dist/query/builders/QueryBuilder.js.map +1 -0
  251. package/dist/query/builders/index.d.ts +2 -2
  252. package/dist/query/builders/index.js +2 -2
  253. package/dist/query/builders/index.js.map +1 -1
  254. package/dist/query/conditions/BasicCondition.d.ts +6 -0
  255. package/dist/query/conditions/BasicCondition.js +3 -0
  256. package/dist/query/conditions/BasicCondition.js.map +1 -0
  257. package/dist/query/conditions/ColumnCondition.d.ts +6 -0
  258. package/dist/query/conditions/ColumnCondition.js +3 -0
  259. package/dist/query/conditions/ColumnCondition.js.map +1 -0
  260. package/dist/query/conditions/Condition.d.ts +5 -0
  261. package/dist/query/conditions/Condition.js +3 -0
  262. package/dist/query/conditions/Condition.js.map +1 -0
  263. package/dist/query/conditions/ConditionConnector.d.ts +4 -0
  264. package/dist/query/conditions/ConditionConnector.js +9 -0
  265. package/dist/query/conditions/ConditionConnector.js.map +1 -0
  266. package/dist/query/conditions/ConditionGroup.d.ts +40 -0
  267. package/dist/query/conditions/ConditionGroup.js +138 -0
  268. package/dist/query/conditions/ConditionGroup.js.map +1 -0
  269. package/dist/query/conditions/ConnectedCondition.d.ts +6 -0
  270. package/dist/query/conditions/ConnectedCondition.js +3 -0
  271. package/dist/query/conditions/ConnectedCondition.js.map +1 -0
  272. package/dist/query/conditions/RawCondition.d.ts +4 -0
  273. package/dist/query/conditions/RawCondition.js +3 -0
  274. package/dist/query/conditions/RawCondition.js.map +1 -0
  275. package/dist/query/conditions/index.d.ts +7 -0
  276. package/dist/query/conditions/index.js +24 -0
  277. package/dist/query/conditions/index.js.map +1 -0
  278. package/dist/query/features/HasAlias.d.ts +6 -0
  279. package/dist/query/features/HasAlias.js +17 -0
  280. package/dist/query/features/HasAlias.js.map +1 -0
  281. package/dist/query/features/HasDistinct.d.ts +6 -0
  282. package/dist/query/features/HasDistinct.js +20 -0
  283. package/dist/query/features/HasDistinct.js.map +1 -0
  284. package/dist/query/features/HasFieldValues.d.ts +9 -0
  285. package/dist/query/features/HasFieldValues.js +27 -0
  286. package/dist/query/features/HasFieldValues.js.map +1 -0
  287. package/dist/query/features/HasGroupByFields.d.ts +7 -0
  288. package/dist/query/features/HasGroupByFields.js +21 -0
  289. package/dist/query/features/HasGroupByFields.js.map +1 -0
  290. package/dist/query/features/HasHavingConditions.d.ts +13 -0
  291. package/dist/query/features/HasHavingConditions.js +28 -0
  292. package/dist/query/features/HasHavingConditions.js.map +1 -0
  293. package/dist/query/features/HasJoins.d.ts +41 -0
  294. package/dist/query/features/HasJoins.js +66 -0
  295. package/dist/query/features/HasJoins.js.map +1 -0
  296. package/dist/query/features/HasLimit.d.ts +6 -0
  297. package/dist/query/features/HasLimit.js +20 -0
  298. package/dist/query/features/HasLimit.js.map +1 -0
  299. package/dist/query/features/HasOffset.d.ts +6 -0
  300. package/dist/query/features/HasOffset.js +20 -0
  301. package/dist/query/features/HasOffset.js.map +1 -0
  302. package/dist/query/features/HasOrderByFields.d.ts +15 -0
  303. package/dist/query/features/HasOrderByFields.js +38 -0
  304. package/dist/query/features/HasOrderByFields.js.map +1 -0
  305. package/dist/query/features/HasSelectFields.d.ts +11 -0
  306. package/dist/query/features/HasSelectFields.js +21 -0
  307. package/dist/query/features/HasSelectFields.js.map +1 -0
  308. package/dist/query/features/HasTable.d.ts +7 -0
  309. package/dist/query/features/HasTable.js +20 -0
  310. package/dist/query/features/HasTable.js.map +1 -0
  311. package/dist/query/features/HasUnions.d.ts +13 -0
  312. package/dist/query/features/HasUnions.js +21 -0
  313. package/dist/query/features/HasUnions.js.map +1 -0
  314. package/dist/query/features/HasWhen.d.ts +3 -0
  315. package/dist/query/features/HasWhen.js +13 -0
  316. package/dist/query/features/HasWhen.js.map +1 -0
  317. package/dist/query/features/HasWhereConditions.d.ts +35 -0
  318. package/dist/query/features/HasWhereConditions.js +92 -0
  319. package/dist/query/features/HasWhereConditions.js.map +1 -0
  320. package/dist/query/features/index.d.ts +14 -14
  321. package/dist/query/features/index.js +14 -14
  322. package/dist/query/features/index.js.map +1 -1
  323. package/dist/query/fields/BasicField.d.ts +5 -0
  324. package/dist/query/fields/BasicField.js +3 -0
  325. package/dist/query/fields/BasicField.js.map +1 -0
  326. package/dist/query/fields/Field.d.ts +3 -0
  327. package/dist/query/fields/Field.js +3 -0
  328. package/dist/query/fields/Field.js.map +1 -0
  329. package/dist/query/fields/RawField.d.ts +1 -0
  330. package/dist/query/fields/RawField.js +3 -0
  331. package/dist/query/fields/RawField.js.map +1 -0
  332. package/dist/query/fields/index.d.ts +3 -0
  333. package/dist/query/fields/index.js +20 -0
  334. package/dist/query/fields/index.js.map +1 -0
  335. package/dist/query/index.d.ts +7 -7
  336. package/dist/query/index.js +7 -7
  337. package/dist/query/index.js.map +1 -1
  338. package/dist/query/query.js +1 -1
  339. package/dist/query/query.js.map +1 -1
  340. package/dist/query/statement.js +1 -1
  341. package/dist/query/statement.js.map +1 -1
  342. package/dist/utilities.js +2 -3
  343. package/dist/utilities.js.map +1 -1
  344. package/package.json +21 -12
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MysqlDataSource = void 0;
4
+ const DataSource_1 = require("../../DataSource");
5
+ const MysqlConnection_1 = require("./MysqlConnection");
6
+ const MysqlQueryBuilder_1 = require("./MysqlQueryBuilder");
7
+ class MysqlDataSource extends DataSource_1.DataSource {
8
+ constructor() {
9
+ super(new MysqlQueryBuilder_1.MysqlQueryBuilder());
10
+ try {
11
+ this.lib = require('mysql2/promise');
12
+ }
13
+ catch (e) {
14
+ throw new Error('MySQL module not found. Please install it via "npm install -S mysql2"');
15
+ }
16
+ this.host = '';
17
+ this.port = 3306;
18
+ this.databaseName = '';
19
+ this.username = '';
20
+ this.password = '';
21
+ }
22
+ setHost(host) {
23
+ this.host = host;
24
+ }
25
+ getHost() {
26
+ return this.host;
27
+ }
28
+ setPort(port) {
29
+ this.port = port;
30
+ }
31
+ getPort() {
32
+ return this.port;
33
+ }
34
+ setDatabaseName(databaseName) {
35
+ this.databaseName = databaseName;
36
+ }
37
+ getDatabaseName() {
38
+ return this.databaseName;
39
+ }
40
+ setUsername(username) {
41
+ this.username = username;
42
+ }
43
+ getUsername() {
44
+ return this.username;
45
+ }
46
+ setPassword(password) {
47
+ this.password = password;
48
+ }
49
+ getPassword() {
50
+ return this.password;
51
+ }
52
+ async close() {
53
+ if (this.pool) {
54
+ await this.pool.end();
55
+ this.pool = null;
56
+ }
57
+ }
58
+ async requestConnection() {
59
+ if (!this.pool) {
60
+ this.pool = this.lib.createPool({
61
+ host: this.getHost(),
62
+ port: this.getPort(),
63
+ database: this.getDatabaseName(),
64
+ user: this.getUsername(),
65
+ password: this.getPassword()
66
+ });
67
+ }
68
+ return new MysqlConnection_1.MysqlConnection(await this.pool.getConnection());
69
+ }
70
+ }
71
+ exports.MysqlDataSource = MysqlDataSource;
72
+ //# sourceMappingURL=MysqlDataSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MysqlDataSource.js","sourceRoot":"","sources":["../../../../src/database/sources/mysql/MysqlDataSource.ts"],"names":[],"mappings":";;;AACA,iDAA6C;AAC7C,uDAAmD;AACnD,2DAAuD;AAEvD,MAAa,eAAgB,SAAQ,uBAAU;IAS7C;QACE,KAAK,CAAC,IAAI,qCAAiB,EAAE,CAAC,CAAA;QAE9B,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;QACtC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAA;QAC1F,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;IACpB,CAAC;IAEM,OAAO,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAEM,OAAO,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAEM,eAAe,CAAC,YAAoB;QACzC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAEM,WAAW,CAAC,QAAgB;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAEM,WAAW,CAAC,QAAgB;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;YACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAClB,CAAC;IACH,CAAC;IAES,KAAK,CAAC,iBAAiB;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;gBAC9B,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;gBACpB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;gBACpB,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE;gBAChC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;gBACxB,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;aAC7B,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,IAAI,iCAAe,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;IAC7D,CAAC;CACF;AArFD,0CAqFC"}
@@ -0,0 +1,6 @@
1
+ import { DefaultQueryBuilder, QueryTable, Statement } from '../../query';
2
+ export declare class MysqlQueryBuilder extends DefaultQueryBuilder {
3
+ private static readonly BACKTICK;
4
+ protected buildTable(table: QueryTable, statement: Statement): void;
5
+ protected buildFieldName(name: string, statement: Statement): void;
6
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MysqlQueryBuilder = void 0;
4
+ const query_1 = require("../../query");
5
+ class MysqlQueryBuilder extends query_1.DefaultQueryBuilder {
6
+ // MySQL usa backticks para escapar identifiers (tablas, campos)
7
+ // evitando colisiones con palabras reservadas.
8
+ // buildTable y buildFieldName son suficientes — buildRawFieldString los invoca
9
+ // automáticamente al parsear notaciones 'tabla.campo' y 'FUNC(tabla.campo)'.
10
+ buildTable(table, statement) {
11
+ if (typeof table === 'string' || table instanceof String) {
12
+ statement.sql += MysqlQueryBuilder.BACKTICK + table + MysqlQueryBuilder.BACKTICK;
13
+ }
14
+ else {
15
+ if (table.schema) {
16
+ statement.sql += MysqlQueryBuilder.BACKTICK + table.schema + MysqlQueryBuilder.BACKTICK;
17
+ statement.sql += query_1.DefaultQueryBuilder.POINT;
18
+ }
19
+ statement.sql += MysqlQueryBuilder.BACKTICK + table.name + MysqlQueryBuilder.BACKTICK;
20
+ }
21
+ }
22
+ buildFieldName(name, statement) {
23
+ statement.sql += MysqlQueryBuilder.BACKTICK + name + MysqlQueryBuilder.BACKTICK;
24
+ }
25
+ }
26
+ exports.MysqlQueryBuilder = MysqlQueryBuilder;
27
+ MysqlQueryBuilder.BACKTICK = '`';
28
+ //# sourceMappingURL=MysqlQueryBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MysqlQueryBuilder.js","sourceRoot":"","sources":["../../../../src/database/sources/mysql/MysqlQueryBuilder.ts"],"names":[],"mappings":";;;AAAA,uCAAwE;AAExE,MAAa,iBAAkB,SAAQ,2BAAmB;IAGxD,gEAAgE;IAChE,+CAA+C;IAC/C,+EAA+E;IAC/E,6EAA6E;IAEnE,UAAU,CAAC,KAAiB,EAAE,SAAoB;QAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;YACzD,SAAS,CAAC,GAAG,IAAI,iBAAiB,CAAC,QAAQ,GAAG,KAAK,GAAG,iBAAiB,CAAC,QAAQ,CAAA;QAClF,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,SAAS,CAAC,GAAG,IAAI,iBAAiB,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAA;gBACvF,SAAS,CAAC,GAAG,IAAI,2BAAmB,CAAC,KAAK,CAAA;YAC5C,CAAC;YAED,SAAS,CAAC,GAAG,IAAI,iBAAiB,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAA;QACvF,CAAC;IACH,CAAC;IAES,cAAc,CAAC,IAAY,EAAE,SAAoB;QACzD,SAAS,CAAC,GAAG,IAAI,iBAAiB,CAAC,QAAQ,GAAG,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAA;IACjF,CAAC;;AAvBH,8CAwBC;AAvByB,0BAAQ,GAAG,GAAG,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './MysqlConnection';
2
+ export * from './MysqlDataSource';
3
+ export * from './MysqlQueryBuilder';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./MysqlConnection"), exports);
18
+ __exportStar(require("./MysqlDataSource"), exports);
19
+ __exportStar(require("./MysqlQueryBuilder"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/database/sources/mysql/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,oDAAiC;AACjC,sDAAmC"}
@@ -0,0 +1,13 @@
1
+ import { Connection } from '../../Connection';
2
+ import { DataSet } from '../../DataSet';
3
+ export declare class PostgresConnection implements Connection {
4
+ private client;
5
+ constructor(client: any);
6
+ query(sql: string, bindings?: Array<any>): Promise<Array<DataSet>>;
7
+ execute(sql: string, bindings?: Array<any>): Promise<number>;
8
+ lastInsertId(): Promise<number>;
9
+ beginTransaction(): Promise<void>;
10
+ rollbackTransaction(): Promise<void>;
11
+ commitTransaction(): Promise<void>;
12
+ close(): Promise<void>;
13
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PostgresConnection = void 0;
4
+ class PostgresConnection {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ async query(sql, bindings) {
9
+ const response = await this.client.query(sql, bindings);
10
+ return response.rows;
11
+ }
12
+ async execute(sql, bindings) {
13
+ const response = await this.client.query(sql, bindings);
14
+ return response.rowCount;
15
+ }
16
+ async lastInsertId() {
17
+ var _a, _b;
18
+ try {
19
+ const result = await this.client.query('SELECT lastval() AS id');
20
+ return Number((_b = (_a = result.rows[0]) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : 0);
21
+ }
22
+ catch (_c) {
23
+ return 0;
24
+ }
25
+ }
26
+ async beginTransaction() {
27
+ await this.client.query('BEGIN');
28
+ }
29
+ async rollbackTransaction() {
30
+ await this.client.query('ROLLBACK');
31
+ }
32
+ async commitTransaction() {
33
+ await this.client.query('COMMIT');
34
+ }
35
+ async close() {
36
+ await this.client.release();
37
+ }
38
+ }
39
+ exports.PostgresConnection = PostgresConnection;
40
+ //# sourceMappingURL=PostgresConnection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostgresConnection.js","sourceRoot":"","sources":["../../../../src/database/sources/postgres/PostgresConnection.ts"],"names":[],"mappings":";;;AAGA,MAAa,kBAAkB;IAG7B,YAAY,MAAW;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,QAAqB;QACnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAEvD,OAAO,QAAQ,CAAC,IAAI,CAAA;IACtB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,QAAqB;QACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAEvD,OAAO,QAAQ,CAAC,QAAQ,CAAA;IAC1B,CAAC;IAEM,KAAK,CAAC,YAAY;;QACvB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;YAEhE,OAAO,MAAM,CAAC,MAAA,MAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,EAAE,mCAAI,CAAC,CAAC,CAAA;QACxC,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,CAAC,CAAA;QACV,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IAEM,KAAK,CAAC,mBAAmB;QAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACrC,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;CACF;AA5CD,gDA4CC"}
@@ -0,0 +1,24 @@
1
+ import { Connection } from '../../Connection';
2
+ import { DataSource } from '../../DataSource';
3
+ export declare class PostgresDataSource extends DataSource {
4
+ private lib;
5
+ private pool;
6
+ private host;
7
+ private port;
8
+ private databaseName;
9
+ private username;
10
+ private password;
11
+ constructor();
12
+ setHost(host: string): void;
13
+ getHost(): string;
14
+ setPort(port: number): void;
15
+ getPort(): number;
16
+ setDatabaseName(databaseName: string): void;
17
+ getDatabaseName(): string;
18
+ setUsername(username: string): void;
19
+ getUsername(): string;
20
+ setPassword(password: string): void;
21
+ getPassword(): string;
22
+ close(): Promise<void>;
23
+ protected requestConnection(): Promise<Connection>;
24
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PostgresDataSource = void 0;
4
+ const DataSource_1 = require("../../DataSource");
5
+ const PostgresConnection_1 = require("./PostgresConnection");
6
+ const PostgresQueryBuilder_1 = require("./PostgresQueryBuilder");
7
+ class PostgresDataSource extends DataSource_1.DataSource {
8
+ constructor() {
9
+ super(new PostgresQueryBuilder_1.PostgresQueryBuilder());
10
+ try {
11
+ this.lib = require('pg');
12
+ }
13
+ catch (e) {
14
+ throw new Error('PostgreSQL module not found. Please install it via "npm install -S pg"');
15
+ }
16
+ this.host = '';
17
+ this.port = 5432;
18
+ this.databaseName = '';
19
+ this.username = '';
20
+ this.password = '';
21
+ }
22
+ setHost(host) {
23
+ this.host = host;
24
+ }
25
+ getHost() {
26
+ return this.host;
27
+ }
28
+ setPort(port) {
29
+ this.port = port;
30
+ }
31
+ getPort() {
32
+ return this.port;
33
+ }
34
+ setDatabaseName(databaseName) {
35
+ this.databaseName = databaseName;
36
+ }
37
+ getDatabaseName() {
38
+ return this.databaseName;
39
+ }
40
+ setUsername(username) {
41
+ this.username = username;
42
+ }
43
+ getUsername() {
44
+ return this.username;
45
+ }
46
+ setPassword(password) {
47
+ this.password = password;
48
+ }
49
+ getPassword() {
50
+ return this.password;
51
+ }
52
+ async close() {
53
+ if (this.pool) {
54
+ await this.pool.end();
55
+ this.pool = null;
56
+ }
57
+ }
58
+ async requestConnection() {
59
+ if (!this.pool) {
60
+ const config = {
61
+ host: this.getHost(),
62
+ port: this.getPort(),
63
+ database: this.getDatabaseName(),
64
+ user: this.getUsername(),
65
+ password: this.getPassword()
66
+ };
67
+ this.pool = new this.lib.Pool(config);
68
+ }
69
+ return new PostgresConnection_1.PostgresConnection(await this.pool.connect());
70
+ }
71
+ }
72
+ exports.PostgresDataSource = PostgresDataSource;
73
+ //# sourceMappingURL=PostgresDataSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostgresDataSource.js","sourceRoot":"","sources":["../../../../src/database/sources/postgres/PostgresDataSource.ts"],"names":[],"mappings":";;;AACA,iDAA6C;AAC7C,6DAAyD;AACzD,iEAA6D;AAE7D,MAAa,kBAAmB,SAAQ,uBAAU;IAShD;QACE,KAAK,CAAC,IAAI,2CAAoB,EAAE,CAAC,CAAA;QAEjC,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAA;QAC3F,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;IACpB,CAAC;IAEM,OAAO,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAEM,OAAO,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAEM,eAAe,CAAC,YAAoB;QACzC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAEM,WAAW,CAAC,QAAgB;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAEM,WAAW,CAAC,QAAgB;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;YACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAClB,CAAC;IACH,CAAC;IAES,KAAK,CAAC,iBAAiB;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,MAAM,GAAQ;gBAClB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;gBACpB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;gBACpB,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE;gBAChC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;gBACxB,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;aAC7B,CAAA;YAED,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACvC,CAAC;QAED,OAAO,IAAI,uCAAkB,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1D,CAAC;CACF;AAvFD,gDAuFC"}
@@ -0,0 +1,5 @@
1
+ import { DefaultQueryBuilder, Statement } from '../../query';
2
+ export declare class PostgresQueryBuilder extends DefaultQueryBuilder {
3
+ private static readonly CURRENCY;
4
+ protected buildSingleValue(value: any, statement: Statement): void;
5
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PostgresQueryBuilder = void 0;
4
+ const query_1 = require("../../query");
5
+ class PostgresQueryBuilder extends query_1.DefaultQueryBuilder {
6
+ buildSingleValue(value, statement) {
7
+ statement.sql += PostgresQueryBuilder.CURRENCY + (statement.bindings.length + 1);
8
+ statement.bindings.push(value);
9
+ }
10
+ }
11
+ exports.PostgresQueryBuilder = PostgresQueryBuilder;
12
+ PostgresQueryBuilder.CURRENCY = '$';
13
+ //# sourceMappingURL=PostgresQueryBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostgresQueryBuilder.js","sourceRoot":"","sources":["../../../../src/database/sources/postgres/PostgresQueryBuilder.ts"],"names":[],"mappings":";;;AAAA,uCAA4D;AAE5D,MAAa,oBAAqB,SAAQ,2BAAmB;IAGjD,gBAAgB,CAAC,KAAU,EAAE,SAAoB;QACzD,SAAS,CAAC,GAAG,IAAI,oBAAoB,CAAC,QAAQ,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAChF,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;;AANH,oDAOC;AANyB,6BAAQ,GAAG,GAAG,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './PostgresConnection';
2
+ export * from './PostgresDataSource';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./PostgresConnection"), exports);
18
+ __exportStar(require("./PostgresDataSource"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/database/sources/postgres/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAoC;AACpC,uDAAoC"}
@@ -0,0 +1,14 @@
1
+ import { Connection } from '../../Connection';
2
+ import { DataSet } from '../../DataSet';
3
+ export declare class SqliteConnection implements Connection {
4
+ private db;
5
+ private _lastInsertId;
6
+ constructor(db: any);
7
+ query(sql: string, bindings?: Array<any>): Promise<Array<DataSet>>;
8
+ execute(sql: string, bindings?: Array<any>): Promise<number>;
9
+ lastInsertId(): Promise<number>;
10
+ beginTransaction(): Promise<void>;
11
+ rollbackTransaction(): Promise<void>;
12
+ commitTransaction(): Promise<void>;
13
+ close(): Promise<void>;
14
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SqliteConnection = void 0;
4
+ class SqliteConnection {
5
+ constructor(db) {
6
+ this._lastInsertId = 0;
7
+ this.db = db;
8
+ }
9
+ async query(sql, bindings) {
10
+ const stmt = this.db.prepare(sql);
11
+ return stmt.all(...(bindings !== null && bindings !== void 0 ? bindings : []));
12
+ }
13
+ async execute(sql, bindings) {
14
+ var _a, _b;
15
+ const stmt = this.db.prepare(sql);
16
+ const result = stmt.run(...(bindings !== null && bindings !== void 0 ? bindings : []));
17
+ this._lastInsertId = Number((_a = result.lastInsertRowid) !== null && _a !== void 0 ? _a : 0);
18
+ return (_b = result.changes) !== null && _b !== void 0 ? _b : 0;
19
+ }
20
+ async lastInsertId() {
21
+ return this._lastInsertId;
22
+ }
23
+ async beginTransaction() {
24
+ this.db.prepare('BEGIN').run();
25
+ }
26
+ async rollbackTransaction() {
27
+ this.db.prepare('ROLLBACK').run();
28
+ }
29
+ async commitTransaction() {
30
+ this.db.prepare('COMMIT').run();
31
+ }
32
+ async close() {
33
+ // La instancia db es compartida; el cierre lo maneja SqliteDataSource
34
+ }
35
+ }
36
+ exports.SqliteConnection = SqliteConnection;
37
+ //# sourceMappingURL=SqliteConnection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteConnection.js","sourceRoot":"","sources":["../../../../src/database/sources/sqlite/SqliteConnection.ts"],"names":[],"mappings":";;;AAGA,MAAa,gBAAgB;IAI3B,YAAY,EAAO;QAFX,kBAAa,GAAW,CAAC,CAAA;QAG/B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,QAAqB;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAEjC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CAAC,CAAC,CAAA;IACtC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,QAAqB;;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CAAC,CAAC,CAAA;QAE5C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAA,MAAM,CAAC,eAAe,mCAAI,CAAC,CAAC,CAAA;QAExD,OAAO,MAAA,MAAM,CAAC,OAAO,mCAAI,CAAC,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,YAAY;QACvB,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC3B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAA;IAChC,CAAC;IAEM,KAAK,CAAC,mBAAmB;QAC9B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAA;IACnC,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC5B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAA;IACjC,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,sEAAsE;IACxE,CAAC;CACF;AA1CD,4CA0CC"}
@@ -0,0 +1,11 @@
1
+ import { Connection } from '../../Connection';
2
+ import { DataSource } from '../../DataSource';
3
+ export declare class SqliteDataSource extends DataSource {
4
+ private db;
5
+ private filename;
6
+ constructor();
7
+ setFilename(filename: string): void;
8
+ getFilename(): string;
9
+ close(): Promise<void>;
10
+ protected requestConnection(): Promise<Connection>;
11
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SqliteDataSource = void 0;
4
+ const DataSource_1 = require("../../DataSource");
5
+ const SqliteConnection_1 = require("./SqliteConnection");
6
+ const SqliteQueryBuilder_1 = require("./SqliteQueryBuilder");
7
+ class SqliteDataSource extends DataSource_1.DataSource {
8
+ constructor() {
9
+ super(new SqliteQueryBuilder_1.SqliteQueryBuilder());
10
+ this.filename = ':memory:';
11
+ }
12
+ setFilename(filename) {
13
+ this.filename = filename;
14
+ }
15
+ getFilename() {
16
+ return this.filename;
17
+ }
18
+ async close() {
19
+ if (this.db) {
20
+ this.db.close();
21
+ this.db = null;
22
+ }
23
+ }
24
+ async requestConnection() {
25
+ if (!this.db) {
26
+ // node:sqlite viene incorporado en Node.js >= 22.5 — sin dependencias externas
27
+ const { DatabaseSync } = require('node:sqlite');
28
+ this.db = new DatabaseSync(this.filename);
29
+ }
30
+ return new SqliteConnection_1.SqliteConnection(this.db);
31
+ }
32
+ }
33
+ exports.SqliteDataSource = SqliteDataSource;
34
+ //# sourceMappingURL=SqliteDataSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteDataSource.js","sourceRoot":"","sources":["../../../../src/database/sources/sqlite/SqliteDataSource.ts"],"names":[],"mappings":";;;AACA,iDAA6C;AAC7C,yDAAqD;AACrD,6DAAyD;AAEzD,MAAa,gBAAiB,SAAQ,uBAAU;IAI9C;QACE,KAAK,CAAC,IAAI,uCAAkB,EAAE,CAAC,CAAA;QAC/B,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;IAC5B,CAAC;IAEM,WAAW,CAAC,QAAgB;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;YACf,IAAI,CAAC,EAAE,GAAG,IAAI,CAAA;QAChB,CAAC;IACH,CAAC;IAES,KAAK,CAAC,iBAAiB;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,+EAA+E;YAC/E,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;YAE/C,IAAI,CAAC,EAAE,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC3C,CAAC;QAED,OAAO,IAAI,mCAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACtC,CAAC;CACF;AAlCD,4CAkCC"}
@@ -0,0 +1,6 @@
1
+ import { DefaultQueryBuilder } from '../../query/builders/DefaultQueryBuilder';
2
+ import { SelectQuery } from '../../query/SelectQuery';
3
+ import { Statement } from '../../query/Statement';
4
+ export declare class SqliteQueryBuilder extends DefaultQueryBuilder {
5
+ protected buildLimitOffset(query: SelectQuery, statement: Statement): void;
6
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SqliteQueryBuilder = void 0;
4
+ const DefaultQueryBuilder_1 = require("../../query/builders/DefaultQueryBuilder");
5
+ class SqliteQueryBuilder extends DefaultQueryBuilder_1.DefaultQueryBuilder {
6
+ buildLimitOffset(query, statement) {
7
+ // SQLite requiere LIMIT cuando se usa OFFSET; LIMIT -1 significa sin límite
8
+ if (query.getLimit() >= 0 || query.getOffset() >= 0) {
9
+ statement.sql += DefaultQueryBuilder_1.DefaultQueryBuilder.SPACE;
10
+ statement.sql += DefaultQueryBuilder_1.DefaultQueryBuilder.LIMIT;
11
+ statement.sql += DefaultQueryBuilder_1.DefaultQueryBuilder.SPACE;
12
+ statement.sql += query.getLimit() >= 0 ? query.getLimit() : -1;
13
+ }
14
+ if (query.getOffset() >= 0) {
15
+ statement.sql += DefaultQueryBuilder_1.DefaultQueryBuilder.SPACE;
16
+ statement.sql += DefaultQueryBuilder_1.DefaultQueryBuilder.OFFSET;
17
+ statement.sql += DefaultQueryBuilder_1.DefaultQueryBuilder.SPACE;
18
+ statement.sql += query.getOffset();
19
+ }
20
+ }
21
+ }
22
+ exports.SqliteQueryBuilder = SqliteQueryBuilder;
23
+ //# sourceMappingURL=SqliteQueryBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteQueryBuilder.js","sourceRoot":"","sources":["../../../../src/database/sources/sqlite/SqliteQueryBuilder.ts"],"names":[],"mappings":";;;AAAA,kFAA8E;AAI9E,MAAa,kBAAmB,SAAQ,yCAAmB;IAC/C,gBAAgB,CAAC,KAAkB,EAAE,SAAoB;QACjE,4EAA4E;QAC5E,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;YACpD,SAAS,CAAC,GAAG,IAAI,yCAAmB,CAAC,KAAK,CAAA;YAC1C,SAAS,CAAC,GAAG,IAAI,yCAAmB,CAAC,KAAK,CAAA;YAC1C,SAAS,CAAC,GAAG,IAAI,yCAAmB,CAAC,KAAK,CAAA;YAC1C,SAAS,CAAC,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAChE,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,GAAG,IAAI,yCAAmB,CAAC,KAAK,CAAA;YAC1C,SAAS,CAAC,GAAG,IAAI,yCAAmB,CAAC,MAAM,CAAA;YAC3C,SAAS,CAAC,GAAG,IAAI,yCAAmB,CAAC,KAAK,CAAA;YAC1C,SAAS,CAAC,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAA;QACpC,CAAC;IACH,CAAC;CACF;AAjBD,gDAiBC"}
@@ -0,0 +1,3 @@
1
+ export * from './SqliteConnection';
2
+ export * from './SqliteDataSource';
3
+ export * from './SqliteQueryBuilder';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./SqliteConnection"), exports);
18
+ __exportStar(require("./SqliteDataSource"), exports);
19
+ __exportStar(require("./SqliteQueryBuilder"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/database/sources/sqlite/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAkC;AAClC,qDAAkC;AAClC,uDAAoC"}
@@ -0,0 +1,76 @@
1
+ import { DataSource } from '../database/DataSource';
2
+ import { Field } from '../database/query';
3
+ import { Condition, ConditionGroup } from '../database/query/conditions';
4
+ import { OrderByDirection } from '../database/query/features/HasOrderByFields';
5
+ import { CastType } from './CastType';
6
+ import { EntityQuery } from './EntityQuery';
7
+ import { Relationship } from './Relationship';
8
+ /** A concrete entity class: constructible and carrying the BaseEntity statics. */
9
+ export type EntityClass<T extends BaseEntity = BaseEntity> = typeof BaseEntity & (new () => T);
10
+ /**
11
+ * Abstract Active Record base class. Entities extend BaseEntity and are
12
+ * decorated with @Entity/@Column — the decorators fill in the static metadata,
13
+ * and BaseEntity provides every static query method (find, where, with, …)
14
+ * plus the save() and delete() instance methods.
15
+ */
16
+ export declare abstract class BaseEntity {
17
+ /** Database table name. */
18
+ static table: string;
19
+ /** Primary key column name. */
20
+ static primaryKey: string;
21
+ /** Entity property names registered with @Column. */
22
+ static fields: string[];
23
+ /** Property name → database column name. */
24
+ static columnsMap: Record<string, string>;
25
+ /** Properties whose values are generated by the database. */
26
+ static autoGeneratedFields: string[];
27
+ /** Property name → cast type. */
28
+ static casts: Record<string, CastType>;
29
+ /** Relationship name → relationship definition. */
30
+ static relationships: Record<string, Relationship>;
31
+ /** Registered DataSource name. When null, the entity operates directly on DB. */
32
+ static source: string | null;
33
+ static getSource(): DataSource;
34
+ /** Creates a new EntityQuery for this entity. */
35
+ static query<T extends BaseEntity>(this: EntityClass<T>): EntityQuery<T>;
36
+ /** Hydrates a database row into an entity instance (applying casts). */
37
+ static fromRow<T extends BaseEntity>(this: EntityClass<T>, row: Record<string, any>): T;
38
+ static find<T extends BaseEntity>(this: EntityClass<T>, id: any): Promise<T | null>;
39
+ static get<T extends BaseEntity>(this: EntityClass<T>): Promise<T[]>;
40
+ static first<T extends BaseEntity>(this: EntityClass<T>): Promise<T | null>;
41
+ static where<T extends BaseEntity>(this: EntityClass<T>, callback: (group: ConditionGroup) => void): EntityQuery<T>;
42
+ static where<T extends BaseEntity>(this: EntityClass<T>, condition: Condition): EntityQuery<T>;
43
+ static where<T extends BaseEntity>(this: EntityClass<T>, field: Field, value: any): EntityQuery<T>;
44
+ static where<T extends BaseEntity>(this: EntityClass<T>, field: Field, operator: string, value: any): EntityQuery<T>;
45
+ static whereIn<T extends BaseEntity>(this: EntityClass<T>, field: Field, values: any[]): EntityQuery<T>;
46
+ static whereNotIn<T extends BaseEntity>(this: EntityClass<T>, field: Field, values: any[]): EntityQuery<T>;
47
+ static whereBetween<T extends BaseEntity>(this: EntityClass<T>, field: Field, range: [any, any]): EntityQuery<T>;
48
+ static whereNotBetween<T extends BaseEntity>(this: EntityClass<T>, field: Field, range: [any, any]): EntityQuery<T>;
49
+ static whereNull<T extends BaseEntity>(this: EntityClass<T>, field: Field): EntityQuery<T>;
50
+ static whereNotNull<T extends BaseEntity>(this: EntityClass<T>, field: Field): EntityQuery<T>;
51
+ static whereLike<T extends BaseEntity>(this: EntityClass<T>, field: Field, pattern: string): EntityQuery<T>;
52
+ static whereNotLike<T extends BaseEntity>(this: EntityClass<T>, field: Field, pattern: string): EntityQuery<T>;
53
+ static whereColumn<T extends BaseEntity>(this: EntityClass<T>, field: Field, column: Field): EntityQuery<T>;
54
+ static whereColumn<T extends BaseEntity>(this: EntityClass<T>, field: Field, operator: string, column: Field): EntityQuery<T>;
55
+ static orderBy<T extends BaseEntity>(this: EntityClass<T>, field: Field, direction?: OrderByDirection): EntityQuery<T>;
56
+ static limit<T extends BaseEntity>(this: EntityClass<T>, value: number): EntityQuery<T>;
57
+ static offset<T extends BaseEntity>(this: EntityClass<T>, value: number): EntityQuery<T>;
58
+ static select<T extends BaseEntity>(this: EntityClass<T>, ...fields: (Field | Field[])[]): EntityQuery<T>;
59
+ static with<T extends BaseEntity>(this: EntityClass<T>, relations: string | string[], ...rest: string[]): EntityQuery<T>;
60
+ static joinRelationship<T extends BaseEntity>(this: EntityClass<T>, relationName: string): EntityQuery<T>;
61
+ static innerJoinRelationship<T extends BaseEntity>(this: EntityClass<T>, relationName: string): EntityQuery<T>;
62
+ static leftJoinRelationship<T extends BaseEntity>(this: EntityClass<T>, relationName: string): EntityQuery<T>;
63
+ /**
64
+ * Persists the entity to the database.
65
+ * - If the primary key is set → UPDATE (auto-generated columns are excluded from SET).
66
+ * - If the primary key is null/undefined → INSERT (auto-generated columns are excluded;
67
+ * the generated PK is written back to the instance).
68
+ */
69
+ save(): Promise<void>;
70
+ /**
71
+ * Deletes the entity from the database by its primary key.
72
+ * Throws if the primary key is not set.
73
+ */
74
+ delete(): Promise<void>;
75
+ toJSON(): Record<string, any>;
76
+ }