[package]
name = "degenerate"
version = "0.0.1"
description = "A degenerate programming language"
edition = "2021"
license = "CC0-1.0"
autotests = false

[workspace]
members = [".", "bin/serve", "program"]

[dependencies]
base64 = "0.13.0"
console_error_panic_hook = "0.1.7"
console_log = "0.2.0"
getrandom = { version = "0.2.6", features = ["js"] }
hex = "0.4.3"
image = "0.24.2"
js-sys = "0.3.57"
lazy_static = "1.4.0"
log = "0.4.17"
nalgebra = { version = "0.31.4", features = ["serde-serialize"] }
rand = { version = "0.8.4" }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
strum = { version = "0.24.0", features = ["derive"] }
# keep in sync with `.github/workflows/ci.yaml`
wasm-bindgen = { version = "0.2.80", features = ["serde-serialize"] }

[dependencies.web-sys]
version = "0.3.57"
features = [
  "AnalyserNode",
  "AudioContext",
  "AudioDestinationNode",
  "AudioParam",
  "CanvasRenderingContext2d",
  "DedicatedWorkerGlobalScope",
  "Document",
  "DomTokenList",
  "Element",
  "GainNode",
  "HtmlAnchorElement",
  "HtmlButtonElement",
  "HtmlCanvasElement",
  "HtmlCollection",
  "HtmlDivElement",
  "HtmlElement",
  "HtmlInputElement",
  "HtmlLabelElement",
  "HtmlOptionElement",
  "HtmlSelectElement",
  "HtmlSpanElement",
  "HtmlTextAreaElement",
  "ImageData",
  "KeyboardEvent",
  "Location",
  "MediaDevices",
  "MediaStream",
  "MediaStreamAudioSourceNode",
  "MediaStreamConstraints",
  "MessageEvent",
  "Navigator",
  "OscillatorNode",
  "WebGl2RenderingContext",
  "WebGlActiveInfo",
  "WebGlBuffer",
  "WebGlContextAttributes",
  "WebGlFramebuffer",
  "WebGlProgram",
  "WebGlShader",
  "WebGlTexture",
  "WebGlUniformLocation",
  "Window",
  "Worker",
  "WorkerOptions",
  "WorkerType",
  "console",
]

[dev-dependencies]
approx = "0.5.0"
