nanodb-orm 0.0.2 → 0.0.4

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 (83) hide show
  1. package/README.md +211 -309
  2. package/dist/cli.d.ts +13 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +270 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/constants/index.d.ts +7 -54
  7. package/dist/constants/index.d.ts.map +1 -1
  8. package/dist/constants/index.js +9 -61
  9. package/dist/constants/index.js.map +1 -1
  10. package/dist/core/config.d.ts +3 -13
  11. package/dist/core/config.d.ts.map +1 -1
  12. package/dist/core/config.js +5 -27
  13. package/dist/core/config.js.map +1 -1
  14. package/dist/core/connection.d.ts +11 -20
  15. package/dist/core/connection.d.ts.map +1 -1
  16. package/dist/core/connection.js +35 -53
  17. package/dist/core/connection.js.map +1 -1
  18. package/dist/core/index.d.ts +2 -3
  19. package/dist/core/index.d.ts.map +1 -1
  20. package/dist/core/index.js +3 -18
  21. package/dist/core/index.js.map +1 -1
  22. package/dist/index.d.ts +40 -10
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +76 -31
  25. package/dist/index.js.map +1 -1
  26. package/dist/init.d.ts +79 -22
  27. package/dist/init.d.ts.map +1 -1
  28. package/dist/init.js +246 -48
  29. package/dist/init.js.map +1 -1
  30. package/dist/jest.setup.d.ts +4 -0
  31. package/dist/jest.setup.d.ts.map +1 -0
  32. package/dist/jest.setup.js +40 -0
  33. package/dist/jest.setup.js.map +1 -0
  34. package/dist/types/errors.d.ts +30 -12
  35. package/dist/types/errors.d.ts.map +1 -1
  36. package/dist/types/errors.js +98 -23
  37. package/dist/types/errors.js.map +1 -1
  38. package/dist/types/index.d.ts +130 -3
  39. package/dist/types/index.d.ts.map +1 -1
  40. package/dist/types/index.js +2 -3
  41. package/dist/types/index.js.map +1 -1
  42. package/dist/utils/error-handler.d.ts +11 -0
  43. package/dist/utils/error-handler.d.ts.map +1 -0
  44. package/dist/utils/error-handler.js +36 -0
  45. package/dist/utils/error-handler.js.map +1 -0
  46. package/dist/utils/index.d.ts +1 -1
  47. package/dist/utils/index.d.ts.map +1 -1
  48. package/dist/utils/index.js +4 -2
  49. package/dist/utils/index.js.map +1 -1
  50. package/dist/utils/logger.d.ts +6 -25
  51. package/dist/utils/logger.d.ts.map +1 -1
  52. package/dist/utils/logger.js +20 -38
  53. package/dist/utils/logger.js.map +1 -1
  54. package/dist/utils/migrations.d.ts +16 -90
  55. package/dist/utils/migrations.d.ts.map +1 -1
  56. package/dist/utils/migrations.js +222 -412
  57. package/dist/utils/migrations.js.map +1 -1
  58. package/dist/utils/schema-introspection.d.ts +30 -173
  59. package/dist/utils/schema-introspection.d.ts.map +1 -1
  60. package/dist/utils/schema-introspection.js +129 -460
  61. package/dist/utils/schema-introspection.js.map +1 -1
  62. package/dist/utils/seeds.d.ts +15 -48
  63. package/dist/utils/seeds.d.ts.map +1 -1
  64. package/dist/utils/seeds.js +101 -185
  65. package/dist/utils/seeds.js.map +1 -1
  66. package/dist/utils/sync.d.ts +16 -54
  67. package/dist/utils/sync.d.ts.map +1 -1
  68. package/dist/utils/sync.js +71 -173
  69. package/dist/utils/sync.js.map +1 -1
  70. package/dist/utils/transactions.d.ts +16 -0
  71. package/dist/utils/transactions.d.ts.map +1 -0
  72. package/dist/utils/transactions.js +44 -0
  73. package/dist/utils/transactions.js.map +1 -0
  74. package/package.json +29 -10
  75. package/dist/example.d.ts +0 -67
  76. package/dist/example.d.ts.map +0 -1
  77. package/dist/example.js +0 -86
  78. package/dist/example.js.map +0 -1
  79. package/dist/types/types.d.ts +0 -30
  80. package/dist/types/types.d.ts.map +0 -1
  81. package/dist/types/types.js +0 -6
  82. package/dist/types/types.js.map +0 -1
  83. package/llm.txt +0 -268
