{
"name": "geolibre",
"version": "3.1.0",
"private": true,
"description": "GeoLibre: a free and open-source, lightweight, cloud-native GIS platform for visualizing, exploring, and analyzing geospatial data. It runs in the web browser, on the desktop, on mobile, and inside Jupyter notebooks, all while keeping your data local and private",
"workspaces": [
"apps/*",
"packages/*",
"workers/*"
],
"scripts": {
"postinstall": "node scripts/apply-dependency-patches.mjs",
"dev": "npm run dev -w geolibre-desktop",
"build": "npm run build -w geolibre-desktop",
"lite:build": "node scripts/lite-build.mjs",
"build:jupyterlite": "node scripts/build-jupyterlite.mjs",
"build:embed": "node scripts/build-embed.mjs",
"build:chrome-extension": "node scripts/package-chrome-extension.mjs",
"typecheck": "npm run build",
"lint": "eslint apps packages workers tests --max-warnings 264",
"test": "npm run test:frontend",
"test:frontend": "node --import tsx --test tests/*.test.ts",
"test:frontend:coverage": "node scripts/coverage-check.mjs",
"test:backend": "python -m pytest backend/geolibre_server/tests",
"test:backend:coverage": "python -m pytest backend/geolibre_server/tests --cov=geolibre_server --cov-report=term-missing --cov-fail-under=55",
"test:worker": "npm run typecheck -w geolibre-viewer-worker && npm run typecheck -w geolibre-collab-worker && npm run typecheck -w geolibre-collab-node && npm test -w geolibre-collab-node && npm run typecheck -w geolibre-tiles-worker && npm run typecheck -w geolibre-ai-proxy-worker",
"test:e2e": "playwright test",
"test:e2e:core": "playwright test --project=core",
"test:e2e:features": "playwright test --project=features",
"check:rust": "cargo check --manifest-path apps/geolibre-desktop/src-tauri/Cargo.toml",
"check:gis-portals": "node --import tsx scripts/check-gis-portals.mjs",
"audit:ci": "node scripts/audit-check.mjs",
"i18n:tools": "node --import tsx scripts/gen-processing-i18n-catalog.mjs",
"i18n:tools:check": "node --import tsx scripts/gen-processing-i18n-catalog.mjs --check",
"gallery": "node scripts/gen-demo-gallery.mjs",
"gallery:check": "node scripts/gen-demo-gallery.mjs --check",
"typecheck:fast": "npm run build -w @geolibre/embed && tsc -b apps/geolibre-desktop --noEmit",
"ci:web": "npm run lint && npm run i18n:tools:check && npm run gallery:check && npm run typecheck:fast && npm run test:frontend",
"ci": "npm run lint && npm run i18n:tools:check && npm run gallery:check && npm run build && npm run test:frontend:coverage && npm run test:worker && npm run test:backend:coverage && npm run check:rust",
"tauri": "npm run tauri -w geolibre-desktop",
"tauri:dev": "npm run tauri dev -w geolibre-desktop",
"tauri:build": "node scripts/tauri-build.mjs",
"tauri:build:native-duckdb": "node scripts/tauri-build.mjs --native-duckdb",
"tauri:build:mas": "node scripts/tauri-build.mjs --mas",
"msix:build": "pwsh -NoProfile -ExecutionPolicy Bypass -File packaging/msix/build-msix.ps1",
"portable:build": "pwsh -NoProfile -ExecutionPolicy Bypass -File packaging/portable/build-portable.ps1"
},
"dependencies": {
"patch-package": "^8.0.1"
},
"devDependencies": {
"@axe-core/playwright": "^4.13.0",
"@playwright/test": "^1.63.0",
"@testing-library/dom": "^10.4.2",
"@testing-library/react": "^16.3.3",
"@types/node": "^26.6.3",
"esbuild": "^0.28.2",
"eslint": "^10.11.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-react-hooks": "^7.1.1",
"fflate": "^0.8.3",
"happy-dom": "^20.14.5",
"linkedom": "^0.18.13",
"tsx": "^4.23.15",
"typescript-eslint": "^8.70.1"
},
"overrides": {
"@loaders.gl/compression": {
"fflate": "^0.8.3"
},
"brace-expansion": "^5.0.9",
"eslint-plugin-jsx-a11y": {
"eslint": "$eslint"
},
"fast-uri": "^3.1.7",
"filelist": "^2.0.2",
"maplibre-gl": "^6.3.0",
"miniflare": {
"undici": "^7.29.0"
},
"sweepline-intersections": "^1.5.0",
"texture-compressor": {
"image-size": "^2.0.4"
},
"uuid": "^14.0.0"
},
"engines": {
"node": ">=22"
},
"allowScripts": {
"@google/genai": true,
"core-js": true,
"esbuild": true,
"protobufjs": true,
"sharp": true,
"workerd": true
},
"trustedDependencies": [
"@google/genai",
"core-js",
"esbuild",
"protobufjs",
"sharp",
"workerd"
]
}