{
  "name": "@nika-js/onlymap",
  "version": "0.6.20",
  "description": "Declarative deck.gl maps for HTML and React — interactive WebGL mapping with GeoJSON/CSV/Arrow data, MapLibre basemaps, widgets, popups, and live streams from a custom-element manifest or typed React components. TypeScript, no build step.",
  "license": "SEE LICENSE IN LICENSE.md",
  "publishConfig": {
    "access": "public"
  },
  "author": "NikaGeospatial",
  "homepage": "https://onlymap.nikaplanet.com",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/NikaGeospatial/onlymapjs.git"
  },
  "bugs": {
    "url": "https://github.com/NikaGeospatial/onlymapjs/issues"
  },
  "keywords": [
    "deck.gl",
    "deckgl",
    "map",
    "maps",
    "mapping",
    "webgl",
    "geospatial",
    "gis",
    "geojson",
    "react",
    "typescript",
    "declarative",
    "custom-elements",
    "web-components",
    "maplibre",
    "cartography",
    "dataviz",
    "data-visualization",
    "visualization",
    "visualisation",
    "heatmap",
    "layers",
    "geoarrow",
    "llm",
    "agent"
  ],
  "type": "module",
  "main": "./dist/onlymapjs.js",
  "module": "./dist/onlymapjs.js",
  "types": "./dist/index.d.ts",
  "style": "./dist/onlymapjs.css",
  "comment:cdn-fields": "Bare CDN URLs (https://unpkg.com/@nika-js/onlymap) must serve the single-file standalone bundle, never the code-split entry: rebundling CDNs duplicate the deck.gl/luma.gl runtime across lazy chunks and break shader compilation (see vite.standalone.config.ts).",
  "unpkg": "./dist/onlymap.standalone.js",
  "jsdelivr": "./dist/onlymap.standalone.js",
  "bin": {
    "onlymapjs": "bin/onlymapjs.mjs"
  },
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "import": "./dist/onlymapjs.js",
      "default": "./dist/onlymapjs.js"
    },
    "./react": {
      "types": "./dist/react/index.d.ts",
      "import": "./dist/react.js",
      "default": "./dist/react.js"
    },
    "./deck": {
      "types": "./dist/deck.d.ts",
      "import": "./dist/deck.js",
      "default": "./dist/deck.js"
    },
    "./standalone": {
      "types": "./dist/index.d.ts",
      "import": "./dist/onlymap.standalone.js",
      "default": "./dist/onlymap.standalone.js"
    },
    "./onlymapjs.css": "./dist/onlymapjs.css",
    "./style.css": "./dist/style.css",
    "./onlymapjs.html-data.json": "./onlymapjs.html-data.json",
    "./onlymap.code-snippets": "./.vscode/onlymap.code-snippets",
    "./package.json": "./package.json"
  },
  "peerDependencies": {
    "react": ">=18",
    "react-dom": ">=18"
  },
  "peerDependenciesMeta": {
    "react": {
      "optional": true
    },
    "react-dom": {
      "optional": true
    }
  },
  "files": [
    ".vscode/onlymap.code-snippets",
    "bin/onlymapjs.mjs",
    "dist",
    "README.md",
    "CHANGELOG.md",
    "LICENSE.md",
    "THIRD-PARTY-LICENSES.md",
    "docs",
    "llms.txt",
    "onlymapjs.html-data.json",
    "skills/onlymapjs"
  ],
  "scripts": {
    "dev": "vite",
    "build": "npm run typecheck && npm run gen:licenses && vite build && vite build --config vite.react.config.ts && vite build --config vite.deck.config.ts && vite build --config vite.standalone.config.ts && node dev/assert-bundle-cdn-safe.mjs && npm run build:types",
    "build:types": "tsc -p tsconfig.build.json --emitDeclarationOnly",
    "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.e2e.json --noEmit && tsc -p cloud/workers/telemetry/tsconfig.json && tsc -p cloud/workers/examples/tsconfig.json",
    "test": "vitest run",
    "prepublishOnly": "node dev/tools/announce-release.mjs --check && npm run build",
    "postpublish": "node dev/tools/announce-release.mjs",
    "try": "vite-node dev/expr-repl.mjs",
    "test:e2e": "playwright test",
    "check-layout": "playwright test e2e/layout-audit.spec.ts",
    "gen:html-data": "vite-node dev/generate-html-data.ts",
    "vendor:web-ifc": "node dev/tools/vendor-web-ifc.mjs",
    "gen:public": "npm run gen:html-data && vite-node dev/build-public.ts",
    "gen:site": "vite-node dev/build-site.ts",
    "test:public": "npm run gen:public -- --dry-run --strict",
    "test:site": "npm run gen:public -- --out dist-public --strict && npm run gen:site -- --in dist-public --dry-run --strict --site-url https://onlymap.nikaplanet.com --cname onlymap.nikaplanet.com",
    "deploy:telemetry": "wrangler deploy --config cloud/workers/telemetry/wrangler.toml",
    "dev:telemetry": "wrangler dev --config cloud/workers/telemetry/wrangler.toml",
    "deploy:examples": "wrangler deploy --config cloud/workers/examples/wrangler.toml",
    "dev:examples": "wrangler dev --config cloud/workers/examples/wrangler.toml",
    "gen:licenses": "node dev/gen-third-party-licenses.mjs"
  },
  "comment:deps": "This library ships a fully self-contained bundle in dist/ (verified: zero external bare imports), so it has NO runtime dependencies — deck.gl, loaders.gl, MapLibre, Arrow, d3, acorn, etc. are build-time-only and get bundled by Vite. Keeping them here (not in dependencies) is what stops every consumer install from pulling ~250 MB it never uses.",
  "devDependencies": {
    "@deck.gl/aggregation-layers": "9.3.5",
    "@deck.gl/core": "9.3.5",
    "@deck.gl/extensions": "9.3.5",
    "@deck.gl/geo-layers": "9.3.5",
    "@deck.gl/layers": "9.3.5",
    "@deck.gl/mapbox": "9.3.5",
    "@deck.gl/mesh-layers": "9.3.5",
    "@developmentseed/deck.gl-geotiff": "^0.7.0",
    "@developmentseed/deck.gl-zarr": "^0.7.0",
    "@loaders.gl/csv": "^4.4.3",
    "@loaders.gl/kml": "^4.4.3",
    "@loaders.gl/shapefile": "^4.4.3",
    "@luma.gl/engine": "9.3.5",
    "@playwright/test": "^1.61.1",
    "@reduxjs/toolkit": "^2.12.0",
    "@types/d3-array": "^3.2.2",
    "@types/d3-color": "^3.1.3",
    "@types/d3-interpolate": "^3.0.4",
    "@types/d3-scale": "^4.0.9",
    "@types/estree": "^1.0.9",
    "@types/react": "^19.2.17",
    "@types/react-dom": "^19.2.3",
    "@types/ws": "^8.18.1",
    "acorn": "^8.17.0",
    "apache-arrow": "^21.1.0",
    "d3-array": "^3.2.4",
    "d3-color": "^3.1.0",
    "d3-interpolate": "^3.0.1",
    "d3-scale": "^4.0.2",
    "exifr": "^7.1.3",
    "flatgeobuf": "^4.4.0",
    "fzstd": "^0.1.1",
    "happy-dom": "^20.10.6",
    "hyparquet": "^1.27.1",
    "hyparquet-compressors": "^1.1.1",
    "jotai": "^2.20.2",
    "maplibre-gl": "^5.24.0",
    "meshoptimizer": "^1.2.0",
    "mobx": "^6.16.1",
    "playwright": "^1.61.1",
    "proj4": "^2.20.8",
    "react": "^19.2.7",
    "react-dom": "^19.2.7",
    "typescript": "^5.6.0",
    "vite": "^6.0.0",
    "vite-node": "^6.0.0",
    "vitest": "^4.1.9",
    "wrangler": "^4.110.0",
    "ws": "^8.21.0",
    "zustand": "^5.0.14"
  },
  "comment:deck-pin": "deck.gl/luma.gl devDeps are EXACT pins: they get BUNDLED into dist, and both libraries hard-throw on duplicate-version detection — consumers that also ship their own deck.gl (nika-agent) must match these versions exactly. CONTRACT: the bundled deck.gl/luma.gl version is part of the release surface and only changes at the SemVer boundary a caret does NOT cross — a MAJOR onlymap release (a 0.x MINOR while pre-1.0). Anything a caret floats (minor+patch once >=1.0; patch while 0.x) must NEVER move deck.gl, so a consumer can caret onlymap safely. Bumping deck is a breaking-coordination event, never a side effect of a minor/patch release or a reinstall."
}
