#!/usr/bin/env bash # Laedt xterm.js und guacamole-common-js lokal herunter (npm) und kopiert die # fertigen Dist-Dateien nach static/js/vendor/ bzw. static/js/vendor/. # # Bewusst KEIN CDN-Bezug zur Laufzeit im Browser (Hardening-Konzept 4.1/6.6) -- # der Download passiert einmalig zur Build-/Deployzeit, im Betrieb werden die # Assets ausschliesslich lokal vom Jumphost selbst ausgeliefert. set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" VENDOR_DIR="$PROJECT_ROOT/static/js/vendor" TMP_DIR="$(mktemp -d)" trap 'rm -rf "$TMP_DIR"' EXIT mkdir -p "$VENDOR_DIR" echo "==> Installiere xterm.js + Addon 'fit' + guacamole-common-js nach $TMP_DIR" cd "$TMP_DIR" npm init -y >/dev/null npm install --no-audit --no-fund \ xterm@5 \ xterm-addon-fit@0.8 \ xterm-addon-canvas@0.5 \ guacamole-common-js@1.5 echo "==> Kopiere Dist-Dateien nach $VENDOR_DIR" cp node_modules/xterm/lib/xterm.js "$VENDOR_DIR/xterm.js" cp node_modules/xterm/css/xterm.css "$VENDOR_DIR/xterm.css" cp node_modules/xterm-addon-fit/lib/xterm-addon-fit.js "$VENDOR_DIR/xterm-addon-fit.js" cp node_modules/xterm-addon-canvas/lib/xterm-addon-canvas.js "$VENDOR_DIR/xterm-addon-canvas.js" # guacamole-common-js liefert nur ESM/CJS-Builds aus, keinen fertigen # Browser-Global-Build. Fuer die Einbindung per klassischem