# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.85.0"
name = "absurder-sql"
version = "0.1.22"
authors = ["Nicholas G. Piesco"]
build = false
exclude = [
    "pwa/",
    "pwa/.next/",
    "pwa/node_modules/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "AbsurderSQL - SQLite + IndexedDB that's absurdly better than absurd-sql"
readme = "README.md"
license = "AGPL-3.0"
repository = "https://github.com/npiesco/absurder-sql"

[package.metadata.wasm-pack.profile.release]
wasm-opt = ["-Oz"]

[features]
bundled-sqlite = [
    "rusqlite",
    "rusqlite/bundled",
]
default = [
    "console_error_panic_hook",
    "console_log",
    "bundled-sqlite",
]
encryption = [
    "rusqlite",
    "rusqlite/sqlcipher",
]
encryption-commoncrypto = [
    "rusqlite",
    "rusqlite/bundled-sqlcipher",
]
encryption-ios = ["encryption-commoncrypto"]
fs_persist = []
telemetry = [
    "prometheus",
    "opentelemetry",
    "opentelemetry_sdk",
    "opentelemetry-prometheus",
]

[lib]
name = "absurder_sql"
crate-type = [
    "cdylib",
    "rlib",
]
path = "src/lib.rs"

[[bin]]
name = "cli_query"
path = "src/bin/cli_query.rs"

[[example]]
name = "persist_demo"
path = "examples/persist_demo.rs"

[[test]]
name = "aggressive_concurrent_test"
path = "tests/aggressive_concurrent_test.rs"

[[test]]
name = "auto_sync_disable_tests"
path = "tests/auto_sync_disable_tests.rs"

[[test]]
name = "auto_sync_manager_tests"
path = "tests/auto_sync_manager_tests.rs"

[[test]]
name = "auto_sync_metrics_tests"
path = "tests/auto_sync_metrics_tests.rs"

[[test]]
name = "auto_sync_policy_tests"
path = "tests/auto_sync_policy_tests.rs"

[[test]]
name = "auto_sync_shutdown_tests"
path = "tests/auto_sync_shutdown_tests.rs"

[[test]]
name = "auto_sync_timer_tests"
path = "tests/auto_sync_timer_tests.rs"

[[test]]
name = "background_sync_tests"
path = "tests/background_sync_tests.rs"

[[test]]
name = "basic_native_tests"
path = "tests/basic_native_tests.rs"

[[test]]
name = "batch_block_operations"
path = "tests/batch_block_operations.rs"

[[test]]
name = "block_integrity_tests"
path = "tests/block_integrity_tests.rs"

[[test]]
name = "block_metadata_tests"
path = "tests/block_metadata_tests.rs"

[[test]]
name = "block_metadata_version_tests"
path = "tests/block_metadata_version_tests.rs"

[[test]]
name = "broadcast_notifications_tests"
path = "tests/broadcast_notifications_tests.rs"

[[test]]
name = "broadcast_refcell_conflict_test"
path = "tests/broadcast_refcell_conflict_test.rs"

[[test]]
name = "checksum_algorithm_tests"
path = "tests/checksum_algorithm_tests.rs"

[[test]]
name = "compile_test_telemetry_optional"
path = "tests/compile_test_telemetry_optional.rs"

[[test]]
name = "concurrent_operations_fix_test"
path = "tests/concurrent_operations_fix_test.rs"

[[test]]
name = "coordination_metrics_tests"
path = "tests/coordination_metrics_tests.rs"

[[test]]
name = "coordination_time_safety_tests"
path = "tests/coordination_time_safety_tests.rs"

[[test]]
name = "crash_consistency_logging_tests"
path = "tests/crash_consistency_logging_tests.rs"

[[test]]
name = "crash_consistency_tests"
path = "tests/crash_consistency_tests.rs"

[[test]]
name = "crash_partial_multi_mixed_presence_tests"
path = "tests/crash_partial_multi_mixed_presence_tests.rs"

[[test]]
name = "cross_connection_persistence_test"
path = "tests/cross_connection_persistence_test.rs"

[[test]]
name = "current_checksum_behavior_test"
path = "tests/current_checksum_behavior_test.rs"

[[test]]
name = "current_vfs_sync_behavior_test"
path = "tests/current_vfs_sync_behavior_test.rs"

[[test]]
name = "database_config_application_test"
path = "tests/database_config_application_test.rs"

[[test]]
name = "debug_concurrent_test"
path = "tests/debug_concurrent_test.rs"

[[test]]
name = "debug_storage_test"
path = "tests/debug_storage_test.rs"

[[test]]
name = "drop_db_ptr_null_test"
path = "tests/drop_db_ptr_null_test.rs"

[[test]]
name = "encryption_tests"
path = "tests/encryption_tests.rs"

[[test]]
name = "export_config_test"
path = "tests/export_config_test.rs"

[[test]]
name = "export_import_examples_test"
path = "tests/export_import_examples_test.rs"

[[test]]
name = "export_import_lock_tests"
path = "tests/export_import_lock_tests.rs"

[[test]]
name = "export_tests"
path = "tests/export_tests.rs"

[[test]]
name = "fs_persistence_tests"
path = "tests/fs_persistence_tests.rs"

[[test]]
name = "heartbeat_cleanup_test"
path = "tests/heartbeat_cleanup_test.rs"

[[test]]
name = "idempotent_writes_tests"
path = "tests/idempotent_writes_tests.rs"

[[test]]
name = "import_cache_invalidation_test"
path = "tests/import_cache_invalidation_test.rs"

[[test]]
name = "import_close_persist_test"
path = "tests/import_close_persist_test.rs"

[[test]]
name = "import_connection_pool_test"
path = "tests/import_connection_pool_test.rs"

[[test]]
name = "import_debug_test"
path = "tests/import_debug_test.rs"

[[test]]
name = "import_tests"
path = "tests/import_tests.rs"

[[test]]
name = "indexeddb_block_restoration_tests"
path = "tests/indexeddb_block_restoration_tests.rs"

[[test]]
name = "indexeddb_crash_recovery_tests"
path = "tests/indexeddb_crash_recovery_tests.rs"

[[test]]
name = "indexeddb_crash_simulation_tests"
path = "tests/indexeddb_crash_simulation_tests.rs"

[[test]]
name = "indexeddb_delete_all_blocks_test"
path = "tests/indexeddb_delete_all_blocks_test.rs"

[[test]]
name = "indexeddb_error_handling_tests"
path = "tests/indexeddb_error_handling_tests.rs"

[[test]]
name = "indexeddb_retry_tests"
path = "tests/indexeddb_retry_tests.rs"

[[test]]
name = "indexeddb_transactional_writes_tests"
path = "tests/indexeddb_transactional_writes_tests.rs"

[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"

[[test]]
name = "leadership_lease_heartbeat_test"
path = "tests/leadership_lease_heartbeat_test.rs"

[[test]]
name = "log_infrastructure_test"
path = "tests/log_infrastructure_test.rs"

[[test]]
name = "lru_cache_tests"
path = "tests/lru_cache_tests.rs"

[[test]]
name = "metrics_query_execution_tests"
path = "tests/metrics_query_execution_tests.rs"

[[test]]
name = "mobile_bridge_overhead_test"
path = "tests/mobile_bridge_overhead_test.rs"

[[test]]
name = "mobile_optimized_config_test"
path = "tests/mobile_optimized_config_test.rs"

[[test]]
name = "multi_tab_check_create_race"
path = "tests/multi_tab_check_create_race.rs"

[[test]]
name = "multi_tab_creation_race"
path = "tests/multi_tab_creation_race.rs"

[[test]]
name = "multi_tab_leader_election_tests"
path = "tests/multi_tab_leader_election_tests.rs"

[[test]]
name = "native_block_metadata_persistence"
path = "tests/native_block_metadata_persistence.rs"

[[test]]
name = "native_database_persistence_tests"
path = "tests/native_database_persistence_tests.rs"

[[test]]
name = "observability_events_tests"
path = "tests/observability_events_tests.rs"

[[test]]
name = "observability_metrics_tests"
path = "tests/observability_metrics_tests.rs"

[[test]]
name = "optimistic_updates_tests"
path = "tests/optimistic_updates_tests.rs"

[[test]]
name = "partial_block_write_test"
path = "tests/partial_block_write_test.rs"

[[test]]
name = "phase1_setup"
path = "tests/phase1_setup.rs"

[[test]]
name = "phase2_indexeddb"
path = "tests/phase2_indexeddb.rs"

[[test]]
name = "phase3_sqlite"
path = "tests/phase3_sqlite.rs"

[[test]]
name = "phase4_combined"
path = "tests/phase4_combined.rs"

[[test]]
name = "prepared_statement_tests"
path = "tests/prepared_statement_tests.rs"

[[test]]
name = "private_browsing_safety_tests"
path = "tests/private_browsing_safety_tests.rs"

[[test]]
name = "read_performance_tests"
path = "tests/read_performance_tests.rs"

[[test]]
name = "recovery_invalid_size_deletion_tests"
path = "tests/recovery_invalid_size_deletion_tests.rs"

[[test]]
name = "recovery_invalid_size_tests"
path = "tests/recovery_invalid_size_tests.rs"

[[test]]
name = "recovery_reconciliation_tests"
path = "tests/recovery_reconciliation_tests.rs"

[[test]]
name = "refcell_reentrancy_test"
path = "tests/refcell_reentrancy_test.rs"

[[test]]
name = "request_leadership_regression_test"
path = "tests/request_leadership_regression_test.rs"

[[test]]
name = "rusqlite_interop_tests"
path = "tests/rusqlite_interop_tests.rs"

[[test]]
name = "send_safety_test"
path = "tests/send_safety_test.rs"

[[test]]
name = "simple_concurrent_test"
path = "tests/simple_concurrent_test.rs"

[[test]]
name = "simple_leader_test"
path = "tests/simple_leader_test.rs"

[[test]]
name = "simple_vfs_test"
path = "tests/simple_vfs_test.rs"

[[test]]
name = "sqlite_wasm_hang_regression_test"
path = "tests/sqlite_wasm_hang_regression_test.rs"

[[test]]
name = "startup_recovery_tests"
path = "tests/startup_recovery_tests.rs"

[[test]]
name = "storage_registry_concurrent_access_tests"
path = "tests/storage_registry_concurrent_access_tests.rs"

[[test]]
name = "telemetry_auto_export_test"
path = "tests/telemetry_auto_export_test.rs"

[[test]]
name = "telemetry_baggage_test"
path = "tests/telemetry_baggage_test.rs"

[[test]]
name = "telemetry_config_tests"
path = "tests/telemetry_config_tests.rs"

[[test]]
name = "telemetry_dependencies_tests"
path = "tests/telemetry_dependencies_tests.rs"

[[test]]
name = "telemetry_indexeddb_instrumentation_test"
path = "tests/telemetry_indexeddb_instrumentation_test.rs"

[[test]]
name = "telemetry_integration_tests"
path = "tests/telemetry_integration_tests.rs"

[[test]]
name = "telemetry_leader_election_test"
path = "tests/telemetry_leader_election_test.rs"

[[test]]
name = "telemetry_memory_allocation_test"
path = "tests/telemetry_memory_allocation_test.rs"

[[test]]
name = "telemetry_metrics_tests"
path = "tests/telemetry_metrics_tests.rs"

[[test]]
name = "telemetry_optional_test"
path = "tests/telemetry_optional_test.rs"

[[test]]
name = "telemetry_prometheus_integration_test"
path = "tests/telemetry_prometheus_integration_test.rs"

[[test]]
name = "telemetry_sampling_test"
path = "tests/telemetry_sampling_test.rs"

[[test]]
name = "telemetry_sync_instrumentation_test"
path = "tests/telemetry_sync_instrumentation_test.rs"

[[test]]
name = "telemetry_tracer_tests"
path = "tests/telemetry_tracer_tests.rs"

[[test]]
name = "telemetry_tracing_instrumentation_test"
path = "tests/telemetry_tracing_instrumentation_test.rs"

[[test]]
name = "telemetry_wasm_exporter_test"
path = "tests/telemetry_wasm_exporter_test.rs"

[[test]]
name = "test_block_allocation"
path = "tests/test_block_allocation.rs"

[[test]]
name = "test_env"
path = "tests/test_env.rs"

[[test]]
name = "test_filename_normalization"
path = "tests/test_filename_normalization.rs"

[[test]]
name = "test_journal_mode"
path = "tests/test_journal_mode.rs"

[[test]]
name = "test_pragma_journal_mode"
path = "tests/test_pragma_journal_mode.rs"

[[test]]
name = "three_db_concurrent_test"
path = "tests/three_db_concurrent_test.rs"

[[test]]
name = "transaction_support_test"
path = "tests/transaction_support_test.rs"

[[test]]
name = "transaction_sync_performance_test"
path = "tests/transaction_sync_performance_test.rs"

[[test]]
name = "verify_after_write_tests"
path = "tests/verify_after_write_tests.rs"

[[test]]
name = "vfs_durability_tests"
path = "tests/vfs_durability_tests.rs"

[[test]]
name = "vfs_performance_profile"
path = "tests/vfs_performance_profile.rs"

[[test]]
name = "vfs_reentrancy_isolation_test"
path = "tests/vfs_reentrancy_isolation_test.rs"

[[test]]
name = "vfs_sync_frequency_test"
path = "tests/vfs_sync_frequency_test.rs"

[[test]]
name = "vfs_write_buffering_tests"
path = "tests/vfs_write_buffering_tests.rs"

[[test]]
name = "wasm_auto_sync_tests"
path = "tests/wasm_auto_sync_tests.rs"

[[test]]
name = "wasm_block_metadata_mismatch"
path = "tests/wasm_block_metadata_mismatch.rs"

[[test]]
name = "wasm_block_metadata_persistence"
path = "tests/wasm_block_metadata_persistence.rs"

[[test]]
name = "wasm_integration_tests"
path = "tests/wasm_integration_tests.rs"

[[test]]
name = "wasm_metadata_restoration_tests"
path = "tests/wasm_metadata_restoration_tests.rs"

[[test]]
name = "wasm_string_safety_tests"
path = "tests/wasm_string_safety_tests.rs"

[[test]]
name = "wasm_tests"
path = "tests/wasm_tests.rs"

[[test]]
name = "wasm_vfs_crash_consistency_tests"
path = "tests/wasm_vfs_crash_consistency_tests.rs"

[[test]]
name = "wasm_vfs_transactional_tests"
path = "tests/wasm_vfs_transactional_tests.rs"

[[test]]
name = "write_queue_tests"
path = "tests/write_queue_tests.rs"

[dependencies.console_error_panic_hook]
version = "0.1"
optional = true

[dependencies.console_log]
version = "0.2"
optional = true

[dependencies.crc32fast]
version = "1.4"

[dependencies.futures]
version = "0.3"
features = ["std"]

[dependencies.futures-channel]
version = "0.3.31"

[dependencies.getrandom]
version = "0.2"
features = ["js"]

[dependencies.indexed_db_futures]
version = "0.5"

[dependencies.js-sys]
version = "0.3"

[dependencies.log]
version = "0.4"

[dependencies.opentelemetry]
version = "0.21"
optional = true

[dependencies.opentelemetry-prometheus]
version = "0.14"
optional = true

[dependencies.opentelemetry_sdk]
version = "0.21"
features = ["rt-tokio"]
optional = true

[dependencies.parking_lot]
version = "0.12"
features = ["send_guard"]

[dependencies.prometheus]
version = "0.13"
optional = true

[dependencies.serde]
version = "1.0"
features = ["derive"]

[dependencies.serde-wasm-bindgen]
version = "0.6"

[dependencies.serde_json]
version = "1.0"

[dependencies.sqlite-wasm-rs]
version = "0.4"
features = ["precompiled"]
default-features = false

[dependencies.sqlparser]
version = "0.53"

[dependencies.thiserror]
version = "1.0"

[dependencies.time]
version = "0.3"
features = [
    "formatting",
    "parsing",
]

[dependencies.tsify]
version = "0.4"

[dependencies.wasm-bindgen]
version = "0.2"

[dependencies.wasm-bindgen-futures]
version = "0.4"

[dependencies.web-sys]
version = "0.3"
features = [
    "console",
    "Window",
    "Document",
    "Storage",
    "IdbFactory",
    "IdbDatabase",
    "IdbObjectStore",
    "IdbTransaction",
    "IdbRequest",
    "IdbCursorWithValue",
    "IdbKeyRange",
    "DomException",
    "Event",
    "EventTarget",
    "BroadcastChannel",
    "MessageEvent",
    "Request",
    "RequestInit",
    "RequestMode",
    "Response",
    "Headers",
    "Navigator",
    "LockManager",
    "LockOptions",
    "AbortSignal",
]

[dependencies.weblocks]
version = "0.1.0"

[dependencies.wee_alloc]
version = "0.4"
optional = true

[dev-dependencies.once_cell]
version = "1"

[dev-dependencies.opentelemetry]
version = "0.21"

[dev-dependencies.opentelemetry-prometheus]
version = "0.14"

[dev-dependencies.opentelemetry_sdk]
version = "0.21"
features = ["rt-tokio"]

[dev-dependencies.prometheus]
version = "0.13"

[dev-dependencies.serial_test]
version = "2"

[dev-dependencies.tempfile]
version = "3"

[dev-dependencies.wasm-bindgen-test]
version = "0.3.55"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.opentelemetry-otlp]
version = "0.14"
optional = true

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rusqlite]
version = "0.30"
features = [
    "vtab",
    "backup",
]
optional = true

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio]
version = "1.0"
features = ["full"]

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.opentelemetry-otlp]
version = "0.14"

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.tokio]
version = "1.0"
features = [
    "full",
    "test-util",
]
