forked from MapComplete/MapComplete
		
	Merge branch 'project/natuurpunt' into extra-filter
This commit is contained in:
		
						commit
						887f298bd8
					
				
					 9 changed files with 299 additions and 343 deletions
				
			
		
							
								
								
									
										
											BIN
										
									
								
								.DS_Store
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.DS_Store
									
										
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							|  | @ -14,3 +14,4 @@ Docs/Tools/stats.*.json | |||
| Docs/Tools/stats.csv | ||||
| missing_translations.txt | ||||
| *.swp | ||||
| .DS_Store | ||||
|  |  | |||
|  | @ -50,7 +50,7 @@ export default class GeoJsonSource implements FeatureSource { | |||
|      * @param locationControl | ||||
|      * @constructor | ||||
|      */ | ||||
|     public static ConstructMultiSource(flayers: { isDisplayed: UIEventSource<boolean>, layerDef: LayerConfig }[], locationControl: UIEventSource<Loc>): GeoJsonSource[] { | ||||
|     public static ConstructMultiSource(flayers: { isDisplayed: UIEventSource<boolean>, layerDef: LayerConfig }[], locationControl: UIEventSource<Loc>): FeatureSource[] { | ||||
| 
 | ||||
|         const flayersPerSource = new Map<string, { isDisplayed: UIEventSource<boolean>, layerDef: LayerConfig }[]>(); | ||||
|         for (const flayer of flayers) { | ||||
|  | @ -65,7 +65,7 @@ export default class GeoJsonSource implements FeatureSource { | |||
|             flayersPerSource.get(url).push(flayer) | ||||
|         } | ||||
| 
 | ||||
|         const sources: GeoJsonSource[] = [] | ||||
|         const sources: FeatureSource[] = [] | ||||
| 
 | ||||
|         flayersPerSource.forEach((flayers, key) => { | ||||
|             if (flayers.length == 1) { | ||||
|  | @ -112,7 +112,18 @@ export default class GeoJsonSource implements FeatureSource { | |||
|         } | ||||
| 
 | ||||
|         const neededTiles = locationControl.map( | ||||
|             _ => { | ||||
|             location => { | ||||
|                 if (!flayer.isDisplayed.data) { | ||||
|                     // No need to download! - the layer is disabled
 | ||||
|                     return undefined; | ||||
|                 } | ||||
| 
 | ||||
|                 if (location.zoom < flayer.layerDef.minzoom || | ||||
|                     location.zoom > flayer.layerDef.maxzoom) { | ||||
|                     // No need to download! - the layer is disabled
 | ||||
|                     return undefined; | ||||
|                 } | ||||
| 
 | ||||
|                 // Yup, this is cheating to just get the bounds here
 | ||||
|                 const bounds = State.state.leafletMap.data.getBounds() | ||||
|                 const tileRange = Utils.TileRangeBetween(zoomLevel, bounds.getNorth(), bounds.getEast(), bounds.getSouth(), bounds.getWest()) | ||||
|  | @ -126,14 +137,6 @@ export default class GeoJsonSource implements FeatureSource { | |||
|             if (needed === undefined) { | ||||
|                 return; | ||||
|             } | ||||
|             if (!flayer.isDisplayed.data) { | ||||
|                 // No need to download! - the layer is disabled
 | ||||
|                 return; | ||||
|             } | ||||
| 
 | ||||
|             if (locationControl.data.zoom < flayer.layerDef.minzoom) { | ||||
|                 return; | ||||
|             } | ||||
| 
 | ||||
|             needed.forEach(neededTile => { | ||||
|                 if (loadedTiles.has(neededTile)) { | ||||
|  |  | |||
							
								
								
									
										25
									
								
								Logic/FeatureSource/ZoomRespectingFeatureSource.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								Logic/FeatureSource/ZoomRespectingFeatureSource.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,25 @@ | |||
| import FeatureSource from "./FeatureSource"; | ||||
| import {UIEventSource} from "../UIEventSource"; | ||||
| import LayerConfig from "../../Customizations/JSON/LayerConfig"; | ||||
| 
 | ||||
| export default class ZoomRespectingFeatureSource implements FeatureSource{ | ||||
|    public readonly features: UIEventSource<{ feature: any; freshness: Date }[]>; | ||||
|    public readonly name: string; | ||||
|      | ||||
|    constructor(layerConfig: LayerConfig, location: UIEventSource<{zoom: number}>, upstream: FeatureSource) { | ||||
|        this.name = "zoomrespecting("+upstream.name+")" | ||||
|        const empty = [] | ||||
|        this.features = upstream.features.map( | ||||
|            features => { | ||||
|                const z = location.data.zoom | ||||
|               | ||||
|                if(layerConfig.minzoom < z || layerConfig.maxzoom > z){ | ||||
|                    return empty | ||||
|                } | ||||
|                 | ||||
|                 | ||||
|                return features | ||||
|            },[location] | ||||
|        ) | ||||
|    } | ||||
| } | ||||
|  | @ -40,7 +40,7 @@ | |||
|           "geoJsonZoomLevel": 12, | ||||
|           "isOsmCache": true | ||||
|         }, | ||||
|         "minzoom": "13", | ||||
|         "minzoom": 13, | ||||
|         "icon": { | ||||
|           "render": "circle:#FE6F32;./assets/themes/natuurpunt/nature_reserve.svg" | ||||
|         } | ||||
|  | @ -56,9 +56,11 @@ | |||
|               "operator~.*[nN]atuurpunt.*" | ||||
|             ] | ||||
|           }, | ||||
|           "geoJson": "https://pietervdvn.github.io/natuurpunt_cache/natuurpunt_nature_reserve_points.geojson" | ||||
|           "geoJson": "https://pietervdvn.github.io/natuurpunt_cache/natuurpunt_nature_reserve_points.geojson", | ||||
|           "isOsmCache": "duplicate" | ||||
|         }, | ||||
|         "minzoom": "0", | ||||
|         "minzoom": 1, | ||||
|         "maxzoom": 13, | ||||
|         "icon": { | ||||
|           "render": "circle:#FE6F32;./assets/themes/natuurpunt/nature_reserve.svg" | ||||
|         } | ||||
|  |  | |||
							
								
								
									
										483
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										483
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							|  | @ -45,7 +45,7 @@ | |||
|         "parcel": "^1.2.4", | ||||
|         "postcss": "^7.0.36", | ||||
|         "prompt-sync": "^4.2.0", | ||||
|         "sharp": "^0.27.0", | ||||
|         "sharp": "^0.28.3", | ||||
|         "tslint": "^6.1.3" | ||||
|       }, | ||||
|       "devDependencies": { | ||||
|  | @ -3125,11 +3125,6 @@ | |||
|         "node": ">=0.10.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/array-flatten": { | ||||
|       "version": "3.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz", | ||||
|       "integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==" | ||||
|     }, | ||||
|     "node_modules/array-unique": { | ||||
|       "version": "0.3.2", | ||||
|       "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", | ||||
|  | @ -3893,23 +3888,23 @@ | |||
|       } | ||||
|     }, | ||||
|     "node_modules/chokidar": { | ||||
|       "version": "3.5.1", | ||||
|       "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", | ||||
|       "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", | ||||
|       "version": "3.5.2", | ||||
|       "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", | ||||
|       "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", | ||||
|       "dependencies": { | ||||
|         "anymatch": "~3.1.1", | ||||
|         "anymatch": "~3.1.2", | ||||
|         "braces": "~3.0.2", | ||||
|         "glob-parent": "~5.1.0", | ||||
|         "glob-parent": "~5.1.2", | ||||
|         "is-binary-path": "~2.1.0", | ||||
|         "is-glob": "~4.0.1", | ||||
|         "normalize-path": "~3.0.0", | ||||
|         "readdirp": "~3.5.0" | ||||
|         "readdirp": "~3.6.0" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">= 8.10.0" | ||||
|       }, | ||||
|       "optionalDependencies": { | ||||
|         "fsevents": "~2.3.1" | ||||
|         "fsevents": "~2.3.2" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/chownr": { | ||||
|  | @ -4020,12 +4015,12 @@ | |||
|       } | ||||
|     }, | ||||
|     "node_modules/color": { | ||||
|       "version": "3.1.3", | ||||
|       "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", | ||||
|       "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", | ||||
|       "version": "3.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", | ||||
|       "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", | ||||
|       "dependencies": { | ||||
|         "color-convert": "^1.9.1", | ||||
|         "color-string": "^1.5.4" | ||||
|         "color-convert": "^1.9.3", | ||||
|         "color-string": "^1.6.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/color-convert": { | ||||
|  | @ -4042,9 +4037,9 @@ | |||
|       "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" | ||||
|     }, | ||||
|     "node_modules/color-string": { | ||||
|       "version": "1.5.5", | ||||
|       "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", | ||||
|       "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", | ||||
|       "version": "1.6.0", | ||||
|       "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz", | ||||
|       "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==", | ||||
|       "dependencies": { | ||||
|         "color-name": "^1.0.0", | ||||
|         "simple-swizzle": "^0.2.2" | ||||
|  | @ -4212,7 +4207,6 @@ | |||
|       "version": "3.15.2", | ||||
|       "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.15.2.tgz", | ||||
|       "integrity": "sha512-D42L7RYh1J2grW8ttxoY1+17Y4wXZeKe7uyplAI3FkNQyI5OgBIAjUfFiTPfL1rs0qLpxaabITNbjKl1Sp82tA==", | ||||
|       "hasInstallScript": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "node_modules/core-util-is": { | ||||
|  | @ -4960,9 +4954,9 @@ | |||
|       } | ||||
|     }, | ||||
|     "node_modules/didyoumean": { | ||||
|       "version": "1.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.1.tgz", | ||||
|       "integrity": "sha1-6S7f2tplN9SE1zwBcv0eugxJdv8=" | ||||
|       "version": "1.2.2", | ||||
|       "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", | ||||
|       "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" | ||||
|     }, | ||||
|     "node_modules/diff": { | ||||
|       "version": "4.0.2", | ||||
|  | @ -5557,16 +5551,15 @@ | |||
|       "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" | ||||
|     }, | ||||
|     "node_modules/fast-glob": { | ||||
|       "version": "3.2.5", | ||||
|       "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", | ||||
|       "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", | ||||
|       "version": "3.2.7", | ||||
|       "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", | ||||
|       "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", | ||||
|       "dependencies": { | ||||
|         "@nodelib/fs.stat": "^2.0.2", | ||||
|         "@nodelib/fs.walk": "^1.2.3", | ||||
|         "glob-parent": "^5.1.0", | ||||
|         "glob-parent": "^5.1.2", | ||||
|         "merge2": "^1.3.0", | ||||
|         "micromatch": "^4.0.2", | ||||
|         "picomatch": "^2.2.1" | ||||
|         "micromatch": "^4.0.4" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=8" | ||||
|  | @ -7343,7 +7336,6 @@ | |||
|       "version": "3.15.2", | ||||
|       "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.15.2.tgz", | ||||
|       "integrity": "sha512-tKs41J7NJVuaya8DxIOCnl8QuPHx5/ZVbFo1oKgVl1qHFBBrDctzQGtuLjPpRdNTWmKPH6oEvgN/MUID+l485Q==", | ||||
|       "hasInstallScript": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "node_modules/jsprim": { | ||||
|  | @ -9505,9 +9497,9 @@ | |||
|       "optional": true | ||||
|     }, | ||||
|     "node_modules/nanoid": { | ||||
|       "version": "3.1.22", | ||||
|       "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz", | ||||
|       "integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==", | ||||
|       "version": "3.1.23", | ||||
|       "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", | ||||
|       "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", | ||||
|       "bin": { | ||||
|         "nanoid": "bin/nanoid.cjs" | ||||
|       }, | ||||
|  | @ -9784,9 +9776,9 @@ | |||
|       } | ||||
|     }, | ||||
|     "node_modules/object-hash": { | ||||
|       "version": "2.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.1.1.tgz", | ||||
|       "integrity": "sha512-VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ==", | ||||
|       "version": "2.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", | ||||
|       "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", | ||||
|       "engines": { | ||||
|         "node": ">= 6" | ||||
|       } | ||||
|  | @ -10708,6 +10700,18 @@ | |||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">= 10" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "opencollective", | ||||
|         "url": "https://opencollective.com/postcss/" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "ts-node": ">=9.0.0" | ||||
|       }, | ||||
|       "peerDependenciesMeta": { | ||||
|         "ts-node": { | ||||
|           "optional": true | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/postcss-merge-longhand": { | ||||
|  | @ -11179,9 +11183,9 @@ | |||
|       "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" | ||||
|     }, | ||||
|     "node_modules/postcss-selector-parser": { | ||||
|       "version": "6.0.5", | ||||
|       "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz", | ||||
|       "integrity": "sha512-aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg==", | ||||
|       "version": "6.0.6", | ||||
|       "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", | ||||
|       "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", | ||||
|       "dependencies": { | ||||
|         "cssesc": "^3.0.0", | ||||
|         "util-deprecate": "^1.0.2" | ||||
|  | @ -11343,16 +11347,6 @@ | |||
|         "node": ">=6" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/prebuild-install/node_modules/simple-get": { | ||||
|       "version": "3.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", | ||||
|       "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", | ||||
|       "dependencies": { | ||||
|         "decompress-response": "^4.2.0", | ||||
|         "once": "^1.3.1", | ||||
|         "simple-concat": "^1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/prelude-ls": { | ||||
|       "version": "1.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", | ||||
|  | @ -11660,9 +11654,9 @@ | |||
|       "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" | ||||
|     }, | ||||
|     "node_modules/readdirp": { | ||||
|       "version": "3.5.0", | ||||
|       "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", | ||||
|       "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", | ||||
|       "version": "3.6.0", | ||||
|       "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", | ||||
|       "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", | ||||
|       "dependencies": { | ||||
|         "picomatch": "^2.2.1" | ||||
|       }, | ||||
|  | @ -12215,23 +12209,25 @@ | |||
|       "integrity": "sha1-16oye87PUY+RBqxrjwA/o7zqhWY=" | ||||
|     }, | ||||
|     "node_modules/sharp": { | ||||
|       "version": "0.27.2", | ||||
|       "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.27.2.tgz", | ||||
|       "integrity": "sha512-w3FVoONPG/x5MXCc3wsjOS+b9h3CI60qkus6EPQU4dkT0BDm0PyGhDCK6KhtfT3/vbeOMOXAKFNSw+I3QGWkMA==", | ||||
|       "version": "0.28.3", | ||||
|       "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.28.3.tgz", | ||||
|       "integrity": "sha512-21GEP45Rmr7q2qcmdnjDkNP04Ooh5v0laGS5FDpojOO84D1DJwUijLiSq8XNNM6e8aGXYtoYRh3sVNdm8NodMA==", | ||||
|       "hasInstallScript": true, | ||||
|       "dependencies": { | ||||
|         "array-flatten": "^3.0.0", | ||||
|         "color": "^3.1.3", | ||||
|         "detect-libc": "^1.0.3", | ||||
|         "node-addon-api": "^3.1.0", | ||||
|         "npmlog": "^4.1.2", | ||||
|         "prebuild-install": "^6.0.1", | ||||
|         "semver": "^7.3.4", | ||||
|         "simple-get": "^4.0.0", | ||||
|         "node-addon-api": "^3.2.0", | ||||
|         "prebuild-install": "^6.1.2", | ||||
|         "semver": "^7.3.5", | ||||
|         "simple-get": "^3.1.0", | ||||
|         "tar-fs": "^2.1.1", | ||||
|         "tunnel-agent": "^0.6.0" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=10" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "url": "https://opencollective.com/libvips" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/sharp/node_modules/lru-cache": { | ||||
|  | @ -12246,9 +12242,9 @@ | |||
|       } | ||||
|     }, | ||||
|     "node_modules/sharp/node_modules/node-addon-api": { | ||||
|       "version": "3.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz", | ||||
|       "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" | ||||
|       "version": "3.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", | ||||
|       "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" | ||||
|     }, | ||||
|     "node_modules/sharp/node_modules/semver": { | ||||
|       "version": "7.3.5", | ||||
|  | @ -12299,34 +12295,15 @@ | |||
|       "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" | ||||
|     }, | ||||
|     "node_modules/simple-get": { | ||||
|       "version": "4.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.0.tgz", | ||||
|       "integrity": "sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ==", | ||||
|       "version": "3.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", | ||||
|       "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", | ||||
|       "dependencies": { | ||||
|         "decompress-response": "^6.0.0", | ||||
|         "decompress-response": "^4.2.0", | ||||
|         "once": "^1.3.1", | ||||
|         "simple-concat": "^1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/simple-get/node_modules/decompress-response": { | ||||
|       "version": "6.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", | ||||
|       "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", | ||||
|       "dependencies": { | ||||
|         "mimic-response": "^3.1.0" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/simple-get/node_modules/mimic-response": { | ||||
|       "version": "3.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", | ||||
|       "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", | ||||
|       "engines": { | ||||
|         "node": ">=10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/simple-swizzle": { | ||||
|       "version": "0.2.2", | ||||
|       "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", | ||||
|  | @ -12496,6 +12473,15 @@ | |||
|         "node": ">=0.10.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/source-map-js": { | ||||
|       "version": "0.6.2", | ||||
|       "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", | ||||
|       "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", | ||||
|       "dev": true, | ||||
|       "engines": { | ||||
|         "node": ">=0.10.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/source-map-resolve": { | ||||
|       "version": "0.5.3", | ||||
|       "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", | ||||
|  | @ -12976,23 +12962,22 @@ | |||
|     }, | ||||
|     "node_modules/tailwindcss": { | ||||
|       "name": "@tailwindcss/postcss7-compat", | ||||
|       "version": "2.2.4", | ||||
|       "resolved": "https://registry.npmjs.org/@tailwindcss/postcss7-compat/-/postcss7-compat-2.2.4.tgz", | ||||
|       "integrity": "sha512-lFIBdD1D2w3RgHFg7kNB7U5LOlfbd+KXTzcLyC/RlQ9eVko6GjNCKpN/kdmfF9wiGxbSDT/3mousXeMZdOOuBg==", | ||||
|       "version": "2.2.7", | ||||
|       "resolved": "https://registry.npmjs.org/@tailwindcss/postcss7-compat/-/postcss7-compat-2.2.7.tgz", | ||||
|       "integrity": "sha512-1QkWUEeLV1AoNipMCE6IlL7XYScGb+DAzaXy35ooMDvl0G8kCMHBNqGxyVAnTcK8gyJNUzkKXExkUnbjAndd/g==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "@fullhuman/postcss-purgecss": "^3.1.3", | ||||
|         "arg": "^5.0.0", | ||||
|         "autoprefixer": "^9", | ||||
|         "bytes": "^3.0.0", | ||||
|         "chalk": "^4.1.1", | ||||
|         "chokidar": "^3.5.2", | ||||
|         "color": "^3.1.3", | ||||
|         "color": "^3.2.0", | ||||
|         "cosmiconfig": "^7.0.0", | ||||
|         "detective": "^5.2.0", | ||||
|         "didyoumean": "^1.2.1", | ||||
|         "didyoumean": "^1.2.2", | ||||
|         "dlv": "^1.1.3", | ||||
|         "fast-glob": "^3.2.5", | ||||
|         "fast-glob": "^3.2.7", | ||||
|         "fs-extra": "^10.0.0", | ||||
|         "glob-parent": "^6.0.0", | ||||
|         "html-tags": "^3.1.0", | ||||
|  | @ -13011,6 +12996,7 @@ | |||
|         "postcss-selector-parser": "^6.0.6", | ||||
|         "postcss-value-parser": "^4.1.0", | ||||
|         "pretty-hrtime": "^1.0.3", | ||||
|         "purgecss": "^4.0.3", | ||||
|         "quick-lru": "^5.1.1", | ||||
|         "reduce-css-calc": "^2.1.8", | ||||
|         "resolve": "^1.20.0", | ||||
|  | @ -13034,6 +13020,9 @@ | |||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=8" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "url": "https://github.com/chalk/ansi-styles?sponsor=1" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/tailwindcss/node_modules/arg": { | ||||
|  | @ -13053,39 +13042,9 @@ | |||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=10" | ||||
|       } | ||||
|       }, | ||||
|     "node_modules/tailwindcss/node_modules/chokidar": { | ||||
|       "version": "3.5.2", | ||||
|       "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", | ||||
|       "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "anymatch": "~3.1.2", | ||||
|         "braces": "~3.0.2", | ||||
|         "glob-parent": "~5.1.2", | ||||
|         "is-binary-path": "~2.1.0", | ||||
|         "is-glob": "~4.0.1", | ||||
|         "normalize-path": "~3.0.0", | ||||
|         "readdirp": "~3.6.0" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">= 8.10.0" | ||||
|       }, | ||||
|       "optionalDependencies": { | ||||
|         "fsevents": "~2.3.2" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { | ||||
|       "version": "5.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", | ||||
|       "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "is-glob": "^4.0.1" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">= 6" | ||||
|       "funding": { | ||||
|         "url": "https://github.com/chalk/chalk?sponsor=1" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/tailwindcss/node_modules/color-convert": { | ||||
|  | @ -13168,15 +13127,9 @@ | |||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=6" | ||||
|       } | ||||
|       }, | ||||
|     "node_modules/tailwindcss/node_modules/object-hash": { | ||||
|       "version": "2.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", | ||||
|       "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", | ||||
|       "dev": true, | ||||
|       "engines": { | ||||
|         "node": ">= 6" | ||||
|       "funding": { | ||||
|         "url": "https://github.com/sponsors/sindresorhus" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/tailwindcss/node_modules/parse-json": { | ||||
|  | @ -13192,6 +13145,9 @@ | |||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=8" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "url": "https://github.com/sponsors/sindresorhus" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/tailwindcss/node_modules/path-type": { | ||||
|  | @ -13203,29 +13159,37 @@ | |||
|         "node": ">=8" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/tailwindcss/node_modules/postcss-selector-parser": { | ||||
|       "version": "6.0.6", | ||||
|       "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", | ||||
|       "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", | ||||
|     "node_modules/tailwindcss/node_modules/purgecss": { | ||||
|       "version": "4.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-4.0.3.tgz", | ||||
|       "integrity": "sha512-PYOIn5ibRIP34PBU9zohUcCI09c7drPJJtTDAc0Q6QlRz2/CHQ8ywGLdE7ZhxU2VTqB7p5wkvj5Qcm05Rz3Jmw==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "cssesc": "^3.0.0", | ||||
|         "util-deprecate": "^1.0.2" | ||||
|         "commander": "^6.0.0", | ||||
|         "glob": "^7.0.0", | ||||
|         "postcss": "^8.2.1", | ||||
|         "postcss-selector-parser": "^6.0.2" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=4" | ||||
|       "bin": { | ||||
|         "purgecss": "bin/purgecss.js" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/tailwindcss/node_modules/readdirp": { | ||||
|       "version": "3.6.0", | ||||
|       "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", | ||||
|       "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", | ||||
|     "node_modules/tailwindcss/node_modules/purgecss/node_modules/postcss": { | ||||
|       "version": "8.3.6", | ||||
|       "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", | ||||
|       "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "picomatch": "^2.2.1" | ||||
|         "colorette": "^1.2.2", | ||||
|         "nanoid": "^3.1.23", | ||||
|         "source-map-js": "^0.6.2" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=8.10.0" | ||||
|         "node": "^10 || ^12 || >=14" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "opencollective", | ||||
|         "url": "https://opencollective.com/postcss/" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/tailwindcss/node_modules/resolve-from": { | ||||
|  | @ -13388,6 +13352,9 @@ | |||
|       }, | ||||
|       "bin": { | ||||
|         "rimraf": "bin.js" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "url": "https://github.com/sponsors/isaacs" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/to-arraybuffer": { | ||||
|  | @ -17651,11 +17618,6 @@ | |||
|       "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "array-flatten": { | ||||
|       "version": "3.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz", | ||||
|       "integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==" | ||||
|     }, | ||||
|     "array-unique": { | ||||
|       "version": "0.3.2", | ||||
|       "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", | ||||
|  | @ -18321,18 +18283,18 @@ | |||
|       } | ||||
|     }, | ||||
|     "chokidar": { | ||||
|       "version": "3.5.1", | ||||
|       "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", | ||||
|       "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", | ||||
|       "version": "3.5.2", | ||||
|       "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", | ||||
|       "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", | ||||
|       "requires": { | ||||
|         "anymatch": "~3.1.1", | ||||
|         "anymatch": "~3.1.2", | ||||
|         "braces": "~3.0.2", | ||||
|         "fsevents": "~2.3.1", | ||||
|         "glob-parent": "~5.1.0", | ||||
|         "fsevents": "~2.3.2", | ||||
|         "glob-parent": "~5.1.2", | ||||
|         "is-binary-path": "~2.1.0", | ||||
|         "is-glob": "~4.0.1", | ||||
|         "normalize-path": "~3.0.0", | ||||
|         "readdirp": "~3.5.0" | ||||
|         "readdirp": "~3.6.0" | ||||
|       } | ||||
|     }, | ||||
|     "chownr": { | ||||
|  | @ -18418,12 +18380,12 @@ | |||
|       } | ||||
|     }, | ||||
|     "color": { | ||||
|       "version": "3.1.3", | ||||
|       "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", | ||||
|       "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", | ||||
|       "version": "3.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", | ||||
|       "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", | ||||
|       "requires": { | ||||
|         "color-convert": "^1.9.1", | ||||
|         "color-string": "^1.5.4" | ||||
|         "color-convert": "^1.9.3", | ||||
|         "color-string": "^1.6.0" | ||||
|       } | ||||
|     }, | ||||
|     "color-convert": { | ||||
|  | @ -18440,9 +18402,9 @@ | |||
|       "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" | ||||
|     }, | ||||
|     "color-string": { | ||||
|       "version": "1.5.5", | ||||
|       "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", | ||||
|       "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", | ||||
|       "version": "1.6.0", | ||||
|       "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz", | ||||
|       "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==", | ||||
|       "requires": { | ||||
|         "color-name": "^1.0.0", | ||||
|         "simple-swizzle": "^0.2.2" | ||||
|  | @ -19210,9 +19172,9 @@ | |||
|       } | ||||
|     }, | ||||
|     "didyoumean": { | ||||
|       "version": "1.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.1.tgz", | ||||
|       "integrity": "sha1-6S7f2tplN9SE1zwBcv0eugxJdv8=" | ||||
|       "version": "1.2.2", | ||||
|       "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", | ||||
|       "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" | ||||
|     }, | ||||
|     "diff": { | ||||
|       "version": "4.0.2", | ||||
|  | @ -19706,16 +19668,15 @@ | |||
|       "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" | ||||
|     }, | ||||
|     "fast-glob": { | ||||
|       "version": "3.2.5", | ||||
|       "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", | ||||
|       "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", | ||||
|       "version": "3.2.7", | ||||
|       "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", | ||||
|       "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", | ||||
|       "requires": { | ||||
|         "@nodelib/fs.stat": "^2.0.2", | ||||
|         "@nodelib/fs.walk": "^1.2.3", | ||||
|         "glob-parent": "^5.1.0", | ||||
|         "glob-parent": "^5.1.2", | ||||
|         "merge2": "^1.3.0", | ||||
|         "micromatch": "^4.0.2", | ||||
|         "picomatch": "^2.2.1" | ||||
|         "micromatch": "^4.0.4" | ||||
|       } | ||||
|     }, | ||||
|     "fast-json-stable-stringify": { | ||||
|  | @ -23230,9 +23191,9 @@ | |||
|       "optional": true | ||||
|     }, | ||||
|     "nanoid": { | ||||
|       "version": "3.1.22", | ||||
|       "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz", | ||||
|       "integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==" | ||||
|       "version": "3.1.23", | ||||
|       "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", | ||||
|       "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==" | ||||
|     }, | ||||
|     "nanomatch": { | ||||
|       "version": "1.2.13", | ||||
|  | @ -23474,9 +23435,9 @@ | |||
|       } | ||||
|     }, | ||||
|     "object-hash": { | ||||
|       "version": "2.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.1.1.tgz", | ||||
|       "integrity": "sha512-VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ==" | ||||
|       "version": "2.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", | ||||
|       "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==" | ||||
|     }, | ||||
|     "object-inspect": { | ||||
|       "version": "1.4.1", | ||||
|  | @ -24677,9 +24638,9 @@ | |||
|       } | ||||
|     }, | ||||
|     "postcss-selector-parser": { | ||||
|       "version": "6.0.5", | ||||
|       "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz", | ||||
|       "integrity": "sha512-aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg==", | ||||
|       "version": "6.0.6", | ||||
|       "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", | ||||
|       "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", | ||||
|       "requires": { | ||||
|         "cssesc": "^3.0.0", | ||||
|         "util-deprecate": "^1.0.2" | ||||
|  | @ -24800,18 +24761,6 @@ | |||
|         "simple-get": "^3.0.3", | ||||
|         "tar-fs": "^2.0.0", | ||||
|         "tunnel-agent": "^0.6.0" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "simple-get": { | ||||
|           "version": "3.1.0", | ||||
|           "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", | ||||
|           "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", | ||||
|           "requires": { | ||||
|             "decompress-response": "^4.2.0", | ||||
|             "once": "^1.3.1", | ||||
|             "simple-concat": "^1.0.0" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "prelude-ls": { | ||||
|  | @ -25066,9 +25015,9 @@ | |||
|       } | ||||
|     }, | ||||
|     "readdirp": { | ||||
|       "version": "3.5.0", | ||||
|       "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", | ||||
|       "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", | ||||
|       "version": "3.6.0", | ||||
|       "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", | ||||
|       "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", | ||||
|       "requires": { | ||||
|         "picomatch": "^2.2.1" | ||||
|       } | ||||
|  | @ -25542,18 +25491,16 @@ | |||
|       } | ||||
|     }, | ||||
|     "sharp": { | ||||
|       "version": "0.27.2", | ||||
|       "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.27.2.tgz", | ||||
|       "integrity": "sha512-w3FVoONPG/x5MXCc3wsjOS+b9h3CI60qkus6EPQU4dkT0BDm0PyGhDCK6KhtfT3/vbeOMOXAKFNSw+I3QGWkMA==", | ||||
|       "version": "0.28.3", | ||||
|       "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.28.3.tgz", | ||||
|       "integrity": "sha512-21GEP45Rmr7q2qcmdnjDkNP04Ooh5v0laGS5FDpojOO84D1DJwUijLiSq8XNNM6e8aGXYtoYRh3sVNdm8NodMA==", | ||||
|       "requires": { | ||||
|         "array-flatten": "^3.0.0", | ||||
|         "color": "^3.1.3", | ||||
|         "detect-libc": "^1.0.3", | ||||
|         "node-addon-api": "^3.1.0", | ||||
|         "npmlog": "^4.1.2", | ||||
|         "prebuild-install": "^6.0.1", | ||||
|         "semver": "^7.3.4", | ||||
|         "simple-get": "^4.0.0", | ||||
|         "node-addon-api": "^3.2.0", | ||||
|         "prebuild-install": "^6.1.2", | ||||
|         "semver": "^7.3.5", | ||||
|         "simple-get": "^3.1.0", | ||||
|         "tar-fs": "^2.1.1", | ||||
|         "tunnel-agent": "^0.6.0" | ||||
|       }, | ||||
|  | @ -25567,9 +25514,9 @@ | |||
|           } | ||||
|         }, | ||||
|         "node-addon-api": { | ||||
|           "version": "3.1.0", | ||||
|           "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz", | ||||
|           "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" | ||||
|           "version": "3.2.1", | ||||
|           "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", | ||||
|           "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" | ||||
|         }, | ||||
|         "semver": { | ||||
|           "version": "7.3.5", | ||||
|  | @ -25610,28 +25557,13 @@ | |||
|       "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" | ||||
|     }, | ||||
|     "simple-get": { | ||||
|       "version": "4.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.0.tgz", | ||||
|       "integrity": "sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ==", | ||||
|       "version": "3.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", | ||||
|       "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", | ||||
|       "requires": { | ||||
|         "decompress-response": "^6.0.0", | ||||
|         "decompress-response": "^4.2.0", | ||||
|         "once": "^1.3.1", | ||||
|         "simple-concat": "^1.0.0" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "decompress-response": { | ||||
|           "version": "6.0.0", | ||||
|           "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", | ||||
|           "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", | ||||
|           "requires": { | ||||
|             "mimic-response": "^3.1.0" | ||||
|           } | ||||
|         }, | ||||
|         "mimic-response": { | ||||
|           "version": "3.1.0", | ||||
|           "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", | ||||
|           "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "simple-swizzle": { | ||||
|  | @ -25776,6 +25708,12 @@ | |||
|       "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", | ||||
|       "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" | ||||
|     }, | ||||
|     "source-map-js": { | ||||
|       "version": "0.6.2", | ||||
|       "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", | ||||
|       "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "source-map-resolve": { | ||||
|       "version": "0.5.3", | ||||
|       "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", | ||||
|  | @ -26172,23 +26110,22 @@ | |||
|       "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" | ||||
|     }, | ||||
|     "tailwindcss": { | ||||
|       "version": "npm:@tailwindcss/postcss7-compat@2.2.4", | ||||
|       "resolved": "https://registry.npmjs.org/@tailwindcss/postcss7-compat/-/postcss7-compat-2.2.4.tgz", | ||||
|       "integrity": "sha512-lFIBdD1D2w3RgHFg7kNB7U5LOlfbd+KXTzcLyC/RlQ9eVko6GjNCKpN/kdmfF9wiGxbSDT/3mousXeMZdOOuBg==", | ||||
|       "version": "npm:@tailwindcss/postcss7-compat@2.2.7", | ||||
|       "resolved": "https://registry.npmjs.org/@tailwindcss/postcss7-compat/-/postcss7-compat-2.2.7.tgz", | ||||
|       "integrity": "sha512-1QkWUEeLV1AoNipMCE6IlL7XYScGb+DAzaXy35ooMDvl0G8kCMHBNqGxyVAnTcK8gyJNUzkKXExkUnbjAndd/g==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@fullhuman/postcss-purgecss": "^3.1.3", | ||||
|         "arg": "^5.0.0", | ||||
|         "autoprefixer": "^9", | ||||
|         "bytes": "^3.0.0", | ||||
|         "chalk": "^4.1.1", | ||||
|         "chokidar": "^3.5.2", | ||||
|         "color": "^3.1.3", | ||||
|         "color": "^3.2.0", | ||||
|         "cosmiconfig": "^7.0.0", | ||||
|         "detective": "^5.2.0", | ||||
|         "didyoumean": "^1.2.1", | ||||
|         "didyoumean": "^1.2.2", | ||||
|         "dlv": "^1.1.3", | ||||
|         "fast-glob": "^3.2.5", | ||||
|         "fast-glob": "^3.2.7", | ||||
|         "fs-extra": "^10.0.0", | ||||
|         "glob-parent": "^6.0.0", | ||||
|         "html-tags": "^3.1.0", | ||||
|  | @ -26207,6 +26144,7 @@ | |||
|         "postcss-selector-parser": "^6.0.6", | ||||
|         "postcss-value-parser": "^4.1.0", | ||||
|         "pretty-hrtime": "^1.0.3", | ||||
|         "purgecss": "^4.0.3", | ||||
|         "quick-lru": "^5.1.1", | ||||
|         "reduce-css-calc": "^2.1.8", | ||||
|         "resolve": "^1.20.0", | ||||
|  | @ -26238,33 +26176,6 @@ | |||
|             "supports-color": "^7.1.0" | ||||
|           } | ||||
|         }, | ||||
|         "chokidar": { | ||||
|           "version": "3.5.2", | ||||
|           "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", | ||||
|           "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", | ||||
|           "dev": true, | ||||
|           "requires": { | ||||
|             "anymatch": "~3.1.2", | ||||
|             "braces": "~3.0.2", | ||||
|             "fsevents": "~2.3.2", | ||||
|             "glob-parent": "~5.1.2", | ||||
|             "is-binary-path": "~2.1.0", | ||||
|             "is-glob": "~4.0.1", | ||||
|             "normalize-path": "~3.0.0", | ||||
|             "readdirp": "~3.6.0" | ||||
|           }, | ||||
|           "dependencies": { | ||||
|             "glob-parent": { | ||||
|               "version": "5.1.2", | ||||
|               "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", | ||||
|               "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", | ||||
|               "dev": true, | ||||
|               "requires": { | ||||
|                 "is-glob": "^4.0.1" | ||||
|               } | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         "color-convert": { | ||||
|           "version": "2.0.1", | ||||
|           "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", | ||||
|  | @ -26329,12 +26240,6 @@ | |||
|             "resolve-from": "^4.0.0" | ||||
|           } | ||||
|         }, | ||||
|         "object-hash": { | ||||
|           "version": "2.2.0", | ||||
|           "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", | ||||
|           "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", | ||||
|           "dev": true | ||||
|         }, | ||||
|         "parse-json": { | ||||
|           "version": "5.2.0", | ||||
|           "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", | ||||
|  | @ -26353,23 +26258,29 @@ | |||
|           "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", | ||||
|           "dev": true | ||||
|         }, | ||||
|         "postcss-selector-parser": { | ||||
|           "version": "6.0.6", | ||||
|           "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", | ||||
|           "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", | ||||
|         "purgecss": { | ||||
|           "version": "4.0.3", | ||||
|           "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-4.0.3.tgz", | ||||
|           "integrity": "sha512-PYOIn5ibRIP34PBU9zohUcCI09c7drPJJtTDAc0Q6QlRz2/CHQ8ywGLdE7ZhxU2VTqB7p5wkvj5Qcm05Rz3Jmw==", | ||||
|           "dev": true, | ||||
|           "requires": { | ||||
|             "cssesc": "^3.0.0", | ||||
|             "util-deprecate": "^1.0.2" | ||||
|           } | ||||
|             "commander": "^6.0.0", | ||||
|             "glob": "^7.0.0", | ||||
|             "postcss": "^8.2.1", | ||||
|             "postcss-selector-parser": "^6.0.2" | ||||
|           }, | ||||
|         "readdirp": { | ||||
|           "version": "3.6.0", | ||||
|           "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", | ||||
|           "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", | ||||
|           "dependencies": { | ||||
|             "postcss": { | ||||
|               "version": "8.3.6", | ||||
|               "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", | ||||
|               "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", | ||||
|               "dev": true, | ||||
|               "requires": { | ||||
|             "picomatch": "^2.2.1" | ||||
|                 "colorette": "^1.2.2", | ||||
|                 "nanoid": "^3.1.23", | ||||
|                 "source-map-js": "^0.6.2" | ||||
|               } | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         "resolve-from": { | ||||
|  |  | |||
|  | @ -82,7 +82,7 @@ | |||
|     "parcel": "^1.2.4", | ||||
|     "postcss": "^7.0.36", | ||||
|     "prompt-sync": "^4.2.0", | ||||
|     "sharp": "^0.27.0", | ||||
|     "sharp": "^0.28.3", | ||||
|     "tslint": "^6.1.3" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|  |  | |||
|  | @ -87,6 +87,10 @@ export default class ScriptUtils { | |||
| 
 | ||||
|     } | ||||
|      | ||||
|     public static erasableLog(...text) { | ||||
|         process.stdout.write("\r "+text.join(" ")+"                \r") | ||||
|     } | ||||
| 
 | ||||
|     public static sleep(ms) { | ||||
|         if (ms <= 0) { | ||||
|             process.stdout.write("\r                                       \r") | ||||
|  |  | |||
|  | @ -34,7 +34,7 @@ function createOverpassObject(theme: LayoutConfig) { | |||
|         if (layer.source.geojsonSource !== undefined) { | ||||
|             // This layer defines a geoJson-source
 | ||||
|             // SHould it be cached?
 | ||||
|             if (!layer.source.isOsmCacheLayer) { | ||||
|             if (layer.source.isOsmCacheLayer !== true) { | ||||
|                 continue; | ||||
|             } | ||||
|         } | ||||
|  | @ -131,7 +131,7 @@ async function downloadExtraData(theme: LayoutConfig)/* : any[] */ { | |||
|         if (source === undefined) { | ||||
|             continue; | ||||
|         } | ||||
|         if (layer.source.isOsmCacheLayer) { | ||||
|         if (layer.source.isOsmCacheLayer !== undefined) { | ||||
|             // Cached layers are not considered here
 | ||||
|             continue; | ||||
|         } | ||||
|  | @ -148,7 +148,7 @@ function postProcess(targetdir: string, r: TileRange, theme: LayoutConfig, extra | |||
|         for (let y = r.ystart; y <= r.yend; y++) { | ||||
|             processed++; | ||||
|             const filename = rawJsonName(targetdir, x, y, r.zoomlevel) | ||||
|             console.log(" Post processing", processed, "/", r.total, filename) | ||||
|             ScriptUtils.erasableLog(" Post processing", processed, "/", r.total, filename) | ||||
|             if (!existsSync(filename)) { | ||||
|                 console.error("Not found - and not downloaded. Run this script again!: " + filename) | ||||
|                 continue; | ||||
|  | @ -234,9 +234,8 @@ function splitPerLayer(targetdir: string, r: TileRange, theme: LayoutConfig) { | |||
| 
 | ||||
|                     }) | ||||
|                 const new_path = geoJsonName(targetdir + "_" + layer.id, x, y, z); | ||||
|                 console.log(new_path, " has ", geojson.features.length, " features after filtering (dropped ", oldLength - geojson.features.length, ")") | ||||
|                 ScriptUtils.erasableLog(new_path, " has ", geojson.features.length, " features after filtering (dropped ", oldLength - geojson.features.length, ")") | ||||
|                 if (geojson.features.length == 0) { | ||||
|                     console.log("Not writing geojson file as it is empty", new_path) | ||||
|                     continue; | ||||
|                 } | ||||
|                 writeFileSync(new_path, JSON.stringify(geojson, null, " ")) | ||||
|  | @ -289,9 +288,20 @@ async function createOverview(targetdir: string, r: TileRange, z: number, layern | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     const featuresDedup = [] | ||||
|     const seen = new Set<string>() | ||||
|     for (const feature of allFeatures) { | ||||
|         const id = feature.properties.id | ||||
|         if(seen.has(id)){ | ||||
|             continue | ||||
|         } | ||||
|         seen.add(id) | ||||
|         featuresDedup.push(feature) | ||||
|     } | ||||
|      | ||||
|     const geojson = { | ||||
|         "type": "FeatureCollection", | ||||
|         "features": allFeatures | ||||
|         "features": featuresDedup | ||||
|     } | ||||
|     writeFileSync(targetdir + "_" + layername + "_points.geojson", JSON.stringify(geojson, null, " ")) | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue