@semics-tech/mongolite 1.0.0

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 (48) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +179 -0
  3. package/dist/adapters/browser.d.ts +97 -0
  4. package/dist/adapters/browser.js +103 -0
  5. package/dist/adapters/browser.js.map +1 -0
  6. package/dist/adapters/cloudflare.d.ts +106 -0
  7. package/dist/adapters/cloudflare.js +94 -0
  8. package/dist/adapters/cloudflare.js.map +1 -0
  9. package/dist/bin/mongolite-debug.d.ts +2 -0
  10. package/dist/bin/mongolite-debug.js +115 -0
  11. package/dist/bin/mongolite-debug.js.map +1 -0
  12. package/dist/changeStream.d.ts +114 -0
  13. package/dist/changeStream.js +338 -0
  14. package/dist/changeStream.js.map +1 -0
  15. package/dist/cloudflare.d.ts +39 -0
  16. package/dist/cloudflare.js +39 -0
  17. package/dist/cloudflare.js.map +1 -0
  18. package/dist/collection.d.ts +274 -0
  19. package/dist/collection.js +1706 -0
  20. package/dist/collection.js.map +1 -0
  21. package/dist/cursors/findCursor.d.ts +101 -0
  22. package/dist/cursors/findCursor.js +757 -0
  23. package/dist/cursors/findCursor.js.map +1 -0
  24. package/dist/db.d.ts +116 -0
  25. package/dist/db.js +254 -0
  26. package/dist/db.js.map +1 -0
  27. package/dist/debugger/query-debugger.d.ts +22 -0
  28. package/dist/debugger/query-debugger.js +258 -0
  29. package/dist/debugger/query-debugger.js.map +1 -0
  30. package/dist/index.d.ts +30 -0
  31. package/dist/index.js +40 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/mongo-client.d.ts +56 -0
  34. package/dist/mongo-client.js +55 -0
  35. package/dist/mongo-client.js.map +1 -0
  36. package/dist/types.d.ts +318 -0
  37. package/dist/types.js +2 -0
  38. package/dist/types.js.map +1 -0
  39. package/dist/utils/indexing.d.ts +4 -0
  40. package/dist/utils/indexing.js +43 -0
  41. package/dist/utils/indexing.js.map +1 -0
  42. package/dist/utils/projection.d.ts +16 -0
  43. package/dist/utils/projection.js +98 -0
  44. package/dist/utils/projection.js.map +1 -0
  45. package/dist/utils/queryOperators.d.ts +16 -0
  46. package/dist/utils/queryOperators.js +138 -0
  47. package/dist/utils/queryOperators.js.map +1 -0
  48. package/package.json +92 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findCursor.js","sourceRoot":"","sources":["../../src/cursors/findCursor.ts"],"names":[],"mappings":"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"}
