{
  "name": "signalk-binnacle",
  "version": "0.21.0",
  "description": "WebGL chartplotter for Signal K",
  "type": "module",
  "license": "Apache-2.0",
  "author": "Nearl Crews <23341701+NearlCrews@users.noreply.github.com>",
  "funding": {
    "type": "buymeacoffee",
    "url": "https://www.buymeacoffee.com/nearlcrews"
  },
  "homepage": "https://github.com/NearlCrews/signalk-binnacle#readme",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/NearlCrews/signalk-binnacle.git"
  },
  "bugs": {
    "url": "https://github.com/NearlCrews/signalk-binnacle/issues"
  },
  "keywords": [
    "signalk-webapp",
    "signalk-category-chart-plotters",
    "chartplotter",
    "navigation",
    "marine",
    "ais",
    "weather",
    "anchor-watch",
    "pwa"
  ],
  "engines": {
    "node": ">=22.18"
  },
  "devEngines": {
    "runtime": {
      "name": "node",
      "version": ">=22.18",
      "onFail": "error"
    },
    "packageManager": {
      "name": "npm",
      "version": ">=11.6",
      "onFail": "error"
    }
  },
  "packageManager": "npm@11.19.0",
  "signalk": {
    "appIcon": "./binnacle-icon.svg",
    "displayName": "Binnacle Chartplotter",
    "screenshots": [
      "./screenshots/01-chart.png",
      "./screenshots/02-instruments.png",
      "./screenshots/03-charts-overlays.png",
      "./screenshots/04-weather.png",
      "./screenshots/05-routes.png"
    ],
    "recommends": [
      "signalk-chart-locker",
      "signalk-crows-nest",
      "signalk-virtual-weather-sensors",
      "signalk-ssl"
    ]
  },
  "files": [
    "public/",
    "!public/**/*.map",
    "README.md",
    "LICENSE",
    "CHANGELOG.md",
    "docs/*.md"
  ],
  "dependencies": {
    "@fontsource-variable/inter": "^5.3.0",
    "@fontsource-variable/jetbrains-mono": "^5.3.0",
    "@lucide/svelte": "^1.31.0",
    "comlink": "^4.4.2",
    "maplibre-gl": "6.3.0",
    "pbf": "^5.1.2",
    "pmtiles": "^4.5.0",
    "signalk-chart-sources": "^0.7.2",
    "terra-draw": "^1.32.3",
    "terra-draw-maplibre-gl-adapter": "^1.4.1",
    "uplot": "^1.6.32"
  },
  "overrides": {
    "workbox-build": {
      "@trickfilm400/rollup-plugin-off-main-thread": "4.0.0-pre2"
    }
  },
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview --port 4173",
    "check": "svelte-check --tsconfig ./tsconfig.app.json --tsgo && tsgo -p tsconfig.node.json && tsgo -p tsconfig.scripts.json",
    "lint": "npm run lint:code && npm run lint:docs && npm run spellcheck && npm run lint:prose",
    "lint:code": "biome lint . && eslint . --cache --cache-location .cache/eslint",
    "lint:docs": "markdownlint-cli2 \"*.md\" \".github/*.md\" \"docs/*.md\"",
    "lint:fix": "biome lint --write . && eslint . --fix --cache --cache-location .cache/eslint",
    "spellcheck": "cspell --no-gitignore --no-progress --show-suggestions README.md CHANGELOG.md AGENTS.md \".github/**/*.{md,yml,yaml}\" \"docs/*.md\"",
    "lint:prose": "node scripts/check-package.mjs --prose-only",
    "ci:biome": "biome ci .",
    "ci:workflows": "node scripts/check-workflows.mjs",
    "cruise": "depcruise src --config .dependency-cruiser.cjs",
    "deadcode": "knip",
    "test": "vitest run",
    "test:coverage": "vitest run --coverage",
    "test:watch": "vitest",
    "test:e2e:fast": "npm run build && playwright test --project=chromium",
    "test:e2e:gate": "playwright test --project=chromium --project=mariner --project=chromium-pwa --project=webkit-smoke --project=webkit-ui --project=mobile-webkit-ui",
    "e2e:fixture": "node scripts/signalk-fixture-server.mjs",
    "test:e2e:cross-browser": "npm run build && playwright test",
    "format": "biome format --write .",
    "format:check": "biome format .",
    "size": "size-limit",
    "package:check": "publint --pack npm --strict && node scripts/check-package.mjs",
    "package:check:release": "publint --pack npm --strict && node scripts/check-package.mjs --release",
    "audit:runtime": "npm audit --omit=dev --audit-level=high",
    "audit:full": "npm audit --audit-level=high",
    "verify:commit": "npm run ci:biome && npm run ci:workflows && npm run lint && npm run cruise && npm run deadcode",
    "verify:fast": "npm run verify:commit && npm run check",
    "verify": "npm run verify:fast && npm run test:coverage && npm run build && npm run size",
    "verify:browser": "npm run verify && npm run test:e2e:gate",
    "verify:ci": "npm run verify && playwright test && npm run package:check && npm run audit:runtime && npm run audit:full",
    "verify:release": "npm run verify && playwright test && npm run package:check:release && npm run audit:runtime && npm run audit:full",
    "hooks": "git config core.hooksPath .githooks && chmod +x .githooks/pre-commit .githooks/pre-push"
  },
  "size-limit": [
    {
      "name": "Main application JavaScript",
      "path": "public/assets/index-*.js",
      "limit": "119 kB"
    },
    {
      "name": "MapLibre JavaScript",
      "path": [
        "public/assets/maplibre-gl-*.js",
        "!public/assets/maplibre-gl-worker-*.js"
      ],
      "limit": "240 kB"
    },
    {
      "name": "MapLibre worker JavaScript",
      "path": "public/assets/maplibre-gl-worker-*.js",
      "limit": "117 kB"
    },
    {
      "name": "Application CSS",
      "path": "public/assets/index-*.css",
      "limit": "22 kB"
    }
  ],
  "devDependencies": {
    "@axe-core/playwright": "^4.13.0",
    "@biomejs/biome": "2.5.8",
    "@playwright/test": "^1.62.1",
    "@size-limit/file": "13.0.3",
    "@sveltejs/vite-plugin-svelte": "^7.3.0",
    "@tsconfig/svelte": "^5.0.8",
    "@types/node": "26.2.0",
    "@types/ws": "^8.18.1",
    "@typescript/native-preview": "^7.0.0-dev.20260707.2",
    "@vitest/browser-playwright": "4.1.10",
    "@vitest/coverage-v8": "4.1.10",
    "cspell": "10.0.1",
    "dependency-cruiser": "^18.2.0",
    "eslint": "10.8.1",
    "eslint-plugin-svelte": "3.23.0",
    "knip": "6.32.2",
    "markdownlint-cli2": "0.23.2",
    "publint": "0.3.23",
    "size-limit": "13.0.3",
    "svelte": "^5.56.9",
    "svelte-check": "^4.7.6",
    "typescript": "^6.0.3",
    "typescript-eslint": "8.67.0",
    "vite": "^8.2.1",
    "vite-plugin-pwa": "^1.3.0",
    "vitest": "4.1.10",
    "workbox-window": "^7.4.1",
    "ws": "^8.21.3"
  }
}
