@warlock.js/cascade 4.0.92 → 4.0.93

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 (269) hide show
  1. package/cjs/contracts/database-driver.contract.d.ts +118 -0
  2. package/cjs/contracts/database-driver.contract.d.ts.map +1 -1
  3. package/cjs/contracts/migration-driver.contract.d.ts +14 -0
  4. package/cjs/contracts/migration-driver.contract.d.ts.map +1 -1
  5. package/cjs/contracts/query-builder.contract.d.ts +410 -1
  6. package/cjs/contracts/query-builder.contract.d.ts.map +1 -1
  7. package/cjs/data-source/data-source-registry.d.ts +4 -0
  8. package/cjs/data-source/data-source-registry.d.ts.map +1 -1
  9. package/cjs/data-source/data-source-registry.js +7 -0
  10. package/cjs/data-source/data-source-registry.js.map +1 -1
  11. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts.map +1 -0
  12. package/cjs/drivers/mongodb/mongodb-blueprint.js.map +1 -0
  13. package/{esm/drivers/mongo → cjs/drivers/mongodb}/mongodb-driver.d.ts +49 -0
  14. package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +1 -0
  15. package/cjs/drivers/{mongo → mongodb}/mongodb-driver.js +125 -8
  16. package/cjs/drivers/mongodb/mongodb-driver.js.map +1 -0
  17. package/cjs/drivers/{mongo/mongo-id-generator.d.ts → mongodb/mongodb-id-generator.d.ts} +1 -1
  18. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts.map +1 -0
  19. package/cjs/drivers/{mongo/mongo-id-generator.js → mongodb/mongodb-id-generator.js} +1 -1
  20. package/cjs/drivers/mongodb/mongodb-id-generator.js.map +1 -0
  21. package/cjs/drivers/{mongo/mongo-migration-driver.d.ts → mongodb/mongodb-migration-driver.d.ts} +10 -1
  22. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -0
  23. package/cjs/drivers/{mongo/mongo-migration-driver.js → mongodb/mongodb-migration-driver.js} +18 -1
  24. package/cjs/drivers/mongodb/mongodb-migration-driver.js.map +1 -0
  25. package/cjs/drivers/{mongo/mongo-query-builder.d.ts → mongodb/mongodb-query-builder.d.ts} +172 -4
  26. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -0
  27. package/cjs/drivers/{mongo/mongo-query-builder.js → mongodb/mongodb-query-builder.js} +220 -14
  28. package/cjs/drivers/mongodb/mongodb-query-builder.js.map +1 -0
  29. package/{esm/drivers/mongo/mongo-query-operations.d.ts → cjs/drivers/mongodb/mongodb-query-operations.d.ts} +16 -16
  30. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts.map +1 -0
  31. package/cjs/drivers/{mongo/mongo-query-operations.js → mongodb/mongodb-query-operations.js} +22 -22
  32. package/cjs/drivers/mongodb/mongodb-query-operations.js.map +1 -0
  33. package/cjs/drivers/{mongo/mongo-query-parser.d.ts → mongodb/mongodb-query-parser.d.ts} +2 -2
  34. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts.map +1 -0
  35. package/cjs/drivers/{mongo/mongo-query-parser.js → mongodb/mongodb-query-parser.js} +87 -87
  36. package/cjs/drivers/mongodb/mongodb-query-parser.js.map +1 -0
  37. package/cjs/drivers/{mongo/mongo-sync-adapter.d.ts → mongodb/mongodb-sync-adapter.d.ts} +2 -2
  38. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts.map +1 -0
  39. package/cjs/drivers/{mongo/mongo-sync-adapter.js → mongodb/mongodb-sync-adapter.js} +2 -2
  40. package/cjs/drivers/mongodb/mongodb-sync-adapter.js.map +1 -0
  41. package/{esm/drivers/mongo → cjs/drivers/mongodb}/types.d.ts +2 -2
  42. package/cjs/drivers/mongodb/types.d.ts.map +1 -0
  43. package/cjs/drivers/postgres/index.d.ts +16 -0
  44. package/cjs/drivers/postgres/index.d.ts.map +1 -0
  45. package/cjs/drivers/postgres/postgres-blueprint.d.ts +64 -0
  46. package/cjs/drivers/postgres/postgres-blueprint.d.ts.map +1 -0
  47. package/cjs/drivers/postgres/postgres-blueprint.js +121 -0
  48. package/cjs/drivers/postgres/postgres-blueprint.js.map +1 -0
  49. package/cjs/drivers/postgres/postgres-dialect.d.ts +135 -0
  50. package/cjs/drivers/postgres/postgres-dialect.d.ts.map +1 -0
  51. package/cjs/drivers/postgres/postgres-dialect.js +245 -0
  52. package/cjs/drivers/postgres/postgres-dialect.js.map +1 -0
  53. package/cjs/drivers/postgres/postgres-driver.d.ts +360 -0
  54. package/cjs/drivers/postgres/postgres-driver.d.ts.map +1 -0
  55. package/cjs/drivers/postgres/postgres-driver.js +763 -0
  56. package/cjs/drivers/postgres/postgres-driver.js.map +1 -0
  57. package/cjs/drivers/postgres/postgres-migration-driver.d.ts +297 -0
  58. package/cjs/drivers/postgres/postgres-migration-driver.d.ts.map +1 -0
  59. package/cjs/drivers/postgres/postgres-migration-driver.js +578 -0
  60. package/cjs/drivers/postgres/postgres-migration-driver.js.map +1 -0
  61. package/cjs/drivers/postgres/postgres-query-builder.d.ts +824 -0
  62. package/cjs/drivers/postgres/postgres-query-builder.d.ts.map +1 -0
  63. package/cjs/drivers/postgres/postgres-query-builder.js +1800 -0
  64. package/cjs/drivers/postgres/postgres-query-builder.js.map +1 -0
  65. package/cjs/drivers/postgres/postgres-query-parser.d.ts +308 -0
  66. package/cjs/drivers/postgres/postgres-query-parser.d.ts.map +1 -0
  67. package/cjs/drivers/postgres/postgres-query-parser.js +706 -0
  68. package/cjs/drivers/postgres/postgres-query-parser.js.map +1 -0
  69. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts +83 -0
  70. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts.map +1 -0
  71. package/cjs/drivers/postgres/postgres-sync-adapter.js +197 -0
  72. package/cjs/drivers/postgres/postgres-sync-adapter.js.map +1 -0
  73. package/cjs/drivers/postgres/types.d.ts +142 -0
  74. package/cjs/drivers/postgres/types.d.ts.map +1 -0
  75. package/cjs/drivers/sql/index.d.ts +10 -0
  76. package/cjs/drivers/sql/index.d.ts.map +1 -0
  77. package/cjs/drivers/sql/sql-dialect.contract.d.ts +203 -0
  78. package/cjs/drivers/sql/sql-dialect.contract.d.ts.map +1 -0
  79. package/cjs/drivers/sql/sql-types.d.ts +202 -0
  80. package/cjs/drivers/sql/sql-types.d.ts.map +1 -0
  81. package/cjs/index.d.ts +9 -6
  82. package/cjs/index.d.ts.map +1 -1
  83. package/cjs/index.js +1 -1
  84. package/cjs/migration/migration-runner.d.ts.map +1 -1
  85. package/cjs/migration/migration-runner.js +3 -0
  86. package/cjs/migration/migration-runner.js.map +1 -1
  87. package/cjs/model/model.d.ts +236 -1
  88. package/cjs/model/model.d.ts.map +1 -1
  89. package/cjs/model/model.js +203 -4
  90. package/cjs/model/model.js.map +1 -1
  91. package/cjs/relations/helpers.d.ts +156 -0
  92. package/cjs/relations/helpers.d.ts.map +1 -0
  93. package/cjs/relations/helpers.js +197 -0
  94. package/cjs/relations/helpers.js.map +1 -0
  95. package/cjs/relations/index.d.ts +33 -0
  96. package/cjs/relations/index.d.ts.map +1 -0
  97. package/cjs/relations/pivot-operations.d.ts +160 -0
  98. package/cjs/relations/pivot-operations.d.ts.map +1 -0
  99. package/cjs/relations/pivot-operations.js +293 -0
  100. package/cjs/relations/pivot-operations.js.map +1 -0
  101. package/cjs/relations/relation-loader.d.ts +194 -0
  102. package/cjs/relations/relation-loader.d.ts.map +1 -0
  103. package/cjs/relations/relation-loader.js +466 -0
  104. package/cjs/relations/relation-loader.js.map +1 -0
  105. package/cjs/relations/types.d.ts +280 -0
  106. package/cjs/relations/types.d.ts.map +1 -0
  107. package/cjs/sync/model-sync-operation.js +1 -1
  108. package/cjs/sync/model-sync-operation.js.map +1 -1
  109. package/cjs/utils/connect-to-database.d.ts.map +1 -1
  110. package/cjs/utils/connect-to-database.js +15 -3
  111. package/cjs/utils/connect-to-database.js.map +1 -1
  112. package/cjs/utils/define-model.d.ts +51 -29
  113. package/cjs/utils/define-model.d.ts.map +1 -1
  114. package/cjs/validation/rules/database-model-rule.js +1 -1
  115. package/cjs/validation/rules/database-model-rule.js.map +1 -1
  116. package/esm/contracts/database-driver.contract.d.ts +118 -0
  117. package/esm/contracts/database-driver.contract.d.ts.map +1 -1
  118. package/esm/contracts/migration-driver.contract.d.ts +14 -0
  119. package/esm/contracts/migration-driver.contract.d.ts.map +1 -1
  120. package/esm/contracts/query-builder.contract.d.ts +410 -1
  121. package/esm/contracts/query-builder.contract.d.ts.map +1 -1
  122. package/esm/data-source/data-source-registry.d.ts +4 -0
  123. package/esm/data-source/data-source-registry.d.ts.map +1 -1
  124. package/esm/data-source/data-source-registry.js +7 -0
  125. package/esm/data-source/data-source-registry.js.map +1 -1
  126. package/esm/drivers/mongodb/mongodb-blueprint.d.ts.map +1 -0
  127. package/esm/drivers/mongodb/mongodb-blueprint.js.map +1 -0
  128. package/{cjs/drivers/mongo → esm/drivers/mongodb}/mongodb-driver.d.ts +49 -0
  129. package/esm/drivers/mongodb/mongodb-driver.d.ts.map +1 -0
  130. package/esm/drivers/{mongo → mongodb}/mongodb-driver.js +121 -4
  131. package/esm/drivers/mongodb/mongodb-driver.js.map +1 -0
  132. package/esm/drivers/{mongo/mongo-id-generator.d.ts → mongodb/mongodb-id-generator.d.ts} +1 -1
  133. package/esm/drivers/mongodb/mongodb-id-generator.d.ts.map +1 -0
  134. package/esm/drivers/{mongo/mongo-id-generator.js → mongodb/mongodb-id-generator.js} +1 -1
  135. package/esm/drivers/mongodb/mongodb-id-generator.js.map +1 -0
  136. package/esm/drivers/{mongo/mongo-migration-driver.d.ts → mongodb/mongodb-migration-driver.d.ts} +10 -1
  137. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -0
  138. package/esm/drivers/{mongo/mongo-migration-driver.js → mongodb/mongodb-migration-driver.js} +18 -1
  139. package/esm/drivers/mongodb/mongodb-migration-driver.js.map +1 -0
  140. package/esm/drivers/{mongo/mongo-query-builder.d.ts → mongodb/mongodb-query-builder.d.ts} +172 -4
  141. package/esm/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -0
  142. package/esm/drivers/{mongo/mongo-query-builder.js → mongodb/mongodb-query-builder.js} +218 -12
  143. package/esm/drivers/mongodb/mongodb-query-builder.js.map +1 -0
  144. package/{cjs/drivers/mongo/mongo-query-operations.d.ts → esm/drivers/mongodb/mongodb-query-operations.d.ts} +16 -16
  145. package/esm/drivers/mongodb/mongodb-query-operations.d.ts.map +1 -0
  146. package/esm/drivers/{mongo/mongo-query-operations.js → mongodb/mongodb-query-operations.js} +22 -22
  147. package/esm/drivers/mongodb/mongodb-query-operations.js.map +1 -0
  148. package/esm/drivers/{mongo/mongo-query-parser.d.ts → mongodb/mongodb-query-parser.d.ts} +2 -2
  149. package/esm/drivers/mongodb/mongodb-query-parser.d.ts.map +1 -0
  150. package/esm/drivers/{mongo/mongo-query-parser.js → mongodb/mongodb-query-parser.js} +87 -87
  151. package/esm/drivers/mongodb/mongodb-query-parser.js.map +1 -0
  152. package/esm/drivers/{mongo/mongo-sync-adapter.d.ts → mongodb/mongodb-sync-adapter.d.ts} +2 -2
  153. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts.map +1 -0
  154. package/esm/drivers/{mongo/mongo-sync-adapter.js → mongodb/mongodb-sync-adapter.js} +2 -2
  155. package/esm/drivers/mongodb/mongodb-sync-adapter.js.map +1 -0
  156. package/{cjs/drivers/mongo → esm/drivers/mongodb}/types.d.ts +2 -2
  157. package/esm/drivers/mongodb/types.d.ts.map +1 -0
  158. package/esm/drivers/postgres/index.d.ts +16 -0
  159. package/esm/drivers/postgres/index.d.ts.map +1 -0
  160. package/esm/drivers/postgres/postgres-blueprint.d.ts +64 -0
  161. package/esm/drivers/postgres/postgres-blueprint.d.ts.map +1 -0
  162. package/esm/drivers/postgres/postgres-blueprint.js +121 -0
  163. package/esm/drivers/postgres/postgres-blueprint.js.map +1 -0
  164. package/esm/drivers/postgres/postgres-dialect.d.ts +135 -0
  165. package/esm/drivers/postgres/postgres-dialect.d.ts.map +1 -0
  166. package/esm/drivers/postgres/postgres-dialect.js +245 -0
  167. package/esm/drivers/postgres/postgres-dialect.js.map +1 -0
  168. package/esm/drivers/postgres/postgres-driver.d.ts +360 -0
  169. package/esm/drivers/postgres/postgres-driver.d.ts.map +1 -0
  170. package/esm/drivers/postgres/postgres-driver.js +763 -0
  171. package/esm/drivers/postgres/postgres-driver.js.map +1 -0
  172. package/esm/drivers/postgres/postgres-migration-driver.d.ts +297 -0
  173. package/esm/drivers/postgres/postgres-migration-driver.d.ts.map +1 -0
  174. package/esm/drivers/postgres/postgres-migration-driver.js +578 -0
  175. package/esm/drivers/postgres/postgres-migration-driver.js.map +1 -0
  176. package/esm/drivers/postgres/postgres-query-builder.d.ts +824 -0
  177. package/esm/drivers/postgres/postgres-query-builder.d.ts.map +1 -0
  178. package/esm/drivers/postgres/postgres-query-builder.js +1800 -0
  179. package/esm/drivers/postgres/postgres-query-builder.js.map +1 -0
  180. package/esm/drivers/postgres/postgres-query-parser.d.ts +308 -0
  181. package/esm/drivers/postgres/postgres-query-parser.d.ts.map +1 -0
  182. package/esm/drivers/postgres/postgres-query-parser.js +706 -0
  183. package/esm/drivers/postgres/postgres-query-parser.js.map +1 -0
  184. package/esm/drivers/postgres/postgres-sync-adapter.d.ts +83 -0
  185. package/esm/drivers/postgres/postgres-sync-adapter.d.ts.map +1 -0
  186. package/esm/drivers/postgres/postgres-sync-adapter.js +197 -0
  187. package/esm/drivers/postgres/postgres-sync-adapter.js.map +1 -0
  188. package/esm/drivers/postgres/types.d.ts +142 -0
  189. package/esm/drivers/postgres/types.d.ts.map +1 -0
  190. package/esm/drivers/sql/index.d.ts +10 -0
  191. package/esm/drivers/sql/index.d.ts.map +1 -0
  192. package/esm/drivers/sql/sql-dialect.contract.d.ts +203 -0
  193. package/esm/drivers/sql/sql-dialect.contract.d.ts.map +1 -0
  194. package/esm/drivers/sql/sql-types.d.ts +202 -0
  195. package/esm/drivers/sql/sql-types.d.ts.map +1 -0
  196. package/esm/index.d.ts +9 -6
  197. package/esm/index.d.ts.map +1 -1
  198. package/esm/index.js +1 -1
  199. package/esm/migration/migration-runner.d.ts.map +1 -1
  200. package/esm/migration/migration-runner.js +3 -0
  201. package/esm/migration/migration-runner.js.map +1 -1
  202. package/esm/model/model.d.ts +236 -1
  203. package/esm/model/model.d.ts.map +1 -1
  204. package/esm/model/model.js +203 -4
  205. package/esm/model/model.js.map +1 -1
  206. package/esm/relations/helpers.d.ts +156 -0
  207. package/esm/relations/helpers.d.ts.map +1 -0
  208. package/esm/relations/helpers.js +197 -0
  209. package/esm/relations/helpers.js.map +1 -0
  210. package/esm/relations/index.d.ts +33 -0
  211. package/esm/relations/index.d.ts.map +1 -0
  212. package/esm/relations/pivot-operations.d.ts +160 -0
  213. package/esm/relations/pivot-operations.d.ts.map +1 -0
  214. package/esm/relations/pivot-operations.js +293 -0
  215. package/esm/relations/pivot-operations.js.map +1 -0
  216. package/esm/relations/relation-loader.d.ts +194 -0
  217. package/esm/relations/relation-loader.d.ts.map +1 -0
  218. package/esm/relations/relation-loader.js +466 -0
  219. package/esm/relations/relation-loader.js.map +1 -0
  220. package/esm/relations/types.d.ts +280 -0
  221. package/esm/relations/types.d.ts.map +1 -0
  222. package/esm/sync/model-sync-operation.js +1 -1
  223. package/esm/sync/model-sync-operation.js.map +1 -1
  224. package/esm/utils/connect-to-database.d.ts.map +1 -1
  225. package/esm/utils/connect-to-database.js +15 -3
  226. package/esm/utils/connect-to-database.js.map +1 -1
  227. package/esm/utils/define-model.d.ts +51 -29
  228. package/esm/utils/define-model.d.ts.map +1 -1
  229. package/esm/validation/rules/database-model-rule.js +1 -1
  230. package/esm/validation/rules/database-model-rule.js.map +1 -1
  231. package/package.json +4 -4
  232. package/cjs/drivers/mongo/mongo-id-generator.d.ts.map +0 -1
  233. package/cjs/drivers/mongo/mongo-id-generator.js.map +0 -1
  234. package/cjs/drivers/mongo/mongo-migration-driver.d.ts.map +0 -1
  235. package/cjs/drivers/mongo/mongo-migration-driver.js.map +0 -1
  236. package/cjs/drivers/mongo/mongo-query-builder.d.ts.map +0 -1
  237. package/cjs/drivers/mongo/mongo-query-builder.js.map +0 -1
  238. package/cjs/drivers/mongo/mongo-query-operations.d.ts.map +0 -1
  239. package/cjs/drivers/mongo/mongo-query-operations.js.map +0 -1
  240. package/cjs/drivers/mongo/mongo-query-parser.d.ts.map +0 -1
  241. package/cjs/drivers/mongo/mongo-query-parser.js.map +0 -1
  242. package/cjs/drivers/mongo/mongo-sync-adapter.d.ts.map +0 -1
  243. package/cjs/drivers/mongo/mongo-sync-adapter.js.map +0 -1
  244. package/cjs/drivers/mongo/mongodb-blueprint.d.ts.map +0 -1
  245. package/cjs/drivers/mongo/mongodb-blueprint.js.map +0 -1
  246. package/cjs/drivers/mongo/mongodb-driver.d.ts.map +0 -1
  247. package/cjs/drivers/mongo/mongodb-driver.js.map +0 -1
  248. package/cjs/drivers/mongo/types.d.ts.map +0 -1
  249. package/esm/drivers/mongo/mongo-id-generator.d.ts.map +0 -1
  250. package/esm/drivers/mongo/mongo-id-generator.js.map +0 -1
  251. package/esm/drivers/mongo/mongo-migration-driver.d.ts.map +0 -1
  252. package/esm/drivers/mongo/mongo-migration-driver.js.map +0 -1
  253. package/esm/drivers/mongo/mongo-query-builder.d.ts.map +0 -1
  254. package/esm/drivers/mongo/mongo-query-builder.js.map +0 -1
  255. package/esm/drivers/mongo/mongo-query-operations.d.ts.map +0 -1
  256. package/esm/drivers/mongo/mongo-query-operations.js.map +0 -1
  257. package/esm/drivers/mongo/mongo-query-parser.d.ts.map +0 -1
  258. package/esm/drivers/mongo/mongo-query-parser.js.map +0 -1
  259. package/esm/drivers/mongo/mongo-sync-adapter.d.ts.map +0 -1
  260. package/esm/drivers/mongo/mongo-sync-adapter.js.map +0 -1
  261. package/esm/drivers/mongo/mongodb-blueprint.d.ts.map +0 -1
  262. package/esm/drivers/mongo/mongodb-blueprint.js.map +0 -1
  263. package/esm/drivers/mongo/mongodb-driver.d.ts.map +0 -1
  264. package/esm/drivers/mongo/mongodb-driver.js.map +0 -1
  265. package/esm/drivers/mongo/types.d.ts.map +0 -1
  266. /package/cjs/drivers/{mongo → mongodb}/mongodb-blueprint.d.ts +0 -0
  267. /package/cjs/drivers/{mongo → mongodb}/mongodb-blueprint.js +0 -0
  268. /package/esm/drivers/{mongo → mongodb}/mongodb-blueprint.d.ts +0 -0
  269. /package/esm/drivers/{mongo → mongodb}/mongodb-blueprint.js +0 -0