package/dist/cli.js ADDED
@@ -0,0 +1,270 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * nanodb-orm CLI
5
+ *
6
+ * Commands:
7
+ * studio - Launch Drizzle Studio (visual database browser)
8
+ * setup - Initialize database schema and seed data
9
+ * reset - Drop all tables and recreate
10
+ * status - Show database health and stats
11
+ * validate - Validate schema against database
12
+ */
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ const child_process_1 = require("child_process");
48
+ const fs_1 = require("fs");
49
+ const path_1 = require("path");
50
+ const args = process.argv.slice(2);
51
+ const command = args[0];
52
+ // Help text
53
+ const HELP = `
54
+ nanodb-orm CLI
55
+
56
+ Usage: nanodb [command] [options]
57
+
58
+ Commands:
59
+ studio Launch Drizzle Studio (visual database browser)
60
+ setup Initialize database schema and seed data
61
+ reset Drop all tables and recreate
62
+ status Show database health and stats
63
+ validate Validate schema against database
64
+ help Show this help message
65
+
66
+ Options:
67
+ --db <path> Database file path (default: database.db)
68
+ --port <num> Studio port (default: 4983)
69
+
70
+ Examples:
71
+ nanodb studio
72
+ nanodb studio --port 3000
73
+ nanodb setup
74
+ nanodb status
75
+ `;
76
+ async function main() {
77
+ if (!command || command === 'help' || command === '--help' || command === '-h') {
78
+ console.log(HELP);
79
+ process.exit(0);
80
+ }
81
+ switch (command) {
82
+ case 'studio':
83
+ await launchStudio();
84
+ break;
85
+ case 'setup':
86
+ await runSetup();
87
+ break;
88
+ case 'reset':
89
+ await runReset();
90
+ break;
91
+ case 'status':
92
+ await showStatus();
93
+ break;
94
+ case 'validate':
95
+ await runValidate();
96
+ break;
97
+ default:
98
+ console.error(`Unknown command: ${command}`);
99
+ console.log(HELP);
100
+ process.exit(1);
101
+ }
102
+ }
103
+ function getArg(name, defaultValue) {
104
+ const index = args.indexOf(`--${name}`);
105
+ if (index !== -1) {
106
+ const val = args[index + 1];
107
+ if (val)
108
+ return val;
109
+ }
110
+ return defaultValue;
111
+ }
112
+ function getDbPath() {
113
+ // Check for --db argument
114
+ let dbPath = getArg('db', '');
115
+ if (!dbPath) {
116
+ // Try common locations
117
+ if ((0, fs_1.existsSync)('database.db'))
118
+ dbPath = 'database.db';
119
+ else if ((0, fs_1.existsSync)('local.db'))
120
+ dbPath = 'local.db';
121
+ else if ((0, fs_1.existsSync)('test.db'))
122
+ dbPath = 'test.db';
123
+ else if ((0, fs_1.existsSync)('data.db'))
124
+ dbPath = 'data.db';
125
+ else
126
+ dbPath = 'database.db'; // Default
127
+ }
128
+ return (0, path_1.resolve)(dbPath);
129
+ }
130
+ async function launchStudio() {
131
+ const dbPath = getDbPath();
132
+ const port = getArg('port', '4983');
133
+ console.log(`\n🚀 Launching Drizzle Studio...`);
134
+ console.log(` Database: ${dbPath}`);
135
+ console.log(` URL: https://local.drizzle.studio`);
136
+ console.log(` Port: ${port}\n`);
137
+ // Create temporary drizzle config
138
+ const configPath = (0, path_1.resolve)('.drizzle-studio.config.ts');
139
+ const configContent = `
140
+ import { defineConfig } from 'drizzle-kit';
141
+
142
+ export default defineConfig({
143
+ dialect: 'sqlite',
144
+ dbCredentials: {
145
+ url: 'file:${dbPath}',
146
+ },
147
+ });
148
+ `;
149
+ (0, fs_1.writeFileSync)(configPath, configContent);
150
+ // Launch drizzle-kit studio
151
+ const studio = (0, child_process_1.spawn)('npx', ['drizzle-kit', 'studio', '--port', port, '--config', configPath], {
152
+ stdio: 'inherit',
153
+ shell: true,
154
+ });
155
+ // Cleanup on exit
156
+ const cleanup = () => {
157
+ try {
158
+ if ((0, fs_1.existsSync)(configPath))
159
+ (0, fs_1.unlinkSync)(configPath);
160
+ }
161
+ catch { }
162
+ };
163
+ process.on('SIGINT', () => {
164
+ cleanup();
165
+ process.exit(0);
166
+ });
167
+ process.on('SIGTERM', () => {
168
+ cleanup();
169
+ process.exit(0);
170
+ });
171
+ studio.on('close', (code) => {
172
+ cleanup();
173
+ process.exit(code ?? 0);
174
+ });
175
+ }
176
+ async function runSetup() {
177
+ console.log('\n📦 Running database setup...\n');
178
+ try {
179
+ const { DatabaseSync } = await Promise.resolve().then(() => __importStar(require('./index')));
180
+ await DatabaseSync.setup();
181
+ console.log('\n✅ Setup complete!\n');
182
+ }
183
+ catch (error) {
184
+ console.error('\n❌ Setup failed\n');
185
+ process.exit(1);
186
+ }
187
+ }
188
+ async function runReset() {
189
+ console.log('\n⚠️ Resetting database (this will delete all data)...\n');
190
+ try {
191
+ const { DatabaseSync } = await Promise.resolve().then(() => __importStar(require('./index')));
192
+ await DatabaseSync.reset();
193
+ console.log('\n✅ Reset complete!\n');
194
+ }
195
+ catch (error) {
196
+ console.error('\n❌ Reset failed\n');
197
+ process.exit(1);
198
+ }
199
+ }
200
+ async function showStatus() {
201
+ console.log('\n📊 Database Status\n');
202
+ try {
203
+ const { DatabaseSync, SchemaIntrospection } = await Promise.resolve().then(() => __importStar(require('./index')));
204
+ const health = await DatabaseSync.healthCheck();
205
+ const stats = SchemaIntrospection.getSchemaStats();
206
+ console.log(`Healthy: ${health.healthy ? '✅ Yes' : '❌ No'}`);
207
+ console.log(`Schema Valid: ${health.schemaValid ? '✅ Yes' : '❌ No'}`);
208
+ console.log(`Total Tables: ${stats.totalTables}`);
209
+ console.log(`Total Records: ${health.totalRecords}`);
210
+ console.log('');
211
+ console.log('Tables:');
212
+ for (const table of health.tables) {
213
+ const count = health.tableCounts[table] ?? 0;
214
+ console.log(` ${table}: ${count} rows`);
215
+ }
216
+ if (health.errors.length > 0) {
217
+ console.log('\nErrors:');
218
+ for (const err of health.errors) {
219
+ console.log(` ❌ ${err}`);
220
+ }
221
+ }
222
+ console.log('');
223
+ }
224
+ catch (error) {
225
+ console.error('❌ Could not get status:', error instanceof Error ? error.message : error);
226
+ process.exit(1);
227
+ }
228
+ }
229
+ async function runValidate() {
230
+ console.log('\n🔍 Validating schema...\n');
231
+ try {
232
+ const { SchemaIntrospection } = await Promise.resolve().then(() => __importStar(require('./index')));
233
+ const validation = await SchemaIntrospection.validateSchema();
234
+ if (validation.isValid) {
235
+ console.log('✅ Schema is valid!\n');
236
+ }
237
+ else {
238
+ console.log('❌ Schema validation failed\n');
239
+ if (validation.missingTables.length > 0) {
240
+ console.log('Missing tables:');
241
+ for (const table of validation.missingTables) {
242
+ console.log(` - ${table}`);
243
+ }
244
+ }
245
+ if (validation.extraTables.length > 0) {
246
+ console.log('Extra tables in database:');
247
+ for (const table of validation.extraTables) {
248
+ console.log(` - ${table}`);
249
+ }
250
+ }
251
+ if (validation.errors.length > 0) {
252
+ console.log('Errors:');
253
+ for (const err of validation.errors) {
254
+ console.log(` - ${err}`);
255
+ }
256
+ }
257
+ console.log('');
258
+ process.exit(1);
259
+ }
260
+ }
261
+ catch (error) {
262
+ console.error('❌ Validation failed:', error instanceof Error ? error.message : error);
263
+ process.exit(1);
264
+ }
265
+ }
266
+ main().catch((err) => {
267
+ console.error('CLI Error:', err);
268
+ process.exit(1);
269
+ });
270
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":";;AACA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iDAAsC;AACtC,2BAA2D;AAC3D,+BAA+B;AAE/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAExB,YAAY;AACZ,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBZ,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ;YACX,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,OAAO;YACV,MAAM,QAAQ,EAAE,CAAC;YACjB,MAAM;QACR,KAAK,OAAO;YACV,MAAM,QAAQ,EAAE,CAAC;YACjB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,UAAU,EAAE,CAAC;YACnB,MAAM;QACR,KAAK,UAAU;YACb,MAAM,WAAW,EAAE,CAAC;YACpB,MAAM;QACR;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,IAAY,EAAE,YAAoB;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACxC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC5B,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;IACtB,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,SAAS;IAChB,0BAA0B;IAC1B,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAE9B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,uBAAuB;QACvB,IAAI,IAAA,eAAU,EAAC,aAAa,CAAC;YAAE,MAAM,GAAG,aAAa,CAAC;aACjD,IAAI,IAAA,eAAU,EAAC,UAAU,CAAC;YAAE,MAAM,GAAG,UAAU,CAAC;aAChD,IAAI,IAAA,eAAU,EAAC,SAAS,CAAC;YAAE,MAAM,GAAG,SAAS,CAAC;aAC9C,IAAI,IAAA,eAAU,EAAC,SAAS,CAAC;YAAE,MAAM,GAAG,SAAS,CAAC;;YAC9C,MAAM,GAAG,aAAa,CAAC,CAAC,UAAU;IACzC,CAAC;IAED,OAAO,IAAA,cAAO,EAAC,MAAM,CAAC,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEpC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC;IAElC,kCAAkC;IAClC,MAAM,UAAU,GAAG,IAAA,cAAO,EAAC,2BAA2B,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG;;;;;;iBAMP,MAAM;;;CAGtB,CAAC;IAEA,IAAA,kBAAa,EAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAEzC,4BAA4B;IAC5B,MAAM,MAAM,GAAG,IAAA,qBAAK,EAAC,KAAK,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE;QAC7F,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,kBAAkB;IAClB,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,CAAC;YACH,IAAI,IAAA,eAAU,EAAC,UAAU,CAAC;gBAAE,IAAA,eAAU,EAAC,UAAU,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QAC1B,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,QAAQ;IACrB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,EAAE,YAAY,EAAE,GAAG,wDAAa,SAAS,GAAC,CAAC;QACjD,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ;IACrB,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IAEzE,IAAI,CAAC;QACH,MAAM,EAAE,YAAY,EAAE,GAAG,wDAAa,SAAS,GAAC,CAAC;QACjD,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,wDAAa,SAAS,GAAC,CAAC;QAEtE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,mBAAmB,CAAC,cAAc,EAAE,CAAC;QAEnD,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW;IACxB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,EAAE,mBAAmB,EAAE,GAAG,wDAAa,SAAS,GAAC,CAAC;QAExD,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,cAAc,EAAE,CAAC;QAE9D,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAE5C,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAC/B,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;oBAC7C,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACzC,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACvB,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;oBACpC,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1,59 +1,12 @@
1
1
  /**
2
- * Database constants and configuration values
2
+ * Configuration constants
3
3
  */
