FROM node:22-bookworm-slim

RUN apt update \
 && apt install -y \
  git \
  python3 \
  python3-venv \
  python3-dev \
  python3-pip \
  python3-numpy \
  python3-scipy \
  lame \
  ffmpeg \
  curl \
  xz-utils \
  make \
  automake \
  libtool \
  cmake \
  pkg-config \
  lsb-release \
  wget \
  software-properties-common \
  gnupg \
  binaryen

RUN curl -LO https://apt.llvm.org/llvm.sh \
 && chmod +x llvm.sh \
 && ./llvm.sh all

RUN npm install -g typescript

RUN python3 -m venv --system-site-packages /opt/venv \
 && . /opt/venv/bin/activate \
 && pip install --ignore-installed setuptools \
 && pip install 'git+https://github.com/CPJKU/madmom@0551aa8f48d71a367d92b5d3a347a0cf7cd97cc9#egg=madmom' \
 && pip cache purge

ENV PATH="${PATH}:/opt/venv/bin"

RUN curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp > /usr/local/bin/yt-dlp && chmod +x /usr/local/bin/yt-dlp

RUN git clone https://github.com/emscripten-core/emsdk.git \
 && cd emsdk \
 && ./emsdk install 3.1.65 \
 && ./emsdk activate 3.1.65

ENV PATH="${PATH}:/emsdk:/emsdk/upstream/emscripten" \
    EMSDK=/emsdk \
    EMSDK_NODE=/emsdk/node/18.20.3_64bit/bin/node
