{ "name": "mapcomplete", "version": "0.45.0", "repository": "https://github.com/pietervdvn/MapComplete", "description": "A small website to edit OSM easily", "bugs": "https://github.com/pietervdvn/MapComplete/issues", "homepage": "https://mapcomplete.org", "main": "index.ts", "type": "module", "config": { "#oauth_credentials:comment": [ "`oauth_credentials` are the OAuth-2 credentials for the production-OSM server and the test-server.", "Are you deploying your own instance? Register your application too.", "See https://wiki.openstreetmap.org/wiki/OAuth#Registering_your_application_as_OAuth_2.0_consumer for instructions", "Use `https:////land.html` as redirect URIs. You can add `http://127.0.0.1:1234/land.html` too for local development.", "Alternatively, you can override the `osm` credentials using the environment variables `VITE_OSM_OAUTH_CLIENT_ID` and `VITE_OSM_OAUTH_SECRET`" ], "oauth_credentials": { "#": "This client-id is registered by 'MapComplete' on OpenStreetMap.org", "oauth_client_id": "K93H1d8ve7p-tVLE1ZwsQ4lAFLQk8INx5vfTLMu5DWk", "oauth_secret": "NBWGhWDrD3QDB35xtVuxv4aExnmIt4FA_WgeLtwxasg", "url": "https://www.openstreetmap.org", "api_url": "https://api.openstreetmap.org" }, "disabled:oauth_credentials": { "##": "DEV", "#": "This client-id is registered by 'MapComplete' on https://master.apis.dev.openstreetmap.org/", "oauth_client_id": "BAPPMRuojjFsY__0APmScr1hbebYj1GlDbV6S5TsUbo", "oauth_secret": "Lq1UKYAySRfQfwgFctGvlGrfxbGHQwggheE52HIGrO8", "url": "https://master.apis.dev.openstreetmap.org", "api_url": "https://master.apis.dev.openstreetmap.org" }, "mvt_layer_server": "https://cache.mapcomplete.org/public.{type}_{layer}/{z}/{x}/{y}.pbf", "#summary_server": "Should be the endpoint; appending status.json should work", "summary_server": "https://cache.mapcomplete.org/", "geoip_server": "https://ipinfo.mapcomplete.org/", "error_server": "https://report.mapcomplete.org/report", "api_keys": { "#": "Various API-keys for various services. Feel free to reuse those in another MapComplete-hosted version", "imgur": "7070e7167f0a25a", "mapillary_v4": "MLY|4441509239301885|b40ad2d3ea105435bd40c7e76993ae85" }, "default_overpass_urls": [ "https://overpass-api.de/api/interpreter", "https://overpass.kumi.systems/api/interpreter", "https://overpass.openstreetmap.ru/cgi/interpreter" ], "country_coder_host": "https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/latlon2country", "nominatimEndpoint": "https://geocoding.geofabrik.de/b75350b1cfc34962ac49824fe5b582dc/", "jsonld-proxy": "https://lod.mapcomplete.org/extractgraph?url={url}", "protomaps": { "api-key": "2af8b969a9e8b692", "endpoint": "https://api.protomaps.com/tiles/", "styles": [ "https://api.protomaps.com/styles/v2/light.json", "https://api.protomaps.com/styles/v2/dark.json", "https://api.protomaps.com/styles/v2/white.json", "https://api.protomaps.com/styles/v2/grayscale.json", "https://api.protomaps.com/styles/v2/black.json" ] } }, "scripts": { "init": "npm ci && npm run prep:layeroverview && npm run generate && npm run download:editor-layer-index && npm run generate:layouts && npm run clean && npm run weblate:add-upstream", "start": "npm run generate:layeroverview && npm run strt", "strt": "vite --host | sed 's/localhost:/127.0.0.1:/g'", "build": "./scripts/build.sh", "build:single": "./scripts/single_build.sh", "build:dbscript": "vite-node ./scripts/osm2pgsql/generateBuildDbScript.ts", "prepare-deploy": "npm run generate:service-worker && ./scripts/prepare-build.sh && npm run build", "watch:css": "tailwindcss -i src/index.css -o public/css/index-tailwind-output.css --watch", "generate:css": "tailwindcss -i src/index.css -o public/css/index-tailwind-output.css", "generate:doctests": "doctest-ts-improved . --ignore .*.spec.ts --ignore .*ConfigJson.ts", "test:run-only": "vitest --run test", "test": " export NODE_OPTIONS=\"--max-old-space-size=8192\" && npm run clean:tests && (npm run generate:doctests 2>&1 | grep -v \"No doctests found in\") && npm run test:run-only && npm run clean:tests", "generate:polygon-features": "vite-node scripts/downloadFile.ts -- https://raw.githubusercontent.com/tyrasd/osm-polygon-features/master/polygon-features.json assets/polygon-features.json", "generate:images": "vite-node scripts/generateIncludedImages.ts", "generate:translations": "vite-node scripts/generateTranslations.ts", "reset:translations": "vite-node scripts/generateTranslations.ts -- --ignore-weblate", "generate:layouts": "vite-node scripts/generateLayouts.ts", "generate:docs": "rm -rf Docs/Themes/* && rm -rf Docs/Layers/* && rm -rf Docs/TagInfo && mkdir Docs/TagInfo && vite-node scripts/generateDocs.ts && vite-node scripts/generateTaginfoProjectFiles.ts", "generate:layeroverview": "export NODE_OPTIONS=\"--max-old-space-size=8192\" && vite-node scripts/generateLayerOverview.ts", "generate:mapcomplete-changes-theme": "export NODE_OPTIONS=\"--max-old-space-size=8192\" && vite-node scripts/generateLayerOverview.ts -- --generate-change-map", "refresh:layeroverview": "export NODE_OPTIONS=\"--max-old-space-size=8192\" && vite-node scripts/generateLayerOverview.ts -- --force", "generate:licenses": "vite-node scripts/generateLicenseInfo.ts -- --no-fail", "query:licenses": "vite-node scripts/generateLicenseInfo.ts -- --query", "generate:contributor-list": "vite-node scripts/generateContributors.ts", "generate:service-worker": "tsc src/service-worker.ts --outFile public/service-worker.js && git_hash=$(git rev-parse HEAD) && sed -i.bak \"s/GITHUB-COMMIT/$git_hash/\" public/service-worker.js && rm public/service-worker.js.bak", "reset:layeroverview": "npm run prep:layeroverview && npm run generate:layeroverview && npm run refresh:layeroverview", "prep:layeroverview": "mkdir -p ./src/assets/generated/layers; echo {\\\"themes\\\":[]} > ./src/assets/generated/known_themes.json && echo {\\\"layers\\\": []} > ./src/assets/generated/known_layers.json && rm -f ./src/assets/generated/layers/*.json && rm -f ./src/assets/generated/themes/*.json && cp ./assets/layers/usersettings/usersettings.json ./src/assets/generated/layers/usersettings.json && echo '{}' > ./src/assets/generated/layers/favourite.json && echo '{}' > ./src/assets/generated/layers/summary.json && echo '{}' > ./src/assets/generated/layers/last_click.json", "generate": "npm run generate:licenses && npm run generate:images && npm run generate:charging-stations && npm run generate:translations && npm run refresh:layeroverview && npm run generate:service-worker", "generate:charging-stations": "cd ./assets/layers/charging_station && vite-node csvToJson.ts && cd -", "clean:tests": "find . -type f -name \"*.doctest.ts\" | xargs -r rm", "clean": "rm -rf .cache/ && (find *.html | grep -v \"^\\(404\\|index\\|land\\|privacy\\|test\\|studio\\|theme\\|style_test\\|statistics\\|status\\|leaderboard\\).html\" | xargs -r rm) && (ls | grep \"^index_[a-zA-Z_-]\\+\\.ts$\" | xargs -r rm)", "generate:dependency-graph": "node_modules/.bin/depcruise --exclude \"^node_modules\" --output-type dot Logic/State/MapState.ts > dependencies.dot && dot dependencies.dot -T svg -o dependencies.svg && rm dependencies.dot", "scrapeWebsites": "vite-node scripts/importscripts/compareWebsiteData.ts -- ~/Downloads/ShopsWithWebsiteNodes.csv ~/data/scraped_websites/", "### 0": "VELOPARK", "velopark:compare": "vite-node scripts/velopark/compare.ts -- velopark_nonsynced_.geojson ~/Projecten/OSM/Fietsberaad/2024-02-02\\ Fietsenstallingen_OSM_met_velopark_ref.geojson\n", "velopark:download": "vite-node scripts/velopark/veloParkToGeojson.ts ", "### 1": "CODE AND DATA MAINTAINENCE", "download:nsi-logos": "vite-node scripts/downloadNsiLogos.ts || npm run downloadNsiLogos # This script crashes often without the possibility to correct - hence the auto retry with OR", "download:editor-layer-index": "vite-node scripts/downloadEli.ts", "download:stats": "vite-node scripts/GenerateSeries.ts", "download:images": "vite-node scripts/generateImageAnalysis.ts -- ~/data/imgur-image-backup/", "weblate:add-upstream": "git remote add weblate-github git@github.com:weblate/MapComplete.git && git remote add weblate-hosted-core https://hosted.weblate.org/git/mapcomplete/core/ && git remote add weblate-hosted-layers https://hosted.weblate.org/git/mapcomplete/layers/", "weblate:merge": "git remote update weblate-github; git merge weblate-github/weblate-mapcomplete-core weblate-github/weblate-mapcomplete-layers weblate-github/weblate-mapcomplete-layer-translations", "weblate:merge-heavy": "git fetch weblate-hosted-layers; git fetch weblate-hosted-core; git merge weblate-hosted-layers/master weblate-hosted-core/master ", "lint": "npm run lint:prettier && npm run lint:eslint && npm run lint:themes", "lint:eslint": "eslint ./src", "lint:prettier": "prettier --check '**/*.ts' '**/*.svelte'", "lint:themes": "vite-node scripts/lint.ts", "format": "prettier --write '**/*.ts' '**/*.svelte'", "optimize-images-png": "cd assets/generated/ && find -name '*.png' -exec optipng '{}' \\; && echo 'PNGs are optimized'", "optimize-images-jpg": "cd assets/ && find . -regextype sed -regex \".*/.*.\\(jpg\\|JPG\\|JPEG\\|jpeg\\)\" -exec jpegoptim '{}' \\; && echo 'JPGs are optimized'", "optimize-images-scaledown-jpg": "cd assets/ && find . -regextype sed -regex \".*/.*.\\(jpg\\|JPG\\|JPEG\\|jpeg\\)\" -exec mogrify -resize 640x640\\> '{}' \\; && echo 'JPGs are optimized'", "generate:schemas": "ts2json-schema -p src/Models/ThemeConfig/Json/ -o Docs/Schemas/ -t tsconfig.json -R . -m \".*ConfigJson\" && echo 'tsjson is done' && vite-node scripts/fixSchemas.ts ", "reuse-compliance": "reuse lint", "housekeeping": "git pull && npx update-browserslist-db@latest && npm run weblate:merge-heavy && npm run generate && npm run generate:docs && npm run generate:schemas && npm run generate:contributor-list && vite-node scripts/fetchLanguages.ts && vite-node scripts/generateSunnyUnlabeled.ts && npm run format && git add assets/ langs/ Docs/ **/*.ts Docs/* src/* && git commit -m 'chore: automated housekeeping...'", "###": "MICROSERVICES AND SERVER MAINTAINENCE", "server:summary": "vite-node scripts/osm2pgsql/tilecountServer.ts", "server:ldjson": "vite-node scripts/serverLdScrape.ts", "server:studio": "vite-node scripts/studioServer -- /root/git/MapComplete/assets", "server:errorreport": "vite-node scripts/serverErrorReport.ts -- /root/error_reports/", "generate:buildDbScript": "vite-node scripts/osm2pgsql/generateBuildDbScript.ts", "generate:summaryCache": "vite-node scripts/generateSummaryTileCache.ts" }, "keywords": [ "OpenStreetMap", "Editor" ], "author": "pietervdvn", "license": "GPL-3.0-or-later", "browserslist": [ ">0.2%", "not dead", "not ie < 11", "not op_mini all" ], "dependencies": { "@comunica/core": "^3.0.1", "@comunica/query-sparql": "^3.0.1", "@comunica/query-sparql-link-traversal": "^0.3.0", "@rapideditor/location-conflation": "^1.3.0", "@rgossiaux/svelte-headlessui": "^1.0.2", "@rgossiaux/svelte-heroicons": "^0.1.2", "@rollup/plugin-typescript": "^11.0.0", "@turf/boolean-intersects": "^6.5.0", "@turf/buffer": "^6.5.0", "@turf/collect": "^6.5.0", "@turf/difference": "^6.5.0", "@turf/distance": "^6.5.0", "@turf/length": "^6.5.0", "@turf/turf": "^6.5.0", "@types/dompurify": "^3.0.2", "@types/follow-redirects": "^1.14.4", "@types/pg": "^8.10.9", "@types/qrcode-generator": "^1.0.6", "@types/showdown": "^2.0.0", "buffer": "^6.0.3", "chart.js": "^3.8.0", "comunica": "^2.0.0", "country-language": "^0.1.7", "country-to-currency": "^1.0.10", "crypto": "^1.0.1", "csv-parse": "^5.1.0", "doctest-ts-improved": "^0.8.8", "dompurify": "^3.0.5", "email-validator": "^2.0.4", "escape-html": "^1.0.3", "fake-dom": "^1.0.4", "flowbite-svelte": "^0.46.2", "follow-redirects": "^1.15.6", "geojson2svg": "^1.3.3", "html-to-image": "^1.11.11", "i18next-client": "^1.11.4", "idb-keyval": "^6.0.3", "jest-mock": "^29.4.1", "jsonld": "^8.3.2", "jsonld-request": "^2.0.1", "jspdf": "^2.5.1", "latlon2country": "^1.2.6", "libphonenumber-js": "^1.10.8", "lz-string": "^1.4.4", "mangrove-reviews-typescript": "^1.1.0", "maplibre-gl": "^4.1.1", "marked": "^12.0.2", "monaco-editor": "^0.46.0", "name-suggestion-index": "^6.0.20240422", "npm": "^10.7.0", "opening_hours": "^3.6.0", "osm-auth": "^2.5.0", "osmtogeojson": "^3.0.0-beta.5", "panzoom": "^9.4.3", "papaparse": "^5.3.1", "pbf": "^3.2.1", "pg": "^8.11.3", "pic4carto": "^2.1.15", "pmtiles": "^3.0.5", "prompt-sync": "^4.2.0", "qrcode-generator": "^1.4.4", "showdown": "^2.1.0", "svg-path-parser": "^1.1.0", "tailwind-merge": "^1.13.1", "tailwindcss": "^3.1.8", "turndown": "^7.1.3", "vite-node": "^0.28.3", "vitest": "^0.28.3", "wikibase-sdk": "^7.14.0", "wikidata-sdk": "^7.14.0", "xml2js": "^0.5.0" }, "devDependencies": { "@babeard/svelte-heroicons": "^2.0.0-rc.0", "@babel/polyfill": "^7.10.4", "@babel/preset-env": "7.13.8", "@monaco-editor/loader": "^1.4.0", "@parcel/service-worker": "^2.6.0", "@rollup/plugin-json": "^6.0.0", "@sveltejs/vite-plugin-svelte": "^2.0.2", "@tsconfig/svelte": "^3.0.0", "@types/chai": "^4.3.0", "@types/geojson": "^7946.0.10", "@types/jsonld": "^1.5.13", "@types/lz-string": "^1.3.34", "@types/mocha": "^10.0.1", "@types/node": "^18.11.18", "@types/papaparse": "^5.3.1", "@types/prompt-sync": "^4.1.0", "@types/wikidata-sdk": "^6.1.0", "@types/xml2js": "^0.4.9", "@typescript-eslint/eslint-plugin": "^6.1.0", "@typescript-eslint/parser": "^6.1.0", "@vitejs/plugin-basic-ssl": "^1.0.2", "assert": "^2.0.0", "chai": "^4.3.6", "dependency-cruiser": "^16.3.0", "eslint": "^8.45.0", "eslint-plugin-svelte": "^2.32.2", "fs": "0.0.1-security", "node-html-parser": "^6.1.5", "prettier": "^2.8.8", "prettier-plugin-svelte": "^2.10.1", "prettier-plugin-tailwindcss": "^0.3.0", "read-file": "^0.2.0", "sass": "^1.58.0", "sharp": "^0.32.6", "svelte": "^3.55.1", "svelte-check": "^3.0.2", "svelte-preprocess": "^5.0.1", "ts-node": "^10.9.1", "ts2json-schema": "^1.4.0", "tslib": "^2.5.0", "typescript": "^4.7.4", "vite": "^4.5.3" } }