exisjs 0.5.10 → 0.5.12

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 (191) hide show
  1. package/dist/auth/index.d.ts +3 -1
  2. package/dist/auth/index.d.ts.map +1 -1
  3. package/dist/auth/index.js +4 -1
  4. package/dist/auth/index.js.map +1 -1
  5. package/dist/auth/oauth/core.d.ts +96 -0
  6. package/dist/auth/oauth/core.d.ts.map +1 -0
  7. package/dist/auth/oauth/core.js +203 -0
  8. package/dist/auth/oauth/core.js.map +1 -0
  9. package/dist/auth/oauth/index.d.ts +45 -0
  10. package/dist/auth/oauth/index.d.ts.map +1 -0
  11. package/dist/auth/oauth/index.js +64 -0
  12. package/dist/auth/oauth/index.js.map +1 -0
  13. package/dist/auth/oauth/middleware.d.ts +63 -0
  14. package/dist/auth/oauth/middleware.d.ts.map +1 -0
  15. package/dist/auth/oauth/middleware.js +164 -0
  16. package/dist/auth/oauth/middleware.js.map +1 -0
  17. package/dist/auth/oauth/providers/custom.d.ts +41 -0
  18. package/dist/auth/oauth/providers/custom.d.ts.map +1 -0
  19. package/dist/auth/oauth/providers/custom.js +204 -0
  20. package/dist/auth/oauth/providers/custom.js.map +1 -0
  21. package/dist/auth/oauth/providers/discord.d.ts +23 -0
  22. package/dist/auth/oauth/providers/discord.d.ts.map +1 -0
  23. package/dist/auth/oauth/providers/discord.js +130 -0
  24. package/dist/auth/oauth/providers/discord.js.map +1 -0
  25. package/dist/auth/oauth/providers/facebook.d.ts +28 -0
  26. package/dist/auth/oauth/providers/facebook.d.ts.map +1 -0
  27. package/dist/auth/oauth/providers/facebook.js +124 -0
  28. package/dist/auth/oauth/providers/facebook.js.map +1 -0
  29. package/dist/auth/oauth/providers/github.d.ts +25 -0
  30. package/dist/auth/oauth/providers/github.d.ts.map +1 -0
  31. package/dist/auth/oauth/providers/github.js +132 -0
  32. package/dist/auth/oauth/providers/github.js.map +1 -0
  33. package/dist/auth/oauth/providers/google.d.ts +23 -0
  34. package/dist/auth/oauth/providers/google.d.ts.map +1 -0
  35. package/dist/auth/oauth/providers/google.js +134 -0
  36. package/dist/auth/oauth/providers/google.js.map +1 -0
  37. package/dist/auth/oauth/providers/microsoft.d.ts +28 -0
  38. package/dist/auth/oauth/providers/microsoft.d.ts.map +1 -0
  39. package/dist/auth/oauth/providers/microsoft.js +136 -0
  40. package/dist/auth/oauth/providers/microsoft.js.map +1 -0
  41. package/dist/auth/oauth/types.d.ts +158 -0
  42. package/dist/auth/oauth/types.d.ts.map +1 -0
  43. package/dist/auth/oauth/types.js +4 -0
  44. package/dist/auth/oauth/types.js.map +1 -0
  45. package/dist/cli/commands/dev.d.ts.map +1 -1
  46. package/dist/cli/commands/dev.js +0 -1
  47. package/dist/cli/commands/dev.js.map +1 -1
  48. package/dist/database/adapters/mongodb.d.ts +58 -0
  49. package/dist/database/adapters/mongodb.d.ts.map +1 -0
  50. package/dist/database/adapters/mongodb.js +264 -0
  51. package/dist/database/adapters/mongodb.js.map +1 -0
  52. package/dist/database/adapters/mysql.d.ts +27 -0
  53. package/dist/database/adapters/mysql.d.ts.map +1 -0
  54. package/dist/database/adapters/mysql.js +188 -0
  55. package/dist/database/adapters/mysql.js.map +1 -0
  56. package/dist/database/adapters/postgres.d.ts +28 -0
  57. package/dist/database/adapters/postgres.d.ts.map +1 -0
  58. package/dist/database/adapters/postgres.js +174 -0
  59. package/dist/database/adapters/postgres.js.map +1 -0
  60. package/dist/database/adapters/sqlite.d.ts +27 -0
  61. package/dist/database/adapters/sqlite.d.ts.map +1 -0
  62. package/dist/database/adapters/sqlite.js +149 -0
  63. package/dist/database/adapters/sqlite.js.map +1 -0
  64. package/dist/database/index.d.ts +42 -0
  65. package/dist/database/index.d.ts.map +1 -0
  66. package/dist/database/index.js +58 -0
  67. package/dist/database/index.js.map +1 -0
  68. package/dist/database/manager.d.ts +114 -0
  69. package/dist/database/manager.d.ts.map +1 -0
  70. package/dist/database/manager.js +269 -0
  71. package/dist/database/manager.js.map +1 -0
  72. package/dist/database/migration.d.ts +57 -0
  73. package/dist/database/migration.d.ts.map +1 -0
  74. package/dist/database/migration.js +329 -0
  75. package/dist/database/migration.js.map +1 -0
  76. package/dist/database/query-builder.d.ts +89 -0
  77. package/dist/database/query-builder.d.ts.map +1 -0
  78. package/dist/database/query-builder.js +353 -0
  79. package/dist/database/query-builder.js.map +1 -0
  80. package/dist/database/types.d.ts +184 -0
  81. package/dist/database/types.d.ts.map +1 -0
  82. package/dist/database/types.js +4 -0
  83. package/dist/database/types.js.map +1 -0
  84. package/dist/docs/ARCHITECTURE.md +349 -0
  85. package/dist/docs/BENCHMARKS.md +36 -0
  86. package/dist/docs/README.md +34 -0
  87. package/dist/docs/content/README.md +44 -0
  88. package/dist/docs/content/adapters.mdx +199 -0
  89. package/dist/docs/content/cache.mdx +239 -0
  90. package/dist/docs/content/circuit-breaker.mdx +130 -0
  91. package/dist/docs/content/cli/commands.mdx +214 -0
  92. package/dist/docs/content/cli/overview.mdx +92 -0
  93. package/dist/docs/content/cli/usage.mdx +61 -0
  94. package/dist/docs/content/config.mdx +214 -0
  95. package/dist/docs/content/controllers.mdx +241 -0
  96. package/dist/docs/content/cron.mdx +109 -0
  97. package/dist/docs/content/database.mdx +209 -0
  98. package/dist/docs/content/dataloader.mdx +170 -0
  99. package/dist/docs/content/decorators.mdx +204 -0
  100. package/dist/docs/content/errors.mdx +344 -0
  101. package/dist/docs/content/exisjs-mcp.mdx +97 -0
  102. package/dist/docs/content/gateways.mdx +376 -0
  103. package/dist/docs/content/installation.mdx +210 -0
  104. package/dist/docs/content/introduction.mdx +96 -0
  105. package/dist/docs/content/middleware.mdx +441 -0
  106. package/dist/docs/content/modules.mdx +144 -0
  107. package/dist/docs/content/oauth.mdx +179 -0
  108. package/dist/docs/content/providers.mdx +147 -0
  109. package/dist/docs/content/queues.mdx +177 -0
  110. package/dist/docs/content/requests.mdx +293 -0
  111. package/dist/docs/content/responses.mdx +271 -0
  112. package/dist/docs/content/routing.mdx +541 -0
  113. package/dist/docs/content/rpc.mdx +146 -0
  114. package/dist/docs/content/security.mdx +294 -0
  115. package/dist/docs/content/sse.mdx +159 -0
  116. package/dist/docs/content/structure.mdx +116 -0
  117. package/dist/docs/content/testing.mdx +139 -0
  118. package/dist/docs/content/validation.mdx +249 -0
  119. package/dist/docs/content/websockets.mdx +289 -0
  120. package/dist/docs/integrations/README.md +23 -0
  121. package/dist/docs/integrations/jwt.mdx +151 -0
  122. package/dist/docs/integrations/mongo.mdx +183 -0
  123. package/dist/docs/integrations/observability.mdx +125 -0
  124. package/dist/docs/integrations/openai.mdx +108 -0
  125. package/dist/docs/integrations/postgres.mdx +190 -0
  126. package/dist/docs/integrations/posthog.mdx +122 -0
  127. package/dist/docs/integrations/redis.mdx +141 -0
  128. package/dist/docs/integrations/resend.mdx +117 -0
  129. package/dist/docs/integrations/s3.mdx +122 -0
  130. package/dist/docs/integrations/swagger.mdx +113 -0
  131. package/dist/docs/reference/README.md +3 -0
  132. package/dist/docs/reference/adapters.mdx +130 -0
  133. package/dist/docs/reference/auth.mdx +183 -0
  134. package/dist/docs/reference/cache.mdx +132 -0
  135. package/dist/docs/reference/circuit-breaker.mdx +71 -0
  136. package/dist/docs/reference/config.mdx +118 -0
  137. package/dist/docs/reference/context.mdx +168 -0
  138. package/dist/docs/reference/dataloader.mdx +91 -0
  139. package/dist/docs/reference/decorators.mdx +293 -0
  140. package/dist/docs/reference/di.mdx +123 -0
  141. package/dist/docs/reference/error.mdx +170 -0
  142. package/dist/docs/reference/exis.mdx +124 -0
  143. package/dist/docs/reference/middleware.mdx +304 -0
  144. package/dist/docs/reference/plugin.mdx +113 -0
  145. package/dist/docs/reference/queue.mdx +155 -0
  146. package/dist/docs/reference/router.mdx +248 -0
  147. package/dist/docs/reference/sanitize.mdx +130 -0
  148. package/dist/docs/reference/storage.mdx +116 -0
  149. package/dist/docs/reference/swagger.mdx +132 -0
  150. package/dist/docs/reference/testing.mdx +145 -0
  151. package/dist/docs/reference/validator.mdx +186 -0
  152. package/dist/index.d.ts +4 -0
  153. package/dist/index.d.ts.map +1 -1
  154. package/dist/index.js +10 -1
  155. package/dist/index.js.map +1 -1
  156. package/dist/middleware/compression.d.ts +12 -0
  157. package/dist/middleware/compression.d.ts.map +1 -1
  158. package/dist/middleware/compression.js +61 -99
  159. package/dist/middleware/compression.js.map +1 -1
  160. package/dist/middleware/middleware.d.ts.map +1 -1
  161. package/dist/middleware/middleware.js +25 -8
  162. package/dist/middleware/middleware.js.map +1 -1
  163. package/dist/middleware/security.d.ts.map +1 -1
  164. package/dist/middleware/security.js +6 -3
  165. package/dist/middleware/security.js.map +1 -1
  166. package/dist/router/router.d.ts.map +1 -1
  167. package/dist/router/router.js +11 -7
  168. package/dist/router/router.js.map +1 -1
  169. package/dist/server/bootstrapper.js +1 -1
  170. package/dist/server/bootstrapper.js.map +1 -1
  171. package/dist/server/bun-adapter.d.ts.map +1 -1
  172. package/dist/server/bun-adapter.js +2 -2
  173. package/dist/server/bun-adapter.js.map +1 -1
  174. package/dist/server/request-handler.d.ts +7 -0
  175. package/dist/server/request-handler.d.ts.map +1 -1
  176. package/dist/server/request-handler.js +37 -2
  177. package/dist/server/request-handler.js.map +1 -1
  178. package/dist/server/request.d.ts.map +1 -1
  179. package/dist/server/request.js +4 -6
  180. package/dist/server/request.js.map +1 -1
  181. package/dist/server/route-scanner.d.ts.map +1 -1
  182. package/dist/server/route-scanner.js +4 -1
  183. package/dist/server/route-scanner.js.map +1 -1
  184. package/dist/server/uws-adapter.d.ts +5 -3
  185. package/dist/server/uws-adapter.d.ts.map +1 -1
  186. package/dist/server/uws-adapter.js +39 -4
  187. package/dist/server/uws-adapter.js.map +1 -1
  188. package/dist/server/ws-orchestrator.d.ts.map +1 -1
  189. package/dist/server/ws-orchestrator.js +4 -13
  190. package/dist/server/ws-orchestrator.js.map +1 -1
  191. package/package.json +17 -10
