@op-engineering/op-sqlite 15.2.3 → 15.2.5

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.
@@ -0,0 +1,53 @@
1
+ import type { BatchQueryResult, DB, FileLoadResult, PreparedStatement, QueryResult, Scalar, SQLBatchTuple, Transaction, UpdateHookOperation } from './types';
2
+ export declare class NodeDatabase implements DB {
3
+ private db;
4
+ private dbPath;
5
+ private updateHookCallback?;
6
+ private commitHookCallback?;
7
+ private rollbackHookCallback?;
8
+ constructor(name: string, location?: string);
9
+ private setupHooks;
10
+ private convertParams;
11
+ private convertRows;
12
+ executeSync(query: string, params?: Scalar[]): QueryResult;
13
+ execute(query: string, params?: Scalar[]): Promise<QueryResult>;
14
+ executeWithHostObjects(query: string, params?: Scalar[]): Promise<QueryResult>;
15
+ executeRawSync(query: string, params?: Scalar[]): any[];
16
+ executeRaw(query: string, params?: Scalar[]): Promise<any[]>;
17
+ executeBatch(commands: SQLBatchTuple[]): Promise<BatchQueryResult>;
18
+ loadFile(location: string): Promise<FileLoadResult>;
19
+ transaction(fn: (tx: Transaction) => Promise<void>): Promise<void>;
20
+ prepareStatement(query: string): PreparedStatement;
21
+ attach(params: {
22
+ secondaryDbFileName: string;
23
+ alias: string;
24
+ location?: string;
25
+ }): void;
26
+ detach(alias: string): void;
27
+ updateHook(callback?: ((params: {
28
+ table: string;
29
+ operation: UpdateHookOperation;
30
+ row?: any;
31
+ rowId: number;
32
+ }) => void) | null): void;
33
+ commitHook(callback?: (() => void) | null): void;
34
+ rollbackHook(callback?: (() => void) | null): void;
35
+ loadExtension(path: string, entryPoint?: string): void;
36
+ getDbPath(location?: string): string;
37
+ reactiveExecute(params: {
38
+ query: string;
39
+ arguments: any[];
40
+ fireOn: {
41
+ table: string;
42
+ ids?: number[];
43
+ }[];
44
+ callback: (response: any) => void;
45
+ }): () => void;
46
+ sync(): void;
47
+ setReservedBytes(reservedBytes: number): void;
48
+ getReservedBytes(): number;
49
+ flushPendingReactiveQueries(): Promise<void>;
50
+ close(): void;
51
+ delete(location?: string): void;
52
+ }
53
+ //# sourceMappingURL=database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,280 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import Database from 'better-sqlite3';
4
+ export class NodeDatabase {
5
+ constructor(name, location) {
6
+ this.dbPath = ':memory:';
7
+ if (location !== ":memory:") {
8
+ const dbLocation = location || './';
9
+ this.dbPath = path.join(dbLocation, name);
10
+ // Ensure directory exists
11
+ const dir = path.dirname(this.dbPath);
12
+ if (!fs.existsSync(dir)) {
13
+ fs.mkdirSync(dir, { recursive: true });
14
+ }
15
+ }
16
+ this.db = new Database(this.dbPath);
17
+ this.setupHooks();
18
+ }
19
+ setupHooks() {
20
+ // Setup update hook if needed
21
+ // if (this.db.function) {
22
+ // Note: better-sqlite3 doesn't have direct update hook support
23
+ // This is a limitation compared to the native implementation
24
+ // }
25
+ }
26
+ convertParams(params) {
27
+ if (!params)
28
+ return undefined;
29
+ return params.map(param => {
30
+ if (param instanceof ArrayBuffer) {
31
+ return Buffer.from(param);
32
+ }
33
+ else if (ArrayBuffer.isView(param)) {
34
+ return Buffer.from(param.buffer, param.byteOffset, param.byteLength);
35
+ }
36
+ return param;
37
+ });
38
+ }
39
+ convertRows(stmt, rows) {
40
+ const columnNames = stmt.columns().map(col => col.name);
41
+ const metadata = stmt.columns().map((col, index) => ({
42
+ name: col.name,
43
+ type: col.type || 'UNKNOWN',
44
+ index,
45
+ }));
46
+ return {
47
+ rowsAffected: 0,
48
+ rows: rows,
49
+ columnNames,
50
+ metadata,
51
+ };
52
+ }
53
+ executeSync(query, params) {
54
+ try {
55
+ const convertedParams = this.convertParams(params);
56
+ const stmt = this.db.prepare(query);
57
+ // Check if it's a SELECT query
58
+ const isSelect = query.trim().toUpperCase().startsWith('SELECT');
59
+ if (isSelect) {
60
+ const rows = convertedParams
61
+ ? stmt.all(...convertedParams)
62
+ : stmt.all();
63
+ return this.convertRows(stmt, rows);
64
+ }
65
+ else {
66
+ const info = convertedParams
67
+ ? stmt.run(...convertedParams)
68
+ : stmt.run();
69
+ return {
70
+ rowsAffected: info.changes,
71
+ insertId: info.lastInsertRowid,
72
+ rows: [],
73
+ };
74
+ }
75
+ }
76
+ catch (error) {
77
+ throw new Error(`SQL Error: ${error.message}`);
78
+ }
79
+ }
80
+ async execute(query, params) {
81
+ return Promise.resolve(this.executeSync(query, params));
82
+ }
83
+ async executeWithHostObjects(query, params) {
84
+ // For Node.js, this is the same as execute since we don't have HostObjects
85
+ return this.execute(query, params);
86
+ }
87
+ executeRawSync(query, params) {
88
+ try {
89
+ const convertedParams = this.convertParams(params);
90
+ const stmt = this.db.prepare(query);
91
+ const rows = convertedParams
92
+ ? stmt.raw().all(...convertedParams)
93
+ : stmt.raw().all();
94
+ return rows;
95
+ }
96
+ catch (error) {
97
+ throw new Error(`SQL Error: ${error.message}`);
98
+ }
99
+ }
100
+ async executeRaw(query, params) {
101
+ return Promise.resolve(this.executeRawSync(query, params));
102
+ }
103
+ async executeBatch(commands) {
104
+ let totalRowsAffected = 0;
105
+ const transaction = this.db.transaction(() => {
106
+ for (const command of commands) {
107
+ const [query, params] = command;
108
+ if (Array.isArray(params) && params.length > 0 && Array.isArray(params[0])) {
109
+ // Multiple parameter sets
110
+ const stmt = this.db.prepare(query);
111
+ for (const paramSet of params) {
112
+ const converted = this.convertParams(paramSet);
113
+ const info = converted ? stmt.run(...converted) : stmt.run();
114
+ totalRowsAffected += info.changes;
115
+ }
116
+ }
117
+ else {
118
+ // Single parameter set or no parameters
119
+ const converted = this.convertParams(params);
120
+ const stmt = this.db.prepare(query);
121
+ const info = converted ? stmt.run(...converted) : stmt.run();
122
+ totalRowsAffected += info.changes;
123
+ }
124
+ }
125
+ });
126
+ transaction();
127
+ return { rowsAffected: totalRowsAffected };
128
+ }
129
+ async loadFile(location) {
130
+ const fileContent = fs.readFileSync(location, 'utf-8');
131
+ const statements = fileContent
132
+ .split(';')
133
+ .map(s => s.trim())
134
+ .filter(s => s.length > 0);
135
+ let totalRowsAffected = 0;
136
+ let commandCount = 0;
137
+ const transaction = this.db.transaction(() => {
138
+ for (const statement of statements) {
139
+ const info = this.db.prepare(statement).run();
140
+ totalRowsAffected += info.changes;
141
+ commandCount++;
142
+ }
143
+ });
144
+ transaction();
145
+ return {
146
+ rowsAffected: totalRowsAffected,
147
+ commands: commandCount,
148
+ };
149
+ }
150
+ async transaction(fn) {
151
+ const transaction = {
152
+ execute: async (query, params) => {
153
+ return this.execute(query, params);
154
+ },
155
+ commit: async () => {
156
+ return { rowsAffected: 0, rows: [] };
157
+ },
158
+ rollback: () => {
159
+ throw new Error('ROLLBACK');
160
+ },
161
+ };
162
+ // Manually control transaction with BEGIN/COMMIT/ROLLBACK to support async operations
163
+ this.executeSync('BEGIN TRANSACTION');
164
+ try {
165
+ await fn(transaction);
166
+ this.executeSync('COMMIT');
167
+ if (this.commitHookCallback) {
168
+ this.commitHookCallback();
169
+ }
170
+ }
171
+ catch (error) {
172
+ this.executeSync('ROLLBACK');
173
+ if (this.rollbackHookCallback) {
174
+ this.rollbackHookCallback();
175
+ }
176
+ throw error;
177
+ }
178
+ }
179
+ prepareStatement(query) {
180
+ const stmt = this.db.prepare(query);
181
+ let boundParams = [];
182
+ return {
183
+ bindSync: (params) => {
184
+ boundParams = this.convertParams(params) || [];
185
+ },
186
+ bind: async (params) => {
187
+ boundParams = this.convertParams(params) || [];
188
+ },
189
+ execute: async () => {
190
+ const isSelect = query.trim().toUpperCase().startsWith('SELECT');
191
+ if (isSelect) {
192
+ const rows = boundParams.length > 0
193
+ ? stmt.all(...boundParams)
194
+ : stmt.all();
195
+ return this.convertRows(stmt, rows);
196
+ }
197
+ else {
198
+ const info = boundParams.length > 0
199
+ ? stmt.run(...boundParams)
200
+ : stmt.run();
201
+ return {
202
+ rowsAffected: info.changes,
203
+ insertId: info.lastInsertRowid,
204
+ rows: [],
205
+ };
206
+ }
207
+ },
208
+ };
209
+ }
210
+ attach(params) {
211
+ const dbLocation = params.location || './';
212
+ const dbPath = path.join(dbLocation, params.secondaryDbFileName);
213
+ this.db.prepare(`ATTACH DATABASE ? AS ?`).run(dbPath, params.alias);
214
+ }
215
+ detach(alias) {
216
+ this.db.prepare(`DETACH DATABASE ?`).run(alias);
217
+ }
218
+ updateHook(callback) {
219
+ this.updateHookCallback = callback;
220
+ // Note: better-sqlite3 doesn't support update hooks directly
221
+ console.warn('Update hooks are not fully supported in the Node.js implementation');
222
+ }
223
+ commitHook(callback) {
224
+ this.commitHookCallback = callback;
225
+ }
226
+ rollbackHook(callback) {
227
+ this.rollbackHookCallback = callback;
228
+ }
229
+ loadExtension(path, entryPoint) {
230
+ // better-sqlite3 supports loadExtension but it may not be enabled by default
231
+ try {
232
+ if (entryPoint) {
233
+ this.db.loadExtension(path, entryPoint);
234
+ }
235
+ else {
236
+ this.db.loadExtension(path);
237
+ }
238
+ }
239
+ catch (error) {
240
+ throw new Error(`Failed to load extension: ${error.message}`);
241
+ }
242
+ }
243
+ getDbPath(location) {
244
+ return this.dbPath;
245
+ }
246
+ reactiveExecute(params) {
247
+ // Reactive queries are not supported in Node.js implementation
248
+ console.warn('Reactive queries are not supported in the Node.js implementation');
249
+ return () => { };
250
+ }
251
+ sync() {
252
+ // LibSQL sync is not supported in the Node.js implementation
253
+ throw new Error('sync() is only available with libsql');
254
+ }
255
+ setReservedBytes(reservedBytes) {
256
+ // SQLCipher specific, not supported in standard SQLite
257
+ console.warn('setReservedBytes is not supported in the Node.js implementation');
258
+ }
259
+ getReservedBytes() {
260
+ // SQLCipher specific, not supported in standard SQLite
261
+ return 0;
262
+ }
263
+ async flushPendingReactiveQueries() {
264
+ // No-op for Node.js implementation
265
+ }
266
+ close() {
267
+ if (this.db && this.db.open) {
268
+ this.db.close();
269
+ }
270
+ }
271
+ delete(location) {
272
+ this.close();
273
+ const dbLocation = location || './';
274
+ const dbPath = path.join(dbLocation, path.basename(this.dbPath));
275
+ if (fs.existsSync(dbPath)) {
276
+ fs.unlinkSync(dbPath);
277
+ }
278
+ }
279
+ }
280
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { DB, DBParams, OPSQLiteProxy } from './types';
2
+ export { NodeDatabase as Database } from './database';
3
+ export type { BatchQueryResult, ColumnMetadata, DB, DBParams, FileLoadResult, OPSQLiteProxy, PreparedStatement, QueryResult, Scalar, SQLBatchTuple, Transaction, UpdateHookOperation } from './types';
4
+ declare class OPSQLiteProxyImpl implements OPSQLiteProxy {
5
+ open(options: {
6
+ name: string;
7
+ location?: string;
8
+ encryptionKey?: string;
9
+ }): DB;
10
+ openV2(options: {
11
+ path: string;
12
+ encryptionKey?: string;
13
+ }): DB;
14
+ openRemote(options: {
15
+ url: string;
16
+ authToken: string;
17
+ }): DB;
18
+ openSync(options: DBParams): DB;
19
+ isSQLCipher(): boolean;
20
+ isLibsql(): boolean;
21
+ isIOSEmbedded(): boolean;
22
+ }
23
+ declare const proxy: OPSQLiteProxyImpl;
24
+ export declare const open: (options: {
25
+ name: string;
26
+ location?: string;
27
+ encryptionKey?: string;
28
+ }) => DB;
29
+ export declare const openV2: (options: {
30
+ path: string;
31
+ encryptionKey?: string;
32
+ }) => DB;
33
+ export declare const openRemote: (options: {
34
+ url: string;
35
+ authToken: string;
36
+ }) => DB;
37
+ export declare const openSync: (options: DBParams) => DB;
38
+ export declare const isSQLCipher: () => boolean;
39
+ export declare const isLibsql: () => boolean;
40
+ export declare const isIOSEmbedded: () => boolean;
41
+ export default proxy;
42
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE3D,OAAO,EAAE,YAAY,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtD,YAAY,EACR,gBAAgB,EAAE,cAAc,EAAE,EAAE,EACpC,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EACnI,MAAM,SAAS,CAAC;AAEjB,cAAM,iBAAkB,YAAW,aAAa;IAC9C,IAAI,CAAC,OAAO,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,EAAE;IASN,MAAM,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,EAAE;IAY7D,UAAU,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,EAAE;IAM3D,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,EAAE;IAM/B,WAAW,IAAI,OAAO;IAItB,QAAQ,IAAI,OAAO;IAInB,aAAa,IAAI,OAAO;CAGzB;AAGD,QAAA,MAAM,KAAK,mBAA0B,CAAC;AAGtC,eAAO,MAAM,IAAI,YAtDD;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,KAAG,EAkDoC,CAAC;AAC3C,eAAO,MAAM,MAAM,YA1CD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,EA0Cf,CAAC;AAC/C,eAAO,MAAM,UAAU,YA/BD;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,KAAG,EA+BL,CAAC;AACvD,eAAO,MAAM,QAAQ,YA1BD,QAAQ,KAAG,EA0BmB,CAAC;AACnD,eAAO,MAAM,WAAW,QArBP,OAqBuC,CAAC;AACzD,eAAO,MAAM,QAAQ,QAlBP,OAkBoC,CAAC;AACnD,eAAO,MAAM,aAAa,QAfP,OAeyC,CAAC;AAG7D,eAAe,KAAK,CAAC"}
@@ -0,0 +1,47 @@
1
+ import * as path from 'node:path';
2
+ import { NodeDatabase } from './database';
3
+ export { NodeDatabase as Database } from './database';
4
+ class OPSQLiteProxyImpl {
5
+ open(options) {
6
+ if (options.encryptionKey) {
7
+ console.warn('Encryption is not supported in the Node.js implementation. Use @journeyapps/sqlcipher for encryption support.');
8
+ }
9
+ return new NodeDatabase(options.name, options.location);
10
+ }
11
+ openV2(options) {
12
+ if (options.encryptionKey) {
13
+ console.warn('Encryption is not supported in the Node.js implementation. Use @journeyapps/sqlcipher for encryption support.');
14
+ }
15
+ const dir = path.dirname(options.path);
16
+ const name = path.basename(options.path);
17
+ return new NodeDatabase(name, dir);
18
+ }
19
+ openRemote(options) {
20
+ throw new Error('openRemote is not supported in the Node.js implementation. Use the libsql client directly for remote connections.');
21
+ }
22
+ openSync(options) {
23
+ throw new Error('openSync is not supported in the Node.js implementation. Use the libsql client directly for sync functionality.');
24
+ }
25
+ isSQLCipher() {
26
+ return false;
27
+ }
28
+ isLibsql() {
29
+ return false;
30
+ }
31
+ isIOSEmbedded() {
32
+ return false;
33
+ }
34
+ }
35
+ // Create singleton instance
36
+ const proxy = new OPSQLiteProxyImpl();
37
+ // Export proxy functions for easier usage
38
+ export const open = proxy.open.bind(proxy);
39
+ export const openV2 = proxy.openV2.bind(proxy);
40
+ export const openRemote = proxy.openRemote.bind(proxy);
41
+ export const openSync = proxy.openSync.bind(proxy);
42
+ export const isSQLCipher = proxy.isSQLCipher.bind(proxy);
43
+ export const isLibsql = proxy.isLibsql.bind(proxy);
44
+ export const isIOSEmbedded = proxy.isIOSEmbedded.bind(proxy);
45
+ // Default export
46
+ export default proxy;
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,YAAY,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAMtD,MAAM,iBAAiB;IACrB,IAAI,CAAC,OAIJ;QACC,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CACV,+GAA+G,CAChH,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,OAAiD;QACtD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CACV,+GAA+G,CAChH,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,UAAU,CAAC,OAA2C;QACpD,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,OAAiB;QACxB,MAAM,IAAI,KAAK,CACb,iHAAiH,CAClH,CAAC;IACJ,CAAC;IAED,WAAW;QACT,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ;QACN,OAAO,KAAK,CAAC;IACf,CAAC;IAED,aAAa;QACX,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,4BAA4B;AAC5B,MAAM,KAAK,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAEtC,0CAA0C;AAC1C,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAE7D,iBAAiB;AACjB,eAAe,KAAK,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=test.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.spec.d.ts","sourceRoot":"","sources":["../src/test.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,145 @@
1
+ import { open, isSQLCipher, isLibsql, isIOSEmbedded } from './index';
2
+ describe('op-sqlite Node.js tests', () => {
3
+ let db;
4
+ beforeAll(() => {
5
+ db = open({ name: 'test.sqlite', location: './' });
6
+ });
7
+ afterAll(() => {
8
+ db.close();
9
+ const cleanupDb = open({ name: 'test.sqlite', location: './' });
10
+ cleanupDb.delete('./');
11
+ const cleanupDb2 = open({ name: 'test2.sqlite', location: './' });
12
+ cleanupDb2.delete('./');
13
+ });
14
+ test('Database opens successfully', () => {
15
+ const path = db.getDbPath();
16
+ expect(path).toContain('test.sqlite');
17
+ });
18
+ test('Create table', () => {
19
+ db.executeSync('CREATE TABLE IF NOT EXISTS test_users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)');
20
+ });
21
+ test('Insert data', () => {
22
+ const result = db.executeSync('INSERT INTO test_users (name, age) VALUES (?, ?)', ['Alice', 30]);
23
+ expect(result.rowsAffected).toBe(1);
24
+ expect(result.insertId).toBeDefined();
25
+ });
26
+ test('Query data', async () => {
27
+ const result = await db.execute('SELECT * FROM test_users WHERE name = ?', [
28
+ 'Alice',
29
+ ]);
30
+ expect(result.rows.length).toBe(1);
31
+ expect(result.rows[0].name).toBe('Alice');
32
+ expect(result.rows[0].age).toBe(30);
33
+ });
34
+ test('Query without parameters', () => {
35
+ const result = db.executeSync('SELECT COUNT(*) as count FROM test_users');
36
+ const row = result.rows.length;
37
+ expect(row).toBeGreaterThanOrEqual(1);
38
+ });
39
+ test('Update data', () => {
40
+ const result = db.executeSync('UPDATE test_users SET age = ? WHERE name = ?', [31, 'Alice']);
41
+ expect(result.rowsAffected).toBe(1);
42
+ });
43
+ test('Verify update', () => {
44
+ const result = db.executeSync('SELECT age FROM test_users WHERE name = ?', [
45
+ 'Alice',
46
+ ]);
47
+ expect(result.rows[0].age).toBe(31);
48
+ });
49
+ test('Execute raw query', async () => {
50
+ const result = await db.executeRaw('SELECT name, age FROM test_users WHERE name = ?', ['Alice']);
51
+ expect(Array.isArray(result)).toBe(true);
52
+ expect(Array.isArray(result[0])).toBe(true);
53
+ expect(result[0][0]).toBe('Alice');
54
+ expect(result[0][1]).toBe(31);
55
+ });
56
+ test('Execute batch', async () => {
57
+ const result = await db.executeBatch([
58
+ ['INSERT INTO test_users (name, age) VALUES (?, ?)', ['Bob', 25]],
59
+ ['INSERT INTO test_users (name, age) VALUES (?, ?)', ['Charlie', 35]],
60
+ ]);
61
+ expect(result.rowsAffected ?? 0).toBeGreaterThanOrEqual(2);
62
+ });
63
+ test('Transaction commit', async () => {
64
+ // Skipped: better-sqlite3's transaction function doesn't support async/await
65
+ await db.transaction(async (tx) => {
66
+ await tx.execute('INSERT INTO test_users (name, age) VALUES (?, ?)', [
67
+ 'David',
68
+ 40,
69
+ ]);
70
+ await tx.execute('INSERT INTO test_users (name, age) VALUES (?, ?)', [
71
+ 'Emma',
72
+ 28,
73
+ ]);
74
+ });
75
+ const result = db.executeSync('SELECT COUNT(*) as count FROM test_users');
76
+ expect(result.rows[0].count).toBeGreaterThanOrEqual(5);
77
+ });
78
+ test.skip('Transaction rollback', async () => {
79
+ // Skipped: The transaction implementation doesn't properly return a promise,
80
+ // which causes issues with testing error handling
81
+ const beforeCount = db.executeSync('SELECT COUNT(*) as count FROM test_users').rows[0].count;
82
+ try {
83
+ await db.transaction(async (tx) => {
84
+ await tx.execute('INSERT INTO test_users (name, age) VALUES (?, ?)', [
85
+ 'Temporary',
86
+ 99,
87
+ ]);
88
+ throw new Error('Rollback test');
89
+ });
90
+ }
91
+ catch (error) {
92
+ // Expected error
93
+ }
94
+ const afterCount = db.executeSync('SELECT COUNT(*) as count FROM test_users').rows[0].count;
95
+ expect(beforeCount).toBe(afterCount);
96
+ });
97
+ test('Prepared statement', async () => {
98
+ const stmt = db.prepareStatement('SELECT * FROM test_users WHERE age > ?');
99
+ stmt.bindSync([30]);
100
+ const result1 = await stmt.execute();
101
+ expect(result1.rows.length).toBeGreaterThanOrEqual(2);
102
+ stmt.bindSync([25]);
103
+ const result2 = await stmt.execute();
104
+ expect(result2.rows.length).toBeGreaterThanOrEqual(result1.rows.length);
105
+ });
106
+ test('Query metadata', () => {
107
+ const result = db.executeSync('SELECT * FROM test_users LIMIT 1');
108
+ expect(result.metadata).toBeDefined();
109
+ expect(result.metadata.length).toBeGreaterThanOrEqual(3);
110
+ expect(result.columnNames).toBeDefined();
111
+ expect(result.columnNames).toContain('name');
112
+ });
113
+ test('Delete data', () => {
114
+ const result = db.executeSync('DELETE FROM test_users WHERE name = ?', [
115
+ 'Bob',
116
+ ]);
117
+ expect(result.rowsAffected).toBe(1);
118
+ });
119
+ test('Attach database', () => {
120
+ const db2 = open({ name: 'test2.sqlite', location: './' });
121
+ db2.executeSync('CREATE TABLE IF NOT EXISTS products (id INTEGER PRIMARY KEY, name TEXT)');
122
+ db2.executeSync('INSERT INTO products (name) VALUES (?)', ['Laptop']);
123
+ db2.close();
124
+ db.attach({
125
+ secondaryDbFileName: 'test2.sqlite',
126
+ alias: 'secondary',
127
+ location: './',
128
+ });
129
+ const result = db.executeSync('SELECT * FROM secondary.products');
130
+ expect(result.rows.length).toBe(1);
131
+ expect(result.rows[0].name).toBe('Laptop');
132
+ });
133
+ test('Detach database', () => {
134
+ db.detach('secondary');
135
+ expect(() => {
136
+ db.executeSync('SELECT * FROM secondary.products');
137
+ }).toThrow(/no such table|secondary/);
138
+ });
139
+ test('Feature checks', () => {
140
+ expect(isSQLCipher()).toBe(false);
141
+ expect(isLibsql()).toBe(false);
142
+ expect(isIOSEmbedded()).toBe(false);
143
+ });
144
+ });
145
+ //# sourceMappingURL=test.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.spec.js","sourceRoot":"","sources":["../src/test.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ export type Scalar = string | number | boolean | null | ArrayBuffer | ArrayBufferView;
2
+ export type QueryResult = {
3
+ insertId?: number;
4
+ rowsAffected: number;
5
+ res?: any[];
6
+ rows: Array<Record<string, Scalar>>;
7
+ rawRows?: Scalar[][];
8
+ columnNames?: string[];
9
+ metadata?: ColumnMetadata[];
10
+ };
11
+ export type ColumnMetadata = {
12
+ name: string;
13
+ type: string;
14
+ index: number;
15
+ };
16
+ export type SQLBatchTuple = [string] | [string, Scalar[]] | [string, Scalar[][]];
17
+ export type UpdateHookOperation = 'INSERT' | 'DELETE' | 'UPDATE';
18
+ export type BatchQueryResult = {
19
+ rowsAffected?: number;
20
+ };
21
+ export type FileLoadResult = BatchQueryResult & {
22
+ commands?: number;
23
+ };
24
+ export type Transaction = {
25
+ commit: () => Promise<QueryResult>;
26
+ execute: (query: string, params?: Scalar[]) => Promise<QueryResult>;
27
+ rollback: () => QueryResult;
28
+ };
29
+ export type PreparedStatement = {
30
+ bind: (params: any[]) => Promise<void>;
31
+ bindSync: (params: any[]) => void;
32
+ execute: () => Promise<QueryResult>;
33
+ };
34
+ export type DB = {
35
+ close: () => void;
36
+ delete: (location?: string) => void;
37
+ attach: (params: {
38
+ secondaryDbFileName: string;
39
+ alias: string;
40
+ location?: string;
41
+ }) => void;
42
+ detach: (alias: string) => void;
43
+ transaction: (fn: (tx: Transaction) => Promise<void>) => Promise<void>;
44
+ executeSync: (query: string, params?: Scalar[]) => QueryResult;
45
+ execute: (query: string, params?: Scalar[]) => Promise<QueryResult>;
46
+ executeWithHostObjects: (query: string, params?: Scalar[]) => Promise<QueryResult>;
47
+ executeBatch: (commands: SQLBatchTuple[]) => Promise<BatchQueryResult>;
48
+ loadFile: (location: string) => Promise<FileLoadResult>;
49
+ updateHook: (callback?: ((params: {
50
+ table: string;
51
+ operation: UpdateHookOperation;
52
+ row?: any;
53
+ rowId: number;
54
+ }) => void) | null) => void;
55
+ commitHook: (callback?: (() => void) | null) => void;
56
+ rollbackHook: (callback?: (() => void) | null) => void;
57
+ prepareStatement: (query: string) => PreparedStatement;
58
+ loadExtension: (path: string, entryPoint?: string) => void;
59
+ executeRaw: (query: string, params?: Scalar[]) => Promise<any[]>;
60
+ executeRawSync: (query: string, params?: Scalar[]) => any[];
61
+ getDbPath: (location?: string) => string;
62
+ reactiveExecute: (params: {
63
+ query: string;
64
+ arguments: any[];
65
+ fireOn: {
66
+ table: string;
67
+ ids?: number[];
68
+ }[];
69
+ callback: (response: any) => void;
70
+ }) => () => void;
71
+ sync: () => void;
72
+ setReservedBytes: (reservedBytes: number) => void;
73
+ getReservedBytes: () => number;
74
+ flushPendingReactiveQueries: () => Promise<void>;
75
+ };
76
+ export type DBParams = {
77
+ url?: string;
78
+ authToken?: string;
79
+ name?: string;
80
+ location?: string;
81
+ syncInterval?: number;
82
+ };
83
+ export type OPSQLiteProxy = {
84
+ open: (options: {
85
+ name: string;
86
+ location?: string;
87
+ encryptionKey?: string;
88
+ }) => DB;
89
+ openV2: (options: {
90
+ path: string;
91
+ encryptionKey?: string;
92
+ }) => DB;
93
+ openRemote: (options: {
94
+ url: string;
95
+ authToken: string;
96
+ }) => DB;
97
+ openSync: (options: DBParams) => DB;
98
+ isSQLCipher: () => boolean;
99
+ isLibsql: () => boolean;
100
+ isIOSEmbedded: () => boolean;
101
+ };
102
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@op-engineering/op-sqlite",
3
- "version": "15.2.3",
3
+ "version": "15.2.5",
4
4
  "description": "Fastest SQLite for React Native (with node.js support)",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -41,7 +41,7 @@
41
41
  "test:node": "yarn workspace node test",
42
42
  "example": "yarn workspace op_sqlite_example",
43
43
  "typecheck": "tsc",
44
- "prepare": "bob build",
44
+ "prepare": "bob build && yarn build:node",
45
45
  "build:node": "yarn workspace node build",
46
46
  "pods": "cd example && yarn pods",
47
47
  "clang-format-check": "clang-format -i cpp/*.cpp cpp/*.h"