diff --git a/.versionrc.json b/.versionrc.json
new file mode 100644
index 000000000..c2329bc4f
--- /dev/null
+++ b/.versionrc.json
@@ -0,0 +1,25 @@
+{
+ "types": [
+ {"type": "feat", "section": "Features"},
+ {"type": "fix", "section": "Bug Fixes"},
+ {"type": "themes", "section": "Theme improvements"},
+ {"type": "UX",
+ "section": "User experience improvements"
+ },
+ {
+ "type": "UI",
+ "section": "User interface improvements"
+ },
+ {"type": "Search",
+ "section": "Search related features"
+ },
+ {"type": "chore", "hidden": true},
+ {"type": "docs", "hidden": true},
+ {"type": "style", "hidden": true},
+ {"type": "refactor", "hidden": true},
+ {"type": "perf", "hidden": true},
+ {"type": "test", "hidden": true}
+ ],
+ "commitUrlFormat": "https://github.com/USERNAME/REPOSITORY_NAME/commits{{hash}}",
+ "compareUrlFormat": "https://github.com/USERNAME/REPOSITORY_NAME/compare/{{previousTag}}...{{currentTag}}"
+ }
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 000000000..2c01a70c5
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,631 @@
+# Changelog
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+### [0.46.8](https://github.com/USERNAME/REPOSITORY_NAME/compare/v0.46.7...v0.46.8) (2024-09-13)
+
+
+### Theme improvements
+
+* improve note theme, fix [#2088](https://github.com/pietervdvn/MapComplete/issues/2088) ([e8099b9](https://github.com/USERNAME/REPOSITORY_NAME/commitse8099b9081ae25ff37f2b7a491f9301a29772080))
+* update safe_loops svg ([70117ac](https://github.com/USERNAME/REPOSITORY_NAME/commits70117ac6874ec860a6f2497c2230d29248de71a7))
+
+### 0.46.7 (2024-09-13)
+
+
+### Features
+
+* add bike_parking=safe_loops ([e4de3d8](https://github.com/USERNAME/REPOSITORY_NAME/commitse4de3d8e5f2b8e6002e68dba20ac659f57a3c8cc))
+* add color for streets with no cycleways ([5d52462](https://github.com/USERNAME/REPOSITORY_NAME/commits5d524629b46d3e2e1d059f9db3010609e05ffb61))
+* add prettier config ([d3f453a](https://github.com/USERNAME/REPOSITORY_NAME/commitsd3f453a4fb3f7eaac9031026dc95bff0a076dec3))
+* Add printer cartridges to recycling ([28d6637](https://github.com/USERNAME/REPOSITORY_NAME/commits28d66373680dda160b4b899621c5c89aa1c52143))
+* **themes:** add osm community index as a layer ([e85cf43](https://github.com/USERNAME/REPOSITORY_NAME/commitse85cf43ffbf9de86491a2d3aaa4b7f0a52082843))
+* **themes:** add questionHint to give extra information about a question ([d7fe3a0](https://github.com/USERNAME/REPOSITORY_NAME/commitsd7fe3a056ef74d85f3d4e310a6e053b244b659f8))
+
+
+### Bug Fixes
+
+* _actually_ fix [#1706](https://github.com/pietervdvn/MapComplete/issues/1706) ([6577007](https://github.com/USERNAME/REPOSITORY_NAME/commits6577007717910bf46086490da8e9d549b63f1891))
+* _actually_ run the *.spec.ts-tests... ([82a860c](https://github.com/USERNAME/REPOSITORY_NAME/commits82a860cbf5bad2ab1b4d9b806e9f18e4d5cbc054))
+* [#1093](https://github.com/pietervdvn/MapComplete/issues/1093) ([5a6ed7b](https://github.com/USERNAME/REPOSITORY_NAME/commits5a6ed7bf21aaaf677c05e572afacd53443eb2d59))
+* [#1685](https://github.com/pietervdvn/MapComplete/issues/1685), fix oopsie ([d96fe61](https://github.com/USERNAME/REPOSITORY_NAME/commitsd96fe614624771bed99c418bbc9bb4f09ce7bd3a))
+* a freeform key will mimick a mapping if appropriate (and avoid the 'addExtraTags') ([68ea4e3](https://github.com/USERNAME/REPOSITORY_NAME/commits68ea4e3d9f255e989cf158159b434ed6bfc6f55a))
+* actually allow to login via prominent login button ([4be49a0](https://github.com/USERNAME/REPOSITORY_NAME/commits4be49a0561531c729d9d46d5e99571056d2492df))
+* actually apply preferred background layer ([b69c2de](https://github.com/USERNAME/REPOSITORY_NAME/commitsb69c2de3f41e7737ceec919214f0748634d9dfd3))
+* actually attempt to login when login button is pressed ([f1de8a3](https://github.com/USERNAME/REPOSITORY_NAME/commitsf1de8a3d9dafad4860ebb380c113ff2f253d13db))
+* actually deploy on the production repo ([ca89956](https://github.com/USERNAME/REPOSITORY_NAME/commitsca899561d55626b9c2c14f90d60d01c8c1276823))
+* actually include _all_ features ([8f7b731](https://github.com/USERNAME/REPOSITORY_NAME/commits8f7b731d29ca7daec1063a6833716e86333b0ffd))
+* actually load geojson layers; formatting ([cbc4e6e](https://github.com/USERNAME/REPOSITORY_NAME/commitscbc4e6eb15a2a6d7f9693a24f35839886b4f3544))
+* actually open usersettings when license is clicked ([c10fecb](https://github.com/USERNAME/REPOSITORY_NAME/commitsc10fecb7e8293190b07a2fc3ff90b6f830a75103))
+* actually pass the initial coordinate in the locationInput element, fix [#1486](https://github.com/pietervdvn/MapComplete/issues/1486) ([68e07d7](https://github.com/USERNAME/REPOSITORY_NAME/commits68e07d7d7beca5b4ea26b9fc6ff964014d28af4b))
+* Actually show errors in custom themes now ([6a79dde](https://github.com/USERNAME/REPOSITORY_NAME/commits6a79dde743264c272e461614ae718044d90a7080))
+* actually show HD image for nearby streetview imager, add loading indicator ([8b6ee87](https://github.com/USERNAME/REPOSITORY_NAME/commits8b6ee877f08a584df7d3bc8706292b6eeb11f030))
+* actually show polygon_centroid ([5a957d5](https://github.com/USERNAME/REPOSITORY_NAME/commits5a957d56c73771a1fa2560dbd8755a7eebe36285))
+* actually show tags on changes when the user has enough changesets ([d702134](https://github.com/USERNAME/REPOSITORY_NAME/commitsd7021344e890bede888ea3412270420e033207f7))
+* actually upload new themes ([6446586](https://github.com/USERNAME/REPOSITORY_NAME/commits6446586ac581fa3994e58dba62a365afde7d5937))
+* add 'maxspeed=20' to living street ([fd9c48b](https://github.com/USERNAME/REPOSITORY_NAME/commitsfd9c48b5b56fe7a08e3532cad777246b82b3a073))
+* add 'onbeforeunload' if images are uploading, see [#1841](https://github.com/pietervdvn/MapComplete/issues/1841) ([ce7bc8f](https://github.com/USERNAME/REPOSITORY_NAME/commitsce7bc8fb6cc373e96179e57395818d6e6befd942))
+* add 'self' to connect-src ([3bca130](https://github.com/USERNAME/REPOSITORY_NAME/commits3bca1305b504ba08203a09916fe849365eca0458))
+* add all global layers to CSP ([93630bd](https://github.com/USERNAME/REPOSITORY_NAME/commits93630bd1db9e71f5e62619b2d02aaf18b42222f6))
+* add all needed urls again ([ce1855b](https://github.com/USERNAME/REPOSITORY_NAME/commitsce1855b2bd322044f9710a4dab38287298ad5fc6))
+* add all vector layers to CSP ([2736740](https://github.com/USERNAME/REPOSITORY_NAME/commits2736740cd0d777450f8da7eea76f1defa7993944))
+* add awaitAnimationFrame to fix non-working questions ([d744fd3](https://github.com/USERNAME/REPOSITORY_NAME/commitsd744fd3a42bedb64de7de1562b6f4ee31ba9d254))
+* Add button to go back to the map when showing that a point is deleted, fix [#1417](https://github.com/pietervdvn/MapComplete/issues/1417) ([55903d4](https://github.com/USERNAME/REPOSITORY_NAME/commits55903d45f933ebbfd7971a14296fe2dac1b6fa96))
+* add carto vector layers again ([5e2a989](https://github.com/USERNAME/REPOSITORY_NAME/commits5e2a98924c2a0efdb1f75a213efe7114df5e0cae))
+* add check for missing 'noopener' attributes; add missing noopener attributes ([6e8617c](https://github.com/USERNAME/REPOSITORY_NAME/commits6e8617c93fd0fde8f0b27c035625e68d143f9b58))
+* add check that no changeset is opened without actually having changes ([2843b01](https://github.com/USERNAME/REPOSITORY_NAME/commits2843b01586fd40a2e0d4dc92861b9d001d1684d3))
+* add correct attribution for maptiler bg layer ([c90b334](https://github.com/USERNAME/REPOSITORY_NAME/commitsc90b334678ac44346d82302599647236b3c0df09))
+* add default value for setStatus ([eede2d1](https://github.com/USERNAME/REPOSITORY_NAME/commitseede2d17dd411a3b27295a9efab8cb69df3b57c2))
+* add dutch translation ([a55b84d](https://github.com/USERNAME/REPOSITORY_NAME/commitsa55b84dba18564e0959bd709b0da0e5b228d3ca0))
+* add execute permissions to build script ([5567869](https://github.com/USERNAME/REPOSITORY_NAME/commits5567869bb4ede7a56c174b960aff734de06ea67f))
+* add extra refresh:layeroverview in order to fix the favourites theme icons ([c65ccdb](https://github.com/USERNAME/REPOSITORY_NAME/commitsc65ccdbc240ad5406189e48bd92c40569d19bc3c))
+* add glow effect to bench theme for selected object ([75b1a46](https://github.com/USERNAME/REPOSITORY_NAME/commits75b1a467e0307cee94a0af9e482a3ab5e8ac4ccd))
+* add glow effect when dropping an image in the file selector; fix [#1496](https://github.com/pietervdvn/MapComplete/issues/1496) ([426620a](https://github.com/USERNAME/REPOSITORY_NAME/commits426620a76c4a6ca86181dec73da90d076f73c9aa))
+* add language picker in settings page if logged out, fix [#1505](https://github.com/pietervdvn/MapComplete/issues/1505) ([a7ff3b8](https://github.com/USERNAME/REPOSITORY_NAME/commitsa7ff3b86faa90e70d3496f973c72b0265f993708))
+* add links and overpass link to cafe_pub ([41b6eea](https://github.com/USERNAME/REPOSITORY_NAME/commits41b6eea430cbb6f504deb7a3e4fb5cf493004d6f))
+* add maxzoom to osm.carto-layer, see [#1664](https://github.com/pietervdvn/MapComplete/issues/1664)$ ([5f918b6](https://github.com/USERNAME/REPOSITORY_NAME/commits5f918b607b9034c5a8ce6bcdd003caf8efe1466b))
+* add missing assets ([f2b8c0d](https://github.com/USERNAME/REPOSITORY_NAME/commitsf2b8c0db0f80bf503f2b4332d66cbede0736f82a))
+* add missing tag ([c5300a3](https://github.com/USERNAME/REPOSITORY_NAME/commitsc5300a3fd5b46e611a4604ad9c0483f823396dda))
+* add new items works again, fix [#1593](https://github.com/pietervdvn/MapComplete/issues/1593) ([c527427](https://github.com/USERNAME/REPOSITORY_NAME/commitsc527427f70990006b9c71ef472bbe45d2c9bff70))
+* add safety check to not overuse the OSM-api ([4602df3](https://github.com/USERNAME/REPOSITORY_NAME/commits4602df30469b57a57b9b8e1b8c6cc5c70ff901d7))
+* add script integrity, add check to validate that script integrity is always in place ([08bbbca](https://github.com/USERNAME/REPOSITORY_NAME/commits08bbbcabc402abcf328274bb2990d59b47580376))
+* add selection indicator to artwork ([ec99ab2](https://github.com/USERNAME/REPOSITORY_NAME/commitsec99ab24f806e8d43ae89ab8f33f570f43ce59fb))
+* add support for legacy iconSize to fix some custom themes, see [#1494](https://github.com/pietervdvn/MapComplete/issues/1494) ([200361b](https://github.com/USERNAME/REPOSITORY_NAME/commits200361bf8dcd17f47574539137b2c42cb745143a))
+* add text on cancel button ([1208e09](https://github.com/USERNAME/REPOSITORY_NAME/commits1208e095cf3fe87a2c9948a0c6666705c14c5e52))
+* add the minimap again ([e83b8cb](https://github.com/USERNAME/REPOSITORY_NAME/commitse83b8cb19183b53c4d6b24b4f621900fd14280fa))
+* addnewpoint-dialog works again ([8ed0a32](https://github.com/USERNAME/REPOSITORY_NAME/commits8ed0a32d153d4a434602c86a85eaf02881f6d480))
+* alias 'urls' as 'website', fix [#246](https://github.com/pietervdvn/MapComplete/issues/246) ([87e79b8](https://github.com/USERNAME/REPOSITORY_NAME/commits87e79b8e8c981f5b0daa105097c514273ce6be3e))
+* allow selection of the first radiobutton ([8fafd0a](https://github.com/USERNAME/REPOSITORY_NAME/commits8fafd0a8a5701323c6e25210ac6310dc418e31eb))
+* allow to delete freeform values in more cases ([9b78838](https://github.com/USERNAME/REPOSITORY_NAME/commits9b78838745f41f3e42f158c9959c695e4160e7e8))
+* allow to link multiple mapillary-images ([286fe72](https://github.com/USERNAME/REPOSITORY_NAME/commits286fe729359db1ec36328768a6a7662a9e951ce8))
+* allow to move (non-snapped) points again after fixing [#1809](https://github.com/pietervdvn/MapComplete/issues/1809) ([77f07f5](https://github.com/USERNAME/REPOSITORY_NAME/commits77f07f55ecf9140c1c556fb4147c7d5cb74b0645))
+* alltags shows objects as JSON instead as [object Object] ([1df28ab](https://github.com/USERNAME/REPOSITORY_NAME/commits1df28ab50199310928974a07809b65e854df1525))
+* also copy png assets ([8f32916](https://github.com/USERNAME/REPOSITORY_NAME/commits8f32916454b63939d63c7496f7ba7b30f6f038cc))
+* also show location info on shake if GPS is disabled ([4c5d24a](https://github.com/USERNAME/REPOSITORY_NAME/commits4c5d24a0a7dacc393c0a4328c99b5e5e08058b0b))
+* always allow www.openstreetmap.org ([6b4be12](https://github.com/USERNAME/REPOSITORY_NAME/commits6b4be1200c60664bbbee87f9f8f8e3d821a277c3))
+* always link to the wiki when tags are shown ([8dfef62](https://github.com/USERNAME/REPOSITORY_NAME/commits8dfef624323b8b93098150115d93f4089b846fb2))
+* attempt to fix build ([0e8c3b1](https://github.com/USERNAME/REPOSITORY_NAME/commits0e8c3b10626f6f37e54b8ef96c11fb5dc113fe7a))
+* attempt to fix build ([0e760b9](https://github.com/USERNAME/REPOSITORY_NAME/commits0e760b908c4955300b9d329f6d7eb9fb475713d3))
+* attributes to answered questions didn't automatically show, questions which became available are now shown if they become avaible because of a tag change. Fix [#1587](https://github.com/pietervdvn/MapComplete/issues/1587) ([7de0af1](https://github.com/USERNAME/REPOSITORY_NAME/commits7de0af15f100815288fea4fdb13f3e845bc79088))
+* await 'country' to be loaded ([3c5bde1](https://github.com/USERNAME/REPOSITORY_NAME/commits3c5bde1ae3ff3ed1aa72bb1463a4690e16f941e6))
+* background layer csp fixe ([713e53c](https://github.com/USERNAME/REPOSITORY_NAME/commits713e53c41a840ae1e66cb9a36e06e0e9361285bd))
+* better error handling and handling of changes ([7813653](https://github.com/USERNAME/REPOSITORY_NAME/commits78136532651ebcea6a2d2d94e42b2775bb9e92e3))
+* better select available levels ([7b73578](https://github.com/USERNAME/REPOSITORY_NAME/commits7b73578f88b09ee65f923c363a884d91f20d2fae))
+* broken titleIcons (fix [#1344](https://github.com/pietervdvn/MapComplete/issues/1344)) ([bdcf8a2](https://github.com/USERNAME/REPOSITORY_NAME/commitsbdcf8a26014b01e8128ece897e4b98286722d0e4))
+* browser specific bug which caused the file selector to open twice on chromium; fix [#1771](https://github.com/pietervdvn/MapComplete/issues/1771) ([9893e43](https://github.com/USERNAME/REPOSITORY_NAME/commits9893e433f3bb43fbea80beb2a73ea4e271a01491))
+* bug submitted comments on notes twice ([5be4b9d](https://github.com/USERNAME/REPOSITORY_NAME/commits5be4b9d1fb1e5a5e2cb03e314d4d65370aa44957))
+* build ([cef7e01](https://github.com/USERNAME/REPOSITORY_NAME/commitscef7e01a2e7855d214d4a5ca75fc032a2b1d123a))
+* build ([8556196](https://github.com/USERNAME/REPOSITORY_NAME/commits8556196acec5652ab39baaaa14ac911cb6dc5a15))
+* build ([dbca260](https://github.com/USERNAME/REPOSITORY_NAME/commitsdbca2601324cd79d5d2d7d0398d002565d8825de))
+* build ([2a21040](https://github.com/USERNAME/REPOSITORY_NAME/commits2a2104055185e1f9fa8f1cad620606b690527a0c))
+* build ([29ee113](https://github.com/USERNAME/REPOSITORY_NAME/commits29ee113e30c11edc670331f1fb67f41e08f9ab50))
+* build, some metatagging errors ([0d529e7](https://github.com/USERNAME/REPOSITORY_NAME/commits0d529e7cca4f044ab4c5fd4491e3704678598862))
+* build; subtle bug ([5644c7a](https://github.com/USERNAME/REPOSITORY_NAME/commits5644c7a8b87a0fb17e846a4c370ac432cc03ca15))
+* bypass missing favourites in custom theme loader ([6f59e46](https://github.com/USERNAME/REPOSITORY_NAME/commits6f59e46befd0ba1df57066400f3d2bbf00166f5b))
+* charging station theme uses anchor too ([39024eb](https://github.com/USERNAME/REPOSITORY_NAME/commits39024eb5f3f68b5dba6b10d8dcf07fe2c5c67fbc))
+* charging_station.protojson ([f042ca4](https://github.com/USERNAME/REPOSITORY_NAME/commitsf042ca40701e269a02254289a35acd43aaed05b0))
+* chromium browsers don't handle spaces in `tel:`-links well ([4168ef0](https://github.com/USERNAME/REPOSITORY_NAME/commits4168ef01e333784f738fafa15d1eb7d7c4c527c7))
+* cleanup merge ([e160510](https://github.com/USERNAME/REPOSITORY_NAME/commitse16051025a0f7c827c90db7251596be0c5e902c9))
+* cleanup of wikipedia panel, fix [#1570](https://github.com/pietervdvn/MapComplete/issues/1570) ([203f24f](https://github.com/USERNAME/REPOSITORY_NAME/commits203f24fca01047edd2f01ed541fc93841ac1f17d))
+* clicking the magnifying icon actually works now ([5478711](https://github.com/USERNAME/REPOSITORY_NAME/commits5478711bed8806d4cd5ae0ffe69ab64f3293fa69))
+* compilation warning ([5851531](https://github.com/USERNAME/REPOSITORY_NAME/commits5851531306b2cb2cebfb459e5c5bef284b8c3e94))
+* correct 'sync repo' step ([ecd84c2](https://github.com/USERNAME/REPOSITORY_NAME/commitsecd84c2cf6174bddad5d1759caeeeea761e1b9f1))
+* correct CSP header for iOs/safari ([54868de](https://github.com/USERNAME/REPOSITORY_NAME/commits54868debec137c57b8dd45024332854150cc8f0f))
+* correct default access assumption ([ea06152](https://github.com/USERNAME/REPOSITORY_NAME/commitsea061524737b343bec120356b8822d185cdefd85))
+* correct default sed param for BSD sed flavor ([46fe1c5](https://github.com/USERNAME/REPOSITORY_NAME/commits46fe1c5795a110c541ed97548c426b205705ff2d))
+* correct faulty name ([0952200](https://github.com/USERNAME/REPOSITORY_NAME/commits09522004db01453dcdb9a26670c3d7ef6f4e1eee))
+* correct filters ([4d2d541](https://github.com/USERNAME/REPOSITORY_NAME/commits4d2d54175ca5b4af5a258bf7d1b89debab9f8f8e))
+* correct maybe missing option in etymology layer ([a8ecab4](https://github.com/USERNAME/REPOSITORY_NAME/commitsa8ecab4d794c219301d636594933520c87fd8d75))
+* correct merge conflict ([e6d8401](https://github.com/USERNAME/REPOSITORY_NAME/commitse6d84019a579daed01a34cf67825689511fd9c0a))
+* correct minzoom on all themes ([bde5878](https://github.com/USERNAME/REPOSITORY_NAME/commitsbde5878fedae0eac20db8bb4c6eca81f904e20fd))
+* correct sed command to be OSX compatible ([e21eb65](https://github.com/USERNAME/REPOSITORY_NAME/commitse21eb6596ee85471b8cbbd6776fa65647786bfda))
+* correct typings ([2f17e6e](https://github.com/USERNAME/REPOSITORY_NAME/commits2f17e6e53259193c06d1764188a1a9602fbd97bb))
+* Correctly calculate available levels, reselect last_click automatically ([4c962ea](https://github.com/USERNAME/REPOSITORY_NAME/commits4c962eab21af8146d9d57f7d12cd08cdd4a642d6))
+* correctly escape markdown ([4d01d81](https://github.com/USERNAME/REPOSITORY_NAME/commits4d01d81e1e87ca5a18b6d0fd7b9f232c77cda936))
+* correctly flatten special cases ([7ba0e73](https://github.com/USERNAME/REPOSITORY_NAME/commits7ba0e736a87492bc64e5f73811a6c790851c59d9))
+* correctly flatten special cases ([593d7bd](https://github.com/USERNAME/REPOSITORY_NAME/commits593d7bd07ac520875c5acfcab5df364fb04dd77c))
+* correctly interpret 'hideInAnswer'-conditions, recalculate them dynamically ([37dc6a7](https://github.com/USERNAME/REPOSITORY_NAME/commits37dc6a71616fc9510d1bf6e814060390dd329629))
+* correctly optimize 'key=A&key!=B' into 'key=A' ([d8a5f3c](https://github.com/USERNAME/REPOSITORY_NAME/commitsd8a5f3c2be985c4fcbedfda09564ae5d02e6e5b4))
+* correctly replace fields in filterview ([ae491f4](https://github.com/USERNAME/REPOSITORY_NAME/commitsae491f491652798344273d18fb42f1d27108ba4b))
+* crash in new note flow, spotted by [@thibaultmolleman](https://github.com/thibaultmolleman) ([3e49929](https://github.com/USERNAME/REPOSITORY_NAME/commits3e49929f253f8ae1f945d9df4eb3398b39030a43))
+* css-generate script; loading of stylesheet in style_test, add small buttons to style_test ([6bed170](https://github.com/USERNAME/REPOSITORY_NAME/commits6bed170910cdf6fd2ca68eb9d1b65779287afa5d))
+* CSV download ([c1bce7a](https://github.com/USERNAME/REPOSITORY_NAME/commitsc1bce7abc76984ddb84f112d1b7367e5822d5763))
+* decent PDF-export ([de20b00](https://github.com/USERNAME/REPOSITORY_NAME/commitsde20b00b8f8af6796cbab060262d85a5ab171c5d))
+* direction input does not scroll anymore when dragged, fix [#1468](https://github.com/pietervdvn/MapComplete/issues/1468) ([102892e](https://github.com/USERNAME/REPOSITORY_NAME/commits102892ec774501b2811179b333217fb81efe33bb))
+* disable 'delete'-button if no reason is selected, fix [#1631](https://github.com/pietervdvn/MapComplete/issues/1631) ([6b6b1e3](https://github.com/USERNAME/REPOSITORY_NAME/commits6b6b1e32862c7021cff99c2b340a50ae5822cf60))
+* disable check ([b2e7b7d](https://github.com/USERNAME/REPOSITORY_NAME/commitsb2e7b7d221a6dbc12f73505522a5d29bd6d36244))
+* disable rotation on mobile if the user enabled this ([93a30fd](https://github.com/USERNAME/REPOSITORY_NAME/commits93a30fdba5edfd91c19050013aa4f58123ce127c))
+* don't attempt to show an osm wiki page as image, fix [#1776](https://github.com/pietervdvn/MapComplete/issues/1776) ([7dc43f9](https://github.com/USERNAME/REPOSITORY_NAME/commits7dc43f933e84b73f99935ceba4638fe85e376c94))
+* don't count layers if they are not shown by default, fix [#1840](https://github.com/pietervdvn/MapComplete/issues/1840) ([d848171](https://github.com/USERNAME/REPOSITORY_NAME/commitsd848171c3d795e31a73b10d687b475de30e8f39c))
+* don't crash if 't' is undefined ([b1c4097](https://github.com/USERNAME/REPOSITORY_NAME/commitsb1c4097cb480785d2e644a3da072055d1778a17c))
+* don't crash if no features nearby ([b6a4cc1](https://github.com/USERNAME/REPOSITORY_NAME/commitsb6a4cc11bdf25c4cf09e55ad802eb0d460311c9d))
+* don't crash if no features nearby ([c2001f1](https://github.com/USERNAME/REPOSITORY_NAME/commitsc2001f17a55937bbc09e52d730828c9234bf30ef))
+* don't measure compass if alpha is null, fix [#1787](https://github.com/pietervdvn/MapComplete/issues/1787) ([3461ed6](https://github.com/USERNAME/REPOSITORY_NAME/commits3461ed60990fc91e399ef3c4cd082029db2059dd))
+* don't move the map after we jumped to the current GPS location ([f31b025](https://github.com/USERNAME/REPOSITORY_NAME/commitsf31b025b8dba7218576c58ef6bc2b3101052beb7))
+* don't set invalid coordinates ([fbc3bce](https://github.com/USERNAME/REPOSITORY_NAME/commitsfbc3bce5109ffa95491b792d4c7870167f9915ba))
+* don't show both counts and summary at the same time ([d6dbeca](https://github.com/USERNAME/REPOSITORY_NAME/commitsd6dbecace26b9dc52da61d19b767469190a0e8be))
+* don't show duplicate entry of default baselayer if already added ([7ef1628](https://github.com/USERNAME/REPOSITORY_NAME/commits7ef1628d87f32240746251b3e7b4bfdfdbebf6cb))
+* Don't show item if there is no label ([7edc730](https://github.com/USERNAME/REPOSITORY_NAME/commits7edc7302bbb6f0884e6652a429e00705f64413bb))
+* don't show preset_type special vis if no presets are given ([cf3b414](https://github.com/USERNAME/REPOSITORY_NAME/commitscf3b4145ff68871a2040b15ccb6d030b59c448ad))
+* don't show radiobuttons if only one option is available ([8e68ca0](https://github.com/USERNAME/REPOSITORY_NAME/commits8e68ca03ab33cf91df83f1e1d2750723cfb0370b))
+* don't store location 0,0 to prevent movement or cursor in addNew-dialog ([c19317b](https://github.com/USERNAME/REPOSITORY_NAME/commitsc19317bd04a10db89ecbb95eda9b3156f50c395b))
+* don't throw an error if there is no parent element which can be scrolled ([3166918](https://github.com/USERNAME/REPOSITORY_NAME/commits3166918551aab57bdf0777e7bd378003779f8c10))
+* drag & drop for file selector ([5be24db](https://github.com/USERNAME/REPOSITORY_NAME/commits5be24dbef1647cd2c6c869d86ea5b37f0e072106))
+* dynamic filtering with non-string values ([58b94c3](https://github.com/USERNAME/REPOSITORY_NAME/commits58b94c38e50c5a9c66ac248fe8117b19bac7d05a))
+* effectively show `contact:website` in title icons ([0027299](https://github.com/USERNAME/REPOSITORY_NAME/commits0027299a3e373e9cd19deec0b93dd7a7599ff78a))
+* emit warning for invalid suggestions ([56ba426](https://github.com/USERNAME/REPOSITORY_NAME/commits56ba426ab5bb2f10ac38776728a67ff4558e0cfa))
+* enable editing questions (and settings) again (oopsie) ([d079ba9](https://github.com/USERNAME/REPOSITORY_NAME/commitsd079ba91aa29395262b8084f811eec26e51750b9))
+* enable external data sources from the ELI ([5ea0804](https://github.com/USERNAME/REPOSITORY_NAME/commits5ea08040d7ec40abaabf849ef20771c1a5112637))
+* enable login on index screen ([aface6a](https://github.com/USERNAME/REPOSITORY_NAME/commitsaface6aea7f1774b62c9218e64cd65bf77b97c0b))
+* enable rainbow question again, fix [#1453](https://github.com/pietervdvn/MapComplete/issues/1453) ([af447a9](https://github.com/USERNAME/REPOSITORY_NAME/commitsaf447a948f3d425565afe5620a97123111d6bf91))
+* enable settings again, fix [#1815](https://github.com/pietervdvn/MapComplete/issues/1815) ([a118c29](https://github.com/USERNAME/REPOSITORY_NAME/commitsa118c295d641852584bbd16f07c419a3fa896591))
+* error server properly names files, add status endpoint ([37c1d46](https://github.com/USERNAME/REPOSITORY_NAME/commits37c1d46dd43a9d75326a4f9187d4bb3846b4a211))
+* escape special characters for wikipedia search, might improve [#1500](https://github.com/pietervdvn/MapComplete/issues/1500) ([ec94253](https://github.com/USERNAME/REPOSITORY_NAME/commitsec94253d6c5ef38ee5d5d1c7bc25fff53cd6be82))
+* etymology theme now supports multi-apply again, uses lower zoom level for multiselect ([90869a1](https://github.com/USERNAME/REPOSITORY_NAME/commits90869a1c985d992063656d89fe0d95b73184304a))
+* Expose all templates ([09a3e7f](https://github.com/USERNAME/REPOSITORY_NAME/commits09a3e7fba1464835bfad061110f4352d9a47e173))
+* facade gardens: restore forgottne rendering ([f8fa184](https://github.com/USERNAME/REPOSITORY_NAME/commitsf8fa1841e4df8627a18ee57c7c2cb943176557be))
+* fill in freeform value if already set ([e0527e9](https://github.com/USERNAME/REPOSITORY_NAME/commitse0527e964702427014220e2978680e3e6a7cc774))
+* fix [#1471](https://github.com/pietervdvn/MapComplete/issues/1471): add option to bench for 'does probably not have an artwork' ([91892d5](https://github.com/USERNAME/REPOSITORY_NAME/commits91892d50c5a5c5071838c8a38a24c60f1f7ed717))
+* fix [#1477](https://github.com/pietervdvn/MapComplete/issues/1477). Setting the background caused a map.resize(), which in turn caused the coordinates to be set to 0,0, which caused the location-correction to kick in, moving the location input towards null island ([d95d96f](https://github.com/USERNAME/REPOSITORY_NAME/commitsd95d96fb1ba1a8886f05b118c0650a4af1ae5dd7))
+* fix [#1503](https://github.com/pietervdvn/MapComplete/issues/1503), fix [#1571](https://github.com/pietervdvn/MapComplete/issues/1571) ([382f965](https://github.com/USERNAME/REPOSITORY_NAME/commits382f96596ed474bef086d64cabb748257416f2de))
+* fix [#1506](https://github.com/pietervdvn/MapComplete/issues/1506), language-URL-parameter works again and is properly documented ([2942a2d](https://github.com/USERNAME/REPOSITORY_NAME/commits2942a2dae77d7c79b3af47b0c518342fa6c87454))
+* fix [#1528](https://github.com/pietervdvn/MapComplete/issues/1528): from weblate to theme files did not properly sync ([3c08c12](https://github.com/USERNAME/REPOSITORY_NAME/commits3c08c1297423d74348aa83e5932a7fbd94c260e5))
+* fix [#1529](https://github.com/pietervdvn/MapComplete/issues/1529) ([05bf79f](https://github.com/USERNAME/REPOSITORY_NAME/commits05bf79f7616af06aefea8e9f095e2b467d84a5d7))
+* fix [#1532](https://github.com/pietervdvn/MapComplete/issues/1532) ([5d00f3c](https://github.com/USERNAME/REPOSITORY_NAME/commits5d00f3cc6a75a22732ec7ffa63d9335d9d75853c))
+* fix [#1580](https://github.com/pietervdvn/MapComplete/issues/1580) ([56934b7](https://github.com/USERNAME/REPOSITORY_NAME/commits56934b79f6911da6d182c4e3f28bbd6749932c3e))
+* fix [#1596](https://github.com/pietervdvn/MapComplete/issues/1596) ([0727a22](https://github.com/USERNAME/REPOSITORY_NAME/commits0727a228fd8bf9b7dd7ecc5b42d9225eab00bae7))
+* fix [#1627](https://github.com/pietervdvn/MapComplete/issues/1627) ([e37f908](https://github.com/USERNAME/REPOSITORY_NAME/commitse37f90855fb3b1fd59d19506aca0e2ccc6a12fb2))
+* fix [#1675](https://github.com/pietervdvn/MapComplete/issues/1675) ([65250d7](https://github.com/USERNAME/REPOSITORY_NAME/commits65250d77beec81f9d336302c4b185dcd14518917))
+* fix [#1684](https://github.com/pietervdvn/MapComplete/issues/1684); add 'openid' to auth-tokens (will be needed in the future for geovisio integration) ([0a82dd0](https://github.com/USERNAME/REPOSITORY_NAME/commits0a82dd0edfd67c18b2c59c903d506cbb0d46ffc1))
+* fix [#1713](https://github.com/pietervdvn/MapComplete/issues/1713) ([2720f5d](https://github.com/USERNAME/REPOSITORY_NAME/commits2720f5dd19deb2ebdcf1eae2229e2fbdd0adc4dd))
+* fix [#1779](https://github.com/pietervdvn/MapComplete/issues/1779), add check to prevent similar errors ([417dc16](https://github.com/USERNAME/REPOSITORY_NAME/commits417dc1633e05b1b4776449eb245739232dea975e))
+* fix [#1813](https://github.com/pietervdvn/MapComplete/issues/1813). For some reason, importing a .js-file suddenly fails, so ported it to typescript ([cab414e](https://github.com/USERNAME/REPOSITORY_NAME/commitscab414e80895933b4ae874be5fd77b90b8c13f3f))
+* fix [#1817](https://github.com/pietervdvn/MapComplete/issues/1817), some more improvements to the loading screen ([6394ee8](https://github.com/USERNAME/REPOSITORY_NAME/commits6394ee8e6800d2cd23d30383ffea9629964c4dc9))
+* fix [#1844](https://github.com/pietervdvn/MapComplete/issues/1844) ([e11442e](https://github.com/USERNAME/REPOSITORY_NAME/commitse11442e1009465e8bc3e8823e8d66fe44fb5f9c2))
+* fix [#1883](https://github.com/pietervdvn/MapComplete/issues/1883); display underground railway lines in a subtler rendering ([b3299cd](https://github.com/USERNAME/REPOSITORY_NAME/commitsb3299cdd733152820e30c18463e551059654d3fb))
+* fix [#1906](https://github.com/pietervdvn/MapComplete/issues/1906) ([3ab1d15](https://github.com/USERNAME/REPOSITORY_NAME/commits3ab1d1591fde7e31efe4e6186af78b71987c1498))
+* fix [#1917](https://github.com/pietervdvn/MapComplete/issues/1917) ([8c65448](https://github.com/USERNAME/REPOSITORY_NAME/commits8c6544883469d9634fca285b600fa05706dcdbfa))
+* fix [#1917](https://github.com/pietervdvn/MapComplete/issues/1917) ([903a11d](https://github.com/USERNAME/REPOSITORY_NAME/commits903a11d4e7c832ad46d3afd4ed9786df6e6d1331))
+* fix anonymous reviews; fix [#1868](https://github.com/pietervdvn/MapComplete/issues/1868) ([073cd69](https://github.com/USERNAME/REPOSITORY_NAME/commits073cd692e456ae63999bfc2770d0c204dc8a1793))
+* fix back-button on the 404-page, remove some obsolete classes ([006f695](https://github.com/USERNAME/REPOSITORY_NAME/commits006f69561a08a1c3a3577ada83e9b3954d8332f2))
+* fix bug icon ([1fea2b5](https://github.com/USERNAME/REPOSITORY_NAME/commits1fea2b56be82e8a9a5db2683ee55a5a81ec7e7f2))
+* fix bug with incorrect translation context for themes ([368f9ad](https://github.com/USERNAME/REPOSITORY_NAME/commits368f9ad0c83eaeb40d4f7ae293d73d11714271e0))
+* fix build ([0d705b9](https://github.com/USERNAME/REPOSITORY_NAME/commits0d705b97277a7c6cba5a57d071aeaace1a24fc5a))
+* fix crash in studio ([b18d575](https://github.com/USERNAME/REPOSITORY_NAME/commitsb18d575ade434ec51a33684ff365ede7b93cfa79))
+* fix dissappearing items to apply ([a935c03](https://github.com/USERNAME/REPOSITORY_NAME/commitsa935c03631614390a1ab43248f51e6ba0eb26956))
+* fix domain name ([301f00f](https://github.com/USERNAME/REPOSITORY_NAME/commits301f00f6aef727981e2faa73e2093710ac25c337))
+* fix file drag and drop, allow entire featurePopup for file drop ([859faea](https://github.com/USERNAME/REPOSITORY_NAME/commits859faead7fd8c6fa5ae73b70e41a753f34dfd5ff))
+* fix icons in mappings which use a builtin svg ([ab28fbe](https://github.com/USERNAME/REPOSITORY_NAME/commitsab28fbe35c97de56e765bc3b35277489aebb1872))
+* fix incorrectly linked translation in privacy policy ([e2aaa7d](https://github.com/USERNAME/REPOSITORY_NAME/commitse2aaa7d435ee91d20a62e8380300ec27418e93c1))
+* fix link image action ([ce55b4c](https://github.com/USERNAME/REPOSITORY_NAME/commitsce55b4c7d8659044b93a03afaaa37d272a6b48ab))
+* fix maps ([e48571a](https://github.com/USERNAME/REPOSITORY_NAME/commitse48571a80a03418d5c0c61304dbb166a67740ddc))
+* fix move dialog ([084cd86](https://github.com/USERNAME/REPOSITORY_NAME/commits084cd86b71bbc26e3b7542a5f16ecc1715275a50))
+* fix multi-visualisation ([872e36d](https://github.com/USERNAME/REPOSITORY_NAME/commits872e36dffa6810f599e06778010f8b00056b976c))
+* fix nearby drinking water fountain detection ([13ebcff](https://github.com/USERNAME/REPOSITORY_NAME/commits13ebcffab102fdcda6263c22cdd12bc22a6f86f7))
+* fix nearby drinking water fountain detection ([a5276eb](https://github.com/USERNAME/REPOSITORY_NAME/commitsa5276eb4e67ed939e5b34ad7ffca61d6e41d679d))
+* fix query:licenses ([e0ee3ed](https://github.com/USERNAME/REPOSITORY_NAME/commitse0ee3edf71388614a1bc07dc43aaf18def1a630e))
+* fix rainbow crossings theme ([5b29177](https://github.com/USERNAME/REPOSITORY_NAME/commits5b291777be5a1aa4826ba894af76dbf4c09b9a7c))
+* fix reverse tabnabbing in most cases, add rel=noopener to most links to untrusted content ([d9b8257](https://github.com/USERNAME/REPOSITORY_NAME/commitsd9b8257e47f7c2e2ce06e4a0fcad8830764dae8e))
+* fix scrolling for 'addNewPoint' ([637cebe](https://github.com/USERNAME/REPOSITORY_NAME/commits637cebefc7685d64ae5286c2a5f63afb3193a2db))
+* fix scrolling for 'addNewPoint' ([f697d29](https://github.com/USERNAME/REPOSITORY_NAME/commitsf697d292a3ab6bf3114d5f7055c908203efbc8e0))
+* fix settings menu ([2b728fd](https://github.com/USERNAME/REPOSITORY_NAME/commits2b728fdf8bd6effce1682119f7f0d67a13d1c97d))
+* fix styling of translate button in titles ([0a8164c](https://github.com/USERNAME/REPOSITORY_NAME/commits0a8164c378ca4aaa1e34dc3bbd4e2741e5bc6318))
+* fix tests; use OAuth client id from dedicated MapComplete account ([fc9dd46](https://github.com/USERNAME/REPOSITORY_NAME/commitsfc9dd462399a3b7ed8959c38c4a97f24895f9ca8))
+* fix translate icon, fix [#1832](https://github.com/pietervdvn/MapComplete/issues/1832) ([064c601](https://github.com/USERNAME/REPOSITORY_NAME/commits064c60163c19e55d098e1b1061cf3b8df3dcf782))
+* fix UK-Addresses themes again ([370b200](https://github.com/USERNAME/REPOSITORY_NAME/commits370b200bb33f26db448e5d3feda2107f2224d232))
+* fix updating of styles ([650c1a6](https://github.com/USERNAME/REPOSITORY_NAME/commits650c1a675c783179482338f449ca1202246916a0))
+* fix validation of question input; remove some obsolete logging; stabilize output of generate:translations wrt newlines ([1f39ba9](https://github.com/USERNAME/REPOSITORY_NAME/commits1f39ba9ab50f63e04be89f676aa82c04d5bb2f94))
+* fixes to etymology: load wikidata on mobile (which uses m.wikidata.org, tripping the CSP); fix 'upload image of the streetsign' parameters ([480956d](https://github.com/USERNAME/REPOSITORY_NAME/commits480956d45dc767c77848ba32b176af373e73060a))
+* force downloading (without cache) before uploading ([b85b2ac](https://github.com/USERNAME/REPOSITORY_NAME/commitsb85b2ace0b373aeae1b9cef8e748ddea7cd3ca5c))
+* force redrawing the questions in a questionbox to avoid rendering artefacts and unselectable items ([f7e2dc7](https://github.com/USERNAME/REPOSITORY_NAME/commitsf7e2dc7457f366d9cf4722beccfe6b16467ab435))
+* generate layeroverview ([ce654cb](https://github.com/USERNAME/REPOSITORY_NAME/commitsce654cbcf9d7164121ee539836c3f7775d93365d))
+* generate layeroverview ([e71a1c7](https://github.com/USERNAME/REPOSITORY_NAME/commitse71a1c7a3d011b921c6ff08dcc54f93dd84971dc))
+* generateCSP ([a612d4e](https://github.com/USERNAME/REPOSITORY_NAME/commitsa612d4e1c2f6469c7b2d1fc66c8fc416ccdcac1a))
+* generating layeroverview; performance: do not try to download ratings if no ratings element is present ([fc62d41](https://github.com/USERNAME/REPOSITORY_NAME/commitsfc62d41e1b832278bb0c846ffcaa971273419730))
+* giving a review is possible again ([0879ff9](https://github.com/USERNAME/REPOSITORY_NAME/commits0879ff97ed4b0b5de572dbf50cc45433b60423f2))
+* giving a review is possible again ([a75fc0d](https://github.com/USERNAME/REPOSITORY_NAME/commitsa75fc0d21550495ea2e579922af9b27b2b2a6e22))
+* gps-icon should turn into an arrow again ([ef93ad1](https://github.com/USERNAME/REPOSITORY_NAME/commitsef93ad126f5c6b973fb2f66c368522ebdee07543))
+* handle NBSP in svg ([4190bf7](https://github.com/USERNAME/REPOSITORY_NAME/commits4190bf79339330601b4d6d426c45cfc6e431ef61))
+* hash would not clear because the update method unregistered itself ([8dd7f34](https://github.com/USERNAME/REPOSITORY_NAME/commits8dd7f34ad733080e9e5e648a91942528d96857ed))
+* hidden theme link not working ([d5e128b](https://github.com/USERNAME/REPOSITORY_NAME/commitsd5e128b1ed71fb7be7402bbe4ed86edcd6e5a6b0))
+* hide 'addnewpoint'-icon when closing the dialog ([499ad85](https://github.com/USERNAME/REPOSITORY_NAME/commits499ad85f1efd0aefd2cf757198eaef5af037c7ee))
+* hide some elements of the UI if they are disabled by a featureSwitch ([17503d5](https://github.com/USERNAME/REPOSITORY_NAME/commits17503d5bfb63c5c03968c96f15c2c5a674a3ede3))
+* hide tag_apply_button when applied ([622df2d](https://github.com/USERNAME/REPOSITORY_NAME/commits622df2df19ce4fa7049447995194d0f28b91d59f))
+* icons for rental in cyclofix theme ([02064a2](https://github.com/USERNAME/REPOSITORY_NAME/commits02064a2d8078b07aeb9e282700018c86638c4683))
+* ifnot-value would show up together with the 'if'-value ([15f1a93](https://github.com/USERNAME/REPOSITORY_NAME/commits15f1a9362c624d3fec9680efa3e38edf912cbaf1))
+* import ([98ca6aa](https://github.com/USERNAME/REPOSITORY_NAME/commits98ca6aa8aaac923b57d12f52b41f5ee13412b0a2))
+* improve background layer switching code, might improve [#1481](https://github.com/pietervdvn/MapComplete/issues/1481) ([33fa11f](https://github.com/USERNAME/REPOSITORY_NAME/commits33fa11fc1728f017644977be2181c25441a76e18))
+* improve deployscript for hetzner ([dcd02e9](https://github.com/USERNAME/REPOSITORY_NAME/commitsdcd02e9ad772346bc3f69ebd9563af80ea30810e))
+* improve error message ([7f6c1f0](https://github.com/USERNAME/REPOSITORY_NAME/commits7f6c1f06e23cb249d2eadda9be08b1cafc680d30))
+* improve first-sentence ([7aee442](https://github.com/USERNAME/REPOSITORY_NAME/commits7aee442ae49a7a68821917de9580ce9e62105edf))
+* improve functionality of GRB-theme (WIP) ([b86e291](https://github.com/USERNAME/REPOSITORY_NAME/commitsb86e2910baba5fe37cf5c0f53a64966c85d159ce))
+* improve optimization; add tests ([595503c](https://github.com/USERNAME/REPOSITORY_NAME/commits595503cfc35c8db3cb4ee4b28f82b7c91ee75dff))
+* improve parsing of possible mapillary values ([3d54a83](https://github.com/USERNAME/REPOSITORY_NAME/commits3d54a8392be94a369bf388dad0f83f60fb5a5474))
+* improve PDF-output functionality ([215286a](https://github.com/USERNAME/REPOSITORY_NAME/commits215286a5af46c58a197bf85b9561c26eff5bd8fe))
+* include 'source' and tile URLs from vector tile sources into CSP, see [#1652](https://github.com/pietervdvn/MapComplete/issues/1652) ([09504e1](https://github.com/USERNAME/REPOSITORY_NAME/commits09504e18ecb4b85ceb6562fcdb0e21034e496ad8))
+* include japanese dot as sentence separator ([d2c6689](https://github.com/USERNAME/REPOSITORY_NAME/commitsd2c668922b7ac5dc682461c6789fbbdb37fad8c3))
+* include lod-proxy in CSp ([087c099](https://github.com/USERNAME/REPOSITORY_NAME/commits087c099e2e633237b00748ee5d3dbba454999881))
+* incorrect path in error message ([5da8952](https://github.com/USERNAME/REPOSITORY_NAME/commits5da895276c5d5447bea7094d81d371e99458ff7e))
+* **index:** search got confused as it didn't have an id for the list items ([6f42884](https://github.com/USERNAME/REPOSITORY_NAME/commits6f4288476eebf7b0e8af6177bff066d06f3823dc))
+* init indexedFeatureStore with a default map as to fix crash upon loading if a pending change is present ([377c411](https://github.com/USERNAME/REPOSITORY_NAME/commits377c411143c577752014842bbc205093c9ebfdc4))
+* initialize user settings with a strict value to be able to override it ([57e0093](https://github.com/USERNAME/REPOSITORY_NAME/commits57e0093e478f541c46145a72dbfb9fc70d467633))
+* interpret missing level tag as 'level=0' ([5d8b422](https://github.com/USERNAME/REPOSITORY_NAME/commits5d8b42216236d49b6bcf328e8a009884f697e312))
+* keep map mouse-interactive when panning with arrow keys, some CSS-tweaks ([512bb4c](https://github.com/USERNAME/REPOSITORY_NAME/commits512bb4c00e1fed39927c8bd40aaef378db64d648))
+* layers now compile again ([1c99173](https://github.com/USERNAME/REPOSITORY_NAME/commits1c99173f32112b332ce38f926623fa2c27f89ab8))
+* lines with opacity have colour again ([f0d9365](https://github.com/USERNAME/REPOSITORY_NAME/commitsf0d9365e06eb533f0bf0a47c21ce58834fc5cabd))
+* load element if set in the hash ([9090dda](https://github.com/USERNAME/REPOSITORY_NAME/commits9090dda6889a4e4eda33b9d634fb22da3aedadd8))
+* load translations for PDF-export internally ([d103911](https://github.com/USERNAME/REPOSITORY_NAME/commitsd103911d143803c9e0373a673110009a785f94da))
+* loading oneway arrows on multiple layers; fix nullpointer ([1678427](https://github.com/USERNAME/REPOSITORY_NAME/commits16784270ce45560520d4e9b19d81bd04da7033ee))
+* long domain names cause horizontal scroll with taghints ([eb47c4d](https://github.com/USERNAME/REPOSITORY_NAME/commitseb47c4d5b9a0379cc87b773c73638965fb247ee8))
+* make levelselector clickable again, fix [#1416](https://github.com/pietervdvn/MapComplete/issues/1416) ([8b5daef](https://github.com/USERNAME/REPOSITORY_NAME/commits8b5daefc9063c818eeea6e044167787feb31d4b5))
+* make sure that a 'hidden' tagRendering cannot be accidentally selected ([5585f02](https://github.com/USERNAME/REPOSITORY_NAME/commits5585f02cad0c737f99c16433d7a61f3a5f3743d3))
+* make sure that the passed-in-location of the map is respected, prevents random jumps in the location input ([5c01f6a](https://github.com/USERNAME/REPOSITORY_NAME/commits5c01f6ada95ab1410310d4f084f593b6f561cc53))
+* make sure the background is always below the rendered layers ([2769747](https://github.com/USERNAME/REPOSITORY_NAME/commits2769747737964a509897ccce4702a9ea9ebefcd8))
+* make text a translation ([418e0cd](https://github.com/USERNAME/REPOSITORY_NAME/commits418e0cd149f1af50527e1f1f2c6fbec254779681))
+* make top and bottom panels click-through ([0db6a89](https://github.com/USERNAME/REPOSITORY_NAME/commits0db6a8977716e33bfa775bd731e994bf9facf0c9))
+* maproulette endpoints ([bbf6d62](https://github.com/USERNAME/REPOSITORY_NAME/commitsbbf6d62c866950476ee34ff735352d8cc38daa7a))
+* maproulette import flow ([5f7cc35](https://github.com/USERNAME/REPOSITORY_NAME/commits5f7cc351c9fb3743ab1cba65327611f730440ec5))
+* maproulette item ([b6b77da](https://github.com/USERNAME/REPOSITORY_NAME/commitsb6b77daef78bdc111530ec1fb17820c4fb042e57))
+* markers can rotate again ([5e453d5](https://github.com/USERNAME/REPOSITORY_NAME/commits5e453d5cf19fb63ef7516ad11e53aad4e0006bdc))
+* markers now appear correctly on PNG exports ([e5b3e15](https://github.com/USERNAME/REPOSITORY_NAME/commitse5b3e15c43672933fc3f1f6a59960514961ce377))
+* MC would crash if a pending change was present; remember preferences in order to reuse the changeset ([f2375f4](https://github.com/USERNAME/REPOSITORY_NAME/commitsf2375f4877316193132f4ae4189ef5b65e7ef710))
+* metatagging of width theme ([c4ff70c](https://github.com/USERNAME/REPOSITORY_NAME/commitsc4ff70ce656e941574a31120f3971375ecc7ba4c))
+* minimap takes to much space ([037c593](https://github.com/USERNAME/REPOSITORY_NAME/commits037c593f61b3adfd4ac314aef063e20049ce3cb7))
+* missing commas in elevator.json ([229e605](https://github.com/USERNAME/REPOSITORY_NAME/commits229e60538b4d9002875a63ad877324941dd4647d))
+* Move image preview below FloatOver, the popup otherwise hides the image preview ([df1fef2](https://github.com/USERNAME/REPOSITORY_NAME/commitsdf1fef28c02b08a1ba13e4fbd8bc6f15d6c7913c))
+* move lastClick to bottom anchor ([beea00c](https://github.com/USERNAME/REPOSITORY_NAME/commitsbeea00cbf079ad0c109c78d2828b7359479f0717))
+* multianswer with a free textfield did not activate ([649ed1f](https://github.com/USERNAME/REPOSITORY_NAME/commits649ed1f53a7948bafda45aab36ed214d1808b51e))
+* multianswer would not accept last option ([6f5c71e](https://github.com/USERNAME/REPOSITORY_NAME/commits6f5c71ed5a17147d5fc8c9da9f194a61f18fbb30))
+* no more duplicate link showing up, avoid crash ([7be01d5](https://github.com/USERNAME/REPOSITORY_NAME/commits7be01d5b8f789576b8b74bf07824ed660d9339a1))
+* normalization of URLs, formatting, stabilize inputHelper ([441c4df](https://github.com/USERNAME/REPOSITORY_NAME/commits441c4df4f6d3e26cf866418e5ddaea90bedd2c6a))
+* only check browserLanguage if navigator is defined; fixes tests ([a1fa3b4](https://github.com/USERNAME/REPOSITORY_NAME/commitsa1fa3b494259d7cc8f4873af31d5c9a987cef972))
+* only show 'newly created' if version number is 1 or unset ([1a78ecb](https://github.com/USERNAME/REPOSITORY_NAME/commits1a78ecb85806db67f6e51e39a0882c038589a058))
+* only show fixmes on high zoom level (performance), add the option to remove a fixme ([2f5091a](https://github.com/USERNAME/REPOSITORY_NAME/commits2f5091a8cb484681d69db0ea6578dd7d26eacef7))
+* only show website icon if a website is known ([46244b8](https://github.com/USERNAME/REPOSITORY_NAME/commits46244b8345c0005f3b3648a3379149d243cfe897))
+* open correct menu if set in hash ([7a95334](https://github.com/USERNAME/REPOSITORY_NAME/commits7a953348824f6d601c16a0e632aac8353e0283fb))
+* open settings again ([894d857](https://github.com/USERNAME/REPOSITORY_NAME/commits894d857cdc35864bbd778925ef84a042d6e04aaa))
+* opening the popup if defined in the hash ([196d76d](https://github.com/USERNAME/REPOSITORY_NAME/commits196d76d9dc8736667956ad803cf5aed15f3b682e))
+* ordering of baselayers ([8379a89](https://github.com/USERNAME/REPOSITORY_NAME/commits8379a894d0fc826e33d24d05b3e44852556a60b1))
+* output tailwind into 'public/css/' instead of 'css/' ([a1f5032](https://github.com/USERNAME/REPOSITORY_NAME/commitsa1f50322321d878d823ac3fc70021683dbb6ab69))
+* overpass feature source will redownload if the layers to download have changed ([bae4974](https://github.com/USERNAME/REPOSITORY_NAME/commitsbae49744d95e350f7b4c1b031b8e4a178879deea))
+* overpass feature source will redownload if the layers to download have changed ([7ed5307](https://github.com/USERNAME/REPOSITORY_NAME/commits7ed53076fe206f0e260d329844eb1d8898206b01))
+* pass along initial coordinates with the location input, prevents flashing of the ocean; fix [#1469](https://github.com/pietervdvn/MapComplete/issues/1469) ([790c276](https://github.com/USERNAME/REPOSITORY_NAME/commits790c2767e2dfbdca65f56ec95bf3cd69a98e4301))
+* pass properties of snapping feature in newPointInput to render correctly ([c80085d](https://github.com/USERNAME/REPOSITORY_NAME/commitsc80085dfda58c9eb73fda466d8d81731095f1672))
+* personal theme crashed due to unset defaultIcon ([6075b01](https://github.com/USERNAME/REPOSITORY_NAME/commits6075b016485808352ae84a12d5b872482693411a))
+* png correctly outputs all markers now ([905f796](https://github.com/USERNAME/REPOSITORY_NAME/commits905f796baa26b8eedc177ce7f58353331e432535))
+* precise location input picks correct location (and not the previous click) ([6d337e8](https://github.com/USERNAME/REPOSITORY_NAME/commits6d337e877589f49ed1b4b1dc60ae232dd6634342))
+* preciseInputPicker will show correct icon if snapped or not snapped to a wall ([9870391](https://github.com/USERNAME/REPOSITORY_NAME/commits98703914ca48afefb614e1f19eb15663ab3280b7))
+* presets will now also show if the layer doesn't have a name and is shown ([3f18ce7](https://github.com/USERNAME/REPOSITORY_NAME/commits3f18ce7fd387a4f60db5863cfa4f759eaf34edff))
+* pressing enter would ignore input ([95c41d6](https://github.com/USERNAME/REPOSITORY_NAME/commits95c41d672ee7f5556645925d09610f0bf36ee1c0))
+* probably fix black area outlines ([0bd9e1e](https://github.com/USERNAME/REPOSITORY_NAME/commits0bd9e1e667e659cf1b856e2aece94696089b9a20))
+* properly add 'self' to connect-src ([441a9a5](https://github.com/USERNAME/REPOSITORY_NAME/commits441a9a5ed9e5b6a37356e0f15967f66799419572))
+* properly add 'self' to connect-src (take 2) ([c823e74](https://github.com/USERNAME/REPOSITORY_NAME/commitsc823e745a3e0b562ddfdb489541182ed17449336))
+* properly show hidden themes, drop 'custom theme generator'-button, drop 'professional services' button ([93adfd3](https://github.com/USERNAME/REPOSITORY_NAME/commits93adfd3da592cbf2f177123802f69a7c4fc72637))
+* questions are shown if the condition is met, fix [#1630](https://github.com/pietervdvn/MapComplete/issues/1630) ([8500276](https://github.com/USERNAME/REPOSITORY_NAME/commits85002766a8d3b8d0d4ad31410437bad72ae7ca03))
+* questions now appear when reselecting an item ([0c5e88d](https://github.com/USERNAME/REPOSITORY_NAME/commits0c5e88df7b5bdad82bf2e67b45aa817e29ca4fde))
+* questions of charging stations are now shown separately again ([fe9afb4](https://github.com/USERNAME/REPOSITORY_NAME/commitsfe9afb415ff68c0b8e35fcb41fc68330a41a2b08))
+* questions of charging stations are now shown separately again ([30af019](https://github.com/USERNAME/REPOSITORY_NAME/commits30af019cdfe8dea845e92645d0ec859e439a2b90))
+* re-enable generate command ([13a35b9](https://github.com/USERNAME/REPOSITORY_NAME/commits13a35b94202ef775598fc7130b60b8839cef514a))
+* re-enable reservation question ([cebd428](https://github.com/USERNAME/REPOSITORY_NAME/commitscebd428e9ec58b708637ae34055a5c689e3004cd))
+* re-enable speed and heading in GPS-cursor ([ff47d75](https://github.com/USERNAME/REPOSITORY_NAME/commitsff47d75d41fc1fd4f576cd483150fe27cb3942d3))
+* readd missing files ([7d802d4](https://github.com/USERNAME/REPOSITORY_NAME/commits7d802d418bd52bf29b147c245e548a7704e2d45f))
+* redraw line layers on background change ([6e5fcde](https://github.com/USERNAME/REPOSITORY_NAME/commits6e5fcdef205d4616305d2bca39a1904d60954003))
+* reinstantiate uploads ([871d511](https://github.com/USERNAME/REPOSITORY_NAME/commits871d511616ae48055095e8c3485db762adc6b140))
+* remember map rotation setting ([c764839](https://github.com/USERNAME/REPOSITORY_NAME/commitsc764839fdcefff316b9458067e462f282a2fe7d5))
+* remember previous, externally loaded themes ([b61c0a1](https://github.com/USERNAME/REPOSITORY_NAME/commitsb61c0a11807585a1832ff410be362e74ae2a810b))
+* remove 'icons.defaults' from favourite layers, cleanup of various small typing errors ([e8569ec](https://github.com/USERNAME/REPOSITORY_NAME/commitse8569ec5404e632ebae0c71b040c1d9a9b891583))
+* remove all html-attributes from shortDescriptions in the theme overview ([39572f4](https://github.com/USERNAME/REPOSITORY_NAME/commits39572f4767f270a4a5a40d8973ae9824ac3a43d1))
+* remove empty license files, fix [#1135](https://github.com/pietervdvn/MapComplete/issues/1135) ([2eabfea](https://github.com/USERNAME/REPOSITORY_NAME/commits2eabfea8af22a3810487cdacd68d850f4432e624))
+* remove ghost bike translations from translation files and resync them, should fix the build ([0487497](https://github.com/USERNAME/REPOSITORY_NAME/commits0487497e17ace04d381d2c9d43b02f8032874e2f))
+* Remove isOpen from defaults ([11b8c61](https://github.com/USERNAME/REPOSITORY_NAME/commits11b8c619c165f6d66fed03061ad9afa052a7a096))
+* remove no longer needed translation ([0e893f7](https://github.com/USERNAME/REPOSITORY_NAME/commits0e893f7903d68f37936c9b87883ffdc31b9ff088))
+* remove no longer needed translations ([3c74a94](https://github.com/USERNAME/REPOSITORY_NAME/commits3c74a94eee676a8ff0fc2b0b85f1bf8d7487d216))
+* remove trailing ';' for opening hours, as spotted by Midgard ([36b086e](https://github.com/USERNAME/REPOSITORY_NAME/commits36b086e4141e70253e68aec59d099638d46d14af))
+* remove unneeded translation download, fix PDF-export ([1930f7b](https://github.com/USERNAME/REPOSITORY_NAME/commits1930f7bb53f4d477c2529471b478db77ddcc012b))
+* remove unneeded URL parameter ([365d573](https://github.com/USERNAME/REPOSITORY_NAME/commits365d573b7c0d36bfa675cc637e6223abe770f3a0))
+* remove unused property ([99b0135](https://github.com/USERNAME/REPOSITORY_NAME/commits99b0135fa9b44639189a1c9e690cf5829010c6e7))
+* rendering of 'inline' was not dynamic ([60d825d](https://github.com/USERNAME/REPOSITORY_NAME/commits60d825de3c94afad79351f492c691af3d2109f60))
+* rendering of indoor room icons ([6235e23](https://github.com/USERNAME/REPOSITORY_NAME/commits6235e231922b64adba86b012422175347a9887c1))
+* replace all mentions of 'mapcomplete.osm.be' with 'mapcomplete.org' ([7321004](https://github.com/USERNAME/REPOSITORY_NAME/commits7321004c19212b0849394b9d541583e52e4ec5e6))
+* reset translations ([ad952fc](https://github.com/USERNAME/REPOSITORY_NAME/commitsad952fcaf284b1669cee4657389cf36a52ee334c))
+* resize svgs ([89186c8](https://github.com/USERNAME/REPOSITORY_NAME/commits89186c8610185e56bf9afa78b2765c45b2a939bd))
+* restore loading of custom themes ([bcb2ecf](https://github.com/USERNAME/REPOSITORY_NAME/commitsbcb2ecf6ab6c372cd41dd79780b027c79cb4a49e))
+* reviews need an uncertainty ([bc96288](https://github.com/USERNAME/REPOSITORY_NAME/commitsbc96288d3d75f24fb12620d050f472029c5df135))
+* rotation of the GPS-marker ([bbc7698](https://github.com/USERNAME/REPOSITORY_NAME/commitsbbc7698b1281ad654c00c54bf58b9de7ba1e71e6))
+* safari-specific fixes ([059ef2c](https://github.com/USERNAME/REPOSITORY_NAME/commits059ef2c1bc2ea5fb377a0f1e253652c0c243e250))
+* schemaBasedArray ([a7599f6](https://github.com/USERNAME/REPOSITORY_NAME/commitsa7599f6d7f5a061cb1971ee8170f9f039ea2e2de))
+* set share capability to 'no' if running from console, fixes tests ([af7bc0f](https://github.com/USERNAME/REPOSITORY_NAME/commitsaf7bc0f7ce686147608256e1c5dd0a9d24388945))
+* setting the language does not overwrite the user setting anymore ([c6283ac](https://github.com/USERNAME/REPOSITORY_NAME/commitsc6283ac7205f69c1a42e8cf16e5f4f1ab2c239f8))
+* share button ([84cbd2f](https://github.com/USERNAME/REPOSITORY_NAME/commits84cbd2fbc00d3d9e386a3b485dd4fa61c8000722))
+* show add new point fullscreen again ([aad31f6](https://github.com/USERNAME/REPOSITORY_NAME/commitsaad31f649e733d108c63297aa6d25bf87ac73c34))
+* show preferred languages (according to OSM) in usersettings ([0ea103f](https://github.com/USERNAME/REPOSITORY_NAME/commits0ea103f24780ef2c6ba191cbd4891716bb2d86f6))
+* show tags that will be applied if setting is 'full' ([0b82661](https://github.com/USERNAME/REPOSITORY_NAME/commits0b826612e93c0b120f99b6927c57c13b60c2835f))
+* show tags that will be deleted with strikethrough in TagHint ([15a481f](https://github.com/USERNAME/REPOSITORY_NAME/commits15a481f864b4afb7b650fd150f0ce7d46c9d1e78))
+* size of new element picker map ([#1701](https://github.com/pietervdvn/MapComplete/issues/1701)), add debug info about GPS ([9407ed3](https://github.com/USERNAME/REPOSITORY_NAME/commits9407ed35b109660a9b23c2b71fd15f3ecf1dc0d0))
+* small bug in script ([795d6d2](https://github.com/USERNAME/REPOSITORY_NAME/commits795d6d2e072d13c1d64259ac8ff960d618c2deba))
+* small CSS fix ([1b8970b](https://github.com/USERNAME/REPOSITORY_NAME/commits1b8970b34aae337edfe5567315cc36319add1ff7))
+* SPDX-compliance ([6c4b464](https://github.com/USERNAME/REPOSITORY_NAME/commits6c4b464f14ed2851980da34e12df355cb8137ba7))
+* special loginbutton now actually works ([6a4def6](https://github.com/USERNAME/REPOSITORY_NAME/commits6a4def67ca97b55beb26445a0ddb713149527cc5))
+* stabilize change injector ([efdff63](https://github.com/USERNAME/REPOSITORY_NAME/commitsefdff6335f5075f74156b5b1258ae69ab058705b))
+* stabilize opening hours, make delete clickable again ([cc60d2a](https://github.com/USERNAME/REPOSITORY_NAME/commitscc60d2a5fbae3a14d63aa859fa02e2b09e1e48f9))
+* stabilize rendering of linelayers ([055e5a8](https://github.com/USERNAME/REPOSITORY_NAME/commits055e5a801b60276cdfcf31870fae29e6af30521b))
+* style issue, types ([5932dc7](https://github.com/USERNAME/REPOSITORY_NAME/commits5932dc7ad4b532c45d6e6bff95f46f6cb26645b2))
+* style of tabbedGroup-elements needed an 'important' to work in production ([5a2e54b](https://github.com/USERNAME/REPOSITORY_NAME/commits5a2e54b00a86b4ac0f91b69aa55ff3c36939e8ab))
+* style tweaks to link feature ([bd71645](https://github.com/USERNAME/REPOSITORY_NAME/commitsbd71645c04e819a28c355da5c898293092b51068))
+* styling issues; refactoring: remove 'SearchAndGo' ([0e81b65](https://github.com/USERNAME/REPOSITORY_NAME/commits0e81b653631a97699ba07ce5d34b61bc4422a5d1))
+* styling of OH input, fix [#1489](https://github.com/pietervdvn/MapComplete/issues/1489) ([064f875](https://github.com/USERNAME/REPOSITORY_NAME/commits064f87537f450e40b76d936d7793ea9036b2b181))
+* styling of PH-input in OpeningHoursInput, fix [#1422](https://github.com/pietervdvn/MapComplete/issues/1422) ([a9c25d3](https://github.com/USERNAME/REPOSITORY_NAME/commitsa9c25d378a709e3ac7b4a76919ae10cf405dacec))
+* substitute name ([408e782](https://github.com/USERNAME/REPOSITORY_NAME/commits408e7826269dc30d97f89e6e1fd097dae69b7923))
+* substituteKeys works correctly if newline is in the text, fix 'send email to report broken'-button by porting it to svelte ([b4f65bf](https://github.com/USERNAME/REPOSITORY_NAME/commitsb4f65bf2f7ce2a6993906076353acc11a1d64d94))
+* subtleLink should not open in a new tab ([61c417c](https://github.com/USERNAME/REPOSITORY_NAME/commits61c417c546e828dbed2356c35eebfe4cf2ef403d))
+* Support contact:email and contact:phone in icons ([7bcefe5](https://github.com/USERNAME/REPOSITORY_NAME/commits7bcefe527ce080b3f7b7c48fdd1a828289b126c3))
+* svg image generation script ([f9b1e9b](https://github.com/USERNAME/REPOSITORY_NAME/commitsf9b1e9b2de8f4aa657272d714385c1c7fbfdb3b3))
+* temporarily only warn for incomplete translations ([adb5d89](https://github.com/USERNAME/REPOSITORY_NAME/commitsadb5d892fb39cdf63ea65d95ef5079f0efed6324))
+* tests ([238de89](https://github.com/USERNAME/REPOSITORY_NAME/commits238de89ad54fd0c8c0d4bf75f49282d7921f21a2))
+* tests ([841be16](https://github.com/USERNAME/REPOSITORY_NAME/commits841be16dffd8219713a1bc00b9a8409195a8f82d))
+* tests ([1d54356](https://github.com/USERNAME/REPOSITORY_NAME/commits1d543563d702f6af424e1df041191632126ed805))
+* tests ([2a73c43](https://github.com/USERNAME/REPOSITORY_NAME/commits2a73c43a5fc652f7d91c8d89cf47d0ce8853ee62))
+* the search bar on the theme index was not clickable on wide screens as the 'centermessage' hovered over it invisibly ([af7672a](https://github.com/USERNAME/REPOSITORY_NAME/commitsaf7672a0e00de4e3d75a85678b4528093515fb7e))
+* theme compilation ([86d0de3](https://github.com/USERNAME/REPOSITORY_NAME/commits86d0de380644c92fe90f4dd87aa4399074fdc42e))
+* **themes:** remove 'unkown' mapping from hydrants, the unkown case is handled by MapComplete ([4850e50](https://github.com/USERNAME/REPOSITORY_NAME/commits4850e5094a49a16d3975795fd1f25a81f2e13a5a))
+* turn favourites black again, sync them globally ([14594b2](https://github.com/USERNAME/REPOSITORY_NAME/commits14594b286dd2278bc64ed27f0305b76596d7e190))
+* tweaking addNewPoint-flow ([d0e0abd](https://github.com/USERNAME/REPOSITORY_NAME/commitsd0e0abdece560799a9770b74d0992c42ebe89ed6))
+* typo ([929093d](https://github.com/USERNAME/REPOSITORY_NAME/commits929093d36f13ab1861d533f4d93152a7ddd1e6dc))
+* typo ([2671d01](https://github.com/USERNAME/REPOSITORY_NAME/commits2671d0158983c7befb9f5c8d3e91544a50408c6b))
+* typo ([752de10](https://github.com/USERNAME/REPOSITORY_NAME/commits752de107ab6a50f8e513b0c7307b44dc6094d974))
+* typo ([8531571](https://github.com/USERNAME/REPOSITORY_NAME/commits8531571c7be653339d752f953a8725d94eec692c))
+* typo ([de99f56](https://github.com/USERNAME/REPOSITORY_NAME/commitsde99f56ca8fe34e361a7c6345d147f8295293f57))
+* typo ([3a25106](https://github.com/USERNAME/REPOSITORY_NAME/commits3a25106a5ab7bd958cfe731d8e1e959b5b07b23e))
+* typo in charging_station.protojson ([21d01a4](https://github.com/USERNAME/REPOSITORY_NAME/commits21d01a46f9164a872145c03fe845233c6cd47f8b))
+* typo in elevator.json ([374a4eb](https://github.com/USERNAME/REPOSITORY_NAME/commits374a4eb22211ecfbe8a04569d89b8236f109b8ed))
+* typo in filter ([366577f](https://github.com/USERNAME/REPOSITORY_NAME/commits366577f70b40765b3e10ccae222193ca07cae4bb))
+* typo in tag ([a903112](https://github.com/USERNAME/REPOSITORY_NAME/commitsa9031129d3dddfdd0ab1d2d83d371b872a0d5180))
+* **typo:** s/bick_wal/brick_wall/ ([753efef](https://github.com/USERNAME/REPOSITORY_NAME/commits753efef38f1f1a4f731c0c66408c7adddb26a967))
+* undo accidental changes, fix saving preferences ([ff3a7f8](https://github.com/USERNAME/REPOSITORY_NAME/commitsff3a7f8f4372d46b0aba61aa12115da4207f2331))
+* units which used a 'string'-validator might not detect the actual denomination. They have now been forbidden and fixed ([7b497f9](https://github.com/USERNAME/REPOSITORY_NAME/commits7b497f991d788c991457f1167d472a77f2789cdc))
+* unselect layer, prevents that 'lastClick'-popup opens on map click ([63ffa11](https://github.com/USERNAME/REPOSITORY_NAME/commits63ffa11238766962cab6b1c8cedcd0153504d45e))
+* update and simplification of sharescreen, rename some feature switches, remove some no longer relevant feature switches ([96d0367](https://github.com/USERNAME/REPOSITORY_NAME/commits96d036781f55987732629355be118373c363830d))
+* upload flow deals better with point reuse: it actually opens the feature now ([c14cbc9](https://github.com/USERNAME/REPOSITORY_NAME/commitsc14cbc9fe95bf1d2432ea7290cae0d0f7a9b6ada))
+* uploads were broken ([efd6b30](https://github.com/USERNAME/REPOSITORY_NAME/commitsefd6b30e1b41024ee4b7c0f6cf69a49f87f5da69))
+* URL-parameter language disables the language picker, fix [#1506](https://github.com/pietervdvn/MapComplete/issues/1506) ([3ca8ba1](https://github.com/USERNAME/REPOSITORY_NAME/commits3ca8ba18fd6a1569214f5d6298eca291cb8ceefc))
+* URL-parameter language disables the language picker, fix [#1506](https://github.com/pietervdvn/MapComplete/issues/1506) ([2f5c89f](https://github.com/USERNAME/REPOSITORY_NAME/commits2f5c89f8c5a7aa7adbe83d1b9cf98e198f9f1aab))
+* use api.openstreetmap.org on many places, fix [#1573](https://github.com/pietervdvn/MapComplete/issues/1573) ([8fccf78](https://github.com/USERNAME/REPOSITORY_NAME/commits8fccf784786074e22a4d437dc8a38c58bf54c375))
+* use correct backend address (including www.) ([c320239](https://github.com/USERNAME/REPOSITORY_NAME/commitsc320239610f15083d1d050f17e337780621f7dc3))
+* use correct branch to deploy ([9c0dac2](https://github.com/USERNAME/REPOSITORY_NAME/commits9c0dac28ad0604026936cc68c5238927978b250a))
+* use correct relocation icon again ([cdb1bb2](https://github.com/USERNAME/REPOSITORY_NAME/commitscdb1bb23b8e5df8bd1f2e0732ff14f3bd55935f5))
+* use correct snapping ([ec2e0e1](https://github.com/USERNAME/REPOSITORY_NAME/commitsec2e0e1de168f9f4551f86ff73b070a6e4ccdd77))
+* use https for extractGraph endpoint ([f89123d](https://github.com/USERNAME/REPOSITORY_NAME/commitsf89123d318ebb24553b842884e0aad3b9adf6570))
+* use proper circle for bench and artwork ([e2a56f5](https://github.com/USERNAME/REPOSITORY_NAME/commitse2a56f5e5cc469c95974625f561a4a5229b5cb9a))
+* use proper selected element ([dbff953](https://github.com/USERNAME/REPOSITORY_NAME/commitsdbff95309642178dcccb4a0a365a263c722c5a96))
+* use theme.html?layout= instead of layout.html if a local deploy is detected ([db67600](https://github.com/USERNAME/REPOSITORY_NAME/commitsdb6760015f69239dc51cc47c866635927cd9dadf))
+* use translated value for community index tab ([a3a7c53](https://github.com/USERNAME/REPOSITORY_NAME/commitsa3a7c536fbce04698a05847da429d1bacc851aad))
+* use translated value for community index tab ([22ee806](https://github.com/USERNAME/REPOSITORY_NAME/commits22ee806090a8679ea2951d84af47e4de8314925c))
+* use www.openstreetmap.org again, it doesnt work ([580b58e](https://github.com/USERNAME/REPOSITORY_NAME/commits580b58e86a974432b068b073a047c22864621126))
+
+
+### Theme improvements
+
+* a few improvements to velopark ([e7a5712](https://github.com/USERNAME/REPOSITORY_NAME/commitse7a57125d797fdf3c31c66c1e0c54dfc5dc5a304))
+* active 'browse and link streetview' on all themes ([eb2a582](https://github.com/USERNAME/REPOSITORY_NAME/commitseb2a582d4910edda5e8dd76d229c0637bc5ac4a5))
+* Add 'access=permissive' to charging stations, fixes [#1255](https://github.com/pietervdvn/MapComplete/issues/1255) ([cc70e09](https://github.com/USERNAME/REPOSITORY_NAME/commitscc70e09e11f55c62276fe9fcc5cf4e9033ccc6f5))
+* add 'allowMove' everywhere, make 'allowMove' obligated, see [#2121](https://github.com/pietervdvn/MapComplete/issues/2121) ([29d52e0](https://github.com/USERNAME/REPOSITORY_NAME/commits29d52e0fc69f16477fbfd6f5c08900890626f0be))
+* add 'artwork' questions to drinking water fountains ([def640f](https://github.com/USERNAME/REPOSITORY_NAME/commitsdef640fb1c97c581e4688c8c0a50f4e295d9458b))
+* add 'binding'-service question to copyshops ([7b1ca43](https://github.com/USERNAME/REPOSITORY_NAME/commits7b1ca43266f596c9b9b40a3a86c0f5cf6d213a3e))
+* add 'fine-gravel' as option to sport-pitches ([679e371](https://github.com/USERNAME/REPOSITORY_NAME/commits679e371bd470976a41327494004054548e120401))
+* add 'hacklab' as option to hackerspaces ([665cd3b](https://github.com/USERNAME/REPOSITORY_NAME/commits665cd3b0dd3bd2ad91c601554417cfec0eec54a2))
+* add 'hoops' question to basketball pitches ([4df9632](https://github.com/USERNAME/REPOSITORY_NAME/commits4df9632d7c7093511b6e3b2349ee5d2fd99cb681))
+* add 'link' as builtin, available Icon ([7872f22](https://github.com/USERNAME/REPOSITORY_NAME/commits7872f221512797ee82ea1e92455326baaa9874ab))
+* add 'lock' and 'key' icon to toilets, fix [#2094](https://github.com/pietervdvn/MapComplete/issues/2094) ([577b596](https://github.com/USERNAME/REPOSITORY_NAME/commits577b596e7a8cdc2ea4cbd97c401422ee0ad06652))
+* Add 'open_now' filter to bike-shop ([aa6902a](https://github.com/USERNAME/REPOSITORY_NAME/commitsaa6902a25c4b27ef9424d0cdfb68a83f44ec7405))
+* add 'pedagogy', fix [#1839](https://github.com/pietervdvn/MapComplete/issues/1839) ([4644b6a](https://github.com/USERNAME/REPOSITORY_NAME/commits4644b6ae550fa53c042978317484f9a99eafe8c7))
+* add 'skateboard' as sport pitch option ([f20219c](https://github.com/USERNAME/REPOSITORY_NAME/commitsf20219cf37711b42e8bf1d4a4a1c0379d7d8df0e))
+* add 'website'-button which shows up by default if a website is known ([7c0d339](https://github.com/USERNAME/REPOSITORY_NAME/commits7c0d339976fb26a9fc9ab74a540c7d5b7d640f80))
+* add ALPR-cameras to surveillance theme ([d1e91ee](https://github.com/USERNAME/REPOSITORY_NAME/commitsd1e91ee2f98936871941e4b7cd035ee4f1e35bbd))
+* add ALPR-cameras to surveillance theme ([97236c8](https://github.com/USERNAME/REPOSITORY_NAME/commits97236c80a99686a1dc0c296bb4a730bc595884a5))
+* add animal types to animal_shelter, include animal_shelter in pets, generate licenses, fix cycle_highways.json ([3968a1e](https://github.com/USERNAME/REPOSITORY_NAME/commits3968a1e841cef10e5fac08b7a2c8e6b685a4f07c))
+* add animal_shelter, created by the studio ([c4d4a57](https://github.com/USERNAME/REPOSITORY_NAME/commitsc4d4a57a0804776c2eabb7cd7c11e269bac101d8))
+* add atm-option to postoffice, add postoffices to ATM theme, fix [#1551](https://github.com/pietervdvn/MapComplete/issues/1551) ([c4a9fa8](https://github.com/USERNAME/REPOSITORY_NAME/commitsc4a9fa81f23ec8a5dcc685b6c42b9e1208337818))
+* add baby icon to changing table question ([1b5a0a2](https://github.com/USERNAME/REPOSITORY_NAME/commits1b5a0a2a853237e9d51298f5e1b17c69afaafa71))
+* Add badminton fields to filters ([b60a3aa](https://github.com/USERNAME/REPOSITORY_NAME/commitsb60a3aa5684d58e9fec146b06fe2d2993eafd72e))
+* add before text on correct location ([6a2e372](https://github.com/USERNAME/REPOSITORY_NAME/commits6a2e3720622e404089c243dc1aa7e7ab282ba2f2))
+* add benches on playground theme ([54a9edc](https://github.com/USERNAME/REPOSITORY_NAME/commits54a9edc687667372d0097fb51efb7b904005c9de))
+* add bicycle self-repair workshops to the map (WIP) ([c11d7af](https://github.com/USERNAME/REPOSITORY_NAME/commitsc11d7af17531cf381ce03e37765c2e0f7efd1745))
+* add camp site ([cfa1c28](https://github.com/USERNAME/REPOSITORY_NAME/commitscfa1c28789d2056e6b8ad7483360a007c639d73c))
+* add cargo bike option to bicycle rental, fix [#2016](https://github.com/pietervdvn/MapComplete/issues/2016) ([b98aaff](https://github.com/USERNAME/REPOSITORY_NAME/commitsb98aaff8101255138c10704d2a02f9226b0fa7ec))
+* add charge to bike_parking ([ed96859](https://github.com/USERNAME/REPOSITORY_NAME/commitsed96859233a921cbfc61046106b9202d40bbde6c))
+* add compile time check for 'sameAs'-filters that the referenced layer actually exists ([e188b96](https://github.com/USERNAME/REPOSITORY_NAME/commitse188b9656122dd3f0a4cda55352bf81dad6dbc65))
+* add condition that hoops are only asked on basketball courts, fix [#1577](https://github.com/pietervdvn/MapComplete/issues/1577) ([fb6f7ee](https://github.com/USERNAME/REPOSITORY_NAME/commitsfb6f7ee191554816581c955cfdfbb1a932981c77))
+* add conveying as condition for stairs ([f95f631](https://github.com/USERNAME/REPOSITORY_NAME/commitsf95f631045e2a83424a6ac7ef3d607fcba18cc6f))
+* add correct title for cafe, nightclub and bar if no name is present, fix [#1704](https://github.com/pietervdvn/MapComplete/issues/1704) ([0129845](https://github.com/USERNAME/REPOSITORY_NAME/commits0129845d22f028b213af59e57014ce8962b76327))
+* add currency type which does some reformatting ([d40474d](https://github.com/USERNAME/REPOSITORY_NAME/commitsd40474d47e0b5ded963df2c4e76c6911de63dbca))
+* add currently open badge ([d9d330e](https://github.com/USERNAME/REPOSITORY_NAME/commitsd9d330e91221fac741120c7e2cb0b394d0871406))
+* add delete to banks ([68cada0](https://github.com/USERNAME/REPOSITORY_NAME/commits68cada0a0d8f7f57b2ed43eb459680764b2b3070))
+* add dog icon into title-icons, add dog filter, see [#212](https://github.com/pietervdvn/MapComplete/issues/212) ([7e0120d](https://github.com/USERNAME/REPOSITORY_NAME/commits7e0120d0e8948510db1eb0c17090900127dc8ed8))
+* add extra check so that in a mapping cannot override the , fix two such instances ([56ea116](https://github.com/USERNAME/REPOSITORY_NAME/commits56ea1163bb7c272cec717076da452ba069e82b3c))
+* add extra questions to 'map' layer based on custom theme ([10e0e27](https://github.com/USERNAME/REPOSITORY_NAME/commits10e0e277787f95e4da8b075edd308300dd6b0256))
+* add filter for vegetable oil to fritures theme ([721a930](https://github.com/USERNAME/REPOSITORY_NAME/commits721a930d76fcd4fedada4044f1c6b2c6802cd022))
+* add filters for 'wifi' and 'electricity' ([af2c6f4](https://github.com/USERNAME/REPOSITORY_NAME/commitsaf2c6f47829dd91e5fa0ac4dad2f23e18ebf1d3f))
+* add fine_gravel as option for playground surface ([d8be0ac](https://github.com/USERNAME/REPOSITORY_NAME/commitsd8be0acdfef8a0a7f349d152abadf3e394c0145f))
+* add first version of ski theme ([8f25006](https://github.com/USERNAME/REPOSITORY_NAME/commits8f250069988ea8e1b7f25e29db4e287200d354b8))
+* add guidepost layer ([da39dde](https://github.com/USERNAME/REPOSITORY_NAME/commitsda39dde7b699e576e79eb5781933146fa9747ace))
+* add guidepost layer ([a06e513](https://github.com/USERNAME/REPOSITORY_NAME/commitsa06e513c4f5a662e6d09908440f6b3394addf483))
+* add guidepost theme ([ad239b2](https://github.com/USERNAME/REPOSITORY_NAME/commitsad239b230fd57233f377266dd68b15011136bbaa))
+* add guideposts to climbing theme ([a96a214](https://github.com/USERNAME/REPOSITORY_NAME/commitsa96a214c03b3438f9ccf96f7c37a2e842ec224e1))
+* add hostel, cleanup of hotel ([d167fe7](https://github.com/USERNAME/REPOSITORY_NAME/commitsd167fe77232b502ccef4ee051c8d73f948100dd0))
+* add hostel, cleanup of hotel ([8e9ae05](https://github.com/USERNAME/REPOSITORY_NAME/commits8e9ae0529b95b8736ad6a2cabf9927a3a27e4c0c))
+* add ice cream parlors ([69a7c9e](https://github.com/USERNAME/REPOSITORY_NAME/commits69a7c9efa3eb29c32f0256b1a956e9846cdf5260))
+* add icons to access question in toilets ([2ba461d](https://github.com/USERNAME/REPOSITORY_NAME/commits2ba461d9578b515b23ff25a8a99d9a2b03779653))
+* add icons to question ([246b163](https://github.com/USERNAME/REPOSITORY_NAME/commits246b16317d93b8e2effe9b41f7ed8c362a61cff6))
+* add icons, add 'auto'-title-icons ([2c662c9](https://github.com/USERNAME/REPOSITORY_NAME/commits2c662c957860144a927260504ca30795f9249238))
+* Add internet questions to hackerspace, fix [#1856](https://github.com/pietervdvn/MapComplete/issues/1856) ([c870544](https://github.com/USERNAME/REPOSITORY_NAME/commitsc870544d857a1c0f3f13e04da78db1a00f5e5342))
+* add keycutting service tags ([d8ce6f0](https://github.com/USERNAME/REPOSITORY_NAME/commitsd8ce6f0da5887724778c03ea554add5fd5be16cd))
+* add label support to questions.json; add opening hours for hospitals ([41fdeb9](https://github.com/USERNAME/REPOSITORY_NAME/commits41fdeb9cb5c664ca604da1f89f2724c0de3b1304))
+* add maxstay for bicycle parkings ([a71ed5d](https://github.com/USERNAME/REPOSITORY_NAME/commitsa71ed5d53e0b238713cdd8741c7b05e9a9568c55))
+* add memorial layer, use 'subject' instead of 'name' for ghost bikes ([a57dbe0](https://github.com/USERNAME/REPOSITORY_NAME/commitsa57dbe09d60734785420c4502699fcb6d89c6033))
+* add memorials to artwork on high zoom ([29c5b88](https://github.com/USERNAME/REPOSITORY_NAME/commits29c5b884c404c14258dd116921990923c9a89181))
+* add metal as material option ([6420b90](https://github.com/USERNAME/REPOSITORY_NAME/commits6420b906e055f5572d093e18febdbe5dba325bce))
+* add minzoom to cafe_pub ([e2d3a71](https://github.com/USERNAME/REPOSITORY_NAME/commitse2d3a71c5b3a15b5a21db112baaf5a13dec55a3c))
+* add minzoom to ski_piste and aerialway, fix [#1876](https://github.com/pietervdvn/MapComplete/issues/1876) ([d7982bf](https://github.com/USERNAME/REPOSITORY_NAME/commitsd7982bfd3e92a863e33e9154b2c9c4044cdb4951))
+* add missing assets ([bc826be](https://github.com/USERNAME/REPOSITORY_NAME/commitsbc826bebed2c0f073da3163994be818d1c41c6f5))
+* Add more memorial types, add freeform option, fix [#1824](https://github.com/pietervdvn/MapComplete/issues/1824) ([b0d0436](https://github.com/USERNAME/REPOSITORY_NAME/commitsb0d0436ebe79a44c1bfc6880ecbef66f85e159be))
+* add more options for support in advertisement, add presets ([c26225c](https://github.com/USERNAME/REPOSITORY_NAME/commitsc26225ccf11987f8a2cbdf45820a2310428cf1c0))
+* add more questions about drinking water ([9fabab3](https://github.com/USERNAME/REPOSITORY_NAME/commits9fabab3588a7cdc3d04bcbae19b6868694bbc95f))
+* add mountain rescue stations to the ski map ([04509bc](https://github.com/USERNAME/REPOSITORY_NAME/commits04509bc3e7783f55e593679ddfba2263ecf7f3de))
+* add name and title to assembly_point and disaster_response layers ([f087012](https://github.com/USERNAME/REPOSITORY_NAME/commitsf08701211632b8f8f35597d908160f8460934e04))
+* add open love map, see https://github.com/thomersch/OpenLoveMap/issues/21 ([d6a55a5](https://github.com/USERNAME/REPOSITORY_NAME/commitsd6a55a5ee9ef03c0a813b0d95dffa42cb0b4955d))
+* add operator question to bicycle parking ([ea00c71](https://github.com/USERNAME/REPOSITORY_NAME/commitsea00c717de78c06ded81fae56be1a05b8e50ae37))
+* add OSM-carto again, fix [#1664](https://github.com/pietervdvn/MapComplete/issues/1664) ([376a683](https://github.com/USERNAME/REPOSITORY_NAME/commits376a683cce13921e644364c8342362f3a21b3ab3))
+* add paid as option, fix [#2119](https://github.com/pietervdvn/MapComplete/issues/2119) ([a4018d8](https://github.com/USERNAME/REPOSITORY_NAME/commitsa4018d88b0f187b907c68a49dcfb496c0259bb91))
+* add payment options and internet to climbing theme ([2337033](https://github.com/USERNAME/REPOSITORY_NAME/commits23370336e81fa865a62507bb6f4de5030ad48bb5))
+* add payment options and internet to climbing theme ([1abcc76](https://github.com/USERNAME/REPOSITORY_NAME/commits1abcc766f98f27298eb82e70ad7c09520adb8377))
+* add possibility to add an icon to 'render' (just like with mappings), add contact:mastodon support as general question, add mastodon question to hackerspaces ([03aafbe](https://github.com/USERNAME/REPOSITORY_NAME/commits03aafbe99c0d9f4fa5768d18e7bde093529ce93f))
+* add possibility to enable terrain, some fixes to overlaymap and pitch control ([e3dec8a](https://github.com/USERNAME/REPOSITORY_NAME/commitse3dec8aafada699be3cddfc86aeb63938036e5c5))
+* add proper 'image along way' possibility ([584fb3c](https://github.com/USERNAME/REPOSITORY_NAME/commits584fb3cb57e77ea4382fda152d8604ef8293f9b1))
+* add question wether climbing ropes can be hired ([6425ad6](https://github.com/USERNAME/REPOSITORY_NAME/commits6425ad67e6a053e1b6cbbb038e0c544c0f07f10b))
+* Add rubber;tartan surface to playgrounds, add checkdate to playgrounds, add tartan to sport pitches ([7859e7d](https://github.com/USERNAME/REPOSITORY_NAME/commits7859e7d06990666c1c40756795f993949abef434))
+* add shoe repair services to the climbing map, add question if a shoemaker also repairs climbing shoes, add craft=shoemaker to shops theme ([3df5727](https://github.com/USERNAME/REPOSITORY_NAME/commits3df5727f40a29d190394c71cf99896261f78474d))
+* add short description to velopark ([50e3c54](https://github.com/USERNAME/REPOSITORY_NAME/commits50e3c5483461cd085d3207fbd96f5b7fdfaebe57))
+* add smoking to food-layer, fix [#1874](https://github.com/pietervdvn/MapComplete/issues/1874) ([f5a94c7](https://github.com/USERNAME/REPOSITORY_NAME/commitsf5a94c7b5f24c1846681f75f8f79bc1d870574c0))
+* add some icons ([48df237](https://github.com/USERNAME/REPOSITORY_NAME/commits48df2379bf013006aad7e7bd68977e7a55a670d3))
+* add speed_camera to surveillance theme, see [#1913](https://github.com/pietervdvn/MapComplete/issues/1913) ([9716bc5](https://github.com/USERNAME/REPOSITORY_NAME/commits9716bc5425967aa81b4885bff4063d8c0eebfd18))
+* add Stamen Watercolor again, see [#1652](https://github.com/pietervdvn/MapComplete/issues/1652) ([d997c90](https://github.com/USERNAME/REPOSITORY_NAME/commitsd997c90352a0d70f2cd33108af4de16f58444868))
+* add statistics on used version ([1a7acc8](https://github.com/USERNAME/REPOSITORY_NAME/commits1a7acc80c1933894aa71bdd9cdfc6bd6985f5a40))
+* add sugar_free, gluten_free and lactose-free to shops- and food-layers ([b06784e](https://github.com/USERNAME/REPOSITORY_NAME/commitsb06784e7a06aaeb40a375210bc95538a73db9aed))
+* add support for operator:email, mostly for velopark ([1c45f09](https://github.com/USERNAME/REPOSITORY_NAME/commits1c45f0963219f3aa743b2ddf9840e2d152b0fae5))
+* add toilet questions into indoor theme ([8f93b0d](https://github.com/USERNAME/REPOSITORY_NAME/commits8f93b0d398aa16caa6e9167d96b02c7fc45182a4))
+* add validation check if a mapping does not erase another mapping completely ([556f6d0](https://github.com/USERNAME/REPOSITORY_NAME/commits556f6d0b93aa7774b703e80590d2df1601d293c4))
+* add validation for duplicate presets, fix [#1582](https://github.com/pietervdvn/MapComplete/issues/1582) ([2e8a331](https://github.com/USERNAME/REPOSITORY_NAME/commits2e8a3311e76c9065338ffce1388658269a05e261))
+* add various services to hackerspaces and makerspaces, add icons, some fixes to make this work with expandRewrite ([8ceda1c](https://github.com/USERNAME/REPOSITORY_NAME/commits8ceda1cc5f7e549ccecc65b6469a7195de1022cc))
+* add velopark import functionality ([4c5ebf0](https://github.com/USERNAME/REPOSITORY_NAME/commits4c5ebf05f5d818abd622bf9d8c8a96926e36ddd6))
+* add velopark theme ([1c1cea7](https://github.com/USERNAME/REPOSITORY_NAME/commits1c1cea7f033ea19c74a6efb958a69a3a729bad3c))
+* add warning if a tagRendering can be replaced by a direct value ([79e40d0](https://github.com/USERNAME/REPOSITORY_NAME/commits79e40d0fee2e40b32babc218a374095f6ca520a5))
+* add wikipedia page for "subject:wikidata" on ghost bikes, specifically for the ghost bike of #Natenom ([d74cb00](https://github.com/USERNAME/REPOSITORY_NAME/commitsd74cb00df4fc55ca00082326da138b580fa39cc7))
+* add year to units ([c8eef2c](https://github.com/USERNAME/REPOSITORY_NAME/commitsc8eef2c8f6866ded26276250d422bd4a97e5b08c))
+* **advertising:** add (animated!) flag and screen icons ([090130d](https://github.com/USERNAME/REPOSITORY_NAME/commits090130d596bb5ab7d337c7c96a55b38ef6181231))
+* **advertising:** boards are never animated ([b92e9b8](https://github.com/USERNAME/REPOSITORY_NAME/commitsb92e9b815da3e1b15c9859f6d4726bac09307b7b))
+* **advertising:** Fix typos ([9e02c89](https://github.com/USERNAME/REPOSITORY_NAME/commits9e02c89fd5da5c7ad4623ed205ef610e4462b2a7))
+* **advertising:** further refinements ([8127027](https://github.com/USERNAME/REPOSITORY_NAME/commits81270272518012cf2023be2888d2faa444ee012f))
+* **advertising:** further refinements ([59eabc5](https://github.com/USERNAME/REPOSITORY_NAME/commits59eabc5daaa675880e1b684c3d8b4d3f0c1139ac))
+* **advertising:** last icon ([3e72ba2](https://github.com/USERNAME/REPOSITORY_NAME/commits3e72ba2b464c819a09956fa22bb321ed68fe34a3))
+* **advertising:** more icons, reordering of the questions ([7fc0770](https://github.com/USERNAME/REPOSITORY_NAME/commits7fc0770488ba99ea2d7aab658933d6e22c62cb3e))
+* align iconbadge, fix [#1893](https://github.com/pietervdvn/MapComplete/issues/1893) ([ba098fc](https://github.com/USERNAME/REPOSITORY_NAME/commitsba098fc29ac4ea46b0ff19a918282b4f81fe8f10))
+* allow multiple internet access types ([786b850](https://github.com/USERNAME/REPOSITORY_NAME/commits786b850dbeff9a92f761e65cd01a0e948140f37d))
+* allow to add multiple changing table locations, see [#1756](https://github.com/pietervdvn/MapComplete/issues/1756) ([c62f7cc](https://github.com/USERNAME/REPOSITORY_NAME/commitsc62f7cce01da15ef3f123b95e08056ca5019b7c9))
+* allow to add pictures to a 'shelter' ([39c079d](https://github.com/USERNAME/REPOSITORY_NAME/commits39c079db45aaadf98bf651d66d6bd88dbbe04bb2))
+* Allow to delete tourism accomodation ([60eeab9](https://github.com/USERNAME/REPOSITORY_NAME/commits60eeab9aa79ab1a5fc65b7f5e6efb2ebb0b6e55e))
+* allow to have a non-number type together with a unit ([4ccfe3e](https://github.com/USERNAME/REPOSITORY_NAME/commits4ccfe3efe446b407be1ca53d4ad2c3ee6fdde0b4))
+* allow to move a shelter ([565dee8](https://github.com/USERNAME/REPOSITORY_NAME/commits565dee8854f605ea40570c0c82d225935e11dba0))
+* allow to move and delete pharmacies ([5e95bd9](https://github.com/USERNAME/REPOSITORY_NAME/commits5e95bd99a2dcf424acbcad85aa96a3a36bd612a8))
+* allow to move hydrants ([432f244](https://github.com/USERNAME/REPOSITORY_NAME/commits432f24456d75e131425f0f1fe0df15c448f593ef))
+* also ask about menstrual products for toilet_at_amenity ([ae7cc95](https://github.com/USERNAME/REPOSITORY_NAME/commitsae7cc95727bc33c6d67a2ef24d2a2e0c2e3c3214))
+* also show 'operator:website' and 'contact:website' as title icon if they are available ([8526f4e](https://github.com/USERNAME/REPOSITORY_NAME/commits8526f4e94140132c8abe880b93cbc45780f9686b))
+* automatically derive source from presets if no source is given ([0689758](https://github.com/USERNAME/REPOSITORY_NAME/commits06897588be3e56570b973c8db08fce1e13b29c7b))
+* automatically derive source from presets if no source is given ([8e18864](https://github.com/USERNAME/REPOSITORY_NAME/commits8e18864daa9d19c2d9ccc2eb6a8ee408e7038d5e))
+* bench.json: decrease minzoom ([5b33d88](https://github.com/USERNAME/REPOSITORY_NAME/commits5b33d88ffbff285849d7bf5896df8e8e2e547cef))
+* better support billboard on walls ([8816ad0](https://github.com/USERNAME/REPOSITORY_NAME/commits8816ad03ecaedfe248fff1b7b101a266a9a6f444))
+* better support billboard on walls ([0a1c90b](https://github.com/USERNAME/REPOSITORY_NAME/commits0a1c90be9e1515b2f708e0f672b0732c7356101b))
+* bicycle library: allow move, fix [#1768](https://github.com/pietervdvn/MapComplete/issues/1768) ([7ac84dd](https://github.com/USERNAME/REPOSITORY_NAME/commits7ac84dd675a68f47b6af0465e337561aa0dc9586))
+* bicycle parking: add lockers as options, add operator:website (velopark features) ([22721cd](https://github.com/USERNAME/REPOSITORY_NAME/commits22721cd3ef604255bc88d5be995d0f2d65e68a83))
+* change minzoom of second hand shops in circular economy ([0b2e878](https://github.com/USERNAME/REPOSITORY_NAME/commits0b2e878481e3cc32b7b37c8cdb28251daa1b02d7))
+* Change text type ([c9751a3](https://github.com/USERNAME/REPOSITORY_NAME/commitsc9751a3eb570f1865966fa3861fac5ff5c761f1a))
+* description is now a textarea ([0c1b5d1](https://github.com/USERNAME/REPOSITORY_NAME/commits0c1b5d1b6c0d12914845a19692670bd1931f532c))
+* disable 'direction'-indicator for surveillance theme as it breaks selection, fix [#1458](https://github.com/pietervdvn/MapComplete/issues/1458) ([9e15353](https://github.com/USERNAME/REPOSITORY_NAME/commits9e15353588009e39cf4a8bc2569748f40759609a))
+* disable 'disused' from delete config, delete less fast for shops but use softdeletion instead ([28e737e](https://github.com/USERNAME/REPOSITORY_NAME/commits28e737ed2eb6a3934fb650df9b1939a25f954d8c))
+* disable maxspeed and cycleway question for pedestrian roads ([e580f55](https://github.com/USERNAME/REPOSITORY_NAME/commitse580f553197165d611258b8c68ed9f9a66ca42c4))
+* don't count food for fritures ([98d441a](https://github.com/USERNAME/REPOSITORY_NAME/commits98d441a2602c360136db9f9cc883d2ef734137e5))
+* don't enforce 'allowMove' on unofficial themes ([5b45e42](https://github.com/USERNAME/REPOSITORY_NAME/commits5b45e427a0185e224446aeecfe99e87d6077379a))
+* don't inline text fields if they don't have text around them ([821ddcf](https://github.com/USERNAME/REPOSITORY_NAME/commits821ddcfaca11ca194b319bfa09f8b0a9fea01a41))
+* don't show 'mark as unknown' if this would break the source-filter ([76a9a2e](https://github.com/USERNAME/REPOSITORY_NAME/commits76a9a2ee23dcf61097d33fcbe556df7a46d9a395))
+* don't show favourite icon if not logged in ([b1d94b2](https://github.com/USERNAME/REPOSITORY_NAME/commitsb1d94b2121195a52ced59454b51844412b9018f3))
+* don't show opening_hours_state title icon if seasonal is set and the item is closed due to seasonal restrictions ([1748e98](https://github.com/USERNAME/REPOSITORY_NAME/commits1748e98bfc714e147c12b8fc233432412ed186c2))
+* don't use 'Yes' or 'No' as start ([f87e735](https://github.com/USERNAME/REPOSITORY_NAME/commitsf87e73596e65a12b7fb88456dfb21dcc1eb8a850))
+* elevators: first ask if there is speech output/tactile writing before asking the relative languages ([8acaafe](https://github.com/USERNAME/REPOSITORY_NAME/commits8acaafe307826ac682f25eaa0b188278ca4056fe))
+* enable 'guideposts' in nature theme ([94291de](https://github.com/USERNAME/REPOSITORY_NAME/commits94291de5a3451120b6abdb153ba57675949d3d5b))
+* enable 'speciality'-filter in doctors, decrease minzoom ([4090a74](https://github.com/USERNAME/REPOSITORY_NAME/commits4090a7493253e2b5513307d013d0a0061394aed6))
+* enable deletion of bike_cafes ([90c44cc](https://github.com/USERNAME/REPOSITORY_NAME/commits90c44cc8bdfb7b2447f1974ed94430e5b2fa3c6f))
+* enable download functionality by default ([5504d49](https://github.com/USERNAME/REPOSITORY_NAME/commits5504d49d595fee66f0c43f3efbf6f130634497be))
+* enable move on schools, tweak GRB for performance ([db98288](https://github.com/USERNAME/REPOSITORY_NAME/commitsdb982884a1eea2a6e37d67129256f9c6b192a841))
+* enable reviews for climbing areas and gyms ([2a3a78b](https://github.com/USERNAME/REPOSITORY_NAME/commits2a3a78bc69eea38a83378f02717bc9fdc1cd5414))
+* enable reviews on pharmacies-theme ([701f033](https://github.com/USERNAME/REPOSITORY_NAME/commits701f03397e0339cba98fc776f06b38ccb13511b2))
+* enable snapping for facade gardens ([da68d36](https://github.com/USERNAME/REPOSITORY_NAME/commitsda68d365feab19a94ea85b2a756e3336bfb8b127))
+* exclude 'advertising=no' from loading, fix [#1865](https://github.com/pietervdvn/MapComplete/issues/1865) ([eef9918](https://github.com/USERNAME/REPOSITORY_NAME/commitseef99186cfbc46b57a97d2df78c8ef9c69a4609b))
+* exclude route relations from "toilets=yes". There are a few route relations with 'toilets' and those choke up MapComplete ([139b014](https://github.com/USERNAME/REPOSITORY_NAME/commits139b014c6c1f34fff08210c1c4915ea79534086c))
+* explicitly set 'allowMove' for all layers, fix [#2121](https://github.com/pietervdvn/MapComplete/issues/2121) ([468b895](https://github.com/USERNAME/REPOSITORY_NAME/commits468b895302fff50bc68cbdf72998bc08590307d0))
+* extract layers from camperssite ([82e6b2a](https://github.com/USERNAME/REPOSITORY_NAME/commits82e6b2af9b564117ebb5714b8a795b759ebf528d))
+* extract layers from camperssite ([44f42ee](https://github.com/USERNAME/REPOSITORY_NAME/commits44f42ee2c946d3f37224ca41f603e9c907ed5214))
+* first version of circular economy theme ([592be68](https://github.com/USERNAME/REPOSITORY_NAME/commits592be68f09b06f22d45d5d5c274c91315d1613f7))
+* fix [#1362](https://github.com/pietervdvn/MapComplete/issues/1362) ([ff9ca5e](https://github.com/USERNAME/REPOSITORY_NAME/commitsff9ca5e5cd6abde6c578ae442fe0d06217015288))
+* fix [#1866](https://github.com/pietervdvn/MapComplete/issues/1866) ([1cf7119](https://github.com/USERNAME/REPOSITORY_NAME/commits1cf71197f51646cfceb4b58267cf1bdd2223e12f))
+* fix [#1910](https://github.com/pietervdvn/MapComplete/issues/1910) ([b484ea0](https://github.com/USERNAME/REPOSITORY_NAME/commitsb484ea005b6b91bad729b7b1923f71b8fc893870))
+* fix badge, fix [#1894](https://github.com/pietervdvn/MapComplete/issues/1894) ([a2279ac](https://github.com/USERNAME/REPOSITORY_NAME/commitsa2279ac28bfb1d5dbc0ac47c2762a9104e4e54c5))
+* fix calculated tags of climbing theme ([f800545](https://github.com/USERNAME/REPOSITORY_NAME/commitsf80054558fe8422c7c1dfa9e277bd772f157f436))
+* fix compilation ([c300d90](https://github.com/USERNAME/REPOSITORY_NAME/commitsc300d901284dfbf05c5044da46e12ec8ca4469d1))
+* fix conversion for legacy themes ([21c35fc](https://github.com/USERNAME/REPOSITORY_NAME/commits21c35fc2c56eea64d18ee0fc18d65b2cdb913c82))
+* fix cycle rental which dissappears ([efce134](https://github.com/USERNAME/REPOSITORY_NAME/commitsefce134a6cc90d4c3794cac91fc0a9da10fdd3b1))
+* fix cycle_highways ([61575a9](https://github.com/USERNAME/REPOSITORY_NAME/commits61575a9909d8c0206e45a8106ef369ef616f45d7))
+* fix icon for shops layer ([d9d8c0a](https://github.com/USERNAME/REPOSITORY_NAME/commitsd9d8c0ad1f0af64f6d08364a6c64f59b748f001a))
+* fix incorrect argument, might fix [#1881](https://github.com/pietervdvn/MapComplete/issues/1881) ([209cfe6](https://github.com/USERNAME/REPOSITORY_NAME/commits209cfe6b733b849e85854d7ab3eaf4987116226f))
+* fix internet question ([b132590](https://github.com/USERNAME/REPOSITORY_NAME/commitsb13259083a8d7c3b42e4df618b88de06b00f1041))
+* fix overrides, fix [#1705](https://github.com/pietervdvn/MapComplete/issues/1705) ([3334bfb](https://github.com/USERNAME/REPOSITORY_NAME/commits3334bfb8cae9a2c326764e7375829769ac96c400))
+* fix rendering of charging station ([0c52051](https://github.com/USERNAME/REPOSITORY_NAME/commits0c5205136b1a18ee91df65de52e9e60f2036d3b7))
+* fix some isCounted-typos ([20a462f](https://github.com/USERNAME/REPOSITORY_NAME/commits20a462fdf5683587e50b42171c109e87eb193422))
+* fix titles and names for assembly points and disaster_response ([170c459](https://github.com/USERNAME/REPOSITORY_NAME/commits170c4592d13929810f6e822592cd1e2d1e83a1ac))
+* fix typo in soft-deletion tag ([5f62712](https://github.com/USERNAME/REPOSITORY_NAME/commits5f627124e98e98f25e9e5a834f56e906237e0241))
+* fix validation errors due to [#1779](https://github.com/pietervdvn/MapComplete/issues/1779) ([707d996](https://github.com/USERNAME/REPOSITORY_NAME/commits707d99619d7b5fa90891e93d5641f52715f04beb))
+* fix: don't show irrelevant 'multilevel'-question anymore ([b5fca68](https://github.com/USERNAME/REPOSITORY_NAME/commitsb5fca68a82d529bd10f56ba0dd63d27ae11ea2a5))
+* ghost signs: add wall-based artworks to be able to mark them as ghost sign and to avoid duplicates ([e68edeb](https://github.com/USERNAME/REPOSITORY_NAME/commitse68edeb29fa604daee0c7638999bcebab2fd7b11))
+* ghost signs: add wall-based artworks to be able to mark them as ghost sign and to avoid duplicates ([8f95e85](https://github.com/USERNAME/REPOSITORY_NAME/commits8f95e8520a751ef9fef8cc7a8810322117c7b6c1))
+* hackerspaces: more workshop types ([70fa180](https://github.com/USERNAME/REPOSITORY_NAME/commits70fa180b6a1e1a0db4e54f623797c05847b7face))
+* Hide bike cleaning cost if we don't know if there is a bike cleaning service ([87aee9e](https://github.com/USERNAME/REPOSITORY_NAME/commits87aee9e2b72013e387fd3c196a9940bf477743c8))
+* improve 'auto-type' special visualisation ([658db35](https://github.com/USERNAME/REPOSITORY_NAME/commits658db3561722ec5d220043969ed1154c9e7411af))
+* improve 'tourism-accomodation', add many more categories as some people are using 'hotels' to also add other categories (see https://wiki.openstreetmap.org/wiki/Organised_Editing/Activities/Trziste_prace) ([53ffa06](https://github.com/USERNAME/REPOSITORY_NAME/commits53ffa06a49a670ff23e605595aea7919c84f20b5))
+* improve 'tourism-accomodation', add many more categories as some people are using 'hotels' to also add other categories (see https://wiki.openstreetmap.org/wiki/Organised_Editing/Activities/Trziste_prace) ([bc54f79](https://github.com/USERNAME/REPOSITORY_NAME/commitsbc54f797d792ebeac4b043612df9682a1a4c79c6))
+* improve ability of 'rewrite' config ([f015604](https://github.com/USERNAME/REPOSITORY_NAME/commitsf015604000e09b81625d8dc5617e7c999b27fc74))
+* improve advertising theme, see [#1866](https://github.com/pietervdvn/MapComplete/issues/1866), translation reset for new presets ([05bba07](https://github.com/USERNAME/REPOSITORY_NAME/commits05bba071dc44897fe795974a39d472159cbaadd4))
+* improve atm opening hours, add reviews to playgrounds ([9ce60b6](https://github.com/USERNAME/REPOSITORY_NAME/commits9ce60b6ffb175803fde11b9116a0e1390ade766c))
+* improve benches ([9e10bf4](https://github.com/USERNAME/REPOSITORY_NAME/commits9e10bf421f9bcd1cadec10638eb520132c647c64))
+* improve error messages ([6897b88](https://github.com/USERNAME/REPOSITORY_NAME/commits6897b888170399db9a5d4e649d89dee2f9d0b30f))
+* improve favourite panel ([59090fd](https://github.com/USERNAME/REPOSITORY_NAME/commits59090fdb39a864b7d8b64a26fe35e98eacfa2121))
+* improve information about indoor rooms ([47bf119](https://github.com/USERNAME/REPOSITORY_NAME/commits47bf1195bcc198446c35b31ebd7d446efde7dd9d))
+* improve velopark usability ([c1003f8](https://github.com/USERNAME/REPOSITORY_NAME/commitsc1003f8fe79c4a2ce820d9764b51a4a25b6e7bbd))
+* improvements to BBQ, different icons, add some questions, remove 'unknown'-options ([2db0b1a](https://github.com/USERNAME/REPOSITORY_NAME/commits2db0b1afcbbf7c8d8e6174080a1e62295c223e87))
+* improvements to memorial theme ([59f56bd](https://github.com/USERNAME/REPOSITORY_NAME/commits59f56bd251c2523cb81ca07c74f9107c70560869))
+* include love hotels in regular hotels theme (with a high minzoom) ([d48b8af](https://github.com/USERNAME/REPOSITORY_NAME/commitsd48b8aff922e3478a62ecc3e92f92b750e8eef8f))
+* lint layers to use an array instead of a string for 'snapToLayers' ([d534842](https://github.com/USERNAME/REPOSITORY_NAME/commitsd534842d050f046ac5187ff8386c9edf052cdd23))
+* make filters of public bookcase translatable ([7b3d07e](https://github.com/USERNAME/REPOSITORY_NAME/commits7b3d07e5c489c0d139543cb7e5481e522b435b12))
+* make the selected note pulsate and have a different border when selected ([83fc189](https://github.com/USERNAME/REPOSITORY_NAME/commits83fc189fd332c0df2dc719a7ba676f3fad7cca32))
+* more questions about climbing services ([3769bd1](https://github.com/USERNAME/REPOSITORY_NAME/commits3769bd1c4fc7976d8d980f049ca6a3ecbc8710f1))
+* move all bike_shop questions into shops, reuse shops layer instead ([3c16e3d](https://github.com/USERNAME/REPOSITORY_NAME/commits3c16e3de686a903c1807d7a3a1397c6f350c8476))
+* move some bicycle shop questions into the shops-layer so that those questions are asked there as well (and that both layers can be unified) ([6cd7828](https://github.com/USERNAME/REPOSITORY_NAME/commits6cd7828ed3576dd8abf36c24032f9ec1d4966684))
+* move tagRenderings+ above leftover-questions ([f2f041f](https://github.com/USERNAME/REPOSITORY_NAME/commitsf2f041f9d0bfb557588ccd90b1d710498aa8edc0))
+* only add rating-title-icon if 'review_list()' is used in the layer ([6c75553](https://github.com/USERNAME/REPOSITORY_NAME/commits6c75553f3fec7642c7bbb75d999781126a344065))
+* phone validation now knows about some short-codes ([38b9523](https://github.com/USERNAME/REPOSITORY_NAME/commits38b9523b835b72bfe9f068b55015d8f7868951c9))
+* pin more markers to new icon ([04ee3dc](https://github.com/USERNAME/REPOSITORY_NAME/commits04ee3dc32c7b1e8c6690a91624530309df65e813))
+* properly show the name of the hospital ([9739973](https://github.com/USERNAME/REPOSITORY_NAME/commits9739973f2e9e1c98e0ae6ea58f55bf8588a9de14))
+* re-enable terrain ([94bc6ee](https://github.com/USERNAME/REPOSITORY_NAME/commits94bc6ee31d36c56c31090ea07c7f2baecff99eb1))
+* remove obsolete fields from drinking water theme ([66cc615](https://github.com/USERNAME/REPOSITORY_NAME/commits66cc615805246100634aaccd8426c59eec5c03ce))
+* remove obsolete SOTM-events, fix [#1909](https://github.com/pietervdvn/MapComplete/issues/1909) ([5659dd8](https://github.com/USERNAME/REPOSITORY_NAME/commits5659dd8e8c2a1fbf596cf9fa2e3cb56ed2d95349))
+* remove unneeded invalidValues ([4fe0c41](https://github.com/USERNAME/REPOSITORY_NAME/commits4fe0c41628ae0a9dc6985a10bb396ea96534dde9))
+* show capacity:cargo_bike, allow to erase it ([58dfb93](https://github.com/USERNAME/REPOSITORY_NAME/commits58dfb93818e6f737b93c406b25bf4eb3c0572d7c))
+* show keycutting service question ([5bcc617](https://github.com/USERNAME/REPOSITORY_NAME/commits5bcc617d22ce6596f48f8e68a21910cd744c4682))
+* show maproulette marker in linking menu ([e327d38](https://github.com/USERNAME/REPOSITORY_NAME/commitse327d385d126864bb5e3ba17e3f3b2ff2fd7b5ae))
+* show maproulette marker in linking menu ([ac6fdde](https://github.com/USERNAME/REPOSITORY_NAME/commitsac6fdde785ddf11b833501ac3de6c4a9bf84201d))
+* show maproulette marker in linking menu ([8a4e2d8](https://github.com/USERNAME/REPOSITORY_NAME/commits8a4e2d8cb56c28b38ac03262dbfd76f874d3f2ef))
+* show toilets only from zoomlevel >= 15 ([6760897](https://github.com/USERNAME/REPOSITORY_NAME/commits6760897a6f6427755b63c8cc7da37b9d39279083))
+* small tweaks to fitness stations ([3f4410f](https://github.com/USERNAME/REPOSITORY_NAME/commits3f4410ff19e71c02e59df5fbe1ef77bcb2a53224))
+* tweak zoomlevels ([303d3a0](https://github.com/USERNAME/REPOSITORY_NAME/commits303d3a0337afc388ed2158ab008a8a17684c6530))
+* Update climbing_route.json: add snap to layer ([193b8b4](https://github.com/USERNAME/REPOSITORY_NAME/commits193b8b4672405abe0e54d3143c9faec88733e450))
+* Update climbing.json: add layers ([bb9b1df](https://github.com/USERNAME/REPOSITORY_NAME/commitsbb9b1df4e0b26fff0a0e2e513b544c910f046f86))
+* update some default background layers ([a855840](https://github.com/USERNAME/REPOSITORY_NAME/commitsa85584040d436012e3c68fe85e54e490529388db))
+* update tagging of climbing shoe repair ([d1aa751](https://github.com/USERNAME/REPOSITORY_NAME/commitsd1aa751e1831cd1090ea5a738462b052fad2a4d9))
+* Update velopark description ([9083e89](https://github.com/USERNAME/REPOSITORY_NAME/commits9083e8954971ad4bed1914bc7cd5c30397b23895))
+* validate that a background layer actually exists, fix current-view button (GRB) ([fc483ed](https://github.com/USERNAME/REPOSITORY_NAME/commitsfc483ed54776ed78efb9d9f4b2b868ac85a0e6b3))
+* validate that a background layer actually exists, fix current-view button (GRB) ([eb6194b](https://github.com/USERNAME/REPOSITORY_NAME/commitseb6194bf8f1752a7ef80583d8b878f75c146c7f8))
+* various fixes to velopark, see [#1783](https://github.com/pietervdvn/MapComplete/issues/1783) ([2583fee](https://github.com/USERNAME/REPOSITORY_NAME/commits2583feef65e18f786253c93123e22d111e992ccf))
+* various improvements ([d4895a0](https://github.com/USERNAME/REPOSITORY_NAME/commitsd4895a098916183cef47f5dc79d1870b99472be3))
+* velopark: reorder attributes for a clearer view ([0929b55](https://github.com/USERNAME/REPOSITORY_NAME/commits0929b55b0807eb8cd9dea188d03339facf1113ce))
+* vending machines: add meat as option, add operator phone number, add 'condom' icon, fix [#1584](https://github.com/pietervdvn/MapComplete/issues/1584) ([86d0e5d](https://github.com/USERNAME/REPOSITORY_NAME/commits86d0e5dc745805772f248d67eddfec88095657a6))
+
+### [0.46.6](https://github.com/USERNAME/REPOSITORY_NAME/compare/v0.46.7...v0.46.6) (2024-09-13)
+
+### [0.46.7](https://github.com/USERNAME/REPOSITORY_NAME/compare/v0.46.6...v0.46.7) (2024-09-13)
diff --git a/assets/layers/bike_parking/license_info.json b/assets/layers/bike_parking/license_info.json
index cc2ca156f..d85d10d04 100644
--- a/assets/layers/bike_parking/license_info.json
+++ b/assets/layers/bike_parking/license_info.json
@@ -43,6 +43,14 @@
"https://osoc.be/editions/2020/walk-by-brussels"
]
},
+ {
+ "path": "safe_loops.svg",
+ "license": "CC-BY-SA-4.0",
+ "authors": [
+ "Robbert Gurdeep Singh"
+ ],
+ "sources": []
+ },
{
"path": "shed.svg",
"license": "CC-BY-SA-4.0",
@@ -82,13 +90,5 @@
"sources": [
"https://osoc.be/editions/2020/walk-by-brussels"
]
- },
- {
- "path": "safe_loops.svg",
- "license": "CC-BY-SA",
- "authors": [
- "Robbert Gurdeep Singh"
- ],
- "sources": [ ]
}
-]
+]
\ No newline at end of file
diff --git a/assets/layers/bike_parking/safe_loops.svg b/assets/layers/bike_parking/safe_loops.svg
index 59b01a7eb..eefc4b1d8 100644
--- a/assets/layers/bike_parking/safe_loops.svg
+++ b/assets/layers/bike_parking/safe_loops.svg
@@ -1,2 +1,2 @@
-
+
diff --git a/assets/layers/bike_parking/safe_loops.svg.license b/assets/layers/bike_parking/safe_loops.svg.license
new file mode 100644
index 000000000..d86702a3a
--- /dev/null
+++ b/assets/layers/bike_parking/safe_loops.svg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Robbert Gurdeep Singh
+SPDX-License-Identifier: CC-BY-SA-4.0
\ No newline at end of file
diff --git a/assets/layers/food/food.json b/assets/layers/food/food.json
index 56e5e6c8d..c3d5f1d4b 100644
--- a/assets/layers/food/food.json
+++ b/assets/layers/food/food.json
@@ -344,34 +344,34 @@
"if": "cuisine=pizza",
"icon": "🍕",
"then": {
- "en": "This is a pizzeria",
- "nl": "Dit is een pizzeria",
- "de": "Dies ist eine Pizzeria",
- "es": "Esto es una pizzería",
- "fr": "C'est une pizzéria",
- "ca": "Això és una pizzeria",
- "pl": "To jest pizzeria",
- "cs": "Tohle je pizzerie"
+ "en": "Pizzeria",
+ "nl": "Pizzeria",
+ "de": "Pizzeria",
+ "es": "Pizzería",
+ "fr": "Pizzéria",
+ "ca": "Pizzeria",
+ "pl": "Pizzeria",
+ "cs": "Pizzerie"
}
},
{
"if": "cuisine=friture",
"icon": "🍟",
"then": {
- "en": "This is a friture",
- "nl": "Dit is een frituur",
- "de": "Dies ist eine Pommesbude",
- "fr": "C'est une friterie",
- "ca": "Això és una fregiduria",
- "cs": "Tohle je hranolkárna"
+ "en": "Friture",
+ "nl": "Frituur",
+ "de": "Pommesbude",
+ "fr": "Friterie",
+ "ca": "Fregiduria",
+ "cs": "Hranolkárna"
}
},
{
"if": "cuisine=pasta",
"icon": "🍝",
"then": {
- "en": "Mainly serves pasta",
- "nl": "Dit is een pastazaak",
+ "en": "Serves mainly pasta",
+ "nl": "Pastazaak",
"de": "Bietet vorwiegend Pastagerichte an",
"es": "Principalmente sirve pasta",
"fr": "Restaurant Italien",
@@ -384,11 +384,11 @@
"if": "cuisine=kebab",
"icon": "🥙",
"then": {
- "en": "This is kebab shop",
- "nl": "Dit is een kebabzaak",
- "de": "Das ist ein Dönerladen",
- "es": "Esta es una tienda de kebak",
- "fr": "C'est un resto kebab",
+ "en": "Kebab shop",
+ "nl": "Kebabzaak",
+ "de": "Dönerladen",
+ "es": "Tienda de kebak",
+ "fr": "Resto kebab",
"pl": "To jest stoisko z kebabem",
"ca": "Aquesta és una botiga de kebabs",
"cs": "Tohle je kebab"
@@ -398,11 +398,11 @@
"if": "cuisine=sandwich",
"icon": "🥪",
"then": {
- "en": "This is a sandwich shop",
- "nl": "Dit is een broodjeszaak",
- "de": "Dies ist ein Sandwichladen",
- "fr": "C'est une sandwicherie",
- "ca": "Això és una botiga d'entrepans",
+ "en": "Sandwich shop",
+ "nl": "Broodjeszaak",
+ "de": "Sandwichladen",
+ "fr": "Sandwicherie",
+ "ca": "Botiga d'entrepans",
"cs": "Toto je obchod se sendviči"
}
},
@@ -410,10 +410,9 @@
"if": "cuisine=burger",
"icon": "🍔",
"then": {
- "en": "Burgers are served here",
- "nl": "Dit is een hamburgerrestaurant",
- "de": "Hier werden Burger serviert",
- "es": "Aquí se sirven hamburguesas",
+ "en": "Burgersrestaurant",
+ "nl": "Hamburgerrestaurant",
+ "es": "Hamburguesas",
"fr": "Des hamburgers sont servis ici",
"ca": "Aquí es serveixen hamburgueses",
"pl": "Są tu podawane burgery",
@@ -424,8 +423,8 @@
"if": "cuisine=sushi",
"icon": "🍣",
"then": {
- "en": "Sushi is served here",
- "nl": "Dit is een sushirestaurant",
+ "en": "Sushi restaurant",
+ "nl": "Sushirestaurant",
"de": "Hier wird Sushi serviert",
"es": "Aquí se sirve sushi",
"fr": "Des sushis sont servis ici",
@@ -437,8 +436,8 @@
"if": "cuisine=coffee",
"icon": "☕",
"then": {
- "en": "Coffee is served here",
- "nl": "Dit is een koffiezaak",
+ "en": "Coffeebar",
+ "nl": "Koffiezaak",
"de": "Hier wird Kaffee serviert",
"es": "Aquí se sirve café",
"fr": "C'est un café",
@@ -450,8 +449,8 @@
"if": "cuisine=italian",
"icon": "🇮🇹",
"then": {
- "en": "This is an Italian restaurant (which serves more than pasta and pizza)",
- "nl": "Dit is een Italiaans restaurant (dat meer dan enkel pasta of pizza verkoopt)",
+ "en": "Italian restaurant (which serves more than pasta and pizza)",
+ "nl": "Italiaans restaurant (dat meer dan enkel pasta of pizza verkoopt)",
"de": "Dies ist ein italienisches Restaurant (das mehr als nur Pasta und Pizza serviert)",
"es": "Este es un restaurante italiano (que sirve algo más que pasta y pizza)",
"fr": "C'est un Restaurant Italien (qui sert plus que des pâtes et des pizzas)",
@@ -463,8 +462,8 @@
"if": "cuisine=french",
"icon": "🇫🇷",
"then": {
- "en": "French dishes are served here",
- "nl": "Dit is een Frans restaurant",
+ "en": "French restaurant",
+ "nl": "Frans restaurant",
"de": "Hier werden französische Gerichte serviert",
"es": "Aquí se sirven platos Franceses",
"fr": "Des plats français sont servis ici",
@@ -476,8 +475,8 @@
"if": "cuisine=chinese",
"icon": "🇨🇳",
"then": {
- "en": "Chinese dishes are served here",
- "nl": "Dit is een Chinees restaurant",
+ "en": "Chinese",
+ "nl": "Chinees restaurant",
"de": "Hier werden chinesische Gerichte serviert",
"es": "Aquí se sirven platos Chinos",
"fr": "Des plats chinois sont servis ici",
@@ -489,8 +488,8 @@
"if": "cuisine=greek",
"icon": "🇬🇷",
"then": {
- "en": "Greek dishes are served here",
- "nl": "Dit is een Grieks restaurant",
+ "en": "Greek",
+ "nl": "Grieks restaurant",
"de": "Hier werden griechische Gerichte serviert",
"es": "Aquí se sirven platos Griegos",
"fr": "Des plats grecs sont servis ici",
@@ -502,8 +501,8 @@
"if": "cuisine=indian",
"icon": "🇮🇳",
"then": {
- "en": "Indian dishes are served here",
- "nl": "Dit is een Indisch restaurant",
+ "en": "Indian",
+ "nl": "Indisch restaurant",
"de": "Hier werden indische Gerichte serviert",
"es": "Aquí se sirven platos Indios",
"fr": "Des plats indiens sont servis ici",
@@ -515,8 +514,8 @@
"if": "cuisine=turkish",
"icon": "🇹🇷",
"then": {
- "en": "Turkish dishes are served here",
- "nl": "Dit is een Turks restaurant (dat meer dan enkel kebab verkoopt)",
+ "en": "Turkish restaurant",
+ "nl": "Turks restaurant",
"de": "Hier werden türkische Gerichte serviert",
"es": "Aquí se sirven platos Turcos",
"fr": "Des plats turcs sont servis ici",
@@ -528,8 +527,8 @@
"if": "cuisine=thai",
"icon": "🇹🇭",
"then": {
- "en": "Thai dishes are served here",
- "nl": "Dit is een Thaïs restaurant",
+ "en": "Thai restaurant",
+ "nl": "Thaïs restaurant",
"de": "Hier werden thailändische Gerichte serviert",
"fr": "Des plats thaïlandais sont servis ici",
"ca": "Aquí es serveixen plats tailandesos",
diff --git a/assets/layers/geocoded_image/geocoded_image.json b/assets/layers/geocoded_image/geocoded_image.json
new file mode 100644
index 000000000..c5a9d8b13
--- /dev/null
+++ b/assets/layers/geocoded_image/geocoded_image.json
@@ -0,0 +1,70 @@
+{
+ "id": "geocoded_image",
+ "source": "special",
+ "name": null,
+ "tagRenderings": [],
+ "pointRendering": [
+ {
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "marker": [
+ {
+ "icon": "direction_gradient",
+ "color": {
+ "render": "#44cc22",
+ "mappings": [
+ {
+ "if": "selected=yes",
+ "then": "#cccc22"
+ }
+ ]
+ }
+ }
+ ],
+ "rotation": "{rotation}deg",
+ "rotationAlignment": "map",
+ "pitchAlignment": "map",
+ "iconSize": "60,60"
+ },
+ {
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "rotationAlignment": "map",
+ "pitchAlignment": "map",
+ "marker": [
+ {
+ "icon": "circle",
+ "color": {
+ "render": "#44cc22",
+ "mappings": [
+ {
+ "if": "selected=yes",
+ "then": "#cccc22"
+ }
+ ]
+ }
+ }
+ ],
+ "iconSize": "14,14"
+ },
+ {
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "rotationAlignment": "map",
+ "pitchAlignment": "map",
+ "marker": [
+ {
+ "icon": "ring",
+ "color": "#000"
+ }
+ ],
+ "iconSize": "14,14"
+ }
+ ]
+}
diff --git a/assets/layers/note/note.json b/assets/layers/note/note.json
index 146bbc17f..be307958b 100644
--- a/assets/layers/note/note.json
+++ b/assets/layers/note/note.json
@@ -13,18 +13,21 @@
"source": {
"osmTags": "date_created~*",
"geoJson": "https://api.openstreetmap.org/api/0.6/notes.json?limit=10000&closed=7&bbox={x_min},{y_min},{x_max},{y_max}",
- "geoJsonZoomLevel": 12
+ "geoJsonZoomLevel": 10
},
"calculatedTags": [
"_total_comments:=get(feat)('comments').length",
"_first_comment:=get(feat)('comments')[0].text",
+ "_all_comments:=get(feat)('comments').map(c => c.text ?? '').join('\\n')",
+ "_all_usernames:=get(feat)('comments').map(c => c.user ?? 'Anonymous').join('\\n')",
"_opened_by_anonymous_user:=get(feat)('comments')[0].user === undefined",
"_first_user:=get(feat)('comments')[0].user",
"_last_user:=(() => {const comms = get(feat)('comments'); return comms[comms.length - 1].user})()",
+ "_last_change_date:=(() => {const comms = get(feat)('comments'); return comms[comms.length - 1].date})()",
"_first_user_id:=get(feat)('comments')[0].uid",
"_is_import_note:=(() => {const lines = feat.properties['_first_comment'].split('\\n'); const matchesMapCompleteURL = lines.map(l => l.match(\".*https://mapcomplete.\\(osm.be|org\\)/\\([a-zA-Z_-]+\\)\\(.html\\).*#import\")); const matchedIndexes = matchesMapCompleteURL.map((doesMatch, i) => [doesMatch !== null, i]).filter(v => v[0]).map(v => v[1]); return matchedIndexes[0] })()"
],
- "minzoom": 10,
+ "minzoom": 7,
"title": {
"render": {
"en": "Note",
@@ -158,183 +161,6 @@
}
],
"filter": [
- {
- "id": "search",
- "options": [
- {
- "osmTags": "_first_comment~i~.*{search}.*",
- "fields": [
- {
- "name": "search"
- }
- ],
- "question": {
- "en": "Should mention {search} in the first comment",
- "nl": "Moet in de eerste opmerking \"{search}\" bevatten",
- "de": "Sollte {search} im ersten Kommentar erwähnen",
- "es": "Debe mencionar {search} en el primer comentario",
- "ca": "Has de mencionar {search} en el primer comentari",
- "cs": "Měl by se zmínit {search} v prvním komentáři"
- }
- }
- ]
- },
- {
- "id": "not",
- "options": [
- {
- "osmTags": "_first_comment!~i~.*{search}.*",
- "fields": [
- {
- "name": "search"
- }
- ],
- "question": {
- "en": "Should not mention {search} in the first comment",
- "nl": "Mag in de eerste opmerking niet \"{search}\" bevatten",
- "de": "Sollte nicht {search} im ersten Kommentar erwähnen",
- "es": "No debe mencionar {search} en el primer comentario",
- "ca": "No s'ha de mencionar {search} al primer comentari",
- "cs": "V prvním komentáři by jste neměli zmiňovat {search}"
- }
- }
- ]
- },
- {
- "id": "opened_by",
- "options": [
- {
- "osmTags": "_first_user~i~.*{search}.*",
- "fields": [
- {
- "name": "search"
- }
- ],
- "question": {
- "en": "Opened by contributor {search}",
- "nl": "Geopend door bijdrager {search}",
- "de": "Erstellt von {search}",
- "es": "Abierto por el contributor {search}",
- "fr": "Ouverte par {search}",
- "ca": "Obert pel contribuïdor {search}",
- "cs": "Otevřeno přispěvatelem {search}"
- }
- }
- ]
- },
- {
- "id": "not_opened_by",
- "options": [
- {
- "osmTags": "_first_user!~i~.*{search}.*",
- "fields": [
- {
- "name": "search"
- }
- ],
- "question": {
- "en": "Not opened by contributor {search}",
- "nl": "Niet geopend door bijdrager {search}",
- "de": "Nicht erstellt von {search}",
- "es": "No abierto por el contributor {search}",
- "ca": "No obert pel contribuïdor {search}",
- "cs": "Není otevřeno přispěvatelem {search}",
- "fr": "Exclureles notes ouvertes par {search}"
- }
- }
- ]
- },
- {
- "id": "edited_by",
- "options": [
- {
- "osmTags": "_last_user~i~.*{search}.*",
- "fields": [
- {
- "name": "search"
- }
- ],
- "question": {
- "en": "Last edited by contributor {search}",
- "nl": "Laatst bewerkt door bijdrager {search}",
- "de": "Zuletzt bearbeitet von {search}",
- "es": "Editada por última vez por el contributor {search}",
- "ca": "Editat per última vega pel contribuïdor {search}",
- "cs": "Naposledy upravil přispěvatel {search}",
- "da": "Senest redigeret af bidragsyder {search}",
- "fr": "Dernière modification par {search}"
- }
- }
- ]
- },
- {
- "id": "not_edited_by",
- "options": [
- {
- "osmTags": "_last_user!~i~.*{search}.*",
- "fields": [
- {
- "name": "search"
- }
- ],
- "question": {
- "en": "Opened after {search}",
- "nl": "Geopend na {search}",
- "de": "Zuletzt bearbeitet nach dem {search}",
- "es": "Abierta después de {search}",
- "ca": "Oberta després de {search}",
- "cs": "Otevřeno po {search}",
- "fr": "Ouverte après le {search}"
- }
- }
- ]
- },
- {
- "id": "opened_before",
- "options": [
- {
- "osmTags": "date_created<{search}",
- "fields": [
- {
- "name": "search",
- "type": "date"
- }
- ],
- "question": {
- "en": "Created before {search}",
- "nl": "Aangemaakt voor {search}",
- "de": "Erstellt vor dem {search}",
- "es": "Creada antes de {search}",
- "ca": "Creada abans de {search}",
- "cs": "Vytvořeno před {search}",
- "fr": "Créée avant le {search}"
- }
- }
- ]
- },
- {
- "id": "opened_after",
- "options": [
- {
- "osmTags": "date_created>{search}",
- "fields": [
- {
- "name": "search",
- "type": "date"
- }
- ],
- "question": {
- "en": "Created after {search}",
- "nl": "Aangemaakt na {search}",
- "de": "Erstellt nach dem {search}",
- "es": "Creada después de {search}",
- "ca": "Creada després de {search}",
- "cs": "Vytvořeno po {search}",
- "fr": "Créée après le {search}"
- }
- }
- ]
- },
{
"id": "anonymous",
"options": [
@@ -406,6 +232,244 @@
}
}
]
+ },
+ {
+ "id": "search",
+ "options": [
+ {
+ "osmTags": "_first_comment~i~.*{search}.*",
+ "fields": [
+ {
+ "name": "search"
+ }
+ ],
+ "question": {
+ "en": "Should mention {search} in the first comment",
+ "nl": "Moet in de eerste opmerking \"{search}\" bevatten",
+ "de": "Sollte {search} im ersten Kommentar erwähnen",
+ "es": "Debe mencionar {search} en el primer comentario",
+ "ca": "Has de mencionar {search} en el primer comentari",
+ "cs": "Měl by se zmínit {search} v prvním komentáři"
+ }
+ }
+ ]
+ },
+ {
+ "id": "search_any",
+ "options": [
+ {
+ "osmTags": "_all_comments~i~.*{search}.*",
+ "fields": [
+ {
+ "name": "search"
+ }
+ ],
+ "question": {
+ "en": "Should mention {search} in any comment"
+ }
+ }
+ ]
+ },
+
+ {
+ "id": "not",
+ "options": [
+ {
+ "osmTags": "_first_comment!~i~.*{search}.*",
+ "fields": [
+ {
+ "name": "search"
+ }
+ ],
+ "question": {
+ "en": "Should not mention {search} in the first comment",
+ "nl": "Mag in de eerste opmerking niet \"{search}\" bevatten",
+ "de": "Sollte nicht {search} im ersten Kommentar erwähnen",
+ "es": "No debe mencionar {search} en el primer comentario",
+ "ca": "No s'ha de mencionar {search} al primer comentari",
+ "cs": "V prvním komentáři by jste neměli zmiňovat {search}"
+ }
+ }
+ ]
+ },
+ {
+ "id": "opened_by",
+ "options": [
+ {
+ "osmTags": "_first_user~i~.*{search}.*",
+ "fields": [
+ {
+ "name": "search"
+ }
+ ],
+ "question": {
+ "en": "Opened by contributor {search}",
+ "nl": "Geopend door bijdrager {search}",
+ "de": "Erstellt von {search}",
+ "es": "Abierto por el contributor {search}",
+ "fr": "Ouverte par {search}",
+ "ca": "Obert pel contribuïdor {search}",
+ "cs": "Otevřeno přispěvatelem {search}"
+ }
+ }
+ ]
+ },
+ {
+ "id": "not_opened_by",
+ "options": [
+ {
+ "osmTags": "_first_user!~i~.*{search}.*",
+ "fields": [
+ {
+ "name": "search"
+ }
+ ],
+ "question": {
+ "en": "Not opened by contributor {search}",
+ "nl": "Niet geopend door bijdrager {search}",
+ "de": "Nicht erstellt von {search}",
+ "es": "No abierto por el contributor {search}",
+ "ca": "No obert pel contribuïdor {search}",
+ "cs": "Není otevřeno přispěvatelem {search}",
+ "fr": "Exclureles notes ouvertes par {search}"
+ }
+ }
+ ]
+ },
+ {
+ "id": "edited_by_any",
+ "options": [
+ {
+ "osmTags": "_all_usernames~i~.*{search}.*",
+ "fields": [
+ {
+ "name": "search"
+ }
+ ],
+ "question": {
+ "en": "Edited or commented on by any user with name {search}"
+ }
+ }
+ ]
+ },
+ {
+ "id": "last_edited_by",
+ "options": [
+ {
+ "osmTags": "_last_user~i~.*{search}.*",
+ "fields": [
+ {
+ "name": "search"
+ }
+ ],
+ "question": {
+ "en": "Last edited by contributor {search}",
+ "nl": "Laatst bewerkt door bijdrager {search}",
+ "de": "Zuletzt bearbeitet von {search}",
+ "es": "Editada por última vez por el contributor {search}",
+ "ca": "Editat per última vega pel contribuïdor {search}",
+ "cs": "Naposledy upravil přispěvatel {search}",
+ "da": "Senest redigeret af bidragsyder {search}",
+ "fr": "Dernière modification par {search}"
+ }
+ }
+ ]
+ },
+ {
+ "id": "not_last_edited_by",
+ "options": [
+ {
+ "osmTags": "_last_user!~i~.*{search}.*",
+ "fields": [
+ {
+ "name": "search"
+ }
+ ],
+ "question": {
+ "en": "Not edited as last by {search}"
+ }
+ }
+ ]
+ },
+ {
+ "id": "opened_before",
+ "options": [
+ {
+ "osmTags": "date_created<{search}",
+ "fields": [
+ {
+ "name": "search",
+ "type": "date"
+ }
+ ],
+ "question": {
+ "en": "Created before {search}",
+ "nl": "Aangemaakt voor {search}",
+ "de": "Erstellt vor dem {search}",
+ "es": "Creada antes de {search}",
+ "ca": "Creada abans de {search}",
+ "cs": "Vytvořeno před {search}",
+ "fr": "Créée avant le {search}"
+ }
+ }
+ ]
+ },
+ {
+ "id": "opened_after",
+ "options": [
+ {
+ "osmTags": "date_created>{search}",
+ "fields": [
+ {
+ "name": "search",
+ "type": "date"
+ }
+ ],
+ "question": {
+ "en": "Created after {search}",
+ "nl": "Aangemaakt na {search}",
+ "de": "Erstellt nach dem {search}",
+ "es": "Creada después de {search}",
+ "ca": "Creada després de {search}",
+ "cs": "Vytvořeno po {search}",
+ "fr": "Créée après le {search}"
+ }
+ }
+ ]
+ },
+ {
+ "id": "last_edited_before",
+ "options": [
+ {
+ "osmTags": "_last_change_date<{search}",
+ "fields": [
+ {
+ "name": "search",
+ "type": "date"
+ }
+ ],
+ "question": {
+ "en": "Last edited before {search}"
+ }
+ }
+ ]
+ },
+ {
+ "id": "last_edited_after",
+ "options": [
+ {
+ "osmTags": "_last_change_date>{search}",
+ "fields": [
+ {
+ "name": "search",
+ "type": "date"
+ }
+ ],
+ "question": {
+ "en": "Last edited after {search}"
+ }
+ }
+ ]
}
],
"allowMove": false
diff --git a/assets/layers/usersettings/usersettings.json b/assets/layers/usersettings/usersettings.json
index 9b104a3d9..fde8e269a 100644
--- a/assets/layers/usersettings/usersettings.json
+++ b/assets/layers/usersettings/usersettings.json
@@ -551,6 +551,31 @@
}
]
},
+ {
+ "id": "scalebar",
+ "question": {
+ "en": "Should a scale bar be shown on the map?",
+ "nl": "Moet er een schaalbalk weergegeven worden?"
+ },
+ "mappings": [
+ {
+ "if": "mapcomplete-preference-show-scale=true",
+ "then": {
+ "en": "Show the scalebar",
+ "nl": "Toon de schaalbalk"
+ }
+ },
+ {
+ "if": "mapcomplete-preference-show-scale=false",
+ "alsoShowIf": "mapcomplete-preference-show-scale=",
+
+ "then": {
+ "en": "Hide the scalebar",
+ "nl": "Verberg de schaalbalk"
+ }
+ }
+ ]
+ },
{
"id": "title-editing",
"render": {
diff --git a/assets/svg/circle.svg b/assets/svg/circle.svg
index 0da26a179..4de11e39b 100644
--- a/assets/svg/circle.svg
+++ b/assets/svg/circle.svg
@@ -32,7 +32,7 @@
inkscape:window-maximized="1"
inkscape:current-layer="svg1" />
diff --git a/assets/svg/direction_gradient.svg b/assets/svg/direction_gradient.svg
index 35a51d34a..9d9d2e414 100644
--- a/assets/svg/direction_gradient.svg
+++ b/assets/svg/direction_gradient.svg
@@ -1,101 +1,55 @@
diff --git a/assets/svg/unsnap.svg.license b/assets/svg/unsnap.svg.license
index 2452bee1e..ed0288300 100644
--- a/assets/svg/unsnap.svg.license
+++ b/assets/svg/unsnap.svg.license
@@ -1,2 +1,2 @@
SPDX-FileCopyrightText: Pieter Vander Vennet
-SPDX-License-Identifier: CC0
\ No newline at end of file
+SPDX-License-Identifier: CC0-1.0
\ No newline at end of file
diff --git a/assets/themes/velopark/velopark.json b/assets/themes/velopark/velopark.json
index d027c7075..47799add7 100644
--- a/assets/themes/velopark/velopark.json
+++ b/assets/themes/velopark/velopark.json
@@ -234,7 +234,7 @@
{
"id": "nearby_images",
"render": {
- "*": "{nearby_images(open,readonly)}"
+ "*": "{nearby_images(,readonly)}"
}
}
],
diff --git a/langs/de.json b/langs/de.json
index bde05f4d0..984be656c 100644
--- a/langs/de.json
+++ b/langs/de.json
@@ -643,7 +643,8 @@
"pointIsMoved": "Der Punkt wurde verschoben",
"reasons": {
"reasonInaccurate": "Der Standort ist um ein paar Meter ungenau",
- "reasonRelocation": "Das Element wurde an einen völlig anderen Ort verlegt"
+ "reasonRelocation": "Das Element wurde an einen völlig anderen Ort verlegt",
+ "reasonSnapTo": "Dies sollte auf {name} fixiert werden"
},
"selectReason": "Warum verschieben Sie dieses Element?",
"whyMove": "Warum wollen Sie diesen Punkt verschieben?",
@@ -778,6 +779,14 @@
"missing": "{count} nicht übersetzte Zeichenfolgen",
"notImmediate": "Die Übersetzung wird nicht direkt aktualisiert. Dies dauert in der Regel ein paar Tage"
},
+ "unknown": {
+ "clear": "Antwort löschen",
+ "explanation": "Lösche dieses Informationsmerkmal, wenn die aktuelle Antwort falsch ist, aber der tatsächliche Wert nicht bekannt ist. Andere Informationen werden nicht entfernt.",
+ "keep": "Antwort behalten",
+ "markUnknown": "Als unbekannt markieren",
+ "removedKeys": "Die folgenden Einträge werden entfernt:",
+ "title": "Als unbekannt markieren?"
+ },
"userinfo": {
"gotoInbox": "Deinen Posteingang öffnen",
"gotoSettings": "Einstellungen auf OpenStreetMap.org öffnen",
@@ -864,4 +873,4 @@
"startsWithQ": "Ein Wikidata-Identifikator beginnt mit Q und wird von einer Zahl gefolgt"
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/ca.json b/langs/layers/ca.json
index ede4e173b..d68514f77 100644
--- a/langs/layers/ca.json
+++ b/langs/layers/ca.json
@@ -3926,10 +3926,10 @@
"Cuisine": {
"mappings": {
"0": {
- "then": "Això és una pizzeria"
+ "then": "Pizzeria"
},
"1": {
- "then": "Això és una fregiduria"
+ "then": "Fregiduria"
},
"10": {
"then": "Aquí es serveixen plats xinesos"
@@ -3953,7 +3953,7 @@
"then": "Aquesta és una botiga de kebabs"
},
"4": {
- "then": "Això és una botiga d'entrepans"
+ "then": "Botiga d'entrepans"
},
"5": {
"then": "Aquí es serveixen hamburgueses"
@@ -5126,18 +5126,32 @@
"0": {
"options": {
"0": {
- "question": "Has de mencionar {search} en el primer comentari"
+ "question": "Sols mostrar les notes obertes per contribuïdors anònims"
}
}
},
"1": {
"options": {
"0": {
- "question": "No s'ha de mencionar {search} al primer comentari"
+ "question": "Sols mostra les notes obertes"
}
}
},
- "10": {
+ "11": {
+ "options": {
+ "0": {
+ "question": "Creada abans de {search}"
+ }
+ }
+ },
+ "12": {
+ "options": {
+ "0": {
+ "question": "Creada després de {search}"
+ }
+ }
+ },
+ "2": {
"options": {
"0": {
"question": "Totes les notes"
@@ -5150,59 +5164,38 @@
}
}
},
- "2": {
- "options": {
- "0": {
- "question": "Obert pel contribuïdor {search}"
- }
- }
- },
"3": {
"options": {
"0": {
- "question": "No obert pel contribuïdor {search}"
- }
- }
- },
- "4": {
- "options": {
- "0": {
- "question": "Editat per última vega pel contribuïdor {search}"
+ "question": "Has de mencionar {search} en el primer comentari"
}
}
},
"5": {
"options": {
"0": {
- "question": "Oberta després de {search}"
+ "question": "No s'ha de mencionar {search} al primer comentari"
}
}
},
"6": {
"options": {
"0": {
- "question": "Creada abans de {search}"
+ "question": "Obert pel contribuïdor {search}"
}
}
},
"7": {
"options": {
"0": {
- "question": "Creada després de {search}"
- }
- }
- },
- "8": {
- "options": {
- "0": {
- "question": "Sols mostrar les notes obertes per contribuïdors anònims"
+ "question": "No obert pel contribuïdor {search}"
}
}
},
"9": {
"options": {
"0": {
- "question": "Sols mostra les notes obertes"
+ "question": "Editat per última vega pel contribuïdor {search}"
}
}
}
diff --git a/langs/layers/cs.json b/langs/layers/cs.json
index 24028a933..c03cc9d89 100644
--- a/langs/layers/cs.json
+++ b/langs/layers/cs.json
@@ -4072,10 +4072,10 @@
"Cuisine": {
"mappings": {
"0": {
- "then": "Tohle je pizzerie"
+ "then": "Pizzerie"
},
"1": {
- "then": "Tohle je hranolkárna"
+ "then": "Hranolkárna"
},
"10": {
"then": "Podávají se zde čínské pokrmy"
@@ -5352,18 +5352,32 @@
"0": {
"options": {
"0": {
- "question": "Měl by se zmínit {search} v prvním komentáři"
+ "question": "Zobrazovat pouze poznámky otevřené anonymním přispěvatelem"
}
}
},
"1": {
"options": {
"0": {
- "question": "V prvním komentáři by jste neměli zmiňovat {search}"
+ "question": "Zobrazit pouze otevřené poznámky"
}
}
},
- "10": {
+ "11": {
+ "options": {
+ "0": {
+ "question": "Vytvořeno před {search}"
+ }
+ }
+ },
+ "12": {
+ "options": {
+ "0": {
+ "question": "Vytvořeno po {search}"
+ }
+ }
+ },
+ "2": {
"options": {
"0": {
"question": "Všechny poznámky"
@@ -5376,59 +5390,38 @@
}
}
},
- "2": {
- "options": {
- "0": {
- "question": "Otevřeno přispěvatelem {search}"
- }
- }
- },
"3": {
"options": {
"0": {
- "question": "Není otevřeno přispěvatelem {search}"
- }
- }
- },
- "4": {
- "options": {
- "0": {
- "question": "Naposledy upravil přispěvatel {search}"
+ "question": "Měl by se zmínit {search} v prvním komentáři"
}
}
},
"5": {
"options": {
"0": {
- "question": "Otevřeno po {search}"
+ "question": "V prvním komentáři by jste neměli zmiňovat {search}"
}
}
},
"6": {
"options": {
"0": {
- "question": "Vytvořeno před {search}"
+ "question": "Otevřeno přispěvatelem {search}"
}
}
},
"7": {
"options": {
"0": {
- "question": "Vytvořeno po {search}"
- }
- }
- },
- "8": {
- "options": {
- "0": {
- "question": "Zobrazovat pouze poznámky otevřené anonymním přispěvatelem"
+ "question": "Není otevřeno přispěvatelem {search}"
}
}
},
"9": {
"options": {
"0": {
- "question": "Zobrazit pouze otevřené poznámky"
+ "question": "Naposledy upravil přispěvatel {search}"
}
}
}
diff --git a/langs/layers/da.json b/langs/layers/da.json
index e02a88d7c..470168d53 100644
--- a/langs/layers/da.json
+++ b/langs/layers/da.json
@@ -1640,7 +1640,7 @@
},
"note": {
"filter": {
- "4": {
+ "9": {
"options": {
"0": {
"question": "Senest redigeret af bidragsyder {search}"
diff --git a/langs/layers/de.json b/langs/layers/de.json
index ab106ec9f..07e378a6c 100644
--- a/langs/layers/de.json
+++ b/langs/layers/de.json
@@ -5147,10 +5147,10 @@
"Cuisine": {
"mappings": {
"0": {
- "then": "Dies ist eine Pizzeria"
+ "then": "Pizzeria"
},
"1": {
- "then": "Dies ist eine Pommesbude"
+ "then": "Pommesbude"
},
"10": {
"then": "Hier werden chinesische Gerichte serviert"
@@ -5171,13 +5171,10 @@
"then": "Bietet vorwiegend Pastagerichte an"
},
"3": {
- "then": "Das ist ein Dönerladen"
+ "then": "Dönerladen"
},
"4": {
- "then": "Dies ist ein Sandwichladen"
- },
- "5": {
- "then": "Hier werden Burger serviert"
+ "then": "Sandwichladen"
},
"6": {
"then": "Hier wird Sushi serviert"
@@ -6769,18 +6766,32 @@
"0": {
"options": {
"0": {
- "question": "Sollte {search} im ersten Kommentar erwähnen"
+ "question": "Nur Notizen anzeigen, die anonym erstellt wurden"
}
}
},
"1": {
"options": {
"0": {
- "question": "Sollte nicht {search} im ersten Kommentar erwähnen"
+ "question": "Nur offene Notizen anzeigen"
}
}
},
- "10": {
+ "11": {
+ "options": {
+ "0": {
+ "question": "Erstellt vor dem {search}"
+ }
+ }
+ },
+ "12": {
+ "options": {
+ "0": {
+ "question": "Erstellt nach dem {search}"
+ }
+ }
+ },
+ "2": {
"options": {
"0": {
"question": "Alle Notizen"
@@ -6793,59 +6804,38 @@
}
}
},
- "2": {
- "options": {
- "0": {
- "question": "Erstellt von {search}"
- }
- }
- },
"3": {
"options": {
"0": {
- "question": "Nicht erstellt von {search}"
- }
- }
- },
- "4": {
- "options": {
- "0": {
- "question": "Zuletzt bearbeitet von {search}"
+ "question": "Sollte {search} im ersten Kommentar erwähnen"
}
}
},
"5": {
"options": {
"0": {
- "question": "Zuletzt bearbeitet nach dem {search}"
+ "question": "Sollte nicht {search} im ersten Kommentar erwähnen"
}
}
},
"6": {
"options": {
"0": {
- "question": "Erstellt vor dem {search}"
+ "question": "Erstellt von {search}"
}
}
},
"7": {
"options": {
"0": {
- "question": "Erstellt nach dem {search}"
- }
- }
- },
- "8": {
- "options": {
- "0": {
- "question": "Nur Notizen anzeigen, die anonym erstellt wurden"
+ "question": "Nicht erstellt von {search}"
}
}
},
"9": {
"options": {
"0": {
- "question": "Nur offene Notizen anzeigen"
+ "question": "Zuletzt bearbeitet von {search}"
}
}
}
diff --git a/langs/layers/en.json b/langs/layers/en.json
index 456707523..22879c24c 100644
--- a/langs/layers/en.json
+++ b/langs/layers/en.json
@@ -5149,25 +5149,25 @@
"Cuisine": {
"mappings": {
"0": {
- "then": "This is a pizzeria"
+ "then": "Pizzeria"
},
"1": {
- "then": "This is a friture"
+ "then": "Friture"
},
"10": {
- "then": "Chinese dishes are served here"
+ "then": "Chinese"
},
"11": {
- "then": "Greek dishes are served here"
+ "then": "Greek"
},
"12": {
- "then": "Indian dishes are served here"
+ "then": "Indian"
},
"13": {
- "then": "Turkish dishes are served here"
+ "then": "Turkish restaurant"
},
"14": {
- "then": "Thai dishes are served here"
+ "then": "Thai restaurant"
},
"15": {
"then": "Mexican dishes are served here"
@@ -5182,28 +5182,28 @@
"then": "Seafood dishes are served here"
},
"2": {
- "then": "Mainly serves pasta"
+ "then": "Serves mainly pasta"
},
"3": {
- "then": "This is kebab shop"
+ "then": "Kebab shop"
},
"4": {
- "then": "This is a sandwich shop"
+ "then": "Sandwich shop"
},
"5": {
- "then": "Burgers are served here"
+ "then": "Burgersrestaurant"
},
"6": {
- "then": "Sushi is served here"
+ "then": "Sushi restaurant"
},
"7": {
- "then": "Coffee is served here"
+ "then": "Coffeebar"
},
"8": {
- "then": "This is an Italian restaurant (which serves more than pasta and pizza)"
+ "then": "Italian restaurant (which serves more than pasta and pizza)"
},
"9": {
- "then": "French dishes are served here"
+ "then": "French restaurant"
}
},
"question": "What kind of food is served here?",
@@ -6791,18 +6791,53 @@
"0": {
"options": {
"0": {
- "question": "Should mention {search} in the first comment"
+ "question": "Only show notes opened by an anonymous contributor"
}
}
},
"1": {
"options": {
"0": {
- "question": "Should not mention {search} in the first comment"
+ "question": "Only show open notes"
}
}
},
"10": {
+ "options": {
+ "0": {
+ "question": "Not edited as last by {search}"
+ }
+ }
+ },
+ "11": {
+ "options": {
+ "0": {
+ "question": "Created before {search}"
+ }
+ }
+ },
+ "12": {
+ "options": {
+ "0": {
+ "question": "Created after {search}"
+ }
+ }
+ },
+ "13": {
+ "options": {
+ "0": {
+ "question": "Last edited before {search}"
+ }
+ }
+ },
+ "14": {
+ "options": {
+ "0": {
+ "question": "Last edited after {search}"
+ }
+ }
+ },
+ "2": {
"options": {
"0": {
"question": "All Notes"
@@ -6815,59 +6850,52 @@
}
}
},
- "2": {
- "options": {
- "0": {
- "question": "Opened by contributor {search}"
- }
- }
- },
"3": {
"options": {
"0": {
- "question": "Not opened by contributor {search}"
+ "question": "Should mention {search} in the first comment"
}
}
},
"4": {
"options": {
"0": {
- "question": "Last edited by contributor {search}"
+ "question": "Should mention {search} in any comment"
}
}
},
"5": {
"options": {
"0": {
- "question": "Opened after {search}"
+ "question": "Should not mention {search} in the first comment"
}
}
},
"6": {
"options": {
"0": {
- "question": "Created before {search}"
+ "question": "Opened by contributor {search}"
}
}
},
"7": {
"options": {
"0": {
- "question": "Created after {search}"
+ "question": "Not opened by contributor {search}"
}
}
},
"8": {
"options": {
"0": {
- "question": "Only show notes opened by an anonymous contributor"
+ "question": "Edited or commented on by any user with name {search}"
}
}
},
"9": {
"options": {
"0": {
- "question": "Only show open notes"
+ "question": "Last edited by contributor {search}"
}
}
}
@@ -11614,6 +11642,17 @@
}
}
},
+ "scalebar": {
+ "mappings": {
+ "0": {
+ "then": "Show the scalebar"
+ },
+ "1": {
+ "then": "Hide the scalebar"
+ }
+ },
+ "question": "Should a scale bar be shown on the map?"
+ },
"settings-link": {
"render": {
"special": {
diff --git a/langs/layers/es.json b/langs/layers/es.json
index 893c0dbbd..11f734069 100644
--- a/langs/layers/es.json
+++ b/langs/layers/es.json
@@ -2707,7 +2707,7 @@
"Cuisine": {
"mappings": {
"0": {
- "then": "Esto es una pizzería"
+ "then": "Pizzería"
},
"10": {
"then": "Aquí se sirven platos Chinos"
@@ -2725,10 +2725,10 @@
"then": "Principalmente sirve pasta"
},
"3": {
- "then": "Esta es una tienda de kebak"
+ "then": "Tienda de kebak"
},
"5": {
- "then": "Aquí se sirven hamburguesas"
+ "then": "Hamburguesas"
},
"6": {
"then": "Aquí se sirve sushi"
@@ -3135,18 +3135,32 @@
"0": {
"options": {
"0": {
- "question": "Debe mencionar {search} en el primer comentario"
+ "question": "Solo mostrar las notas abiertas por contributores anómimos"
}
}
},
"1": {
"options": {
"0": {
- "question": "No debe mencionar {search} en el primer comentario"
+ "question": "Solo mostrar las notas abiertas"
}
}
},
- "10": {
+ "11": {
+ "options": {
+ "0": {
+ "question": "Creada antes de {search}"
+ }
+ }
+ },
+ "12": {
+ "options": {
+ "0": {
+ "question": "Creada después de {search}"
+ }
+ }
+ },
+ "2": {
"options": {
"0": {
"question": "Todas las notas"
@@ -3159,59 +3173,38 @@
}
}
},
- "2": {
- "options": {
- "0": {
- "question": "Abierto por el contributor {search}"
- }
- }
- },
"3": {
"options": {
"0": {
- "question": "No abierto por el contributor {search}"
- }
- }
- },
- "4": {
- "options": {
- "0": {
- "question": "Editada por última vez por el contributor {search}"
+ "question": "Debe mencionar {search} en el primer comentario"
}
}
},
"5": {
"options": {
"0": {
- "question": "Abierta después de {search}"
+ "question": "No debe mencionar {search} en el primer comentario"
}
}
},
"6": {
"options": {
"0": {
- "question": "Creada antes de {search}"
+ "question": "Abierto por el contributor {search}"
}
}
},
"7": {
"options": {
"0": {
- "question": "Creada después de {search}"
- }
- }
- },
- "8": {
- "options": {
- "0": {
- "question": "Solo mostrar las notas abiertas por contributores anómimos"
+ "question": "No abierto por el contributor {search}"
}
}
},
"9": {
"options": {
"0": {
- "question": "Solo mostrar las notas abiertas"
+ "question": "Editada por última vez por el contributor {search}"
}
}
}
diff --git a/langs/layers/fr.json b/langs/layers/fr.json
index fd6dfb31a..5c6484521 100644
--- a/langs/layers/fr.json
+++ b/langs/layers/fr.json
@@ -3560,10 +3560,10 @@
"Cuisine": {
"mappings": {
"0": {
- "then": "C'est une pizzéria"
+ "then": "Pizzéria"
},
"1": {
- "then": "C'est une friterie"
+ "then": "Friterie"
},
"10": {
"then": "Des plats chinois sont servis ici"
@@ -3584,10 +3584,10 @@
"then": "Restaurant Italien"
},
"3": {
- "then": "C'est un resto kebab"
+ "then": "Resto kebab"
},
"4": {
- "then": "C'est une sandwicherie"
+ "then": "Sandwicherie"
},
"5": {
"then": "Des hamburgers sont servis ici"
@@ -4425,68 +4425,61 @@
},
"note": {
"filter": {
- "10": {
- "options": {
- "0": {
- "question": "Toutes les notes"
- }
- }
- },
- "2": {
- "options": {
- "0": {
- "question": "Ouverte par {search}"
- }
- }
- },
- "3": {
- "options": {
- "0": {
- "question": "Exclureles notes ouvertes par {search}"
- }
- }
- },
- "4": {
- "options": {
- "0": {
- "question": "Dernière modification par {search}"
- }
- }
- },
- "5": {
- "options": {
- "0": {
- "question": "Ouverte après le {search}"
- }
- }
- },
- "6": {
- "options": {
- "0": {
- "question": "Créée avant le {search}"
- }
- }
- },
- "7": {
- "options": {
- "0": {
- "question": "Créée après le {search}"
- }
- }
- },
- "8": {
+ "0": {
"options": {
"0": {
"question": "Montrer uniquement les notes ouvertes par un contributeur anonyme"
}
}
},
- "9": {
+ "1": {
"options": {
"0": {
"question": "Montrer uniquement les notes ouvertes"
}
}
+ },
+ "11": {
+ "options": {
+ "0": {
+ "question": "Créée avant le {search}"
+ }
+ }
+ },
+ "12": {
+ "options": {
+ "0": {
+ "question": "Créée après le {search}"
+ }
+ }
+ },
+ "2": {
+ "options": {
+ "0": {
+ "question": "Toutes les notes"
+ }
+ }
+ },
+ "6": {
+ "options": {
+ "0": {
+ "question": "Ouverte par {search}"
+ }
+ }
+ },
+ "7": {
+ "options": {
+ "0": {
+ "question": "Exclureles notes ouvertes par {search}"
+ }
+ }
+ },
+ "9": {
+ "options": {
+ "0": {
+ "question": "Dernière modification par {search}"
+ }
+ }
}
},
"name": "Notes OpenStreetMap",
diff --git a/langs/layers/nl.json b/langs/layers/nl.json
index a62b393b0..5e790d218 100644
--- a/langs/layers/nl.json
+++ b/langs/layers/nl.json
@@ -4289,25 +4289,25 @@
"Cuisine": {
"mappings": {
"0": {
- "then": "Dit is een pizzeria"
+ "then": "Pizzeria"
},
"1": {
- "then": "Dit is een frituur"
+ "then": "Frituur"
},
"10": {
- "then": "Dit is een Chinees restaurant"
+ "then": "Chinees restaurant"
},
"11": {
- "then": "Dit is een Grieks restaurant"
+ "then": "Grieks restaurant"
},
"12": {
- "then": "Dit is een Indisch restaurant"
+ "then": "Indisch restaurant"
},
"13": {
- "then": "Dit is een Turks restaurant (dat meer dan enkel kebab verkoopt)"
+ "then": "Turks restaurant"
},
"14": {
- "then": "Dit is een Thaïs restaurant"
+ "then": "Thaïs restaurant"
},
"15": {
"then": "Dit is een mexicaans restaurant"
@@ -4322,28 +4322,28 @@
"then": "Dit is een vis- en zeerestaurant"
},
"2": {
- "then": "Dit is een pastazaak"
+ "then": "Pastazaak"
},
"3": {
- "then": "Dit is een kebabzaak"
+ "then": "Kebabzaak"
},
"4": {
- "then": "Dit is een broodjeszaak"
+ "then": "Broodjeszaak"
},
"5": {
- "then": "Dit is een hamburgerrestaurant"
+ "then": "Hamburgerrestaurant"
},
"6": {
- "then": "Dit is een sushirestaurant"
+ "then": "Sushirestaurant"
},
"7": {
- "then": "Dit is een koffiezaak"
+ "then": "Koffiezaak"
},
"8": {
- "then": "Dit is een Italiaans restaurant (dat meer dan enkel pasta of pizza verkoopt)"
+ "then": "Italiaans restaurant (dat meer dan enkel pasta of pizza verkoopt)"
},
"9": {
- "then": "Dit is een Frans restaurant"
+ "then": "Frans restaurant"
}
},
"question": "Welk soort gerechten worden hier geserveerd?",
@@ -5555,18 +5555,32 @@
"0": {
"options": {
"0": {
- "question": "Moet in de eerste opmerking \"{search}\" bevatten"
+ "question": "Toon enkel de Notes geopend door een anonieme bijdrager"
}
}
},
"1": {
"options": {
"0": {
- "question": "Mag in de eerste opmerking niet \"{search}\" bevatten"
+ "question": "Toon enkel open Notes"
}
}
},
- "10": {
+ "11": {
+ "options": {
+ "0": {
+ "question": "Aangemaakt voor {search}"
+ }
+ }
+ },
+ "12": {
+ "options": {
+ "0": {
+ "question": "Aangemaakt na {search}"
+ }
+ }
+ },
+ "2": {
"options": {
"0": {
"question": "Alle Notes"
@@ -5579,59 +5593,38 @@
}
}
},
- "2": {
- "options": {
- "0": {
- "question": "Geopend door bijdrager {search}"
- }
- }
- },
"3": {
"options": {
"0": {
- "question": "Niet geopend door bijdrager {search}"
- }
- }
- },
- "4": {
- "options": {
- "0": {
- "question": "Laatst bewerkt door bijdrager {search}"
+ "question": "Moet in de eerste opmerking \"{search}\" bevatten"
}
}
},
"5": {
"options": {
"0": {
- "question": "Geopend na {search}"
+ "question": "Mag in de eerste opmerking niet \"{search}\" bevatten"
}
}
},
"6": {
"options": {
"0": {
- "question": "Aangemaakt voor {search}"
+ "question": "Geopend door bijdrager {search}"
}
}
},
"7": {
"options": {
"0": {
- "question": "Aangemaakt na {search}"
- }
- }
- },
- "8": {
- "options": {
- "0": {
- "question": "Toon enkel de Notes geopend door een anonieme bijdrager"
+ "question": "Niet geopend door bijdrager {search}"
}
}
},
"9": {
"options": {
"0": {
- "question": "Toon enkel open Notes"
+ "question": "Laatst bewerkt door bijdrager {search}"
}
}
}
@@ -9276,6 +9269,17 @@
}
}
},
+ "scalebar": {
+ "mappings": {
+ "0": {
+ "then": "Toon de schaalbalk"
+ },
+ "1": {
+ "then": "Verberg de schaalbalk"
+ }
+ },
+ "question": "Moet er een schaalbalk weergegeven worden?"
+ },
"settings-link": {
"render": {
"special": {
diff --git a/langs/layers/pl.json b/langs/layers/pl.json
index cf6292f62..e7ae159ec 100644
--- a/langs/layers/pl.json
+++ b/langs/layers/pl.json
@@ -1998,7 +1998,7 @@
"Cuisine": {
"mappings": {
"0": {
- "then": "To jest pizzeria"
+ "then": "Pizzeria"
},
"2": {
"then": "Podaje głównie makarony"
diff --git a/langs/themes/de.json b/langs/themes/de.json
index cf519c0fc..d7e258cc7 100644
--- a/langs/themes/de.json
+++ b/langs/themes/de.json
@@ -808,6 +808,133 @@
"description": "Leuchttürme sind hohe Gebäude mit einem Licht an der Spitze, das den Schiffsverkehr leitet.",
"title": "Leuchttürme"
},
+ "mapcomplete-changes": {
+ "description": "Diese Karte zeigt alle mit MapComplete vorgenommenen Änderungen",
+ "layers": {
+ "0": {
+ "description": "Zeigt alle MapComplete-Änderungen",
+ "filter": {
+ "0": {
+ "options": {
+ "0": {
+ "question": "Themenname enthält {search}"
+ }
+ }
+ },
+ "1": {
+ "options": {
+ "0": {
+ "question": "Themename enthält nicht {search}"
+ }
+ }
+ },
+ "10": {
+ "options": {
+ "0": {
+ "question": "Etymologie-Thema ausschließen"
+ }
+ }
+ },
+ "2": {
+ "options": {
+ "0": {
+ "question": "Erstellt von Mitwirkendem {search}"
+ }
+ }
+ },
+ "3": {
+ "options": {
+ "0": {
+ "question": "Nicht erstellt von Mitwirkendem {search}"
+ }
+ }
+ },
+ "4": {
+ "options": {
+ "0": {
+ "question": "Erstellt vor {search}"
+ }
+ }
+ },
+ "5": {
+ "options": {
+ "0": {
+ "question": "Erstellt nach {search}"
+ }
+ }
+ },
+ "6": {
+ "options": {
+ "0": {
+ "question": "Benutzersprache (ISO-Code) {search}"
+ }
+ }
+ },
+ "7": {
+ "options": {
+ "0": {
+ "question": "Erstellt mit Host {search}"
+ }
+ }
+ },
+ "8": {
+ "options": {
+ "0": {
+ "question": "Changeset hat mindestens ein Bild hinzugefügt"
+ }
+ }
+ },
+ "9": {
+ "options": {
+ "0": {
+ "question": "GRB-Thema ausschließen"
+ }
+ }
+ }
+ },
+ "name": "Changeset-Zentren",
+ "tagRenderings": {
+ "contributor": {
+ "question": "Wer hat zu dieser Änderung beigetragen?",
+ "render": "Änderung vorgenommen von {user}"
+ },
+ "host": {
+ "question": "Bei welchem Host (Website) wurde diese Änderung vorgenommen?",
+ "render": "Änderung mit {host}"
+ },
+ "locale": {
+ "question": "In welcher Sprache (Locale) wurde diese Änderung vorgenommen?",
+ "render": "Die Benutzersprache ist {locale}"
+ },
+ "show_changeset_id": {
+ "render": "Änderungssatz {id}"
+ },
+ "theme-id": {
+ "question": "Welches Thema wurde für diese Änderung verwendet?",
+ "render": "Änderung mit Thema {theme}"
+ },
+ "version": {
+ "question": "Welche Version von MapComplete wurde verwendet, um diese Änderung vorzunehmen?",
+ "render": "Erstellt mit {editor}"
+ }
+ },
+ "title": {
+ "render": "Änderungssatz für {theme}"
+ }
+ },
+ "1": {
+ "override": {
+ "tagRenderings+": {
+ "0": {
+ "render": "Weitere Statistiken findest du hier"
+ }
+ }
+ }
+ }
+ },
+ "shortDescription": "Zeigt die von MapComplete vorgenommenen Änderungen an",
+ "title": "Änderungen mit MapComplete"
+ },
"maproulette": {
"description": "Thema mit MapRoulette-Aufgaben, die Sie suchen, filtern und beheben können.",
"title": "MapRoulette-Aufgaben"
@@ -1347,4 +1474,4 @@
"shortDescription": "Eine Karte mit Abfalleimern",
"title": "Abfalleimer"
}
-}
\ No newline at end of file
+}
diff --git a/package-lock.json b/package-lock.json
index afe2d8bf6..a42d04cf4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "mapcomplete",
- "version": "0.46.0",
+ "version": "0.46.8",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "mapcomplete",
- "version": "0.46.0",
+ "version": "0.46.8",
"license": "GPL-3.0-or-later",
"dependencies": {
"@comunica/core": "^3.0.1",
@@ -116,6 +116,7 @@
"read-file": "^0.2.0",
"sass": "^1.58.0",
"sharp": "^0.32.6",
+ "standard-version": "^9.5.0",
"svelte": "^3.55.1",
"svelte-check": "^3.0.2",
"svelte-preprocess": "^5.0.1",
@@ -4614,6 +4615,15 @@
"dev": true,
"license": "BSD-3-Clause"
},
+ "node_modules/@hutson/parse-repository-url": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz",
+ "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@jest/schemas": {
"version": "29.4.0",
"license": "MIT",
@@ -6707,6 +6717,12 @@
"version": "18.11.18",
"license": "MIT"
},
+ "node_modules/@types/normalize-package-data": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
+ "dev": true
+ },
"node_modules/@types/papaparse": {
"version": "5.3.7",
"dev": true,
@@ -7347,6 +7363,12 @@
"node": ">=0.4.0"
}
},
+ "node_modules/add-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz",
+ "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==",
+ "dev": true
+ },
"node_modules/affine-hull": {
"version": "1.0.0",
"license": "MIT",
@@ -7466,6 +7488,12 @@
"version": "1.0.0",
"license": "MIT"
},
+ "node_modules/array-ify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
+ "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==",
+ "dev": true
+ },
"node_modules/array-union": {
"version": "2.1.0",
"dev": true,
@@ -7478,6 +7506,15 @@
"version": "2.0.1",
"license": "MIT"
},
+ "node_modules/arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/asn1": {
"version": "0.2.6",
"license": "MIT",
@@ -7893,6 +7930,41 @@
"node": ">= 6"
}
},
+ "node_modules/camelcase-keys": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
+ "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^5.3.1",
+ "map-obj": "^4.0.0",
+ "quick-lru": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/camelcase-keys/node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase-keys/node_modules/quick-lru": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
+ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/caniuse-lite": {
"version": "1.0.30001660",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz",
@@ -8155,6 +8227,16 @@
"node": ">= 12"
}
},
+ "node_modules/compare-func": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz",
+ "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==",
+ "dev": true,
+ "dependencies": {
+ "array-ify": "^1.0.0",
+ "dot-prop": "^5.1.0"
+ }
+ },
"node_modules/componentsjs": {
"version": "6.0.1",
"license": "MIT",
@@ -8254,6 +8336,292 @@
"node": ">= 0.6"
}
},
+ "node_modules/conventional-changelog": {
+ "version": "3.1.25",
+ "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz",
+ "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==",
+ "dev": true,
+ "dependencies": {
+ "conventional-changelog-angular": "^5.0.12",
+ "conventional-changelog-atom": "^2.0.8",
+ "conventional-changelog-codemirror": "^2.0.8",
+ "conventional-changelog-conventionalcommits": "^4.5.0",
+ "conventional-changelog-core": "^4.2.1",
+ "conventional-changelog-ember": "^2.0.9",
+ "conventional-changelog-eslint": "^3.0.9",
+ "conventional-changelog-express": "^2.0.6",
+ "conventional-changelog-jquery": "^3.0.11",
+ "conventional-changelog-jshint": "^2.0.9",
+ "conventional-changelog-preset-loader": "^2.3.4"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-angular": {
+ "version": "5.0.13",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz",
+ "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==",
+ "dev": true,
+ "dependencies": {
+ "compare-func": "^2.0.0",
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-atom": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz",
+ "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==",
+ "dev": true,
+ "dependencies": {
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-codemirror": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz",
+ "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==",
+ "dev": true,
+ "dependencies": {
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-config-spec": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz",
+ "integrity": "sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==",
+ "dev": true
+ },
+ "node_modules/conventional-changelog-conventionalcommits": {
+ "version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz",
+ "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==",
+ "dev": true,
+ "dependencies": {
+ "compare-func": "^2.0.0",
+ "lodash": "^4.17.15",
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-core": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz",
+ "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==",
+ "dev": true,
+ "dependencies": {
+ "add-stream": "^1.0.0",
+ "conventional-changelog-writer": "^5.0.0",
+ "conventional-commits-parser": "^3.2.0",
+ "dateformat": "^3.0.0",
+ "get-pkg-repo": "^4.0.0",
+ "git-raw-commits": "^2.0.8",
+ "git-remote-origin-url": "^2.0.0",
+ "git-semver-tags": "^4.1.1",
+ "lodash": "^4.17.15",
+ "normalize-package-data": "^3.0.0",
+ "q": "^1.5.1",
+ "read-pkg": "^3.0.0",
+ "read-pkg-up": "^3.0.0",
+ "through2": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-ember": {
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz",
+ "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==",
+ "dev": true,
+ "dependencies": {
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-eslint": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz",
+ "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==",
+ "dev": true,
+ "dependencies": {
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-express": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz",
+ "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==",
+ "dev": true,
+ "dependencies": {
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-jquery": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz",
+ "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==",
+ "dev": true,
+ "dependencies": {
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-jshint": {
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz",
+ "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==",
+ "dev": true,
+ "dependencies": {
+ "compare-func": "^2.0.0",
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-preset-loader": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz",
+ "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-writer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz",
+ "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==",
+ "dev": true,
+ "dependencies": {
+ "conventional-commits-filter": "^2.0.7",
+ "dateformat": "^3.0.0",
+ "handlebars": "^4.7.7",
+ "json-stringify-safe": "^5.0.1",
+ "lodash": "^4.17.15",
+ "meow": "^8.0.0",
+ "semver": "^6.0.0",
+ "split": "^1.0.0",
+ "through2": "^4.0.0"
+ },
+ "bin": {
+ "conventional-changelog-writer": "cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-commits-filter": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz",
+ "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==",
+ "dev": true,
+ "dependencies": {
+ "lodash.ismatch": "^4.4.0",
+ "modify-values": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-commits-parser": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz",
+ "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==",
+ "dev": true,
+ "dependencies": {
+ "is-text-path": "^1.0.1",
+ "JSONStream": "^1.0.4",
+ "lodash": "^4.17.15",
+ "meow": "^8.0.0",
+ "split2": "^3.0.0",
+ "through2": "^4.0.0"
+ },
+ "bin": {
+ "conventional-commits-parser": "cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-commits-parser/node_modules/jsonparse": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
+ "dev": true,
+ "engines": [
+ "node >= 0.2.0"
+ ]
+ },
+ "node_modules/conventional-commits-parser/node_modules/JSONStream": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
+ "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
+ "dev": true,
+ "dependencies": {
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
+ },
+ "bin": {
+ "JSONStream": "bin.js"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/conventional-commits-parser/node_modules/split2": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
+ "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
+ "dev": true,
+ "dependencies": {
+ "readable-stream": "^3.0.0"
+ }
+ },
+ "node_modules/conventional-recommended-bump": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz",
+ "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==",
+ "dev": true,
+ "dependencies": {
+ "concat-stream": "^2.0.0",
+ "conventional-changelog-preset-loader": "^2.3.4",
+ "conventional-commits-filter": "^2.0.7",
+ "conventional-commits-parser": "^3.2.0",
+ "git-raw-commits": "^2.0.8",
+ "git-semver-tags": "^4.1.1",
+ "meow": "^8.0.0",
+ "q": "^1.5.1"
+ },
+ "bin": {
+ "conventional-recommended-bump": "cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/convert-source-map": {
"version": "1.9.0",
"dev": true,
@@ -8449,6 +8817,15 @@
"version": "1.1.2",
"license": "BSD-3-Clause"
},
+ "node_modules/dargs": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz",
+ "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/dashdash": {
"version": "1.14.1",
"license": "MIT",
@@ -8480,6 +8857,15 @@
"node": ">=14"
}
},
+ "node_modules/dateformat": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
+ "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/debug": {
"version": "4.3.4",
"license": "MIT",
@@ -8505,6 +8891,40 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/decamelize-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+ "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
+ "dev": true,
+ "dependencies": {
+ "decamelize": "^1.1.0",
+ "map-obj": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/decamelize-keys/node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decamelize-keys/node_modules/map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/decimal.js": {
"version": "10.4.3",
"license": "MIT",
@@ -8809,6 +9229,15 @@
"node": ">=8"
}
},
+ "node_modules/detect-newline": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/detective": {
"version": "5.2.1",
"license": "MIT",
@@ -8956,6 +9385,92 @@
"domelementtype": "1"
}
},
+ "node_modules/dot-prop": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
+ "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+ "dev": true,
+ "dependencies": {
+ "is-obj": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dotgitignore": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/dotgitignore/-/dotgitignore-2.1.0.tgz",
+ "integrity": "sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^3.0.0",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/dotgitignore/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/dotgitignore/node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/dotgitignore/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/dotgitignore/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/dotgitignore/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/earcut": {
"version": "2.2.4",
"license": "ISC"
@@ -9036,6 +9551,15 @@
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
"node_modules/es6-object-assign": {
"version": "1.1.0",
"dev": true,
@@ -10153,6 +10677,64 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/get-pkg-repo": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz",
+ "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==",
+ "dev": true,
+ "dependencies": {
+ "@hutson/parse-repository-url": "^3.0.0",
+ "hosted-git-info": "^4.0.0",
+ "through2": "^2.0.0",
+ "yargs": "^16.2.0"
+ },
+ "bin": {
+ "get-pkg-repo": "src/cli.js"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-pkg-repo/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "dev": true,
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/get-pkg-repo/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "node_modules/get-pkg-repo/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/get-pkg-repo/node_modules/through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "dependencies": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
"node_modules/get-stdin": {
"version": "9.0.0",
"license": "MIT",
@@ -10187,6 +10769,72 @@
"assert-plus": "^1.0.0"
}
},
+ "node_modules/git-raw-commits": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz",
+ "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==",
+ "dev": true,
+ "dependencies": {
+ "dargs": "^7.0.0",
+ "lodash": "^4.17.15",
+ "meow": "^8.0.0",
+ "split2": "^3.0.0",
+ "through2": "^4.0.0"
+ },
+ "bin": {
+ "git-raw-commits": "cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/git-raw-commits/node_modules/split2": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
+ "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
+ "dev": true,
+ "dependencies": {
+ "readable-stream": "^3.0.0"
+ }
+ },
+ "node_modules/git-remote-origin-url": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz",
+ "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==",
+ "dev": true,
+ "dependencies": {
+ "gitconfiglocal": "^1.0.0",
+ "pify": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/git-semver-tags": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz",
+ "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==",
+ "dev": true,
+ "dependencies": {
+ "meow": "^8.0.0",
+ "semver": "^6.0.0"
+ },
+ "bin": {
+ "git-semver-tags": "cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/gitconfiglocal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz",
+ "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==",
+ "dev": true,
+ "dependencies": {
+ "ini": "^1.3.2"
+ }
+ },
"node_modules/github-from-package": {
"version": "0.0.0",
"dev": true,
@@ -10354,6 +11002,27 @@
"node": ">=4.x"
}
},
+ "node_modules/handlebars": {
+ "version": "4.7.8",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
+ "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.2",
+ "source-map": "^0.6.1",
+ "wordwrap": "^1.0.0"
+ },
+ "bin": {
+ "handlebars": "bin/handlebars"
+ },
+ "engines": {
+ "node": ">=0.4.7"
+ },
+ "optionalDependencies": {
+ "uglify-js": "^3.1.4"
+ }
+ },
"node_modules/har-schema": {
"version": "2.0.0",
"license": "ISC",
@@ -10390,6 +11059,15 @@
"version": "0.4.1",
"license": "MIT"
},
+ "node_modules/hard-rejection": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
+ "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/has": {
"version": "1.0.3",
"license": "MIT",
@@ -10465,6 +11143,36 @@
"minimalistic-crypto-utils": "^1.0.1"
}
},
+ "node_modules/hosted-git-info": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/hosted-git-info/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/hosted-git-info/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
"node_modules/html-encoding-sniffer": {
"version": "3.0.0",
"license": "MIT",
@@ -10737,6 +11445,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "dev": true
+ },
"node_modules/is-binary-path": {
"version": "2.1.0",
"license": "MIT",
@@ -10877,6 +11591,15 @@
"node": ">=0.12.0"
}
},
+ "node_modules/is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/is-path-inside": {
"version": "3.0.3",
"dev": true,
@@ -10932,6 +11655,18 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/is-text-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz",
+ "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==",
+ "dev": true,
+ "dependencies": {
+ "text-extensions": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/is-typed-array": {
"version": "1.1.10",
"dev": true,
@@ -10964,6 +11699,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
"node_modules/isexe": {
"version": "2.0.0",
"license": "ISC"
@@ -11147,6 +11888,18 @@
"node": ">=4"
}
},
+ "node_modules/json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+ "dev": true
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
"node_modules/json-schema": {
"version": "0.4.0",
"license": "(AFL-2.1 OR BSD-3-Clause)"
@@ -11516,6 +12269,36 @@
"resolved": "https://registry.npmjs.org/lineclip/-/lineclip-1.1.5.tgz",
"integrity": "sha512-KlA/wRSjpKl7tS9iRUdlG72oQ7qZ1IlVbVgHwoO10TBR/4gQ86uhKow6nlzMAJJhjCWKto8OeoAzzIzKSmN25A=="
},
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
+ },
+ "node_modules/load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/load-json-file/node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/local-pkg": {
"version": "0.4.3",
"license": "MIT",
@@ -11550,6 +12333,12 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/lodash.ismatch": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz",
+ "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==",
+ "dev": true
+ },
"node_modules/lodash.merge": {
"version": "4.6.2",
"dev": true,
@@ -11690,6 +12479,18 @@
"typescript": "^4.9.4"
}
},
+ "node_modules/map-obj": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
+ "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/maplibre-gl": {
"version": "4.1.2",
"license": "BSD-3-Clause",
@@ -11763,6 +12564,178 @@
"url": "https://github.com/sindresorhus/memoize?sponsor=1"
}
},
+ "node_modules/meow": {
+ "version": "8.1.2",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz",
+ "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==",
+ "dev": true,
+ "dependencies": {
+ "@types/minimist": "^1.2.0",
+ "camelcase-keys": "^6.2.2",
+ "decamelize-keys": "^1.1.0",
+ "hard-rejection": "^2.1.0",
+ "minimist-options": "4.1.0",
+ "normalize-package-data": "^3.0.0",
+ "read-pkg-up": "^7.0.1",
+ "redent": "^3.0.0",
+ "trim-newlines": "^3.0.0",
+ "type-fest": "^0.18.0",
+ "yargs-parser": "^20.2.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/meow/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/meow/node_modules/hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "dev": true
+ },
+ "node_modules/meow/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/meow/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/meow/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/meow/node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/meow/node_modules/read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "dependencies": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/meow/node_modules/read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/meow/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
"node_modules/merge2": {
"version": "1.4.1",
"license": "MIT",
@@ -11946,6 +12919,29 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/minimist-options": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
+ "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
+ "dev": true,
+ "dependencies": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0",
+ "kind-of": "^6.0.3"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/minimist-options/node_modules/is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/mkdirp": {
"version": "0.5.6",
"dev": true,
@@ -12076,6 +13072,15 @@
"url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
+ "node_modules/modify-values": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz",
+ "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/monaco-editor": {
"version": "0.46.0",
"license": "MIT"
@@ -12173,6 +13178,12 @@
"node_modules/negotiate": {
"version": "1.0.1"
},
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true
+ },
"node_modules/ngraph.events": {
"version": "1.2.2",
"license": "BSD-3-Clause"
@@ -12288,6 +13299,33 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/normalize-package-data": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
+ "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
+ "dev": true,
+ "dependencies": {
+ "hosted-git-info": "^4.0.1",
+ "is-core-module": "^2.5.0",
+ "semver": "^7.3.4",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/normalize-package-data/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/normalize-path": {
"version": "3.0.0",
"license": "MIT",
@@ -14909,6 +15947,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/packet-reader": {
"version": "1.0.0",
"license": "MIT"
@@ -14937,6 +15984,19 @@
"node": ">=6"
}
},
+ "node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "dev": true,
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/parse5": {
"version": "7.1.2",
"license": "MIT",
@@ -15477,6 +16537,12 @@
"node": ">= 0.6.0"
}
},
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true
+ },
"node_modules/process-yargs-parser": {
"version": "2.1.0",
"license": "ISC"
@@ -15559,6 +16625,17 @@
"node": ">=6"
}
},
+ "node_modules/q": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
+ "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)",
+ "dev": true,
+ "engines": {
+ "node": ">=0.6.0",
+ "teleport": ">=0.2.0"
+ }
+ },
"node_modules/qrcode-generator": {
"version": "1.4.4",
"license": "MIT"
@@ -16263,6 +17340,148 @@
"node": ">=0.8"
}
},
+ "node_modules/read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
+ "dev": true,
+ "dependencies": {
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
+ "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg/node_modules/hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "dev": true
+ },
+ "node_modules/read-pkg/node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "node_modules/read-pkg/node_modules/path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg/node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
"node_modules/readable-stream": {
"version": "3.6.0",
"license": "MIT",
@@ -16301,6 +17520,28 @@
"node": ">= 10.13.0"
}
},
+ "node_modules/redent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "dev": true,
+ "dependencies": {
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/redent/node_modules/indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/regenerate": {
"version": "1.4.2",
"dev": true,
@@ -17218,6 +18459,38 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
+ "node_modules/spdx-correct": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+ "dev": true,
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-exceptions": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
+ "dev": true
+ },
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.20",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz",
+ "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==",
+ "dev": true
+ },
"node_modules/splaytree": {
"version": "3.1.1",
"license": "MIT"
@@ -17227,6 +18500,18 @@
"resolved": "https://registry.npmjs.org/splaytree-ts/-/splaytree-ts-1.0.1.tgz",
"integrity": "sha512-B+VzCm33/KEchi/fzT6/3NRHm8k5+Kf37SBQO3meHHS/tK2xBnIm4ZvusQ1wUpHgKMCCqEWgXnwFXAa1nD289g=="
},
+ "node_modules/split": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+ "dev": true,
+ "dependencies": {
+ "through": "2"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/split-string": {
"version": "3.1.0",
"license": "MIT",
@@ -17307,6 +18592,61 @@
"node": ">=0.1.14"
}
},
+ "node_modules/standard-version": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.5.0.tgz",
+ "integrity": "sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^2.4.2",
+ "conventional-changelog": "3.1.25",
+ "conventional-changelog-config-spec": "2.1.0",
+ "conventional-changelog-conventionalcommits": "4.6.3",
+ "conventional-recommended-bump": "6.1.0",
+ "detect-indent": "^6.0.0",
+ "detect-newline": "^3.1.0",
+ "dotgitignore": "^2.1.0",
+ "figures": "^3.1.0",
+ "find-up": "^5.0.0",
+ "git-semver-tags": "^4.0.0",
+ "semver": "^7.1.1",
+ "stringify-package": "^1.0.1",
+ "yargs": "^16.0.0"
+ },
+ "bin": {
+ "standard-version": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/standard-version/node_modules/figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/standard-version/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/state-local": {
"version": "1.0.7",
"dev": true,
@@ -17359,6 +18699,13 @@
"node": ">=8"
}
},
+ "node_modules/stringify-package": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz",
+ "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==",
+ "deprecated": "This module is not used anymore, and has been replaced by @npmcli/package-json",
+ "dev": true
+ },
"node_modules/strip-ansi": {
"version": "6.0.1",
"license": "MIT",
@@ -17849,6 +19196,15 @@
"optional": true,
"peer": true
},
+ "node_modules/text-extensions": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz",
+ "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
"node_modules/text-hex": {
"version": "1.0.0",
"license": "MIT"
@@ -17866,6 +19222,21 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "dev": true
+ },
+ "node_modules/through2": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
+ "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
+ "dev": true,
+ "dependencies": {
+ "readable-stream": "3"
+ }
+ },
"node_modules/tiny-inflate": {
"version": "1.0.3",
"license": "MIT"
@@ -17976,6 +19347,15 @@
"node": ">=14"
}
},
+ "node_modules/trim-newlines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
+ "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/triple-beam": {
"version": "1.4.1",
"license": "MIT",
@@ -18685,6 +20065,18 @@
"node": ">=4"
}
},
+ "node_modules/type-fest": {
+ "version": "0.18.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
+ "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/typedarray": {
"version": "0.0.6",
"license": "MIT"
@@ -18786,6 +20178,19 @@
"version": "1.0.1",
"license": "MIT"
},
+ "node_modules/uglify-js": {
+ "version": "3.19.3",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
+ "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
+ "dev": true,
+ "optional": true,
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
"node_modules/underscore": {
"version": "1.7.0"
},
@@ -18957,6 +20362,16 @@
"version": "1.0.1",
"license": "MIT"
},
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
"node_modules/verror": {
"version": "1.10.0",
"engines": [
@@ -19340,6 +20755,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
+ "dev": true
+ },
"node_modules/workerpool": {
"version": "6.2.0",
"license": "Apache-2.0"
@@ -23063,6 +24484,12 @@
"version": "1.2.1",
"dev": true
},
+ "@hutson/parse-repository-url": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz",
+ "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==",
+ "dev": true
+ },
"@jest/schemas": {
"version": "29.4.0",
"requires": {
@@ -24514,6 +25941,12 @@
"@types/node": {
"version": "18.11.18"
},
+ "@types/normalize-package-data": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
+ "dev": true
+ },
"@types/papaparse": {
"version": "5.3.7",
"dev": true,
@@ -24927,6 +26360,12 @@
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
"integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A=="
},
+ "add-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz",
+ "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==",
+ "dev": true
+ },
"affine-hull": {
"version": "1.0.0",
"requires": {
@@ -25009,6 +26448,12 @@
"array-equal": {
"version": "1.0.0"
},
+ "array-ify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
+ "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==",
+ "dev": true
+ },
"array-union": {
"version": "2.1.0",
"dev": true
@@ -25016,6 +26461,12 @@
"arrayify-stream": {
"version": "2.0.1"
},
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
+ "dev": true
+ },
"asn1": {
"version": "0.2.6",
"requires": {
@@ -25254,6 +26705,31 @@
"camelcase-css": {
"version": "2.0.1"
},
+ "camelcase-keys": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
+ "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.3.1",
+ "map-obj": "^4.0.0",
+ "quick-lru": "^4.0.1"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "quick-lru": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
+ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "dev": true
+ }
+ }
+ },
"caniuse-lite": {
"version": "1.0.30001660",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz",
@@ -25415,6 +26891,16 @@
"version": "8.3.0",
"dev": true
},
+ "compare-func": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz",
+ "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==",
+ "dev": true,
+ "requires": {
+ "array-ify": "^1.0.0",
+ "dot-prop": "^5.1.0"
+ }
+ },
"componentsjs": {
"version": "6.0.1",
"requires": {
@@ -25489,6 +26975,228 @@
"content-type": {
"version": "1.0.5"
},
+ "conventional-changelog": {
+ "version": "3.1.25",
+ "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz",
+ "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==",
+ "dev": true,
+ "requires": {
+ "conventional-changelog-angular": "^5.0.12",
+ "conventional-changelog-atom": "^2.0.8",
+ "conventional-changelog-codemirror": "^2.0.8",
+ "conventional-changelog-conventionalcommits": "^4.5.0",
+ "conventional-changelog-core": "^4.2.1",
+ "conventional-changelog-ember": "^2.0.9",
+ "conventional-changelog-eslint": "^3.0.9",
+ "conventional-changelog-express": "^2.0.6",
+ "conventional-changelog-jquery": "^3.0.11",
+ "conventional-changelog-jshint": "^2.0.9",
+ "conventional-changelog-preset-loader": "^2.3.4"
+ }
+ },
+ "conventional-changelog-angular": {
+ "version": "5.0.13",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz",
+ "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==",
+ "dev": true,
+ "requires": {
+ "compare-func": "^2.0.0",
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-atom": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz",
+ "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==",
+ "dev": true,
+ "requires": {
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-codemirror": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz",
+ "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==",
+ "dev": true,
+ "requires": {
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-config-spec": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz",
+ "integrity": "sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==",
+ "dev": true
+ },
+ "conventional-changelog-conventionalcommits": {
+ "version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz",
+ "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==",
+ "dev": true,
+ "requires": {
+ "compare-func": "^2.0.0",
+ "lodash": "^4.17.15",
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-core": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz",
+ "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==",
+ "dev": true,
+ "requires": {
+ "add-stream": "^1.0.0",
+ "conventional-changelog-writer": "^5.0.0",
+ "conventional-commits-parser": "^3.2.0",
+ "dateformat": "^3.0.0",
+ "get-pkg-repo": "^4.0.0",
+ "git-raw-commits": "^2.0.8",
+ "git-remote-origin-url": "^2.0.0",
+ "git-semver-tags": "^4.1.1",
+ "lodash": "^4.17.15",
+ "normalize-package-data": "^3.0.0",
+ "q": "^1.5.1",
+ "read-pkg": "^3.0.0",
+ "read-pkg-up": "^3.0.0",
+ "through2": "^4.0.0"
+ }
+ },
+ "conventional-changelog-ember": {
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz",
+ "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==",
+ "dev": true,
+ "requires": {
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-eslint": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz",
+ "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==",
+ "dev": true,
+ "requires": {
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-express": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz",
+ "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==",
+ "dev": true,
+ "requires": {
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-jquery": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz",
+ "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==",
+ "dev": true,
+ "requires": {
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-jshint": {
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz",
+ "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==",
+ "dev": true,
+ "requires": {
+ "compare-func": "^2.0.0",
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-preset-loader": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz",
+ "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==",
+ "dev": true
+ },
+ "conventional-changelog-writer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz",
+ "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==",
+ "dev": true,
+ "requires": {
+ "conventional-commits-filter": "^2.0.7",
+ "dateformat": "^3.0.0",
+ "handlebars": "^4.7.7",
+ "json-stringify-safe": "^5.0.1",
+ "lodash": "^4.17.15",
+ "meow": "^8.0.0",
+ "semver": "^6.0.0",
+ "split": "^1.0.0",
+ "through2": "^4.0.0"
+ }
+ },
+ "conventional-commits-filter": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz",
+ "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==",
+ "dev": true,
+ "requires": {
+ "lodash.ismatch": "^4.4.0",
+ "modify-values": "^1.0.0"
+ }
+ },
+ "conventional-commits-parser": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz",
+ "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==",
+ "dev": true,
+ "requires": {
+ "is-text-path": "^1.0.1",
+ "JSONStream": "^1.0.4",
+ "lodash": "^4.17.15",
+ "meow": "^8.0.0",
+ "split2": "^3.0.0",
+ "through2": "^4.0.0"
+ },
+ "dependencies": {
+ "jsonparse": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
+ "dev": true
+ },
+ "JSONStream": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
+ "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
+ "dev": true,
+ "requires": {
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
+ }
+ },
+ "split2": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
+ "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^3.0.0"
+ }
+ }
+ }
+ },
+ "conventional-recommended-bump": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz",
+ "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==",
+ "dev": true,
+ "requires": {
+ "concat-stream": "^2.0.0",
+ "conventional-changelog-preset-loader": "^2.3.4",
+ "conventional-commits-filter": "^2.0.7",
+ "conventional-commits-parser": "^3.2.0",
+ "git-raw-commits": "^2.0.8",
+ "git-semver-tags": "^4.1.1",
+ "meow": "^8.0.0",
+ "q": "^1.5.1"
+ }
+ },
"convert-source-map": {
"version": "1.9.0",
"dev": true,
@@ -25620,6 +27328,12 @@
"d3-voronoi": {
"version": "1.1.2"
},
+ "dargs": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz",
+ "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==",
+ "dev": true
+ },
"dashdash": {
"version": "1.14.1",
"requires": {
@@ -25639,6 +27353,12 @@
"whatwg-url": "^12.0.0"
}
},
+ "dateformat": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
+ "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==",
+ "dev": true
+ },
"debug": {
"version": "4.3.4",
"requires": {
@@ -25648,6 +27368,30 @@
"decamelize": {
"version": "4.0.0"
},
+ "decamelize-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+ "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
+ "dev": true,
+ "requires": {
+ "decamelize": "^1.1.0",
+ "map-obj": "^1.0.0"
+ },
+ "dependencies": {
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "dev": true
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
+ "dev": true
+ }
+ }
+ },
"decimal.js": {
"version": "10.4.3",
"optional": true,
@@ -25840,6 +27584,12 @@
"version": "2.0.2",
"dev": true
},
+ "detect-newline": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
+ "dev": true
+ },
"detective": {
"version": "5.2.1",
"requires": {
@@ -25940,6 +27690,70 @@
"domelementtype": "1"
}
},
+ "dot-prop": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
+ "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+ "dev": true,
+ "requires": {
+ "is-obj": "^2.0.0"
+ }
+ },
+ "dotgitignore": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/dotgitignore/-/dotgitignore-2.1.0.tgz",
+ "integrity": "sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==",
+ "dev": true,
+ "requires": {
+ "find-up": "^3.0.0",
+ "minimatch": "^3.0.4"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "dev": true
+ }
+ }
+ },
"earcut": {
"version": "2.2.4"
},
@@ -26000,6 +27814,15 @@
"entities": {
"version": "4.5.0"
},
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
"es6-object-assign": {
"version": "1.1.0",
"dev": true
@@ -26718,6 +28541,60 @@
"has-symbols": "^1.0.3"
}
},
+ "get-pkg-repo": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz",
+ "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==",
+ "dev": true,
+ "requires": {
+ "@hutson/parse-repository-url": "^3.0.0",
+ "hosted-git-info": "^4.0.0",
+ "through2": "^2.0.0",
+ "yargs": "^16.2.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
"get-stdin": {
"version": "9.0.0"
},
@@ -26733,6 +28610,59 @@
"assert-plus": "^1.0.0"
}
},
+ "git-raw-commits": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz",
+ "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==",
+ "dev": true,
+ "requires": {
+ "dargs": "^7.0.0",
+ "lodash": "^4.17.15",
+ "meow": "^8.0.0",
+ "split2": "^3.0.0",
+ "through2": "^4.0.0"
+ },
+ "dependencies": {
+ "split2": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
+ "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^3.0.0"
+ }
+ }
+ }
+ },
+ "git-remote-origin-url": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz",
+ "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==",
+ "dev": true,
+ "requires": {
+ "gitconfiglocal": "^1.0.0",
+ "pify": "^2.3.0"
+ }
+ },
+ "git-semver-tags": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz",
+ "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==",
+ "dev": true,
+ "requires": {
+ "meow": "^8.0.0",
+ "semver": "^6.0.0"
+ }
+ },
+ "gitconfiglocal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz",
+ "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.2"
+ }
+ },
"github-from-package": {
"version": "0.0.0",
"dev": true
@@ -26844,6 +28774,19 @@
"growl": {
"version": "1.10.5"
},
+ "handlebars": {
+ "version": "4.7.8",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
+ "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.2",
+ "source-map": "^0.6.1",
+ "uglify-js": "^3.1.4",
+ "wordwrap": "^1.0.0"
+ }
+ },
"har-schema": {
"version": "2.0.0"
},
@@ -26868,6 +28811,12 @@
}
}
},
+ "hard-rejection": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
+ "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
+ "dev": true
+ },
"has": {
"version": "1.0.3",
"requires": {
@@ -26911,6 +28860,32 @@
"minimalistic-crypto-utils": "^1.0.1"
}
},
+ "hosted-git-info": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
"html-encoding-sniffer": {
"version": "3.0.0",
"optional": true,
@@ -27079,6 +29054,12 @@
"has-tostringtag": "^1.0.0"
}
},
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "dev": true
+ },
"is-binary-path": {
"version": "2.1.0",
"requires": {
@@ -27154,6 +29135,12 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
},
+ "is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+ "dev": true
+ },
"is-path-inside": {
"version": "3.0.3",
"dev": true
@@ -27182,6 +29169,15 @@
"is-stream": {
"version": "2.0.1"
},
+ "is-text-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz",
+ "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==",
+ "dev": true,
+ "requires": {
+ "text-extensions": "^1.0.0"
+ }
+ },
"is-typed-array": {
"version": "1.1.10",
"dev": true,
@@ -27199,6 +29195,12 @@
"is-unicode-supported": {
"version": "0.1.0"
},
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
"isexe": {
"version": "2.0.0"
},
@@ -27315,6 +29317,18 @@
"version": "2.5.2",
"dev": true
},
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+ "dev": true
+ },
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
"json-schema": {
"version": "0.4.0"
},
@@ -27571,6 +29585,32 @@
"resolved": "https://registry.npmjs.org/lineclip/-/lineclip-1.1.5.tgz",
"integrity": "sha512-KlA/wRSjpKl7tS9iRUdlG72oQ7qZ1IlVbVgHwoO10TBR/4gQ86uhKow6nlzMAJJhjCWKto8OeoAzzIzKSmN25A=="
},
+ "lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
+ },
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "dev": true
+ }
+ }
+ },
"local-pkg": {
"version": "0.4.3"
},
@@ -27590,6 +29630,12 @@
"version": "4.0.8",
"dev": true
},
+ "lodash.ismatch": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz",
+ "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==",
+ "dev": true
+ },
"lodash.merge": {
"version": "4.6.2",
"dev": true
@@ -27681,6 +29727,12 @@
"typescript": "^4.9.4"
}
},
+ "map-obj": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
+ "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
+ "dev": true
+ },
"maplibre-gl": {
"version": "4.1.2",
"requires": {
@@ -27734,6 +29786,139 @@
"mimic-function": "^5.0.0"
}
},
+ "meow": {
+ "version": "8.1.2",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz",
+ "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==",
+ "dev": true,
+ "requires": {
+ "@types/minimist": "^1.2.0",
+ "camelcase-keys": "^6.2.2",
+ "decamelize-keys": "^1.1.0",
+ "hard-rejection": "^2.1.0",
+ "minimist-options": "4.1.0",
+ "normalize-package-data": "^3.0.0",
+ "read-pkg-up": "^7.0.1",
+ "redent": "^3.0.0",
+ "trim-newlines": "^3.0.0",
+ "type-fest": "^0.18.0",
+ "yargs-parser": "^20.2.3"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "requires": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
+ }
+ }
+ },
+ "semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true
+ }
+ }
+ },
"merge2": {
"version": "1.4.1"
},
@@ -27843,6 +30028,25 @@
"minimist": {
"version": "1.2.8"
},
+ "minimist-options": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
+ "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0",
+ "kind-of": "^6.0.3"
+ },
+ "dependencies": {
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
+ "dev": true
+ }
+ }
+ },
"mkdirp": {
"version": "0.5.6",
"dev": true,
@@ -27926,6 +30130,12 @@
}
}
},
+ "modify-values": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz",
+ "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==",
+ "dev": true
+ },
"monaco-editor": {
"version": "0.46.0"
},
@@ -27995,6 +30205,12 @@
"negotiate": {
"version": "1.0.1"
},
+ "neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true
+ },
"ngraph.events": {
"version": "1.2.2"
},
@@ -28065,6 +30281,26 @@
"version": "2.0.8",
"dev": true
},
+ "normalize-package-data": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
+ "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^4.0.1",
+ "is-core-module": "^2.5.0",
+ "semver": "^7.3.4",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true
+ }
+ }
+ },
"normalize-path": {
"version": "3.0.0"
},
@@ -29737,6 +31973,12 @@
"p-limit": "^3.0.2"
}
},
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
"packet-reader": {
"version": "1.0.0"
},
@@ -29758,6 +32000,16 @@
"callsites": "^3.0.0"
}
},
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
"parse5": {
"version": "7.1.2",
"optional": true,
@@ -30017,6 +32269,12 @@
"process": {
"version": "0.11.10"
},
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true
+ },
"process-yargs-parser": {
"version": "2.1.0"
},
@@ -30078,6 +32336,12 @@
"punycode": {
"version": "2.3.0"
},
+ "q": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
+ "dev": true
+ },
"qrcode-generator": {
"version": "1.4.4"
},
@@ -30628,6 +32892,119 @@
"version": "0.2.0",
"dev": true
},
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
+ },
+ "dependencies": {
+ "hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "dev": true
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
+ "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^3.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "dev": true
+ }
+ }
+ },
"readable-stream": {
"version": "3.6.0",
"requires": {
@@ -30654,6 +33031,24 @@
"resolve": "^1.20.0"
}
},
+ "redent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "dev": true,
+ "requires": {
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
+ },
+ "dependencies": {
+ "indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "dev": true
+ }
+ }
+ },
"regenerate": {
"version": "1.4.2",
"dev": true
@@ -31260,6 +33655,38 @@
}
}
},
+ "spdx-correct": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.20",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz",
+ "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==",
+ "dev": true
+ },
"splaytree": {
"version": "3.1.1"
},
@@ -31268,6 +33695,15 @@
"resolved": "https://registry.npmjs.org/splaytree-ts/-/splaytree-ts-1.0.1.tgz",
"integrity": "sha512-B+VzCm33/KEchi/fzT6/3NRHm8k5+Kf37SBQO3meHHS/tK2xBnIm4ZvusQ1wUpHgKMCCqEWgXnwFXAa1nD289g=="
},
+ "split": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+ "dev": true,
+ "requires": {
+ "through": "2"
+ }
+ },
"split-string": {
"version": "3.1.0",
"requires": {
@@ -31316,6 +33752,45 @@
"version": "2.5.0",
"optional": true
},
+ "standard-version": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.5.0.tgz",
+ "integrity": "sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "conventional-changelog": "3.1.25",
+ "conventional-changelog-config-spec": "2.1.0",
+ "conventional-changelog-conventionalcommits": "4.6.3",
+ "conventional-recommended-bump": "6.1.0",
+ "detect-indent": "^6.0.0",
+ "detect-newline": "^3.1.0",
+ "dotgitignore": "^2.1.0",
+ "figures": "^3.1.0",
+ "find-up": "^5.0.0",
+ "git-semver-tags": "^4.0.0",
+ "semver": "^7.1.1",
+ "stringify-package": "^1.0.1",
+ "yargs": "^16.0.0"
+ },
+ "dependencies": {
+ "figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true
+ }
+ }
+ },
"state-local": {
"version": "1.0.7",
"dev": true
@@ -31357,6 +33832,12 @@
"strip-ansi": "^6.0.1"
}
},
+ "stringify-package": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz",
+ "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==",
+ "dev": true
+ },
"strip-ansi": {
"version": "6.0.1",
"requires": {
@@ -31644,6 +34125,12 @@
}
}
},
+ "text-extensions": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz",
+ "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==",
+ "dev": true
+ },
"text-hex": {
"version": "1.0.0"
},
@@ -31658,6 +34145,21 @@
"version": "0.2.0",
"dev": true
},
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "dev": true
+ },
+ "through2": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
+ "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "3"
+ }
+ },
"tiny-inflate": {
"version": "1.0.3"
},
@@ -31733,6 +34235,12 @@
"punycode": "^2.3.0"
}
},
+ "trim-newlines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
+ "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
+ "dev": true
+ },
"triple-beam": {
"version": "1.4.1"
},
@@ -32291,6 +34799,12 @@
"type-detect": {
"version": "4.0.8"
},
+ "type-fest": {
+ "version": "0.18.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
+ "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
+ "dev": true
+ },
"typedarray": {
"version": "0.0.6"
},
@@ -32352,6 +34866,13 @@
"ufo": {
"version": "1.0.1"
},
+ "uglify-js": {
+ "version": "3.19.3",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
+ "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
+ "dev": true,
+ "optional": true
+ },
"underscore": {
"version": "1.7.0"
},
@@ -32461,6 +34982,16 @@
"validate-iri": {
"version": "1.0.1"
},
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
"verror": {
"version": "1.10.0",
"requires": {
@@ -32668,6 +35199,12 @@
"word-wrap": {
"version": "1.2.4"
},
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
+ "dev": true
+ },
"workerpool": {
"version": "6.2.0"
},
diff --git a/package.json b/package.json
index 34b3f23cf..ec60efcbb 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "mapcomplete",
- "version": "0.47.0",
+ "version": "0.46.8",
"repository": "https://github.com/pietervdvn/MapComplete",
"description": "A small website to edit OSM easily",
"bugs": "https://github.com/pietervdvn/MapComplete/issues",
@@ -123,6 +123,10 @@
"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",
+ "release": "standard-version",
+ "release:minor": "standard-version --release-as minor",
+ "release:patch": "standard-version --release-as patch",
+ "release:major": "standard-version --release-as major",
"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",
@@ -252,6 +256,7 @@
"read-file": "^0.2.0",
"sass": "^1.58.0",
"sharp": "^0.32.6",
+ "standard-version": "^9.5.0",
"svelte": "^3.55.1",
"svelte-check": "^3.0.2",
"svelte-preprocess": "^5.0.1",
diff --git a/public/css/index-tailwind-output.css b/public/css/index-tailwind-output.css
index 733b5ddd1..4e5afe54b 100644
--- a/public/css/index-tailwind-output.css
+++ b/public/css/index-tailwind-output.css
@@ -1769,14 +1769,14 @@ input[type="range"].range-lg::-moz-range-thumb {
height: 3.5rem;
}
-.h-16 {
- height: 4rem;
-}
-
.h-48 {
height: 12rem;
}
+.h-16 {
+ height: 4rem;
+}
+
.h-40 {
height: 10rem;
}
@@ -4040,6 +4040,10 @@ input[type="range"].range-lg::-moz-range-thumb {
padding-right: 1rem;
}
+.pt-2 {
+ padding-top: 0.5rem;
+}
+
.pl-1 {
padding-left: 0.25rem;
}
@@ -4723,11 +4727,6 @@ input[type="range"].range-lg::-moz-range-thumb {
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
-.shadow-transparent {
- --tw-shadow-color: transparent;
- --tw-shadow: var(--tw-shadow-colored);
-}
-
.shadow-gray-300 {
--tw-shadow-color: #D1D5DB;
--tw-shadow: var(--tw-shadow-colored);
@@ -8153,6 +8152,10 @@ svg.apply-fill path {
height: 2.75rem;
}
+ .sm\:h-32 {
+ height: 8rem;
+ }
+
.sm\:h-64 {
height: 16rem;
}
@@ -8346,6 +8349,10 @@ svg.apply-fill path {
display: none;
}
+ .md\:h-64 {
+ height: 16rem;
+ }
+
.md\:h-auto {
height: auto;
}
diff --git a/scripts/initFiles.sh b/scripts/initFiles.sh
index a051043dc..95d0c9317 100755
--- a/scripts/initFiles.sh
+++ b/scripts/initFiles.sh
@@ -2,14 +2,15 @@
# Creates various empty (stub) version of files
-mkdir -p ./src/assets/generated/layers;
+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
+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
echo '{}' > ./src/assets/generated/layers/search.json
- echo '[]' > ./src/assets/generated/theme_overview.json
+echo '[]' > ./src/assets/generated/theme_overview.json
+echo '{}' > ./src/assets/generated/layers/geocoded_image.json
diff --git a/src/Logic/ImageProviders/ImageProvider.ts b/src/Logic/ImageProviders/ImageProvider.ts
index c59251de2..a89ee8600 100644
--- a/src/Logic/ImageProviders/ImageProvider.ts
+++ b/src/Logic/ImageProviders/ImageProvider.ts
@@ -9,7 +9,14 @@ export interface ProvidedImage {
key: string
provider: ImageProvider
id: string
- date?: Date
+ date?: Date,
+ /**
+ * Compass angle of the taken image
+ * 0 = north, 90° = East
+ */
+ rotation?: number
+ lat?: number,
+ lon?: number
}
export default abstract class ImageProvider {
diff --git a/src/Logic/ImageProviders/Mapillary.ts b/src/Logic/ImageProviders/Mapillary.ts
index 1a5a51715..3ce222714 100644
--- a/src/Logic/ImageProviders/Mapillary.ts
+++ b/src/Logic/ImageProviders/Mapillary.ts
@@ -162,12 +162,14 @@ export class Mapillary extends ImageProvider {
const metadataUrl =
"https://graph.mapillary.com/" +
mapillaryId +
- "?fields=thumb_1024_url,thumb_original_url,captured_at,creator&access_token=" +
+ "?fields=thumb_1024_url,thumb_original_url,captured_at,compass_angle,geometry,creator&access_token=" +
Constants.mapillary_client_token_v4
const response = await Utils.downloadJsonCached(metadataUrl, 60 * 60)
const url = response["thumb_1024_url"]
const url_hd = response["thumb_original_url"]
const date = new Date()
+ const rotation = (720 - Number(response["compass_angle"])) % 360
+ const geometry = response["geometry"]
date.setTime(response["captured_at"])
return {
id: "" + mapillaryId,
@@ -176,6 +178,9 @@ export class Mapillary extends ImageProvider {
provider: this,
date,
key,
+ rotation,
+ lat: geometry.coordinates[1],
+ lon: geometry.coordinates[0]
}
}
}
diff --git a/src/Logic/ImageProviders/WikidataImageProvider.ts b/src/Logic/ImageProviders/WikidataImageProvider.ts
index ab5017c73..ded3396da 100644
--- a/src/Logic/ImageProviders/WikidataImageProvider.ts
+++ b/src/Logic/ImageProviders/WikidataImageProvider.ts
@@ -4,11 +4,14 @@ import { WikimediaImageProvider } from "./WikimediaImageProvider"
import Wikidata from "../Web/Wikidata"
import SvelteUIElement from "../../UI/Base/SvelteUIElement"
import * as Wikidata_icon from "../../assets/svg/Wikidata.svelte"
+import { Utils } from "../../Utils"
export class WikidataImageProvider extends ImageProvider {
public static readonly singleton = new WikidataImageProvider()
public readonly defaultKeyPrefixes = ["wikidata"]
public readonly name = "Wikidata"
+ private static readonly keyBlacklist: ReadonlySet = new Set(
+ ["mapillary", ...Utils.Times(i => "mapillary:" + i, 10)])
private constructor() {
super()
@@ -23,6 +26,9 @@ export class WikidataImageProvider extends ImageProvider {
}
public async ExtractUrls(key: string, value: string): Promise[]> {
+ if (WikidataImageProvider.keyBlacklist.has(key)) {
+ return []
+ }
const entity = await Wikidata.LoadWikidataEntryAsync(value)
if (entity === undefined) {
return []
diff --git a/src/Logic/State/UserRelatedState.ts b/src/Logic/State/UserRelatedState.ts
index c2e78ffbb..b7fe0bc2c 100644
--- a/src/Logic/State/UserRelatedState.ts
+++ b/src/Logic/State/UserRelatedState.ts
@@ -164,6 +164,8 @@ export default class UserRelatedState {
"button" | "button_click_right" | "button_click" | "click" | "click_right"
>("button_click_right")
+ public readonly showScale : UIEventSource
+
/**
* Preferences as tags exposes many preferences and state properties as record.
* This is used to bridge the internal state with the usersettings.json layerconfig file
@@ -209,6 +211,7 @@ export default class UserRelatedState {
"preferences-add-new-mode",
"button_click_right",
)
+ this.showScale = UIEventSource.asBoolean(this.osmConnection.GetPreference("preference-show-scale","false"))
this.imageLicense = this.osmConnection.getPreference("pictures-license", "CC0")
this.installedUserThemes = UserRelatedState.initInstalledUserThemes(osmConnection)
diff --git a/src/Logic/Web/NearbyImagesSearch.ts b/src/Logic/Web/NearbyImagesSearch.ts
index 7cd45e089..c4dc40dcd 100644
--- a/src/Logic/Web/NearbyImagesSearch.ts
+++ b/src/Logic/Web/NearbyImagesSearch.ts
@@ -56,7 +56,7 @@ export interface P4CPicture {
author?
license?
detailsUrl?: string
- direction?
+ direction?: number,
osmTags?: object /*To copy straight into OSM!*/
thumbUrl: string
details: {
diff --git a/src/Models/Constants.ts b/src/Models/Constants.ts
index 98ebeeeda..c10cdd438 100644
--- a/src/Models/Constants.ts
+++ b/src/Models/Constants.ts
@@ -26,7 +26,8 @@ export default class Constants {
"last_click",
"favourite",
"summary",
- "search"
+ "search",
+ "geocoded_image"
] as const
/**
* Special layers which are not included in a theme by default
diff --git a/src/Models/MapProperties.ts b/src/Models/MapProperties.ts
index 39e8b6cd2..336b3686c 100644
--- a/src/Models/MapProperties.ts
+++ b/src/Models/MapProperties.ts
@@ -22,6 +22,7 @@ export interface MapProperties {
readonly lastClickLocation: Store<{ lon: number; lat: number }>
readonly allowZooming: UIEventSource
readonly useTerrain: Store
+ readonly showScale: UIEventSource
/**
* Triggered when the user navigated by using the keyboard.
diff --git a/src/Models/ThemeConfig/Conversion/Validation.ts b/src/Models/ThemeConfig/Conversion/Validation.ts
index f1827f2c2..84f0463d4 100644
--- a/src/Models/ThemeConfig/Conversion/Validation.ts
+++ b/src/Models/ThemeConfig/Conversion/Validation.ts
@@ -722,7 +722,7 @@ export class ValidatePointRendering extends DesugaringStep 0)) {
context
.enter("location")
.err(
diff --git a/src/Models/ThemeConfig/FilterConfig.ts b/src/Models/ThemeConfig/FilterConfig.ts
index 306bd50de..c2fcae675 100644
--- a/src/Models/ThemeConfig/FilterConfig.ts
+++ b/src/Models/ThemeConfig/FilterConfig.ts
@@ -9,6 +9,7 @@ import { QueryParameters } from "../../Logic/Web/QueryParameters"
import { Utils } from "../../Utils"
import { RegexTag } from "../../Logic/Tags/RegexTag"
import MarkdownUtils from "../../Utils/MarkdownUtils"
+import Validators, { ValidatorType } from "../../UI/InputElement/Validators"
export type FilterConfigOption = {
question: Translation
@@ -18,7 +19,7 @@ export type FilterConfigOption = {
osmTags: TagsFilter | undefined
/* Only set if fields are present. Used to create `osmTags` (which are used to _actually_ filter) when the field is written*/
readonly originalTagsSpec: TagConfigJson
- fields: { name: string; type: string }[]
+ fields: { name: string; type: ValidatorType }[]
}
export default class FilterConfig {
public readonly id: string
@@ -58,8 +59,11 @@ export default class FilterConfig {
throw `Invalid filter: no question given at ${ctx}`
}
- const fields: { name: string; type: string }[] = (option.fields ?? []).map((f, i) => {
- const type = f.type ?? "string"
+ const fields: { name: string; type: ValidatorType }[] = (option.fields ?? []).map((f, i) => {
+ const type = f.type ?? "string"
+ if(Validators.availableTypes.indexOf(type) < 0){
+ throw `Invalid filter: type is not a valid validator. Did you mean one of ${Utils.sortedByLevenshteinDistance(type, Validators.availableTypes, x => x).slice(0, 3)}`
+ }
// Type is validated against 'ValidatedTextField' in Validation.ts, in ValidateFilterConfig
if (f.name === undefined || f.name === "" || f.name.match(/[a-z0-9_-]+/) == null) {
throw `Invalid filter: a variable name should match [a-z0-9_-]+ at ${ctx}.fields[${i}]`
diff --git a/src/Models/ThemeConfig/TagRenderingConfig.ts b/src/Models/ThemeConfig/TagRenderingConfig.ts
index e2a4c1538..153abe36c 100644
--- a/src/Models/ThemeConfig/TagRenderingConfig.ts
+++ b/src/Models/ThemeConfig/TagRenderingConfig.ts
@@ -926,7 +926,7 @@ export default class TagRenderingConfig {
* Might give undefined if setting to unknown is not possible
*/
public removeToSetUnknown(partOfLayer: LayerConfig, currentTags: Record): string[] | undefined {
- if(!partOfLayer?.source || !currentTags){
+ if (!partOfLayer?.source || !currentTags) {
return
}
const toDelete = new Set()
@@ -1001,12 +1001,17 @@ export class TagRenderingConfigUtils {
// The original mappings get "priorityIf" set
const oldMappingsCloned =
clone.mappings?.map(
- (m) =>
- {
+ (m) => {
+ const mapping = {
...m,
- addExtraTags: [new Tag("nobrand", "")],
priorityIf: m.priorityIf ?? TagUtils.Tag("id~*"),
- },
+ }
+ if (m.if.usedKeys().indexOf("nobrand") < 0) {
+ // Erase 'nobrand=yes', unless this option explicitly sets it
+ mapping["addExtraTags"] = [new Tag("nobrand", "")]
+ }
+ return mapping
+ },
) ?? []
clone.mappings = [...oldMappingsCloned, ...extraMappings]
return clone
diff --git a/src/Models/ThemeViewState.ts b/src/Models/ThemeViewState.ts
index 070b5d713..187f39464 100644
--- a/src/Models/ThemeViewState.ts
+++ b/src/Models/ThemeViewState.ts
@@ -2,7 +2,11 @@ import LayoutConfig from "./ThemeConfig/LayoutConfig"
import { SpecialVisualizationState } from "../UI/SpecialVisualization"
import { Changes } from "../Logic/Osm/Changes"
import { Store, UIEventSource } from "../Logic/UIEventSource"
-import { FeatureSource, IndexedFeatureSource, WritableFeatureSource } from "../Logic/FeatureSource/FeatureSource"
+import {
+ FeatureSource,
+ IndexedFeatureSource,
+ WritableFeatureSource
+} from "../Logic/FeatureSource/FeatureSource"
import { OsmConnection } from "../Logic/Osm/OsmConnection"
import { ExportableMap, MapProperties } from "./MapProperties"
import LayerState from "../Logic/State/LayerState"
@@ -46,7 +50,9 @@ import BackgroundLayerResetter from "../Logic/Actors/BackgroundLayerResetter"
import SaveFeatureSourceToLocalStorage from "../Logic/FeatureSource/Actors/SaveFeatureSourceToLocalStorage"
import BBoxFeatureSource from "../Logic/FeatureSource/Sources/TouchesBboxFeatureSource"
import ThemeViewStateHashActor from "../Logic/Web/ThemeViewStateHashActor"
-import NoElementsInViewDetector, { FeatureViewState } from "../Logic/Actors/NoElementsInViewDetector"
+import NoElementsInViewDetector, {
+ FeatureViewState
+} from "../Logic/Actors/NoElementsInViewDetector"
import FilteredLayer from "./FilteredLayer"
import { PreferredRasterLayerSelector } from "../Logic/Actors/PreferredRasterLayerSelector"
import { ImageUploadManager } from "../Logic/ImageProviders/ImageUploadManager"
@@ -150,6 +156,10 @@ export default class ThemeViewState implements SpecialVisualizationState {
public readonly toCacheSavers: ReadonlyMap
public readonly nearbyImageSearcher: CombinedFetcher
+ /**
+ * Geocoded images that should be shown on the main map; probably only the currently hovered image
+ */
+ public readonly geocodedImages: UIEventSource = new UIEventSource([ ])
public readonly searchState: SearchState
@@ -773,6 +783,7 @@ export default class ThemeViewState implements SpecialVisualizationState {
gps_location: this.geolocation.currentUserLocation,
gps_location_history: this.geolocation.historicalUserLocations,
gps_track: this.geolocation.historicalUserLocationsTrack,
+ geocoded_image: new StaticFeatureSource(this.geocodedImages),
selected_element: new StaticFeatureSource(
this.selectedElement.map((f) => (f === undefined ? empty : [f]))
),
@@ -898,6 +909,7 @@ export default class ThemeViewState implements SpecialVisualizationState {
this.selectedElement.addCallback((selected) => {
if (selected === undefined) {
this.focusOnMap()
+ this.geocodedImages.set([])
} else {
this.lastClickObject.clear()
}
@@ -934,6 +946,9 @@ export default class ThemeViewState implements SpecialVisualizationState {
this.userRelatedState.recentlyVisitedSearch.add(r)
})
+ this.userRelatedState.showScale.addCallbackAndRun(showScale => {
+ this.mapProperties.showScale.set(showScale)
+ })
new ThemeViewStateHashActor(this)
new MetaTagging(this)
new TitleHandler(this.selectedElement, this.featureProperties, this)
diff --git a/src/UI/BigComponents/FilterviewWithFields.svelte b/src/UI/BigComponents/FilterviewWithFields.svelte
index e3a903106..9d9a52e43 100644
--- a/src/UI/BigComponents/FilterviewWithFields.svelte
+++ b/src/UI/BigComponents/FilterviewWithFields.svelte
@@ -6,7 +6,8 @@
import { UIEventSource } from "../../Logic/UIEventSource"
import { onDestroy } from "svelte"
import { Utils } from "../../Utils"
- import Tr from "../Base/Tr.svelte"
+ import type { ValidatorType } from "../InputElement/Validators"
+ import InputHelper from "../InputElement/InputHelper.svelte"
export let filteredLayer: FilteredLayer
export let option: FilterConfigOption
@@ -18,7 +19,7 @@
parts = Utils.splitIntoSubstitutionParts(template)
}
let fieldValues: Record> = {}
- let fieldTypes: Record = {}
+ let fieldTypes: Record = {}
let appliedFilter = >filteredLayer.appliedFilters.get(id)
let initialState: Record = JSON.parse(appliedFilter?.data ?? "{}")
@@ -35,25 +36,30 @@
appliedFilter?.setData(FilteredLayer.fieldsToString(properties))
}
+ let firstValue : UIEventSource
for (const field of option.fields) {
// A bit of cheating: the 'parts' will have '}' suffixed for fields
const src = new UIEventSource(initialState[field.name] ?? "")
+ firstValue ??= src
fieldTypes[field.name] = field.type
+ console.log(field.name, "-->", field.type)
fieldValues[field.name] = src
onDestroy(
src.stabilized(200).addCallback(() => {
setFields()
- })
+ }),
)
}
-
+
0}>
{#each parts as part, i}
{#if part["subs"]}
-
+
+
+
{:else}
{@html part["message"]}
diff --git a/src/UI/BigComponents/NewPointLocationInput.svelte b/src/UI/BigComponents/NewPointLocationInput.svelte
index f677841f1..ced6c8f85 100644
--- a/src/UI/BigComponents/NewPointLocationInput.svelte
+++ b/src/UI/BigComponents/NewPointLocationInput.svelte
@@ -34,7 +34,12 @@
export let coordinate: { lon: number; lat: number } = undefined
/**
- * The center of the map at all times
+ * Max distance that one is allowed to move, to prevent to stray too much
+ */
+ export let maxDistanceInMeters = 50
+
+ /**
+ * The resulting location; either the map center or the snapped coordinate
* If undefined at the beginning, 'coordinate' will be used
*/
export let value: UIEventSource<{ lon: number; lat: number }>
@@ -57,11 +62,6 @@
export let snappedTo: UIEventSource
- let preciseLocation: UIEventSource<{ lon: number; lat: number }> = new UIEventSource<{
- lon: number
- lat: number
- }>(undefined)
-
const map: UIEventSource = new UIEventSource(undefined)
export let mapProperties: Partial & { location } = {
zoom: new UIEventSource(19),
@@ -69,10 +69,7 @@
/*If no snapping needed: the value is simply the map location;
* If snapping is needed: the value will be set later on by the snapping feature source
* */
- location:
- snapToLayers?.length > 0
- ? new UIEventSource<{ lon: number; lat: number }>(coordinate)
- : value,
+ location: new UIEventSource<{ lon: number; lat: number }>(coordinate),
bounds: new UIEventSource(undefined),
allowMoving: new UIEventSource(true),
allowZooming: new UIEventSource(true),
@@ -143,15 +140,16 @@
})
withCorrectedAttributes.features.addCallbackAndRunD((f) => console.log("Snapped point is", f))
}
+
0 ? new UIEventSource(undefined) : value}
initialCoordinate={coordinate}
- maxDistanceInMeters={50}
+ {maxDistanceInMeters}
>
diff --git a/src/UI/Comparison/ComparisonTable.svelte b/src/UI/Comparison/ComparisonTable.svelte
index 9c20fb2bf..0a8bc1626 100644
--- a/src/UI/Comparison/ComparisonTable.svelte
+++ b/src/UI/Comparison/ComparisonTable.svelte
@@ -132,6 +132,7 @@
{#each $unknownImages as image (image)}
let fallbackImage: string = undefined
@@ -20,19 +22,43 @@
let imgEl: HTMLImageElement
export let imgClass: string = undefined
+ export let state: SpecialVisualizationState = undefined
export let attributionFormat: "minimal" | "medium" | "large" = "medium"
export let previewedImage: UIEventSource
export let canZoom = previewedImage !== undefined
let loaded = false
- let showBigPreview = new UIEventSource(false)
- onDestroy(showBigPreview.addCallbackAndRun(shown=>{
- if(!shown){
+ let showBigPreview = new UIEventSource(false)
+ onDestroy(showBigPreview.addCallbackAndRun(shown => {
+ if (!shown) {
previewedImage.set(false)
}
}))
onDestroy(previewedImage.addCallbackAndRun(previewedImage => {
showBigPreview.set(previewedImage?.id === image.id)
}))
+
+ function highlight(entered: boolean = true) {
+ if (!entered) {
+ state?.geocodedImages.set([])
+ return
+ }
+ if (isNaN(image.lon) || isNaN(image.lat)) {
+ return
+ }
+ const f: Feature = {
+ type: "Feature",
+ properties: {
+ id: image.id,
+ rotation: image.rotation
+ },
+ geometry: {
+ type: "Point",
+ coordinates: [image.lon, image.lat]
+ }
+ }
+ console.log(f)
+ state?.geocodedImages.set([f])
+ }
@@ -48,7 +74,10 @@