@@ -0,0 +1,329 @@
1
+ "use strict";
2
+ /**
3
+ * Built-in Migration System.
4
+ *
5
+ * Tracks applied migrations in a `_exis_migrations` table and provides
6
+ * up/down/status operations. Migrations are ordered by filename and
7
+ * applied in batches for clean rollbacks.
8
+ *
9
+ * Usage:
10
+ * const migrator = new Migrator(adapter, { directory: './migrations' })
11
+ * await migrator.up() // Apply all pending migrations
12
+ * await migrator.down() // Rollback the last batch
13
+ * await migrator.status() // Get migration status
14
+ */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
27
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
28
+ }) : function(o, v) {
29
+ o["default"] = v;
30
+ });
31
+ var __importStar = (this && this.__importStar) || (function () {
32
+ var ownKeys = function(o) {
33
+ ownKeys = Object.getOwnPropertyNames || function (o) {
34
+ var ar = [];
35
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
36
+ return ar;
37
+ };
38
+ return ownKeys(o);
39
+ };
40
+ return function (mod) {
41
+ if (mod && mod.__esModule) return mod;
42
+ var result = {};
43
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
44
+ __setModuleDefault(result, mod);
45
+ return result;
46
+ };
47
+ })();
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.Migrator = void 0;
50
+ const promises_1 = require("node:fs/promises");
51
+ const node_path_1 = require("node:path");
52
+ const DEFAULT_TABLE = '_exis_migrations';
53
+ class Migrator {
54
+ constructor(adapter, config) {
55
+ this.adapter = adapter;
56
+ this.config = {
57
+ directory: config?.directory || './migrations',
58
+ tableName: config?.tableName || DEFAULT_TABLE,
59
+ };
60
+ }
61
+ /**
62
+ * Ensure the migrations tracking table exists.
63
+ */
64
+ async ensureTable() {
65
+ const { tableName } = this.config;
66
+ const dialect = this.adapter.dialect;
67
+ if (dialect === 'mongodb') {
68
+ // MongoDB doesn't need a schema — we just use a collection
69
+ return;
70
+ }
71
+ const createSQL = dialect === 'sqlite'
72
+ ? `CREATE TABLE IF NOT EXISTS ${tableName} (
73
+ name TEXT PRIMARY KEY,
74
+ batch INTEGER NOT NULL,
75
+ applied_at TEXT NOT NULL DEFAULT (datetime('now'))
76
+ )`
77
+ : dialect === 'mysql'
78
+ ? `CREATE TABLE IF NOT EXISTS ${tableName} (
79
+ name VARCHAR(255) PRIMARY KEY,
80
+ batch INT NOT NULL,
81
+ applied_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
82
+ )`
83
+ : `CREATE TABLE IF NOT EXISTS ${tableName} (
84
+ name VARCHAR(255) PRIMARY KEY,
85
+ batch INT NOT NULL,
86
+ applied_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
87
+ )`;
88
+ await this.adapter.execute(createSQL);
89
+ }
90
+ /**
91
+ * Apply all pending migrations.
92
+ * @returns The names of the migrations that were applied.
93
+ */
94
+ async up() {
95
+ await this.ensureTable();
96
+ const applied = await this.getApplied();
97
+ const allMigrations = await this.loadMigrations();
98
+ const pending = allMigrations.filter((m) => !applied.has(m.name));
99
+ if (pending.length === 0) {
100
+ return [];
101
+ }
102
+ const batch = await this.getNextBatch();
103
+ const appliedNames = [];
104
+ for (const migration of pending) {
105
+ await this.adapter.transaction(async (tx) => {
106
+ // Run the migration
107
+ await migration.up(this.adapter);
108
+ // Record it
109
+ if (this.adapter.dialect === 'mongodb') {
110
+ await this.adapter.execute('_exis_migrations.insertOne', [
111
+ { name: migration.name, batch, applied_at: new Date() },
112
+ ]);
113
+ }
114
+ else {
115
+ const placeholder = this.adapter.dialect === 'postgres' ? '$1' : '?';
116
+ const placeholder2 = this.adapter.dialect === 'postgres' ? '$2' : '?';
117
+ await tx.execute(`INSERT INTO ${this.config.tableName} (name, batch) VALUES (${placeholder}, ${placeholder2})`, [migration.name, batch]);
118
+ }
119
+ });
120
+ appliedNames.push(migration.name);
121
+ }
122
+ return appliedNames;
123
+ }
124
+ /**
125
+ * Rollback the last batch of migrations.
126
+ * @returns The names of the migrations that were rolled back.
127
+ */
128
+ async down() {
129
+ await this.ensureTable();
130
+ const lastBatch = await this.getLastBatch();
131
+ if (lastBatch === 0) {
132
+ return [];
133
+ }
134
+ const batchMigrations = await this.getMigrationsInBatch(lastBatch);
135
+ const allMigrations = await this.loadMigrations();
136
+ const migrationMap = new Map(allMigrations.map((m) => [m.name, m]));
137
+ const rolledBack = [];
138
+ // Rollback in reverse order
139
+ for (const record of batchMigrations.reverse()) {
140
+ const migration = migrationMap.get(record.name);
141
+ if (!migration) {
142
+ throw new Error(`Migration file for '${record.name}' not found. Cannot rollback.`);
143
+ }
144
+ await this.adapter.transaction(async (tx) => {
145
+ await migration.down(this.adapter);
146
+ if (this.adapter.dialect === 'mongodb') {
147
+ await this.adapter.execute('_exis_migrations.deleteOne', [
148
+ { name: record.name },
149
+ ]);
150
+ }
151
+ else {
152
+ const placeholder = this.adapter.dialect === 'postgres' ? '$1' : '?';
153
+ await tx.execute(`DELETE FROM ${this.config.tableName} WHERE name = ${placeholder}`, [record.name]);
154
+ }
155
+ });
156
+ rolledBack.push(record.name);
157
+ }
158
+ return rolledBack;
159
+ }
160
+ /**
161
+ * Rollback all migrations.
162
+ */
163
+ async reset() {
164
+ const rolledBack = [];
165
+ let batch = await this.getLastBatch();
166
+ while (batch > 0) {
167
+ const names = await this.down();
168
+ rolledBack.push(...names);
169
+ batch = await this.getLastBatch();
170
+ }
171
+ return rolledBack;
172
+ }
173
+ /**
174
+ * Get the status of all migrations.
175
+ */
176
+ async status() {
177
+ await this.ensureTable();
178
+ const applied = await this.getAppliedRecords();
179
+ const allMigrations = await this.loadMigrations();
180
+ const appliedMap = new Map(applied.map((r) => [r.name, r]));
181
+ return allMigrations.map((m) => {
182
+ const record = appliedMap.get(m.name);
183
+ return {
184
+ name: m.name,
185
+ applied: !!record,
186
+ batch: record?.batch,
187
+ appliedAt: record?.appliedAt,
188
+ };
189
+ });
190
+ }
191
+ /**
192
+ * Create a new migration file in the migrations directory.
193
+ */
194
+ async create(name) {
195
+ const { mkdir, writeFile } = await Promise.resolve().then(() => __importStar(require('node:fs/promises')));
196
+ const dir = (0, node_path_1.resolve)(this.config.directory);
197
+ await mkdir(dir, { recursive: true });
198
+ const timestamp = new Date()
199
+ .toISOString()
200
+ .replace(/[-:T]/g, '')
201
+ .slice(0, 14);
202
+ const filename = `${timestamp}_${name}.ts`;
203
+ const filepath = (0, node_path_1.resolve)(dir, filename);
204
+ const template = `import type { DatabaseAdapter } from 'exisjs/database'
205
+
206
+ export default {
207
+ name: '${timestamp}_${name}',
208
+
209
+ async up(db: DatabaseAdapter): Promise<void> {
210
+ // Write your migration here
211
+ // await db.execute('CREATE TABLE ...')
212
+ },
213
+
214
+ async down(db: DatabaseAdapter): Promise<void> {
215
+ // Write the rollback here
216
+ // await db.execute('DROP TABLE ...')
217
+ },
218
+ }
219
+ `;
220
+ await writeFile(filepath, template, 'utf-8');
221
+ return filepath;
222
+ }
223
+ // ─── Private Helpers ───────────────────────────────────────────────────────
224
+ async loadMigrations() {
225
+ const dir = (0, node_path_1.resolve)(this.config.directory);
226
+ let files;
227
+ try {
228
+ files = await (0, promises_1.readdir)(dir);
229
+ }
230
+ catch {
231
+ return [];
232
+ }
233
+ const migrationFiles = files
234
+ .filter((f) => {
235
+ const ext = (0, node_path_1.extname)(f);
236
+ return ext === '.ts' || ext === '.js' || ext === '.mjs';
237
+ })
238
+ .sort();
239
+ const migrations = [];
240
+ for (const file of migrationFiles) {
241
+ const filepath = (0, node_path_1.resolve)(dir, file);
242
+ try {
243
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
244
+ const mod = require(filepath);
245
+ const migration = mod.default || mod;
246
+ if (migration &&
247
+ typeof migration.up === 'function' &&
248
+ typeof migration.down === 'function') {
249
+ migrations.push({
250
+ name: migration.name || (0, node_path_1.basename)(file, (0, node_path_1.extname)(file)),
251
+ up: migration.up,
252
+ down: migration.down,
253
+ });
254
+ }
255
+ }
256
+ catch (err) {
257
+ throw new Error(`Failed to load migration '${file}': ${err.message}`, {
258
+ cause: err,
259
+ });
260
+ }
261
+ }
262
+ return migrations;
263
+ }
264
+ async getApplied() {
265
+ const records = await this.getAppliedRecords();
266
+ return new Set(records.map((r) => r.name));
267
+ }
268
+ async getAppliedRecords() {
269
+ if (this.adapter.dialect === 'mongodb') {
270
+ const result = await this.adapter.query('_exis_migrations', [{}]);
271
+ return result.rows.map((r) => ({
272
+ name: r.name,
273
+ batch: r.batch,
274
+ appliedAt: new Date(r.applied_at),
275
+ }));
276
+ }
277
+ try {
278
+ const result = await this.adapter.query(`SELECT name, batch, applied_at FROM ${this.config.tableName} ORDER BY name`);
279
+ return result.rows.map((r) => ({
280
+ name: r.name,
281
+ batch: r.batch,
282
+ appliedAt: new Date(r.applied_at),
283
+ }));
284
+ }
285
+ catch {
286
+ return [];
287
+ }
288
+ }
289
+ async getNextBatch() {
290
+ return (await this.getLastBatch()) + 1;
291
+ }
292
+ async getLastBatch() {
293
+ if (this.adapter.dialect === 'mongodb') {
294
+ const result = await this.adapter.query('_exis_migrations', [
295
+ {},
296
+ { sort: { batch: -1 }, limit: 1 },
297
+ ]);
298
+ return result.rows[0]?.batch ?? 0;
299
+ }
300
+ try {
301
+ const result = await this.adapter.query(`SELECT MAX(batch) as max_batch FROM ${this.config.tableName}`);
302
+ return result.rows[0]?.max_batch ?? 0;
303
+ }
304
+ catch {
305
+ return 0;
306
+ }
307
+ }
308
+ async getMigrationsInBatch(batch) {
309
+ if (this.adapter.dialect === 'mongodb') {
310
+ const result = await this.adapter.query('_exis_migrations', [
311
+ { batch },
312
+ ]);
313
+ return result.rows.map((r) => ({
314
+ name: r.name,
315
+ batch: r.batch,
316
+ appliedAt: new Date(r.applied_at),
317
+ }));
318
+ }
319
+ const placeholder = this.adapter.dialect === 'postgres' ? '$1' : '?';
320
+ const result = await this.adapter.query(`SELECT name, batch, applied_at FROM ${this.config.tableName} WHERE batch = ${placeholder} ORDER BY name`, [batch]);
321
+ return result.rows.map((r) => ({
322
+ name: r.name,
323
+ batch: r.batch,
324
+ appliedAt: new Date(r.applied_at),
325
+ }));
326
+ }
327
+ }
328
+ exports.Migrator = Migrator;
329
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.js","sourceRoot":"","sources":["../../src/database/migration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Chainable SQL Query Builder.
3
+ *
4
+ * Generates dialect-specific SQL with parameterized queries.
5
+ * Supports select, insert, update, delete, joins, where, orderBy, limit, offset,
6
+ * groupBy, and having.
7
+ *
8
+ * Uses PostgreSQL-style $1, $2 placeholders by default.
9
+ * MySQL mode uses ? placeholders.
10
+ */
11
+ import type { DatabaseAdapter, WhereOperator, OrderDirection, JoinType, QueryResult, ExecuteResult } from './types';
12
+ export declare class QueryBuilder<T = Record<string, unknown>> {
13
+ private adapter;
14
+ private dialect;
15
+ private tableName;
16
+ private operation;
17
+ private selectColumns;
18
+ private whereClauses;
19
+ private joinClauses;
20
+ private orderByClauses;
21
+ private groupByColumns;
22
+ private havingClauses;
23
+ private limitValue?;
24
+ private offsetValue?;
25
+ private insertData?;
26
+ private updateData?;
27
+ private returningColumns?;
28
+ private distinctFlag;
29
+ private params;
30
+ constructor(adapter: DatabaseAdapter, table: string);
31
+ select(...columns: string[]): this;
32
+ distinct(): this;
33
+ where(column: string, operator: WhereOperator, value: unknown): this;
34
+ orWhere(column: string, operator: WhereOperator, value: unknown): this;
35
+ whereNull(column: string): this;
36
+ whereNotNull(column: string): this;
37
+ whereIn(column: string, values: unknown[]): this;
38
+ whereBetween(column: string, min: unknown, max: unknown): this;
39
+ join(table: string, on: string, type?: JoinType): this;
40
+ leftJoin(table: string, on: string): this;
41
+ rightJoin(table: string, on: string): this;
42
+ fullJoin(table: string, on: string): this;
43
+ orderBy(column: string, direction?: OrderDirection): this;
44
+ groupBy(...columns: string[]): this;
45
+ having(column: string, operator: WhereOperator, value: unknown): this;
46
+ limit(count: number): this;
47
+ offset(count: number): this;
48
+ insert(data: Record<string, unknown> | Record<string, unknown>[]): this;
49
+ update(data: Record<string, unknown>): this;
50
+ delete(): this;
51
+ returning(...columns: string[]): this;
52
+ execute(): Promise<QueryResult<T> | ExecuteResult>;
53
+ /**
54
+ * Execute and return just the rows (convenience method for SELECT).
55
+ */
56
+ rows(): Promise<T[]>;
57
+ /**
58
+ * Execute and return the first row (convenience method for SELECT ... LIMIT 1).
59
+ */
60
+ first(): Promise<T | null>;
61
+ /**
62
+ * Execute and return the count of matching rows.
63
+ */
64
+ count(column?: string): Promise<number>;
65
+ /**
66
+ * Build the SQL string and parameters without executing.
67
+ */
68
+ toSQL(): {
69
+ sql: string;
70
+ params: unknown[];
71
+ };
72
+ private buildSelect;
73
+ private buildInsert;
74
+ private buildUpdate;
75
+ private buildDelete;
76
+ private buildJoins;
77
+ private buildWhere;
78
+ private buildGroupBy;
79
+ private buildHaving;
80
+ private buildOrderBy;
81
+ private buildLimit;
82
+ /**
83
+ * Generate the next placeholder for the current dialect.
84
+ * PostgreSQL: $1, $2, $3...
85
+ * MySQL/SQLite: ?, ?, ?...
86
+ */
87
+ private placeholder;
88
+ }
89
+ //# sourceMappingURL=query-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/database/query-builder.ts"],"names":[],"mappings":"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"}