@capgo/capacitor-fast-sql 8.0.48 → 8.1.1
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.
- package/README.md +8 -6
- package/android/src/main/java/app/capgo/capacitor/fastsql/CapgoCapacitorFastSqlPlugin.java +5 -3
- package/android/src/main/java/app/capgo/capacitor/fastsql/EncryptedSQLDatabase.java +2 -3
- package/android/src/main/java/app/capgo/capacitor/fastsql/SQLDatabase.java +2 -3
- package/android/src/main/java/app/capgo/capacitor/fastsql/SQLPerformanceConfig.java +28 -0
- package/dist/esm/definitions.d.ts +14 -0
- package/dist/esm/definitions.d.ts.map +1 -1
- package/dist/esm/performance-config.d.ts +8 -0
- package/dist/esm/performance-config.d.ts.map +1 -0
- package/dist/esm/performance-config.js +14 -0
- package/dist/esm/web.d.ts.map +1 -1
- package/dist/esm/web.js +2 -0
- package/dist/plugin.cjs.js +16 -0
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +16 -0
- package/dist/plugin.js.map +1 -1
- package/ios/Sources/CapgoCapacitorFastSqlPlugin/CapgoCapacitorFastSqlPlugin.swift +10 -2
- package/ios/Sources/CapgoCapacitorFastSqlPlugin/SQLDatabase.swift +22 -3
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -508,12 +508,14 @@ on iOS and Android.
|
|
|
508
508
|
|
|
509
509
|
Database connection options
|
|
510
510
|
|
|
511
|
-
| Prop
|
|
512
|
-
|
|
|
513
|
-
| **`database`**
|
|
514
|
-
| **`encrypted`**
|
|
515
|
-
| **`encryptionKey`**
|
|
516
|
-
| **`readOnly`**
|
|
511
|
+
| Prop | Type | Description | Since |
|
|
512
|
+
| ------------------------ | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ |
|
|
513
|
+
| **`database`** | <code>string</code> | Database name (file will be created in app data directory) | |
|
|
514
|
+
| **`encrypted`** | <code>boolean</code> | Enable encryption (iOS/Android only) | |
|
|
515
|
+
| **`encryptionKey`** | <code>string</code> | Encryption key (required if encrypted is true) | |
|
|
516
|
+
| **`readOnly`** | <code>boolean</code> | Read-only mode | |
|
|
517
|
+
| **`walMode`** | <code>boolean</code> | Enable WAL (Write-Ahead Logging) journal mode for better concurrency and performance. Executes `PRAGMA journal_mode = WAL` immediately after opening the database. | 8.0.49 |
|
|
518
|
+
| **`performancePresets`** | <code>boolean</code> | Apply recommended SQLite performance PRAGMAs after opening the database: `synchronous = NORMAL`, `busy_timeout = 5000`, `cache_size = -2000`, and `foreign_keys = ON`. | 8.0.49 |
|
|
517
519
|
|
|
518
520
|
|
|
519
521
|
#### SQLResult
|
|
@@ -19,7 +19,7 @@ import java.util.Map;
|
|
|
19
19
|
@CapacitorPlugin(name = "CapgoCapacitorFastSql")
|
|
20
20
|
public class CapgoCapacitorFastSqlPlugin extends Plugin {
|
|
21
21
|
|
|
22
|
-
private final String pluginVersion = "8.
|
|
22
|
+
private final String pluginVersion = "8.1.1";
|
|
23
23
|
|
|
24
24
|
private Map<String, DatabaseConnection> databases = new HashMap<>();
|
|
25
25
|
private SQLHTTPServer server;
|
|
@@ -33,6 +33,8 @@ public class CapgoCapacitorFastSqlPlugin extends Plugin {
|
|
|
33
33
|
}
|
|
34
34
|
boolean encrypted = call.getBoolean("encrypted", false);
|
|
35
35
|
String encryptionKey = call.getString("encryptionKey");
|
|
36
|
+
boolean walMode = call.getBoolean("walMode", false);
|
|
37
|
+
boolean performancePresets = call.getBoolean("performancePresets", false);
|
|
36
38
|
if (encrypted && (encryptionKey == null || encryptionKey.isEmpty())) {
|
|
37
39
|
call.reject("Encryption key is required when encrypted is true");
|
|
38
40
|
return;
|
|
@@ -67,9 +69,9 @@ public class CapgoCapacitorFastSqlPlugin extends Plugin {
|
|
|
67
69
|
);
|
|
68
70
|
return;
|
|
69
71
|
}
|
|
70
|
-
db = new EncryptedSQLDatabase(dbFile.getAbsolutePath(), encryptionKey);
|
|
72
|
+
db = new EncryptedSQLDatabase(dbFile.getAbsolutePath(), encryptionKey, walMode, performancePresets);
|
|
71
73
|
} else {
|
|
72
|
-
db = new SQLDatabase(dbFile.getAbsolutePath());
|
|
74
|
+
db = new SQLDatabase(dbFile.getAbsolutePath(), walMode, performancePresets);
|
|
73
75
|
}
|
|
74
76
|
databases.put(database, db);
|
|
75
77
|
|
|
@@ -19,7 +19,7 @@ public class EncryptedSQLDatabase implements DatabaseConnection {
|
|
|
19
19
|
private SQLiteDatabase db;
|
|
20
20
|
private volatile boolean inTransaction = false;
|
|
21
21
|
|
|
22
|
-
public EncryptedSQLDatabase(String path, String encryptionKey) throws Exception {
|
|
22
|
+
public EncryptedSQLDatabase(String path, String encryptionKey, boolean walMode, boolean performancePresets) throws Exception {
|
|
23
23
|
if (encryptionKey == null || encryptionKey.isEmpty()) {
|
|
24
24
|
throw new Exception("Encryption key is required when encrypted is true");
|
|
25
25
|
}
|
|
@@ -35,8 +35,7 @@ public class EncryptedSQLDatabase implements DatabaseConnection {
|
|
|
35
35
|
}
|
|
36
36
|
byte[] keyBytes = encryptionKey.getBytes(StandardCharsets.UTF_8);
|
|
37
37
|
this.db = SQLiteDatabase.openOrCreateDatabase(path, keyBytes, null, null);
|
|
38
|
-
|
|
39
|
-
db.execSQL("PRAGMA foreign_keys = ON");
|
|
38
|
+
SQLPerformanceConfig.apply(db::execSQL, walMode, performancePresets);
|
|
40
39
|
}
|
|
41
40
|
|
|
42
41
|
public void close() {
|
|
@@ -20,10 +20,9 @@ public class SQLDatabase implements DatabaseConnection {
|
|
|
20
20
|
private SQLiteDatabase db;
|
|
21
21
|
private volatile boolean inTransaction = false;
|
|
22
22
|
|
|
23
|
-
public SQLDatabase(String path) {
|
|
23
|
+
public SQLDatabase(String path, boolean walMode, boolean performancePresets) throws Exception {
|
|
24
24
|
this.db = SQLiteDatabase.openOrCreateDatabase(path, null);
|
|
25
|
-
|
|
26
|
-
db.execSQL("PRAGMA foreign_keys = ON");
|
|
25
|
+
SQLPerformanceConfig.apply(db::execSQL, walMode, performancePresets);
|
|
27
26
|
}
|
|
28
27
|
|
|
29
28
|
public void close() {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
package app.capgo.capacitor.fastsql;
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Applies optional SQLite performance PRAGMAs at database open time.
|
|
5
|
+
*/
|
|
6
|
+
public final class SQLPerformanceConfig {
|
|
7
|
+
|
|
8
|
+
private SQLPerformanceConfig() {}
|
|
9
|
+
|
|
10
|
+
public static void apply(PerformancePragmaExecutor executor, boolean walMode, boolean performancePresets) throws Exception {
|
|
11
|
+
executor.execSQL("PRAGMA foreign_keys = ON");
|
|
12
|
+
|
|
13
|
+
if (walMode) {
|
|
14
|
+
executor.execSQL("PRAGMA journal_mode = WAL");
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (performancePresets) {
|
|
18
|
+
executor.execSQL("PRAGMA synchronous = NORMAL");
|
|
19
|
+
executor.execSQL("PRAGMA busy_timeout = 5000");
|
|
20
|
+
executor.execSQL("PRAGMA cache_size = -2000");
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@FunctionalInterface
|
|
25
|
+
public interface PerformancePragmaExecutor {
|
|
26
|
+
void execSQL(String sql) throws Exception;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -58,6 +58,20 @@ export interface SQLConnectionOptions {
|
|
|
58
58
|
* Read-only mode
|
|
59
59
|
*/
|
|
60
60
|
readOnly?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Enable WAL (Write-Ahead Logging) journal mode for better concurrency and performance.
|
|
63
|
+
* Executes `PRAGMA journal_mode = WAL` immediately after opening the database.
|
|
64
|
+
*
|
|
65
|
+
* @since 8.0.49
|
|
66
|
+
*/
|
|
67
|
+
walMode?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Apply recommended SQLite performance PRAGMAs after opening the database:
|
|
70
|
+
* `synchronous = NORMAL`, `busy_timeout = 5000`, `cache_size = -2000`, and `foreign_keys = ON`.
|
|
71
|
+
*
|
|
72
|
+
* @since 8.0.49
|
|
73
|
+
*/
|
|
74
|
+
performancePresets?: boolean;
|
|
61
75
|
}
|
|
62
76
|
/**
|
|
63
77
|
* Web platform configuration for the sql.js WASM module.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,UAAU,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;IAEf;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SQLConnectionOptions } from './definitions';
|
|
2
|
+
/**
|
|
3
|
+
* Apply optional SQLite performance PRAGMAs after opening a database.
|
|
4
|
+
*/
|
|
5
|
+
export declare function applyPerformanceConfig(db: {
|
|
6
|
+
run: (sql: string) => void;
|
|
7
|
+
}, options: SQLConnectionOptions): void;
|
|
8
|
+
//# sourceMappingURL=performance-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance-config.d.ts","sourceRoot":"","sources":["../../src/performance-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE;IAAE,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAY9G"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apply optional SQLite performance PRAGMAs after opening a database.
|
|
3
|
+
*/
|
|
4
|
+
export function applyPerformanceConfig(db, options) {
|
|
5
|
+
db.run('PRAGMA foreign_keys = ON');
|
|
6
|
+
if (options.walMode) {
|
|
7
|
+
db.run('PRAGMA journal_mode = WAL');
|
|
8
|
+
}
|
|
9
|
+
if (options.performancePresets) {
|
|
10
|
+
db.run('PRAGMA synchronous = NORMAL');
|
|
11
|
+
db.run('PRAGMA busy_timeout = 5000');
|
|
12
|
+
db.run('PRAGMA cache_size = -2000');
|
|
13
|
+
}
|
|
14
|
+
}
|
package/dist/esm/web.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EACV,2BAA2B,EAC3B,oBAAoB,EACpB,SAAS,EACT,QAAQ,EACR,cAAc,EACd,SAAS,EACV,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EACV,2BAA2B,EAC3B,oBAAoB,EACpB,SAAS,EACT,QAAQ,EACR,cAAc,EACd,SAAS,EACV,MAAM,eAAe,CAAC;AAMvB;;;;;GAKG;AACH,qBAAa,wBAAyB,SAAQ,SAAU,YAAW,2BAA2B;IAC5F,OAAO,CAAC,SAAS,CAAoE;IACrF,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,SAAS,CAAiB;;IAMlC;;;OAGG;IACG,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpD;;;OAGG;IACH,OAAO,CAAC,SAAS;IA4BX,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IA0BlG,UAAU,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxD,aAAa,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAYtF,OAAO,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAiClG,gBAAgB,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,cAAc,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/F,iBAAiB,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/D,mBAAmB,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvE;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;YACW,eAAe;IAgC7B;;OAEG;YACW,iBAAiB;IAgCzB,gBAAgB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAGvD"}
|
package/dist/esm/web.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { WebPlugin } from '@capacitor/core';
|
|
2
|
+
import { applyPerformanceConfig } from './performance-config';
|
|
2
3
|
const DEFAULT_SQLJS_URL = 'https://cdnjs.cloudflare.com/ajax/libs/sql.js/1.8.0/sql-wasm.js';
|
|
3
4
|
const DEFAULT_WASM_URL = 'https://cdnjs.cloudflare.com/ajax/libs/sql.js/1.8.0/sql-wasm.wasm';
|
|
4
5
|
/**
|
|
@@ -66,6 +67,7 @@ export class CapgoCapacitorFastSqlWeb extends WebPlugin {
|
|
|
66
67
|
else {
|
|
67
68
|
db = new SQL.Database();
|
|
68
69
|
}
|
|
70
|
+
applyPerformanceConfig(db, options);
|
|
69
71
|
const token = this.generateToken();
|
|
70
72
|
const port = this.nextPort++;
|
|
71
73
|
this.databases.set(options.database, { db, token, port });
|
package/dist/plugin.cjs.js
CHANGED
|
@@ -1070,6 +1070,21 @@ class FastSQLVectorStore {
|
|
|
1070
1070
|
FastSQLVectorStore.connectionRefs = new Map();
|
|
1071
1071
|
FastSQLVectorStore.ownedConnections = new Set();
|
|
1072
1072
|
|
|
1073
|
+
/**
|
|
1074
|
+
* Apply optional SQLite performance PRAGMAs after opening a database.
|
|
1075
|
+
*/
|
|
1076
|
+
function applyPerformanceConfig(db, options) {
|
|
1077
|
+
db.run('PRAGMA foreign_keys = ON');
|
|
1078
|
+
if (options.walMode) {
|
|
1079
|
+
db.run('PRAGMA journal_mode = WAL');
|
|
1080
|
+
}
|
|
1081
|
+
if (options.performancePresets) {
|
|
1082
|
+
db.run('PRAGMA synchronous = NORMAL');
|
|
1083
|
+
db.run('PRAGMA busy_timeout = 5000');
|
|
1084
|
+
db.run('PRAGMA cache_size = -2000');
|
|
1085
|
+
}
|
|
1086
|
+
}
|
|
1087
|
+
|
|
1073
1088
|
const DEFAULT_SQLJS_URL = 'https://cdnjs.cloudflare.com/ajax/libs/sql.js/1.8.0/sql-wasm.js';
|
|
1074
1089
|
const DEFAULT_WASM_URL = 'https://cdnjs.cloudflare.com/ajax/libs/sql.js/1.8.0/sql-wasm.wasm';
|
|
1075
1090
|
/**
|
|
@@ -1137,6 +1152,7 @@ class CapgoCapacitorFastSqlWeb extends core.WebPlugin {
|
|
|
1137
1152
|
else {
|
|
1138
1153
|
db = new SQL.Database();
|
|
1139
1154
|
}
|
|
1155
|
+
applyPerformanceConfig(db, options);
|
|
1140
1156
|
const token = this.generateToken();
|
|
1141
1157
|
const port = this.nextPort++;
|
|
1142
1158
|
this.databases.set(options.database, { db, token, port });
|