{ "tasks": { "dev": "deno run --env-file=.env --unstable-net --unstable-worker-options --allow-net --allow-env --allow-read --allow-write=data --watch apps/gateway/main.ts", "start": "deno run --env-file=.env --unstable-net --unstable-worker-options --allow-net --allow-env --allow-read --allow-write=data apps/gateway/main.ts", "setup": "deno install --allow-scripts=npm:esbuild", "check": "deno check packages/**/*.ts apps/gateway/**/*.ts tests/contract/**/*.ts tests/e2e/**/*.ts tests/integration/**/*.ts tests/live/**/*.ts", "fmt": "deno fmt", "lint": "deno lint", // --ignore replaces the "test.exclude" list rather than adding to it, so all // three exclusions are repeated here. tests/live drives docker compose and // is reached through test:live only. "test": "deno test --unstable-net --unstable-worker-options --allow-net --allow-env --allow-read --allow-write --allow-run --ignore=apps/control-ui,tests/browser,tests/live", // Every stage in dependency order, one verdict. Stages needing Docker or a // running gateway are skipped with a stated reason rather than dropped. "test:all": "deno run --allow-run --allow-net --allow-env --allow-read scripts/full_suite.ts", "test:e2e": "deno test --unstable-net --allow-all tests/e2e/", "test:live": "deno test --unstable-net --allow-all tests/live/", "test:load": "deno run --allow-net --allow-env scripts/load-bench.ts", // One-time Deno KV -> PostgreSQL migration. Carries --unstable-kv, which // NO other task does: it is the only code left that opens a KV database. // --allow-write=data is unavoidable rather than intended - Deno KV opens // its SQLite file read-write even for a pure read, so a read-only // migration cannot be expressed at the permission layer. The script never // writes to the source; see its header. "migrate:kv-pg": "deno run --env-file=.env --unstable-kv --allow-env --allow-read --allow-write=data --allow-net scripts/migrate_kv_to_pg.ts", "bench": "deno bench --unstable-net --allow-net --allow-env --allow-read", "dev-ui": "deno task -f control-ui dev", "build-ui": "deno task -f control-ui build", "preview-ui": "deno task -f control-ui preview", "check-ui": "deno task -f control-ui check", "test-ui": "deno task -f control-ui test", "docker:build": "docker build -t frosty-gateway ." }, "imports": { "@std/assert": "jsr:@std/assert@^1.0.19", "@std/http": "jsr:@std/http@^1.1.3", "@std/path": "jsr:@std/path@^1.1.6", "zod": "npm:zod@4", "postgres": "npm:postgres@^3.4.9" }, "nodeModulesDir": "auto", "workspace": ["apps/control-ui"], "unstable": ["net", "worker-options"], "compilerOptions": { "strict": true }, // Not "tests/live": a config-level exclude also filters explicitly-passed // paths, which would break `deno task test:live`. The gate task ignores it // via --ignore instead. "test": { "exclude": ["apps/control-ui", "tests/browser"] }, "fmt": { "exclude": [ "node_modules", "apps/control-ui/node_modules", "apps/control-ui/dist", "tests/browser/node_modules", "docs/design", "deploy/observability" ] }, "lint": { "exclude": [ "node_modules", "apps/control-ui/node_modules", "apps/control-ui/dist", "tests/browser/node_modules", "docs/design", "deploy/observability" ] } }