@livestore/wa-sqlite 1.0.3-dev.2 → 1.0.3-dev.3

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.
@@ -30,7 +30,7 @@ Module['ready'] = new Promise((resolve, reject) => {
30
30
  readyPromiseResolve = resolve;
31
31
  readyPromiseReject = reject;
32
32
  });
33
- ["_RegisterExtensionFunctions","_main","_malloc","_free","_sqlite3_aggregate_context","_sqlite3_auto_extension","_sqlite3_autovacuum_pages","_sqlite3_backup_finish","_sqlite3_backup_init","_sqlite3_backup_pagecount","_sqlite3_backup_remaining","_sqlite3_backup_step","_sqlite3_bind_blob","_sqlite3_bind_blob64","_sqlite3_bind_double","_sqlite3_bind_int","_sqlite3_bind_int64","_sqlite3_bind_null","_sqlite3_bind_parameter_count","_sqlite3_bind_parameter_index","_sqlite3_bind_parameter_name","_sqlite3_bind_pointer","_sqlite3_bind_text","_sqlite3_bind_text16","_sqlite3_bind_text64","_sqlite3_bind_value","_sqlite3_bind_zeroblob","_sqlite3_bind_zeroblob64","_sqlite3_blob_bytes","_sqlite3_blob_close","_sqlite3_blob_open","_sqlite3_blob_read","_sqlite3_blob_reopen","_sqlite3_blob_write","_sqlite3_busy_handler","_sqlite3_busy_timeout","_sqlite3_cancel_auto_extension","_sqlite3_changes","_sqlite3_changes64","_sqlite3_clear_bindings","_sqlite3_close","_sqlite3_close_v2","_sqlite3_collation_needed","_sqlite3_collation_needed16","_sqlite3_column_blob","_sqlite3_column_bytes","_sqlite3_column_bytes16","_sqlite3_column_count","_sqlite3_column_double","_sqlite3_column_int","_sqlite3_column_int64","_sqlite3_column_name","_sqlite3_column_name16","_sqlite3_column_text","_sqlite3_column_text16","_sqlite3_column_type","_sqlite3_column_value","_sqlite3_commit_hook","_sqlite3_compileoption_get","_sqlite3_compileoption_used","_sqlite3_complete","_sqlite3_complete16","_sqlite3_config","_sqlite3_context_db_handle","_sqlite3_create_collation","_sqlite3_create_collation16","_sqlite3_create_collation_v2","_sqlite3_create_filename","_sqlite3_create_function","_sqlite3_create_function16","_sqlite3_create_function_v2","_sqlite3_create_module","_sqlite3_create_module_v2","_sqlite3_create_window_function","_sqlite3_data_count","_sqlite3_database_file_object","_sqlite3_db_cacheflush","_sqlite3_db_config","_sqlite3_db_filename","_sqlite3_db_handle","_sqlite3_db_mutex","_sqlite3_db_name","_sqlite3_db_readonly","_sqlite3_db_release_memory","_sqlite3_db_status","_sqlite3_declare_vtab","_sqlite3_deserialize","_sqlite3_drop_modules","_sqlite3_errcode","_sqlite3_errmsg","_sqlite3_errmsg16","_sqlite3_error_offset","_sqlite3_errstr","_sqlite3_exec","_sqlite3_expanded_sql","_sqlite3_extended_errcode","_sqlite3_extended_result_codes","_sqlite3_file_control","_sqlite3_filename_database","_sqlite3_filename_journal","_sqlite3_filename_wal","_sqlite3_finalize","_sqlite3_free","_sqlite3_free_filename","_sqlite3_free_table","_sqlite3_get_autocommit","_sqlite3_get_auxdata","_sqlite3_get_clientdata","_sqlite3_get_table","_sqlite3_hard_heap_limit64","_sqlite3_initialize","_sqlite3_interrupt","_sqlite3_is_interrupted","_sqlite3_keyword_check","_sqlite3_keyword_count","_sqlite3_keyword_name","_sqlite3_last_insert_rowid","_sqlite3_libversion","_sqlite3_libversion_number","_sqlite3_limit","_sqlite3_log","_sqlite3_malloc","_sqlite3_malloc64","_sqlite3_memory_highwater","_sqlite3_memory_used","_sqlite3_mprintf","_sqlite3_msize","_sqlite3_next_stmt","_sqlite3_open","_sqlite3_open16","_sqlite3_open_v2","_sqlite3_os_end","_sqlite3_os_init","_sqlite3_overload_function","_sqlite3_prepare","_sqlite3_prepare16","_sqlite3_prepare16_v2","_sqlite3_prepare16_v3","_sqlite3_prepare_v2","_sqlite3_prepare_v3","_sqlite3_progress_handler","_sqlite3_randomness","_sqlite3_realloc","_sqlite3_realloc64","_sqlite3_release_memory","_sqlite3_reset","_sqlite3_reset_auto_extension","_sqlite3_result_blob","_sqlite3_result_blob64","_sqlite3_result_double","_sqlite3_result_error","_sqlite3_result_error16","_sqlite3_result_error_code","_sqlite3_result_error_nomem","_sqlite3_result_error_toobig","_sqlite3_result_int","_sqlite3_result_int64","_sqlite3_result_null","_sqlite3_result_pointer","_sqlite3_result_subtype","_sqlite3_result_text","_sqlite3_result_text16","_sqlite3_result_text16be","_sqlite3_result_text16le","_sqlite3_result_text64","_sqlite3_result_value","_sqlite3_result_zeroblob","_sqlite3_result_zeroblob64","_sqlite3_rollback_hook","_sqlite3_serialize","_sqlite3_set_authorizer","_sqlite3_set_auxdata","_sqlite3_set_clientdata","_sqlite3_set_last_insert_rowid","_sqlite3_shutdown","_sqlite3_sleep","_sqlite3_snprintf","_sqlite3_soft_heap_limit64","_sqlite3_sourceid","_sqlite3_sql","_sqlite3_status","_sqlite3_status64","_sqlite3_step","_sqlite3_stmt_busy","_sqlite3_stmt_explain","_sqlite3_stmt_isexplain","_sqlite3_stmt_readonly","_sqlite3_stmt_status","_sqlite3_str_append","_sqlite3_str_appendall","_sqlite3_str_appendchar","_sqlite3_str_appendf","_sqlite3_str_errcode","_sqlite3_str_finish","_sqlite3_str_length","_sqlite3_str_new","_sqlite3_str_reset","_sqlite3_str_value","_sqlite3_str_vappendf","_sqlite3_strglob","_sqlite3_stricmp","_sqlite3_strlike","_sqlite3_strnicmp","_sqlite3_system_errno","_sqlite3_table_column_metadata","_sqlite3_test_control","_sqlite3_threadsafe","_sqlite3_total_changes","_sqlite3_total_changes64","_sqlite3_trace_v2","_sqlite3_txn_state","_sqlite3_update_hook","_sqlite3session_create","_sqlite3session_attach","_sqlite3session_enable","_sqlite3session_changeset","_sqlite3session_delete","_sqlite3changeset_invert","_sqlite3changeset_apply","_sqlite3_uri_boolean","_sqlite3_uri_int64","_sqlite3_uri_key","_sqlite3_uri_parameter","_sqlite3_user_data","_sqlite3_value_blob","_sqlite3_value_bytes","_sqlite3_value_bytes16","_sqlite3_value_double","_sqlite3_value_dup","_sqlite3_value_encoding","_sqlite3_value_free","_sqlite3_value_frombind","_sqlite3_value_int","_sqlite3_value_int64","_sqlite3_value_nochange","_sqlite3_value_numeric_type","_sqlite3_value_pointer","_sqlite3_value_subtype","_sqlite3_value_text","_sqlite3_value_text16","_sqlite3_value_text16be","_sqlite3_value_text16le","_sqlite3_value_type","_sqlite3_version","_sqlite3_vfs_find","_sqlite3_vfs_register","_sqlite3_vfs_unregister","_sqlite3_vmprintf","_sqlite3_vsnprintf","_sqlite3_vtab_collation","_sqlite3_vtab_config","_sqlite3_vtab_distinct","_sqlite3_vtab_in","_sqlite3_vtab_in_first","_sqlite3_vtab_in_next","_sqlite3_vtab_nochange","_sqlite3_vtab_on_conflict","_sqlite3_vtab_rhs_value","_sqlite3_wal_autocheckpoint","_sqlite3_wal_checkpoint","_sqlite3_wal_checkpoint_v2","_sqlite3_wal_hook","_memory","_getSqliteFree","_libauthorizer_set_authorizer","_libfunction_create_function","_libhook_update_hook","_libprogress_progress_handler","_libvfs_vfs_register","___indirect_function_table","_fflush","onRuntimeInitialized"].forEach((prop) => {
33
+ ["_RegisterExtensionFunctions","_main","_malloc","_free","_sqlite3_aggregate_context","_sqlite3_auto_extension","_sqlite3_autovacuum_pages","_sqlite3_backup_finish","_sqlite3_backup_init","_sqlite3_backup_pagecount","_sqlite3_backup_remaining","_sqlite3_backup_step","_sqlite3_bind_blob","_sqlite3_bind_blob64","_sqlite3_bind_double","_sqlite3_bind_int","_sqlite3_bind_int64","_sqlite3_bind_null","_sqlite3_bind_parameter_count","_sqlite3_bind_parameter_index","_sqlite3_bind_parameter_name","_sqlite3_bind_pointer","_sqlite3_bind_text","_sqlite3_bind_text16","_sqlite3_bind_text64","_sqlite3_bind_value","_sqlite3_bind_zeroblob","_sqlite3_bind_zeroblob64","_sqlite3_blob_bytes","_sqlite3_blob_close","_sqlite3_blob_open","_sqlite3_blob_read","_sqlite3_blob_reopen","_sqlite3_blob_write","_sqlite3_busy_handler","_sqlite3_busy_timeout","_sqlite3_cancel_auto_extension","_sqlite3_changes","_sqlite3_changes64","_sqlite3_clear_bindings","_sqlite3_close","_sqlite3_close_v2","_sqlite3_collation_needed","_sqlite3_collation_needed16","_sqlite3_column_blob","_sqlite3_column_bytes","_sqlite3_column_bytes16","_sqlite3_column_count","_sqlite3_column_double","_sqlite3_column_int","_sqlite3_column_int64","_sqlite3_column_name","_sqlite3_column_name16","_sqlite3_column_text","_sqlite3_column_text16","_sqlite3_column_type","_sqlite3_column_value","_sqlite3_commit_hook","_sqlite3_compileoption_get","_sqlite3_compileoption_used","_sqlite3_complete","_sqlite3_complete16","_sqlite3_config","_sqlite3_context_db_handle","_sqlite3_create_collation","_sqlite3_create_collation16","_sqlite3_create_collation_v2","_sqlite3_create_filename","_sqlite3_create_function","_sqlite3_create_function16","_sqlite3_create_function_v2","_sqlite3_create_module","_sqlite3_create_module_v2","_sqlite3_create_window_function","_sqlite3_data_count","_sqlite3_database_file_object","_sqlite3_db_cacheflush","_sqlite3_db_config","_sqlite3_db_filename","_sqlite3_db_handle","_sqlite3_db_mutex","_sqlite3_db_name","_sqlite3_db_readonly","_sqlite3_db_release_memory","_sqlite3_db_status","_sqlite3_declare_vtab","_sqlite3_deserialize","_sqlite3_drop_modules","_sqlite3_errcode","_sqlite3_errmsg","_sqlite3_errmsg16","_sqlite3_error_offset","_sqlite3_errstr","_sqlite3_exec","_sqlite3_expanded_sql","_sqlite3_extended_errcode","_sqlite3_extended_result_codes","_sqlite3_file_control","_sqlite3_filename_database","_sqlite3_filename_journal","_sqlite3_filename_wal","_sqlite3_finalize","_sqlite3_free","_sqlite3_free_filename","_sqlite3_free_table","_sqlite3_get_autocommit","_sqlite3_get_auxdata","_sqlite3_get_clientdata","_sqlite3_get_table","_sqlite3_hard_heap_limit64","_sqlite3_initialize","_sqlite3_interrupt","_sqlite3_is_interrupted","_sqlite3_keyword_check","_sqlite3_keyword_count","_sqlite3_keyword_name","_sqlite3_last_insert_rowid","_sqlite3_libversion","_sqlite3_libversion_number","_sqlite3_limit","_sqlite3_log","_sqlite3_malloc","_sqlite3_malloc64","_sqlite3_memory_highwater","_sqlite3_memory_used","_sqlite3_mprintf","_sqlite3_msize","_sqlite3_next_stmt","_sqlite3_open","_sqlite3_open16","_sqlite3_open_v2","_sqlite3_os_end","_sqlite3_os_init","_sqlite3_overload_function","_sqlite3_prepare","_sqlite3_prepare16","_sqlite3_prepare16_v2","_sqlite3_prepare16_v3","_sqlite3_prepare_v2","_sqlite3_prepare_v3","_sqlite3_progress_handler","_sqlite3_randomness","_sqlite3_realloc","_sqlite3_realloc64","_sqlite3_release_memory","_sqlite3_reset","_sqlite3_reset_auto_extension","_sqlite3_result_blob","_sqlite3_result_blob64","_sqlite3_result_double","_sqlite3_result_error","_sqlite3_result_error16","_sqlite3_result_error_code","_sqlite3_result_error_nomem","_sqlite3_result_error_toobig","_sqlite3_result_int","_sqlite3_result_int64","_sqlite3_result_null","_sqlite3_result_pointer","_sqlite3_result_subtype","_sqlite3_result_text","_sqlite3_result_text16","_sqlite3_result_text16be","_sqlite3_result_text16le","_sqlite3_result_text64","_sqlite3_result_value","_sqlite3_result_zeroblob","_sqlite3_result_zeroblob64","_sqlite3_rollback_hook","_sqlite3_serialize","_sqlite3_set_authorizer","_sqlite3_set_auxdata","_sqlite3_set_clientdata","_sqlite3_set_last_insert_rowid","_sqlite3_shutdown","_sqlite3_sleep","_sqlite3_snprintf","_sqlite3_soft_heap_limit64","_sqlite3_sourceid","_sqlite3_sql","_sqlite3_status","_sqlite3_status64","_sqlite3_step","_sqlite3_stmt_busy","_sqlite3_stmt_explain","_sqlite3_stmt_isexplain","_sqlite3_stmt_readonly","_sqlite3_stmt_status","_sqlite3_str_append","_sqlite3_str_appendall","_sqlite3_str_appendchar","_sqlite3_str_appendf","_sqlite3_str_errcode","_sqlite3_str_finish","_sqlite3_str_length","_sqlite3_str_new","_sqlite3_str_reset","_sqlite3_str_value","_sqlite3_str_vappendf","_sqlite3_strglob","_sqlite3_stricmp","_sqlite3_strlike","_sqlite3_strnicmp","_sqlite3_system_errno","_sqlite3_table_column_metadata","_sqlite3_test_control","_sqlite3_threadsafe","_sqlite3_total_changes","_sqlite3_total_changes64","_sqlite3_trace_v2","_sqlite3_txn_state","_sqlite3_update_hook","_sqlite3changeset_start","_sqlite3changeset_finalize","_sqlite3session_create","_sqlite3session_attach","_sqlite3session_enable","_sqlite3session_changeset","_sqlite3session_delete","_sqlite3changeset_invert","_sqlite3changeset_apply","_sqlite3_uri_boolean","_sqlite3_uri_int64","_sqlite3_uri_key","_sqlite3_uri_parameter","_sqlite3_user_data","_sqlite3_value_blob","_sqlite3_value_bytes","_sqlite3_value_bytes16","_sqlite3_value_double","_sqlite3_value_dup","_sqlite3_value_encoding","_sqlite3_value_free","_sqlite3_value_frombind","_sqlite3_value_int","_sqlite3_value_int64","_sqlite3_value_nochange","_sqlite3_value_numeric_type","_sqlite3_value_pointer","_sqlite3_value_subtype","_sqlite3_value_text","_sqlite3_value_text16","_sqlite3_value_text16be","_sqlite3_value_text16le","_sqlite3_value_type","_sqlite3_version","_sqlite3_vfs_find","_sqlite3_vfs_register","_sqlite3_vfs_unregister","_sqlite3_vmprintf","_sqlite3_vsnprintf","_sqlite3_vtab_collation","_sqlite3_vtab_config","_sqlite3_vtab_distinct","_sqlite3_vtab_in","_sqlite3_vtab_in_first","_sqlite3_vtab_in_next","_sqlite3_vtab_nochange","_sqlite3_vtab_on_conflict","_sqlite3_vtab_rhs_value","_sqlite3_wal_autocheckpoint","_sqlite3_wal_checkpoint","_sqlite3_wal_checkpoint_v2","_sqlite3_wal_hook","_memory","_getSqliteFree","_libauthorizer_set_authorizer","_libfunction_create_function","_libhook_update_hook","_libprogress_progress_handler","_libvfs_vfs_register","___indirect_function_table","_fflush","onRuntimeInitialized"].forEach((prop) => {
34
34
  if (!Object.getOwnPropertyDescriptor(Module['ready'], prop)) {
35
35
  Object.defineProperty(Module['ready'], prop, {
36
36
  get: () => abort('You are getting ' + prop + ' on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js'),
@@ -5592,6 +5592,8 @@ var _sqlite3session_delete = Module['_sqlite3session_delete'] = createExportWrap
5592
5592
  var _sqlite3session_attach = Module['_sqlite3session_attach'] = createExportWrapper('sqlite3session_attach');
5593
5593
  var _sqlite3session_changeset = Module['_sqlite3session_changeset'] = createExportWrapper('sqlite3session_changeset');
5594
5594
  var _sqlite3session_enable = Module['_sqlite3session_enable'] = createExportWrapper('sqlite3session_enable');
5595
+ var _sqlite3changeset_start = Module['_sqlite3changeset_start'] = createExportWrapper('sqlite3changeset_start');
5596
+ var _sqlite3changeset_finalize = Module['_sqlite3changeset_finalize'] = createExportWrapper('sqlite3changeset_finalize');
5595
5597
  var _sqlite3changeset_invert = Module['_sqlite3changeset_invert'] = createExportWrapper('sqlite3changeset_invert');
5596
5598
  var _sqlite3changeset_apply = Module['_sqlite3changeset_apply'] = createExportWrapper('sqlite3changeset_apply');
5597
5599
  var _sqlite3_sourceid = Module['_sqlite3_sourceid'] = createExportWrapper('sqlite3_sourceid');
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livestore/wa-sqlite",
3
- "version": "1.0.3-dev.2",
3
+ "version": "1.0.3-dev.3",
4
4
  "type": "module",
5
5
  "main": "src/sqlite-api.js",
6
6
  "types": "src/types/index.d.ts",
package/src/sqlite-api.js CHANGED
@@ -938,8 +938,13 @@ export function Factory(Module) {
938
938
  // Get the pointer to the changeset
939
939
  const changesetPtr = Module.getValue(changesetPtrPtr, 'i32');
940
940
 
941
+ // Ensure the pointer is valid before accessing memory
942
+ if (changesetPtr === 0) {
943
+ throw new SQLiteError('Failed to retrieve changeset pointer', SQLite.SQLITE_ERROR);
944
+ }
945
+
941
946
  // Copy the changeset data
942
- const changeset = new Uint8Array(Module.HEAPU8.buffer, changesetPtr, size);
947
+ const changeset = new Uint8Array(Module.HEAPU8.subarray(changesetPtr, changesetPtr + size));
943
948
 
944
949
  // Free the allocated changeset memory
945
950
  Module._sqlite3_free(changesetPtr);
@@ -948,7 +953,7 @@ export function Factory(Module) {
948
953
  return {
949
954
  result: result,
950
955
  size: size,
951
- changeset: new Uint8Array(changeset)
956
+ changeset: changeset
952
957
  };
953
958
  }
954
959
  return check(fname, result);
@@ -972,35 +977,77 @@ export function Factory(Module) {
972
977
  };
973
978
  })();
974
979
 
980
+ sqlite3.changeset_start = (function() {
981
+ const fname = 'sqlite3changeset_start';
982
+ const f = Module.cwrap(fname, ...decl('nnn:n'));
983
+ return function(changesetData) {
984
+ // Allocate memory for the input changeset data
985
+ const inPtr = Module._sqlite3_malloc(changesetData.length);
986
+ Module.HEAPU8.subarray(inPtr).set(changesetData);
987
+
988
+ // Allocate memory for the changeset iterator pointer
989
+ const ppIter = Module._malloc(4);
990
+
991
+ try {
992
+ // Call the wrapped C function
993
+ const result = f(ppIter, changesetData.length, inPtr);
994
+
995
+ if (result !== SQLite.SQLITE_OK) {
996
+ check(fname, result); // Handle errors appropriately
997
+ }
998
+
999
+ // Retrieve the changeset iterator handle
1000
+ const pIter = Module.getValue(ppIter, 'i32');
1001
+
1002
+ return pIter;
1003
+ } finally {
1004
+ // Free allocated memory
1005
+ Module._sqlite3_free(inPtr);
1006
+ Module._free(ppIter);
1007
+ }
1008
+ };
1009
+ })();
1010
+
1011
+ sqlite3.changeset_finalize = (function() {
1012
+ const fname = 'sqlite3changeset_finalize';
1013
+ const f = Module.cwrap(fname, ...decl('n:n'));
1014
+ return function(pIter) {
1015
+ const result = f(pIter);
1016
+ return result;
1017
+ };
1018
+ })();
1019
+
975
1020
  sqlite3.changeset_invert = (function() {
976
1021
  const fname = 'sqlite3changeset_invert';
977
1022
  const f = Module.cwrap(fname, ...decl('nn:nn'));
978
1023
  return function(changesetData) {
979
-
1024
+ // Allocate memory for the input changeset data
980
1025
  const inPtr = Module._sqlite3_malloc(changesetData.length);
981
1026
  Module.HEAPU8.subarray(inPtr).set(changesetData);
982
1027
 
1028
+ // Allocate memory for the output changeset length and pointer
983
1029
  const outLengthPtr = Module._malloc(4);
984
1030
  const outPtrPtr = Module._malloc(4);
985
- console.log('changesetData.length', changesetData.length)
1031
+
1032
+ // Call the wrapped C function
986
1033
  const result = f(changesetData.length, inPtr, outLengthPtr, outPtrPtr);
987
1034
 
988
1035
  if (result !== SQLite.SQLITE_OK) {
989
- check(fname, result);
1036
+ check(fname, result); // Handle errors appropriately
990
1037
  }
991
1038
 
992
- // Get the size of the changeset
1039
+ // Retrieve the size and pointer of the inverted changeset
993
1040
  const outLength = Module.getValue(outLengthPtr, 'i32');
994
- // Get the pointer to the changeset
995
1041
  const changesetOutPtr = Module.getValue(outPtrPtr, 'i32');
996
-
997
- // Copy the changeset data
1042
+
1043
+ // Copy the inverted changeset data
998
1044
  const changesetOut = new Uint8Array(Module.HEAPU8.buffer, changesetOutPtr, outLength);
999
1045
 
1046
+ // Free allocated memory
1000
1047
  Module._sqlite3_free(inPtr);
1001
1048
  Module._sqlite3_free(outLengthPtr);
1002
1049
  Module._sqlite3_free(outPtrPtr);
1003
-
1050
+
1004
1051
  return changesetOut;
1005
1052
  };
1006
1053
  })();
@@ -969,6 +969,22 @@ interface SQLiteAPI {
969
969
  */
970
970
  session_delete(pSession: number): void;
971
971
 
972
+ /**
973
+ * Start a changeset.
974
+ *
975
+ * @param changeset changeset blob to import from
976
+ * @returns changeset iterator pointer
977
+ */
978
+ changeset_start(changesetBlob: Uint8Array): number;
979
+
980
+ /**
981
+ * Finalize a changeset iterator.
982
+ *
983
+ * @param pIter changeset iterator pointer
984
+ * @returns `SQLITE_OK` (throws exception on error)
985
+ */
986
+ changeset_finalize(pIter: number): number;
987
+
972
988
  /**
973
989
  * Invert a changeset.
974
990
  *