@@ -0,0 +1,360 @@
1
+ /**
2
+ * PostgreSQL Driver
3
+ *
4
+ * Main driver implementation for PostgreSQL database operations.
5
+ * Implements the DriverContract interface to provide a unified API
6
+ * for CRUD operations, transactions, and query building.
7
+ *
8
+ * Uses the `pg` package for database connectivity with connection pooling.
9
+ *
10
+ * @module cascade/drivers/postgres
11
+ */
12
+ import type { CreateDatabaseOptions, DriverContract, DriverEventListener, DriverTransactionContract, DropDatabaseOptions, InsertResult, UpdateOperations, UpdateResult } from "../../contracts/database-driver.contract";
13
+ import type { DriverBlueprintContract } from "../../contracts/driver-blueprint.contract";
14
+ import type { MigrationDriverContract } from "../../contracts/migration-driver.contract";
15
+ import type { QueryBuilderContract } from "../../contracts/query-builder.contract";
16
+ import type { SyncAdapterContract } from "../../contracts/sync-adapter.contract";
17
+ import { PostgresDialect } from "./postgres-dialect";
18
+ import type { PostgresPoolConfig, PostgresQueryResult, PostgresTransactionOptions } from "./types";
19
+ /**
20
+ * Lazily loaded pg module types.
21
+ */
22
+ type PgPool = import("pg").Pool;
23
+ type PgPoolClient = import("pg").PoolClient;
24
+ /**
25
+ * PostgreSQL database driver implementing the Cascade DriverContract.
26
+ *
27
+ * Provides connection pooling, CRUD operations, transactions, and
28
+ * integration with Cascade's query builder and migration systems.
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * const driver = new PostgresDriver({
33
+ * host: 'localhost',
34
+ * port: 5432,
35
+ * database: 'myapp',
36
+ * user: 'postgres',
37
+ * password: 'secret'
38
+ * });
39
+ *
40
+ * await driver.connect();
41
+ *
42
+ * // Insert a document
43
+ * const result = await driver.insert('users', { name: 'Alice', email: 'alice@example.com' });
44
+ *
45
+ * // Query using the query builder
46
+ * const users = await driver.queryBuilder('users')
47
+ * .where('name', 'Alice')
48
+ * .get();
49
+ *
50
+ * await driver.disconnect();
51
+ * ```
52
+ */
53
+ export declare class PostgresDriver implements DriverContract {
54
+ private readonly config;
55
+ /**
56
+ * Driver name identifier.
57
+ */
58
+ readonly name: "postgres";
59
+ /**
60
+ * SQL dialect for PostgreSQL-specific syntax.
61
+ */
62
+ readonly dialect: PostgresDialect;
63
+ /**
64
+ * Connection pool instance.
65
+ */
66
+ private _pool;
67
+ /**
68
+ * Event listeners for driver lifecycle events.
69
+ */
70
+ private readonly _eventListeners;
71
+ /**
72
+ * Whether the driver is currently connected.
73
+ */
74
+ private _isConnected;
75
+ /**
76
+ * Blueprint instance (lazy-loaded).
77
+ */
78
+ private _blueprint;
79
+ /**
80
+ * Migration driver instance (lazy-loaded).
81
+ */
82
+ private _migrationDriver;
83
+ /**
84
+ * Sync adapter instance (lazy-loaded).
85
+ */
86
+ private _syncAdapter;
87
+ /**
88
+ * Create a new PostgreSQL driver instance.
89
+ *
90
+ * @param config - PostgreSQL connection configuration
91
+ */
92
+ constructor(config: PostgresPoolConfig);
93
+ /**
94
+ * Get the connection pool instance.
95
+ *
96
+ * @throws Error if not connected
97
+ */
98
+ get pool(): PgPool;
99
+ /**
100
+ * Check if the driver is currently connected.
101
+ */
102
+ get isConnected(): boolean;
103
+ /**
104
+ * Get the driver blueprint (information schema).
105
+ */
106
+ get blueprint(): DriverBlueprintContract;
107
+ /**
108
+ * Establish connection to the PostgreSQL database.
109
+ *
110
+ * Creates a connection pool with the configured options.
111
+ * Emits 'connected' event on successful connection.
112
+ */
113
+ connect(): Promise<void>;
114
+ /**
115
+ * Close the database connection pool.
116
+ *
117
+ * Waits for all active queries to complete before closing.
118
+ * Emits 'disconnected' event on successful disconnection.
119
+ */
120
+ disconnect(): Promise<void>;
121
+ /**
122
+ * Register an event listener for driver lifecycle events.
123
+ *
124
+ * @param event - Event name ('connected', 'disconnected', etc.)
125
+ * @param listener - Callback function to invoke
126
+ */
127
+ on(event: string, listener: DriverEventListener): void;
128
+ /**
129
+ * Serialize data for storage in PostgreSQL.
130
+ *
131
+ * Handles Date objects, BigInt, and other JavaScript types
132
+ * that need special handling for PostgreSQL storage.
133
+ *
134
+ * @param data - The data object to serialize
135
+ * @returns Serialized data ready for PostgreSQL
136
+ */
137
+ serialize(data: Record<string, unknown>): Record<string, unknown>;
138
+ /**
139
+ * Deserialize data retrieved from PostgreSQL.
140
+ *
141
+ * Converts PostgreSQL types back to JavaScript equivalents.
142
+ *
143
+ * @param data - The data object from PostgreSQL
144
+ * @returns Deserialized JavaScript object
145
+ */
146
+ deserialize(data: Record<string, unknown>): Record<string, unknown>;
147
+ /**
148
+ * Insert a single row into a table.
149
+ *
150
+ * Uses INSERT ... RETURNING to get the inserted row with generated values.
151
+ *
152
+ * @param table - Target table name
153
+ * @param document - Data to insert
154
+ * @param options - Optional insertion options
155
+ * @returns The inserted document
156
+ */
157
+ insert(table: string, document: Record<string, unknown>, _options?: Record<string, unknown>): Promise<InsertResult>;
158
+ /**
159
+ * Insert multiple rows into a table.
160
+ *
161
+ * Uses a single INSERT statement with multiple value sets for efficiency.
162
+ *
163
+ * @param table - Target table name
164
+ * @param documents - Array of documents to insert
165
+ * @param options - Optional insertion options
166
+ * @returns Array of inserted documents
167
+ */
168
+ insertMany(table: string, documents: Record<string, unknown>[], _options?: Record<string, unknown>): Promise<InsertResult[]>;
169
+ /**
170
+ * Update a single row matching the filter.
171
+ *
172
+ * @param table - Target table name
173
+ * @param filter - Filter conditions
174
+ * @param update - Update operations ($set, $unset, $inc)
175
+ * @param options - Optional update options
176
+ * @returns Update result with modified count
177
+ */
178
+ update(table: string, filter: Record<string, unknown>, update: UpdateOperations, _options?: Record<string, unknown>): Promise<UpdateResult>;
179
+ /**
180
+ * Update multiple rows matching the filter.
181
+ *
182
+ * @param table - Target table name
183
+ * @param filter - Filter conditions
184
+ * @param update - Update operations
185
+ * @param options - Optional update options
186
+ * @returns Update result with modified count
187
+ */
188
+ updateMany(table: string, filter: Record<string, unknown>, update: UpdateOperations, _options?: Record<string, unknown>): Promise<UpdateResult>;
189
+ /**
190
+ * Replace a document matching the filter.
191
+ *
192
+ * Completely replaces the document (not a partial update).
193
+ *
194
+ * @param table - Target table name
195
+ * @param filter - Filter conditions
196
+ * @param document - New document data
197
+ * @param options - Optional options
198
+ * @returns The replaced document or null
199
+ */
200
+ replace<T = unknown>(table: string, filter: Record<string, unknown>, document: Record<string, unknown>, _options?: Record<string, unknown>): Promise<T | null>;
201
+ /**
202
+ * Delete a single row matching the filter.
203
+ *
204
+ * @param table - Target table name
205
+ * @param filter - Filter conditions
206
+ * @param options - Optional options
207
+ * @returns Number of deleted rows (0 or 1)
208
+ */
209
+ delete(table: string, filter?: Record<string, unknown>, _options?: Record<string, unknown>): Promise<number>;
210
+ /**
211
+ * Delete multiple rows matching the filter.
212
+ *
213
+ * @param table - Target table name
214
+ * @param filter - Filter conditions
215
+ * @param options - Optional options
216
+ * @returns Number of deleted rows
217
+ */
218
+ deleteMany(table: string, filter?: Record<string, unknown>, _options?: Record<string, unknown>): Promise<number>;
219
+ /**
220
+ * Truncate a table (remove all rows).
221
+ *
222
+ * Uses TRUNCATE TABLE for fast deletion with RESTART IDENTITY.
223
+ *
224
+ * @param table - Target table name
225
+ * @param options - Optional options
226
+ * @returns Number of deleted rows (always 0 for TRUNCATE)
227
+ */
228
+ truncateTable(table: string, _options?: Record<string, unknown>): Promise<number>;
229
+ /**
230
+ * Get a query builder for the specified table.
231
+ *
232
+ * @param table - Target table name
233
+ * @returns Query builder instance
234
+ */
235
+ queryBuilder<T = unknown>(table: string): QueryBuilderContract<T>;
236
+ /**
237
+ * Begin a new database transaction.
238
+ *
239
+ * Acquires a client from the pool and starts a transaction.
240
+ * The client is stored in AsyncLocalStorage for automatic
241
+ * participation by subsequent queries.
242
+ *
243
+ * @param options - Optional transaction options
244
+ * @returns Transaction contract with commit/rollback methods
245
+ */
246
+ beginTransaction(options?: PostgresTransactionOptions): Promise<DriverTransactionContract<PgPoolClient>>;
247
+ /**
248
+ * Perform an atomic update operation.
249
+ *
250
+ * Uses PostgreSQL's row-level locking for atomicity.
251
+ *
252
+ * @param table - Target table name
253
+ * @param filter - Filter conditions
254
+ * @param operations - Update operations
255
+ * @param options - Optional options
256
+ * @returns Update result
257
+ */
258
+ atomic(table: string, filter: Record<string, unknown>, operations: UpdateOperations, _options?: Record<string, unknown>): Promise<UpdateResult>;
259
+ /**
260
+ * Get the sync adapter for bulk denormalized updates.
261
+ *
262
+ * @returns Sync adapter instance
263
+ */
264
+ syncAdapter(): SyncAdapterContract;
265
+ /**
266
+ * Get the migration driver for schema operations.
267
+ *
268
+ * @returns Migration driver instance
269
+ */
270
+ migrationDriver(): MigrationDriverContract;
271
+ /**
272
+ * Execute a raw SQL query.
273
+ *
274
+ * Automatically uses the transaction client if one is active.
275
+ *
276
+ * @param sql - SQL query string
277
+ * @param params - Query parameters
278
+ * @returns Query result
279
+ */
280
+ query<T = Record<string, unknown>>(sql: string, params?: unknown[]): Promise<PostgresQueryResult<T>>;
281
+ /**
282
+ * Emit an event to all registered listeners.
283
+ *
284
+ * @param event - Event name
285
+ * @param args - Event arguments
286
+ */
287
+ private emit;
288
+ /**
289
+ * Build a simple WHERE clause from a filter object.
290
+ *
291
+ * @param filter - Filter conditions
292
+ * @param startParamIndex - Starting parameter index
293
+ * @returns Object with WHERE clause string and parameters
294
+ */
295
+ private buildWhereClause;
296
+ /**
297
+ * Build an UPDATE query from update operations.
298
+ *
299
+ * @param table - Target table name
300
+ * @param filter - Filter conditions
301
+ * @param update - Update operations
302
+ * @param limit - Optional limit (for single row update)
303
+ * @returns Object with SQL and parameters
304
+ */
305
+ private buildUpdateQuery;
306
+ /**
307
+ * Create a new database.
308
+ *
309
+ * Note: This requires connecting to a system database (like 'postgres')
310
+ * since you cannot create a database while connected to it.
311
+ *
312
+ * @param name - Database name to create
313
+ * @param options - Creation options (encoding, template, etc.)
314
+ * @returns true if created, false if already exists
315
+ */
316
+ createDatabase(name: string, options?: CreateDatabaseOptions): Promise<boolean>;
317
+ /**
318
+ * Drop a database.
319
+ *
320
+ * @param name - Database name to drop
321
+ * @param options - Drop options
322
+ * @returns true if dropped, false if didn't exist
323
+ */
324
+ dropDatabase(name: string, options?: DropDatabaseOptions): Promise<boolean>;
325
+ /**
326
+ * Check if a database exists.
327
+ *
328
+ * @param name - Database name to check
329
+ * @returns true if database exists
330
+ */
331
+ databaseExists(name: string): Promise<boolean>;
332
+ /**
333
+ * List all databases.
334
+ *
335
+ * @returns Array of database names
336
+ */
337
+ listDatabases(): Promise<string[]>;
338
+ /**
339
+ * Drop a table.
340
+ *
341
+ * @param name - Table name to drop
342
+ * @throws Error if table doesn't exist
343
+ */
344
+ dropTable(name: string): Promise<void>;
345
+ /**
346
+ * Drop a table if it exists.
347
+ *
348
+ * @param name - Table name to drop
349
+ */
350
+ dropTableIfExists(name: string): Promise<void>;
351
+ /**
352
+ * Drop all tables in the current database.
353
+ *
354
+ * Uses CASCADE to handle foreign key dependencies.
355
+ * Useful for `migrate:fresh` command.
356
+ */
357
+ dropAllTables(): Promise<void>;
358
+ }
359
+ export {};
360
+ //# sourceMappingURL=postgres-driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-driver.d.ts","sourceRoot":"","sources":["../../../src/drivers/postgres/postgres-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACb,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAEnG;;GAEG;AACH,KAAK,MAAM,GAAG,OAAO,IAAI,EAAE,IAAI,CAAC;AAChC,KAAK,YAAY,GAAG,OAAO,IAAI,EAAE,UAAU,CAAC;AA6B5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,cAAe,YAAW,cAAc;IA8ChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IA7C1C;;OAEG;IACH,SAAgB,IAAI,aAAuB;IAE3C;;OAEG;IACH,SAAgB,OAAO,kBAAyB;IAEhD;;OAEG;IACH,OAAO,CAAC,KAAK,CAAqB;IAElC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+C;IAE/E;;OAEG;IACH,OAAO,CAAC,YAAY,CAAS;IAE7B;;OAEG;IACH,OAAO,CAAC,UAAU,CAAsC;IAExD;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAAsC;IAE9D;;OAEG;IACH,OAAO,CAAC,YAAY,CAAkC;IAEtD;;;;OAIG;gBACiC,MAAM,EAAE,kBAAkB;IAE9D;;;;OAIG;IACH,IAAW,IAAI,IAAI,MAAM,CAKxB;IAED;;OAEG;IACH,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,uBAAuB,CAK9C;IAED;;;;;OAKG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAiDrC;;;;;OAKG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWxC;;;;;OAKG;IACI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAO7D;;;;;;;;OAQG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAuBxE;;;;;;;OAOG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAM1E;;;;;;;;;OASG;IACU,MAAM,CACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,YAAY,CAAC;IAkCxB;;;;;;;;;OASG;IACU,UAAU,CACrB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACpC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,YAAY,EAAE,CAAC;IA8C1B;;;;;;;;OAQG;IACU,MAAM,CACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,gBAAgB,EACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,YAAY,CAAC;IAUxB;;;;;;;;OAQG;IACU,UAAU,CACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,gBAAgB,EACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,YAAY,CAAC;IAUxB;;;;;;;;;;OAUG;IACU,OAAO,CAAC,CAAC,GAAG,OAAO,EAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAoBpB;;;;;;;OAOG;IACU,MAAM,CACjB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,MAAM,CAAC;IAYlB;;;;;;;OAOG;IACU,UAAU,CACrB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,MAAM,CAAC;IAWlB;;;;;;;;OAQG;IACU,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAM9F;;;;;OAKG;IACI,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAIxE;;;;;;;;;OASG;IACU,gBAAgB,CAC3B,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;IA6BnD;;;;;;;;;;OAUG;IACU,MAAM,CACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,YAAY,CAAC;IAYxB;;;;OAIG;IACI,WAAW,IAAI,mBAAmB;IAOzC;;;;OAIG;IACI,eAAe,IAAI,uBAAuB;IAOjD;;;;;;;;OAQG;IACU,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5C,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,OAAO,EAAO,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAYlC;;;;;OAKG;IACH,OAAO,CAAC,IAAI;IASZ;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAuExB;;;;;;;;;OASG;IACU,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;IAwC5F;;;;;;OAMG;IACU,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IA8BxF;;;;;OAKG;IACU,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS3D;;;;OAIG;IACU,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAY/C;;;;;OAKG;IACU,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD;;;;OAIG;IACU,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D;;;;;OAKG;IACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAgB5C"}