[package]
name = "amql-engine"
description = "AQL engine: parse, index, query, and validate code annotations"
version.workspace = true
edition.workspace = true
license.workspace = true
publish = true
repository.workspace = true
homepage.workspace = true
authors.workspace = true
[lints]
workspace = true
[package.metadata.agents]
skills = "agents"
[package.metadata.wasm-js-bridge]
npm_name = "@amql/engine"
wasm_features = "--no-default-features --features wasm"
cjs = true
jsflow = true
peers = ["@amql/selector", "@amql/mutate"]
[package.metadata.wasm-js-bridge.exports]
"." = "src/index.rs"
[package.metadata.wasm-pack.profile.release]
wasm-opt = false
[lib]
crate-type = ["cdylib", "rlib"]
[features]
default = ["resolver", "fs"]
resolver = [
"dep:tree-sitter",
"dep:tree-sitter-rust",
"dep:tree-sitter-typescript",
"dep:tree-sitter-go",
]
fs = ["dep:walkdir", "dep:ignore", "dep:rayon"]
ts = ["dep:ts-rs", "amql-mutate/ts", "amql-selector/ts", "amql-predicates/ts"]
flow = [
"dep:flowjs-rs",
"amql-mutate/flow",
"amql-selector/flow",
"amql-predicates/flow",
]
jsonschema = [
"dep:schemars",
"amql-mutate/jsonschema",
"amql-selector/jsonschema",
]
wasm = ["dep:wasm-bindgen", "dep:serde-wasm-bindgen"]
codegen = ["ts", "flow", "wasm"]
[dependencies]
wasm-js-bridge = { workspace = true }
amql-predicates = { version = "=0.0.0-alpha.0", path = "../amql-predicates" }
amql-file-lock = { version = "=0.0.0-alpha.0", path = "../amql-file-lock" }
amql-mutate = { version = "=0.0.0-alpha.0", path = "../amql-mutate" }
amql-selector = { version = "=0.0.0-alpha.0", path = "../amql-selector" }
serde = { workspace = true }
serde_json = { workspace = true }
quick-xml = { workspace = true }
walkdir = { version = "2", optional = true }
ignore = { version = "0.4", optional = true }
tree-sitter = { version = "0.25", optional = true }
tree-sitter-rust = { version = "0.24", optional = true }
tree-sitter-typescript = { version = "0.23", optional = true }
tree-sitter-go = { version = "0.25", optional = true }
rayon = { workspace = true, optional = true }
rustc-hash = { workspace = true }
schemars = { version = "1", optional = true }
ts-rs = { version = "12", optional = true, features = [
"serde-json-impl",
"no-serde-warnings",
] }
flowjs-rs = { workspace = true, optional = true, features = [
"serde-json-impl",
] }
wasm-bindgen = { version = "0.2", optional = true }
serde-wasm-bindgen = { version = "0.6", optional = true }
[dev-dependencies]
pretty_assertions = "1"
criterion = { version = "0.5", features = ["html_reports"] }
tempfile = "3"
[[bench]]
name = "engine"
harness = false