[package]
name = "marlowe_lang"
description = "experimental parser lib for Cardano Marlowe DSL"
version = "0.3.2"
edition = "2021"
authors = ["Olof Blomqvist <olof@twnet.se>"]
repository = "https://github.com/OlofBlomqvist/marlowe_rust"
license-file = "licence"

[dependencies]
pest_derive = "2.7.1"
pest = { version = "2.7.1", features= ["pretty-print"] }
serde = { version = "1.0.171", features = ["derive"] }
serde_json = { version = "1.0.103" , features = ["unbounded_depth"] }
clap = { version = "4.0.19", features = ["derive"] , optional = true}
plutus_data = { version = "0.0.91", optional = true }
#plutus_data = { path = "../plutus_data/plutus_data", optional = true }
console_error_panic_hook = { version = "0.1.7", optional = true }
serde_derive = { version = "1.0.171", optional = true }
#uplc = { git = "https://github.com/txpipe/aiken", optional = true }
hex = { version = "0.4.3" }
minicbor = { version = "0.20.0", optional = true }

getrandom = { version = "0.2.10", features = ["js"], optional = true}

wasm-bindgen = { version = "0.2.87", optional = true , features=["serde-serialize"]}
web-sys = { version = "0.3.59", features = [ 'console' ], optional = true }
bech32 = "0.9.1"
time = "0.3.23"
chrono = { version = "0.4.26", features = ["wasmbind"] }
#aiken-lang = "*"
js-sys = { version = "0.3.59", optional=true}
serde_stacker = {version= "0.1.10",optional = true}
proc-macro2 = "1.0.66"

#pallas-primitives = { path = "c:/users/oblink/documents/github/pallas/pallas-primitives" }
#pallas-codec = {path = "c:/users/oblink/documents/github/pallas/pallas-codec" }
#pallas = { path = "c:/users/oblink/documents/github/pallas/pallas" }

pallas-primitives = "0.18.1"
pallas-codec = "0.18.1"
pallas = "0.18.1"
assert-json-diff = "2.0.2"
indexmap = "2.0.0"

[features]
bin-features = ["clap","utils","unstable"]
infinite-recursion = ["serde_stacker"]
default = ["utils","infinite-recursion","bin-features"]
unstable = []
wasi = []
utils = [
    "dep:minicbor",
    "dep:plutus_data",
    "dep:serde_derive" ]
js = [
    "utils",
    "dep:js-sys",
    "dep:getrandom",
    "dep:wasm-bindgen",
    "dep:console_error_panic_hook",
    "dep:web-sys" ]

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

[[bin]]
name = "marlowe_lang_cli"
path = "src/cli_tool_bin/main.rs"
required-features = ["bin-features"]



[profile.release]
strip = true  # Automatically strip symbols from the binary.
opt-level = "z"  # Optimize for size.
lto = true # Enable Link Time Optimization (LTO)
codegen-units = 1 # Reduce Parallel Code Generation Units to Increase Optimization