{ "name": "anthias", "version": "2026.11.0", "scripts": { "_build_note": "Alpine evaluates @click expressions against a `with(scope)`-style closure at runtime. Bun's --minify-identifiers renames internal Alpine vars (and our handler names in home.ts) in ways that break that lookup — silently. Stick to whitespace+syntax minification, which trims the bundle by half without touching identifiers.", "build:vendor": "bun build ./src/anthias_server/app/static/src/vendor.ts --outfile=./src/anthias_server/app/static/dist/js/vendor.js --target=browser --minify-whitespace --minify-syntax", "build:home": "bun build ./src/anthias_server/app/static/src/home.ts --outfile=./src/anthias_server/app/static/dist/js/home.js --target=browser --minify-whitespace --minify-syntax", "build:splash": "bun build ./src/anthias_server/app/static/src/splash.ts --outfile=./src/anthias_server/app/static/dist/js/splash.js --target=browser --minify-whitespace --minify-syntax", "build:css:tailwind": "bunx @tailwindcss/cli -i src/anthias_server/app/static/src/tailwind.css -o src/anthias_server/app/static/dist/css/tailwind.css --minify", "build:css:components": "bunx sass src/anthias_server/app/static/sass/anthias.scss src/anthias_server/app/static/dist/css/anthias.css --load-path=node_modules --style=compressed --quiet-deps --silence-deprecation=import,global-builtin,color-functions,if-function", "build:css": "bun run build:css:tailwind && bun run build:css:components", "build:fonts": "mkdir -p src/anthias_server/app/static/dist/fonts src/anthias_server/app/static/dist/css/fonts && cp node_modules/@fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-400-normal.woff2 node_modules/@fontsource/plus-jakarta-sans/files/plus-jakarta-sans-latin-700-normal.woff2 src/anthias_server/app/static/dist/fonts/ && cp node_modules/@tabler/icons-webfont/dist/tabler-icons.css src/anthias_server/app/static/dist/css/tabler-icons.css && cp node_modules/@tabler/icons-webfont/dist/fonts/tabler-icons.woff2 node_modules/@tabler/icons-webfont/dist/fonts/tabler-icons.woff node_modules/@tabler/icons-webfont/dist/fonts/tabler-icons.ttf src/anthias_server/app/static/dist/css/fonts/", "build": "bun run build:vendor && bun run build:home && bun run build:splash && bun run build:css && bun run build:fonts", "_email_note": "mjml is pinned through bunx rather than added to devDependencies. The bun-builder stage in docker/Dockerfile.server.j2 runs `bun install --frozen-lockfile` for every board image it builds, and a newsletter template has no business putting ~50 packages on that path. The version pin gives the same reproducibility a lockfile entry would. Not part of `build`, because nothing the device serves comes out of it.", "build:email": "mkdir -p emails/dist && bunx mjml@4.15.3 emails/newsletter.mjml -o emails/dist/newsletter.html --config.validationLevel=strict", "dev:vendor": "bun build ./src/anthias_server/app/static/src/vendor.ts --outfile=./src/anthias_server/app/static/dist/js/vendor.js --target=browser --sourcemap=linked --watch", "dev:home": "bun build ./src/anthias_server/app/static/src/home.ts --outfile=./src/anthias_server/app/static/dist/js/home.js --target=browser --sourcemap=linked --watch", "dev:splash": "bun build ./src/anthias_server/app/static/src/splash.ts --outfile=./src/anthias_server/app/static/dist/js/splash.js --target=browser --sourcemap=linked --watch", "dev:css:tailwind": "bunx @tailwindcss/cli -i src/anthias_server/app/static/src/tailwind.css -o src/anthias_server/app/static/dist/css/tailwind.css --watch", "dev:css:components": "bunx sass src/anthias_server/app/static/sass/anthias.scss src/anthias_server/app/static/dist/css/anthias.css --load-path=node_modules --watch --quiet-deps --silence-deprecation=import,global-builtin,color-functions,if-function", "dev": "bash -c 'bun run dev:vendor & v=$!; bun run dev:home & h=$!; bun run dev:splash & sp=$!; bun run dev:css:tailwind & tw=$!; bun run dev:css:components & css=$!; trap \"kill $v $h $sp $tw $css 2>/dev/null\" EXIT INT TERM; wait -n; exit $?'", "lint:check": "echo 'no-op: TS lint not configured for the htmx/alpine entrypoint'", "lint:fix": "echo 'no-op'", "format:check": "echo 'no-op'", "format:fix": "echo 'no-op'", "test": "bun test" }, "dependencies": { "@fontsource/plus-jakarta-sans": "^5.3.0", "@tabler/icons-webfont": "^3.49.0", "alpinejs": "^3.17.5", "flatpickr": "^4.6.13", "htmx.org": "^2.0.11", "leaflet": "^1.9.4", "qrcode": "^1.5.4" }, "devDependencies": { "@happy-dom/global-registrator": "^21.0.4", "@tailwindcss/cli": "^4.3.3", "@tailwindcss/forms": "^0.5.11", "@types/leaflet": "^1.9.22", "@types/qrcode": "^1.5.6", "happy-dom": "^21.0.4", "sass": "^1.106.1", "tailwindcss": "^4.3.3", "typescript": "^7.0.2" } }