@op-engineering/op-sqlite 14.1.4 → 15.0.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/android/CMakeLists.txt +23 -62
- package/android/build.gradle +103 -163
- package/android/gradle.properties +5 -1
- package/android/src/main/AndroidManifest.xml +2 -1
- package/cpp/DBHostObject.cpp +17 -0
- package/lib/module/Storage.js +9 -2
- package/lib/module/Storage.js.map +1 -1
- package/lib/{commonjs/index.js → module/functions.js} +20 -82
- package/lib/module/functions.js.map +1 -0
- package/lib/module/index.js +3 -319
- package/lib/module/index.js.map +1 -1
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/Storage.d.ts +4 -0
- package/lib/typescript/src/Storage.d.ts.map +1 -1
- package/lib/typescript/src/functions.d.ts +61 -0
- package/lib/typescript/src/functions.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +14 -62
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/op-sqlite.podspec +2 -11
- package/package.json +48 -19
- package/src/Storage.ts +10 -2
- package/src/functions.ts +456 -0
- package/src/index.ts +14 -445
- package/android/.project +0 -17
- package/android/.settings/org.eclipse.buildship.core.prefs +0 -13
- package/android/src/paper/java/com/op/sqlite/NativeOPSQLiteSpec.java +0 -77
- package/lib/commonjs/NativeOPSQLite.js +0 -9
- package/lib/commonjs/NativeOPSQLite.js.map +0 -1
- package/lib/commonjs/Storage.js +0 -60
- package/lib/commonjs/Storage.js.map +0 -1
- package/lib/commonjs/index.js.map +0 -1
- package/lib/commonjs/package.json +0 -1
package/android/CMakeLists.txt
CHANGED
|
@@ -72,72 +72,33 @@ if (USER_DEFINED_SOURCE_FILES)
|
|
|
72
72
|
endif()
|
|
73
73
|
|
|
74
74
|
if (USE_SQLCIPHER)
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
)
|
|
84
|
-
else()
|
|
85
|
-
target_link_libraries(
|
|
86
|
-
${PACKAGE_NAME}
|
|
87
|
-
${LOG_LIB}
|
|
88
|
-
fbjni::fbjni
|
|
89
|
-
ReactAndroid::jsi
|
|
90
|
-
ReactAndroid::turbomodulejsijni
|
|
91
|
-
ReactAndroid::react_nativemodule_core
|
|
92
|
-
android
|
|
93
|
-
openssl::crypto
|
|
94
|
-
)
|
|
95
|
-
endif()
|
|
75
|
+
target_link_libraries(
|
|
76
|
+
${PACKAGE_NAME}
|
|
77
|
+
${LOG_LIB}
|
|
78
|
+
ReactAndroid::reactnative
|
|
79
|
+
ReactAndroid::jsi
|
|
80
|
+
fbjni::fbjni
|
|
81
|
+
openssl::crypto
|
|
82
|
+
)
|
|
96
83
|
elseif (USE_LIBSQL)
|
|
97
84
|
cmake_path(SET LIBSQL ${CMAKE_CURRENT_SOURCE_DIR}/jniLibs/${ANDROID_ABI}/libsql_experimental.a NORMALIZE)
|
|
98
85
|
add_library(libsql STATIC IMPORTED)
|
|
99
86
|
set_target_properties(libsql PROPERTIES IMPORTED_LOCATION ${LIBSQL})
|
|
100
87
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
)
|
|
110
|
-
else()
|
|
111
|
-
target_link_libraries(
|
|
112
|
-
${PACKAGE_NAME}
|
|
113
|
-
${LOG_LIB}
|
|
114
|
-
fbjni::fbjni
|
|
115
|
-
ReactAndroid::jsi
|
|
116
|
-
ReactAndroid::turbomodulejsijni
|
|
117
|
-
ReactAndroid::react_nativemodule_core
|
|
118
|
-
android
|
|
119
|
-
libsql
|
|
120
|
-
)
|
|
121
|
-
endif()
|
|
88
|
+
target_link_libraries(
|
|
89
|
+
${PACKAGE_NAME}
|
|
90
|
+
${LOG_LIB}
|
|
91
|
+
ReactAndroid::reactnative
|
|
92
|
+
ReactAndroid::jsi
|
|
93
|
+
fbjni::fbjni
|
|
94
|
+
libsql
|
|
95
|
+
)
|
|
122
96
|
else ()
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
fbjni::fbjni
|
|
131
|
-
)
|
|
132
|
-
else()
|
|
133
|
-
target_link_libraries(
|
|
134
|
-
${PACKAGE_NAME}
|
|
135
|
-
${LOG_LIB}
|
|
136
|
-
fbjni::fbjni
|
|
137
|
-
ReactAndroid::jsi
|
|
138
|
-
ReactAndroid::turbomodulejsijni
|
|
139
|
-
ReactAndroid::react_nativemodule_core
|
|
140
|
-
android
|
|
141
|
-
)
|
|
142
|
-
endif()
|
|
97
|
+
target_link_libraries(
|
|
98
|
+
${PACKAGE_NAME}
|
|
99
|
+
${LOG_LIB}
|
|
100
|
+
ReactAndroid::reactnative
|
|
101
|
+
ReactAndroid::jsi
|
|
102
|
+
fbjni::fbjni
|
|
103
|
+
)
|
|
143
104
|
endif()
|
package/android/build.gradle
CHANGED
|
@@ -2,29 +2,29 @@ import java.nio.file.Paths
|
|
|
2
2
|
import groovy.json.JsonSlurper
|
|
3
3
|
|
|
4
4
|
buildscript {
|
|
5
|
+
ext.getExtOrDefault = {name ->
|
|
6
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['OPSQLite_' + name]
|
|
7
|
+
}
|
|
8
|
+
|
|
5
9
|
repositories {
|
|
6
10
|
google()
|
|
7
|
-
|
|
11
|
+
mavenCentral()
|
|
8
12
|
}
|
|
9
13
|
|
|
10
|
-
def kotlin_version = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["OPSQLite_kotlinVersion"]
|
|
11
|
-
|
|
12
14
|
dependencies {
|
|
13
|
-
classpath("com.android.tools.build:gradle:7.
|
|
15
|
+
classpath("com.android.tools.build:gradle:8.7.2")
|
|
14
16
|
// noinspection DifferentKotlinGradleVersion
|
|
15
|
-
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$
|
|
17
|
+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}"
|
|
16
18
|
}
|
|
17
19
|
}
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
String tskReqStr = gradle.getStartParameter().getTaskRequests()['args'].toString()
|
|
21
|
+
apply plugin: "com.android.library"
|
|
22
|
+
apply plugin: "kotlin-android"
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
}
|
|
24
|
+
apply plugin: "com.facebook.react"
|
|
25
25
|
|
|
26
|
-
def
|
|
27
|
-
return
|
|
26
|
+
def getExtOrIntegerDefault(name) {
|
|
27
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["OPSQLite_" + name]).toInteger()
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
def useSQLCipher = false
|
|
@@ -66,8 +66,7 @@ def packageJson = new JsonSlurper().parseText(packageJsonFile.text)
|
|
|
66
66
|
def opsqliteConfig = packageJson["op-sqlite"]
|
|
67
67
|
|
|
68
68
|
if(opsqliteConfig) {
|
|
69
|
-
println "[OP-SQLITE] Detected op-sqlite config from package.json at: " + packageJsonFile.absolutePath
|
|
70
|
-
|
|
69
|
+
println "[OP-SQLITE] Detected op-sqlite config from package.json at: " + packageJsonFile.absolutePath
|
|
71
70
|
useSQLCipher = opsqliteConfig["sqlcipher"]
|
|
72
71
|
useCRSQLite = opsqliteConfig["crsqlite"]
|
|
73
72
|
useSqliteVec = opsqliteConfig["sqliteVec"]
|
|
@@ -80,12 +79,10 @@ println "[OP-SQLITE] Detected op-sqlite config from package.json at: " + package
|
|
|
80
79
|
}
|
|
81
80
|
|
|
82
81
|
if(useSQLCipher) {
|
|
83
|
-
println "[OP-SQLITE] using
|
|
82
|
+
println "[OP-SQLITE] using sqlcipher."
|
|
84
83
|
} else if(useLibsql) {
|
|
85
|
-
println "[OP-SQLITE] using libsql
|
|
86
|
-
}
|
|
87
|
-
println "[OP-SQLITE] using Vanilla SQLite"
|
|
88
|
-
}
|
|
84
|
+
println "[OP-SQLITE] using libsql. Report any issues to Turso"
|
|
85
|
+
}
|
|
89
86
|
|
|
90
87
|
if(useCRSQLite) {
|
|
91
88
|
println "[OP-SQLITE] using CR-SQLite 🤖"
|
|
@@ -112,132 +109,98 @@ if (!tokenizers.isEmpty()) {
|
|
|
112
109
|
println "[OP-SQLITE] Tokenizers enabled! 🧾 Tokenizers: " + tokenizers
|
|
113
110
|
}
|
|
114
111
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
apply plugin: 'com.android.library'
|
|
120
|
-
apply plugin: "kotlin-android"
|
|
112
|
+
android {
|
|
113
|
+
namespace "com.op.sqlite"
|
|
121
114
|
|
|
122
|
-
|
|
123
|
-
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
|
|
124
|
-
}
|
|
115
|
+
compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
|
|
125
116
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
117
|
+
defaultConfig {
|
|
118
|
+
minSdkVersion getExtOrIntegerDefault("minSdkVersion")
|
|
119
|
+
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
|
|
129
120
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
121
|
+
externalNativeBuild {
|
|
122
|
+
cmake {
|
|
123
|
+
if(useSQLCipher) {
|
|
124
|
+
cFlags += "-DOP_SQLITE_USE_SQLCIPHER=1"
|
|
125
|
+
cppFlags += "-DOP_SQLITE_USE_SQLCIPHER=1"
|
|
126
|
+
}
|
|
127
|
+
if(useLibsql) {
|
|
128
|
+
cFlags += "-DOP_SQLITE_USE_LIBSQL=1"
|
|
129
|
+
cppFlags += "-DOP_SQLITE_USE_LIBSQL=1"
|
|
130
|
+
}
|
|
131
|
+
if(useCRSQLite) {
|
|
132
|
+
cFlags += "-DOP_SQLITE_USE_CRSQLITE=1"
|
|
133
|
+
cppFlags += "-DOP_SQLITE_USE_CRSQLITE=1"
|
|
134
|
+
}
|
|
135
|
+
if(performanceMode) {
|
|
136
|
+
cFlags += ["-DSQLITE_DQS=0", "-DSQLITE_THREADSAFE=1", "-DSQLITE_DEFAULT_MEMSTATUS=0", "-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1", "-DSQLITE_LIKE_DOESNT_MATCH_BLOBS=1", "-DSQLITE_MAX_EXPR_DEPTH=0", "-DSQLITE_OMIT_DEPRECATED=1", "-DSQLITE_OMIT_PROGRESS_CALLBACK=1", "-DSQLITE_OMIT_SHARED_CACHE=1", "-DSQLITE_USE_ALLOCA=1"]
|
|
137
|
+
}
|
|
138
|
+
if(enableFTS5) {
|
|
139
|
+
cFlags += ["-DSQLITE_ENABLE_FTS5=1"]
|
|
140
|
+
}
|
|
141
|
+
if(enableRtree) {
|
|
142
|
+
cFlags += ["-DSQLITE_ENABLE_RTREE=1"]
|
|
143
|
+
}
|
|
144
|
+
if(useSqliteVec) {
|
|
145
|
+
cFlags += "-DOP_SQLITE_USE_SQLITE_VEC=1"
|
|
146
|
+
cppFlags += "-DOP_SQLITE_USE_SQLITE_VEC=1"
|
|
147
|
+
}
|
|
134
148
|
|
|
135
|
-
|
|
149
|
+
// This are zeroes because they will be passed as C flags, so they become falsy
|
|
150
|
+
def sourceFiles = 0
|
|
151
|
+
// def tokenizerInitStrings = 0
|
|
152
|
+
def tokenizersHeaderPath = 0
|
|
153
|
+
if (!tokenizers.isEmpty()) {
|
|
154
|
+
def sourceDir = isUserApp ? file("$rootDir/../../../c_sources") : file("$rootDir/../c_sources")
|
|
155
|
+
def destDir = file("$buildscript.sourceFile.parentFile/c_sources")
|
|
156
|
+
copy {
|
|
157
|
+
from sourceDir
|
|
158
|
+
into destDir
|
|
159
|
+
include "**/*.cpp", "**/*.h"
|
|
160
|
+
}
|
|
161
|
+
sourceFiles = fileTree(dir: destDir, include: ["**/*.cpp", "**/*.h"]).files.join(";")
|
|
162
|
+
tokenizersHeaderPath = "../c_sources/tokenizers.h"
|
|
163
|
+
}
|
|
136
164
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
165
|
+
cppFlags "-O2 -frtti -fexceptions -Wall -fstack-protector-all"
|
|
166
|
+
arguments "-DANDROID_STL=c++_shared",
|
|
167
|
+
"-DSQLITE_FLAGS='$sqliteFlags'",
|
|
168
|
+
"-DUSE_SQLCIPHER=${useSQLCipher ? 1 : 0}",
|
|
169
|
+
"-DUSE_CRSQLITE=${useCRSQLite ? 1 : 0}",
|
|
170
|
+
"-DUSE_LIBSQL=${useLibsql ? 1 : 0}",
|
|
171
|
+
"-DUSE_SQLITE_VEC=${useSqliteVec ? 1 : 0}",
|
|
172
|
+
"-DUSER_DEFINED_SOURCE_FILES=${sourceFiles}",
|
|
173
|
+
"-DUSER_DEFINED_TOKENIZERS_HEADER_PATH='${tokenizersHeaderPath}'",
|
|
174
|
+
"-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON"
|
|
175
|
+
}
|
|
176
|
+
}
|
|
146
177
|
}
|
|
147
178
|
|
|
148
179
|
buildFeatures {
|
|
180
|
+
buildConfig true
|
|
149
181
|
prefab true
|
|
150
182
|
prefabPublishing true
|
|
151
183
|
}
|
|
152
184
|
|
|
185
|
+
buildTypes {
|
|
186
|
+
release {
|
|
187
|
+
minifyEnabled false
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
153
191
|
prefab {
|
|
154
192
|
"op-sqlite" {
|
|
155
193
|
headers "${project.buildDir}/headers/op-sqlite/"
|
|
156
194
|
}
|
|
157
195
|
}
|
|
158
196
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
targetSdkVersion safeExtGet('targetSdkVersion', 35)
|
|
162
|
-
versionCode 1
|
|
163
|
-
versionName "1.0"
|
|
164
|
-
|
|
165
|
-
externalNativeBuild {
|
|
166
|
-
cmake {
|
|
167
|
-
if(useSQLCipher) {
|
|
168
|
-
cFlags += "-DOP_SQLITE_USE_SQLCIPHER=1"
|
|
169
|
-
cppFlags += "-DOP_SQLITE_USE_SQLCIPHER=1"
|
|
170
|
-
}
|
|
171
|
-
if(useLibsql) {
|
|
172
|
-
cFlags += "-DOP_SQLITE_USE_LIBSQL=1"
|
|
173
|
-
cppFlags += "-DOP_SQLITE_USE_LIBSQL=1"
|
|
174
|
-
}
|
|
175
|
-
if(useCRSQLite) {
|
|
176
|
-
cFlags += "-DOP_SQLITE_USE_CRSQLITE=1"
|
|
177
|
-
cppFlags += "-DOP_SQLITE_USE_CRSQLITE=1"
|
|
178
|
-
}
|
|
179
|
-
if(performanceMode) {
|
|
180
|
-
cFlags += ["-DSQLITE_DQS=0", "-DSQLITE_THREADSAFE=1", "-DSQLITE_DEFAULT_MEMSTATUS=0", "-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1", "-DSQLITE_LIKE_DOESNT_MATCH_BLOBS=1", "-DSQLITE_MAX_EXPR_DEPTH=0", "-DSQLITE_OMIT_DEPRECATED=1", "-DSQLITE_OMIT_PROGRESS_CALLBACK=1", "-DSQLITE_OMIT_SHARED_CACHE=1", "-DSQLITE_USE_ALLOCA=1"]
|
|
181
|
-
}
|
|
182
|
-
if(enableFTS5) {
|
|
183
|
-
cFlags += ["-DSQLITE_ENABLE_FTS5=1"]
|
|
184
|
-
}
|
|
185
|
-
if(enableRtree) {
|
|
186
|
-
cFlags += ["-DSQLITE_ENABLE_RTREE=1"]
|
|
187
|
-
}
|
|
188
|
-
if(useSqliteVec) {
|
|
189
|
-
cFlags += "-DOP_SQLITE_USE_SQLITE_VEC=1"
|
|
190
|
-
cppFlags += "-DOP_SQLITE_USE_SQLITE_VEC=1"
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
// This are zeroes because they will be passed as C flags, so they become falsy
|
|
194
|
-
def sourceFiles = 0
|
|
195
|
-
// def tokenizerInitStrings = 0
|
|
196
|
-
def tokenizersHeaderPath = 0
|
|
197
|
-
if (!tokenizers.isEmpty()) {
|
|
198
|
-
def sourceDir = isUserApp ? file("$rootDir/../../../c_sources") : file("$rootDir/../c_sources")
|
|
199
|
-
def destDir = file("$buildscript.sourceFile.parentFile/c_sources")
|
|
200
|
-
copy {
|
|
201
|
-
from sourceDir
|
|
202
|
-
into destDir
|
|
203
|
-
include "**/*.cpp", "**/*.h"
|
|
204
|
-
}
|
|
205
|
-
sourceFiles = fileTree(dir: destDir, include: ["**/*.cpp", "**/*.h"]).files.join(";")
|
|
206
|
-
tokenizersHeaderPath = "../c_sources/tokenizers.h"
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
cppFlags "-O2 -frtti -fexceptions -Wall -fstack-protector-all"
|
|
210
|
-
abiFilters(*reactNativeArchitectures())
|
|
211
|
-
arguments "-DANDROID_STL=c++_shared",
|
|
212
|
-
"-DSQLITE_FLAGS='$sqliteFlags'",
|
|
213
|
-
"-DUSE_SQLCIPHER=${useSQLCipher ? 1 : 0}",
|
|
214
|
-
"-DUSE_CRSQLITE=${useCRSQLite ? 1 : 0}",
|
|
215
|
-
"-DUSE_LIBSQL=${useLibsql ? 1 : 0}",
|
|
216
|
-
"-DUSE_SQLITE_VEC=${useSqliteVec ? 1 : 0}",
|
|
217
|
-
"-DUSER_DEFINED_SOURCE_FILES=${sourceFiles}",
|
|
218
|
-
"-DUSER_DEFINED_TOKENIZERS_HEADER_PATH='${tokenizersHeaderPath}'",
|
|
219
|
-
"-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON"
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
packagingOptions {
|
|
224
|
-
doNotStrip resolveBuildType() == 'debug' ? "**/**/*.so" : ''
|
|
225
|
-
excludes = [
|
|
226
|
-
"META-INF",
|
|
227
|
-
"META-INF/**",
|
|
228
|
-
"**/libjsi.so",
|
|
229
|
-
"**/libreact_nativemodule_core.so",
|
|
230
|
-
"**/libturbomodulejsijni.so",
|
|
231
|
-
"**/libc++_shared.so",
|
|
232
|
-
"**/libfbjni.so",
|
|
233
|
-
"**/libreactnative.so",
|
|
234
|
-
]
|
|
235
|
-
}
|
|
197
|
+
lintOptions {
|
|
198
|
+
disable "GradleCompatible"
|
|
236
199
|
}
|
|
237
200
|
|
|
238
201
|
compileOptions {
|
|
239
|
-
sourceCompatibility JavaVersion.
|
|
240
|
-
targetCompatibility JavaVersion.
|
|
202
|
+
sourceCompatibility JavaVersion.VERSION_1_8
|
|
203
|
+
targetCompatibility JavaVersion.VERSION_1_8
|
|
241
204
|
}
|
|
242
205
|
|
|
243
206
|
externalNativeBuild {
|
|
@@ -246,21 +209,20 @@ android {
|
|
|
246
209
|
}
|
|
247
210
|
}
|
|
248
211
|
|
|
249
|
-
sourceSets
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
srcDirs += 'src/main/libsqlitevec'
|
|
212
|
+
sourceSets {
|
|
213
|
+
main {
|
|
214
|
+
java.srcDirs += [
|
|
215
|
+
"generated/java",
|
|
216
|
+
"generated/jni"
|
|
217
|
+
]
|
|
218
|
+
jniLibs {
|
|
219
|
+
srcDirs = []
|
|
220
|
+
if (useCRSQLite) {
|
|
221
|
+
srcDirs += 'src/main/libcrsqlite'
|
|
222
|
+
}
|
|
223
|
+
if (useSqliteVec) {
|
|
224
|
+
srcDirs += 'src/main/libsqlitevec'
|
|
225
|
+
}
|
|
264
226
|
}
|
|
265
227
|
}
|
|
266
228
|
}
|
|
@@ -272,8 +234,9 @@ repositories {
|
|
|
272
234
|
}
|
|
273
235
|
|
|
274
236
|
def kotlin_version = getExtOrDefault("kotlinVersion")
|
|
237
|
+
|
|
275
238
|
dependencies {
|
|
276
|
-
implementation
|
|
239
|
+
implementation "com.facebook.react:react-android"
|
|
277
240
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
278
241
|
if (useSQLCipher) {
|
|
279
242
|
implementation('io.github.ronickg:openssl:3.3.2-1')
|
|
@@ -288,26 +251,3 @@ tasks.register('prepareHeaders', Copy) {
|
|
|
288
251
|
}
|
|
289
252
|
|
|
290
253
|
preBuild.dependsOn(prepareHeaders)
|
|
291
|
-
|
|
292
|
-
// Resolves "LOCAL_SRC_FILES points to a missing file, Check that libfb.so exists or that its path is correct".
|
|
293
|
-
tasks.configureEach { task ->
|
|
294
|
-
if (task.name.contains("configureCMakeDebug")) {
|
|
295
|
-
rootProject.getTasksByName("packageReactNdkDebugLibs", true).forEach {
|
|
296
|
-
task.dependsOn(it)
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
// We want to add a dependency for both configureCMakeRelease and configureCMakeRelWithDebInfo
|
|
300
|
-
if (task.name.contains("configureCMakeRel")) {
|
|
301
|
-
rootProject.getTasksByName("packageReactNdkReleaseLibs", true).forEach {
|
|
302
|
-
task.dependsOn(it)
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
if (isNewArchitectureEnabled()) {
|
|
308
|
-
react {
|
|
309
|
-
jsRootDir = file("../src/")
|
|
310
|
-
libraryName = "opsqlite"
|
|
311
|
-
codegenJavaPackageName = "com.op.sqlite.example"
|
|
312
|
-
}
|
|
313
|
-
}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
1
|
+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
|
2
|
+
</manifest>
|
package/cpp/DBHostObject.cpp
CHANGED
|
@@ -361,6 +361,23 @@ void DBHostObject::create_jsi_functions() {
|
|
|
361
361
|
|
|
362
362
|
return create_js_rows(rt, status);
|
|
363
363
|
});
|
|
364
|
+
|
|
365
|
+
function_map["executeRawSync"] = HOSTFN("executeRawSync") {
|
|
366
|
+
const std::string query = args[0].asString(rt).utf8(rt);
|
|
367
|
+
std::vector<JSVariant> params = count == 2 && args[1].isObject()
|
|
368
|
+
? to_variant_vec(rt, args[1])
|
|
369
|
+
: std::vector<JSVariant>();
|
|
370
|
+
|
|
371
|
+
std::vector<std::vector<JSVariant>> results;
|
|
372
|
+
|
|
373
|
+
#ifdef OP_SQLITE_USE_LIBSQL
|
|
374
|
+
auto status = opsqlite_libsql_execute_raw(db, query, ¶ms, &results);
|
|
375
|
+
#else
|
|
376
|
+
auto status = opsqlite_execute_raw(db, query, ¶ms, &results);
|
|
377
|
+
#endif
|
|
378
|
+
|
|
379
|
+
return create_raw_result(rt, status, &results);
|
|
380
|
+
});
|
|
364
381
|
|
|
365
382
|
function_map["execute"] = HOSTFN("execute") {
|
|
366
383
|
const std::string query = args[0].asString(rt).utf8(rt);
|
package/lib/module/Storage.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { open } from
|
|
3
|
+
import { open } from "./functions.js";
|
|
4
4
|
/**
|
|
5
5
|
* Creates a new async-storage api compatible instance.
|
|
6
6
|
* The encryption key is only used when compiled against the SQLCipher version of op-sqlite.
|
|
@@ -9,7 +9,7 @@ export class Storage {
|
|
|
9
9
|
constructor(options) {
|
|
10
10
|
this.db = open({
|
|
11
11
|
...options,
|
|
12
|
-
name: '__opsqlite_storage'
|
|
12
|
+
name: '__opsqlite_storage.sqlite'
|
|
13
13
|
});
|
|
14
14
|
this.db.executeSync('PRAGMA mmap_size=268435456');
|
|
15
15
|
this.db.executeSync('CREATE TABLE IF NOT EXISTS storage (key TEXT PRIMARY KEY, value TEXT) WITHOUT ROWID');
|
|
@@ -51,5 +51,12 @@ export class Storage {
|
|
|
51
51
|
getAllKeys() {
|
|
52
52
|
return this.db.executeSync('SELECT key FROM storage').rows.map(row => row.key);
|
|
53
53
|
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Deletes the underlying database file.
|
|
57
|
+
*/
|
|
58
|
+
delete() {
|
|
59
|
+
this.db.delete();
|
|
60
|
+
}
|
|
54
61
|
}
|
|
55
62
|
//# sourceMappingURL=Storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["open","Storage","constructor","options","db","name","executeSync","getItem","key","result","execute","value","rows","Error","getItemSync","setItem","toString","setItemSync","removeItem","removeItemSync","clear","clearSync","getAllKeys","map","row"],"sourceRoot":"../../src","sources":["Storage.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["open","Storage","constructor","options","db","name","executeSync","getItem","key","result","execute","value","rows","Error","getItemSync","setItem","toString","setItemSync","removeItem","removeItemSync","clear","clearSync","getAllKeys","map","row","delete"],"sourceRoot":"../../src","sources":["Storage.ts"],"mappings":";;AACA,SAASA,IAAI,QAAQ,gBAAa;AAOlC;AACA;AACA;AACA;AACA,OAAO,MAAMC,OAAO,CAAC;EAGnBC,WAAWA,CAACC,OAAuB,EAAE;IACnC,IAAI,CAACC,EAAE,GAAGJ,IAAI,CAAC;MAAE,GAAGG,OAAO;MAAEE,IAAI,EAAE;IAA4B,CAAC,CAAC;IACjE,IAAI,CAACD,EAAE,CAACE,WAAW,CAAC,4BAA4B,CAAC;IACjD,IAAI,CAACF,EAAE,CAACE,WAAW,CACjB,qFACF,CAAC;EACH;EAEA,MAAMC,OAAOA,CAACC,GAAW,EAA+B;IACtD,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACL,EAAE,CAACM,OAAO,CAClC,yCAAyC,EACzC,CAACF,GAAG,CACN,CAAC;IAED,IAAIG,KAAK,GAAGF,MAAM,CAACG,IAAI,CAAC,CAAC,CAAC,EAAED,KAAK;IACjC,IAAI,OAAOA,KAAK,KAAK,WAAW,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7D,MAAM,IAAIE,KAAK,CAAC,qCAAqC,CAAC;IACxD;IACA,OAAOF,KAAK;EACd;EAEAG,WAAWA,CAACN,GAAW,EAAsB;IAC3C,MAAMC,MAAM,GAAG,IAAI,CAACL,EAAE,CAACE,WAAW,CAChC,yCAAyC,EACzC,CAACE,GAAG,CACN,CAAC;IAED,IAAIG,KAAK,GAAGF,MAAM,CAACG,IAAI,CAAC,CAAC,CAAC,EAAED,KAAK;IACjC,IAAI,OAAOA,KAAK,KAAK,WAAW,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7D,MAAM,IAAIE,KAAK,CAAC,qCAAqC,CAAC;IACxD;IAEA,OAAOF,KAAK;EACd;EAEA,MAAMI,OAAOA,CAACP,GAAW,EAAEG,KAAa,EAAE;IACxC,MAAM,IAAI,CAACP,EAAE,CAACM,OAAO,CACnB,2DAA2D,EAC3D,CAACF,GAAG,EAAEG,KAAK,CAACK,QAAQ,CAAC,CAAC,CACxB,CAAC;EACH;EAEAC,WAAWA,CAACT,GAAW,EAAEG,KAAa,EAAE;IACtC,IAAI,CAACP,EAAE,CAACE,WAAW,CACjB,2DAA2D,EAC3D,CAACE,GAAG,EAAEG,KAAK,CAACK,QAAQ,CAAC,CAAC,CACxB,CAAC;EACH;EAEA,MAAME,UAAUA,CAACV,GAAW,EAAE;IAC5B,MAAM,IAAI,CAACJ,EAAE,CAACM,OAAO,CAAC,mCAAmC,EAAE,CAACF,GAAG,CAAC,CAAC;EACnE;EAEAW,cAAcA,CAACX,GAAW,EAAE;IAC1B,IAAI,CAACJ,EAAE,CAACE,WAAW,CAAC,mCAAmC,EAAE,CAACE,GAAG,CAAC,CAAC;EACjE;EAEA,MAAMY,KAAKA,CAAA,EAAG;IACZ,MAAM,IAAI,CAAChB,EAAE,CAACM,OAAO,CAAC,qBAAqB,CAAC;EAC9C;EAEAW,SAASA,CAAA,EAAG;IACV,IAAI,CAACjB,EAAE,CAACE,WAAW,CAAC,qBAAqB,CAAC;EAC5C;EAEAgB,UAAUA,CAAA,EAAG;IACX,OAAO,IAAI,CAAClB,EAAE,CACXE,WAAW,CAAC,yBAAyB,CAAC,CACtCM,IAAI,CAACW,GAAG,CAAEC,GAAQ,IAAKA,GAAG,CAAChB,GAAG,CAAC;EACpC;;EAEA;AACF;AACA;EACEiB,MAAMA,CAAA,EAAG;IACP,IAAI,CAACrB,EAAE,CAACqB,MAAM,CAAC,CAAC;EAClB;AACF","ignoreList":[]}
|