{
  "name": "mapbox-gl",
  "description": "A WebGL interactive maps library",
  "version": "3.28.1",
  "main": "dist/mapbox-gl.js",
  "style": "dist/mapbox-gl.css",
  "types": "dist/mapbox-gl.d.ts",
  "license": "SEE LICENSE IN LICENSE.txt",
  "type": "module",
  "repository": {
    "type": "git",
    "url": "git://github.com/mapbox/mapbox-gl-js.git"
  },
  "exports": {
    ".": {
      "types": "./dist/mapbox-gl.d.ts",
      "default": "./dist/mapbox-gl.js"
    },
    "./esm": {
      "types": "./dist/esm/mapbox-gl.d.ts",
      "default": "./dist/esm/mapbox-gl.js"
    },
    "./dist/*": "./dist/*",
    "./mapbox-gl.css": "./dist/mapbox-gl.css",
    "./package.json": "./package.json"
  },
  "workspaces": [
    "src/style-spec",
    "plugins/mapbox-gl-pmtiles-provider",
    "test/bundlers/*",
    "test/build/typings"
  ],
  "devDependencies": {
    "@actions/core": "^3.0.1",
    "@e18e/eslint-plugin": "^0.6.0",
    "@eslint/compat": "^2.1.0",
    "@eslint/eslintrc": "^3.3.5",
    "@eslint/js": "^10.0.1",
    "@mapbox/mapbox-gl-styles": "^2.2.0",
    "@mapbox/mapbox-gl-supported": "^4.0.0",
    "@mapbox/mvt-fixtures": "^4.0.0",
    "@mapbox/point-geometry": "^1.1.0",
    "@mapbox/tiny-sdf": "^2.2.0",
    "@mapbox/unitbezier": "^1.0.0",
    "@mapbox/vector-tile": "^3.0.0",
    "@octokit/rest": "^22.0.1",
    "@rollup/plugin-commonjs": "^29.0.2",
    "@rollup/plugin-json": "^6.1.0",
    "@rollup/plugin-node-resolve": "^16.0.3",
    "@rollup/plugin-replace": "^6.0.3",
    "@rollup/plugin-strip": "^3.0.4",
    "@rollup/plugin-terser": "^1.0.0",
    "@rollup/plugin-virtual": "^3.0.2",
    "@size-limit/file": "^13.0.1",
    "@tweakpane/core": "^2.0.5",
    "@types/geojson": "^7946.0.16",
    "@types/geojson-vt": "^3.2.5",
    "@types/node": "^26.0.0",
    "@types/offscreencanvas": "^2019.7.3",
    "@types/supercluster": "^7.1.3",
    "@typescript/native": "npm:typescript@^7.0.2",
    "@vitest/browser-playwright": "^4.1.7",
    "@vitest/ui": "^4.1.7",
    "browserslist-to-esbuild": "^2.1.1",
    "cssnano": "^8.0.1",
    "diff": "^9.0.0",
    "earcut": "^3.0.2",
    "esbuild": "^0.28.0",
    "eslint": "^10.4.0",
    "eslint-config-mourner": "^5.0.1",
    "eslint-import-resolver-typescript": "^4.4.4",
    "eslint-plugin-html": "^8.1.4",
    "eslint-plugin-import-x": "^4.16.2",
    "eslint-plugin-jsdoc": "^63.0.0",
    "geojson-vt": "^4.0.3",
    "gl-matrix": "^3.4.4",
    "kdbush": "^4.1.0",
    "martinez-polygon-clipping": "^0.8.1",
    "npm-run-all2": "^9.0.1",
    "pbf": "^5.1.0",
    "pixelmatch": "^7.2.0",
    "playwright": "^1.60.0",
    "postcss": "^8.5.15",
    "postcss-cli": "^11.0.1",
    "postcss-inline-svg": "^6.0.0",
    "potpack": "^2.1.0",
    "rollup": "^4.60.4",
    "rollup-plugin-dts": "^6.4.1",
    "rollup-plugin-esbuild": "^6.2.1",
    "rollup-plugin-visualizer": "^7.0.1",
    "serve-static": "^2.2.1",
    "size-limit": "^13.0.1",
    "stylelint": "^17.12.0",
    "stylelint-config-standard": "^40.0.0",
    "supercluster": "^8.0.1",
    "tinyqueue": "^3.0.0",
    "tsx": "^4.23.0",
    "tweakpane": "^4.0.5",
    "typescript": "npm:@typescript/typescript6@^6.0.2",
    "typescript-eslint": "^8.63.0",
    "vite-plugin-arraybuffer": "^0.1.4",
    "vitest": "^4.1.7",
    "yeahjs": "^0.4.1"
  },
  "scripts": {
    "build-dev": "rollup -c --environment BUILD:dev",
    "watch-dev": "rollup -c --environment BUILD:dev --watch",
    "watch-esm": "rollup -c rollup.config.esm.ts --environment BUILD:dev --watch",
    "build-esm-dev": "rollup -c rollup.config.esm.ts --environment BUILD:dev",
    "build-prod": "rollup -c --environment BUILD:production,MINIFY:true",
    "build-esm-prod": "rollup -c rollup.config.esm.ts --environment BUILD:production,MINIFY:true",
    "build-esm-prod-cdn": "ESM_TARGET=cdn rollup -c rollup.config.esm.ts --environment BUILD:production,MINIFY:true",
    "build-all": "run-p build-umd build-esm-dev build-esm-prod build-esm-prod-cdn build-csp",
    "build-umd": "run-s build-dev build-prod",
    "build-csp": "rollup -c rollup.config.csp.ts",
    "build-css": "postcss -o dist/mapbox-gl.css src/css/mapbox-gl.css",
    "build-style-spec": "npm run build --workspace src/style-spec && mkdir -p dist/style-spec && cp src/style-spec/dist/* dist/style-spec",
    "build-dts": "rollup -c rollup.config.dts.ts",
    "watch-css": "postcss --watch -o dist/mapbox-gl.css src/css/mapbox-gl.css",
    "build-token": "node build/generate-access-token-script.js",
    "start-server": "node build/start-server.js",
    "start": "run-p build-token watch-css watch-esm start-server",
    "start-all": "run-p build-token watch-css watch-dev watch-esm start-server",
    "prepare-release-pages": "ln -sfn $PWD/dist test/release/dist && ln -sfn $PWD/debug test/release/debug && cp debug/access_token_generated.js test/release/",
    "start-release": "run-s build-token build-all build-css print-release-url prepare-release-pages start-server",
    "lint": "eslint --cache .",
    "lint-css": "stylelint 'src/css/mapbox-gl.css'",
    "test": "run-s lint lint-css test-typings test-unit",
    "test-suite": "run-s test-render test-query test-expressions",
    "test-suite-clean": "find test/integration/{render,query, expressions}-tests -mindepth 2 -type d -exec test -e \"{}/actual.png\" \\; -not \\( -exec test -e \"{}/style.json\" \\; \\) -print | xargs -t rm -r",
    "watch-unit": "vitest --config vitest.config.unit.ts",
    "test-unit": "vitest --config vitest.config.unit.ts --run",
    "test-usvg": "vitest --config vitest.config.usvg.ts --run",
    "start-usvg": "esbuild src/data/usvg/usvg_pb_renderer.ts src/data/usvg/usvg_pb_decoder.ts --outdir=src/data/usvg/ --bundle --format=esm --watch --serve=9966 --servedir=.",
    "test-build": "node --test --test-timeout 10000 test/build/*.test.js",
    "pretest-bundlers": "./test/bundlers/pretest.sh",
    "test-bundlers": "vitest run --config vitest.config.bundlers.ts",
    "test-esm": "npx vitest run --config vitest.config.esm.ts",
    "test-csp": "npm run build-token && vitest --config vitest.config.csp.ts --run",
    "prewatch-render": "npm run build-dev",
    "watch-render": "npx vitest watch --config vitest.config.render.ts",
    "pretest-render": "npm run build-esm-dev",
    "test-render": "npx vitest run --config vitest.config.render.ts",
    "test-render-firefox": "RENDER_BROWSER=firefox npm run test-render",
    "test-render-safari": "RENDER_BROWSER=webkit npm run test-render",
    "pretest-render-dev": "npm run build-dev",
    "test-render-dev": "RENDER_BUNDLE=dev npx vitest run --config vitest.config.render.ts",
    "pretest-render-esm-prod": "npm run build-esm-prod",
    "test-render-esm-prod": "RENDER_BUNDLE=esm-prod npx vitest run --config vitest.config.render.ts",
    "pretest-render-prod": "npm run build-prod",
    "test-render-prod": "RENDER_BUNDLE=prod npx vitest run --config vitest.config.render.ts",
    "pretest-render-csp": "npm run build-csp",
    "test-render-csp": "RENDER_BUNDLE=csp npx vitest run --config vitest.config.render.ts",
    "watch-query": "npx vitest watch --config vitest.config.query.ts",
    "pretest-query": "npm run build-esm-dev",
    "test-query": "npx vitest run --config vitest.config.query.ts",
    "test-expressions": "tsx ./test/expression.test.ts",
    "test-typings": "tsx ./build/generate-typed-style-spec.ts && npm run tsc",
    "test-style-spec": "npm test --workspace src/style-spec",
    "prepublishOnly": "run-s build-all build-css build-style-spec build-dts",
    "print-release-url": "node build/print-release-url.js",
    "size": "size-limit",
    "bundle-size-diff": "bash internal/scripts/bundle-size-diff.sh",
    "codegen": "tsx ./build/generate-style-code.ts && tsx ./build/generate-struct-arrays.ts && tsx ./build/generate-typed-style-spec.ts",
    "tsc": "tsc --build tsconfig.json",
    "publish-release": "./build/publish.ts",
    "publish-cdn": "./build/publish-cdn.ts",
    "publish-alpha": "./build/publish-alpha.ts",
    "bump-version": "./build/bump-version.ts"
  },
  "files": [
    "dist/mapbox-gl*",
    "dist/style-spec/",
    "dist/esm/",
    "dist/package.json",
    "LICENSE.txt"
  ],
  "size-limit": [
    {
      "gzip": true,
      "limit": "600 kb",
      "name": "ESM Core (gzip)",
      "path": [
        "dist/esm/mapbox-gl.js",
        "dist/esm/core*.js",
        "dist/esm/worker*.js",
        "dist/esm/shared*.js"
      ]
    },
    {
      "gzip": true,
      "limit": "600 kb",
      "name": "ESM Core + Standard (gzip)",
      "path": [
        "dist/esm/mapbox-gl.js",
        "dist/esm/core*.js",
        "dist/esm/worker*.js",
        "dist/esm/shared*.js",
        "dist/esm/standard.*.js",
        "dist/esm/hd_standard.*.js"
      ]
    },
    {
      "gzip": true,
      "limit": "600 kb",
      "name": "ESM Core + Standard + HD (gzip)",
      "path": [
        "dist/esm/*.js"
      ]
    },
    {
      "limit": "600 kb",
      "name": "ESM Core (brotli)",
      "path": [
        "dist/esm/mapbox-gl.js",
        "dist/esm/core*.js",
        "dist/esm/worker*.js",
        "dist/esm/shared*.js"
      ]
    },
    {
      "limit": "600 kb",
      "name": "ESM Core + Standard (brotli)",
      "path": [
        "dist/esm/mapbox-gl.js",
        "dist/esm/core*.js",
        "dist/esm/worker*.js",
        "dist/esm/shared*.js",
        "dist/esm/standard.*.js",
        "dist/esm/hd_standard.*.js"
      ]
    },
    {
      "limit": "600 kb",
      "name": "ESM Core + Standard + HD (brotli)",
      "path": [
        "dist/esm/*.js"
      ]
    },
    {
      "limit": "600 kb",
      "name": "ESM Core main thread (brotli)",
      "path": [
        "dist/esm/mapbox-gl.js",
        "dist/esm/core*.js",
        "dist/esm/shared*.js"
      ]
    },
    {
      "gzip": true,
      "limit": "600 kb",
      "name": "UMD bundle (gzip)",
      "path": "dist/mapbox-gl.js"
    }
  ]
}