package/dist/db.d.ts ADDED
@@ -0,0 +1,116 @@
1
+ import Database from 'better-sqlite3';
2
+ import type { Statement } from 'better-sqlite3';
3
+ /**
4
+ * Common interface for database adapters.
5
+ * Implement this interface to support different SQLite backends (e.g. better-sqlite3, Cloudflare Durable Objects).
6
+ */
7
+ export interface IDatabaseAdapter {
8
+ connect(): Promise<void>;
9
+ run(sql: string, params?: unknown[]): Promise<{
10
+ lastID: number;
11
+ changes: number;
12
+ }>;
13
+ get<T>(sql: string, params?: unknown[]): Promise<T | undefined>;
14
+ all<T>(sql: string, params?: unknown[]): Promise<T[]>;
15
+ exec(sql: string): Promise<void>;
16
+ close(): Promise<void>;
17
+ }
18
+ export interface MongoLiteOptions {
19
+ filePath: string;
20
+ verbose?: boolean;
21
+ readOnly?: boolean;
22
+ WAL?: boolean;
23
+ }
24
+ /**
25
+ * SQLiteDB class provides a wrapper around the better-sqlite3 library
26
+ * to simplify database operations.
27
+ */
28
+ export declare class SQLiteDB implements IDatabaseAdapter {
29
+ private db;
30
+ private readonly filePath;
31
+ private readonly verbose;
32
+ private readonly readOnly;
33
+ private readonly WAL;
34
+ private openPromise;
35
+ /**
36
+ * Creates an instance of SQLiteDB.
37
+ * @param {string | MongoLiteOptions} dbPathOrOptions - The path to the SQLite database file or an options object.
38
+ * Use ':memory:' for an in-memory database.
39
+ */
40
+ constructor(dbPathOrOptions: string | MongoLiteOptions);
41
+ /**
42
+ * Opens the database connection if it's not already open.
43
+ * @returns {Promise<void>} A promise that resolves when the connection is open.
44
+ */
45
+ connect(): Promise<void>;
46
+ /**
47
+ * Ensures the database connection is open before performing an operation.
48
+ * @private
49
+ * @returns {Promise<Database.Database>} The active database instance.
50
+ * @throws {Error} If the database is not connected.
51
+ */
52
+ private ensureConnected;
53
+ /**
54
+ * Executes a SQL query that does not return rows (e.g., INSERT, UPDATE, DELETE, CREATE).
55
+ * @param {string} sql - The SQL query string.
56
+ * @param {any[]} [params=[]] - Parameters for the SQL query.
57
+ * @returns {Promise<{ lastID: number, changes: number }>} Result of the execution.
58
+ */
59
+ run(sql: string, params?: unknown[]): Promise<{
60
+ lastID: number;
61
+ changes: number;
62
+ }>;
63
+ /**
64
+ * Executes a SQL query that returns a single row.
65
+ * @param {string} sql - The SQL query string.
66
+ * @param {any[]} [params=[]] - Parameters for the SQL query.
67
+ * @returns {Promise<T | undefined>} The first row found, or undefined.
68
+ */
69
+ get<T>(sql: string, params?: unknown[]): Promise<T | undefined>;
70
+ /**
71
+ * Executes a SQL query that returns multiple rows.
72
+ * @param {string} sql - The SQL query string.
73
+ * @param {any[]} [params=[]] - Parameters for the SQL query.
74
+ * @returns {Promise<T[]>} An array of rows.
75
+ */
76
+ all<T>(sql: string, params?: unknown[]): Promise<T[]>;
77
+ /**
78
+ * Executes multiple SQL statements.
79
+ * @param {string} sql - SQL string with multiple statements.
80
+ * @returns {Promise<void>}
81
+ */
82
+ exec(sql: string): Promise<void>;
83
+ /**
84
+ * Closes the database connection.
85
+ * @returns {Promise<void>} A promise that resolves when the connection is closed.
86
+ */
87
+ close(): Promise<void>;
88
+ /**
89
+ * Gets the underlying better-sqlite3 Database instance.
90
+ * Useful for operations not covered by this wrapper, like transactions.
91
+ * @returns {Promise<Database.Database>} The raw database object.
92
+ * @throws {Error} If the database is not connected.
93
+ */
94
+ getDbInstance(): Promise<Database.Database>;
95
+ /**
96
+ * Prepares a SQL statement for later execution.
97
+ * @param {string} sql - The SQL query string.
98
+ * @returns {Promise<Statement>} A prepared statement that can be executed multiple times.
99
+ */
100
+ prepare(sql: string): Promise<Statement>;
101
+ /**
102
+ * Begins a transaction.
103
+ * @returns {Promise<void>}
104
+ */
105
+ beginTransaction(): Promise<void>;
106
+ /**
107
+ * Commits a transaction.
108
+ * @returns {Promise<void>}
109
+ */
110
+ commitTransaction(): Promise<void>;
111
+ /**
112
+ * Rolls back a transaction.
113
+ * @returns {Promise<void>}
114
+ */
115
+ rollbackTransaction(): Promise<void>;
116
+ }
package/dist/db.js ADDED
@@ -0,0 +1,254 @@
1
+ import Database from 'better-sqlite3';
2
+ /**
3
+ * SQLiteDB class provides a wrapper around the better-sqlite3 library
4
+ * to simplify database operations.
5
+ */
6
+ export class SQLiteDB {
7
+ /**
8
+ * Creates an instance of SQLiteDB.
9
+ * @param {string | MongoLiteOptions} dbPathOrOptions - The path to the SQLite database file or an options object.
10
+ * Use ':memory:' for an in-memory database.
11
+ */
12
+ constructor(dbPathOrOptions) {
13
+ this.db = null;
14
+ this.openPromise = null;
15
+ if (typeof dbPathOrOptions === 'string') {
16
+ this.filePath = dbPathOrOptions;
17
+ this.verbose = false;
18
+ this.readOnly = false;
19
+ this.WAL = false;
20
+ }
21
+ else {
22
+ this.filePath = dbPathOrOptions.filePath;
23
+ this.verbose = dbPathOrOptions.verbose || false;
24
+ this.readOnly = dbPathOrOptions.readOnly || false;
25
+ this.WAL = dbPathOrOptions.WAL || true;
26
+ }
27
+ }
28
+ /**
29
+ * Opens the database connection if it's not already open.
30
+ * @returns {Promise<void>} A promise that resolves when the connection is open.
31
+ */
32
+ async connect() {
33
+ if (this.db && this.openPromise) {
34
+ return this.openPromise;
35
+ }
36
+ if (this.db) {
37
+ // Already connected and openPromise is null (should not happen with proper logic)
38
+ return Promise.resolve();
39
+ }
40
+ this.openPromise = new Promise((resolve, reject) => {
41
+ try {
42
+ const options = {
43
+ readonly: this.readOnly,
44
+ verbose: this.verbose ? console.log : undefined,
45
+ };
46
+ this.db = new Database(this.filePath, options);
47
+ // Enable Write-Ahead Logging if requested
48
+ if (this.WAL && !this.readOnly) {
49
+ this.db.pragma('journal_mode = WAL');
50
+ }
51
+ // Register regexp UDF for $regex operator support.
52
+ // WARNING: Patterns are compiled via JavaScript RegExp. User-supplied patterns that are
53
+ // not validated for catastrophic backtracking (ReDoS) could block the event loop.
54
+ // Avoid using untrusted/unvalidated patterns with $regex in security-sensitive contexts.
55
+ this.db.function('regexp', { deterministic: true }, (pattern, value) => {
56
+ if (typeof pattern !== 'string' || value === null || value === undefined)
57
+ return 0;
58
+ try {
59
+ return new RegExp(pattern).test(String(value)) ? 1 : 0;
60
+ }
61
+ catch {
62
+ return 0;
63
+ }
64
+ });
65
+ // Register regexp_flags UDF for $regex with $options support
66
+ this.db.function('regexp_flags', { deterministic: true }, (pattern, flags, value) => {
67
+ if (typeof pattern !== 'string' || value === null || value === undefined)
68
+ return 0;
69
+ try {
70
+ const f = typeof flags === 'string' ? flags : '';
71
+ return new RegExp(pattern, f).test(String(value)) ? 1 : 0;
72
+ }
73
+ catch {
74
+ return 0;
75
+ }
76
+ });
77
+ if (this.verbose) {
78
+ console.log(`SQLite database opened: ${this.filePath}`);
79
+ }
80
+ resolve();
81
+ }
82
+ catch (err) {
83
+ console.error(`Error opening database ${this.filePath}:`, err.message);
84
+ this.db = null;
85
+ this.openPromise = null;
86
+ reject(err);
87
+ }
88
+ });
89
+ return this.openPromise;
90
+ }
91
+ /**
92
+ * Ensures the database connection is open before performing an operation.
93
+ * @private
94
+ * @returns {Promise<Database.Database>} The active database instance.
95
+ * @throws {Error} If the database is not connected.
96
+ */
97
+ async ensureConnected() {
98
+ if (!this.db || !this.openPromise) {
99
+ await this.connect();
100
+ }
101
+ else {
102
+ await this.openPromise; // Wait for any ongoing connection attempt
103
+ }
104
+ if (!this.db) {
105
+ // This should ideally not be reached if connect() works correctly
106
+ throw new Error('Database is not connected. Connection attempt failed.');
107
+ }
108
+ return this.db;
109
+ }
110
+ /**
111
+ * Executes a SQL query that does not return rows (e.g., INSERT, UPDATE, DELETE, CREATE).
112
+ * @param {string} sql - The SQL query string.
113
+ * @param {any[]} [params=[]] - Parameters for the SQL query.
114
+ * @returns {Promise<{ lastID: number, changes: number }>} Result of the execution.
115
+ */
116
+ async run(sql, params = []) {
117
+ const dbInstance = await this.ensureConnected();
118
+ try {
119
+ const result = dbInstance.prepare(sql).run(...params);
120
+ return {
121
+ lastID: result.lastInsertRowid,
122
+ changes: result.changes,
123
+ };
124
+ }
125
+ catch (err) {
126
+ console.error(`Error running SQL: ${sql}`, err);
127
+ throw err;
128
+ }
129
+ }
130
+ /**
131
+ * Executes a SQL query that returns a single row.
132
+ * @param {string} sql - The SQL query string.
133
+ * @param {any[]} [params=[]] - Parameters for the SQL query.
134
+ * @returns {Promise<T | undefined>} The first row found, or undefined.
135
+ */
136
+ async get(sql, params = []) {
137
+ const dbInstance = await this.ensureConnected();
138
+ try {
139
+ return dbInstance.prepare(sql).get(...params);
140
+ }
141
+ catch (err) {
142
+ console.error(`Error getting SQL: ${sql}`, err);
143
+ throw err;
144
+ }
145
+ }
146
+ /**
147
+ * Executes a SQL query that returns multiple rows.
148
+ * @param {string} sql - The SQL query string.
149
+ * @param {any[]} [params=[]] - Parameters for the SQL query.
150
+ * @returns {Promise<T[]>} An array of rows.
151
+ */
152
+ async all(sql, params = []) {
153
+ const dbInstance = await this.ensureConnected();
154
+ try {
155
+ return dbInstance.prepare(sql).all(...params);
156
+ }
157
+ catch (err) {
158
+ console.error(`Error getting all SQL: ${sql}`, err);
159
+ throw err;
160
+ }
161
+ }
162
+ /**
163
+ * Executes multiple SQL statements.
164
+ * @param {string} sql - SQL string with multiple statements.
165
+ * @returns {Promise<void>}
166
+ */
167
+ async exec(sql) {
168
+ const dbInstance = await this.ensureConnected();
169
+ try {
170
+ dbInstance.exec(sql);
171
+ return Promise.resolve();
172
+ }
173
+ catch (err) {
174
+ console.error(`Error executing SQL: ${sql}`, err);
175
+ throw err;
176
+ }
177
+ }
178
+ /**
179
+ * Closes the database connection.
180
+ * @returns {Promise<void>} A promise that resolves when the connection is closed.
181
+ */
182
+ async close() {
183
+ if (this.openPromise) {
184
+ await this.openPromise; // Ensure any pending connection attempt is finished
185
+ }
186
+ if (this.db) {
187
+ try {
188
+ this.db.close();
189
+ if (this.verbose) {
190
+ console.log(`SQLite database closed: ${this.filePath}`);
191
+ }
192
+ }
193
+ catch (err) {
194
+ console.error(`Error closing database ${this.filePath}:`, err.message);
195
+ throw err; // Re-throw the error to indicate failure
196
+ }
197
+ finally {
198
+ this.db = null;
199
+ this.openPromise = null;
200
+ }
201
+ }
202
+ else {
203
+ // If db is null, it's already considered closed or was never opened.
204
+ this.db = null;
205
+ this.openPromise = null;
206
+ }
207
+ }
208
+ /**
209
+ * Gets the underlying better-sqlite3 Database instance.
210
+ * Useful for operations not covered by this wrapper, like transactions.
211
+ * @returns {Promise<Database.Database>} The raw database object.
212
+ * @throws {Error} If the database is not connected.
213
+ */
214
+ async getDbInstance() {
215
+ return this.ensureConnected();
216
+ }
217
+ /**
218
+ * Prepares a SQL statement for later execution.
219
+ * @param {string} sql - The SQL query string.
220
+ * @returns {Promise<Statement>} A prepared statement that can be executed multiple times.
221
+ */
222
+ async prepare(sql) {
223
+ const dbInstance = await this.ensureConnected();
224
+ return dbInstance.prepare(sql);
225
+ }
226
+ /**
227
+ * Begins a transaction.
228
+ * @returns {Promise<void>}
229
+ */
230
+ async beginTransaction() {
231
+ const dbInstance = await this.ensureConnected();
232
+ dbInstance.prepare('BEGIN').run();
233
+ return Promise.resolve();
234
+ }
235
+ /**
236
+ * Commits a transaction.
237
+ * @returns {Promise<void>}
238
+ */
239
+ async commitTransaction() {
240
+ const dbInstance = await this.ensureConnected();
241
+ dbInstance.prepare('COMMIT').run();
242
+ return Promise.resolve();
243
+ }
244
+ /**
245
+ * Rolls back a transaction.
246
+ * @returns {Promise<void>}
247
+ */
248
+ async rollbackTransaction() {
249
+ const dbInstance = await this.ensureConnected();
250
+ dbInstance.prepare('ROLLBACK').run();
251
+ return Promise.resolve();
252
+ }
253
+ }
254
+ //# sourceMappingURL=db.js.map
package/dist/db.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export interface DebuggerOptions {
2
+ verbose?: boolean;
3
+ collection?: string;
4
+ database?: string;
5
+ }
6
+ export declare class QueryDebugger {
7
+ private client;
8
+ private rl;
9
+ private currentCollection;
10
+ private lastFilter;
11
+ private lastSqlQuery;
12
+ constructor(options?: DebuggerOptions);
13
+ start(): Promise<void>;
14
+ private handleCommand;
15
+ private showHelp;
16
+ private listCollections;
17
+ private handleFindCommand;
18
+ private handleSqlCommand;
19
+ private showLastQuery;
20
+ private showSample;
21
+ private cleanup;
22
+ }