{
  "name": "ethercalc",
  "version": "0.20260717.0",
  "description": "Multi-User Spreadsheet Server — TypeScript rewrite (Cloudflare fullstack)",
  "homepage": "http://ethercalc.net/",
  "author": "Audrey Tang <audreyt@audreyt.org>",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/audreyt/ethercalc.git"
  },
  "license": "CC0-1.0",
  "keywords": [
    "ethercalc",
    "spreadsheet",
    "collaboration",
    "realtime",
    "cloudflare",
    "workers",
    "hono",
    "durable-objects",
    "socialcalc"
  ],
  "bin": {
    "ethercalc": "bin/ethercalc"
  },
  "files": [
    "bin/",
    "assets/",
    "bun.lock",
    "packages/",
    "scripts/",
    "deploy/",
    "static/",
    "images/",
    "l10n/",
    "third-party/",
    "app-graphics/",
    "migrations/",
    "Dockerfile",
    "docker-compose.yml",
    "docker-compose.proxy.yml",
    "*.html",
    "*.ico",
    "*.png",
    "*.svg",
    "*.xml",
    "manifest.json",
    "manifest.appcache",
    "README.md",
    "AGENTS.md",
    "API.md",
    "Changes.txt",
    "!**/node_modules",
    "!packages/*/test",
    "!packages/*/tests",
    "!packages/*/.vitest-cache",
    "!packages/*/.wrangler",
    "!packages/*/stryker.conf.json",
    "!packages/*/vitest.config.ts",
    "!packages/*/vitest.node.config.ts",
    "!packages/*/playwright.config.ts",
    "!packages/*/dist/cache",
    "!packages/e2e/",
    "!packages/oracle-harness/",
    "!**/stryker-setup-*.js",
    "!scripts/*.test.ts",
    "!**/coverage",
    "!**/reports",
    "!**/.stryker-tmp",
    "!**/test-results",
    "!**/playwright-report",
    "!**/.dev.vars",
    "!**/dist/**/*.map"
  ],
  "workspaces": [
    "packages/*"
  ],
  "scripts": {
    "prepack": "bun run build:assets",
    "postinstall": "node scripts/install-runtime-deps.js",
    "pretest": "bun run build:assets",
    "test": "bun test scripts/build-assets.test.ts && bun run --filter '*' --if-present test",
    "build:clients": "bun run --cwd packages/client build && bun run --cwd packages/client-multi build",
    "build:assets": "bun run build:clients && bun run scripts/build-assets.ts",
    "typecheck": "bun run --filter '*' typecheck",
    "lint": "biome lint",
    "lint:fix": "biome lint --write",
    "mutation": "bun run --filter '*' mutation",
    "verify": "bun run verify:dafny",
    "verify:dafny": "lsc check --backend=dafny && bun lemma/assert-fresh.mjs dafny",
    "verify:dafny:gen": "lsc gen --backend=dafny",
    "verify:dafny:regen": "lsc regen --backend=dafny lemma/xlsx-a1.ts",
    "verify:lean:gen": "lsc gen --backend=lean lemma/xlsx-a1.ts",
    "verify:lean": "bun run verify:lean:gen && test -s lemma/xlsx-a1.types.lean && test -s lemma/xlsx-a1.def.lean && bun lemma/assert-fresh.mjs lean",
    "verify:both": "bun run verify:dafny && bun run verify:lean",
    "verify:context": "bun lemma/build-context.mjs",
    "verify:request": "bun lemma/build-request.mjs"
  },
  "engines": {
    "bun": ">=1.1.0"
  },
  "devDependencies": {
    "@biomejs/biome": "^2.1.2",
    "@stryker-mutator/core": "^9.6.1",
    "@stryker-mutator/vitest-runner": "^9.6.1",
    "lemmascript": "0.5.13",
    "typescript": "^7.0.2",
    "vite-plus": "0.2.4"
  },
  "dependencies": {
    "wrangler": "^4.107.0"
  }
}