4
- export declare const TABLE_NAMES: {
5
- readonly MIGRATIONS: "migrations";
4
+ export declare const ENV: {
5
+ readonly TURSO_URL: "TURSO_CONNECTION_URL";
6
+ readonly TURSO_TOKEN: "TURSO_AUTH_TOKEN";
6
7
  };
7
- export declare const ENV_VARS: {
8
- readonly TURSO_CONNECTION_URL: "TURSO_CONNECTION_URL";
9
- readonly TURSO_AUTH_TOKEN: "TURSO_AUTH_TOKEN";
10
- readonly NODE_ENV: "NODE_ENV";
8
+ export declare const DEFAULTS: {
9
+ readonly LOCAL_DB_PATH: "database.db";
10
+ readonly TEST_DB_PATH: "test.db";
11
11
  };
12
- export declare const DEFAULT_CONFIG: {
13
- readonly SYNC_INTERVAL: 60;
14
- readonly LOG_LEVEL: "INFO";
15
- readonly MAX_RETRIES: 3;
16
- readonly TIMEOUT: 5000;
17
- };
18
- export declare const MIGRATION_VERSIONS: {
19
- readonly INITIAL: "001";
20
- };
21
- export declare const HEALTH_THRESHOLDS: {
22
- readonly MAX_CONNECTION_TIME: 1000;
23
- readonly MAX_QUERY_TIME: 1000;
24
- readonly MAX_TOTAL_TIME: 5000;
25
- };
26
- export declare const ERROR_CODES: {
27
- readonly CONNECTION_FAILED: "CONNECTION_FAILED";
28
- readonly SYNC_NOT_SUPPORTED: "SYNC_NOT_SUPPORTED";
29
- readonly SCHEMA_VALIDATION_FAILED: "SCHEMA_VALIDATION_FAILED";
30
- readonly MIGRATION_FAILED: "MIGRATION_FAILED";
31
- readonly SEED_FAILED: "SEED_FAILED";
32
- };
33
- export declare const LOG_LEVELS: {
34
- readonly DEBUG: 0;
35
- readonly INFO: 1;
36
- readonly WARN: 2;
37
- readonly ERROR: 3;
38
- };
39
- export declare const OPERATION_TYPES: {
40
- readonly CONNECTION: "connection";
41
- readonly SYNC: "sync";
42
- readonly MIGRATION: "migration";
43
- readonly SEED: "seed";
44
- readonly HEALTH: "health";
45
- readonly SCHEMA: "schema";
46
- readonly QUERY: "query";
47
- };
48
- export declare const FILE_PATHS: {
49
- readonly DEFAULT_LOCAL_DB: "./local.db";
50
- readonly DEFAULT_REPLICA_DB: "./replica.db";
51
- readonly ENV_FILE: ".env";
52
- };
53
- export type TableName = typeof TABLE_NAMES[keyof typeof TABLE_NAMES];
54
- export type EnvVar = typeof ENV_VARS[keyof typeof ENV_VARS];
55
- export type MigrationVersion = typeof MIGRATION_VERSIONS[keyof typeof MIGRATION_VERSIONS];
56
- export type ErrorCode = typeof ERROR_CODES[keyof typeof ERROR_CODES];
57
- export type LogLevel = typeof LOG_LEVELS[keyof typeof LOG_LEVELS];
58
- export type OperationType = typeof OPERATION_TYPES[keyof typeof OPERATION_TYPES];
59
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../constants/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,WAAW;;CAEd,CAAC;AAMX,eAAO,MAAM,QAAQ;;;;CAIX,CAAC;AAGX,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAGX,eAAO,MAAM,kBAAkB;;CAErB,CAAC;AAGX,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAGX,eAAO,MAAM,WAAW;;;;;;CAMd,CAAC;AAGX,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAGX,eAAO,MAAM,eAAe;;;;;;;;CAQlB,CAAC;AAGX,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAGX,MAAM,MAAM,SAAS,GAAG,OAAO,WAAW,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AACrE,MAAM,MAAM,MAAM,GAAG,OAAO,QAAQ,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAC5D,MAAM,MAAM,gBAAgB,GAAG,OAAO,kBAAkB,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAC1F,MAAM,MAAM,SAAS,GAAG,OAAO,WAAW,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AACrE,MAAM,MAAM,QAAQ,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../constants/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,GAAG;;;CAGN,CAAC;AAEX,eAAO,MAAM,QAAQ;;;CAGX,CAAC"}
@@ -1,67 +1,15 @@
1
1
  "use strict";
2
2
  /**
3
- * Database constants and configuration values
3
+ * Configuration constants
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FILE_PATHS = exports.OPERATION_TYPES = exports.LOG_LEVELS = exports.ERROR_CODES = exports.HEALTH_THRESHOLDS = exports.MIGRATION_VERSIONS = exports.DEFAULT_CONFIG = exports.ENV_VARS = exports.TABLE_NAMES = void 0;
7
- // Database table names (now dynamic from schema.ts)
8
- exports.TABLE_NAMES = {
9
- MIGRATIONS: 'migrations', // System table
10
- };
11
- // Note: Column names are now dynamic from schema.ts
12
- // No hardcoded column names needed since the system is generic
13
- // Environment variable names
14
- exports.ENV_VARS = {
15
- TURSO_CONNECTION_URL: 'TURSO_CONNECTION_URL',
16
- TURSO_AUTH_TOKEN: 'TURSO_AUTH_TOKEN',
17
- NODE_ENV: 'NODE_ENV',
18
- };
19
- // Default configuration values
20
- exports.DEFAULT_CONFIG = {
21
- SYNC_INTERVAL: 60, // seconds
22
- LOG_LEVEL: 'INFO',
23
- MAX_RETRIES: 3,
24
- TIMEOUT: 5000, // milliseconds
25
- };
26
- // Migration versions (now dynamic from schema.ts)
27
- exports.MIGRATION_VERSIONS = {
28
- INITIAL: '001',
29
- };
30
- // Health check thresholds
31
- exports.HEALTH_THRESHOLDS = {
32
- MAX_CONNECTION_TIME: 1000, // milliseconds
33
- MAX_QUERY_TIME: 1000, // milliseconds
34
- MAX_TOTAL_TIME: 5000, // milliseconds
35
- };
36
- // Error codes
37
- exports.ERROR_CODES = {
38
- CONNECTION_FAILED: 'CONNECTION_FAILED',
39
- SYNC_NOT_SUPPORTED: 'SYNC_NOT_SUPPORTED',
40
- SCHEMA_VALIDATION_FAILED: 'SCHEMA_VALIDATION_FAILED',
41
- MIGRATION_FAILED: 'MIGRATION_FAILED',
42
- SEED_FAILED: 'SEED_FAILED',
43
- };
44
- // Log levels
45
- exports.LOG_LEVELS = {
46
- DEBUG: 0,
47
- INFO: 1,
48
- WARN: 2,
49
- ERROR: 3,
50
- };
51
- // Database operation types
52
- exports.OPERATION_TYPES = {
53
- CONNECTION: 'connection',
54
- SYNC: 'sync',
55
- MIGRATION: 'migration',
56
- SEED: 'seed',
57
- HEALTH: 'health',
58
- SCHEMA: 'schema',
59
- QUERY: 'query',
60
- };
61
- // File paths
62
- exports.FILE_PATHS = {
63
- DEFAULT_LOCAL_DB: './local.db',
64
- DEFAULT_REPLICA_DB: './replica.db',
65
- ENV_FILE: '.env',
6
+ exports.DEFAULTS = exports.ENV = void 0;
7
+ exports.ENV = {
8
+ TURSO_URL: 'TURSO_CONNECTION_URL',
9
+ TURSO_TOKEN: 'TURSO_AUTH_TOKEN',
10
+ };
11
+ exports.DEFAULTS = {
12
+ LOCAL_DB_PATH: 'database.db',
13
+ TEST_DB_PATH: 'test.db',
66
14
  };
67
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../constants/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,oDAAoD;AACvC,QAAA,WAAW,GAAG;IACzB,UAAU,EAAE,YAAY,EAAE,eAAe;CACjC,CAAC;AAEX,oDAAoD;AACpD,+DAA+D;AAE/D,6BAA6B;AAChB,QAAA,QAAQ,GAAG;IACtB,oBAAoB,EAAE,sBAAsB;IAC5C,gBAAgB,EAAE,kBAAkB;IACpC,QAAQ,EAAE,UAAU;CACZ,CAAC;AAEX,+BAA+B;AAClB,QAAA,cAAc,GAAG;IAC5B,aAAa,EAAE,EAAE,EAAE,UAAU;IAC7B,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE,CAAC;IACd,OAAO,EAAE,IAAI,EAAE,eAAe;CACtB,CAAC;AAEX,kDAAkD;AACrC,QAAA,kBAAkB,GAAG;IAChC,OAAO,EAAE,KAAK;CACN,CAAC;AAEX,0BAA0B;AACb,QAAA,iBAAiB,GAAG;IAC/B,mBAAmB,EAAE,IAAI,EAAE,eAAe;IAC1C,cAAc,EAAE,IAAI,EAAE,eAAe;IACrC,cAAc,EAAE,IAAI,EAAE,eAAe;CAC7B,CAAC;AAEX,cAAc;AACD,QAAA,WAAW,GAAG;IACzB,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,wBAAwB,EAAE,0BAA0B;IACpD,gBAAgB,EAAE,kBAAkB;IACpC,WAAW,EAAE,aAAa;CAClB,CAAC;AAEX,aAAa;AACA,QAAA,UAAU,GAAG;IACxB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACA,CAAC;AAEX,2BAA2B;AACd,QAAA,eAAe,GAAG;IAC7B,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACN,CAAC;AAEX,aAAa;AACA,QAAA,UAAU,GAAG;IACxB,gBAAgB,EAAE,YAAY;IAC9B,kBAAkB,EAAE,cAAc;IAClC,QAAQ,EAAE,MAAM;CACR,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../constants/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,GAAG,GAAG;IACjB,SAAS,EAAE,sBAAsB;IACjC,WAAW,EAAE,kBAAkB;CACvB,CAAC;AAEE,QAAA,QAAQ,GAAG;IACtB,aAAa,EAAE,aAAa;IAC5B,YAAY,EAAE,SAAS;CACf,CAAC"}
@@ -1,17 +1,7 @@
1
+ import type { DatabaseConfig } from '../types';
1
2
  /**
2
- * Database configuration interface
3
- */
4
- export interface DatabaseConfig {
5
- connectionUrl: string;
6
- authToken: string;
7
- syncInterval: number;
8
- }
9
- /**
10
- * Get database configuration from environment variables
3
+ * Get Turso database configuration from environment variables.
4
+ * Throws if required variables are missing.
11
5
  */
12
6
  export declare function getDatabaseConfig(): DatabaseConfig;
13
- /**
14
- * Validate database configuration
15
- */
16
- export declare function validateDatabaseConfig(): boolean;
17
7
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../core/config.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAiBlD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAQhD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../core/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI/C;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CASlD"}
@@ -1,40 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDatabaseConfig = getDatabaseConfig;
4
- exports.validateDatabaseConfig = validateDatabaseConfig;
5
4
  const dotenv_1 = require("dotenv");
6
- const errors_1 = require("../types/errors");
7
- // Load environment variables
8
5
  (0, dotenv_1.config)({ path: '.env' });
9
6
  /**
10
- * Get database configuration from environment variables
7
+ * Get Turso database configuration from environment variables.
8
+ * Throws if required variables are missing.
11
9
  */
12
10
  function getDatabaseConfig() {
13
11
  const connectionUrl = process.env.TURSO_CONNECTION_URL;
14
12
  const authToken = process.env.TURSO_AUTH_TOKEN;
15
- if (!connectionUrl) {
16
- throw new errors_1.DatabaseError('TURSO_CONNECTION_URL environment variable is required', 'config');
17
- }
18
- if (!authToken) {
19
- throw new errors_1.DatabaseError('TURSO_AUTH_TOKEN environment variable is required', 'config');
20
- }
21
- return {
22
- connectionUrl,
23
- authToken,
24
- syncInterval: 60, // Default sync interval in seconds
25
- };
26
- }
27
- /**
28
- * Validate database configuration
29
- */
30
- function validateDatabaseConfig() {
31
- try {
32
- getDatabaseConfig();
33
- return true;
34
- }
35
- catch (error) {
36
- console.error('Database configuration validation failed:', error);
37
- return false;
13
+ if (!connectionUrl || !authToken) {
14
+ throw new Error('Missing TURSO_CONNECTION_URL or TURSO_AUTH_TOKEN');
38
15
  }
16
+ return { connectionUrl, authToken };
39
17
  }
40
18
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../core/config.ts"],"names":[],"mappings":";;AAkBA,8CAiBC;AAKD,wDAQC;AAhDD,mCAAgC;AAChC,4CAAgD;AAEhD,6BAA6B;AAC7B,IAAA,eAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAWzB;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACvD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAE/C,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,sBAAa,CAAC,uDAAuD,EAAE,QAAQ,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,sBAAa,CAAC,mDAAmD,EAAE,QAAQ,CAAC,CAAC;IACzF,CAAC;IAED,OAAO;QACL,aAAa;QACb,SAAS;QACT,YAAY,EAAE,EAAE,EAAE,mCAAmC;KACtD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB;IACpC,IAAI,CAAC;QACH,iBAAiB,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../core/config.ts"],"names":[],"mappings":";;AASA,8CASC;AAlBD,mCAAgC;AAGhC,IAAA,eAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAEzB;;;GAGG;AACH,SAAgB,iBAAiB;IAC/B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACvD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAE/C,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;AACtC,CAAC"}
@@ -1,29 +1,20 @@
1
+ import { drizzle } from 'drizzle-orm/libsql';
2
+ type DrizzleInstance = ReturnType<typeof drizzle>;
1
3
  /**
2
- * Database connection management
3
- * Handles the creation and configuration of database connections
4
+ * Thread-safe singleton database connection manager.
5
+ * Supports both Turso (remote) and local SQLite databases.
4
6
  */
5
7
  export declare class DatabaseConnection {
6
8
  private static instance;
7
- /**
8
- * Get or create the database connection instance
9
- */
10
- static getInstance(): import("drizzle-orm/libsql").LibSQLDatabase<Record<string, unknown>> & {
11
- $client: import("@libsql/client").Client;
12
- };
13
- /**
14
- * Create a new database connection
15
- */
9
+ private static pending;
10
+ /** Get the database connection instance (creates if needed) */
11
+ static getInstance(): Promise<DrizzleInstance>;
12
+ /** Create a new database connection */
16
13
  private static createConnection;
17
- /**
18
- * Reset the connection instance (useful for testing)
19
- */
14
+ /** Reset the connection (for testing) */
20
15
  static reset(): void;
21
- /**
22
- * Check if connection is established
23
- */
16
+ /** Check if a connection exists */
24
17
  static isConnected(): boolean;
25
18
  }
26
- export declare const db: import("drizzle-orm/libsql").LibSQLDatabase<Record<string, unknown>> & {
27
- $client: import("@libsql/client").Client;
28
- };
19
+ export {};
29
20
  //# sourceMappingURL=connection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../core/connection.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2C;IAElE;;OAEG;IACH,MAAM,CAAC,WAAW;;;IAOlB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAmC/B;;OAEG;IACH,MAAM,CAAC,KAAK;IAIZ;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,OAAO;CAG9B;AAGD,eAAO,MAAM,EAAE;;CAAmC,CAAC"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../core/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAK7C,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAElD;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgC;IACvD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAyC;IAE/D,+DAA+D;WAClD,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;IAcpD,uCAAuC;mBAClB,gBAAgB;IAmBrC,yCAAyC;IACzC,MAAM,CAAC,KAAK,IAAI,IAAI;IAKpB,mCAAmC;IACnC,MAAM,CAAC,WAAW,IAAI,OAAO;CAG9B"}