diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 3a2f5ec1..8cec003a 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -2027,7 +2027,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: FBLazyVector: 2e5b5553df729e080483373db6f045201ff4e6db hermes-engine: 273e30e7fb618279934b0b95ffab60ecedb7acf5 - op-sqlite: 4651f571998e9739cd4fe16f033bd8a159279da6 + op-sqlite: 137a619945c21df76fda2744680061b8f3251839 OpServer: 9b3ebdeeb095950e760e3c39853cd06849421b35 RCTDeprecation: c6b36da89aa26090c8684d29c2868dcca2cd4554 RCTRequired: 1413a0844770d00fa1f1bb2da4680adfa8698065 diff --git a/example/package.json b/example/package.json index f9ec23a3..4440166c 100644 --- a/example/package.json +++ b/example/package.json @@ -45,7 +45,7 @@ "node": ">=18" }, "op-sqlite": { - "libsql": false, + "libsql": true, "sqlcipher": false, "iosSqlite": false, "fts5": true, diff --git a/ios/libsql.xcframework/ios-arm64/Headers/libsql.h b/ios/libsql.xcframework/ios-arm64/Headers/libsql.h deleted file mode 100644 index b14c7b5a..00000000 --- a/ios/libsql.xcframework/ios-arm64/Headers/libsql.h +++ /dev/null @@ -1,178 +0,0 @@ -#ifndef LIBSQL_EXPERIMENTAL_H -#define LIBSQL_EXPERIMENTAL_H - -#include - -#define LIBSQL_INT 1 - -#define LIBSQL_FLOAT 2 - -#define LIBSQL_TEXT 3 - -#define LIBSQL_BLOB 4 - -#define LIBSQL_NULL 5 - -typedef struct libsql_connection libsql_connection; - -typedef struct libsql_database libsql_database; - -typedef struct libsql_row libsql_row; - -typedef struct libsql_rows libsql_rows; - -typedef struct libsql_rows_future libsql_rows_future; - -typedef struct libsql_stmt libsql_stmt; - -typedef const libsql_database *libsql_database_t; - -typedef struct { - int frame_no; - int frames_synced; -} replicated; - -typedef struct { - const char *db_path; - const char *primary_url; - const char *auth_token; - char read_your_writes; - const char *encryption_key; - int sync_interval; - char with_webpki; - char offline; - const char *remote_encryption_key; -} libsql_config; - -typedef const libsql_connection *libsql_connection_t; - -typedef const libsql_stmt *libsql_stmt_t; - -typedef const libsql_rows *libsql_rows_t; - -typedef const libsql_rows_future *libsql_rows_future_t; - -typedef const libsql_row *libsql_row_t; - -typedef struct { - const char *ptr; - int len; -} blob; - -#ifdef __cplusplus -extern "C" { -#endif // __cplusplus - -int libsql_enable_internal_tracing(void); - -int libsql_sync(libsql_database_t db, const char **out_err_msg); - -int libsql_sync2(libsql_database_t db, replicated *out_replicated, const char **out_err_msg); - -int libsql_open_sync(const char *db_path, - const char *primary_url, - const char *auth_token, - char read_your_writes, - const char *encryption_key, - libsql_database_t *out_db, - const char **out_err_msg); - -int libsql_open_sync_with_webpki(const char *db_path, - const char *primary_url, - const char *auth_token, - char read_your_writes, - const char *encryption_key, - libsql_database_t *out_db, - const char **out_err_msg); - -int libsql_open_sync_with_config(libsql_config config, libsql_database_t *out_db, const char **out_err_msg); - -int libsql_open_ext(const char *url, libsql_database_t *out_db, const char **out_err_msg); - -int libsql_open_file(const char *url, libsql_database_t *out_db, const char **out_err_msg); - -int libsql_open_remote(const char *url, const char *auth_token, libsql_database_t *out_db, const char **out_err_msg); - -int libsql_open_remote_with_webpki(const char *url, - const char *auth_token, - libsql_database_t *out_db, - const char **out_err_msg); - -void libsql_close(libsql_database_t db); - -int libsql_connect(libsql_database_t db, libsql_connection_t *out_conn, const char **out_err_msg); - -int libsql_load_extension(libsql_connection_t conn, - const char *path, - const char *entry_point, - const char **out_err_msg); - -int libsql_set_reserved_bytes(libsql_connection_t conn, int32_t reserved_bytes, const char **out_err_msg); - -int libsql_get_reserved_bytes(libsql_connection_t conn, int32_t *reserved_bytes, const char **out_err_msg); - -int libsql_reset(libsql_connection_t conn, const char **out_err_msg); - -void libsql_disconnect(libsql_connection_t conn); - -int libsql_prepare(libsql_connection_t conn, const char *sql, libsql_stmt_t *out_stmt, const char **out_err_msg); - -int libsql_bind_int(libsql_stmt_t stmt, int idx, long long value, const char **out_err_msg); - -int libsql_bind_float(libsql_stmt_t stmt, int idx, double value, const char **out_err_msg); - -int libsql_bind_null(libsql_stmt_t stmt, int idx, const char **out_err_msg); - -int libsql_bind_string(libsql_stmt_t stmt, int idx, const char *value, const char **out_err_msg); - -int libsql_bind_blob(libsql_stmt_t stmt, int idx, const unsigned char *value, int value_len, const char **out_err_msg); - -int libsql_query_stmt(libsql_stmt_t stmt, libsql_rows_t *out_rows, const char **out_err_msg); - -int libsql_execute_stmt(libsql_stmt_t stmt, const char **out_err_msg); - -int libsql_reset_stmt(libsql_stmt_t stmt, const char **out_err_msg); - -void libsql_free_stmt(libsql_stmt_t stmt); - -int libsql_query(libsql_connection_t conn, const char *sql, libsql_rows_t *out_rows, const char **out_err_msg); - -int libsql_execute(libsql_connection_t conn, const char *sql, const char **out_err_msg); - -void libsql_free_rows(libsql_rows_t res); - -void libsql_free_rows_future(libsql_rows_future_t res); - -void libsql_wait_result(libsql_rows_future_t res); - -int libsql_column_count(libsql_rows_t res); - -int libsql_column_name(libsql_rows_t res, int col, const char **out_name, const char **out_err_msg); - -int libsql_column_type(libsql_rows_t res, libsql_row_t row, int col, int *out_type, const char **out_err_msg); - -uint64_t libsql_changes(libsql_connection_t conn); - -int64_t libsql_last_insert_rowid(libsql_connection_t conn); - -int libsql_next_row(libsql_rows_t res, libsql_row_t *out_row, const char **out_err_msg); - -void libsql_free_row(libsql_row_t res); - -int libsql_get_string(libsql_row_t res, int col, const char **out_value, const char **out_err_msg); - -void libsql_free_string(const char *ptr); - -int libsql_get_int(libsql_row_t res, int col, long long *out_value, const char **out_err_msg); - -int libsql_get_float(libsql_row_t res, int col, double *out_value, const char **out_err_msg); - -int libsql_get_blob(libsql_row_t res, int col, blob *out_blob, const char **out_err_msg); - -void libsql_free_blob(blob b); - -#ifdef __cplusplus -} // extern "C" -#endif // __cplusplus - -#endif /* LIBSQL_EXPERIMENTAL_H */ diff --git a/ios/libsql.xcframework/ios-arm64/libsql_experimental.a b/ios/libsql.xcframework/ios-arm64/libsql_experimental.a deleted file mode 100644 index 12665a63..00000000 Binary files a/ios/libsql.xcframework/ios-arm64/libsql_experimental.a and /dev/null differ diff --git a/ios/libsql.xcframework/ios-arm64_x86_64-simulator/libsql_experimental.a b/ios/libsql.xcframework/ios-arm64_x86_64-simulator/libsql_experimental.a deleted file mode 100644 index 32164c48..00000000 Binary files a/ios/libsql.xcframework/ios-arm64_x86_64-simulator/libsql_experimental.a and /dev/null differ diff --git a/ios/libsql.xcframework/Info.plist b/ios/libsql_experimental.xcframework/Info.plist similarity index 68% rename from ios/libsql.xcframework/Info.plist rename to ios/libsql_experimental.xcframework/Info.plist index fad6ff8c..94cbfdcc 100644 --- a/ios/libsql.xcframework/Info.plist +++ b/ios/libsql_experimental.xcframework/Info.plist @@ -5,14 +5,10 @@ AvailableLibraries - BinaryPath - libsql_experimental.a - HeadersPath - Headers LibraryIdentifier ios-arm64 LibraryPath - libsql_experimental.a + libsql_experimental.framework SupportedArchitectures arm64 @@ -21,18 +17,13 @@ ios - BinaryPath - libsql_experimental.a - HeadersPath - Headers LibraryIdentifier - ios-arm64_x86_64-simulator + ios-arm64-simulator LibraryPath - libsql_experimental.a + libsql_experimental.framework SupportedArchitectures arm64 - x86_64 SupportedPlatform ios @@ -44,5 +35,9 @@ XFWK XCFrameworkFormatVersion 1.0 + CFBundleVersion + 1.0.0 + CFBundleShortVersionString + 1.0.0 - + \ No newline at end of file diff --git a/cpp/libsql/libsql.h b/ios/libsql_experimental.xcframework/ios-arm64-simulator/libsql_experimental.framework/Headers/libsql.h similarity index 94% rename from cpp/libsql/libsql.h rename to ios/libsql_experimental.xcframework/ios-arm64-simulator/libsql_experimental.framework/Headers/libsql.h index b14c7b5a..5a43eaac 100644 --- a/cpp/libsql/libsql.h +++ b/ios/libsql_experimental.xcframework/ios-arm64-simulator/libsql_experimental.framework/Headers/libsql.h @@ -93,6 +93,12 @@ int libsql_open_file(const char *url, libsql_database_t *out_db, const char **ou int libsql_open_remote(const char *url, const char *auth_token, libsql_database_t *out_db, const char **out_err_msg); +int libsql_open_remote_with_remote_encryption(const char *url, + const char *auth_token, + const char *remote_encryption_key, + libsql_database_t *out_db, + const char **out_err_msg); + int libsql_open_remote_with_webpki(const char *url, const char *auth_token, libsql_database_t *out_db, diff --git a/ios/libsql_experimental.xcframework/ios-arm64-simulator/libsql_experimental.framework/Info.plist b/ios/libsql_experimental.xcframework/ios-arm64-simulator/libsql_experimental.framework/Info.plist new file mode 100644 index 00000000..46a43f7e --- /dev/null +++ b/ios/libsql_experimental.xcframework/ios-arm64-simulator/libsql_experimental.framework/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + libsql_experimental + CFBundleIdentifier + com.turso.libsql-experimental + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleSignature + ???? + CFBundleVersion + 1.0.0 + CFBundleShortVersionString + 1.0.0 + MinimumOSVersion + 13.0 + + \ No newline at end of file diff --git a/ios/libsql_experimental.xcframework/ios-arm64-simulator/libsql_experimental.framework/_CodeSignature/CodeResources b/ios/libsql_experimental.xcframework/ios-arm64-simulator/libsql_experimental.framework/_CodeSignature/CodeResources new file mode 100644 index 00000000..09f767de --- /dev/null +++ b/ios/libsql_experimental.xcframework/ios-arm64-simulator/libsql_experimental.framework/_CodeSignature/CodeResources @@ -0,0 +1,101 @@ + + + + + files + + Info.plist + + y2tAwL6cV6izJFZOQN6d4oaV1Wk= + + + files2 + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/ios/libsql_experimental.xcframework/ios-arm64-simulator/libsql_experimental.framework/libsql_experimental b/ios/libsql_experimental.xcframework/ios-arm64-simulator/libsql_experimental.framework/libsql_experimental new file mode 100755 index 00000000..cde5f7dd Binary files /dev/null and b/ios/libsql_experimental.xcframework/ios-arm64-simulator/libsql_experimental.framework/libsql_experimental differ diff --git a/ios/libsql.xcframework/ios-arm64_x86_64-simulator/Headers/libsql.h b/ios/libsql_experimental.xcframework/ios-arm64/libsql_experimental.framework/Headers/libsql.h similarity index 94% rename from ios/libsql.xcframework/ios-arm64_x86_64-simulator/Headers/libsql.h rename to ios/libsql_experimental.xcframework/ios-arm64/libsql_experimental.framework/Headers/libsql.h index b14c7b5a..5a43eaac 100644 --- a/ios/libsql.xcframework/ios-arm64_x86_64-simulator/Headers/libsql.h +++ b/ios/libsql_experimental.xcframework/ios-arm64/libsql_experimental.framework/Headers/libsql.h @@ -93,6 +93,12 @@ int libsql_open_file(const char *url, libsql_database_t *out_db, const char **ou int libsql_open_remote(const char *url, const char *auth_token, libsql_database_t *out_db, const char **out_err_msg); +int libsql_open_remote_with_remote_encryption(const char *url, + const char *auth_token, + const char *remote_encryption_key, + libsql_database_t *out_db, + const char **out_err_msg); + int libsql_open_remote_with_webpki(const char *url, const char *auth_token, libsql_database_t *out_db, diff --git a/ios/libsql_experimental.xcframework/ios-arm64/libsql_experimental.framework/Info.plist b/ios/libsql_experimental.xcframework/ios-arm64/libsql_experimental.framework/Info.plist new file mode 100644 index 00000000..46a43f7e --- /dev/null +++ b/ios/libsql_experimental.xcframework/ios-arm64/libsql_experimental.framework/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + libsql_experimental + CFBundleIdentifier + com.turso.libsql-experimental + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleSignature + ???? + CFBundleVersion + 1.0.0 + CFBundleShortVersionString + 1.0.0 + MinimumOSVersion + 13.0 + + \ No newline at end of file diff --git a/ios/libsql_experimental.xcframework/ios-arm64/libsql_experimental.framework/_CodeSignature/CodeResources b/ios/libsql_experimental.xcframework/ios-arm64/libsql_experimental.framework/_CodeSignature/CodeResources new file mode 100644 index 00000000..09f767de --- /dev/null +++ b/ios/libsql_experimental.xcframework/ios-arm64/libsql_experimental.framework/_CodeSignature/CodeResources @@ -0,0 +1,101 @@ + + + + + files + + Info.plist + + y2tAwL6cV6izJFZOQN6d4oaV1Wk= + + + files2 + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/ios/libsql_experimental.xcframework/ios-arm64/libsql_experimental.framework/libsql_experimental b/ios/libsql_experimental.xcframework/ios-arm64/libsql_experimental.framework/libsql_experimental new file mode 100755 index 00000000..a2986ebb Binary files /dev/null and b/ios/libsql_experimental.xcframework/ios-arm64/libsql_experimental.framework/libsql_experimental differ diff --git a/op-sqlite.podspec b/op-sqlite.podspec index fdd38a68..e717811f 100644 --- a/op-sqlite.podspec +++ b/op-sqlite.podspec @@ -130,7 +130,7 @@ Pod::Spec.new do |s| xcconfig[:GCC_PREPROCESSOR_DEFINITIONS] += " OP_SQLITE_USE_SQLCIPHER=1 HAVE_FULLFSYNC=1 SQLITE_HAS_CODEC SQLITE_TEMP_STORE=3 SQLITE_EXTRA_INIT=sqlcipher_extra_init SQLITE_EXTRA_SHUTDOWN=sqlcipher_extra_shutdown" s.dependency "OpenSSL-Universal" elsif use_libsql then - log_message.call("[OP-SQLITE] using libsql. Please contact turso (via Discord) for libsql issues") + log_message.call("[OP-SQLITE] ⚠️ Using libsql. If you have libsql questions please ask in the Turso Discord server.") exclude_files += ["cpp/sqlite3.c", "cpp/sqlite3.h", "cpp/sqlcipher/sqlite3.c", "cpp/sqlcipher/sqlite3.h", "cpp/bridge.h", "cpp/bridge.cpp"] else log_message.call("[OP-SQLITE] using pure SQLite") @@ -185,9 +185,9 @@ Pod::Spec.new do |s| if use_libsql then xcconfig[:GCC_PREPROCESSOR_DEFINITIONS] += " OP_SQLITE_USE_LIBSQL=1" if use_crsqlite then - frameworks = ["ios/libsql.xcframework", "ios/crsqlite.xcframework"] + frameworks = ["ios/libsql_experimental.xcframework", "ios/crsqlite.xcframework"] else - frameworks = ["ios/libsql.xcframework"] + frameworks = ["ios/libsql_experimental.xcframework"] end end