SysDeck/klanker-gate/deno.jsonc

74 lines
3.4 KiB
Plaintext
Executable File

{
"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"
]
}
}