# bnto-spreadsheet — Spreadsheet processing node crate.
# Provides clean, convert, merge, and rename processors for CSV files.
# Compiles to WASM for browser execution and native for CLI.

[package]
name = "bnto-spreadsheet"
version = "0.1.2"
edition = "2024"
description = "Spreadsheet processing nodes for Bnto engine — clean, convert, merge, rename"
license = "MIT"
repository = "https://github.com/Develonaut/bnto"
homepage = "https://bnto.io"
readme = "README.md"
keywords = ["wasm", "csv", "spreadsheet", "data", "browser"]
categories = ["wasm", "parser-implementations"]

# wasm-opt flags — must match ALL features Rust enables by default.
# Rust 1.87+ (LLVM 20) enables 6 post-MVP features for wasm32-unknown-unknown.
# See bnto-wasm/Cargo.toml for full explanation.
[package.metadata.wasm-pack.profile.release]
wasm-opt = ["-O", "--enable-bulk-memory", "--enable-nontrapping-float-to-int", "--enable-sign-ext", "--enable-mutable-globals", "--enable-reference-types", "--enable-multivalue"]

[lib]
crate-type = ["rlib"]

[dependencies]
bnto-core = { path = "../bnto-core", version = "0.1.2" }
wasm-bindgen = { workspace = true }
js-sys = { workspace = true }
web-sys = { workspace = true, features = ["console"] }
thiserror = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }

# Pure Rust CSV parser/writer — streaming, handles variable-length rows.
csv = { workspace = true }

[dev-dependencies]
wasm-bindgen-test = { workspace = true }
