commit af4409e8ac8bb487964b564b993021bab79b29e6 Author: Титов Герман Date: Fri Mar 3 19:06:05 2023 +0300 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/index.html b/index.html new file mode 100644 index 0000000..edfab1e --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + + + Возобновляемая энергетика + + +
+ + + diff --git a/node/CHANGELOG.md b/node/CHANGELOG.md new file mode 100644 index 0000000..61482b0 --- /dev/null +++ b/node/CHANGELOG.md @@ -0,0 +1,1383 @@ +# Node.js Changelog + +Select a Node.js version below to view the changelog history: + +* [Node.js 18](doc/changelogs/CHANGELOG_V18.md) **Long Term Support** +* [Node.js 17](doc/changelogs/CHANGELOG_V17.md) End-of-Life +* [Node.js 16](doc/changelogs/CHANGELOG_V16.md) Long Term Support +* [Node.js 15](doc/changelogs/CHANGELOG_V15.md) End-of-Life +* [Node.js 14](doc/changelogs/CHANGELOG_V14.md) Long Term Support +* [Node.js 13](doc/changelogs/CHANGELOG_V13.md) End-of-Life +* [Node.js 12](doc/changelogs/CHANGELOG_V12.md) End-of-Life +* [Node.js 11](doc/changelogs/CHANGELOG_V11.md) End-of-Life +* [Node.js 10](doc/changelogs/CHANGELOG_V10.md) End-of-Life +* [Node.js 9](doc/changelogs/CHANGELOG_V9.md) End-of-Life +* [Node.js 8](doc/changelogs/CHANGELOG_V8.md) End-of-Life +* [Node.js 7](doc/changelogs/CHANGELOG_V7.md) End-of-Life +* [Node.js 6](doc/changelogs/CHANGELOG_V6.md) End-of-Life +* [Node.js 5](doc/changelogs/CHANGELOG_V5.md) End-of-Life +* [Node.js 4](doc/changelogs/CHANGELOG_V4.md) End-of-Life +* [io.js](doc/changelogs/CHANGELOG_IOJS.md) End-of-Life +* [Node.js 0.12](doc/changelogs/CHANGELOG_V012.md) End-of-Life +* [Node.js 0.10](doc/changelogs/CHANGELOG_V010.md) End-of-Life +* [Archive](doc/changelogs/CHANGELOG_ARCHIVE.md) + +Please use the following table to find the changelog for a specific Node.js +release. + + + + + + + + + + + + +
18 (LTS)16 (LTS)14 (LTS)
+18.13.0
+18.12.1
+18.12.0
+18.11.0
+18.10.0
+18.9.1
+18.9.0
+18.8.0
+18.7.0
+18.6.0
+18.5.0
+18.4.0
+18.3.0
+18.2.0
+18.1.0
+18.0.0
+
+16.14.2
+16.14.1
+16.14.0
+16.13.2
+16.13.1
+16.13.0
+16.12.0
+16.11.1
+16.11.0
+16.10.0
+16.9.1
+16.9.0
+16.8.0
+16.7.0
+16.6.2
+16.6.1
+16.6.0
+16.5.0
+16.4.2
+16.4.1
+16.4.0
+16.3.0
+16.2.0
+16.1.0
+16.0.0
+
+14.19.1
+14.19.0
+14.18.3
+14.18.2
+14.18.1
+14.18.0
+14.17.6
+14.17.5
+14.17.4
+14.17.3
+14.17.2
+14.17.1
+14.17.0
+14.16.1
+14.16.0
+14.15.5
+14.15.4
+14.15.3
+14.15.2
+14.15.1
+14.15.0
+14.14.0
+14.13.1
+14.13.0
+14.12.0
+14.11.0
+14.10.1
+14.10.0
+14.9.0
+14.8.0
+14.7.0
+14.6.0
+14.5.0
+14.4.0
+14.3.0
+14.2.0
+14.1.0
+14.0.0
+
+ +## Notes + +* The [Node.js Long Term Support plan](https://github.com/nodejs/Release) covers + LTS releases. +* Release versions in **bold** text are the most recent supported releases. + +*** + +*** + +## 2016-05-06, Version 0.12.14 (Maintenance), @rvagg + +Moved to doc/changelogs/CHANGELOG\_V012.md#0.12.14. + +## 2016-05-06, Version 0.10.45 (Maintenance), @rvagg + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.45. + +## 2016-05-05, Version 6.1.0 (Current), @Fishrock123 + +Moved to doc/changelogs/CHANGELOG\_V6.md#6.1.0. + +## 2016-05-05, Version 5.11.1 (Stable), @evanlucas + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.11.1. + +## 2016-05-05, Version 4.4.4 'Argon' (LTS), @thealphanerd + +Moved to doc/changelogs/CHANGELOG\_V4.md#4.4.4. + +## 2016-04-26, Version 6.0.0 (Current), @jasnell + +Moved to doc/changelogs/CHANGELOG\_V6.md#6.0.0. + +## 2016-04-20, Version 5.11.0 (Stable), @thealphanerd + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.11.0. + +## 2016-04-05, Version 5.10.1 (Stable), @thealphanerd + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.10.1. + +## 2016-03-31, Version 0.10.44 (Maintenance), @rvagg + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.44. + +## 2016-03-31, Version 5.10.0 (Stable), @evanlucas + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.10.0. + +## 2016-03-31, Version 4.4.2 'Argon' (LTS), @thealphanerd + +Moved to doc/changelogs/CHANGELOG\_V4.md#4.4.2. + +## 2016-03-31, Version 0.12.13 (LTS), @rvagg + +Moved to doc/changelogs/CHANGELOG\_V012.md#0.12.13. + +## 2016-03-23, Version 5.9.1 (Stable), @Fishrock123 + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.9.1. + +## 2016-03-22, Version 4.4.1 'Argon' (LTS), @thealphanerd + +Moved to doc/changelogs/CHANGELOG\_V4.md#4.4.1. + +## 2016-03-16, Version 5.9.0 (Stable), @evanlucas + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.9.0. + +## 2016-03-08, Version 5.8.0 (Stable), @Fishrock123 + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.8.0. + +## 2016-03-08, Version 4.4.0 'Argon' (LTS), @thealphanerd + +Moved to doc/changelogs/CHANGELOG\_V4.md#4.4.0. + +## 2016-03-08, Version 0.12.12 (LTS), @rvagg + +Moved to doc/changelogs/CHANGELOG\_V012.md#0.12.12. + +## 2016-03-03, Version 0.12.11 (LTS), @rvagg + +Moved to doc/changelogs/CHANGELOG\_V012.md#0.12.11. + +## 2016-03-02, Version 5.7.1 (Stable), @Fishrock123 + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.7.1. + +## 2016-03-02, Version 4.3.2 'Argon' (LTS), @thealphanerd + +Moved to doc/changelogs/CHANGELOG\_V4.md#4.3.2. + +## 2016-02-23, Version 5.7.0 (Stable), @rvagg + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.7.0. + +## 2016-02-16, Version 4.3.1 'Argon' (LTS), @thealphanerd + +Moved to doc/changelogs/CHANGELOG\_V4.md#4.3.1. + +## 2016-02-09, Version 5.6.0 (Stable), @jasnell + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.6.0. + +## 2016-02-09, Version 4.3.0 'Argon' (LTS), @jasnell + +Moved to doc/changelogs/CHANGELOG\_V4.md#4.3.0. + +## 2016-02-09, Version 0.12.10 (LTS), @jasnell + +Moved to doc/changelogs/CHANGELOG\_V012.md#0.12.10. + +## 2016-02-09, Version 0.10.42 (Maintenance), @jasnell + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.42. + +## 2016-01-21, Version 4.2.6 'Argon' (LTS), @TheAlphaNerd + +Moved to doc/changelogs/CHANGELOG\_V4.md#4.2.6. + +## 2016-01-20, Version 5.5.0 (Stable), @evanlucas + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.5.0. + +## 2016-01-20, Version 4.2.5 'Argon' (LTS), @TheAlphaNerd + +Moved to doc/changelogs/CHANGELOG\_V4.md#4.2.5. + +## 2016-01-12, Version 5.4.1 (Stable), @TheAlphaNerd + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.4.1. + +## 2016-01-06, Version 5.4.0 (Stable), @Fishrock123 + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.4.0. + +## 2015-12-23, Version 4.2.4 'Argon' (LTS), @jasnell + +Moved to doc/changelogs/CHANGELOG\_V4.md#4.2.4. + +## 2015-12-16, Version 5.3.0 (Stable), @cjihrig + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.3.0. + +## 2015-12-09, Version 5.2.0 (Stable), @rvagg + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.2.0. + +## 2015-12-04, Version 5.1.1 (Stable), @rvagg + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.1.1. + +## 2015-12-04, Version 4.2.3 'Argon' (LTS), @rvagg + +Moved to doc/changelogs/CHANGELOG\_V4.md#4.2.3. + +## 2015-12-04, Version 0.12.9 (LTS), @rvagg + +Moved to doc/changelogs/CHANGELOG\_V012.md#0.12.9. + +## 2015-12-04, Version 0.10.41 (Maintenance), @rvagg + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.41. + +## 2015.11.25, Version 0.12.8 (LTS), @rvagg + +Moved to doc/changelogs/CHANGELOG\_V012.md#0.12.8. + +## 2015-11-17, Version 5.1.0 (Stable), @Fishrock123 + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.1.0. + +## 2015-11-03, Version 4.2.2 'Argon' (LTS), @jasnell + +Moved to doc/changelogs/CHANGELOG\_V4.md#4.2.2. + +## 2015-10-29, Version 5.0.0 (Stable), @rvagg + +Moved to doc/changelogs/CHANGELOG\_V5.md#5.0.0. + +## 2015-10-13, Version 4.2.1 'Argon' (LTS), @jasnell + +Moved to doc/changelogs/CHANGELOG\_V4.md#4.2.1. + +## 2015-10-07, Version 4.2.0 'Argon' (LTS), @jasnell + +Moved to doc/changelogs/CHANGELOG\_V4.md#4.2.0. + +## 2015-10-05, Version 4.1.2 (Stable), @rvagg + +Moved to doc/changelogs/CHANGELOG\_V4.md#4.1.2. + +## 2015-09-22, Version 4.1.1 (Stable), @rvagg + +Moved to doc/changelogs/CHANGELOG\_V4.md#4.1.1. + +## 2015-09-17, Version 4.1.0 (Stable), @Fishrock123 + +Moved to doc/changelogs/CHANGELOG\_V4.md#4.1.0. + +## 2015-09-15, io.js Version 3.3.1 @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#3.3.1. + +## 2015-09-08, Version 4.0.0 (Stable), @rvagg + +Moved to doc/changelogs/CHANGELOG\_V6.md#6.0.0. + +## 2015-09-02, Version 3.3.0, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#3.3.0. + +## 2015-08-25, Version 3.2.0, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#3.2.0. + +## 2015-08-18, Version 3.1.0, @Fishrock123 + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#3.1.0. + +## 2015-08-04, Version 3.0.0, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#3.0.0. + +## 2015-07-28, Version 2.5.0, @cjihrig + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#2.5.0. + +## 2015-07-17, Version 2.4.0, @Fishrock123 + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#2.4.0. + +## 2015-07-09, Version 2.3.4, @Fishrock123 + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#2.3.4. + +## 2015-07-09, Version 1.8.4, @Fishrock123 + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.8.4. + +## 2015-07-09, Version 0.12.7 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V012.md#0.12.7. + +## 2015-07-04, Version 2.3.3, @Fishrock123 + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#2.3.3. + +## 2015-07-04, Version 1.8.3, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.8.3. + +## 2015-07-03, Version 0.12.6 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V012.md#0.12.6. + +## 2015-07-01, Version 2.3.2, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#2.3.2. + +## 2015-06-23, Version 2.3.1, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#2.3.1. + +## 2015-06-22, Version 0.12.5 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V012.md#0.12.5. + +## 2015-06-18, Version 0.10.39 (Maintenance) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.39. + +## 2015-06-13, Version 2.3.0, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#2.3.0. + +## 2015-06-01, Version 2.2.1, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#2.2.1. + +## 2015-05-31, Version 2.2.0, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#2.2.0. + +## 2015-05-24, Version 2.1.0, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#2.1.0. + +## 2015-05-22, Version 0.12.4 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V012.md#0.12.4. + +## 2015-05-17, Version 1.8.2, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.8.2. + +## 2015-05-15, Version 2.0.2, @Fishrock123 + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#2.0.2. + +## 2015-05-13, Version 0.12.3 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V012.md#0.12.3. + +## 2015-05-07, Version 2.0.1, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#2.0.1. + +## 2015-05-04, Version 2.0.0, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#2.0.0. + +## 2015-04-20, Version 1.8.1, @chrisdickinson + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.8.1. + +## 2015-04-14, Version 1.7.1, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.7.1. + +## 2015-04-14, Version 1.7.0, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.7.0. + +## 2015-04-06, Version 1.6.4, @Fishrock123 + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.6.4. + +## 2015-03-31, Version 1.6.3, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.6.3. + +## 2015-03-31, Version 0.12.2 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V012.md#0.12.2. + +## 2015-03-23, Version 1.6.2, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.6.2. + +## 2015-03-23, Version 0.12.1 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V012.md#0.12.1. + +## 2015-03-23, Version 0.10.38 (Maintenance) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.38. + +## 2015-03-20, Version 1.6.1, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.6.1. + +## 2015-03-19, Version 1.6.0, @chrisdickinson + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.6.0. + +## 2015-03-11, Version 0.10.37 (Maintenance) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.37. + +## 2015-03-09, Version 1.5.1, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.5.1. + +## 2015-03-06, Version 1.5.0, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.5.0. + +## 2015-03-02, Version 1.4.3, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.4.3. + +## 2015-02-28, Version 1.4.2, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.4.2. + +## 2015-02-26, Version 1.4.1, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.4.1. + +## 2015-02-20, Version 1.3.0, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.3.0. + +## 2015-02-10, Version 1.2.0, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.2.0. + +## 2015-02-06, Version 0.12.0 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V012.md#0.12.0. + +## 2015-02-03, Version 1.1.0, @chrisdickinson + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.1.0. + +## 2015-01-26, Version 0.10.36 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.36. + +## 2015-01-24, Version 1.0.4, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.0.4. + +## 2015-01-20, Version 1.0.3, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.0.3. + +## 2015-01-16, Version 1.0.2, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.0.2. + +## 2015-01-14, Version 1.0.1, @rvagg + +Moved to doc/changelogs/CHANGELOG\_IOJS.md#1.0.1. + +## 2014.09.24, Version 0.11.14 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.11.14. + +## 2014.05.01, Version 0.11.13 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.11.13. + +## 2014.03.11, Version 0.11.12 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.11.12. + +## 2014.01.29, Version 0.11.11 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.11.11. + +## 2013.12.31, Version 0.11.10 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.11.10. + +## 2013.11.20, Version 0.11.9 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.11.9. + +## 2013.10.30, Version 0.11.8 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.11.8. + +## 2013.08.21, Version 0.11.7 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.11.7. + +## 2013.08.21, Version 0.11.6 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.11.6. + +## 2013.08.06, Version 0.11.5 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.11.5. + +## 2013.07.12, Version 0.11.4 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.11.4. + +## 2013.06.26, Version 0.11.3 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.11.3. + +## 2013.05.13, Version 0.11.2 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.11.2. + +## 2013.04.19, Version 0.11.1 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.11.1. + +## 2013.03.28, Version 0.11.0 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.11.0. + +## 2014.12.22, Version 0.10.35 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.35. + +## 2014.12.17, Version 0.10.34 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.34. + +## 2014.10.20, Version 0.10.33 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.33. + +## 2014.09.16, Version 0.10.32 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.32. + +## 2014.08.19, Version 0.10.31 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.31. + +## 2014.07.31, Version 0.10.30 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.30. + +## 2014.06.05, Version 0.10.29 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.29. + +## 2014.05.01, Version 0.10.28 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.28. + +## 2014.05.01, Version 0.10.27 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.27. + +## 2014.02.18, Version 0.10.26 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.26. + +## 2014.01.23, Version 0.10.25 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.25. + +## 2013.12.18, Version 0.10.24 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.24. + +## 2013.12.12, Version 0.10.23 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.23. + +## 2013.11.12, Version 0.10.22 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.22. + +## 2013.10.18, Version 0.10.21 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.21. + +## 2013.09.30, Version 0.10.20 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.20. + +## 2013.09.24, Version 0.10.19 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.19. + +## 2013.09.04, Version 0.10.18 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.18. + +## 2013.08.21, Version 0.10.17 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.17. + +## 2013.08.16, Version 0.10.16 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.16. + +## 2013.07.25, Version 0.10.15 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.15. + +## 2013.07.25, Version 0.10.14 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.14. + +## 2013.07.09, Version 0.10.13 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.13. + +## 2013.06.18, Version 0.10.12 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.12. + +## 2013.06.13, Version 0.10.11 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.11. + +## 2013.06.04, Version 0.10.10 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.10. + +## 2013.05.30, Version 0.10.9 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.9. + +## 2013.05.24, Version 0.10.8 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.8. + +## 2013.05.17, Version 0.10.7 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.7. + +## 2013.05.14, Version 0.10.6 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.6. + +## 2013.04.23, Version 0.10.5 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.5. + +## 2013.04.11, Version 0.10.4 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.4. + +## 2013.04.03, Version 0.10.3 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.3. + +## 2013.03.28, Version 0.10.2 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.2. + +## 2013.03.21, Version 0.10.1 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.1. + +## 2013.03.11, Version 0.10.0 (Stable) + +Moved to doc/changelogs/CHANGELOG\_V010.md#0.10.0. + +## 2013.03.06, Version 0.9.12 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.9.12. + +## 2013.03.01, Version 0.9.11 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.9.11. + +## 2013.02.19, Version 0.9.10 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.9.10. + +## 2013.02.07, Version 0.9.9 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.9.9. + +## 2013.01.24, Version 0.9.8 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.9.8. + +## 2013.01.18, Version 0.9.7 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.9.7. + +## 2013.01.11, Version 0.9.6 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.9.6. + +## 2012.12.30, Version 0.9.5 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.9.5. + +## 2012.12.21, Version 0.9.4 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.9.4. + +## 2012.10.24, Version 0.9.3 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.9.3. + +## 2012.09.17, Version 0.9.2 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.9.2. + +## 2012.08.28, Version 0.9.1 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.9.1. + +## 2012.07.20, Version 0.9.0 (Unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.9.0. + +## 2013.06.13, Version 0.8.25 (maintenance) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.25. + +## 2013.06.04, Version 0.8.24 (maintenance) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.24. + +## 2013.04.09, Version 0.8.23 (maintenance) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.23. + +## 2013.03.07, Version 0.8.22 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.22. + +## 2013.02.25, Version 0.8.21 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.21. + +## 2013.02.15, Version 0.8.20 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.20. + +## 2013.02.06, Version 0.8.19 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.19. + +## 2013.01.18, Version 0.8.18 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.18. + +## 2013.01.09, Version 0.8.17 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.17. + +## 2012.12.13, Version 0.8.16 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.16. + +## 2012.11.26, Version 0.8.15 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.15. + +## 2012.10.25, Version 0.8.14 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.14. + +## 2012.10.25, Version 0.8.13 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.13. + +## 2012.10.12, Version 0.8.12 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.12. + +## 2012.09.27, Version 0.8.11 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.11. + +## 2012.09.25, Version 0.8.10 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.10. + +## 2012.09.11, Version 0.8.9 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.9. + +## 2012.08.22, Version 0.8.8 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.8. + +## 2012.08.15, Version 0.8.7 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.7. + +## 2012.08.07, Version 0.8.6 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.6. + +## 2012.08.02, Version 0.8.5 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.5. + +## 2012.07.25, Version 0.8.4 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.4. + +## 2012.07.19, Version 0.8.3 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.3. + +## 2012.07.09, Version 0.8.2 (Stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.2. + +## 2012.06.29, Version 0.8.1 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.1. + +## 2012.06.25, Version 0.8.0 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.8.0. + +## 2012.06.19, Version 0.7.12 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.7.12. + +## 2012.06.15, Version 0.7.11 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.7.11. + +## 2012.06.11, Version 0.7.10 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.7.10. + +## 2012.05.28, Version 0.7.9 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.7.9. + +## 2012.04.18, Version 0.7.8 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.7.8. + +## 2012.03.30, Version 0.7.7 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.7.7. + +## 2012.03.13, Version 0.7.6 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.7.6. + +## 2012.02.23, Version 0.7.5 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.7.5. + +## 2012.02.14, Version 0.7.4 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.7.4. + +## 2012.02.07, Version 0.7.3 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.7.3. + +## 2012.02.01, Version 0.7.2 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.7.2. + +## 2012.01.23, Version 0.7.1 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.7.1. + +## 2012.01.16, Version 0.7.0 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.7.0. + +## 2012.07.10 Version 0.6.20 (maintenance) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.20. + +## 2012.06.06 Version 0.6.19 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.19. + +## 2012.05.15 Version 0.6.18 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.18. + +## 2012.05.04 Version 0.6.17 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.17. + +## 2012.04.30 Version 0.6.16 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.16. + +## 2012.04.09 Version 0.6.15 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.15. + +## 2012.03.22 Version 0.6.14 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.14. + +## 2012.03.15 Version 0.6.13 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.13. + +## 2012.03.02 Version 0.6.12 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.12. + +## 2012.02.17 Version 0.6.11 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.11. + +## 2012.02.02, Version 0.6.10 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.10. + +## 2012.01.27, Version 0.6.9 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.9. + +## 2012.01.19, Version 0.6.8 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.8. + +## 2012.01.06, Version 0.6.7 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.7. + +## 2011.12.14, Version 0.6.6 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.6. + +## 2011.12.04, Version 0.6.5 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.5. + +## 2011.12.02, Version 0.6.4 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.4. + +## 2011.11.25, Version 0.6.3 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.3. + +## 2011.11.18, Version 0.6.2 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.2. + +## 2011.11.11, Version 0.6.1 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.1. + +## 2011.11.04, Version 0.6.0 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.6.0. + +## 2011.10.21, Version 0.5.10 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.5.10. + +## 2011.10.10, Version 0.5.9 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.5.9. + +## 2011.09.30, Version 0.5.8 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.5.8. + +## 2011.09.16, Version 0.5.7 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.5.7. + +## 2011.09.08, Version 0.5.6 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.5.6. + +## 2011.08.26, Version 0.5.5 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.5.5. + +## 2011.08.12, Version 0.5.4 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.5.4. + +## 2011.08.01, Version 0.5.3 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.5.3. + +## 2011.07.22, Version 0.5.2 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.5.2. + +## 2011.07.14, Version 0.5.1 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.5.1. + +## 2011.07.05, Version 0.5.0 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.5.0. + +## 2011.09.15, Version 0.4.12 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.4.12. + +## 2011.08.17, Version 0.4.11 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.4.11. + +## 2011.07.19, Version 0.4.10 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.4.10. + +## 2011.06.29, Version 0.4.9 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.4.9. + +## 2011.05.20, Version 0.4.8 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.4.8. + +## 2011.04.22, Version 0.4.7 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.4.7. + +## 2011.04.13, Version 0.4.6 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.4.6. + +## 2011.04.01, Version 0.4.5 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.4.5. + +## 2011.03.26, Version 0.4.4 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.4.4. + +## 2011.03.18, Version 0.4.3 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.4.3. + +## 2011.03.02, Version 0.4.2 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.4.2. + +## 2011.02.19, Version 0.4.1 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.4.1. + +## 2011.02.10, Version 0.4.0 (stable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.4.0. + +## 2011.02.04, Version 0.3.8 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.3.8. + +## 2011.01.27, Version 0.3.7 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.3.7. + +## 2011.01.21, Version 0.3.6 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.3.6. + +## 2011.01.16, Version 0.3.5 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.3.5. + +## 2011.01.08, Version 0.3.4 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.3.4. + +## 2011.01.02, Version 0.3.3 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.3.3. + +## 2010.12.16, Version 0.3.2 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.3.2. + +## 2010.11.16, Version 0.3.1 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.3.1. + +## 2010.10.23, Version 0.3.0 (unstable) + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.3.0. + +## 2010.08.20, Version 0.2.0 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.2.0. + +## 2010.08.13, Version 0.1.104 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.104. + +## 2010.08.04, Version 0.1.103 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.103. + +## 2010.07.25, Version 0.1.102 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.102. + +## 2010.07.16, Version 0.1.101 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.101. + +## 2010.07.03, Version 0.1.100 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.100. + +## 2010.06.21, Version 0.1.99 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.99. + +## 2010.06.11, Version 0.1.98 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.98. + +## 2010.05.29, Version 0.1.97 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.97. + +## 2010.05.21, Version 0.1.96 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.96. + +## 2010.05.13, Version 0.1.95 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.95. + +## 2010.05.06, Version 0.1.94 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.94. + +## 2010.04.29, Version 0.1.93 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.93. + +## 2010.04.23, Version 0.1.92 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.92. + +## 2010.04.15, Version 0.1.91 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.91. + +## 2010.04.09, Version 0.1.90 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.90. + +## 2010.03.19, Version 0.1.33 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.33. + +## 2010.03.12, Version 0.1.32 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.32. + +## 2010.03.05, Version 0.1.31 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.31. + +## 2010.02.22, Version 0.1.30 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.30. + +## 2010.02.17, Version 0.1.29 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.29. + +## 2010.02.09, Version 0.1.28 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.28. + +## 2010.02.03, Version 0.1.27 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.27. + +## 2010.01.20, Version 0.1.26 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.26. + +## 2010.01.09, Version 0.1.25 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.25. + +## 2009.12.31, Version 0.1.24 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.24. + +## 2009.12.22, Version 0.1.23 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.23. + +## 2009.12.19, Version 0.1.22 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.22. + +## 2009.12.06, Version 0.1.21 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.21. + +## 2009.11.28, Version 0.1.20 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.20. + +## 2009.11.28, Version 0.1.19 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.19. + +## 2009.11.17, Version 0.1.18 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.18. + +## 2009.11.07, Version 0.1.17 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.17. + +## 2009.11.03, Version 0.1.16 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.16. + +## 2009.10.28, Version 0.1.15 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.15. + +## 2009.10.09, Version 0.1.14 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.14. + +## 2009.09.30, Version 0.1.13 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.13. + +## 2009.09.24, Version 0.1.12 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.12. + +## 2009.09.18, Version 0.1.11 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.11. + +## 2009.09.11, Version 0.1.10 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.10. + +## 2009.09.05, Version 0.1.9 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.9. + +## 2009.09.04, Version 0.1.8 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.8. + +## 2009.08.27, Version 0.1.7 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.7. + +## 2009.08.22, Version 0.1.6 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.6. + +## 2009.08.21, Version 0.1.5 + +Moved to doc/changelogs/CHANGELOG\_V6.md#6.0.0. + +## 2009.08.13, Version 0.1.4 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.4. + +## 2009.08.06, Version 0.1.3 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.3. + +## 2009.08.01, Version 0.1.2 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.2. + +## 2009.07.27, Version 0.1.1 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.1. + +## 2009.06.30, Version 0.1.0 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.1.0. + +## 2009.06.24, Version 0.0.6 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.0.6. + +## 2009.06.18, Version 0.0.5 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.0.5. + +## 2009.06.13, Version 0.0.4 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.0.4. + +## 2009.06.11, Version 0.0.3 + +Moved to doc/changelogs/CHANGELOG\_ARCHIVE.md#0.0.3. diff --git a/node/LICENSE b/node/LICENSE new file mode 100644 index 0000000..cbcc28c --- /dev/null +++ b/node/LICENSE @@ -0,0 +1,1880 @@ +Node.js is licensed for use as follows: + +""" +Copyright Node.js contributors. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. +""" + +This license applies to parts of Node.js originating from the +https://github.com/joyent/node repository: + +""" +Copyright Joyent, Inc. and other Node contributors. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. +""" + +The Node.js license applies to all parts of Node.js that are not externally +maintained libraries. + +The externally maintained libraries used by Node.js are: + +- Acorn, located at deps/acorn, is licensed as follows: + """ + MIT License + + Copyright (C) 2012-2022 by various contributors (see AUTHORS) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + """ + +- c-ares, located at deps/cares, is licensed as follows: + """ + Copyright (c) 2007 - 2018, Daniel Stenberg with many contributors, see AUTHORS + file. + + Copyright 1998 by the Massachusetts Institute of Technology. + + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose and without fee is hereby granted, provided that + the above copyright notice appear in all copies and that both that copyright + notice and this permission notice appear in supporting documentation, and that + the name of M.I.T. not be used in advertising or publicity pertaining to + distribution of the software without specific, written prior permission. + M.I.T. makes no representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied warranty. + """ + +- cjs-module-lexer, located at deps/cjs-module-lexer, is licensed as follows: + """ + MIT License + ----------- + + Copyright (C) 2018-2020 Guy Bedford + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + """ + +- ittapi, located at deps/v8/third_party/ittapi, is licensed as follows: + """ + Copyright (c) 2019 Intel Corporation. All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + """ + +- ICU, located at deps/icu-small, is licensed as follows: + """ + UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE + + See Terms of Use + for definitions of Unicode Inc.’s Data Files and Software. + + NOTICE TO USER: Carefully read the following legal agreement. + BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S + DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), + YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE + TERMS AND CONDITIONS OF THIS AGREEMENT. + IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE + THE DATA FILES OR SOFTWARE. + + COPYRIGHT AND PERMISSION NOTICE + + Copyright © 1991-2022 Unicode, Inc. All rights reserved. + Distributed under the Terms of Use in https://www.unicode.org/copyright.html. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of the Unicode data files and any associated documentation + (the "Data Files") or Unicode software and any associated documentation + (the "Software") to deal in the Data Files or Software + without restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, and/or sell copies of + the Data Files or Software, and to permit persons to whom the Data Files + or Software are furnished to do so, provided that either + (a) this copyright and permission notice appear with all copies + of the Data Files or Software, or + (b) this copyright and permission notice appear in associated + Documentation. + + THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF + ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT OF THIRD PARTY RIGHTS. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS + NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL + DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THE DATA FILES OR SOFTWARE. + + Except as contained in this notice, the name of a copyright holder + shall not be used in advertising or otherwise to promote the sale, + use or other dealings in these Data Files or Software without prior + written authorization of the copyright holder. + + ---------------------------------------------------------------------- + + Third-Party Software Licenses + + This section contains third-party software notices and/or additional + terms for licensed third-party software components included within ICU + libraries. + + ---------------------------------------------------------------------- + + ICU License - ICU 1.8.1 to ICU 57.1 + + COPYRIGHT AND PERMISSION NOTICE + + Copyright (c) 1995-2016 International Business Machines Corporation and others + All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, and/or sell copies of the Software, and to permit persons + to whom the Software is furnished to do so, provided that the above + copyright notice(s) and this permission notice appear in all copies of + the Software and that both the above copyright notice(s) and this + permission notice appear in supporting documentation. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT + OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY + SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER + RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF + CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + Except as contained in this notice, the name of a copyright holder + shall not be used in advertising or otherwise to promote the sale, use + or other dealings in this Software without prior written authorization + of the copyright holder. + + All trademarks and registered trademarks mentioned herein are the + property of their respective owners. + + ---------------------------------------------------------------------- + + Chinese/Japanese Word Break Dictionary Data (cjdict.txt) + + # The Google Chrome software developed by Google is licensed under + # the BSD license. Other software included in this distribution is + # provided under other licenses, as set forth below. + # + # The BSD License + # http://opensource.org/licenses/bsd-license.php + # Copyright (C) 2006-2008, Google Inc. + # + # All rights reserved. + # + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions are met: + # + # Redistributions of source code must retain the above copyright notice, + # this list of conditions and the following disclaimer. + # Redistributions in binary form must reproduce the above + # copyright notice, this list of conditions and the following + # disclaimer in the documentation and/or other materials provided with + # the distribution. + # Neither the name of Google Inc. nor the names of its + # contributors may be used to endorse or promote products derived from + # this software without specific prior written permission. + # + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + # CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + # + # + # The word list in cjdict.txt are generated by combining three word lists + # listed below with further processing for compound word breaking. The + # frequency is generated with an iterative training against Google web + # corpora. + # + # * Libtabe (Chinese) + # - https://sourceforge.net/project/?group_id=1519 + # - Its license terms and conditions are shown below. + # + # * IPADIC (Japanese) + # - http://chasen.aist-nara.ac.jp/chasen/distribution.html + # - Its license terms and conditions are shown below. + # + # ---------COPYING.libtabe ---- BEGIN-------------------- + # + # /* + # * Copyright (c) 1999 TaBE Project. + # * Copyright (c) 1999 Pai-Hsiang Hsiao. + # * All rights reserved. + # * + # * Redistribution and use in source and binary forms, with or without + # * modification, are permitted provided that the following conditions + # * are met: + # * + # * . Redistributions of source code must retain the above copyright + # * notice, this list of conditions and the following disclaimer. + # * . Redistributions in binary form must reproduce the above copyright + # * notice, this list of conditions and the following disclaimer in + # * the documentation and/or other materials provided with the + # * distribution. + # * . Neither the name of the TaBE Project nor the names of its + # * contributors may be used to endorse or promote products derived + # * from this software without specific prior written permission. + # * + # * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + # * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + # * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + # * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + # * REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + # * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + # * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + # * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + # * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + # * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + # * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + # * OF THE POSSIBILITY OF SUCH DAMAGE. + # */ + # + # /* + # * Copyright (c) 1999 Computer Systems and Communication Lab, + # * Institute of Information Science, Academia + # * Sinica. All rights reserved. + # * + # * Redistribution and use in source and binary forms, with or without + # * modification, are permitted provided that the following conditions + # * are met: + # * + # * . Redistributions of source code must retain the above copyright + # * notice, this list of conditions and the following disclaimer. + # * . Redistributions in binary form must reproduce the above copyright + # * notice, this list of conditions and the following disclaimer in + # * the documentation and/or other materials provided with the + # * distribution. + # * . Neither the name of the Computer Systems and Communication Lab + # * nor the names of its contributors may be used to endorse or + # * promote products derived from this software without specific + # * prior written permission. + # * + # * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + # * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + # * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + # * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + # * REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + # * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + # * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + # * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + # * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + # * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + # * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + # * OF THE POSSIBILITY OF SUCH DAMAGE. + # */ + # + # Copyright 1996 Chih-Hao Tsai @ Beckman Institute, + # University of Illinois + # c-tsai4@uiuc.edu http://casper.beckman.uiuc.edu/~c-tsai4 + # + # ---------------COPYING.libtabe-----END-------------------------------- + # + # + # ---------------COPYING.ipadic-----BEGIN------------------------------- + # + # Copyright 2000, 2001, 2002, 2003 Nara Institute of Science + # and Technology. All Rights Reserved. + # + # Use, reproduction, and distribution of this software is permitted. + # Any copy of this software, whether in its original form or modified, + # must include both the above copyright notice and the following + # paragraphs. + # + # Nara Institute of Science and Technology (NAIST), + # the copyright holders, disclaims all warranties with regard to this + # software, including all implied warranties of merchantability and + # fitness, in no event shall NAIST be liable for + # any special, indirect or consequential damages or any damages + # whatsoever resulting from loss of use, data or profits, whether in an + # action of contract, negligence or other tortuous action, arising out + # of or in connection with the use or performance of this software. + # + # A large portion of the dictionary entries + # originate from ICOT Free Software. The following conditions for ICOT + # Free Software applies to the current dictionary as well. + # + # Each User may also freely distribute the Program, whether in its + # original form or modified, to any third party or parties, PROVIDED + # that the provisions of Section 3 ("NO WARRANTY") will ALWAYS appear + # on, or be attached to, the Program, which is distributed substantially + # in the same form as set out herein and that such intended + # distribution, if actually made, will neither violate or otherwise + # contravene any of the laws and regulations of the countries having + # jurisdiction over the User or the intended distribution itself. + # + # NO WARRANTY + # + # The program was produced on an experimental basis in the course of the + # research and development conducted during the project and is provided + # to users as so produced on an experimental basis. Accordingly, the + # program is provided without any warranty whatsoever, whether express, + # implied, statutory or otherwise. The term "warranty" used herein + # includes, but is not limited to, any warranty of the quality, + # performance, merchantability and fitness for a particular purpose of + # the program and the nonexistence of any infringement or violation of + # any right of any third party. + # + # Each user of the program will agree and understand, and be deemed to + # have agreed and understood, that there is no warranty whatsoever for + # the program and, accordingly, the entire risk arising from or + # otherwise connected with the program is assumed by the user. + # + # Therefore, neither ICOT, the copyright holder, or any other + # organization that participated in or was otherwise related to the + # development of the program and their respective officials, directors, + # officers and other employees shall be held liable for any and all + # damages, including, without limitation, general, special, incidental + # and consequential damages, arising out of or otherwise in connection + # with the use or inability to use the program or any product, material + # or result produced or otherwise obtained by using the program, + # regardless of whether they have been advised of, or otherwise had + # knowledge of, the possibility of such damages at any time during the + # project or thereafter. Each user will be deemed to have agreed to the + # foregoing by his or her commencement of use of the program. The term + # "use" as used herein includes, but is not limited to, the use, + # modification, copying and distribution of the program and the + # production of secondary products from the program. + # + # In the case where the program, whether in its original form or + # modified, was distributed or delivered to or received by a user from + # any person, organization or entity other than ICOT, unless it makes or + # grants independently of ICOT any specific warranty to the user in + # writing, such person, organization or entity, will also be exempted + # from and not be held liable to the user for any such damages as noted + # above as far as the program is concerned. + # + # ---------------COPYING.ipadic-----END---------------------------------- + + ---------------------------------------------------------------------- + + Lao Word Break Dictionary Data (laodict.txt) + + # Copyright (C) 2016 and later: Unicode, Inc. and others. + # License & terms of use: http://www.unicode.org/copyright.html + # Copyright (c) 2015 International Business Machines Corporation + # and others. All Rights Reserved. + # + # Project: https://github.com/rober42539/lao-dictionary + # Dictionary: https://github.com/rober42539/lao-dictionary/laodict.txt + # License: https://github.com/rober42539/lao-dictionary/LICENSE.txt + # (copied below) + # + # This file is derived from the above dictionary version of Nov 22, 2020 + # ---------------------------------------------------------------------- + # Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell. + # All rights reserved. + # + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions are met: + # + # Redistributions of source code must retain the above copyright notice, this + # list of conditions and the following disclaimer. Redistributions in binary + # form must reproduce the above copyright notice, this list of conditions and + # the following disclaimer in the documentation and/or other materials + # provided with the distribution. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + # OF THE POSSIBILITY OF SUCH DAMAGE. + # -------------------------------------------------------------------------- + + ---------------------------------------------------------------------- + + Burmese Word Break Dictionary Data (burmesedict.txt) + + # Copyright (c) 2014 International Business Machines Corporation + # and others. All Rights Reserved. + # + # This list is part of a project hosted at: + # github.com/kanyawtech/myanmar-karen-word-lists + # + # -------------------------------------------------------------------------- + # Copyright (c) 2013, LeRoy Benjamin Sharon + # All rights reserved. + # + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions + # are met: Redistributions of source code must retain the above + # copyright notice, this list of conditions and the following + # disclaimer. Redistributions in binary form must reproduce the + # above copyright notice, this list of conditions and the following + # disclaimer in the documentation and/or other materials provided + # with the distribution. + # + # Neither the name Myanmar Karen Word Lists, nor the names of its + # contributors may be used to endorse or promote products derived + # from this software without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + # CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS + # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + # TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + # THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + # SUCH DAMAGE. + # -------------------------------------------------------------------------- + + ---------------------------------------------------------------------- + + Time Zone Database + + ICU uses the public domain data and code derived from Time Zone + Database for its time zone support. The ownership of the TZ database + is explained in BCP 175: Procedure for Maintaining the Time Zone + Database section 7. + + # 7. Database Ownership + # + # The TZ database itself is not an IETF Contribution or an IETF + # document. Rather it is a pre-existing and regularly updated work + # that is in the public domain, and is intended to remain in the + # public domain. Therefore, BCPs 78 [RFC5378] and 79 [RFC3979] do + # not apply to the TZ Database or contributions that individuals make + # to it. Should any claims be made and substantiated against the TZ + # Database, the organization that is providing the IANA + # Considerations defined in this RFC, under the memorandum of + # understanding with the IETF, currently ICANN, may act in accordance + # with all competent court orders. No ownership claims will be made + # by ICANN or the IETF Trust on the database or the code. Any person + # making a contribution to the database or code waives all rights to + # future claims in that contribution or in the TZ Database. + + ---------------------------------------------------------------------- + + Google double-conversion + + Copyright 2006-2011, the V8 project authors. All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ---------------------------------------------------------------------- + + File: aclocal.m4 (only for ICU4C) + Section: pkg.m4 - Macros to locate and utilise pkg-config. + + Copyright © 2004 Scott James Remnant . + Copyright © 2012-2015 Dan Nicholson + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. + + As a special exception to the GNU General Public License, if you + distribute this file as part of a program that contains a + configuration script generated by Autoconf, you may include it under + the same distribution terms that you use for the rest of that + program. + + (The condition for the exception is fulfilled because + ICU4C includes a configuration script generated by Autoconf, + namely the `configure` script.) + + ---------------------------------------------------------------------- + + File: config.guess (only for ICU4C) + + This file is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . + + As a special exception to the GNU General Public License, if you + distribute this file as part of a program that contains a + configuration script generated by Autoconf, you may include it under + the same distribution terms that you use for the rest of that + program. This Exception is an additional permission under section 7 + of the GNU General Public License, version 3 ("GPLv3"). + + (The condition for the exception is fulfilled because + ICU4C includes a configuration script generated by Autoconf, + namely the `configure` script.) + + ---------------------------------------------------------------------- + + File: install-sh (only for ICU4C) + + Copyright 1991 by the Massachusetts Institute of Technology + + Permission to use, copy, modify, distribute, and sell this software and its + documentation for any purpose is hereby granted without fee, provided that + the above copyright notice appear in all copies and that both that + copyright notice and this permission notice appear in supporting + documentation, and that the name of M.I.T. not be used in advertising or + publicity pertaining to distribution of the software without specific, + written prior permission. M.I.T. makes no representations about the + suitability of this software for any purpose. It is provided "as is" + without express or implied warranty. + """ + +- libuv, located at deps/uv, is licensed as follows: + """ + libuv is licensed for use as follows: + + ==== + Copyright (c) 2015-present libuv project contributors. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. + ==== + + This license applies to parts of libuv originating from the + https://github.com/joyent/libuv repository: + + ==== + + Copyright Joyent, Inc. and other Node contributors. All rights reserved. + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. + + ==== + + This license applies to all parts of libuv that are not externally + maintained libraries. + + The externally maintained libraries used by libuv are: + + - tree.h (from FreeBSD), copyright Niels Provos. Two clause BSD license. + + - inet_pton and inet_ntop implementations, contained in src/inet.c, are + copyright the Internet Systems Consortium, Inc., and licensed under the ISC + license. + + - stdint-msvc2008.h (from msinttypes), copyright Alexander Chemeris. Three + clause BSD license. + + - pthread-fixes.c, copyright Google Inc. and Sony Mobile Communications AB. + Three clause BSD license. + """ + +- llhttp, located at deps/llhttp, is licensed as follows: + """ + This software is licensed under the MIT License. + + Copyright Fedor Indutny, 2018. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. + """ + +- corepack, located at deps/corepack, is licensed as follows: + """ + **Copyright © Corepack contributors** + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + """ + +- undici, located at deps/undici, is licensed as follows: + """ + MIT License + + Copyright (c) Matteo Collina and Undici contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + """ + +- OpenSSL, located at deps/openssl, is licensed as follows: + """ + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + """ + +- Punycode.js, located at lib/punycode.js, is licensed as follows: + """ + Copyright Mathias Bynens + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + """ + +- V8, located at deps/v8, is licensed as follows: + """ + This license applies to all parts of V8 that are not externally + maintained libraries. The externally maintained libraries used by V8 + are: + + - PCRE test suite, located in + test/mjsunit/third_party/regexp-pcre/regexp-pcre.js. This is based on the + test suite from PCRE-7.3, which is copyrighted by the University + of Cambridge and Google, Inc. The copyright notice and license + are embedded in regexp-pcre.js. + + - Layout tests, located in test/mjsunit/third_party/object-keys. These are + based on layout tests from webkit.org which are copyrighted by + Apple Computer, Inc. and released under a 3-clause BSD license. + + - Strongtalk assembler, the basis of the files assembler-arm-inl.h, + assembler-arm.cc, assembler-arm.h, assembler-ia32-inl.h, + assembler-ia32.cc, assembler-ia32.h, assembler-x64-inl.h, + assembler-x64.cc, assembler-x64.h, assembler.cc and assembler.h. + This code is copyrighted by Sun Microsystems Inc. and released + under a 3-clause BSD license. + + - Valgrind client API header, located at src/third_party/valgrind/valgrind.h + This is released under the BSD license. + + - The Wasm C/C++ API headers, located at third_party/wasm-api/wasm.{h,hh} + This is released under the Apache license. The API's upstream prototype + implementation also formed the basis of V8's implementation in + src/wasm/c-api.cc. + + These libraries have their own licenses; we recommend you read them, + as their terms may differ from the terms below. + + Further license information can be found in LICENSE files located in + sub-directories. + + Copyright 2014, the V8 project authors. All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + """ + +- SipHash, located at deps/v8/src/third_party/siphash, is licensed as follows: + """ + SipHash reference C implementation + + Copyright (c) 2016 Jean-Philippe Aumasson + + To the extent possible under law, the author(s) have dedicated all + copyright and related and neighboring rights to this software to the public + domain worldwide. This software is distributed without any warranty. + """ + +- zlib, located at deps/zlib, is licensed as follows: + """ + zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.13, October 13th, 2022 + + Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + """ + +- npm, located at deps/npm, is licensed as follows: + """ + The npm application + Copyright (c) npm, Inc. and Contributors + Licensed on the terms of The Artistic License 2.0 + + Node package dependencies of the npm application + Copyright (c) their respective copyright owners + Licensed on their respective license terms + + The npm public registry at https://registry.npmjs.org + and the npm website at https://www.npmjs.com + Operated by npm, Inc. + Use governed by terms published on https://www.npmjs.com + + "Node.js" + Trademark Joyent, Inc., https://joyent.com + Neither npm nor npm, Inc. are affiliated with Joyent, Inc. + + The Node.js application + Project of Node Foundation, https://nodejs.org + + The npm Logo + Copyright (c) Mathias Pettersson and Brian Hammond + + "Gubblebum Blocky" typeface + Copyright (c) Tjarda Koster, https://jelloween.deviantart.com + Used with permission + + -------- + + The Artistic License 2.0 + + Copyright (c) 2000-2006, The Perl Foundation. + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + This license establishes the terms under which a given free software + Package may be copied, modified, distributed, and/or redistributed. + The intent is that the Copyright Holder maintains some artistic + control over the development of that Package while still keeping the + Package available as open source and free software. + + You are always permitted to make arrangements wholly outside of this + license directly with the Copyright Holder of a given Package. If the + terms of this license do not permit the full use that you propose to + make of the Package, you should contact the Copyright Holder and seek + a different licensing arrangement. + + Definitions + + "Copyright Holder" means the individual(s) or organization(s) + named in the copyright notice for the entire Package. + + "Contributor" means any party that has contributed code or other + material to the Package, in accordance with the Copyright Holder's + procedures. + + "You" and "your" means any person who would like to copy, + distribute, or modify the Package. + + "Package" means the collection of files distributed by the + Copyright Holder, and derivatives of that collection and/or of + those files. A given Package may consist of either the Standard + Version, or a Modified Version. + + "Distribute" means providing a copy of the Package or making it + accessible to anyone else, or in the case of a company or + organization, to others outside of your company or organization. + + "Distributor Fee" means any fee that you charge for Distributing + this Package or providing support for this Package to another + party. It does not mean licensing fees. + + "Standard Version" refers to the Package if it has not been + modified, or has been modified only in ways explicitly requested + by the Copyright Holder. + + "Modified Version" means the Package, if it has been changed, and + such changes were not explicitly requested by the Copyright + Holder. + + "Original License" means this Artistic License as Distributed with + the Standard Version of the Package, in its current version or as + it may be modified by The Perl Foundation in the future. + + "Source" form means the source code, documentation source, and + configuration files for the Package. + + "Compiled" form means the compiled bytecode, object code, binary, + or any other form resulting from mechanical transformation or + translation of the Source form. + + Permission for Use and Modification Without Distribution + + (1) You are permitted to use the Standard Version and create and use + Modified Versions for any purpose without restriction, provided that + you do not Distribute the Modified Version. + + Permissions for Redistribution of the Standard Version + + (2) You may Distribute verbatim copies of the Source form of the + Standard Version of this Package in any medium without restriction, + either gratis or for a Distributor Fee, provided that you duplicate + all of the original copyright notices and associated disclaimers. At + your discretion, such verbatim copies may or may not include a + Compiled form of the Package. + + (3) You may apply any bug fixes, portability changes, and other + modifications made available from the Copyright Holder. The resulting + Package will still be considered the Standard Version, and as such + will be subject to the Original License. + + Distribution of Modified Versions of the Package as Source + + (4) You may Distribute your Modified Version as Source (either gratis + or for a Distributor Fee, and with or without a Compiled form of the + Modified Version) provided that you clearly document how it differs + from the Standard Version, including, but not limited to, documenting + any non-standard features, executables, or modules, and provided that + you do at least ONE of the following: + + (a) make the Modified Version available to the Copyright Holder + of the Standard Version, under the Original License, so that the + Copyright Holder may include your modifications in the Standard + Version. + + (b) ensure that installation of your Modified Version does not + prevent the user installing or running the Standard Version. In + addition, the Modified Version must bear a name that is different + from the name of the Standard Version. + + (c) allow anyone who receives a copy of the Modified Version to + make the Source form of the Modified Version available to others + under + + (i) the Original License or + + (ii) a license that permits the licensee to freely copy, + modify and redistribute the Modified Version using the same + licensing terms that apply to the copy that the licensee + received, and requires that the Source form of the Modified + Version, and of any works derived from it, be made freely + available in that license fees are prohibited but Distributor + Fees are allowed. + + Distribution of Compiled Forms of the Standard Version + or Modified Versions without the Source + + (5) You may Distribute Compiled forms of the Standard Version without + the Source, provided that you include complete instructions on how to + get the Source of the Standard Version. Such instructions must be + valid at the time of your distribution. If these instructions, at any + time while you are carrying out such distribution, become invalid, you + must provide new instructions on demand or cease further distribution. + If you provide valid instructions or cease distribution within thirty + days after you become aware that the instructions are invalid, then + you do not forfeit any of your rights under this license. + + (6) You may Distribute a Modified Version in Compiled form without + the Source, provided that you comply with Section 4 with respect to + the Source of the Modified Version. + + Aggregating or Linking the Package + + (7) You may aggregate the Package (either the Standard Version or + Modified Version) with other packages and Distribute the resulting + aggregation provided that you do not charge a licensing fee for the + Package. Distributor Fees are permitted, and licensing fees for other + components in the aggregation are permitted. The terms of this license + apply to the use and Distribution of the Standard or Modified Versions + as included in the aggregation. + + (8) You are permitted to link Modified and Standard Versions with + other works, to embed the Package in a larger work of your own, or to + build stand-alone binary or bytecode versions of applications that + include the Package, and Distribute the result without restriction, + provided the result does not expose a direct interface to the Package. + + Items That are Not Considered Part of a Modified Version + + (9) Works (including, but not limited to, modules and scripts) that + merely extend or make use of the Package, do not, by themselves, cause + the Package to be a Modified Version. In addition, such works are not + considered parts of the Package itself, and are not subject to the + terms of this license. + + General Provisions + + (10) Any use, modification, and distribution of the Standard or + Modified Versions is governed by this Artistic License. By using, + modifying or distributing the Package, you accept this license. Do not + use, modify, or distribute the Package, if you do not accept this + license. + + (11) If your Modified Version has been derived from a Modified + Version made by someone other than you, you are nevertheless required + to ensure that your Modified Version complies with the requirements of + this license. + + (12) This license does not grant you the right to use any trademark, + service mark, tradename, or logo of the Copyright Holder. + + (13) This license includes the non-exclusive, worldwide, + free-of-charge patent license to make, have made, use, offer to sell, + sell, import and otherwise transfer the Package with respect to any + patent claims licensable by the Copyright Holder that are necessarily + infringed by the Package. If you institute patent litigation + (including a cross-claim or counterclaim) against any party alleging + that the Package constitutes direct or contributory patent + infringement, then this Artistic License to you shall terminate on the + date that such litigation is filed. + + (14) Disclaimer of Warranty: + THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS + IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR + NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL + LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL + DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + -------- + """ + +- GYP, located at tools/gyp, is licensed as follows: + """ + Copyright (c) 2020 Node.js contributors. All rights reserved. + Copyright (c) 2009 Google Inc. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + """ + +- inspector_protocol, located at tools/inspector_protocol, is licensed as follows: + """ + // Copyright 2016 The Chromium Authors. All rights reserved. + // + // Redistribution and use in source and binary forms, with or without + // modification, are permitted provided that the following conditions are + // met: + // + // * Redistributions of source code must retain the above copyright + // notice, this list of conditions and the following disclaimer. + // * Redistributions in binary form must reproduce the above + // copyright notice, this list of conditions and the following disclaimer + // in the documentation and/or other materials provided with the + // distribution. + // * Neither the name of Google Inc. nor the names of its + // contributors may be used to endorse or promote products derived from + // this software without specific prior written permission. + // + // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + """ + +- jinja2, located at tools/inspector_protocol/jinja2, is licensed as follows: + """ + Copyright (c) 2009 by the Jinja Team, see AUTHORS for more details. + + Some rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * The names of the contributors may not be used to endorse or + promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + """ + +- markupsafe, located at tools/inspector_protocol/markupsafe, is licensed as follows: + """ + Copyright (c) 2010 by Armin Ronacher and contributors. See AUTHORS + for more details. + + Some rights reserved. + + Redistribution and use in source and binary forms of the software as well + as documentation, with or without modification, are permitted provided + that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * The names of the contributors may not be used to endorse or + promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT + NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH + DAMAGE. + """ + +- cpplint.py, located at tools/cpplint.py, is licensed as follows: + """ + Copyright (c) 2009 Google Inc. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + """ + +- ESLint, located at tools/node_modules/eslint, is licensed as follows: + """ + Copyright OpenJS Foundation and other contributors, + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + """ + +- gtest, located at deps/googletest, is licensed as follows: + """ + Copyright 2008, Google Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + """ + +- nghttp2, located at deps/nghttp2, is licensed as follows: + """ + The MIT License + + Copyright (c) 2012, 2014, 2015, 2016 Tatsuhiro Tsujikawa + Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + """ + +- large_pages, located at src/large_pages, is licensed as follows: + """ + Copyright (C) 2018 Intel Corporation + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom + the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES + OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE + OR OTHER DEALINGS IN THE SOFTWARE. + """ + +- caja, located at lib/internal/freeze_intrinsics.js, is licensed as follows: + """ + Adapted from SES/Caja - Copyright (C) 2011 Google Inc. + Copyright (C) 2018 Agoric + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + """ + +- brotli, located at deps/brotli, is licensed as follows: + """ + Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + """ + +- HdrHistogram, located at deps/histogram, is licensed as follows: + """ + The code in this repository code was Written by Gil Tene, Michael Barker, + and Matt Warren, and released to the public domain, as explained at + http://creativecommons.org/publicdomain/zero/1.0/ + + For users of this code who wish to consume it under the "BSD" license + rather than under the public domain or CC0 contribution text mentioned + above, the code found under this directory is *also* provided under the + following license (commonly referred to as the BSD 2-Clause License). This + license does not detract from the above stated release of the code into + the public domain, and simply represents an additional license granted by + the Author. + + ----------------------------------------------------------------------------- + ** Beginning of "BSD 2-Clause License" text. ** + + Copyright (c) 2012, 2013, 2014 Gil Tene + Copyright (c) 2014 Michael Barker + Copyright (c) 2014 Matt Warren + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + """ + +- highlight.js, located at doc/api_assets/highlight.pack.js, is licensed as follows: + """ + BSD 3-Clause License + + Copyright (c) 2006, Ivan Sagalaev. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + """ + +- node-heapdump, located at src/heap_utils.cc, is licensed as follows: + """ + ISC License + + Copyright (c) 2012, Ben Noordhuis + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + === src/compat.h src/compat-inl.h === + + ISC License + + Copyright (c) 2014, StrongLoop Inc. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + """ + +- rimraf, located at lib/internal/fs/rimraf.js, is licensed as follows: + """ + The ISC License + + Copyright (c) Isaac Z. Schlueter and Contributors + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + """ + +- uvwasi, located at deps/uvwasi, is licensed as follows: + """ + MIT License + + Copyright (c) 2019 Colin Ihrig and Contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + """ + +- ngtcp2, located at deps/ngtcp2/ngtcp2/, is licensed as follows: + """ + The MIT License + + Copyright (c) 2016 ngtcp2 contributors + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + """ + +- nghttp3, located at deps/ngtcp2/nghttp3/, is licensed as follows: + """ + The MIT License + + Copyright (c) 2019 nghttp3 contributors + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + """ + +- node-fs-extra, located at lib/internal/fs/cp, is licensed as follows: + """ + (The MIT License) + + Copyright (c) 2011-2017 JP Richardson + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files + (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, + merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS + OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + """ + +- base64, located at deps/base64/base64/, is licensed as follows: + """ + Copyright (c) 2005-2007, Nick Galbreath + Copyright (c) 2013-2019, Alfred Klomp + Copyright (c) 2015-2017, Wojciech Mula + Copyright (c) 2016-2017, Matthieu Darbois + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + """ diff --git a/node/README.md b/node/README.md new file mode 100644 index 0000000..5830ab2 --- /dev/null +++ b/node/README.md @@ -0,0 +1,821 @@ +# Node.js + +Node.js is an open-source, cross-platform JavaScript runtime environment. + +For information on using Node.js, see the [Node.js website][]. + +The Node.js project uses an [open governance model](./GOVERNANCE.md). The +[OpenJS Foundation][] provides support for the project. + +**This project has a [Code of Conduct][].** + +## Table of contents + +* [Support](#support) +* [Release types](#release-types) + * [Download](#download) + * [Current and LTS releases](#current-and-lts-releases) + * [Nightly releases](#nightly-releases) + * [API documentation](#api-documentation) + * [Verifying binaries](#verifying-binaries) +* [Building Node.js](#building-nodejs) +* [Security](#security) +* [Contributing to Node.js](#contributing-to-nodejs) +* [Current project team members](#current-project-team-members) + * [TSC (Technical Steering Committee)](#tsc-technical-steering-committee) + * [Collaborators](#collaborators) + * [Triagers](#triagers) + * [Release keys](#release-keys) +* [License](#license) + +## Support + +Looking for help? Check out the +[instructions for getting support](.github/SUPPORT.md). + +## Release types + +* **Current**: Under active development. Code for the Current release is in the + branch for its major version number (for example, + [v15.x](https://github.com/nodejs/node/tree/v15.x)). Node.js releases a new + major version every 6 months, allowing for breaking changes. This happens in + April and October every year. Releases appearing each October have a support + life of 8 months. Releases appearing each April convert to LTS (see below) + each October. +* **LTS**: Releases that receive Long Term Support, with a focus on stability + and security. Every even-numbered major version will become an LTS release. + LTS releases receive 12 months of _Active LTS_ support and a further 18 months + of _Maintenance_. LTS release lines have alphabetically-ordered code names, + beginning with v4 Argon. There are no breaking changes or feature additions, + except in some special circumstances. +* **Nightly**: Code from the Current branch built every 24-hours when there are + changes. Use with caution. + +Current and LTS releases follow [semantic versioning](https://semver.org). A +member of the Release Team [signs](#release-keys) each Current and LTS release. +For more information, see the +[Release README](https://github.com/nodejs/Release#readme). + +### Download + +Binaries, installers, and source tarballs are available at +. + +#### Current and LTS releases + + + +The [latest](https://nodejs.org/download/release/latest/) directory is an +alias for the latest Current release. The latest-_codename_ directory is an +alias for the latest release from an LTS line. For example, the +[latest-fermium](https://nodejs.org/download/release/latest-fermium/) directory +contains the latest Fermium (Node.js 14) release. + +#### Nightly releases + + + +Each directory name and filename contains a date (in UTC) and the commit +SHA at the HEAD of the release. + +#### API documentation + +Documentation for the latest Current release is at . +Version-specific documentation is available in each release directory in the +_docs_ subdirectory. Version-specific documentation is also at +. + +### Verifying binaries + +Download directories contain a `SHASUMS256.txt` file with SHA checksums for the +files. + +To download `SHASUMS256.txt` using `curl`: + +```console +$ curl -O https://nodejs.org/dist/vx.y.z/SHASUMS256.txt +``` + +To check that a downloaded file matches the checksum, run +it through `sha256sum` with a command such as: + +```console +$ grep node-vx.y.z.tar.gz SHASUMS256.txt | sha256sum -c - +``` + +For Current and LTS, the GPG detached signature of `SHASUMS256.txt` is in +`SHASUMS256.txt.sig`. You can use it with `gpg` to verify the integrity of +`SHASUMS256.txt`. You will first need to import +[the GPG keys of individuals authorized to create releases](#release-keys). To +import the keys: + +```console +$ gpg --keyserver hkps://keys.openpgp.org --recv-keys 4ED778F539E3634C779C87C6D7062848A1AB005C +``` + +See [Release keys](#release-keys) for a script to import active release keys. + +Next, download the `SHASUMS256.txt.sig` for the release: + +```console +$ curl -O https://nodejs.org/dist/vx.y.z/SHASUMS256.txt.sig +``` + +Then use `gpg --verify SHASUMS256.txt.sig SHASUMS256.txt` to verify +the file's signature. + +## Building Node.js + +See [BUILDING.md](BUILDING.md) for instructions on how to build Node.js from +source and a list of supported platforms. + +## Security + +For information on reporting security vulnerabilities in Node.js, see +[SECURITY.md](./SECURITY.md). + +## Contributing to Node.js + +* [Contributing to the project][] +* [Working Groups][] +* [Strategic initiatives][] +* [Technical values and prioritization][] + +## Current project team members + +For information about the governance of the Node.js project, see +[GOVERNANCE.md](./GOVERNANCE.md). + + + +### TSC (Technical Steering Committee) + + + +* [aduh95](https://github.com/aduh95) - + **Antoine du Hamel** <> (he/him) +* [apapirovski](https://github.com/apapirovski) - + **Anatoli Papirovski** <> (he/him) +* [BethGriggs](https://github.com/BethGriggs) - + **Beth Griggs** <> (she/her) +* [BridgeAR](https://github.com/BridgeAR) - + **Ruben Bridgewater** <> (he/him) +* [ChALkeR](https://github.com/ChALkeR) - + **Сковорода Никита Андреевич** <> (he/him) +* [cjihrig](https://github.com/cjihrig) - + **Colin Ihrig** <> (he/him) +* [danielleadams](https://github.com/danielleadams) - + **Danielle Adams** <> (she/her) +* [fhinkel](https://github.com/fhinkel) - + **Franziska Hinkelmann** <> (she/her) +* [GeoffreyBooth](https://github.com/geoffreybooth) - + **Geoffrey Booth** <> (he/him) +* [gireeshpunathil](https://github.com/gireeshpunathil) - + **Gireesh Punathil** <> (he/him) +* [jasnell](https://github.com/jasnell) - + **James M Snell** <> (he/him) +* [joyeecheung](https://github.com/joyeecheung) - + **Joyee Cheung** <> (she/her) +* [legendecas](https://github.com/legendecas) - + **Chengzhong Wu** <> (he/him) +* [mcollina](https://github.com/mcollina) - + **Matteo Collina** <> (he/him) +* [mhdawson](https://github.com/mhdawson) - + **Michael Dawson** <> (he/him) +* [RafaelGSS](https://github.com/RafaelGSS) - + **Rafael Gonzaga** <> (he/him) +* [RaisinTen](https://github.com/RaisinTen) - + **Darshan Sen** <> (he/him) +* [richardlau](https://github.com/richardlau) - + **Richard Lau** <> +* [ronag](https://github.com/ronag) - + **Robert Nagy** <> +* [targos](https://github.com/targos) - + **Michaël Zasso** <> (he/him) +* [tniessen](https://github.com/tniessen) - + **Tobias Nießen** <> (he/him) +* [Trott](https://github.com/Trott) - + **Rich Trott** <> (he/him) + +
+ +Emeriti + +### TSC emeriti + +* [addaleax](https://github.com/addaleax) - + **Anna Henningsen** <> (she/her) +* [bnoordhuis](https://github.com/bnoordhuis) - + **Ben Noordhuis** <> +* [chrisdickinson](https://github.com/chrisdickinson) - + **Chris Dickinson** <> +* [codebytere](https://github.com/codebytere) - + **Shelley Vohr** <> (she/her) +* [danbev](https://github.com/danbev) - + **Daniel Bevenius** <> (he/him) +* [evanlucas](https://github.com/evanlucas) - + **Evan Lucas** <> (he/him) +* [Fishrock123](https://github.com/Fishrock123) - + **Jeremiah Senkpiel** <> (he/they) +* [gabrielschulhof](https://github.com/gabrielschulhof) - + **Gabriel Schulhof** <> +* [gibfahn](https://github.com/gibfahn) - + **Gibson Fahnestock** <> (he/him) +* [indutny](https://github.com/indutny) - + **Fedor Indutny** <> +* [isaacs](https://github.com/isaacs) - + **Isaac Z. Schlueter** <> +* [joshgav](https://github.com/joshgav) - + **Josh Gavant** <> +* [mmarchini](https://github.com/mmarchini) - + **Mary Marchini** <> (she/her) +* [mscdex](https://github.com/mscdex) - + **Brian White** <> +* [MylesBorins](https://github.com/MylesBorins) - + **Myles Borins** <> (he/him) +* [nebrius](https://github.com/nebrius) - + **Bryan Hughes** <> +* [ofrobots](https://github.com/ofrobots) - + **Ali Ijaz Sheikh** <> (he/him) +* [orangemocha](https://github.com/orangemocha) - + **Alexis Campailla** <> +* [piscisaureus](https://github.com/piscisaureus) - + **Bert Belder** <> +* [rvagg](https://github.com/rvagg) - + **Rod Vagg** <> +* [sam-github](https://github.com/sam-github) - + **Sam Roberts** <> +* [shigeki](https://github.com/shigeki) - + **Shigeki Ohtsu** <> (he/him) +* [thefourtheye](https://github.com/thefourtheye) - + **Sakthipriyan Vairamani** <> (he/him) +* [TimothyGu](https://github.com/TimothyGu) - + **Tiancheng "Timothy" Gu** <> (he/him) +* [trevnorris](https://github.com/trevnorris) - + **Trevor Norris** <> + +
+ + + +### Collaborators + +* [addaleax](https://github.com/addaleax) - + **Anna Henningsen** <> (she/her) +* [aduh95](https://github.com/aduh95) - + **Antoine du Hamel** <> (he/him) +* [anonrig](https://github.com/anonrig) - + **Yagiz Nizipli** <> (he/him) +* [antsmartian](https://github.com/antsmartian) - + **Anto Aravinth** <> (he/him) +* [apapirovski](https://github.com/apapirovski) - + **Anatoli Papirovski** <> (he/him) +* [AshCripps](https://github.com/AshCripps) - + **Ash Cripps** <> +* [Ayase-252](https://github.com/Ayase-252) - + **Qingyu Deng** <> +* [bcoe](https://github.com/bcoe) - + **Ben Coe** <> (he/him) +* [bengl](https://github.com/bengl) - + **Bryan English** <> (he/him) +* [benjamingr](https://github.com/benjamingr) - + **Benjamin Gruenbaum** <> +* [BethGriggs](https://github.com/BethGriggs) - + **Beth Griggs** <> (she/her) +* [bmeck](https://github.com/bmeck) - + **Bradley Farias** <> +* [bnb](https://github.com/bnb) - + **Tierney Cyren** <> (they/he) +* [bnoordhuis](https://github.com/bnoordhuis) - + **Ben Noordhuis** <> +* [BridgeAR](https://github.com/BridgeAR) - + **Ruben Bridgewater** <> (he/him) +* [cclauss](https://github.com/cclauss) - + **Christian Clauss** <> (he/him) +* [ChALkeR](https://github.com/ChALkeR) - + **Сковорода Никита Андреевич** <> (he/him) +* [cjihrig](https://github.com/cjihrig) - + **Colin Ihrig** <> (he/him) +* [codebytere](https://github.com/codebytere) - + **Shelley Vohr** <> (she/her) +* [cola119](https://github.com/cola119) - + **Kohei Ueno** <> (he/him) +* [daeyeon](https://github.com/daeyeon) - + **Daeyeon Jeong** <> (he/him) +* [danbev](https://github.com/danbev) - + **Daniel Bevenius** <> (he/him) +* [danielleadams](https://github.com/danielleadams) - + **Danielle Adams** <> (she/her) +* [devnexen](https://github.com/devnexen) - + **David Carlier** <> +* [devsnek](https://github.com/devsnek) - + **Gus Caplan** <> (they/them) +* [edsadr](https://github.com/edsadr) - + **Adrian Estrada** <> (he/him) +* [erickwendel](https://github.com/erickwendel) - + **Erick Wendel** <> (he/him) +* [evanlucas](https://github.com/evanlucas) - + **Evan Lucas** <> (he/him) +* [fhinkel](https://github.com/fhinkel) - + **Franziska Hinkelmann** <> (she/her) +* [F3n67u](https://github.com/F3n67u) - + **Feng Yu** <> (he/him) +* [Flarna](https://github.com/Flarna) - + **Gerhard Stöbich** <> (he/they) +* [gabrielschulhof](https://github.com/gabrielschulhof) - + **Gabriel Schulhof** <> +* [gengjiawen](https://github.com/gengjiawen) - + **Jiawen Geng** <> +* [GeoffreyBooth](https://github.com/geoffreybooth) - + **Geoffrey Booth** <> (he/him) +* [gireeshpunathil](https://github.com/gireeshpunathil) - + **Gireesh Punathil** <> (he/him) +* [guybedford](https://github.com/guybedford) - + **Guy Bedford** <> (he/him) +* [HarshithaKP](https://github.com/HarshithaKP) - + **Harshitha K P** <> (she/her) +* [himself65](https://github.com/himself65) - + **Zeyu "Alex" Yang** <> (he/him) +* [iansu](https://github.com/iansu) - + **Ian Sutherland** <> +* [indutny](https://github.com/indutny) - + **Fedor Indutny** <> +* [JacksonTian](https://github.com/JacksonTian) - + **Jackson Tian** <> +* [JakobJingleheimer](https://github.com/JakobJingleheimer) - + **Jacob Smith** <> (he/him) +* [jasnell](https://github.com/jasnell) - + **James M Snell** <> (he/him) +* [jkrems](https://github.com/jkrems) - + **Jan Krems** <> (he/him) +* [joesepi](https://github.com/joesepi) - + **Joe Sepi** <> (he/him) +* [joyeecheung](https://github.com/joyeecheung) - + **Joyee Cheung** <> (she/her) +* [juanarbol](https://github.com/juanarbol) - + **Juan José Arboleda** <> (he/him) +* [JungMinu](https://github.com/JungMinu) - + **Minwoo Jung** <> (he/him) +* [kuriyosh](https://github.com/kuriyosh) - + **Yoshiki Kurihara** <> (he/him) +* [legendecas](https://github.com/legendecas) - + **Chengzhong Wu** <> (he/him) +* [Leko](https://github.com/Leko) - + **Shingo Inoue** <> (he/him) +* [linkgoron](https://github.com/linkgoron) - + **Nitzan Uziely** <> +* [LiviaMedeiros](https://github.com/LiviaMedeiros) - + **LiviaMedeiros** <> +* [lpinca](https://github.com/lpinca) - + **Luigi Pinca** <> (he/him) +* [lukekarrys](https://github.com/lukekarrys) - + **Luke Karrys** <> (he/him) +* [Lxxyx](https://github.com/Lxxyx) - + **Zijian Liu** <> (he/him) +* [marsonya](https://github.com/marsonya) - + **Akhil Marsonya** <> (he/him) +* [mcollina](https://github.com/mcollina) - + **Matteo Collina** <> (he/him) +* [meixg](https://github.com/meixg) - + **Xuguang Mei** <> (he/him) +* [Mesteery](https://github.com/Mesteery) - + **Mestery** <> (he/him) +* [mhdawson](https://github.com/mhdawson) - + **Michael Dawson** <> (he/him) +* [miladfarca](https://github.com/miladfarca) - + **Milad Fa** <> (he/him) +* [mildsunrise](https://github.com/mildsunrise) - + **Alba Mendez** <> (she/her) +* [MoLow](https://github.com/MoLow) - + **Moshe Atlow** <> (he/him) +* [mscdex](https://github.com/mscdex) - + **Brian White** <> +* [MylesBorins](https://github.com/MylesBorins) - + **Myles Borins** <> (he/him) +* [oyyd](https://github.com/oyyd) - + **Ouyang Yadong** <> (he/him) +* [panva](https://github.com/panva) - + **Filip Skokan** <> +* [puzpuzpuz](https://github.com/puzpuzpuz) - + **Andrey Pechkurov** <> (he/him) +* [Qard](https://github.com/Qard) - + **Stephen Belanger** <> (he/him) +* [RafaelGSS](https://github.com/RafaelGSS) - + **Rafael Gonzaga** <> (he/him) +* [RaisinTen](https://github.com/RaisinTen) - + **Darshan Sen** <> (he/him) +* [richardlau](https://github.com/richardlau) - + **Richard Lau** <> +* [rickyes](https://github.com/rickyes) - + **Ricky Zhou** <<0x19951125@gmail.com>> (he/him) +* [ronag](https://github.com/ronag) - + **Robert Nagy** <> +* [ruyadorno](https://github.com/ruyadorno) - + **Ruy Adorno** <> (he/him) +* [rvagg](https://github.com/rvagg) - + **Rod Vagg** <> +* [ryzokuken](https://github.com/ryzokuken) - + **Ujjwal Sharma** <> (he/him) +* [santigimeno](https://github.com/santigimeno) - + **Santiago Gimeno** <> +* [shisama](https://github.com/shisama) - + **Masashi Hirano** <> (he/him) +* [ShogunPanda](https://github.com/ShogunPanda) - + **Paolo Insogna** <> (he/him) +* [srl295](https://github.com/srl295) - + **Steven R Loomis** <> +* [starkwang](https://github.com/starkwang) - + **Weijia Wang** <> +* [sxa](https://github.com/sxa) - + **Stewart X Addison** <> (he/him) +* [targos](https://github.com/targos) - + **Michaël Zasso** <> (he/him) +* [theanarkh](https://github.com/theanarkh) - + **theanarkh** <> (he/him) +* [TimothyGu](https://github.com/TimothyGu) - + **Tiancheng "Timothy" Gu** <> (he/him) +* [tniessen](https://github.com/tniessen) - + **Tobias Nießen** <> (he/him) +* [trivikr](https://github.com/trivikr) - + **Trivikram Kamat** <> +* [Trott](https://github.com/Trott) - + **Rich Trott** <> (he/him) +* [vdeturckheim](https://github.com/vdeturckheim) - + **Vladimir de Turckheim** <> (he/him) +* [VoltrexKeyva](https://github.com/VoltrexKeyva) - + **Mohammed Keyvanzadeh** <> (he/him) +* [watilde](https://github.com/watilde) - + **Daijiro Wachi** <> (he/him) +* [XadillaX](https://github.com/XadillaX) - + **Khaidi Chu** <> (he/him) +* [yashLadha](https://github.com/yashLadha) - + **Yash Ladha** <> (he/him) +* [ZYSzys](https://github.com/ZYSzys) - + **Yongsheng Zhang** <> (he/him) + +
+ +Emeriti + + + +### Collaborator emeriti + +* [ak239](https://github.com/ak239) - + **Aleksei Koziatinskii** <> +* [andrasq](https://github.com/andrasq) - + **Andras** <> +* [AnnaMag](https://github.com/AnnaMag) - + **Anna M. Kedzierska** <> +* [AndreasMadsen](https://github.com/AndreasMadsen) - + **Andreas Madsen** <> (he/him) +* [aqrln](https://github.com/aqrln) - + **Alexey Orlenko** <> (he/him) +* [bmeurer](https://github.com/bmeurer) - + **Benedikt Meurer** <> +* [boneskull](https://github.com/boneskull) - + **Christopher Hiller** <> (he/him) +* [brendanashworth](https://github.com/brendanashworth) - + **Brendan Ashworth** <> +* [bzoz](https://github.com/bzoz) - + **Bartosz Sosnowski** <> +* [calvinmetcalf](https://github.com/calvinmetcalf) - + **Calvin Metcalf** <> +* [chrisdickinson](https://github.com/chrisdickinson) - + **Chris Dickinson** <> +* [claudiorodriguez](https://github.com/claudiorodriguez) - + **Claudio Rodriguez** <> +* [DavidCai1993](https://github.com/DavidCai1993) - + **David Cai** <> (he/him) +* [davisjam](https://github.com/davisjam) - + **Jamie Davis** <> (he/him) +* [digitalinfinity](https://github.com/digitalinfinity) - + **Hitesh Kanwathirtha** <> (he/him) +* [dmabupt](https://github.com/dmabupt) - + **Xu Meng** <> (he/him) +* [dnlup](https://github.com/dnlup) + **dnlup** <> +* [eljefedelrodeodeljefe](https://github.com/eljefedelrodeodeljefe) - + **Robert Jefe Lindstaedt** <> +* [estliberitas](https://github.com/estliberitas) - + **Alexander Makarenko** <> +* [eugeneo](https://github.com/eugeneo) - + **Eugene Ostroukhov** <> +* [firedfox](https://github.com/firedfox) - + **Daniel Wang** <> +* [Fishrock123](https://github.com/Fishrock123) - + **Jeremiah Senkpiel** <> (he/they) +* [gdams](https://github.com/gdams) - + **George Adams** <> (he/him) +* [geek](https://github.com/geek) - + **Wyatt Preul** <> +* [gibfahn](https://github.com/gibfahn) - + **Gibson Fahnestock** <> (he/him) +* [glentiki](https://github.com/glentiki) - + **Glen Keane** <> (he/him) +* [hashseed](https://github.com/hashseed) - + **Yang Guo** <> (he/him) +* [hiroppy](https://github.com/hiroppy) - + **Yuta Hiroto** <> (he/him) +* [iarna](https://github.com/iarna) - + **Rebecca Turner** <> +* [imran-iq](https://github.com/imran-iq) - + **Imran Iqbal** <> +* [imyller](https://github.com/imyller) - + **Ilkka Myller** <> +* [isaacs](https://github.com/isaacs) - + **Isaac Z. Schlueter** <> +* [italoacasas](https://github.com/italoacasas) - + **Italo A. Casas** <> (he/him) +* [jasongin](https://github.com/jasongin) - + **Jason Ginchereau** <> +* [jbergstroem](https://github.com/jbergstroem) - + **Johan Bergström** <> +* [jdalton](https://github.com/jdalton) - + **John-David Dalton** <> +* [jhamhader](https://github.com/jhamhader) - + **Yuval Brik** <> +* [joaocgreis](https://github.com/joaocgreis) - + **João Reis** <> +* [joshgav](https://github.com/joshgav) - + **Josh Gavant** <> +* [julianduque](https://github.com/julianduque) - + **Julian Duque** <> (he/him) +* [kfarnung](https://github.com/kfarnung) - + **Kyle Farnung** <> (he/him) +* [kunalspathak](https://github.com/kunalspathak) - + **Kunal Pathak** <> +* [lance](https://github.com/lance) - + **Lance Ball** <> (he/him) +* [lucamaraschi](https://github.com/lucamaraschi) - + **Luca Maraschi** <> (he/him) +* [lundibundi](https://github.com/lundibundi) - + **Denys Otrishko** <> (he/him) +* [lxe](https://github.com/lxe) - + **Aleksey Smolenchuk** <> +* [maclover7](https://github.com/maclover7) - + **Jon Moss** <> (he/him) +* [mafintosh](https://github.com/mafintosh) - + **Mathias Buus** <> (he/him) +* [matthewloring](https://github.com/matthewloring) - + **Matthew Loring** <> +* [micnic](https://github.com/micnic) - + **Nicu Micleușanu** <> (he/him) +* [mikeal](https://github.com/mikeal) - + **Mikeal Rogers** <> +* [misterdjules](https://github.com/misterdjules) - + **Julien Gilli** <> +* [mmarchini](https://github.com/mmarchini) - + **Mary Marchini** <> (she/her) +* [monsanto](https://github.com/monsanto) - + **Christopher Monsanto** <> +* [MoonBall](https://github.com/MoonBall) - + **Chen Gang** <> +* [not-an-aardvark](https://github.com/not-an-aardvark) - + **Teddy Katz** <> (he/him) +* [ofrobots](https://github.com/ofrobots) - + **Ali Ijaz Sheikh** <> (he/him) +* [Olegas](https://github.com/Olegas) - + **Oleg Elifantiev** <> +* [orangemocha](https://github.com/orangemocha) - + **Alexis Campailla** <> +* [othiym23](https://github.com/othiym23) - + **Forrest L Norvell** <> (they/them/themself) +* [petkaantonov](https://github.com/petkaantonov) - + **Petka Antonov** <> +* [phillipj](https://github.com/phillipj) - + **Phillip Johnsen** <> +* [piscisaureus](https://github.com/piscisaureus) - + **Bert Belder** <> +* [pmq20](https://github.com/pmq20) - + **Minqi Pan** <> +* [PoojaDurgad](https://github.com/PoojaDurgad) - + **Pooja D P** <> (she/her) +* [princejwesley](https://github.com/princejwesley) - + **Prince John Wesley** <> +* [psmarshall](https://github.com/psmarshall) - + **Peter Marshall** <> (he/him) +* [refack](https://github.com/refack) - + **Refael Ackermann (רפאל פלחי)** <> (he/him/הוא/אתה) +* [rexagod](https://github.com/rexagod) - + **Pranshu Srivastava** <> (he/him) +* [rlidwka](https://github.com/rlidwka) - + **Alex Kocharin** <> +* [rmg](https://github.com/rmg) - + **Ryan Graham** <> +* [robertkowalski](https://github.com/robertkowalski) - + **Robert Kowalski** <> +* [romankl](https://github.com/romankl) - + **Roman Klauke** <> +* [ronkorving](https://github.com/ronkorving) - + **Ron Korving** <> +* [RReverser](https://github.com/RReverser) - + **Ingvar Stepanyan** <> +* [rubys](https://github.com/rubys) - + **Sam Ruby** <> +* [saghul](https://github.com/saghul) - + **Saúl Ibarra Corretgé** <> +* [sam-github](https://github.com/sam-github) - + **Sam Roberts** <> +* [sebdeckers](https://github.com/sebdeckers) - + **Sebastiaan Deckers** <> +* [seishun](https://github.com/seishun) - + **Nikolai Vavilov** <> +* [shigeki](https://github.com/shigeki) - + **Shigeki Ohtsu** <> (he/him) +* [silverwind](https://github.com/silverwind) - + **Roman Reiss** <> +* [stefanmb](https://github.com/stefanmb) - + **Stefan Budeanu** <> +* [tellnes](https://github.com/tellnes) - + **Christian Tellnes** <> +* [thefourtheye](https://github.com/thefourtheye) - + **Sakthipriyan Vairamani** <> (he/him) +* [thlorenz](https://github.com/thlorenz) - + **Thorsten Lorenz** <> +* [trevnorris](https://github.com/trevnorris) - + **Trevor Norris** <> +* [tunniclm](https://github.com/tunniclm) - + **Mike Tunnicliffe** <> +* [vkurchatkin](https://github.com/vkurchatkin) - + **Vladimir Kurchatkin** <> +* [vsemozhetbyt](https://github.com/vsemozhetbyt) - + **Vse Mozhet Byt** <> (he/him) +* [watson](https://github.com/watson) - + **Thomas Watson** <> +* [whitlockjc](https://github.com/whitlockjc) - + **Jeremy Whitlock** <> +* [yhwang](https://github.com/yhwang) - + **Yihong Wang** <> +* [yorkie](https://github.com/yorkie) - + **Yorkie Liu** <> +* [yosuke-furukawa](https://github.com/yosuke-furukawa) - + **Yosuke Furukawa** <> + +
+ + + +Collaborators follow the [Collaborator Guide](./doc/contributing/collaborator-guide.md) in +maintaining the Node.js project. + +### Triagers + +* [Ayase-252](https://github.com/Ayase-252) - + **Qingyu Deng** <> +* [bmuenzenmeyer](https://github.com/bmuenzenmeyer) - + **Brian Muenzenmeyer** <> (he/him) +* [daeyeon](https://github.com/daeyeon) - + **Daeyeon Jeong** <> (he/him) +* [F3n67u](https://github.com/F3n67u) - + **Feng Yu** <> (he/him) +* [himadriganguly](https://github.com/himadriganguly) - + **Himadri Ganguly** <> (he/him) +* [iam-frankqiu](https://github.com/iam-frankqiu) - + **Frank Qiu** <> (he/him) +* [kvakil](https://github.com/kvakil) - + **Keyhan Vakil** <> (they/them) +* [marsonya](https://github.com/marsonya) - + **Akhil Marsonya** <> (he/him) +* [meixg](https://github.com/meixg) - + **Xuguang Mei** <> (he/him) +* [Mesteery](https://github.com/Mesteery) - + **Mestery** <> (he/him) +* [MoLow](https://github.com/MoLow) - + **Moshe Atlow** <> (he/him) +* [PoojaDurgad](https://github.com/PoojaDurgad) - + **Pooja Durgad** <> +* [RaisinTen](https://github.com/RaisinTen) - + **Darshan Sen** <> +* [VoltrexKeyva](https://github.com/VoltrexKeyva) - + **Mohammed Keyvanzadeh** <> (he/him) + +Triagers follow the [Triage Guide](./doc/contributing/issues.md#triaging-a-bug-report) when +responding to new issues. + +### Release keys + +Primary GPG keys for Node.js Releasers (some Releasers sign with subkeys): + +* **Beth Griggs** <> + `4ED778F539E3634C779C87C6D7062848A1AB005C` +* **Bryan English** <> + `141F07595B7B3FFE74309A937405533BE57C7D57` +* **Danielle Adams** <> + `74F12602B6F1C4E913FAA37AD3A89613643B6201` +* **Juan José Arboleda** <> + `61FC681DFB92A079F1685E77973F295594EC4689` +* **Michaël Zasso** <> + `8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600` +* **Myles Borins** <> + `C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8` +* **RafaelGSS** <> + `890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4` +* **Richard Lau** <> + `C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C` +* **Ruy Adorno** <> + `108F52B48DB57BB0CC439B2997B01419BD92F80A` + +To import the full set of trusted release keys (including subkeys possibly used +to sign releases): + +```bash +gpg --keyserver hkps://keys.openpgp.org --recv-keys 4ED778F539E3634C779C87C6D7062848A1AB005C +gpg --keyserver hkps://keys.openpgp.org --recv-keys 141F07595B7B3FFE74309A937405533BE57C7D57 +gpg --keyserver hkps://keys.openpgp.org --recv-keys 74F12602B6F1C4E913FAA37AD3A89613643B6201 +gpg --keyserver hkps://keys.openpgp.org --recv-keys 61FC681DFB92A079F1685E77973F295594EC4689 +gpg --keyserver hkps://keys.openpgp.org --recv-keys 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 +gpg --keyserver hkps://keys.openpgp.org --recv-keys C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 +gpg --keyserver hkps://keys.openpgp.org --recv-keys 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 +gpg --keyserver hkps://keys.openpgp.org --recv-keys C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C +gpg --keyserver hkps://keys.openpgp.org --recv-keys 108F52B48DB57BB0CC439B2997B01419BD92F80A +``` + +See [Verifying binaries](#verifying-binaries) for how to use these keys to +verify a downloaded file. + +
+ +Other keys used to sign some previous releases + +* **Chris Dickinson** <> + `9554F04D7259F04124DE6B476D5A82AC7E37093B` +* **Colin Ihrig** <> + `94AE36675C464D64BAFA68DD7434390BDBE9B9C5` +* **Danielle Adams** <> + `1C050899334244A8AF75E53792EF661D867B9DFA` +* **Evan Lucas** <> + `B9AE9905FFD7803F25714661B63B535A4C206CA9` +* **Gibson Fahnestock** <> + `77984A986EBC2AA786BC0F66B01FBB92821C587A` +* **Isaac Z. Schlueter** <> + `93C7E9E91B49E432C2F75674B0A78B0A6C481CF6` +* **Italo A. Casas** <> + `56730D5401028683275BD23C23EFEFE93C4CFFFE` +* **James M Snell** <> + `71DCFD284A79C3B38668286BC97EC7A07EDE3FC1` +* **Jeremiah Senkpiel** <> + `FD3A5288F042B6850C66B31F09FE44734EB7990E` +* **Julien Gilli** <> + `114F43EE0176B71C7BC219DD50A3051F888C628D` +* **Rod Vagg** <> + `DD8F2338BAE7501E3DD5AC78C273792F7D83545D` +* **Ruben Bridgewater** <> + `A48C2BEE680E841632CD4E44F07496B3EB3C1762` +* **Shelley Vohr** <> + `B9E2F5981AA6E0CD28160D9FF13993A75599653C` +* **Timothy J Fontaine** <> + `7937DFD2AB06298B2293C3187D33FF9D0246406D` + +
+ +### Security release stewards + +When possible, the commitment to take slots in the +security release steward rotation is made by companies in order +to ensure individuals who act as security stewards have the +support and recognition from their employer to be able to +prioritize security releases. Security release stewards manage security +releases on a rotation basis as outlined in the +[security release process](./doc/contributing/security-release-process.md). + +* Datadog + * [bengl](https://github.com/bengl) - + **Bryan English** <> (he/him) + * [vdeturckheim](https://github.com/vdeturckheim) - + **Vladimir de Turckheim** <> (he/him) +* NearForm + * [RafaelGSS](https://github.com/RafaelGSS) - + **Rafael Gonzaga** <> (he/him) +* NodeSource + * [juanarbol](https://github.com/juanarbol) - + **Juan José Arboleda** <> (he/him) +* Platformatic + * [mcollina](https://github.com/mcollina) - + **Matteo Collina** <> (he/him) +* Red Hat and IBM + * [joesepi](https://github.com/joesepi) - + **Joe Sepi** <> (he/him) + * [mhdawson](https://github.com/mhdawson) - + **Michael Dawson** <> (he/him) + +## License + +Node.js is available under the +[MIT license](https://opensource.org/licenses/MIT). Node.js also includes +external libraries that are available under a variety of licenses. See +[LICENSE](https://github.com/nodejs/node/blob/HEAD/LICENSE) for the full +license text. + +[Code of Conduct]: https://github.com/nodejs/admin/blob/HEAD/CODE_OF_CONDUCT.md +[Contributing to the project]: CONTRIBUTING.md +[Node.js website]: https://nodejs.org/ +[OpenJS Foundation]: https://openjsf.org/ +[Strategic initiatives]: doc/contributing/strategic-initiatives.md +[Technical values and prioritization]: doc/contributing/technical-values.md +[Working Groups]: https://github.com/nodejs/TSC/blob/HEAD/WORKING_GROUPS.md diff --git a/node/corepack b/node/corepack new file mode 100644 index 0000000..04fc5cc --- /dev/null +++ b/node/corepack @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/node_modules/corepack/dist/corepack.js" "$@" +else + exec node "$basedir/node_modules/corepack/dist/corepack.js" "$@" +fi diff --git a/node/corepack.cmd b/node/corepack.cmd new file mode 100644 index 0000000..d2262dd --- /dev/null +++ b/node/corepack.cmd @@ -0,0 +1,7 @@ +@SETLOCAL +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\node_modules\corepack\dist\corepack.js" %* +) ELSE ( + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\node_modules\corepack\dist\corepack.js" %* +) diff --git a/node/install_tools.bat b/node/install_tools.bat new file mode 100644 index 0000000..18f92a9 --- /dev/null +++ b/node/install_tools.bat @@ -0,0 +1,55 @@ +@echo off + +setlocal +title Install Additional Tools for Node.js + +cls + +echo ==================================================== +echo Tools for Node.js Native Modules Installation Script +echo ==================================================== +echo. +echo This script will install Python and the Visual Studio Build Tools, necessary +echo to compile Node.js native modules. Note that Chocolatey and required Windows +echo updates will also be installed. +echo. +echo This will require about 3 GiB of free disk space, plus any space necessary to +echo install Windows updates. This will take a while to run. +echo. +echo Please close all open programs for the duration of the installation. If the +echo installation fails, please ensure Windows is fully updated, reboot your +echo computer and try to run this again. This script can be found in the +echo Start menu under Node.js. +echo. +echo You can close this window to stop now. Detailed instructions to install these +echo tools manually are available at https://github.com/nodejs/node-gyp#on-windows +echo. +pause + +cls + +REM Adapted from https://github.com/Microsoft/windows-dev-box-setup-scripts/blob/79bbe5bdc4867088b3e074f9610932f8e4e192c2/README.md#legal +echo Using this script downloads third party software +echo ------------------------------------------------ +echo This script will direct to Chocolatey to install packages. By using +echo Chocolatey to install a package, you are accepting the license for the +echo application, executable(s), or other artifacts delivered to your machine as a +echo result of a Chocolatey install. This acceptance occurs whether you know the +echo license terms or not. Read and understand the license terms of the packages +echo being installed and their dependencies prior to installation: +echo - https://chocolatey.org/packages/chocolatey +echo - https://chocolatey.org/packages/python +echo - https://chocolatey.org/packages/visualstudio2019-workload-vctools +echo. +echo This script is provided AS-IS without any warranties of any kind +echo ---------------------------------------------------------------- +echo Chocolatey has implemented security safeguards in their process to help +echo protect the community from malicious or pirated software, but any use of this +echo script is at your own risk. Please read the Chocolatey's legal terms of use +echo as well as how the community repository for Chocolatey.org is maintained. +echo. +pause + +cls + +"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command Start-Process '%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe' -ArgumentList '-NoProfile -InputFormat None -ExecutionPolicy Bypass -Command [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; iex ((New-Object System.Net.WebClient).DownloadString(''https://chocolatey.org/install.ps1'')); choco upgrade -y python visualstudio2019-workload-vctools; Read-Host ''Type ENTER to exit'' ' -Verb RunAs diff --git a/node/node.exe b/node/node.exe new file mode 100644 index 0000000..a7bf007 Binary files /dev/null and b/node/node.exe differ diff --git a/node/node_etw_provider.man b/node/node_etw_provider.man new file mode 100644 index 0000000..46ad2e3 --- /dev/null +++ b/node/node_etw_provider.man @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/node/nodevars.bat b/node/nodevars.bat new file mode 100644 index 0000000..c94c446 --- /dev/null +++ b/node/nodevars.bat @@ -0,0 +1,24 @@ +@echo off + +rem Ensure this Node.js and npm are first in the PATH +set "PATH=%APPDATA%\npm;%~dp0;%PATH%" + +setlocal enabledelayedexpansion +pushd "%~dp0" + +rem Figure out the Node.js version. +set print_version=.\node.exe -p -e "process.versions.node + ' (' + process.arch + ')'" +for /F "usebackq delims=" %%v in (`%print_version%`) do set version=%%v + +rem Print message. +if exist npm.cmd ( + echo Your environment has been set up for using Node.js !version! and npm. +) else ( + echo Your environment has been set up for using Node.js !version!. +) + +popd +endlocal + +rem If we're in the Node.js directory, change to the user's home dir. +if "%CD%\"=="%~dp0" cd /d "%HOMEDRIVE%%HOMEPATH%" diff --git a/node/npm b/node/npm new file mode 100644 index 0000000..a131a53 --- /dev/null +++ b/node/npm @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix + +basedir=`dirname "$0"` + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +NODE_EXE="$basedir/node.exe" +if ! [ -x "$NODE_EXE" ]; then + NODE_EXE="$basedir/node" +fi +if ! [ -x "$NODE_EXE" ]; then + NODE_EXE=node +fi + +# this path is passed to node.exe, so it needs to match whatever +# kind of paths Node.js thinks it's using, typically win32 paths. +CLI_BASEDIR="$("$NODE_EXE" -p 'require("path").dirname(process.execPath)')" +NPM_CLI_JS="$CLI_BASEDIR/node_modules/npm/bin/npm-cli.js" + +NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g` +if [ $? -ne 0 ]; then + # if this didn't work, then everything else below will fail + echo "Could not determine Node.js install directory" >&2 + exit 1 +fi +NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npm-cli.js" + +# a path that will fail -f test on any posix bash +NPM_WSL_PATH="/.." + +# WSL can run Windows binaries, so we have to give it the win32 path +# however, WSL bash tests against posix paths, so we need to construct that +# to know if npm is installed globally. +if [ `uname` = 'Linux' ] && type wslpath &>/dev/null ; then + NPM_WSL_PATH=`wslpath "$NPM_PREFIX_NPM_CLI_JS"` +fi +if [ -f "$NPM_PREFIX_NPM_CLI_JS" ] || [ -f "$NPM_WSL_PATH" ]; then + NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS" +fi + +"$NODE_EXE" "$NPM_CLI_JS" "$@" diff --git a/node/npm.cmd b/node/npm.cmd new file mode 100644 index 0000000..880554d --- /dev/null +++ b/node/npm.cmd @@ -0,0 +1,19 @@ +:: Created by npm, please don't edit manually. +@ECHO OFF + +SETLOCAL + +SET "NODE_EXE=%~dp0\node.exe" +IF NOT EXIST "%NODE_EXE%" ( + SET "NODE_EXE=node" +) + +SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js" +FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO ( + SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js" +) +IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" ( + SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%" +) + +"%NODE_EXE%" "%NPM_CLI_JS%" %* diff --git a/node/npx b/node/npx new file mode 100644 index 0000000..a34e345 --- /dev/null +++ b/node/npx @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +# This is used by the Node.js installer, which expects the cygwin/mingw +# shell script to already be present in the npm dependency folder. + +(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix + +basedir=`dirname "$0"` + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +NODE_EXE="$basedir/node.exe" +if ! [ -x "$NODE_EXE" ]; then + NODE_EXE="$basedir/node" +fi +if ! [ -x "$NODE_EXE" ]; then + NODE_EXE=node +fi + +# these paths are passed to node.exe, so they need to match whatever +# kind of paths Node.js thinks it's using, typically win32 paths. +CLI_BASEDIR="$("$NODE_EXE" -p 'require("path").dirname(process.execPath)')" +if [ $? -ne 0 ]; then + # if this didn't work, then everything else below will fail + echo "Could not determine Node.js install directory" >&2 + exit 1 +fi +NPM_CLI_JS="$CLI_BASEDIR/node_modules/npm/bin/npm-cli.js" +NPX_CLI_JS="$CLI_BASEDIR/node_modules/npm/bin/npx-cli.js" +NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g` +NPM_PREFIX_NPX_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npx-cli.js" + +# a path that will fail -f test on any posix bash +NPX_WSL_PATH="/.." + +# WSL can run Windows binaries, so we have to give it the win32 path +# however, WSL bash tests against posix paths, so we need to construct that +# to know if npm is installed globally. +if [ `uname` = 'Linux' ] && type wslpath &>/dev/null ; then + NPX_WSL_PATH=`wslpath "$NPM_PREFIX_NPX_CLI_JS"` +fi +if [ -f "$NPM_PREFIX_NPX_CLI_JS" ] || [ -f "$NPX_WSL_PATH" ]; then + NPX_CLI_JS="$NPM_PREFIX_NPX_CLI_JS" +fi + +"$NODE_EXE" "$NPX_CLI_JS" "$@" diff --git a/node/npx.cmd b/node/npx.cmd new file mode 100644 index 0000000..9339ebd --- /dev/null +++ b/node/npx.cmd @@ -0,0 +1,20 @@ +:: Created by npm, please don't edit manually. +@ECHO OFF + +SETLOCAL + +SET "NODE_EXE=%~dp0\node.exe" +IF NOT EXIST "%NODE_EXE%" ( + SET "NODE_EXE=node" +) + +SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js" +SET "NPX_CLI_JS=%~dp0\node_modules\npm\bin\npx-cli.js" +FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO ( + SET "NPM_PREFIX_NPX_CLI_JS=%%F\node_modules\npm\bin\npx-cli.js" +) +IF EXIST "%NPM_PREFIX_NPX_CLI_JS%" ( + SET "NPX_CLI_JS=%NPM_PREFIX_NPX_CLI_JS%" +) + +"%NODE_EXE%" "%NPX_CLI_JS%" %* diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..60025a8 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3853 @@ +{ + "name": "remap", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "remap", + "version": "0.0.0", + "dependencies": { + "@headlessui/react": "^1.7.7", + "@heroicons/react": "^2.0.13", + "@tailwindcss/forms": "^0.5.3", + "mapbox-gl": "^2.11.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-map-gl": "^7.0.20" + }, + "devDependencies": { + "@types/react": "^18.0.26", + "@types/react-dom": "^18.0.9", + "@vitejs/plugin-react": "^3.0.0", + "autoprefixer": "^10.4.13", + "postcss": "^8.4.20", + "tailwindcss": "^3.2.4", + "vite": "^4.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", + "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.7.tgz", + "integrity": "sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.7", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", + "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", + "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", + "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", + "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.10.tgz", + "integrity": "sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.13.tgz", + "integrity": "sha512-JmtqThupn9Yf+FzANE+GG73ASUkssnPwOsndUElhp23685QzRK+MO1UompOlBaXV9D5FTuYcPnw7p4mCq2YbZQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.13.tgz", + "integrity": "sha512-r4xetsd1ez1NF9/9R2f9Q6AlxqiZLwUqo7ICOcvEVwopVkXUcspIjEbJk0EVTgT6Cp5+ymzGPT6YNV0ievx4yA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.13.tgz", + "integrity": "sha512-hKt1bFht/Vtp0xJ0ZVzFMnPy1y1ycmM3KNnp3zsyZfQmw7nhs2WLO4vxdR5YG+6RsHKCb2zbZ3VwlC0Tij0qyA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.13.tgz", + "integrity": "sha512-ogrVuNi2URocrr3Ps20f075EMm9V7IeenOi9FRj4qdbT6mQlwLuP4l90PW2iBrKERx0oRkcZprEUNsz/3xd7ww==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.13.tgz", + "integrity": "sha512-Agajik9SBGiKD7FPXE+ExW6x3MgA/dUdpZnXa9y1tyfE4lKQx+eQiknSdrBnWPeqa9wL0AOvkhghmYhpVkyqkA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.13.tgz", + "integrity": "sha512-KxMO3/XihBcHM+xQUM6nQZO1SgQuOsd1DCnKF1a4SIf/i5VD45vrqN3k8ePgFrEbMi7m5JeGmvNqwJXinF0a4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.13.tgz", + "integrity": "sha512-Ez15oqV1vwvZ30cVLeBW14BsWq/fdWNQGMOxxqaSJVQVLqHhvgfQ7gxGDiN9tpJdeQhqJO+Q0r02/Tce5+USNg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.13.tgz", + "integrity": "sha512-18dLd2L3mda+iFj6sswyBMSh2UwniamD9M4DwPv8VM+9apRFlQ5IGKxBdumnTuOI4NvwwAernmUseWhYQ9k+rg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.13.tgz", + "integrity": "sha512-qi5n7KwcGViyJeZeQnu8fB6dC3Mlm5PGaqSv2HhQDDx/MPvVfQGNMcv7zcBL4qk3FkuWhGVwXkjQ76x7R0PWlA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.13.tgz", + "integrity": "sha512-2489Xad9sr+6GD7nB913fUqpCsSwVwgskkQTq4Or2mZntSPYPebyJm8l1YruHo7oqYMTGV6RiwGE4gRo3H+EPQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.13.tgz", + "integrity": "sha512-x8KplRu9Y43Px8I9YS+sPBwQ+fw44Mvp2BPVADopKDWz+h3fcj1BvRU58kxb89WObmwKX9sWdtYzepL4Fmx03A==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.13.tgz", + "integrity": "sha512-qhhdWph9FLwD9rVVC/nUf7k2U4NZIA6/mGx0B7+O6PFV0GjmPA2E3zDQ4NUjq9P26E0DeAZy9akH9dYcUBRU7A==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.13.tgz", + "integrity": "sha512-cVWAPKsrRVxI1jCeJHnYSbE3BrEU+pZTZK2gfao9HRxuc+3m4+RLfs3EVEpGLmMKEcWfVCB9wZ3yNxnknutGKQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.13.tgz", + "integrity": "sha512-Agb7dbRyZWnmPn5Vvf0eyqaEUqSsaIUwwyInu2EoFTaIDRp093QU2M5alUyOooMLkRbD1WvqQNwx08Z/g+SAcQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.13.tgz", + "integrity": "sha512-AqRBIrc/+kl08ahliNG+EyU+j41wIzQfwBTKpi80cCDiYvYFPuXjvzZsD9muiu58Isj0RVni9VgC4xK/AnSW4g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.13.tgz", + "integrity": "sha512-S4wn2BimuhPcoArRtVrdHUKIymCCZcYAXQE47kUiX4yrUrEX2/ifn5eKNbZ5c1jJKUlh1gC2ESIN+iw3wQax3g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.13.tgz", + "integrity": "sha512-2c8JWgfUMlQHTdaR5X3xNMwqOyad8kgeCupuVkdm3QkUOzGREjlTETQsK6oHifocYzDCo9FeKcUwsK356SdR+g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.13.tgz", + "integrity": "sha512-Bwh+PmKD/LK+xBjqIpnYnKYj0fIyQJ0YpRxsn0F+WfzvQ2OA+GKDlf8AHosiCns26Q4Dje388jQVwfOBZ1GaFw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.13.tgz", + "integrity": "sha512-8wwk6f9XGnhrF94/DBdFM4Xm1JeCyGTCj67r516VS9yvBVQf3Rar54L+XPVDs/oZOokwH+XsktrgkuTMAmjntg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.13.tgz", + "integrity": "sha512-Jmwbp/5ArLCiRAHC33ODfcrlIcbP/exXkOEUVkADNJC4e/so2jm+i8IQFvVX/lA2GWvK3GdgcN0VFfp9YITAbg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.13.tgz", + "integrity": "sha512-AX6WjntGjhJHzrPSVvjMD7grxt41koHfAOx6lxLorrpDwwIKKPaGDASPZgvFIZHTbwhOtILW6vAXxYPDsKpDJA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.13.tgz", + "integrity": "sha512-A+U4gM6OOkPS03UgVU08GTpAAAxPsP/8Z4FmneGo4TaVSD99bK9gVJXlqUEPMO/htFXEAht2O6pX4ErtLY5tVg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@headlessui/react": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.7.tgz", + "integrity": "sha512-BqDOd/tB9u2tA0T3Z0fn18ktw+KbVwMnkxxsGPIH2hzssrQhKB5n/6StZOyvLYP/FsYtvuXfi9I0YowKPv2c1w==", + "dependencies": { + "client-only": "^0.0.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16 || ^17 || ^18", + "react-dom": "^16 || ^17 || ^18" + } + }, + "node_modules/@heroicons/react": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.0.13.tgz", + "integrity": "sha512-iSN5XwmagrnirWlYEWNPdCDj9aRYVD/lnK3JlsC9/+fqGF80k8C7rl+1HCvBX0dBoagKqOFBs6fMhJJ1hOg1EQ==", + "peerDependencies": { + "react": ">= 16" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@mapbox/geojson-rewind": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", + "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", + "dependencies": { + "get-stream": "^6.0.1", + "minimist": "^1.2.6" + }, + "bin": { + "geojson-rewind": "geojson-rewind" + } + }, + "node_modules/@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@mapbox/mapbox-gl-supported": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-2.0.1.tgz", + "integrity": "sha512-HP6XvfNIzfoMVfyGjBckjiAOQK9WfX0ywdLubuPMPv+Vqf5fj0uCbgBQYpiqcWZT6cbyyRnTSXDheT1ugvF6UQ==" + }, + "node_modules/@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==" + }, + "node_modules/@mapbox/tiny-sdf": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.5.tgz", + "integrity": "sha512-OhXt2lS//WpLdkqrzo/KwB7SRD8AiNTFFzuo9n14IBupzIMa67yGItcK7I2W9D8Ghpa4T04Sw9FWsKCJG50Bxw==" + }, + "node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==" + }, + "node_modules/@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "dependencies": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "node_modules/@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@tailwindcss/forms": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.3.tgz", + "integrity": "sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==", + "dependencies": { + "mini-svg-data-uri": "^1.2.3" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" + } + }, + "node_modules/@types/geojson": { + "version": "7946.0.10", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", + "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==" + }, + "node_modules/@types/mapbox-gl": { + "version": "2.7.10", + "resolved": "https://registry.npmjs.org/@types/mapbox-gl/-/mapbox-gl-2.7.10.tgz", + "integrity": "sha512-nMVEcu9bAcenvx6oPWubQSPevsekByjOfKjlkr+8P91vawtkxTnopDoXXq1Qn/f4cg3zt0Z2W9DVsVsKRNXJTw==", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.0.26", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", + "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.0.10", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.10.tgz", + "integrity": "sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.0.0.tgz", + "integrity": "sha512-1mvyPc0xYW5G8CHQvJIJXLoMjl5Ct3q2g5Y2s6Ccfgwm45y48LBvsla7az+GkkAtYikWQ4Lxqcsq5RHLcZgtNQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.20.5", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.19.6", + "magic-string": "^0.27.0", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0" + } + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/autoprefixer": { + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001441", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz", + "integrity": "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "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/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==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/csscolorparser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", + "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detective": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", + "dependencies": { + "acorn-node": "^1.8.2", + "defined": "^1.0.0", + "minimist": "^1.2.6" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.13.tgz", + "integrity": "sha512-oYwFdSEIoKM1oYzyem1osgKJAvg5447XF+05ava21fOtilyb2HeQQh26/74K4WeAk5dZmj/Mx10zUqUnI14jhA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.16.13", + "@esbuild/android-arm64": "0.16.13", + "@esbuild/android-x64": "0.16.13", + "@esbuild/darwin-arm64": "0.16.13", + "@esbuild/darwin-x64": "0.16.13", + "@esbuild/freebsd-arm64": "0.16.13", + "@esbuild/freebsd-x64": "0.16.13", + "@esbuild/linux-arm": "0.16.13", + "@esbuild/linux-arm64": "0.16.13", + "@esbuild/linux-ia32": "0.16.13", + "@esbuild/linux-loong64": "0.16.13", + "@esbuild/linux-mips64el": "0.16.13", + "@esbuild/linux-ppc64": "0.16.13", + "@esbuild/linux-riscv64": "0.16.13", + "@esbuild/linux-s390x": "0.16.13", + "@esbuild/linux-x64": "0.16.13", + "@esbuild/netbsd-x64": "0.16.13", + "@esbuild/openbsd-x64": "0.16.13", + "@esbuild/sunos-x64": "0.16.13", + "@esbuild/win32-arm64": "0.16.13", + "@esbuild/win32-ia32": "0.16.13", + "@esbuild/win32-x64": "0.16.13" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/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==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/geojson-vt": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", + "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/grid-index": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", + "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kdbush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", + "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" + }, + "node_modules/lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mapbox-gl": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-2.11.1.tgz", + "integrity": "sha512-UzPi3m9i4t95M234sPmL3n9q2XpyHoyIFMXDjuJP+3OmzROwYUMzLcNMnPHrOmgwGicg99dr7rEJGYyEGr9i+A==", + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/mapbox-gl-supported": "^2.0.1", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^2.0.5", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "csscolorparser": "~1.0.3", + "earcut": "^2.2.4", + "geojson-vt": "^3.2.1", + "gl-matrix": "^3.4.3", + "grid-index": "^1.1.0", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^2.0.0", + "quickselect": "^2.0.0", + "rw": "^1.3.3", + "supercluster": "^7.1.5", + "tinyqueue": "^2.0.3", + "vt-pbf": "^3.1.3" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/pbf": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", + "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", + "dependencies": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.20", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", + "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", + "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/potpack": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz", + "integrity": "sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==" + }, + "node_modules/protocol-buffers-schema": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", + "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-map-gl": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/react-map-gl/-/react-map-gl-7.0.20.tgz", + "integrity": "sha512-Q1formrWEdt9vY5DyW2vgdmAPuSMH2TFn8xKMlA+cmBlyS8veQvVTGoq4lAm8p3Hb/90ZpNmMtI4s107r931vQ==", + "dependencies": { + "@types/mapbox-gl": "^2.6.0" + }, + "peerDependencies": { + "mapbox-gl": "*", + "react": ">=16.3.0" + } + }, + "node_modules/react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "dependencies": { + "protocol-buffers-schema": "^3.3.1" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.9.1.tgz", + "integrity": "sha512-GswCYHXftN8ZKGVgQhTFUJB/NBXxrRGgO2NCy6E8s1rwEJ4Q9/VttNqcYfEvx4dTo4j58YqdC3OVztPzlKSX8w==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supercluster": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz", + "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", + "dependencies": { + "kdbush": "^3.0.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.4.tgz", + "integrity": "sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==", + "dependencies": { + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "detective": "^5.2.1", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.18", + "postcss-import": "^14.1.0", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.4", + "postcss-nested": "6.0.0", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.1" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/tailwindcss/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/tinyqueue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/vite": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.4.tgz", + "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", + "dev": true, + "dependencies": { + "esbuild": "^0.16.3", + "postcss": "^8.4.20", + "resolve": "^1.22.1", + "rollup": "^3.7.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vt-pbf": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", + "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", + "dependencies": { + "@mapbox/point-geometry": "0.1.0", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.2.1" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", + "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "dev": true + }, + "@babel/core": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.7.tgz", + "integrity": "sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.7", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", + "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", + "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", + "dev": true, + "requires": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", + "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", + "dev": true + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", + "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + } + }, + "@babel/traverse": { + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.10.tgz", + "integrity": "sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@esbuild/android-arm": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.13.tgz", + "integrity": "sha512-JmtqThupn9Yf+FzANE+GG73ASUkssnPwOsndUElhp23685QzRK+MO1UompOlBaXV9D5FTuYcPnw7p4mCq2YbZQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.13.tgz", + "integrity": "sha512-r4xetsd1ez1NF9/9R2f9Q6AlxqiZLwUqo7ICOcvEVwopVkXUcspIjEbJk0EVTgT6Cp5+ymzGPT6YNV0ievx4yA==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.13.tgz", + "integrity": "sha512-hKt1bFht/Vtp0xJ0ZVzFMnPy1y1ycmM3KNnp3zsyZfQmw7nhs2WLO4vxdR5YG+6RsHKCb2zbZ3VwlC0Tij0qyA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.13.tgz", + "integrity": "sha512-ogrVuNi2URocrr3Ps20f075EMm9V7IeenOi9FRj4qdbT6mQlwLuP4l90PW2iBrKERx0oRkcZprEUNsz/3xd7ww==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.13.tgz", + "integrity": "sha512-Agajik9SBGiKD7FPXE+ExW6x3MgA/dUdpZnXa9y1tyfE4lKQx+eQiknSdrBnWPeqa9wL0AOvkhghmYhpVkyqkA==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.13.tgz", + "integrity": "sha512-KxMO3/XihBcHM+xQUM6nQZO1SgQuOsd1DCnKF1a4SIf/i5VD45vrqN3k8ePgFrEbMi7m5JeGmvNqwJXinF0a4Q==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.13.tgz", + "integrity": "sha512-Ez15oqV1vwvZ30cVLeBW14BsWq/fdWNQGMOxxqaSJVQVLqHhvgfQ7gxGDiN9tpJdeQhqJO+Q0r02/Tce5+USNg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.13.tgz", + "integrity": "sha512-18dLd2L3mda+iFj6sswyBMSh2UwniamD9M4DwPv8VM+9apRFlQ5IGKxBdumnTuOI4NvwwAernmUseWhYQ9k+rg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.13.tgz", + "integrity": "sha512-qi5n7KwcGViyJeZeQnu8fB6dC3Mlm5PGaqSv2HhQDDx/MPvVfQGNMcv7zcBL4qk3FkuWhGVwXkjQ76x7R0PWlA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.13.tgz", + "integrity": "sha512-2489Xad9sr+6GD7nB913fUqpCsSwVwgskkQTq4Or2mZntSPYPebyJm8l1YruHo7oqYMTGV6RiwGE4gRo3H+EPQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.13.tgz", + "integrity": "sha512-x8KplRu9Y43Px8I9YS+sPBwQ+fw44Mvp2BPVADopKDWz+h3fcj1BvRU58kxb89WObmwKX9sWdtYzepL4Fmx03A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.13.tgz", + "integrity": "sha512-qhhdWph9FLwD9rVVC/nUf7k2U4NZIA6/mGx0B7+O6PFV0GjmPA2E3zDQ4NUjq9P26E0DeAZy9akH9dYcUBRU7A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.13.tgz", + "integrity": "sha512-cVWAPKsrRVxI1jCeJHnYSbE3BrEU+pZTZK2gfao9HRxuc+3m4+RLfs3EVEpGLmMKEcWfVCB9wZ3yNxnknutGKQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.13.tgz", + "integrity": "sha512-Agb7dbRyZWnmPn5Vvf0eyqaEUqSsaIUwwyInu2EoFTaIDRp093QU2M5alUyOooMLkRbD1WvqQNwx08Z/g+SAcQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.13.tgz", + "integrity": "sha512-AqRBIrc/+kl08ahliNG+EyU+j41wIzQfwBTKpi80cCDiYvYFPuXjvzZsD9muiu58Isj0RVni9VgC4xK/AnSW4g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.13.tgz", + "integrity": "sha512-S4wn2BimuhPcoArRtVrdHUKIymCCZcYAXQE47kUiX4yrUrEX2/ifn5eKNbZ5c1jJKUlh1gC2ESIN+iw3wQax3g==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.13.tgz", + "integrity": "sha512-2c8JWgfUMlQHTdaR5X3xNMwqOyad8kgeCupuVkdm3QkUOzGREjlTETQsK6oHifocYzDCo9FeKcUwsK356SdR+g==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.13.tgz", + "integrity": "sha512-Bwh+PmKD/LK+xBjqIpnYnKYj0fIyQJ0YpRxsn0F+WfzvQ2OA+GKDlf8AHosiCns26Q4Dje388jQVwfOBZ1GaFw==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.13.tgz", + "integrity": "sha512-8wwk6f9XGnhrF94/DBdFM4Xm1JeCyGTCj67r516VS9yvBVQf3Rar54L+XPVDs/oZOokwH+XsktrgkuTMAmjntg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.13.tgz", + "integrity": "sha512-Jmwbp/5ArLCiRAHC33ODfcrlIcbP/exXkOEUVkADNJC4e/so2jm+i8IQFvVX/lA2GWvK3GdgcN0VFfp9YITAbg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.13.tgz", + "integrity": "sha512-AX6WjntGjhJHzrPSVvjMD7grxt41koHfAOx6lxLorrpDwwIKKPaGDASPZgvFIZHTbwhOtILW6vAXxYPDsKpDJA==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.13.tgz", + "integrity": "sha512-A+U4gM6OOkPS03UgVU08GTpAAAxPsP/8Z4FmneGo4TaVSD99bK9gVJXlqUEPMO/htFXEAht2O6pX4ErtLY5tVg==", + "dev": true, + "optional": true + }, + "@headlessui/react": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.7.tgz", + "integrity": "sha512-BqDOd/tB9u2tA0T3Z0fn18ktw+KbVwMnkxxsGPIH2hzssrQhKB5n/6StZOyvLYP/FsYtvuXfi9I0YowKPv2c1w==", + "requires": { + "client-only": "^0.0.1" + } + }, + "@heroicons/react": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.0.13.tgz", + "integrity": "sha512-iSN5XwmagrnirWlYEWNPdCDj9aRYVD/lnK3JlsC9/+fqGF80k8C7rl+1HCvBX0dBoagKqOFBs6fMhJJ1hOg1EQ==", + "requires": {} + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@mapbox/geojson-rewind": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", + "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", + "requires": { + "get-stream": "^6.0.1", + "minimist": "^1.2.6" + } + }, + "@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==" + }, + "@mapbox/mapbox-gl-supported": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-2.0.1.tgz", + "integrity": "sha512-HP6XvfNIzfoMVfyGjBckjiAOQK9WfX0ywdLubuPMPv+Vqf5fj0uCbgBQYpiqcWZT6cbyyRnTSXDheT1ugvF6UQ==" + }, + "@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==" + }, + "@mapbox/tiny-sdf": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.5.tgz", + "integrity": "sha512-OhXt2lS//WpLdkqrzo/KwB7SRD8AiNTFFzuo9n14IBupzIMa67yGItcK7I2W9D8Ghpa4T04Sw9FWsKCJG50Bxw==" + }, + "@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==" + }, + "@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "requires": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==" + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@tailwindcss/forms": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.3.tgz", + "integrity": "sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==", + "requires": { + "mini-svg-data-uri": "^1.2.3" + } + }, + "@types/geojson": { + "version": "7946.0.10", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", + "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==" + }, + "@types/mapbox-gl": { + "version": "2.7.10", + "resolved": "https://registry.npmjs.org/@types/mapbox-gl/-/mapbox-gl-2.7.10.tgz", + "integrity": "sha512-nMVEcu9bAcenvx6oPWubQSPevsekByjOfKjlkr+8P91vawtkxTnopDoXXq1Qn/f4cg3zt0Z2W9DVsVsKRNXJTw==", + "requires": { + "@types/geojson": "*" + } + }, + "@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true + }, + "@types/react": { + "version": "18.0.26", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", + "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "18.0.10", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.10.tgz", + "integrity": "sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "@vitejs/plugin-react": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.0.0.tgz", + "integrity": "sha512-1mvyPc0xYW5G8CHQvJIJXLoMjl5Ct3q2g5Y2s6Ccfgwm45y48LBvsla7az+GkkAtYikWQ4Lxqcsq5RHLcZgtNQ==", + "dev": true, + "requires": { + "@babel/core": "^7.20.5", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.19.6", + "magic-string": "^0.27.0", + "react-refresh": "^0.14.0" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "autoprefixer": { + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "dev": true, + "requires": { + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" + }, + "caniuse-lite": { + "version": "1.0.30001441", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz", + "integrity": "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "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==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "csscolorparser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", + "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==" + }, + "detective": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", + "requires": { + "acorn-node": "^1.8.2", + "defined": "^1.0.0", + "minimist": "^1.2.6" + } + }, + "didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" + }, + "electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "esbuild": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.13.tgz", + "integrity": "sha512-oYwFdSEIoKM1oYzyem1osgKJAvg5447XF+05ava21fOtilyb2HeQQh26/74K4WeAk5dZmj/Mx10zUqUnI14jhA==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.16.13", + "@esbuild/android-arm64": "0.16.13", + "@esbuild/android-x64": "0.16.13", + "@esbuild/darwin-arm64": "0.16.13", + "@esbuild/darwin-x64": "0.16.13", + "@esbuild/freebsd-arm64": "0.16.13", + "@esbuild/freebsd-x64": "0.16.13", + "@esbuild/linux-arm": "0.16.13", + "@esbuild/linux-arm64": "0.16.13", + "@esbuild/linux-ia32": "0.16.13", + "@esbuild/linux-loong64": "0.16.13", + "@esbuild/linux-mips64el": "0.16.13", + "@esbuild/linux-ppc64": "0.16.13", + "@esbuild/linux-riscv64": "0.16.13", + "@esbuild/linux-s390x": "0.16.13", + "@esbuild/linux-x64": "0.16.13", + "@esbuild/netbsd-x64": "0.16.13", + "@esbuild/openbsd-x64": "0.16.13", + "@esbuild/sunos-x64": "0.16.13", + "@esbuild/win32-arm64": "0.16.13", + "@esbuild/win32-ia32": "0.16.13", + "@esbuild/win32-x64": "0.16.13" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "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==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "geojson-vt": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", + "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "grid-index": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", + "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "kdbush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", + "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" + }, + "lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + }, + "mapbox-gl": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-2.11.1.tgz", + "integrity": "sha512-UzPi3m9i4t95M234sPmL3n9q2XpyHoyIFMXDjuJP+3OmzROwYUMzLcNMnPHrOmgwGicg99dr7rEJGYyEGr9i+A==", + "requires": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/mapbox-gl-supported": "^2.0.1", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^2.0.5", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "csscolorparser": "~1.0.3", + "earcut": "^2.2.4", + "geojson-vt": "^3.2.1", + "gl-matrix": "^3.4.3", + "grid-index": "^1.1.0", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^2.0.0", + "quickselect": "^2.0.0", + "rw": "^1.3.3", + "supercluster": "^7.1.5", + "tinyqueue": "^2.0.3", + "vt-pbf": "^3.1.3" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==" + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "node-releases": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true + }, + "object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "pbf": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", + "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", + "requires": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + } + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "postcss": { + "version": "8.4.20", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", + "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", + "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", + "requires": { + "camelcase-css": "^2.0.1" + } + }, + "postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + } + }, + "postcss-nested": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "potpack": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz", + "integrity": "sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==" + }, + "protocol-buffers-schema": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", + "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, + "quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" + }, + "react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + } + }, + "react-map-gl": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/react-map-gl/-/react-map-gl-7.0.20.tgz", + "integrity": "sha512-Q1formrWEdt9vY5DyW2vgdmAPuSMH2TFn8xKMlA+cmBlyS8veQvVTGoq4lAm8p3Hb/90ZpNmMtI4s107r931vQ==", + "requires": { + "@types/mapbox-gl": "^2.6.0" + } + }, + "react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "requires": { + "pify": "^2.3.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "requires": { + "protocol-buffers-schema": "^3.3.1" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rollup": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.9.1.tgz", + "integrity": "sha512-GswCYHXftN8ZKGVgQhTFUJB/NBXxrRGgO2NCy6E8s1rwEJ4Q9/VttNqcYfEvx4dTo4j58YqdC3OVztPzlKSX8w==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "supercluster": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz", + "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", + "requires": { + "kdbush": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "tailwindcss": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.4.tgz", + "integrity": "sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==", + "requires": { + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "detective": "^5.2.1", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.18", + "postcss-import": "^14.1.0", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.4", + "postcss-nested": "6.0.0", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.1" + }, + "dependencies": { + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } + } + }, + "tinyqueue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "vite": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.4.tgz", + "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", + "dev": true, + "requires": { + "esbuild": "^0.16.3", + "fsevents": "~2.3.2", + "postcss": "^8.4.20", + "resolve": "^1.22.1", + "rollup": "^3.7.0" + } + }, + "vt-pbf": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", + "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", + "requires": { + "@mapbox/point-geometry": "0.1.0", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.2.1" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..61a10a8 --- /dev/null +++ b/package.json @@ -0,0 +1,29 @@ +{ + "name": "remap", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@headlessui/react": "^1.7.7", + "@heroicons/react": "^2.0.13", + "@tailwindcss/forms": "^0.5.3", + "mapbox-gl": "^2.11.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-map-gl": "^7.0.20" + }, + "devDependencies": { + "@types/react": "^18.0.26", + "@types/react-dom": "^18.0.9", + "@vitejs/plugin-react": "^3.0.0", + "autoprefixer": "^10.4.13", + "postcss": "^8.4.20", + "tailwindcss": "^3.2.4", + "vite": "^4.0.0" + } +} diff --git a/postcss.config.cjs b/postcss.config.cjs new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/postcss.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/public/emblems/1.png b/public/emblems/1.png new file mode 100644 index 0000000..0093583 Binary files /dev/null and b/public/emblems/1.png differ diff --git a/public/emblems/10.png b/public/emblems/10.png new file mode 100644 index 0000000..2c6b54f Binary files /dev/null and b/public/emblems/10.png differ diff --git a/public/emblems/11.png b/public/emblems/11.png new file mode 100644 index 0000000..c7f34cf Binary files /dev/null and b/public/emblems/11.png differ diff --git a/public/emblems/12.png b/public/emblems/12.png new file mode 100644 index 0000000..a5230da Binary files /dev/null and b/public/emblems/12.png differ diff --git a/public/emblems/13.png b/public/emblems/13.png new file mode 100644 index 0000000..e29f290 Binary files /dev/null and b/public/emblems/13.png differ diff --git a/public/emblems/14.png b/public/emblems/14.png new file mode 100644 index 0000000..4bf5e3f Binary files /dev/null and b/public/emblems/14.png differ diff --git a/public/emblems/15.png b/public/emblems/15.png new file mode 100644 index 0000000..8969574 Binary files /dev/null and b/public/emblems/15.png differ diff --git a/public/emblems/16.png b/public/emblems/16.png new file mode 100644 index 0000000..fd9be32 Binary files /dev/null and b/public/emblems/16.png differ diff --git a/public/emblems/17.png b/public/emblems/17.png new file mode 100644 index 0000000..99b255a Binary files /dev/null and b/public/emblems/17.png differ diff --git a/public/emblems/18.png b/public/emblems/18.png new file mode 100644 index 0000000..619707f Binary files /dev/null and b/public/emblems/18.png differ diff --git a/public/emblems/19.png b/public/emblems/19.png new file mode 100644 index 0000000..0cab87c Binary files /dev/null and b/public/emblems/19.png differ diff --git a/public/emblems/2.png b/public/emblems/2.png new file mode 100644 index 0000000..0eab1e3 Binary files /dev/null and b/public/emblems/2.png differ diff --git a/public/emblems/20.png b/public/emblems/20.png new file mode 100644 index 0000000..4853128 Binary files /dev/null and b/public/emblems/20.png differ diff --git a/public/emblems/21.png b/public/emblems/21.png new file mode 100644 index 0000000..4c3f182 Binary files /dev/null and b/public/emblems/21.png differ diff --git a/public/emblems/22.png b/public/emblems/22.png new file mode 100644 index 0000000..f60d00a Binary files /dev/null and b/public/emblems/22.png differ diff --git a/public/emblems/23.png b/public/emblems/23.png new file mode 100644 index 0000000..558ce66 Binary files /dev/null and b/public/emblems/23.png differ diff --git a/public/emblems/24.png b/public/emblems/24.png new file mode 100644 index 0000000..ae7b3ed Binary files /dev/null and b/public/emblems/24.png differ diff --git a/public/emblems/25.png b/public/emblems/25.png new file mode 100644 index 0000000..a2f9d6c Binary files /dev/null and b/public/emblems/25.png differ diff --git a/public/emblems/26.png b/public/emblems/26.png new file mode 100644 index 0000000..1c65c62 Binary files /dev/null and b/public/emblems/26.png differ diff --git a/public/emblems/27.png b/public/emblems/27.png new file mode 100644 index 0000000..c37d257 Binary files /dev/null and b/public/emblems/27.png differ diff --git a/public/emblems/28.png b/public/emblems/28.png new file mode 100644 index 0000000..21b6ee3 Binary files /dev/null and b/public/emblems/28.png differ diff --git a/public/emblems/29.png b/public/emblems/29.png new file mode 100644 index 0000000..dd1d3ee Binary files /dev/null and b/public/emblems/29.png differ diff --git a/public/emblems/3.png b/public/emblems/3.png new file mode 100644 index 0000000..3036789 Binary files /dev/null and b/public/emblems/3.png differ diff --git a/public/emblems/30.png b/public/emblems/30.png new file mode 100644 index 0000000..248970f Binary files /dev/null and b/public/emblems/30.png differ diff --git a/public/emblems/31.png b/public/emblems/31.png new file mode 100644 index 0000000..41812ec Binary files /dev/null and b/public/emblems/31.png differ diff --git a/public/emblems/32.png b/public/emblems/32.png new file mode 100644 index 0000000..58a9ac3 Binary files /dev/null and b/public/emblems/32.png differ diff --git a/public/emblems/33.png b/public/emblems/33.png new file mode 100644 index 0000000..bc6489a Binary files /dev/null and b/public/emblems/33.png differ diff --git a/public/emblems/34.png b/public/emblems/34.png new file mode 100644 index 0000000..d240071 Binary files /dev/null and b/public/emblems/34.png differ diff --git a/public/emblems/35.png b/public/emblems/35.png new file mode 100644 index 0000000..cd8dd8e Binary files /dev/null and b/public/emblems/35.png differ diff --git a/public/emblems/36.png b/public/emblems/36.png new file mode 100644 index 0000000..8218d7c Binary files /dev/null and b/public/emblems/36.png differ diff --git a/public/emblems/37.png b/public/emblems/37.png new file mode 100644 index 0000000..39157e4 Binary files /dev/null and b/public/emblems/37.png differ diff --git a/public/emblems/38.png b/public/emblems/38.png new file mode 100644 index 0000000..f43a799 Binary files /dev/null and b/public/emblems/38.png differ diff --git a/public/emblems/39.png b/public/emblems/39.png new file mode 100644 index 0000000..fd3d9b9 Binary files /dev/null and b/public/emblems/39.png differ diff --git a/public/emblems/4.png b/public/emblems/4.png new file mode 100644 index 0000000..0025bcb Binary files /dev/null and b/public/emblems/4.png differ diff --git a/public/emblems/40.png b/public/emblems/40.png new file mode 100644 index 0000000..f646bdb Binary files /dev/null and b/public/emblems/40.png differ diff --git a/public/emblems/41.png b/public/emblems/41.png new file mode 100644 index 0000000..0604f73 Binary files /dev/null and b/public/emblems/41.png differ diff --git a/public/emblems/42.png b/public/emblems/42.png new file mode 100644 index 0000000..27b21d4 Binary files /dev/null and b/public/emblems/42.png differ diff --git a/public/emblems/43.png b/public/emblems/43.png new file mode 100644 index 0000000..8f830f0 Binary files /dev/null and b/public/emblems/43.png differ diff --git a/public/emblems/44.png b/public/emblems/44.png new file mode 100644 index 0000000..de68218 Binary files /dev/null and b/public/emblems/44.png differ diff --git a/public/emblems/45.png b/public/emblems/45.png new file mode 100644 index 0000000..61d6c1e Binary files /dev/null and b/public/emblems/45.png differ diff --git a/public/emblems/46.png b/public/emblems/46.png new file mode 100644 index 0000000..572ffbf Binary files /dev/null and b/public/emblems/46.png differ diff --git a/public/emblems/47.png b/public/emblems/47.png new file mode 100644 index 0000000..5b56d7d Binary files /dev/null and b/public/emblems/47.png differ diff --git a/public/emblems/48.png b/public/emblems/48.png new file mode 100644 index 0000000..880a48b Binary files /dev/null and b/public/emblems/48.png differ diff --git a/public/emblems/49.png b/public/emblems/49.png new file mode 100644 index 0000000..0d19b25 Binary files /dev/null and b/public/emblems/49.png differ diff --git a/public/emblems/5.png b/public/emblems/5.png new file mode 100644 index 0000000..8c58417 Binary files /dev/null and b/public/emblems/5.png differ diff --git a/public/emblems/50.png b/public/emblems/50.png new file mode 100644 index 0000000..6f5d202 Binary files /dev/null and b/public/emblems/50.png differ diff --git a/public/emblems/51.png b/public/emblems/51.png new file mode 100644 index 0000000..070f38d Binary files /dev/null and b/public/emblems/51.png differ diff --git a/public/emblems/52.png b/public/emblems/52.png new file mode 100644 index 0000000..ea2088f Binary files /dev/null and b/public/emblems/52.png differ diff --git a/public/emblems/53.png b/public/emblems/53.png new file mode 100644 index 0000000..bda11e5 Binary files /dev/null and b/public/emblems/53.png differ diff --git a/public/emblems/54.png b/public/emblems/54.png new file mode 100644 index 0000000..0cd4b37 Binary files /dev/null and b/public/emblems/54.png differ diff --git a/public/emblems/55.png b/public/emblems/55.png new file mode 100644 index 0000000..a865009 Binary files /dev/null and b/public/emblems/55.png differ diff --git a/public/emblems/56.png b/public/emblems/56.png new file mode 100644 index 0000000..972f137 Binary files /dev/null and b/public/emblems/56.png differ diff --git a/public/emblems/57.png b/public/emblems/57.png new file mode 100644 index 0000000..7f8aadf Binary files /dev/null and b/public/emblems/57.png differ diff --git a/public/emblems/58.png b/public/emblems/58.png new file mode 100644 index 0000000..1e02399 Binary files /dev/null and b/public/emblems/58.png differ diff --git a/public/emblems/59.png b/public/emblems/59.png new file mode 100644 index 0000000..5a41f86 Binary files /dev/null and b/public/emblems/59.png differ diff --git a/public/emblems/6.png b/public/emblems/6.png new file mode 100644 index 0000000..4bdab38 Binary files /dev/null and b/public/emblems/6.png differ diff --git a/public/emblems/60.png b/public/emblems/60.png new file mode 100644 index 0000000..609b916 Binary files /dev/null and b/public/emblems/60.png differ diff --git a/public/emblems/61.png b/public/emblems/61.png new file mode 100644 index 0000000..1059710 Binary files /dev/null and b/public/emblems/61.png differ diff --git a/public/emblems/62.png b/public/emblems/62.png new file mode 100644 index 0000000..e3cc7ce Binary files /dev/null and b/public/emblems/62.png differ diff --git a/public/emblems/63.png b/public/emblems/63.png new file mode 100644 index 0000000..2b23f59 Binary files /dev/null and b/public/emblems/63.png differ diff --git a/public/emblems/64.png b/public/emblems/64.png new file mode 100644 index 0000000..1fde0e9 Binary files /dev/null and b/public/emblems/64.png differ diff --git a/public/emblems/65.png b/public/emblems/65.png new file mode 100644 index 0000000..7350c0d Binary files /dev/null and b/public/emblems/65.png differ diff --git a/public/emblems/66.png b/public/emblems/66.png new file mode 100644 index 0000000..e4b2504 Binary files /dev/null and b/public/emblems/66.png differ diff --git a/public/emblems/67.png b/public/emblems/67.png new file mode 100644 index 0000000..96a0ca7 Binary files /dev/null and b/public/emblems/67.png differ diff --git a/public/emblems/68.png b/public/emblems/68.png new file mode 100644 index 0000000..d1238e1 Binary files /dev/null and b/public/emblems/68.png differ diff --git a/public/emblems/69.png b/public/emblems/69.png new file mode 100644 index 0000000..16a65de Binary files /dev/null and b/public/emblems/69.png differ diff --git a/public/emblems/7.png b/public/emblems/7.png new file mode 100644 index 0000000..78a0cc3 Binary files /dev/null and b/public/emblems/7.png differ diff --git a/public/emblems/70.png b/public/emblems/70.png new file mode 100644 index 0000000..60639b0 Binary files /dev/null and b/public/emblems/70.png differ diff --git a/public/emblems/71.png b/public/emblems/71.png new file mode 100644 index 0000000..5dfc0dd Binary files /dev/null and b/public/emblems/71.png differ diff --git a/public/emblems/72.png b/public/emblems/72.png new file mode 100644 index 0000000..e59fbda Binary files /dev/null and b/public/emblems/72.png differ diff --git a/public/emblems/73.png b/public/emblems/73.png new file mode 100644 index 0000000..b4812e0 Binary files /dev/null and b/public/emblems/73.png differ diff --git a/public/emblems/74.png b/public/emblems/74.png new file mode 100644 index 0000000..1677e82 Binary files /dev/null and b/public/emblems/74.png differ diff --git a/public/emblems/75.png b/public/emblems/75.png new file mode 100644 index 0000000..167f0b7 Binary files /dev/null and b/public/emblems/75.png differ diff --git a/public/emblems/76.png b/public/emblems/76.png new file mode 100644 index 0000000..9df1203 Binary files /dev/null and b/public/emblems/76.png differ diff --git a/public/emblems/77.png b/public/emblems/77.png new file mode 100644 index 0000000..d08a23e Binary files /dev/null and b/public/emblems/77.png differ diff --git a/public/emblems/78.png b/public/emblems/78.png new file mode 100644 index 0000000..acd397f Binary files /dev/null and b/public/emblems/78.png differ diff --git a/public/emblems/79.png b/public/emblems/79.png new file mode 100644 index 0000000..9969447 Binary files /dev/null and b/public/emblems/79.png differ diff --git a/public/emblems/8.png b/public/emblems/8.png new file mode 100644 index 0000000..e5a6a31 Binary files /dev/null and b/public/emblems/8.png differ diff --git a/public/emblems/80.png b/public/emblems/80.png new file mode 100644 index 0000000..b2dc2a3 Binary files /dev/null and b/public/emblems/80.png differ diff --git a/public/emblems/81.png b/public/emblems/81.png new file mode 100644 index 0000000..60ef5ed Binary files /dev/null and b/public/emblems/81.png differ diff --git a/public/emblems/82.png b/public/emblems/82.png new file mode 100644 index 0000000..e9e4544 Binary files /dev/null and b/public/emblems/82.png differ diff --git a/public/emblems/83.png b/public/emblems/83.png new file mode 100644 index 0000000..0e14796 Binary files /dev/null and b/public/emblems/83.png differ diff --git a/public/emblems/84.png b/public/emblems/84.png new file mode 100644 index 0000000..dc7563c Binary files /dev/null and b/public/emblems/84.png differ diff --git a/public/emblems/85.png b/public/emblems/85.png new file mode 100644 index 0000000..71d7b70 Binary files /dev/null and b/public/emblems/85.png differ diff --git a/public/emblems/9.png b/public/emblems/9.png new file mode 100644 index 0000000..57b85c4 Binary files /dev/null and b/public/emblems/9.png differ diff --git a/public/flags/48.png b/public/flags/48.png new file mode 100644 index 0000000..0093583 Binary files /dev/null and b/public/flags/48.png differ diff --git a/public/photos/1.jpg b/public/photos/1.jpg new file mode 100644 index 0000000..6cda6df Binary files /dev/null and b/public/photos/1.jpg differ diff --git a/public/photos/10.jpg b/public/photos/10.jpg new file mode 100644 index 0000000..de799a9 Binary files /dev/null and b/public/photos/10.jpg differ diff --git a/public/photos/100.jpg b/public/photos/100.jpg new file mode 100644 index 0000000..9155fe4 Binary files /dev/null and b/public/photos/100.jpg differ diff --git a/public/photos/103.jpg b/public/photos/103.jpg new file mode 100644 index 0000000..87aa53d Binary files /dev/null and b/public/photos/103.jpg differ diff --git a/public/photos/11.jpg b/public/photos/11.jpg new file mode 100644 index 0000000..992374e Binary files /dev/null and b/public/photos/11.jpg differ diff --git a/public/photos/111.jpg b/public/photos/111.jpg new file mode 100644 index 0000000..4186769 Binary files /dev/null and b/public/photos/111.jpg differ diff --git a/public/photos/113.jpg b/public/photos/113.jpg new file mode 100644 index 0000000..c06db3d Binary files /dev/null and b/public/photos/113.jpg differ diff --git a/public/photos/115.jpg b/public/photos/115.jpg new file mode 100644 index 0000000..513572f Binary files /dev/null and b/public/photos/115.jpg differ diff --git a/public/photos/118.jpg b/public/photos/118.jpg new file mode 100644 index 0000000..001cebb Binary files /dev/null and b/public/photos/118.jpg differ diff --git a/public/photos/12.jpg b/public/photos/12.jpg new file mode 100644 index 0000000..bed60e3 Binary files /dev/null and b/public/photos/12.jpg differ diff --git a/public/photos/124.jpg b/public/photos/124.jpg new file mode 100644 index 0000000..6f5e43b Binary files /dev/null and b/public/photos/124.jpg differ diff --git a/public/photos/125.jpg b/public/photos/125.jpg new file mode 100644 index 0000000..f6fe18a Binary files /dev/null and b/public/photos/125.jpg differ diff --git a/public/photos/129.jpg b/public/photos/129.jpg new file mode 100644 index 0000000..38e59d0 Binary files /dev/null and b/public/photos/129.jpg differ diff --git a/public/photos/14.jpg b/public/photos/14.jpg new file mode 100644 index 0000000..684a29a Binary files /dev/null and b/public/photos/14.jpg differ diff --git a/public/photos/144.jpg b/public/photos/144.jpg new file mode 100644 index 0000000..29f9896 Binary files /dev/null and b/public/photos/144.jpg differ diff --git a/public/photos/145.jpg b/public/photos/145.jpg new file mode 100644 index 0000000..1b8ee33 Binary files /dev/null and b/public/photos/145.jpg differ diff --git a/public/photos/147.jpg b/public/photos/147.jpg new file mode 100644 index 0000000..0aecd31 Binary files /dev/null and b/public/photos/147.jpg differ diff --git a/public/photos/152.jpg b/public/photos/152.jpg new file mode 100644 index 0000000..126f2cc Binary files /dev/null and b/public/photos/152.jpg differ diff --git a/public/photos/154.jpg b/public/photos/154.jpg new file mode 100644 index 0000000..70932f4 Binary files /dev/null and b/public/photos/154.jpg differ diff --git a/public/photos/155.jpg b/public/photos/155.jpg new file mode 100644 index 0000000..ebed052 Binary files /dev/null and b/public/photos/155.jpg differ diff --git a/public/photos/16.jpg b/public/photos/16.jpg new file mode 100644 index 0000000..eb630e2 Binary files /dev/null and b/public/photos/16.jpg differ diff --git a/public/photos/17.jpg b/public/photos/17.jpg new file mode 100644 index 0000000..5bf8e6b Binary files /dev/null and b/public/photos/17.jpg differ diff --git a/public/photos/173.jpg b/public/photos/173.jpg new file mode 100644 index 0000000..7a5d6c9 Binary files /dev/null and b/public/photos/173.jpg differ diff --git a/public/photos/178.jpg b/public/photos/178.jpg new file mode 100644 index 0000000..ca3809c Binary files /dev/null and b/public/photos/178.jpg differ diff --git a/public/photos/18.jpg b/public/photos/18.jpg new file mode 100644 index 0000000..1350d81 Binary files /dev/null and b/public/photos/18.jpg differ diff --git a/public/photos/181.jpg b/public/photos/181.jpg new file mode 100644 index 0000000..db8ec79 Binary files /dev/null and b/public/photos/181.jpg differ diff --git a/public/photos/183.jpg b/public/photos/183.jpg new file mode 100644 index 0000000..bb31e3f Binary files /dev/null and b/public/photos/183.jpg differ diff --git a/public/photos/187.jpg b/public/photos/187.jpg new file mode 100644 index 0000000..530404e Binary files /dev/null and b/public/photos/187.jpg differ diff --git a/public/photos/19.jpg b/public/photos/19.jpg new file mode 100644 index 0000000..f99ce8b Binary files /dev/null and b/public/photos/19.jpg differ diff --git a/public/photos/2.jpg b/public/photos/2.jpg new file mode 100644 index 0000000..2e75f5a Binary files /dev/null and b/public/photos/2.jpg differ diff --git a/public/photos/20.jpeg b/public/photos/20.jpeg new file mode 100644 index 0000000..55f4086 Binary files /dev/null and b/public/photos/20.jpeg differ diff --git a/public/photos/201.jpg b/public/photos/201.jpg new file mode 100644 index 0000000..5057994 Binary files /dev/null and b/public/photos/201.jpg differ diff --git a/public/photos/202.jpg b/public/photos/202.jpg new file mode 100644 index 0000000..b880039 Binary files /dev/null and b/public/photos/202.jpg differ diff --git a/public/photos/207.jpg b/public/photos/207.jpg new file mode 100644 index 0000000..f9beabf Binary files /dev/null and b/public/photos/207.jpg differ diff --git a/public/photos/21.jpg b/public/photos/21.jpg new file mode 100644 index 0000000..f896f30 Binary files /dev/null and b/public/photos/21.jpg differ diff --git a/public/photos/212.jpg b/public/photos/212.jpg new file mode 100644 index 0000000..72f0c76 Binary files /dev/null and b/public/photos/212.jpg differ diff --git a/public/photos/214.jpg b/public/photos/214.jpg new file mode 100644 index 0000000..fb1fd1c Binary files /dev/null and b/public/photos/214.jpg differ diff --git a/public/photos/215.jpg b/public/photos/215.jpg new file mode 100644 index 0000000..58bac6f Binary files /dev/null and b/public/photos/215.jpg differ diff --git a/public/photos/216.jpg b/public/photos/216.jpg new file mode 100644 index 0000000..d5faa83 Binary files /dev/null and b/public/photos/216.jpg differ diff --git a/public/photos/219.jpg b/public/photos/219.jpg new file mode 100644 index 0000000..b223ea1 Binary files /dev/null and b/public/photos/219.jpg differ diff --git a/public/photos/22.jpg b/public/photos/22.jpg new file mode 100644 index 0000000..c743e49 Binary files /dev/null and b/public/photos/22.jpg differ diff --git a/public/photos/220.jpg b/public/photos/220.jpg new file mode 100644 index 0000000..57821a6 Binary files /dev/null and b/public/photos/220.jpg differ diff --git a/public/photos/222.jpg b/public/photos/222.jpg new file mode 100644 index 0000000..c247aab Binary files /dev/null and b/public/photos/222.jpg differ diff --git a/public/photos/224.jpg b/public/photos/224.jpg new file mode 100644 index 0000000..66ebefe Binary files /dev/null and b/public/photos/224.jpg differ diff --git a/public/photos/225.jpg b/public/photos/225.jpg new file mode 100644 index 0000000..6c07bd8 Binary files /dev/null and b/public/photos/225.jpg differ diff --git a/public/photos/229.jpg b/public/photos/229.jpg new file mode 100644 index 0000000..a0fa67a Binary files /dev/null and b/public/photos/229.jpg differ diff --git a/public/photos/23.jpg b/public/photos/23.jpg new file mode 100644 index 0000000..a55aaca Binary files /dev/null and b/public/photos/23.jpg differ diff --git a/public/photos/230.jpg b/public/photos/230.jpg new file mode 100644 index 0000000..088ac1b Binary files /dev/null and b/public/photos/230.jpg differ diff --git a/public/photos/233.jpg b/public/photos/233.jpg new file mode 100644 index 0000000..f4f9a9e Binary files /dev/null and b/public/photos/233.jpg differ diff --git a/public/photos/239.jpg b/public/photos/239.jpg new file mode 100644 index 0000000..9120c7b Binary files /dev/null and b/public/photos/239.jpg differ diff --git a/public/photos/24.JPG b/public/photos/24.JPG new file mode 100644 index 0000000..e90ef90 Binary files /dev/null and b/public/photos/24.JPG differ diff --git a/public/photos/240.jpg b/public/photos/240.jpg new file mode 100644 index 0000000..b556d8e Binary files /dev/null and b/public/photos/240.jpg differ diff --git a/public/photos/242.jpg b/public/photos/242.jpg new file mode 100644 index 0000000..63246b6 Binary files /dev/null and b/public/photos/242.jpg differ diff --git a/public/photos/243.jpg b/public/photos/243.jpg new file mode 100644 index 0000000..d8fe424 Binary files /dev/null and b/public/photos/243.jpg differ diff --git a/public/photos/248.jpg b/public/photos/248.jpg new file mode 100644 index 0000000..39817f2 Binary files /dev/null and b/public/photos/248.jpg differ diff --git a/public/photos/25.jpg b/public/photos/25.jpg new file mode 100644 index 0000000..d9fd4f7 Binary files /dev/null and b/public/photos/25.jpg differ diff --git a/public/photos/254.jpg b/public/photos/254.jpg new file mode 100644 index 0000000..c3e2699 Binary files /dev/null and b/public/photos/254.jpg differ diff --git a/public/photos/256.jpg b/public/photos/256.jpg new file mode 100644 index 0000000..552c9f5 Binary files /dev/null and b/public/photos/256.jpg differ diff --git a/public/photos/257.jpg b/public/photos/257.jpg new file mode 100644 index 0000000..6785e1b Binary files /dev/null and b/public/photos/257.jpg differ diff --git a/public/photos/258.jpg b/public/photos/258.jpg new file mode 100644 index 0000000..d451fff Binary files /dev/null and b/public/photos/258.jpg differ diff --git a/public/photos/26.jpg b/public/photos/26.jpg new file mode 100644 index 0000000..7092997 Binary files /dev/null and b/public/photos/26.jpg differ diff --git a/public/photos/262.jpg b/public/photos/262.jpg new file mode 100644 index 0000000..3522c80 Binary files /dev/null and b/public/photos/262.jpg differ diff --git a/public/photos/267.jpg b/public/photos/267.jpg new file mode 100644 index 0000000..d56726d Binary files /dev/null and b/public/photos/267.jpg differ diff --git a/public/photos/27.jpg b/public/photos/27.jpg new file mode 100644 index 0000000..c382de1 Binary files /dev/null and b/public/photos/27.jpg differ diff --git a/public/photos/272.jpg b/public/photos/272.jpg new file mode 100644 index 0000000..9a55669 Binary files /dev/null and b/public/photos/272.jpg differ diff --git a/public/photos/274.jpg b/public/photos/274.jpg new file mode 100644 index 0000000..1ee5593 Binary files /dev/null and b/public/photos/274.jpg differ diff --git a/public/photos/275.jpg b/public/photos/275.jpg new file mode 100644 index 0000000..6e43d74 Binary files /dev/null and b/public/photos/275.jpg differ diff --git a/public/photos/276.jpg b/public/photos/276.jpg new file mode 100644 index 0000000..d6b3c20 Binary files /dev/null and b/public/photos/276.jpg differ diff --git a/public/photos/277.jpg b/public/photos/277.jpg new file mode 100644 index 0000000..66a155b Binary files /dev/null and b/public/photos/277.jpg differ diff --git a/public/photos/28.jpg b/public/photos/28.jpg new file mode 100644 index 0000000..501c5cd Binary files /dev/null and b/public/photos/28.jpg differ diff --git a/public/photos/280.jpg b/public/photos/280.jpg new file mode 100644 index 0000000..7a94220 Binary files /dev/null and b/public/photos/280.jpg differ diff --git a/public/photos/281.jpg b/public/photos/281.jpg new file mode 100644 index 0000000..ef86d27 Binary files /dev/null and b/public/photos/281.jpg differ diff --git a/public/photos/283.jpg b/public/photos/283.jpg new file mode 100644 index 0000000..118a47d Binary files /dev/null and b/public/photos/283.jpg differ diff --git a/public/photos/284.jpg b/public/photos/284.jpg new file mode 100644 index 0000000..09203a0 Binary files /dev/null and b/public/photos/284.jpg differ diff --git a/public/photos/289.jpg b/public/photos/289.jpg new file mode 100644 index 0000000..a5d7070 Binary files /dev/null and b/public/photos/289.jpg differ diff --git a/public/photos/29.jpg b/public/photos/29.jpg new file mode 100644 index 0000000..ceb8d90 Binary files /dev/null and b/public/photos/29.jpg differ diff --git a/public/photos/298.jpg b/public/photos/298.jpg new file mode 100644 index 0000000..1c6f401 Binary files /dev/null and b/public/photos/298.jpg differ diff --git a/public/photos/3.jpg b/public/photos/3.jpg new file mode 100644 index 0000000..6432ab5 Binary files /dev/null and b/public/photos/3.jpg differ diff --git a/public/photos/30.jpg b/public/photos/30.jpg new file mode 100644 index 0000000..7e04e18 Binary files /dev/null and b/public/photos/30.jpg differ diff --git a/public/photos/300.jpg b/public/photos/300.jpg new file mode 100644 index 0000000..01711db Binary files /dev/null and b/public/photos/300.jpg differ diff --git a/public/photos/308.jpg b/public/photos/308.jpg new file mode 100644 index 0000000..25aeff0 Binary files /dev/null and b/public/photos/308.jpg differ diff --git a/public/photos/31.jpg b/public/photos/31.jpg new file mode 100644 index 0000000..a257d1a Binary files /dev/null and b/public/photos/31.jpg differ diff --git a/public/photos/316.jpg b/public/photos/316.jpg new file mode 100644 index 0000000..7cbee78 Binary files /dev/null and b/public/photos/316.jpg differ diff --git a/public/photos/32.jpg b/public/photos/32.jpg new file mode 100644 index 0000000..5a5e566 Binary files /dev/null and b/public/photos/32.jpg differ diff --git a/public/photos/34.jpg b/public/photos/34.jpg new file mode 100644 index 0000000..b5e7763 Binary files /dev/null and b/public/photos/34.jpg differ diff --git a/public/photos/35.JPG b/public/photos/35.JPG new file mode 100644 index 0000000..a41574e Binary files /dev/null and b/public/photos/35.JPG differ diff --git a/public/photos/36.jpg b/public/photos/36.jpg new file mode 100644 index 0000000..a0cf33b Binary files /dev/null and b/public/photos/36.jpg differ diff --git a/public/photos/37.jpg b/public/photos/37.jpg new file mode 100644 index 0000000..42fd5e0 Binary files /dev/null and b/public/photos/37.jpg differ diff --git a/public/photos/38.jpg b/public/photos/38.jpg new file mode 100644 index 0000000..18a17c0 Binary files /dev/null and b/public/photos/38.jpg differ diff --git a/public/photos/39.jpg b/public/photos/39.jpg new file mode 100644 index 0000000..0574bf5 Binary files /dev/null and b/public/photos/39.jpg differ diff --git a/public/photos/4.jpg b/public/photos/4.jpg new file mode 100644 index 0000000..63d2e1b Binary files /dev/null and b/public/photos/4.jpg differ diff --git a/public/photos/40.jpg b/public/photos/40.jpg new file mode 100644 index 0000000..c49dc03 Binary files /dev/null and b/public/photos/40.jpg differ diff --git a/public/photos/41.jpg b/public/photos/41.jpg new file mode 100644 index 0000000..8f32fb0 Binary files /dev/null and b/public/photos/41.jpg differ diff --git a/public/photos/42.jpg b/public/photos/42.jpg new file mode 100644 index 0000000..9dea9d2 Binary files /dev/null and b/public/photos/42.jpg differ diff --git a/public/photos/43.jpg b/public/photos/43.jpg new file mode 100644 index 0000000..222b537 Binary files /dev/null and b/public/photos/43.jpg differ diff --git a/public/photos/44.jpg b/public/photos/44.jpg new file mode 100644 index 0000000..832332b Binary files /dev/null and b/public/photos/44.jpg differ diff --git a/public/photos/45.jpg b/public/photos/45.jpg new file mode 100644 index 0000000..378b7ba Binary files /dev/null and b/public/photos/45.jpg differ diff --git a/public/photos/46.jpg b/public/photos/46.jpg new file mode 100644 index 0000000..cf44bf3 Binary files /dev/null and b/public/photos/46.jpg differ diff --git a/public/photos/48.jpg b/public/photos/48.jpg new file mode 100644 index 0000000..b8ced06 Binary files /dev/null and b/public/photos/48.jpg differ diff --git a/public/photos/5.JPG b/public/photos/5.JPG new file mode 100644 index 0000000..2d21b24 Binary files /dev/null and b/public/photos/5.JPG differ diff --git a/public/photos/51.jpg b/public/photos/51.jpg new file mode 100644 index 0000000..7e535c5 Binary files /dev/null and b/public/photos/51.jpg differ diff --git a/public/photos/52.JPG b/public/photos/52.JPG new file mode 100644 index 0000000..2604177 Binary files /dev/null and b/public/photos/52.JPG differ diff --git a/public/photos/53.jpg b/public/photos/53.jpg new file mode 100644 index 0000000..a67cf52 Binary files /dev/null and b/public/photos/53.jpg differ diff --git a/public/photos/55.jpg b/public/photos/55.jpg new file mode 100644 index 0000000..ea55d59 Binary files /dev/null and b/public/photos/55.jpg differ diff --git a/public/photos/56.jpg b/public/photos/56.jpg new file mode 100644 index 0000000..1302d4d Binary files /dev/null and b/public/photos/56.jpg differ diff --git a/public/photos/57.jpg b/public/photos/57.jpg new file mode 100644 index 0000000..af418da Binary files /dev/null and b/public/photos/57.jpg differ diff --git a/public/photos/58.jpg b/public/photos/58.jpg new file mode 100644 index 0000000..8dc380f Binary files /dev/null and b/public/photos/58.jpg differ diff --git a/public/photos/59.jpg b/public/photos/59.jpg new file mode 100644 index 0000000..77eee81 Binary files /dev/null and b/public/photos/59.jpg differ diff --git a/public/photos/6.JPG b/public/photos/6.JPG new file mode 100644 index 0000000..bae46c9 Binary files /dev/null and b/public/photos/6.JPG differ diff --git a/public/photos/60.jpg b/public/photos/60.jpg new file mode 100644 index 0000000..b047164 Binary files /dev/null and b/public/photos/60.jpg differ diff --git a/public/photos/61.jpg b/public/photos/61.jpg new file mode 100644 index 0000000..44ac7a5 Binary files /dev/null and b/public/photos/61.jpg differ diff --git a/public/photos/62.jpg b/public/photos/62.jpg new file mode 100644 index 0000000..d16e742 Binary files /dev/null and b/public/photos/62.jpg differ diff --git a/public/photos/63.jpg b/public/photos/63.jpg new file mode 100644 index 0000000..d16e742 Binary files /dev/null and b/public/photos/63.jpg differ diff --git a/public/photos/64.jpg b/public/photos/64.jpg new file mode 100644 index 0000000..11377f0 Binary files /dev/null and b/public/photos/64.jpg differ diff --git a/public/photos/65.jpg b/public/photos/65.jpg new file mode 100644 index 0000000..4875f88 Binary files /dev/null and b/public/photos/65.jpg differ diff --git a/public/photos/66.jpg b/public/photos/66.jpg new file mode 100644 index 0000000..08d4ec0 Binary files /dev/null and b/public/photos/66.jpg differ diff --git a/public/photos/67.JPG b/public/photos/67.JPG new file mode 100644 index 0000000..c87009b Binary files /dev/null and b/public/photos/67.JPG differ diff --git a/public/photos/68.jpg b/public/photos/68.jpg new file mode 100644 index 0000000..514c0b8 Binary files /dev/null and b/public/photos/68.jpg differ diff --git a/public/photos/69.jpg b/public/photos/69.jpg new file mode 100644 index 0000000..485bde5 Binary files /dev/null and b/public/photos/69.jpg differ diff --git a/public/photos/70.jpg b/public/photos/70.jpg new file mode 100644 index 0000000..1c1ce73 Binary files /dev/null and b/public/photos/70.jpg differ diff --git a/public/photos/71.jpg b/public/photos/71.jpg new file mode 100644 index 0000000..0c79edd Binary files /dev/null and b/public/photos/71.jpg differ diff --git a/public/photos/72.jpg b/public/photos/72.jpg new file mode 100644 index 0000000..1b9592c Binary files /dev/null and b/public/photos/72.jpg differ diff --git a/public/photos/73.jpg b/public/photos/73.jpg new file mode 100644 index 0000000..165ac86 Binary files /dev/null and b/public/photos/73.jpg differ diff --git a/public/photos/74.JPG b/public/photos/74.JPG new file mode 100644 index 0000000..010eb0a Binary files /dev/null and b/public/photos/74.JPG differ diff --git a/public/photos/75.JPG b/public/photos/75.JPG new file mode 100644 index 0000000..63e5a42 Binary files /dev/null and b/public/photos/75.JPG differ diff --git a/public/photos/76.jpg b/public/photos/76.jpg new file mode 100644 index 0000000..51dc450 Binary files /dev/null and b/public/photos/76.jpg differ diff --git a/public/photos/77.JPG b/public/photos/77.JPG new file mode 100644 index 0000000..8e80f97 Binary files /dev/null and b/public/photos/77.JPG differ diff --git a/public/photos/78.JPG b/public/photos/78.JPG new file mode 100644 index 0000000..c60d6b5 Binary files /dev/null and b/public/photos/78.JPG differ diff --git a/public/photos/79.jpg b/public/photos/79.jpg new file mode 100644 index 0000000..5111d12 Binary files /dev/null and b/public/photos/79.jpg differ diff --git a/public/photos/8.jpg b/public/photos/8.jpg new file mode 100644 index 0000000..d3ff6b4 Binary files /dev/null and b/public/photos/8.jpg differ diff --git a/public/photos/80.jpg b/public/photos/80.jpg new file mode 100644 index 0000000..e9c961e Binary files /dev/null and b/public/photos/80.jpg differ diff --git a/public/photos/81.jpg b/public/photos/81.jpg new file mode 100644 index 0000000..9a10e3f Binary files /dev/null and b/public/photos/81.jpg differ diff --git a/public/photos/82.jpg b/public/photos/82.jpg new file mode 100644 index 0000000..73556c0 Binary files /dev/null and b/public/photos/82.jpg differ diff --git a/public/photos/84.jpg b/public/photos/84.jpg new file mode 100644 index 0000000..b2832dd Binary files /dev/null and b/public/photos/84.jpg differ diff --git a/public/photos/85.JPG b/public/photos/85.JPG new file mode 100644 index 0000000..17e5e83 Binary files /dev/null and b/public/photos/85.JPG differ diff --git a/public/photos/86.jpg b/public/photos/86.jpg new file mode 100644 index 0000000..722669c Binary files /dev/null and b/public/photos/86.jpg differ diff --git a/public/photos/87.jpg b/public/photos/87.jpg new file mode 100644 index 0000000..09d13dd Binary files /dev/null and b/public/photos/87.jpg differ diff --git a/public/photos/88.jpg b/public/photos/88.jpg new file mode 100644 index 0000000..4a12016 Binary files /dev/null and b/public/photos/88.jpg differ diff --git a/public/photos/89.jpg b/public/photos/89.jpg new file mode 100644 index 0000000..a62b8a5 Binary files /dev/null and b/public/photos/89.jpg differ diff --git a/public/photos/9.jpg b/public/photos/9.jpg new file mode 100644 index 0000000..bf40a98 Binary files /dev/null and b/public/photos/9.jpg differ diff --git a/public/photos/90.jpg b/public/photos/90.jpg new file mode 100644 index 0000000..ee6c708 Binary files /dev/null and b/public/photos/90.jpg differ diff --git a/public/photos/91.jpg b/public/photos/91.jpg new file mode 100644 index 0000000..32add8d Binary files /dev/null and b/public/photos/91.jpg differ diff --git a/public/photos/92.jpg b/public/photos/92.jpg new file mode 100644 index 0000000..ac7b211 Binary files /dev/null and b/public/photos/92.jpg differ diff --git a/public/photos/93.jpg b/public/photos/93.jpg new file mode 100644 index 0000000..e10bd51 Binary files /dev/null and b/public/photos/93.jpg differ diff --git a/public/photos/94.jpg b/public/photos/94.jpg new file mode 100644 index 0000000..7d5bd47 Binary files /dev/null and b/public/photos/94.jpg differ diff --git a/public/photos/95.jpg b/public/photos/95.jpg new file mode 100644 index 0000000..66d0e0d Binary files /dev/null and b/public/photos/95.jpg differ diff --git a/public/photos/96.jpg b/public/photos/96.jpg new file mode 100644 index 0000000..afe97d8 Binary files /dev/null and b/public/photos/96.jpg differ diff --git a/public/photos/97.jpg b/public/photos/97.jpg new file mode 100644 index 0000000..92a03b3 Binary files /dev/null and b/public/photos/97.jpg differ diff --git a/public/photos/98.JPG b/public/photos/98.JPG new file mode 100644 index 0000000..b9d07bb Binary files /dev/null and b/public/photos/98.JPG differ diff --git a/public/photos/99.jpg b/public/photos/99.jpg new file mode 100644 index 0000000..960ea5b Binary files /dev/null and b/public/photos/99.jpg differ diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/Countries.jsx b/src/Countries.jsx new file mode 100644 index 0000000..229cba8 --- /dev/null +++ b/src/Countries.jsx @@ -0,0 +1,706 @@ +import { Fragment, useState, useRef } from "react"; +import { Dialog, Disclosure, Menu, Transition } from "@headlessui/react"; +import { XMarkIcon } from "@heroicons/react/24/outline"; +import { + ChevronDownIcon, + FunnelIcon, + MinusIcon, + PlusIcon, +} from "@heroicons/react/20/solid"; + +import Map, { Layer, Source, Popup, ScaleControl } from "react-map-gl"; +import mapstyle from "./countries.json"; + +const MAPBOX_TOKEN = + "pk.eyJ1IjoiZ2hlcm1hbnQiLCJhIjoiY2wzbHR0YW1sMXB0YjNkcXd5NWpqaWpybiJ9.jyLcIcB7NLbtZzGYIJZWWg"; + +const paintedLayers = mapstyle.layers.reduce((acc, cur) => ({ ...acc, [cur.id]: cur }), {}) +const toggleLayers = ["Подложка"] + + +const initialPaintFilters = [ + { + id: "parameter_name", + name: "Показатель ВИЭ-генерации", + options: [ + { + "value": "power_fact_mw", + "label": "Фактическая установленная мощность, МВт", + "checked": true + }, + { + "value": "generation_gwh", + "label": "Производство электроэнергии, млн кВт⋅ч", + "checked": false + }, + { + "value": "res_share_generation", + "label": "Доля в выработке электроэнергии, %", + "checked": false + }, + { + "value": "res_share_power", + "label": "Доля в балансе мощности, %", + "checked": false + }, + { + "value": "generation_to_population_kWh_pers", + "label": "Производство электроэнергии на душу населения, кВт⋅ч/чел.", + "checked": false + } + ] + }, +] + +const initialFilterFilters = [ + { + id: "id_tech", + name: "ВИЭ-технология", + options: [ + { + "value": 1, + "label": "СЭС", + "checked": false + }, + { + "value": 2, + "label": "Наземные ВЭС", + "checked": false + }, + { + "value": 3, + "label": "Офшорные ВЭС", + "checked": false + }, + { + "value": 4, + "label": "ГЭС", + "checked": false + }, + { + "value": 5, + "label": "БиоЭС", + "checked": false + }, + { + "value": 6, + "label": "ГеоЭС", + "checked": false + }, + { + "value": 7, + "label": "Все ВИЭ", + "checked": true + } + ] + }, + { + "id": "year", + "name": "Год", + "options": [ + { + "value": 2010, + "label": 2010, + "checked": false + }, + { + "value": 2011, + "label": 2011, + "checked": false + }, + { + "value": 2012, + "label": 2012, + "checked": false + }, + { + "value": 2013, + "label": 2013, + "checked": false + }, + { + "value": 2014, + "label": 2014, + "checked": false + }, + { + "value": 2015, + "label": 2015, + "checked": false + }, + { + "value": 2016, + "label": 2016, + "checked": false + }, + { + "value": 2017, + "label": 2017, + "checked": false + }, + { + "value": 2018, + "label": 2018, + "checked": false + }, + { + "value": 2019, + "label": 2019, + "checked": false + }, + { + "value": 2020, + "label": 2020, + "checked": false + }, + { + "value": 2021, + "label": 2021, + "checked": true + } + ] + } +] + +export default function Countries({ mapOptions, onMapOptionClick }) { + const mapRef = useRef(null); + + const [open, setOpen] = useState(false) + + const [mobileFiltersOpen, setMobileFiltersOpen] = useState(false); + + const [popupInfo, setPopupInfo] = useState(null); + + const [paintFilters, setPaintFilters] = useState(initialPaintFilters); + const [filterFilters, setFilterFilters] = useState(initialFilterFilters); + + + const generatePopup = (info) => { + console.log(info) + return ( +
+ + {info.area_km2 &&

Площадь – {(info.area_km2 / 1000).toFixed(1).replace(".", ",")} тыс. км²

} + {info.population_person &&

Численность населения – {(info.population_person / 1000).toFixed(1).replace(".", ",")} тыс. чел.

} + {info.population_densitiy_pers_km2 &&

Плотность населения – {info.population_densitiy_pers_km2.toFixed(1).replace(".", ",")} чел./км²

} +
+

{filterFilters.map(f => f.options.find(o => o.checked).label).join(". ")}

+ + {/* + + + + + */} + + {info.power_fact_mw != null && + + + + + } + {info.power_plan_mw != null && + + + + + } + {info.power_opw_mw != null && + + + + + } + {info.capacity_additions_mw != null && + + + + + } + {info.generation_gwh != null && + + + + + } + {info.res_share_generation != null && + + + + + } + {info.res_share_power != null && + + + + + } + +
+ Показатель + + Значение +
+ Фактическая установленная мощность, МВт + + {info.power_fact_mw.toFixed(2).replace(".", ",")} +
+ Плановая установленная мощность, МВт + + {info.power_plan_mw.toFixed(1).replace(".", ",")} +
+ Мощность отобранных проектов, МВт + + {info.power_opw_mw.toFixed(1).replace(".", ",")} +
+ Годовой объём вводов, МВт + + {info.capacity_additions_mw.toFixed(1).replace(".", ",")} +
+ Производство электроэнергии, ГВт⋅ч + + {info.generation_gwh.toFixed(1).replace(".", ",")} +
+ Доля в выработке электроэнергии, % + + {info.res_share_generation.toFixed(1).replace(".", ",")} +
+ Доля в балансе мощности, % + + {info.res_share_power.toFixed(1).replace(".", ",")} +
+
+ {info.date_actualization &&

Дата актуализации: {info.date_actualization}

} +
+ ) + } + + const generateLegend = function (parameter) { + const colors_and_breaks = mapstyle.layers.find(layer => layer.id == parameter.value).paint["fill-color"].slice(2) + const colors = colors_and_breaks.filter((cb, i) => i % 2 == 0) + const breaks = colors_and_breaks.filter((cb, i) => i % 2 == 1) + const labels = [`менее ${breaks[0]}`, ...breaks.map((brk, i, arr) => typeof arr[i + 1] !== 'undefined' ? `${brk} - ${arr[i + 1]}` : `более ${breaks.at(-1)}`)] + const legend_items = colors.map((col, i) => ( + { + "color": col, + "label": labels[i] + } + )).reverse() + return ( +
+

{parameter.label}

+ {legend_items.map(item =>

{item.label}

)} +
+ ) + } + + const handleFilterToggle = function (event) { + + if (paintFilters.filter((filter) => filter.id == event.target.name).length > 0) { + const newStatePaintFilters = paintFilters.map((filter) => + filter.id == event.target.name + ? { + ...filter, + options: filter.options.map((option) => + option.value == event.target.defaultValue + ? { ...option, checked: true } + : { ...option, checked: false } + ), + } + : filter + ); + setPaintFilters(newStatePaintFilters); + } else { + const newStateFilterFilters = filterFilters.map((filter) => + filter.id == event.target.name + ? { + ...filter, + options: filter.options.map((option) => + option.value == event.target.defaultValue + ? { ...option, checked: true } + : { ...option, checked: false } + ), + } + : filter + ); + setFilterFilters(newStateFilterFilters); + } + }; + + const applyPaintFilters = (filtersObj) => { + const parameter = filtersObj.find(filter => filter.id == "parameter_name").options.find(option => option.checked).value + const newPaint = paintedLayers[parameter].paint + return newPaint + }; + + const applyFilterFilters = (filtersObj) => { + const year_value = filtersObj.find(f => f.id == "year").options.find(option => option.checked).value + const tech_value = filtersObj.find(f => f.id == "id_tech").options.find(option => option.checked).value + return ["all", ["==", ["get", "year"], year_value], ["==", ["get", "id_tech_global"], tech_value]] + }; + + + + const handleClick = (event) => { + if (event.features[0]) { + event.originalEvent.stopPropagation(); + setPopupInfo({ + lon: event.lngLat.lng, + lat: event.lngLat.lat, + ...event.features[0].properties + }) + setOpen(true) + } + }; + + const handleMouseEnter = (event) => { + const feature = event.features[0]; + if (!feature) return; + + mapRef.current.getCanvas().style.cursor = "pointer"; + }; + + const handleMouseLeave = (event) => { + const feature = event.features[0]; + if (!feature) { + return; + } + mapRef.current.getCanvas().style.cursor = ""; + }; + + return ( +
+
+
+
+

+ Развитие возобновляемой энергетики в странах мира +

+
+ +
+ + {mapOptions.find((option) => option.current).name} + +
+ + + +
+ {mapOptions.map((option) => ( + + + {option.name} + + + ))} +
+
+
+
+
+
+ +
+
+ +
+ {/* Layers */} +
    + {toggleLayers.map((layer_name) => ( +
    + { + mapRef.current + .getMap() + .setLayoutProperty( + event.target.id, + "visibility", + event.target.checked ? "visible" : "none" + ); + }} + /> + +
    + ))} +
+ + {/* Legend */} + + {({ open }) => ( + <> +

+ + + Легенда + + + {open ? ( + + +

+ +
+ {generateLegend(paintFilters.find(f => f.id == "parameter_name").options.find(parameter => parameter.checked))} +
+
+ + )} +
+ + {/* Filters */} + {paintFilters.concat(filterFilters).map((section) => ( + + {({ open }) => ( + <> +

+ + + {section.name} + + + {open ? ( + + +

+ +
+ {section.options.map((option, optionIdx) => ( +
+ + +
+ ))} +
+
+ + )} +
+ ))} + + + {/* Metadata */} + + {({ open }) => ( + <> +

+ + + Метаданные + + + {open ? ( + + +

+ +
+

+ Lorem ipsum, dolor sit amet consectetur adipisicing + elit. Aliquam harum fuga, ratione quae quo corrupti + iusto reprehenderit sapiente assumenda voluptatum + voluptates veritatis incidunt nisi quidem + repellendus. Ex ad explicabo eum? +

+
+
+ + )} +
+
+ + {/* Map itself */} +
+
+ + + {popupInfo && setPopupInfo(null)} + > + {popupInfo.country_russian_name} + } + + + + + + + + + +
+
+
+
+
+ + + +
+ + +
+
+
+ + + +
+ +
+
+
+
+ {popupInfo && popupInfo.country_russian_name} +
+
+ {/* Replace with your content */} + {popupInfo && generatePopup(popupInfo)} + {/* /End replace */} +
+
+
+
+
+
+
+
+
+
+
+ ); +} diff --git a/src/Points copy.jsx b/src/Points copy.jsx new file mode 100644 index 0000000..bef875c --- /dev/null +++ b/src/Points copy.jsx @@ -0,0 +1,1641 @@ +import { Fragment, useState, useRef } from "react"; +import { Dialog, Disclosure, Menu, Transition } from "@headlessui/react"; +import { XMarkIcon } from "@heroicons/react/24/outline"; +import { + ChevronDownIcon, + FunnelIcon, + MinusIcon, + PlusIcon, +} from "@heroicons/react/20/solid"; + +import Map, { Layer, Source, Popup, ScaleControl } from "react-map-gl"; +import mapstyle from "./points.json"; + +const MAPBOX_TOKEN = + "pk.eyJ1IjoiZ2hlcm1hbnQiLCJhIjoiY2wzbHR0YW1sMXB0YjNkcXd5NWpqaWpybiJ9.jyLcIcB7NLbtZzGYIJZWWg"; + +const sortOptions = [ + { name: "Россия", href: "#", current: true }, + { name: "Мир", href: "#", current: false }, +]; + +const paintedLayers = mapstyle.layers.reduce((acc, cur) => ({ ...acc, [cur.id]: cur }), {}) + +const initialFilters = [ + { + id: "tech_name", + name: "ВИЭ-технология", + options: [ + { + "value": "СЭС", + "label": "СЭС", + "checked": true + }, + { + "value": "ВЭС", + "label": "ВЭС", + "checked": true + }, + { + "value": "мГЭС", + "label": "мГЭС", + "checked": true + }, + { + "value": "Биомасса", + "label": "Биомасса", + "checked": true + }, + { + "value": "Биогаз", + "label": "Биогаз", + "checked": true + }, + { + "value": "Свалочный газ", + "label": "Свалочный газ", + "checked": true + }, + { + "value": "Отходы", + "label": "Отходы", + "checked": true + }, + { + "value": "ПЭС", + "label": "ПЭС", + "checked": true + }, + { + "value": "ГеоЭС", + "label": "ГеоЭС", + "checked": true + } + ] + }, + { + "id": "region_name", + "name": "Регион", + "options": [ + { + "value": "Республика Адыгея ", + "label": "Республика Адыгея ", + "checked": true + }, + { + "value": "Республика Алтай", + "label": "Республика Алтай", + "checked": true + }, + { + "value": "Республика Башкортостан", + "label": "Республика Башкортостан", + "checked": true + }, + { + "value": "Республика Бурятия", + "label": "Республика Бурятия", + "checked": true + }, + { + "value": "Республика Дагестан", + "label": "Республика Дагестан", + "checked": true + }, + { + "value": "Республика Ингушетия", + "label": "Республика Ингушетия", + "checked": true + }, + { + "value": "Кабардино-Балкарская Республика", + "label": "Кабардино-Балкарская Республика", + "checked": true + }, + { + "value": "Республика Калмыкия", + "label": "Республика Калмыкия", + "checked": true + }, + { + "value": "Карачаево-Черкесская Республика", + "label": "Карачаево-Черкесская Республика", + "checked": true + }, + { + "value": "Республика Карелия", + "label": "Республика Карелия", + "checked": true + }, + { + "value": "Республика Коми", + "label": "Республика Коми", + "checked": true + }, + { + "value": "Республика Крым", + "label": "Республика Крым", + "checked": true + }, + { + "value": "Республика Марий Эл", + "label": "Республика Марий Эл", + "checked": true + }, + { + "value": "Республика Мордовия", + "label": "Республика Мордовия", + "checked": true + }, + { + "value": "Республика Саха (Якутия)", + "label": "Республика Саха (Якутия)", + "checked": true + }, + { + "value": "Республика Северная Осетия – Алания", + "label": "Республика Северная Осетия – Алания", + "checked": true + }, + { + "value": "Республика Татарстан ", + "label": "Республика Татарстан ", + "checked": true + }, + { + "value": "Республика Тыва", + "label": "Республика Тыва", + "checked": true + }, + { + "value": "Удмуртская Республика", + "label": "Удмуртская Республика", + "checked": true + }, + { + "value": "Республика Хакасия", + "label": "Республика Хакасия", + "checked": true + }, + { + "value": "Чеченская Республика", + "label": "Чеченская Республика", + "checked": true + }, + { + "value": "Чувашская Республика", + "label": "Чувашская Республика", + "checked": true + }, + { + "value": "Алтайский край", + "label": "Алтайский край", + "checked": true + }, + { + "value": "Забайкальский край", + "label": "Забайкальский край", + "checked": true + }, + { + "value": "Камчатский край", + "label": "Камчатский край", + "checked": true + }, + { + "value": "Краснодарский край", + "label": "Краснодарский край", + "checked": true + }, + { + "value": "Красноярский край", + "label": "Красноярский край", + "checked": true + }, + { + "value": "Пермский край", + "label": "Пермский край", + "checked": true + }, + { + "value": "Приморский край", + "label": "Приморский край", + "checked": true + }, + { + "value": "Ставропольский край", + "label": "Ставропольский край", + "checked": true + }, + { + "value": "Хабаровский край", + "label": "Хабаровский край", + "checked": true + }, + { + "value": "Амурская область", + "label": "Амурская область", + "checked": true + }, + { + "value": "Архангельская область", + "label": "Архангельская область", + "checked": true + }, + { + "value": "Астраханская область", + "label": "Астраханская область", + "checked": true + }, + { + "value": "Белгородская область", + "label": "Белгородская область", + "checked": true + }, + { + "value": "Брянская область", + "label": "Брянская область", + "checked": true + }, + { + "value": "Владимирская область", + "label": "Владимирская область", + "checked": true + }, + { + "value": "Волгоградская область", + "label": "Волгоградская область", + "checked": true + }, + { + "value": "Вологодская область", + "label": "Вологодская область", + "checked": true + }, + { + "value": "Воронежская область", + "label": "Воронежская область", + "checked": true + }, + { + "value": "Ивановская область", + "label": "Ивановская область", + "checked": true + }, + { + "value": "Иркутская область", + "label": "Иркутская область", + "checked": true + }, + { + "value": "Калининградская область", + "label": "Калининградская область", + "checked": true + }, + { + "value": "Калужская область", + "label": "Калужская область", + "checked": true + }, + { + "value": "Кемеровская область", + "label": "Кемеровская область", + "checked": true + }, + { + "value": "Кировская область", + "label": "Кировская область", + "checked": true + }, + { + "value": "Костромская область", + "label": "Костромская область", + "checked": true + }, + { + "value": "Курганская область", + "label": "Курганская область", + "checked": true + }, + { + "value": "Курская область", + "label": "Курская область", + "checked": true + }, + { + "value": "Ленинградская область", + "label": "Ленинградская область", + "checked": true + }, + { + "value": "Липецкая область", + "label": "Липецкая область", + "checked": true + }, + { + "value": "Магаданская область", + "label": "Магаданская область", + "checked": true + }, + { + "value": "Московская область", + "label": "Московская область", + "checked": true + }, + { + "value": "Мурманская область", + "label": "Мурманская область", + "checked": true + }, + { + "value": "Нижегородская область", + "label": "Нижегородская область", + "checked": true + }, + { + "value": "Новгородская область", + "label": "Новгородская область", + "checked": true + }, + { + "value": "Новосибирская область", + "label": "Новосибирская область", + "checked": true + }, + { + "value": "Омская область", + "label": "Омская область", + "checked": true + }, + { + "value": "Оренбургская область", + "label": "Оренбургская область", + "checked": true + }, + { + "value": "Орловская область", + "label": "Орловская область", + "checked": true + }, + { + "value": "Пензенская область", + "label": "Пензенская область", + "checked": true + }, + { + "value": "Псковская область", + "label": "Псковская область", + "checked": true + }, + { + "value": "Ростовская область", + "label": "Ростовская область", + "checked": true + }, + { + "value": "Рязанская область", + "label": "Рязанская область", + "checked": true + }, + { + "value": "Самарская область", + "label": "Самарская область", + "checked": true + }, + { + "value": "Саратовская область", + "label": "Саратовская область", + "checked": true + }, + { + "value": "Сахалинская область", + "label": "Сахалинская область", + "checked": true + }, + { + "value": "Свердловская область", + "label": "Свердловская область", + "checked": true + }, + { + "value": "Смоленская область", + "label": "Смоленская область", + "checked": true + }, + { + "value": "Тамбовская область", + "label": "Тамбовская область", + "checked": true + }, + { + "value": "Тверская область", + "label": "Тверская область", + "checked": true + }, + { + "value": "Томская область", + "label": "Томская область", + "checked": true + }, + { + "value": "Тульская область", + "label": "Тульская область", + "checked": true + }, + { + "value": "Тюменская область", + "label": "Тюменская область", + "checked": true + }, + { + "value": "Ульяновская область", + "label": "Ульяновская область", + "checked": true + }, + { + "value": "Челябинская область", + "label": "Челябинская область", + "checked": true + }, + { + "value": "Ярославская область", + "label": "Ярославская область", + "checked": true + }, + { + "value": "Город Москва", + "label": "Город Москва", + "checked": true + }, + { + "value": "Город Санкт-Петербург", + "label": "Город Санкт-Петербург", + "checked": true + }, + { + "value": "Город Севастополь", + "label": "Город Севастополь", + "checked": true + }, + { + "value": "Еврейская автономная область", + "label": "Еврейская автономная область", + "checked": true + }, + { + "value": "Ненецкий автономный округ", + "label": "Ненецкий автономный округ", + "checked": true + }, + { + "value": "Ханты-Мансийский автономный округ – Югра", + "label": "Ханты-Мансийский автономный округ – Югра", + "checked": true + }, + { + "value": "Чукотский автономный округ", + "label": "Чукотский автономный округ", + "checked": true + }, + { + "value": "Ямало-Ненецкий автономный округ", + "label": "Ямало-Ненецкий автономный округ", + "checked": true + } + ] + }, + { + "id": "support_name", + "name": "Форма поддержки", + "options": [ + { + "value": "ДПМ ВИЭ 1.0 (оптовый рынок)", + "label": "ДПМ ВИЭ 1.0 (оптовый рынок)", + "checked": true + }, + { + "value": "ДПМ ВИЭ 2.0 (оптовый рынок)", + "label": "ДПМ ВИЭ 2.0 (оптовый рынок)", + "checked": true + }, + { + "value": "Розничный рынок (с поддержкой)", + "label": "Розничный рынок (с поддержкой)", + "checked": true + }, + { + "value": "Розничный рынок (без поддержки)", + "label": "Розничный рынок (без поддержки)", + "checked": true + }, + { + "value": "Оптовый рынок (без поддержки)", + "label": "Оптовый рынок (без поддержки)", + "checked": true + }, + { + "value": "Собственная генерация промышленности", + "label": "Собственная генерация промышленности", + "checked": true + }, + { + "value": "ВИЭ в изолированнных энергосистемах", + "label": "ВИЭ в изолированнных энергосистемах", + "checked": true + } + ] + }, + { + "id": "current_owner_name", + "name": "Компания-владелец", + "options": [ + { + "value": "АО \"ВетроОГК\"", + "label": "АО \"ВетроОГК\"", + "checked": true + }, + { + "value": "АО \"ВетроОГК-2\"", + "label": "АО \"ВетроОГК-2\"", + "checked": true + }, + { + "value": "АО \"Солнечный ветер\"", + "label": "АО \"Солнечный ветер\"", + "checked": true + }, + { + "value": "ООО \"Авелар Солар Технолоджи\"", + "label": "ООО \"Авелар Солар Технолоджи\"", + "checked": true + }, + { + "value": "ООО \"Лукойл-Экоэнерго\"", + "label": "ООО \"Лукойл-Экоэнерго\"", + "checked": true + }, + { + "value": "ООО \"Ветропарки ФРВ\"", + "label": "ООО \"Ветропарки ФРВ\"", + "checked": true + }, + { + "value": "ООО \"Восьмой Ветропарк ФРВ\"", + "label": "ООО \"Восьмой Ветропарк ФРВ\"", + "checked": true + }, + { + "value": "ООО \"Второй ветропарк ФРВ\"", + "label": "ООО \"Второй ветропарк ФРВ\"", + "checked": true + }, + { + "value": "ООО \"МГЭС Ставрополья и КЧР\" (ПАО \"РусГидро\")", + "label": "ООО \"МГЭС Ставрополья и КЧР\" (ПАО \"РусГидро\")", + "checked": true + }, + { + "value": "ООО \"НГБП\"", + "label": "ООО \"НГБП\"", + "checked": true + }, + { + "value": "ООО \"Новая энергия\"", + "label": "ООО \"Новая энергия\"", + "checked": true + }, + { + "value": "ООО \"Одиннадцатый Ветропарк ФРВ\"", + "label": "ООО \"Одиннадцатый Ветропарк ФРВ\"", + "checked": true + }, + { + "value": "ООО \"Первый Ветропарк ФРВ\"", + "label": "ООО \"Первый Ветропарк ФРВ\"", + "checked": true + }, + { + "value": "ООО \"Пятнадцатый Ветропарк ФРВ\"", + "label": "ООО \"Пятнадцатый Ветропарк ФРВ\"", + "checked": true + }, + { + "value": "ООО \"Самарская СЭС\"", + "label": "ООО \"Самарская СЭС\"", + "checked": true + }, + { + "value": "ООО \"Стар Проджектс\"", + "label": "ООО \"Стар Проджектс\"", + "checked": true + }, + { + "value": "ООО \"Седьмой ветропарк ФРВ\"", + "label": "ООО \"Седьмой ветропарк ФРВ\"", + "checked": true + }, + { + "value": "ООО \"Солар Ритейл\"", + "label": "ООО \"Солар Ритейл\"", + "checked": true + }, + { + "value": "ООО \"Солнечная Генерация\"", + "label": "ООО \"Солнечная Генерация\"", + "checked": true + }, + { + "value": "ООО \"Тераватт\"", + "label": "ООО \"Тераватт\"", + "checked": true + }, + { + "value": "ООО \"Третий Ветропарк ФРВ\"", + "label": "ООО \"Третий Ветропарк ФРВ\"", + "checked": true + }, + { + "value": "ООО \"ФОРТУМ ЭНЕРГИЯ\"", + "label": "ООО \"ФОРТУМ ЭНЕРГИЯ\"", + "checked": true + }, + { + "value": "ООО \"Фортум-Новая Генерация 2\"", + "label": "ООО \"Фортум-Новая Генерация 2\"", + "checked": true + }, + { + "value": "ООО \"Четвёртый ветропарк ФРВ\"", + "label": "ООО \"Четвёртый ветропарк ФРВ\"", + "checked": true + }, + { + "value": "ООО \"Эко Энерджи Рус\"", + "label": "ООО \"Эко Энерджи Рус\"", + "checked": true + }, + { + "value": "ООО \"ЭнергоМИН\"", + "label": "ООО \"ЭнергоМИН\"", + "checked": true + }, + { + "value": "ООО \"Южэнергострой\"", + "label": "ООО \"Южэнергострой\"", + "checked": true + }, + { + "value": "ООО \"Юнигрин Пауэр\"", + "label": "ООО \"Юнигрин Пауэр\"", + "checked": true + }, + { + "value": "ПАО \"РусГидро\"", + "label": "ПАО \"РусГидро\"", + "checked": true + }, + { + "value": "ПАО \"ТГК-1\"", + "label": "ПАО \"ТГК-1\"", + "checked": true + }, + { + "value": "ООО \"Сан Проджектс\"", + "label": "ООО \"Сан Проджектс\"", + "checked": true + }, + { + "value": "ООО \"Санлайт энерджи\"", + "label": "ООО \"Санлайт энерджи\"", + "checked": true + }, + { + "value": "ООО \"АЛТЭН\"", + "label": "ООО \"АЛТЭН\"", + "checked": true + }, + { + "value": "ПАО \"Фортум\"", + "label": "ПАО \"Фортум\"", + "checked": true + }, + { + "value": "ООО \"Энергоэффект ДБ\"", + "label": "ООО \"Энергоэффект ДБ\"", + "checked": true + }, + { + "value": "ООО «Хевел Региональная Генерация»", + "label": "ООО «Хевел Региональная Генерация»", + "checked": true + }, + { + "value": "ООО «Курай Солар»", + "label": "ООО «Курай Солар»", + "checked": true + }, + { + "value": "ООО \"Юнигрин Регион\"", + "label": "ООО \"Юнигрин Регион\"", + "checked": true + }, + { + "value": "АО \"ЭСК Сибири\"", + "label": "АО \"ЭСК Сибири\"", + "checked": true + }, + { + "value": "ООО \"Солар Розничная Генерация-1\"", + "label": "ООО \"Солар Розничная Генерация-1\"", + "checked": true + }, + { + "value": "ООО \"Кубань Солар\"", + "label": "ООО \"Кубань Солар\"", + "checked": true + }, + { + "value": "ООО \"Возобновляемые источники энергии Инвест\"", + "label": "ООО \"Возобновляемые источники энергии Инвест\"", + "checked": true + }, + { + "value": "ООО \"Возобновляемые источники энергии\"", + "label": "ООО \"Возобновляемые источники энергии\"", + "checked": true + }, + { + "value": "ООО \"Ульяновские СЭС\"", + "label": "ООО \"Ульяновские СЭС\"", + "checked": true + }, + { + "value": "ПАО «Камчатскэнерго»", + "label": "ПАО «Камчатскэнерго»", + "checked": true + }, + { + "value": "АО «ЮЭСК» (АО «Южные электрические сети Камчатки»)", + "label": "АО «ЮЭСК» (АО «Южные электрические сети Камчатки»)", + "checked": true + }, + { + "value": "АО «КЭС им. Пискунова»", + "label": "АО «КЭС им. Пискунова»", + "checked": true + }, + { + "value": "ПАО «Россети»", + "label": "ПАО «Россети»", + "checked": true + }, + { + "value": "ПАО \"ТГК-1\"/Кольский", + "label": "ПАО \"ТГК-1\"/Кольский", + "checked": true + }, + { + "value": "МП ЗР \"Севержилкомсервис\"", + "label": "МП ЗР \"Севержилкомсервис\"", + "checked": true + }, + { + "value": "Карельское обособленное подразделение АО \"Норд Гидро\"", + "label": "Карельское обособленное подразделение АО \"Норд Гидро\"", + "checked": true + }, + { + "value": "Филиал Карельский/Каскад Сунских ГЭС", + "label": "Филиал Карельский/Каскад Сунских ГЭС", + "checked": true + }, + { + "value": "Филиал Карельский/Каскад Кемских ГЭС", + "label": "Филиал Карельский/Каскад Кемских ГЭС", + "checked": true + }, + { + "value": "АО \"Сахаэнерго\"", + "label": "АО \"Сахаэнерго\"", + "checked": true + }, + { + "value": "ООО \"Гидроэлектромонтаж\"", + "label": "ООО \"Гидроэлектромонтаж\"", + "checked": true + }, + { + "value": "ООО \"Группа ЭНЭЛТ\"", + "label": "ООО \"Группа ЭНЭЛТ\"", + "checked": true + }, + { + "value": "ООО \"КЭР\"", + "label": "ООО \"КЭР\"", + "checked": true + }, + { + "value": "ООО \"Хевел Энергосервис\"", + "label": "ООО \"Хевел Энергосервис\"", + "checked": true + }, + { + "value": "ПАО \"Якутскэнерго\"", + "label": "ПАО \"Якутскэнерго\"", + "checked": true + }, + { + "value": "Тепло-электросистемы Северо-Курильского городского округа", + "label": "Тепло-электросистемы Северо-Курильского городского округа", + "checked": true + }, + { + "value": "АО «Мобильные ГТЭС»", + "label": "АО «Мобильные ГТЭС»", + "checked": true + }, + { + "value": "ООО «ВГК»", + "label": "ООО «ВГК»", + "checked": true + }, + { + "value": "ООО «ДальЭнергоИнвест»", + "label": "ООО «ДальЭнергоИнвест»", + "checked": true + }, + { + "value": "ПАО «Сахалинэнерго»", + "label": "ПАО «Сахалинэнерго»", + "checked": true + }, + { + "value": "АО «Юграэнерго» ", + "label": "АО «Юграэнерго» ", + "checked": true + }, + { + "value": "ООО «МЭК-Инжиниринг»", + "label": "ООО «МЭК-Инжиниринг»", + "checked": true + }, + { + "value": "ООО \"АльтЭнерго\"", + "label": "ООО \"АльтЭнерго\"", + "checked": true + }, + { + "value": "ООО \"Региональная Энергетическая компания\"", + "label": "ООО \"Региональная Энергетическая компания\"", + "checked": true + }, + { + "value": "АО \"ОЭК\"", + "label": "АО \"ОЭК\"", + "checked": true + }, + { + "value": "ООО \"Акъярская СЭС\"", + "label": "ООО \"Акъярская СЭС\"", + "checked": true + }, + { + "value": "ООО «ЛУКОЙЛ-Кубаньэнерго»", + "label": "ООО «ЛУКОЙЛ-Кубаньэнерго»", + "checked": true + }, + { + "value": "ООО \"Сан Проджектс 2\"", + "label": "ООО \"Сан Проджектс 2\"", + "checked": true + }, + { + "value": "ООО \"ППК\" (Пятая проектная компания)", + "label": "ООО \"ППК\" (Пятая проектная компания)", + "checked": true + }, + { + "value": "ООО \"ШПК\" (Шестая проектная компания)", + "label": "ООО \"ШПК\" (Шестая проектная компания)", + "checked": true + }, + { + "value": "ООО \"Бугульчанская СЭС\"", + "label": "ООО \"Бугульчанская СЭС\"", + "checked": true + }, + { + "value": "ООО \"Фортум Новая генерация - 4\"", + "label": "ООО \"Фортум Новая генерация - 4\"", + "checked": true + }, + { + "value": "ООО «ВЭС «Бриз»", + "label": "ООО «ВЭС «Бриз»", + "checked": true + }, + { + "value": "ООО \"Абаканская СЭС\"", + "label": "ООО \"Абаканская СЭС\"", + "checked": true + }, + { + "value": "ООО \"Десятый ветропарк ФРВ\"", + "label": "ООО \"Десятый ветропарк ФРВ\"", + "checked": true + }, + { + "value": "ООО \"Шестой ветропарк ФРВ\"", + "label": "ООО \"Шестой ветропарк ФРВ\"", + "checked": true + }, + { + "value": "ООО \"ЮГП Калмыкия\"", + "label": "ООО \"ЮГП Калмыкия\"", + "checked": true + }, + { + "value": "АО \"Полиметалл УК\"", + "label": "АО \"Полиметалл УК\"", + "checked": true + }, + { + "value": "ООО \"Девятый ветропарк ФРВ\"", + "label": "ООО \"Девятый ветропарк ФРВ\"", + "checked": true + }, + { + "value": "ООО \"Четырнадцатый ветропарк ФРВ\"", + "label": "ООО \"Четырнадцатый ветропарк ФРВ\"", + "checked": true + }, + { + "value": "Будет определен после строительства", + "label": "Будет определен после строительства", + "checked": true + }, + { + "value": "ООО \"Энел Рус Винд Азов\"", + "label": "ООО \"Энел Рус Винд Азов\"", + "checked": true + }, + { + "value": "ООО «Энел Рус Винд Кола»", + "label": "ООО «Энел Рус Винд Кола»", + "checked": true + }, + { + "value": "ООО \"Активити\"", + "label": "ООО \"Активити\"", + "checked": true + }, + { + "value": "ООО \"Грин Энерджи Рус\"", + "label": "ООО \"Грин Энерджи Рус\"", + "checked": true + }, + { + "value": "АО \"ЕвроСибЭнерго\"", + "label": "АО \"ЕвроСибЭнерго\"", + "checked": true + }, + { + "value": "Филиал Карельский/Каскад Выгских ГЭС", + "label": "Филиал Карельский/Каскад Выгских ГЭС", + "checked": true + }, + { + "value": "АО \"РАО ЭС Востока\"", + "label": "АО \"РАО ЭС Востока\"", + "checked": true + }, + { + "value": "ПАО \"СИБУР Холдинг\"", + "label": "ПАО \"СИБУР Холдинг\"", + "checked": true + }, + { + "value": "ПАО \"Газпромнефть\"", + "label": "ПАО \"Газпромнефть\"", + "checked": true + } + ] + }, + { + "id": "year_commissioning", + "name": "Год ввода", + "options": [ + { + "value": 1905, + "label": 1905, + "checked": true + }, + { + "value": 1920, + "label": 1920, + "checked": true + }, + { + "value": 1929, + "label": 1929, + "checked": true + }, + { + "value": 1934, + "label": 1934, + "checked": true + }, + { + "value": 1936, + "label": 1936, + "checked": true + }, + { + "value": 1937, + "label": 1937, + "checked": true + }, + { + "value": 1938, + "label": 1938, + "checked": true + }, + { + "value": 1939, + "label": 1939, + "checked": true + }, + { + "value": 1941, + "label": 1941, + "checked": true + }, + { + "value": 1948, + "label": 1948, + "checked": true + }, + { + "value": 1949, + "label": 1949, + "checked": true + }, + { + "value": 1950, + "label": 1950, + "checked": true + }, + { + "value": 1951, + "label": 1951, + "checked": true + }, + { + "value": 1952, + "label": 1952, + "checked": true + }, + { + "value": 1953, + "label": 1953, + "checked": true + }, + { + "value": 1954, + "label": 1954, + "checked": true + }, + { + "value": 1955, + "label": 1955, + "checked": true + }, + { + "value": 1956, + "label": 1956, + "checked": true + }, + { + "value": 1958, + "label": 1958, + "checked": true + }, + { + "value": 1959, + "label": 1959, + "checked": true + }, + { + "value": 1961, + "label": 1961, + "checked": true + }, + { + "value": 1962, + "label": 1962, + "checked": true + }, + { + "value": 1963, + "label": 1963, + "checked": true + }, + { + "value": 1964, + "label": 1964, + "checked": true + }, + { + "value": 1965, + "label": 1965, + "checked": true + }, + { + "value": 1967, + "label": 1967, + "checked": true + }, + { + "value": 1968, + "label": 1968, + "checked": true + }, + { + "value": 1970, + "label": 1970, + "checked": true + }, + { + "value": 1971, + "label": 1971, + "checked": true + }, + { + "value": 1975, + "label": 1975, + "checked": true + }, + { + "value": 1977, + "label": 1977, + "checked": true + }, + { + "value": 1978, + "label": 1978, + "checked": true + }, + { + "value": 1980, + "label": 1980, + "checked": true + }, + { + "value": 1987, + "label": 1987, + "checked": true + }, + { + "value": 1994, + "label": 1994, + "checked": true + }, + { + "value": 1995, + "label": 1995, + "checked": true + }, + { + "value": 1996, + "label": 1996, + "checked": true + }, + { + "value": 1998, + "label": 1998, + "checked": true + }, + { + "value": 1999, + "label": 1999, + "checked": true + }, + { + "value": 2000, + "label": 2000, + "checked": true + }, + { + "value": 2001, + "label": 2001, + "checked": true + }, + { + "value": 2002, + "label": 2002, + "checked": true + }, + { + "value": 2003, + "label": 2003, + "checked": true + }, + { + "value": 2004, + "label": 2004, + "checked": true + }, + { + "value": 2005, + "label": 2005, + "checked": true + }, + { + "value": 2006, + "label": 2006, + "checked": true + }, + { + "value": 2007, + "label": 2007, + "checked": true + }, + { + "value": 2008, + "label": 2008, + "checked": true + }, + { + "value": 2009, + "label": 2009, + "checked": true + }, + { + "value": 2010, + "label": 2010, + "checked": true + }, + { + "value": 2011, + "label": 2011, + "checked": true + }, + { + "value": 2012, + "label": 2012, + "checked": true + }, + { + "value": 2013, + "label": 2013, + "checked": true + }, + { + "value": 2014, + "label": 2014, + "checked": true + }, + { + "value": 2015, + "label": 2015, + "checked": true + }, + { + "value": 2016, + "label": 2016, + "checked": true + }, + { + "value": 2017, + "label": 2017, + "checked": true + }, + { + "value": 2018, + "label": 2018, + "checked": true + }, + { + "value": 2019, + "label": 2019, + "checked": true + }, + { + "value": 2020, + "label": 2020, + "checked": true + }, + { + "value": 2021, + "label": 2021, + "checked": true + }, + { + "value": 2022, + "label": 2022, + "checked": true + } + ] + } +] + +export default function Points() { + const mapRef = useRef(null); + + const [mobileFiltersOpen, setMobileFiltersOpen] = useState(false); + + const [popupInfo, setPopupInfo] = useState(null); + + const [filters, setFilters] = useState(initialFilters); + + const handleFilterToggle = function (event) { + const newStateFilters = filters.map((filter) => + filter.id == event.target.name + ? { + ...filter, + options: filter.options.map((option) => + option.value == event.target.defaultValue + ? { ...option, checked: !option.checked } + : option + ), + } + : filter + ); + setFilters(newStateFilters); + }; + + const applyFilters = (filtersObj) => { + const checkedFilters = ["all", ...filtersObj.map((propertyFilter) => [ + "in", + ["get", propertyFilter.id], + ["literal", propertyFilter.options.filter(option => option.checked).map(option => option.value)], + ])] + return checkedFilters + }; + + const handleClick = (event) => { + setPopupInfo(null) + if (event.features[0]) { + console.log(event.features[0].properties); + event.originalEvent.stopPropagation(); + setPopupInfo({ + lon: event.lngLat.lng, + lat: event.lngLat.lat, + properties: event.features[0].properties + }) + } + }; + + const handleMouseEnter = (event) => { + const feature = event.features[0]; + if (!feature) return; + + mapRef.current.getCanvas().style.cursor = "pointer"; + }; + + const handleMouseLeave = (event) => { + const feature = event.features[0]; + if (!feature) { + return; + } + mapRef.current.getCanvas().style.cursor = ""; + }; + + return ( +
+
+
+
+

+ Возобновяемая энергетика. Объекты +

+
+ +
+
+ +
+ {/* Layers */} +
    + {mapstyle.layers.map((layer) => ( +
    + { + mapRef.current + .getMap() + .setLayoutProperty( + event.target.id, + "visibility", + event.target.checked ? "visible" : "none" + ); + }} + /> + +
    + ))} +
+ {/* Filters */} + {filters.map((section) => ( + + {({ open }) => ( + <> +

+ + + {section.name} + + + {open ? ( + + +

+ +
+ {section.options.map((option, optionIdx) => ( +
+ + +
+ ))} +
+
+ + )} +
+ ))} + + {/* Legend */} + + {({ open }) => ( + <> +

+ + + Легенда + + + {open ? ( + + +

+ +
+

+ Lorem ipsum, dolor sit amet consectetur adipisicing + elit. Aliquam harum fuga, ratione quae quo corrupti + iusto reprehenderit sapiente assumenda voluptatum + voluptates veritatis incidunt nisi quidem + repellendus. Ex ad explicabo eum? +

+
+
+ + )} +
+ {/* Metadata */} + + {({ open }) => ( + <> +

+ + + Метаданные + + + {open ? ( + + +

+ +
+

+ Lorem ipsum, dolor sit amet consectetur adipisicing + elit. Aliquam harum fuga, ratione quae quo corrupti + iusto reprehenderit sapiente assumenda voluptatum + voluptates veritatis incidunt nisi quidem + repellendus. Ex ad explicabo eum? +

+
+
+ + )} +
+
+ + {/* Map itself */} +
+
+ + + {popupInfo && setPopupInfo(null)} + > +

{popupInfo.properties.res_name_parc}

+ {popupInfo.properties.region_name} +
} + + + + + + + +
+
+
+
+
+
+
+
+ ); +} diff --git a/src/Points.jsx b/src/Points.jsx new file mode 100644 index 0000000..ef57e50 --- /dev/null +++ b/src/Points.jsx @@ -0,0 +1,1210 @@ +import { Fragment, useState, useRef } from "react"; +import { Dialog, Disclosure, Menu, Transition } from "@headlessui/react"; +import { XMarkIcon } from "@heroicons/react/24/outline"; +import { + ChevronUpIcon, + ChevronDownIcon, + FunnelIcon, + MinusIcon, + PlusIcon, +} from "@heroicons/react/20/solid"; + +import Map, { Layer, Source, Popup, ScaleControl } from "react-map-gl"; +import mapstyle from "./points.json"; + +const MAPBOX_TOKEN = + "pk.eyJ1IjoiZ2hlcm1hbnQiLCJhIjoiY2wzbHR0YW1sMXB0YjNkcXd5NWpqaWpybiJ9.jyLcIcB7NLbtZzGYIJZWWg"; + +const paintedLayers = mapstyle.layers.reduce((acc, cur) => ({ ...acc, [cur.id]: cur }), {}) +const pointsColors = mapstyle.layers.find(layer => layer.id == "Объекты").paint["circle-color"].slice(2, -1).reduce((acc, cur, i, source) => (i % 2 == 0 ? [...acc, { name: cur, color: source[i + 1] }] : acc), []) +const pointsSizes = mapstyle.layers.find(layer => layer.id == "Объекты").paint["circle-radius"].slice(3).reduce((acc, cur, i, source) => (i % 2 == 0 ? [...acc, { value: cur, size: source[i + 1] }] : acc), []) + + + +const initialFilters = [ + { + id: "tech_name", + name: "ВИЭ-технология", + options: [ + { + "value": "СЭС", + "label": "СЭС", + "checked": true + }, + { + "value": "ВЭС", + "label": "ВЭС", + "checked": true + }, + { + "value": "мГЭС", + "label": "мГЭС", + "checked": true + }, + { + "value": "БиоЭС (биомасса)", + "label": "БиоЭС (биомасса)", + "checked": true + }, + { + "value": "БиоЭС (биогаз)", + "label": "БиоЭС (биогаз)", + "checked": true + }, + { + "value": "БиоЭС (свалочный газ)", + "label": "БиоЭС (свалочный газ)", + "checked": true + }, + { + "value": "ПЭС", + "label": "ПЭС", + "checked": true + }, + { + "value": "ГеоЭС", + "label": "ГеоЭС", + "checked": true + } + ] + }, + { + "id": "region_name", + "name": "Регион размещения", + "options": [ + { + "value": "Республика Адыгея ", + "label": "Республика Адыгея ", + "checked": true + }, + { + "value": "Республика Алтай", + "label": "Республика Алтай", + "checked": true + }, + { + "value": "Республика Башкортостан", + "label": "Республика Башкортостан", + "checked": true + }, + { + "value": "Республика Бурятия", + "label": "Республика Бурятия", + "checked": true + }, + { + "value": "Республика Дагестан", + "label": "Республика Дагестан", + "checked": true + }, + { + "value": "Республика Ингушетия", + "label": "Республика Ингушетия", + "checked": true + }, + { + "value": "Кабардино-Балкарская Республика", + "label": "Кабардино-Балкарская Республика", + "checked": true + }, + { + "value": "Республика Калмыкия", + "label": "Республика Калмыкия", + "checked": true + }, + { + "value": "Карачаево-Черкесская Республика", + "label": "Карачаево-Черкесская Республика", + "checked": true + }, + { + "value": "Республика Карелия", + "label": "Республика Карелия", + "checked": true + }, + { + "value": "Республика Коми", + "label": "Республика Коми", + "checked": true + }, + { + "value": "Республика Крым", + "label": "Республика Крым", + "checked": true + }, + { + "value": "Республика Марий Эл", + "label": "Республика Марий Эл", + "checked": true + }, + { + "value": "Республика Мордовия", + "label": "Республика Мордовия", + "checked": true + }, + { + "value": "Республика Саха (Якутия)", + "label": "Республика Саха (Якутия)", + "checked": true + }, + { + "value": "Республика Северная Осетия – Алания", + "label": "Республика Северная Осетия – Алания", + "checked": true + }, + { + "value": "Республика Татарстан ", + "label": "Республика Татарстан ", + "checked": true + }, + { + "value": "Республика Тыва", + "label": "Республика Тыва", + "checked": true + }, + { + "value": "Удмуртская Республика", + "label": "Удмуртская Республика", + "checked": true + }, + { + "value": "Республика Хакасия", + "label": "Республика Хакасия", + "checked": true + }, + { + "value": "Чеченская Республика", + "label": "Чеченская Республика", + "checked": true + }, + { + "value": "Чувашская Республика", + "label": "Чувашская Республика", + "checked": true + }, + { + "value": "Алтайский край", + "label": "Алтайский край", + "checked": true + }, + { + "value": "Забайкальский край", + "label": "Забайкальский край", + "checked": true + }, + { + "value": "Камчатский край", + "label": "Камчатский край", + "checked": true + }, + { + "value": "Краснодарский край", + "label": "Краснодарский край", + "checked": true + }, + { + "value": "Красноярский край", + "label": "Красноярский край", + "checked": true + }, + { + "value": "Пермский край", + "label": "Пермский край", + "checked": true + }, + { + "value": "Приморский край", + "label": "Приморский край", + "checked": true + }, + { + "value": "Ставропольский край", + "label": "Ставропольский край", + "checked": true + }, + { + "value": "Хабаровский край", + "label": "Хабаровский край", + "checked": true + }, + { + "value": "Амурская область", + "label": "Амурская область", + "checked": true + }, + { + "value": "Архангельская область", + "label": "Архангельская область", + "checked": true + }, + { + "value": "Астраханская область", + "label": "Астраханская область", + "checked": true + }, + { + "value": "Белгородская область", + "label": "Белгородская область", + "checked": true + }, + { + "value": "Брянская область", + "label": "Брянская область", + "checked": true + }, + { + "value": "Владимирская область", + "label": "Владимирская область", + "checked": true + }, + { + "value": "Волгоградская область", + "label": "Волгоградская область", + "checked": true + }, + { + "value": "Вологодская область", + "label": "Вологодская область", + "checked": true + }, + { + "value": "Воронежская область", + "label": "Воронежская область", + "checked": true + }, + { + "value": "Ивановская область", + "label": "Ивановская область", + "checked": true + }, + { + "value": "Иркутская область", + "label": "Иркутская область", + "checked": true + }, + { + "value": "Калининградская область", + "label": "Калининградская область", + "checked": true + }, + { + "value": "Калужская область", + "label": "Калужская область", + "checked": true + }, + { + "value": "Кемеровская область", + "label": "Кемеровская область", + "checked": true + }, + { + "value": "Кировская область", + "label": "Кировская область", + "checked": true + }, + { + "value": "Костромская область", + "label": "Костромская область", + "checked": true + }, + { + "value": "Курганская область", + "label": "Курганская область", + "checked": true + }, + { + "value": "Курская область", + "label": "Курская область", + "checked": true + }, + { + "value": "Ленинградская область", + "label": "Ленинградская область", + "checked": true + }, + { + "value": "Липецкая область", + "label": "Липецкая область", + "checked": true + }, + { + "value": "Магаданская область", + "label": "Магаданская область", + "checked": true + }, + { + "value": "Московская область", + "label": "Московская область", + "checked": true + }, + { + "value": "Мурманская область", + "label": "Мурманская область", + "checked": true + }, + { + "value": "Нижегородская область", + "label": "Нижегородская область", + "checked": true + }, + { + "value": "Новгородская область", + "label": "Новгородская область", + "checked": true + }, + { + "value": "Новосибирская область", + "label": "Новосибирская область", + "checked": true + }, + { + "value": "Омская область", + "label": "Омская область", + "checked": true + }, + { + "value": "Оренбургская область", + "label": "Оренбургская область", + "checked": true + }, + { + "value": "Орловская область", + "label": "Орловская область", + "checked": true + }, + { + "value": "Пензенская область", + "label": "Пензенская область", + "checked": true + }, + { + "value": "Псковская область", + "label": "Псковская область", + "checked": true + }, + { + "value": "Ростовская область", + "label": "Ростовская область", + "checked": true + }, + { + "value": "Рязанская область", + "label": "Рязанская область", + "checked": true + }, + { + "value": "Самарская область", + "label": "Самарская область", + "checked": true + }, + { + "value": "Саратовская область", + "label": "Саратовская область", + "checked": true + }, + { + "value": "Сахалинская область", + "label": "Сахалинская область", + "checked": true + }, + { + "value": "Свердловская область", + "label": "Свердловская область", + "checked": true + }, + { + "value": "Смоленская область", + "label": "Смоленская область", + "checked": true + }, + { + "value": "Тамбовская область", + "label": "Тамбовская область", + "checked": true + }, + { + "value": "Тверская область", + "label": "Тверская область", + "checked": true + }, + { + "value": "Томская область", + "label": "Томская область", + "checked": true + }, + { + "value": "Тульская область", + "label": "Тульская область", + "checked": true + }, + { + "value": "Тюменская область", + "label": "Тюменская область", + "checked": true + }, + { + "value": "Ульяновская область", + "label": "Ульяновская область", + "checked": true + }, + { + "value": "Челябинская область", + "label": "Челябинская область", + "checked": true + }, + { + "value": "Ярославская область", + "label": "Ярославская область", + "checked": true + }, + { + "value": "Город Москва", + "label": "Город Москва", + "checked": true + }, + { + "value": "Город Санкт-Петербург", + "label": "Город Санкт-Петербург", + "checked": true + }, + { + "value": "Город Севастополь", + "label": "Город Севастополь", + "checked": true + }, + { + "value": "Еврейская автономная область", + "label": "Еврейская автономная область", + "checked": true + }, + { + "value": "Ненецкий автономный округ", + "label": "Ненецкий автономный округ", + "checked": true + }, + { + "value": "Ханты-Мансийский автономный округ – Югра", + "label": "Ханты-Мансийский автономный округ – Югра", + "checked": true + }, + { + "value": "Чукотский автономный округ", + "label": "Чукотский автономный округ", + "checked": true + }, + { + "value": "Ямало-Ненецкий автономный округ", + "label": "Ямало-Ненецкий автономный округ", + "checked": true + } + ] + }, + { + "id": "support_name", + "name": "Форма поддержки", + "options": [ + { + "value": "ДПМ ВИЭ 1.0 (оптовый рынок)", + "label": "ДПМ ВИЭ 1.0 (оптовый рынок)", + "checked": true + }, + { + "value": "ДПМ ВИЭ 2.0 (оптовый рынок)", + "label": "ДПМ ВИЭ 2.0 (оптовый рынок)", + "checked": true + }, + { + "value": "Розничный рынок (с поддержкой)", + "label": "Розничный рынок (с поддержкой)", + "checked": true + }, + { + "value": "Розничный рынок (без поддержки)", + "label": "Розничный рынок (без поддержки)", + "checked": true + }, + { + "value": "Оптовый рынок (без поддержки)", + "label": "Оптовый рынок (без поддержки)", + "checked": true + }, + { + "value": "Собственная генерация промышленности", + "label": "Собственная генерация промышленности", + "checked": true + }, + { + "value": "ВИЭ в изолированнных энергосистемах", + "label": "ВИЭ в изолированнных энергосистемах", + "checked": true + } + ] + }, + { + "id": "main_company_for_site", + "name": "Компания-владелец", + "options": [ + { + "value": "ООО \"Вершина Девелопмент\"", + "label": "ООО \"Вершина Девелопмент\"", + "checked": true + }, + { + "value": "АО \"НоваВинд\"", + "label": "АО \"НоваВинд\"", + "checked": true + }, + { + "value": "ООО \"Ветропарки ФРВ\"", + "label": "ООО \"Ветропарки ФРВ\"", + "checked": true + }, + { + "value": "ПАО \"ТГК-1\"", + "label": "ПАО \"ТГК-1\"", + "checked": true + }, + { + "value": "ООО \"Солар Системс\"", + "label": "ООО \"Солар Системс\"", + "checked": true + }, + { + "value": "ГК \"Хевел\"", + "label": "ГК \"Хевел\"", + "checked": true + }, + { + "value": "ПАО \"ЭЛ5-Энерго\"", + "label": "ПАО \"ЭЛ5-Энерго\"", + "checked": true + }, + { + "value": "ПАО \"Фортум\"", + "label": "ПАО \"Фортум\"", + "checked": true + }, + { + "value": "Другие", + "label": "Другие", + "checked": true + } + ] + }, + { + "id": "year_commissioning_filter", + "name": "Год ввода в эксплуатацию", + "options": [ + { + "value": "1905-2010", + "label": "1905-2009", + "checked": true + }, + { + "value": "2010", + "label": "2010", + "checked": true + }, + { + "value": "2011", + "label": "2011", + "checked": true + }, + { + "value": "2012", + "label": "2012", + "checked": true + }, + { + "value": "2013", + "label": "2013", + "checked": true + }, + { + "value": "2014", + "label": "2014", + "checked": true + }, + { + "value": "2015", + "label": "2015", + "checked": true + }, + { + "value": "2016", + "label": "2016", + "checked": true + }, + { + "value": "2017", + "label": "2017", + "checked": true + }, + { + "value": "2018", + "label": "2018", + "checked": true + }, + { + "value": "2019", + "label": "2019", + "checked": true + }, + { + "value": "2020", + "label": "2020", + "checked": true + }, + { + "value": "2021", + "label": "2021", + "checked": true + }, + { + "value": "2022", + "label": "2022", + "checked": true + } + ] + } +] + +export default function Points({ mapOptions, onMapOptionClick }) { + const mapRef = useRef(null); + + const [open, setOpen] = useState(false) + + const [mobileFiltersOpen, setMobileFiltersOpen] = useState(false); + + const [popupInfo, setPopupInfo] = useState(null); + + const [filters, setFilters] = useState(initialFilters); + + const generatePopup = (info) => { + console.log(info) + return ( +
+ + + + + {info.power_fact_parc_mw != null && + + + + + } + {info.year_commissioning && + + + + + } + {info.year_qualification && + + + + + } + {info.support_name && + + + + + } + {info.region_name && + + + + + } + {info.residence_area && + + + + + } + {info.main_owner_company && + + + + + } + +
+ Установленная мощность + + {info.power_fact_parc_mw.toFixed(2).replace(".", ",")} МВт +
+ Год ввода в эксплуатацию + + {info.year_commissioning} +
+ Год квалификации + + {info.year_qualification} +
+ Механизм поддержки + + {info.support_name} +
+ Регион размещения + + {info.region_name} +
+ Район размещения + + {[info.residence_area, info.settlement, info.natural_object].filter(item => item).join(", ")} +
+ Владелец объекта + + {info.current_owner_name ? `${info.current_owner_name} ${info.main_owner_company != info.current_owner_name && ({info.main_owner_company})}` : info.main_owner_company} +
+ + {Boolean(info.rreda_member) && info.company_link_rreda &&

Ссылка на компанию: {info.company_link_rreda}

} + {info.date_actualization &&

Дата актуализации: {info.date_actualization}

} +
+ ) + } + + const clearAllOptions = (event) => { + event.preventDefault() + const newStateFilters = filters.map((filter) => + filter.id == event.target.value + ? { + ...filter, + options: filter.options.map((option) => { + const newoption = { ...option, checked: false } + return (newoption) + }) + } + : filter + ) + setFilters(newStateFilters); + } + + const addAllOptions = (event) => { + event.preventDefault(); + const newStateFilters = filters.map((filter) => + filter.id == event.target.value + ? { + ...filter, + options: filter.options.map((option) => { + const newoption = { ...option, checked: true } + return (newoption) + }) + } + : filter + ) + setFilters(newStateFilters); + } + + const handleFilterToggle = function (event) { + const newStateFilters = filters.map((filter) => + filter.id == event.target.name + ? { + ...filter, + options: filter.options.map((option) => + option.value == event.target.defaultValue + ? { ...option, checked: !option.checked } + : option + ), + } + : filter + ); + setFilters(newStateFilters); + }; + + const applyFilters = (filtersObj) => { + const checkedFilters = ["all", ...filtersObj.map((propertyFilter) => [ + "in", + ["get", propertyFilter.id], + ["literal", propertyFilter.options.filter(option => option.checked).map(option => option.value)], + ])] + return checkedFilters + }; + + const handleClick = (event) => { + setOpen(false) + setPopupInfo(null) + if (event.features[0]) { + + // event.originalEvent.stopPropagation(); + setPopupInfo({ + lon: event.lngLat.lng, + lat: event.lngLat.lat, + ...event.features[0].properties + }) + // console.log(popupInfo) + setOpen(true) + } + }; + + const handleMouseEnter = (event) => { + const feature = event.features[0]; + if (!feature) return; + + mapRef.current.getCanvas().style.cursor = "pointer"; + }; + + const handleMouseLeave = (event) => { + const feature = event.features[0]; + if (!feature) { + return; + } + mapRef.current.getCanvas().style.cursor = ""; + }; + + return ( +
+
+
+
+

+ Объекты ВИЭ-генерации в регионах России +

+
+ +
+ + {mapOptions.find((option) => option.current).name} + +
+ + + +
+ {mapOptions.map((option) => ( + + + {option.name} + + + ))} +
+
+
+
+
+
+ +
+
+ +
+ {/* Layers */} +
    + {mapstyle.layers.map((layer) => ( +
    + { + mapRef.current + .getMap() + .setLayoutProperty( + event.target.id, + "visibility", + event.target.checked ? "visible" : "none" + ); + }} + /> + +
    + ))} +
+ + {/* Legend */} + + {({ open }) => ( + <> +

+ + + Легенда + + + {open ? ( + + +

+ +
+

Установленная мощность

+
{pointsSizes[0].value}
{pointsSizes[1].value} МВт
+

ВИЭ-технология

+ {pointsColors.map(e =>

{e.name}

)} +
+
+

СЭС – солнечные электростанции

+

ВЭС – ветроэлектростанции

+

мГЭС – малые гидроэлектростанции

+

БиоЭС (биомасса) – биоэлектростанции на основе биомассы

+

БиоЭС (биогаз) – биоэлектростанции на основе биогаза

+

БиоЭС (свалочный газ) – биоэлектростанции на основе свалочного газа

+

ГеоЭС – геотермальные электростанции

+

ПЭС – приливные электростанции

+ +
+
+ + )} +
+ + {/* Filters */} + {filters.map((section) => ( + + {({ open }) => ( + <> +

+ + + {section.name} + + + {open ? ( + + +

+ + + / + +
+ {section.options.map((option, optionIdx) => ( +
+ + + {pointsColors.find(color => color.name == option.label) &&
color.name == option.label).color }}>
} +
+ ))} +
+
+ + )} +
+ ))} + + {/* Metadata */} + + {({ open }) => ( + <> +

+ + + Метаданные + + + {open ? ( + + +

+ +
+

+ Lorem ipsum, dolor sit amet consectetur adipisicing + elit. Aliquam harum fuga, ratione quae quo corrupti + iusto reprehenderit sapiente assumenda voluptatum + voluptates veritatis incidunt nisi quidem + repellendus. Ex ad explicabo eum? +

+
+
+ + )} +
+
+ + {/* Map itself */} +
+
+ + + {popupInfo && setPopupInfo(null)} + > +

{popupInfo.res_name_parc}

+ {popupInfo.region_name} +
} + + + + + + + + +
+
+
+
+
+
+ + + +
+ + +
+
+
+ + + +
+ +
+
+
+
+ {popupInfo && popupInfo.res_name_parc} +
+
+ {/* Replace with your content */} + {popupInfo && generatePopup(popupInfo)} + {/* /End replace */} +
+
+
+
+
+
+
+
+
+
+
+ ); +} diff --git a/src/Regions.jsx b/src/Regions.jsx new file mode 100644 index 0000000..6926832 --- /dev/null +++ b/src/Regions.jsx @@ -0,0 +1,735 @@ +import { Fragment, useState, useRef } from "react"; +import { Dialog, Disclosure, Menu, Transition } from "@headlessui/react"; +import { XMarkIcon } from "@heroicons/react/24/outline"; +import { + ChevronDownIcon, + FunnelIcon, + MinusIcon, + PlusIcon, +} from "@heroicons/react/20/solid"; + +import Map, { Layer, Source, Popup, ScaleControl } from "react-map-gl"; +import mapstyle from "./regions.json"; + +const MAPBOX_TOKEN = + "pk.eyJ1IjoiZ2hlcm1hbnQiLCJhIjoiY2wzbHR0YW1sMXB0YjNkcXd5NWpqaWpybiJ9.jyLcIcB7NLbtZzGYIJZWWg"; + +const paintedLayers = mapstyle.layers.reduce((acc, cur) => ({ ...acc, [cur.id]: cur }), {}) +const toggleLayers = ["Подложка"] + + +const initialPaintFilters = [ + { + id: "parameter_name", + name: "Показатель ВИЭ-генерации", + options: [ + { + "value": "power_fact_mw", + "label": "Фактическая установленная мощность, МВт", + "checked": true + }, + { + "value": "power_plan_mw", + "label": "Плановая установленная мощность, МВт", + "checked": false + }, + { + "value": "power_opw_mw", + "label": "Мощность отобранных проектов, МВт", + "checked": false + }, + { + "value": "capacity_additions_mw", + "label": "Годовой объём вводов, МВт", + "checked": false + }, + { + "value": "generation_mwh", + "label": "Производство электроэнергии, МВт⋅ч", + "checked": false + }, + { + "value": "res_share_generation", + "label": "Доля в выработке электроэнергии, %", + "checked": false + }, + { + "value": "res_share_power", + "label": "Доля в балансе мощности, %", + "checked": false + } + ] + }, +] + +const initialFilterFilters = [ + { + id: "id_tech", + name: "ВИЭ-технология", + options: [ + { + "value": 1, + "label": "СЭС", + "checked": false + }, + { + "value": 2, + "label": "ВЭС", + "checked": false + }, + { + "value": 3, + "label": "мГЭС", + "checked": false + }, + { + "value": 4, + "label": "Другие технологии", + "checked": false + }, + { + "value": 5, + "label": "Все технологии", + "checked": true + } + ] + }, + { + "id": "id_support", + "name": "Форма поддержки", + "options": [ + { + "value": 1, + "label": "ДПМ ВИЭ (оптовый рынок)", + "checked": false + }, + { + "value": 2, + "label": "Оптовый рынок без поддержки", + "checked": false + }, + { + "value": 3, + "label": "Розничный рынок", + "checked": false + }, + { + "value": 4, + "label": "Все формы поддержки", + "checked": true + } + ] + }, + { + "id": "year", + "name": "Год", + "options": [ + { + "value": 2013, + "label": 2013, + "checked": false + }, + { + "value": 2014, + "label": 2014, + "checked": true + }, + { + "value": 2015, + "label": 2015, + "checked": false + }, + { + "value": 2016, + "label": 2016, + "checked": false + }, + { + "value": 2017, + "label": 2017, + "checked": false + }, + { + "value": 2018, + "label": 2018, + "checked": false + }, + { + "value": 2019, + "label": 2019, + "checked": false + }, + { + "value": 2020, + "label": 2020, + "checked": false + }, + { + "value": 2021, + "label": 2021, + "checked": false + }, + { + "value": 2022, + "label": 2022, + "checked": true + } + ] + } +] + +export default function Regions({ mapOptions, onMapOptionClick }) { + const mapRef = useRef(null); + + const [open, setOpen] = useState(false) + + const [mobileFiltersOpen, setMobileFiltersOpen] = useState(false); + + const [popupInfo, setPopupInfo] = useState(null); + + const [paintFilters, setPaintFilters] = useState(initialPaintFilters); + const [filterFilters, setFilterFilters] = useState(initialFilterFilters); + + + const generatePopup = (info) => { + console.log(info) + const [currentTech, currentSupport, currentYear, currentParameter] = filterFilters.map(f => f.options.find(o => o.checked)).concat(paintFilters[0].options.find(o => o.checked)) + return ( +
+ + {info.admin_centre &&

Административный центр {info.admin_centre}

} + {info.district &&

Федеральный округ {info.district}

} + {info.area &&

Площадь {info.area.toFixed(1).replace(".", ",")} тыс. км²

} + {info.population &&

Численность населения {info.population.toFixed(1).replace(".", ",")} тыс. чел.

} + {info.population_density &&

Плотность населения {info.population_density.toFixed(1).replace(".", ",")} чел./км²

} + + {info[currentParameter.value] && +
+

{currentParameter.label} в {currentYear.label} году

+ + + {info.power_fact_mw != null && + + + + + } + +
+ {currentTech.label}, {currentSupport.label} + + {info[currentParameter.value].toFixed(1).replace(".", ",")} +
+
+ } + +
+

Совокупная установленная мощность ВИЭ по итогам {info.static_date_power} года, МВт

+ + + {info.static_power_fact_solar_mw != null && + + + + + } + {info.static_power_fact_wind_mw != null && + + + + + } + {info.static_power_fact_shydro_mw != null && + + + + + } + {info.static_power_fact_other_mw != null && + + + + + } + {info.static_power_fact_res_mw != null && + + + + + } + {info.static_res_share_power != null && + + + + + } + +
+ Солнечные электростанции + + {info.static_power_fact_solar_mw.toFixed(1).replace(".", ",")} +
+ Ветроэлектростанции + + {info.static_power_fact_wind_mw.toFixed(1).replace(".", ",")} +
+ Малые гидроэлектростанции + + {info.static_power_fact_shydro_mw.toFixed(1).replace(".", ",")} +
+ Другие объекты ВИЭ-генерации + + {info.static_power_fact_other_mw.toFixed(1).replace(".", ",")} +
+ Всего ВИЭ + + {info.static_power_fact_res_mw.toFixed(1).replace(".", ",")} +
+ Доля всех ВИЭ в балансе мощности региона, % + + {info.static_res_share_power.toFixed(1).replace(".", ",")} +
+
+ + {info.rating_result1 &&

{info.rating_result1}

} + {info.rating_result2 &&

{info.rating_result2}

} + {info.rating_result3 &&

{info.rating_result3}

} + {info.rating_result4 &&

{info.rating_result4}

} + {info.rating_result5 &&

{info.rating_result5}

} + {info.rating_result6 &&

{info.rating_result6}

} + +

Ознакомиться с рейтингами: http://portal.rreda.ru/rating/

+

Дата актуализации: 17.01.2023

+
+ ) + } + + const generateLegend = function (parameter) { + const colors_and_breaks = mapstyle.layers.find(layer => layer.id == parameter.value).paint["fill-color"].slice(2) + const colors = colors_and_breaks.filter((cb, i) => i % 2 == 0) + const breaks = colors_and_breaks.filter((cb, i) => i % 2 == 1) + const labels = [`менее ${breaks[0]}`, ...breaks.map((brk, i, arr) => typeof arr[i + 1] !== 'undefined' ? `${brk} - ${arr[i + 1]}` : `более ${breaks.at(-1)}`)] + const legend_items = colors.map((col, i) => ( + { + "color": col, + "label": labels[i] + } + )).reverse() + return ( +
+

{parameter.label}

+ {legend_items.map(item =>

{item.label}

)} +
+ ) + } + + const handleFilterToggle = function (event) { + + if (paintFilters.filter((filter) => filter.id == event.target.name).length > 0) { + const newStatePaintFilters = paintFilters.map((filter) => + filter.id == event.target.name + ? { + ...filter, + options: filter.options.map((option) => + option.value == event.target.defaultValue + ? { ...option, checked: true } + : { ...option, checked: false } + ), + } + : filter + ); + setPaintFilters(newStatePaintFilters); + } else { + const newStateFilterFilters = filterFilters.map((filter) => + filter.id == event.target.name + ? { + ...filter, + options: filter.options.map((option) => + option.value == event.target.defaultValue + ? { ...option, checked: true } + : { ...option, checked: false } + ), + } + : filter + ); + setFilterFilters(newStateFilterFilters); + } + }; + + const applyPaintFilters = (filtersObj) => { + const parameter = filtersObj.find(filter => filter.id == "parameter_name").options.find(option => option.checked).value + const newPaint = paintedLayers[parameter].paint + return newPaint + }; + + const applyFilterFilters = (filtersObj) => { + const year_value = filtersObj.find(f => f.id == "year").options.find(option => option.checked).value + const tech_value = filtersObj.find(f => f.id == "id_tech").options.find(option => option.checked).value + const support_value = filtersObj.find(f => f.id == "id_support").options.find(option => option.checked).value + return ["all", ["==", ["get", "year"], year_value], ["==", ["get", "id_tech"], tech_value], ["==", ["get", "id_support"], support_value]] + }; + + + + const handleClick = (event) => { + if (event.features[0]) { + event.originalEvent.stopPropagation(); + setPopupInfo({ + lon: event.lngLat.lng, + lat: event.lngLat.lat, + ...event.features[0].properties + }) + setOpen(true) + } + }; + + const handleMouseEnter = (event) => { + const feature = event.features[0]; + if (!feature) return; + + mapRef.current.getCanvas().style.cursor = "pointer"; + }; + + const handleMouseLeave = (event) => { + const feature = event.features[0]; + if (!feature) { + return; + } + mapRef.current.getCanvas().style.cursor = ""; + }; + + return ( +
+
+
+
+

+ Развитие возобновляемой энергетики в регионах России +

+
+ +
+ + {mapOptions.find((option) => option.current).name} + +
+ + + +
+ {mapOptions.map((option) => ( + + + {option.name} + + + ))} +
+
+
+
+
+
+ +
+
+ +
+ {/* Layers */} +
    + {toggleLayers.map((layer_name) => ( +
    + { + mapRef.current + .getMap() + .setLayoutProperty( + event.target.id, + "visibility", + event.target.checked ? "visible" : "none" + ); + }} + /> + +
    + ))} +
+ + {/* Legend */} + + {({ open }) => ( + <> +

+ + + Легенда + + + {open ? ( + + +

+ +
+ {generateLegend(paintFilters.find(f => f.id == "parameter_name").options.find(parameter => parameter.checked))} +
+
+ + )} +
+ + {/* Filters */} + {paintFilters.concat(filterFilters).map((section) => ( + + {({ open }) => ( + <> +

+ + + {section.name} + + + {open ? ( + + +

+ +
+ {section.options.map((option, optionIdx) => ( +
+ + +
+ ))} +
+
+ + )} +
+ ))} + + {/* Metadata */} + + {({ open }) => ( + <> +

+ + + Метаданные + + + {open ? ( + + +

+ +
+

+ Lorem ipsum, dolor sit amet consectetur adipisicing + elit. Aliquam harum fuga, ratione quae quo corrupti + iusto reprehenderit sapiente assumenda voluptatum + voluptates veritatis incidunt nisi quidem + repellendus. Ex ad explicabo eum? +

+
+
+ + )} +
+
+ + {/* Map itself */} +
+
+ + + {popupInfo && setPopupInfo(null)} + > + {popupInfo.region_name} + } + + + + + + + + + + +
+
+
+
+
+ + + +
+ + +
+
+
+ + + +
+ +
+
+
+
+ {popupInfo && popupInfo.region_name} +
+
+ {/* Replace with your content */} + {popupInfo && generatePopup(popupInfo)} + {/* /End replace */} +
+
+
+
+
+
+
+
+
+
+
+ ); +} diff --git a/src/Shop.jsx b/src/Shop.jsx new file mode 100644 index 0000000..056f560 --- /dev/null +++ b/src/Shop.jsx @@ -0,0 +1,318 @@ +/* + This example requires some changes to your config: + + ``` + // tailwind.config.js + module.exports = { + // ... + plugins: [ + // ... + require('@tailwindcss/forms'), + ], + } + ``` +*/ +import { Fragment, useState } from 'react' +import { Dialog, Disclosure, Menu, Transition } from '@headlessui/react' +import { XMarkIcon } from '@heroicons/react/24/outline' +import { ChevronDownIcon, FunnelIcon, MinusIcon, PlusIcon, Squares2X2Icon } from '@heroicons/react/20/solid' + +const sortOptions = [ + { name: 'Most Popular', href: '#', current: true }, + { name: 'Best Rating', href: '#', current: false }, + { name: 'Newest', href: '#', current: false }, + { name: 'Price: Low to High', href: '#', current: false }, + { name: 'Price: High to Low', href: '#', current: false }, +] +const subCategories = [ + { name: 'Totes', href: '#' }, + { name: 'Backpacks', href: '#' }, + { name: 'Travel Bags', href: '#' }, + { name: 'Hip Bags', href: '#' }, + { name: 'Laptop Sleeves', href: '#' }, +] +const filters = [ + { + id: 'color', + name: 'Color', + options: [ + { value: 'white', label: 'White', checked: false }, + { value: 'beige', label: 'Beige', checked: false }, + { value: 'blue', label: 'Blue', checked: true }, + { value: 'brown', label: 'Brown', checked: false }, + { value: 'green', label: 'Green', checked: false }, + { value: 'purple', label: 'Purple', checked: false }, + ], + }, + { + id: 'category', + name: 'Category', + options: [ + { value: 'new-arrivals', label: 'New Arrivals', checked: false }, + { value: 'sale', label: 'Sale', checked: false }, + { value: 'travel', label: 'Travel', checked: true }, + { value: 'organization', label: 'Organization', checked: false }, + { value: 'accessories', label: 'Accessories', checked: false }, + ], + }, + { + id: 'size', + name: 'Size', + options: [ + { value: '2l', label: '2L', checked: false }, + { value: '6l', label: '6L', checked: false }, + { value: '12l', label: '12L', checked: false }, + { value: '18l', label: '18L', checked: false }, + { value: '20l', label: '20L', checked: false }, + { value: '40l', label: '40L', checked: true }, + ], + }, +] + +function classNames(...classes) { + return classes.filter(Boolean).join(' ') +} + +export default function Example() { + const [mobileFiltersOpen, setMobileFiltersOpen] = useState(false) + + return ( +
+
+ {/* Mobile filter dialog */} + + + +
+ + +
+ + +
+

Filters

+ +
+ + {/* Filters */} +
+

Categories

+ + + {filters.map((section) => ( + + {({ open }) => ( + <> +

+ + {section.name} + + {open ? ( + + +

+ +
+ {section.options.map((option, optionIdx) => ( +
+ + +
+ ))} +
+
+ + )} +
+ ))} +
+
+
+
+
+
+ +
+
+

New Arrivals

+ +
+ +
+ + Sort + +
+ + + +
+ {sortOptions.map((option) => ( + + {({ active }) => ( + + {option.name} + + )} + + ))} +
+
+
+
+ + + +
+
+ +
+

+ Products +

+ +
+ {/* Filters */} +
+

Categories

+ + + {filters.map((section) => ( + + {({ open }) => ( + <> +

+ + {section.name} + + {open ? ( + + +

+ +
+ {section.options.map((option, optionIdx) => ( +
+ + +
+ ))} +
+
+ + )} +
+ ))} +
+ + {/* Product grid */} +
+ {/* Replace with your content */} +
+ {/* /End replace */} +
+
+
+
+
+
+ ) +} diff --git a/src/assets/react.svg b/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/countries.json b/src/countries.json new file mode 100644 index 0000000..be9c568 --- /dev/null +++ b/src/countries.json @@ -0,0 +1,242 @@ +{ + "version": 8, + "name": "remap.countries", + "id": "remap.countries", + "metadata": {}, + "center": [ + 55, + 100 + ], + "zoom": 1, + "maxZoom": 2, + "sources": { + "remap": { + "type": "vector", + "tiles": [ + "http://localhost:8080/maps/remap/{z}/{x}/{y}.pbf" + ], + "url": "http://localhost:8080/capabilities/remap.json", + "mapzoom": 1 + }, + "basemap": { + "type": "raster", + "tiles": [ + "https://api.mapbox.com/styles/v1/ghermant/cl9vd1nji002n15s2xxj25f4m/tiles/512/{z}/{x}/{y}@2x?access_token=pk.eyJ1IjoiZ2hlcm1hbnQiLCJhIjoiY2pncDUwcnRmNDQ4ZjJ4czdjZXMzaHZpNyJ9.3rFyYRRtvLUngHm027HZ7A" + ] + } + }, + "layers": [ + { + "id": "Подложка", + "type": "raster", + "source": "basemap", + "paint": {} + }, + { + "id": "Границы", + "type": "line", + "source": "remap", + "source-layer": "countriesboundaries", + "paint": { + "line-color": "gray", + "line-width": 1 + } + }, + { + "id": "power_fact_mw", + "type": "fill", + "source": "remap", + "source-layer": "countriesvalues", + "paint": { + "fill-opacity": [ + "case", ["has", "power_fact_mw"], 1, 0.1 + ], + "fill-color": [ + "step", + [ + "get", + "power_fact_mw" + ], + "#440154", + 2763, + "#482173", + 9511, + "#433E85", + 20641, + "#38598C", + 37660, + "#2D708E", + 65308, + "#25858E", + 92201, + "#1E9B8A", + 126103, + "#2BB07F", + 162654, + "#51C56A", + 217397, + "#85D54A", + 290048, + "#C2DF23", + 687382, + "#FDE725" + ] + } + }, + { + "id": "power_plan_mw", + "type": "fill", + "source": "remap", + "source-layer": "countriesvalues", + "paint": { + "fill-opacity": [ + "case", ["has", "power_plan_mw"], 1, 0.2 + ], + "fill-color": [ + "step", + [ + "get", + "power_plan_mw" + ], + "#440154", + 17737, + "#443A83", + 62207, + "#31688E", + 124767, + "#21908C", + 224998, + "#35B779", + 377305, + "#8FD744", + 720320, + "#FDE725" + ] + } + }, + { + "id": "generation_gwh", + "type": "fill", + "source": "remap", + "source-layer": "countriesvalues", + "paint": { + "fill-opacity": [ + "case", ["has", "generation_gwh"], 1, 0.2 + ], + "fill-color": [ + "step", + [ + "get", + "generation_gwh" + ], + "#440154", + 27216, + "#443A83", + 126167, + "#31688E", + 320788, + "#21908C", + 589439, + "#35B779", + 939268, + "#8FD744", + 1666634, + "#FDE725" + ] + } + }, + { + "id": "res_share_generation", + "type": "fill", + "source": "remap", + "source-layer": "countriesvalues", + "paint": { + "fill-opacity": [ + "case", ["has", "res_share_generation"], 1, 0.2 + ], + "fill-color": [ + "step", + [ + "get", + "res_share_generation" + ], + "#440154", + 8, + "#443A83", + 21, + "#31688E", + 36, + "#21908C", + 52, + "#35B779", + 69, + "#8FD744", + 87, + "#FDE725" + ] + } + }, + { + "id": "res_share_power", + "type": "fill", + "source": "remap", + "source-layer": "countriesvalues", + "paint": { + "fill-opacity": [ + "case", ["has", "res_share_power"], 1, 0.2 + ], + "fill-color": [ + "step", + [ + "get", + "res_share_power" + ], + "#440154", + 9, + "#443A83", + 21, + "#31688E", + 36, + "#21908C", + 51, + "#35B779", + 67, + "#8FD744", + 86, + "#FDE725" + ] + } + }, + { + "id": "generation_to_population_kWh_pers", + "type": "fill", + "source": "remap", + "source-layer": "countriesvalues", + "paint": { + "fill-opacity": [ + "case", ["has", "generation_to_population_kWh_pers"], 1, 0.2 + ], + "fill-color": [ + "step", + [ + "get", + "generation_to_population_kWh_pers" + ], + "#440154", + 9, + "#443A83", + 21, + "#31688E", + 36, + "#21908C", + 51, + "#35B779", + 67, + "#8FD744", + 86, + "#FDE725" + ] + } + } + ] +} \ No newline at end of file diff --git a/src/main.jsx b/src/main.jsx new file mode 100644 index 0000000..3f07eaf --- /dev/null +++ b/src/main.jsx @@ -0,0 +1,38 @@ +import React, { useState } from 'react' +import { createRoot } from 'react-dom/client'; + + +import 'mapbox-gl/dist/mapbox-gl.css'; +import Points from './Points'; +import Regions from './Regions'; +import Countries from './Countries'; + +const initialMapOptions = [ + { name: "Объекты ВИЭ", current: true }, + { name: "Регионы РФ", current: false }, + { name: "Страны мира", current: false }, +]; + + + +function Maps() { + const [mapOptions, setMapOptions] = useState(initialMapOptions); + const onMapOptionClick = (e) => { + const clickedName = e.target.innerText + const newMapOptions = mapOptions.map(option => option.name == clickedName ? {...option, current: true} : {...option, current: false}) + setMapOptions(newMapOptions) + } + return ( + + {mapOptions.find(option => option.current).name == "Объекты ВИЭ" && } + {mapOptions.find(option => option.current).name == "Регионы РФ" && } + {mapOptions.find(option => option.current).name == "Страны мира" && } + + ) +} + +const domNode = document.getElementById('root') +const root = createRoot(domNode) +root.render( + +) diff --git a/src/points.json b/src/points.json new file mode 100644 index 0000000..66913a2 --- /dev/null +++ b/src/points.json @@ -0,0 +1,77 @@ +{ + "version": 8, + "name": "remap.points", + "id": "remap.points", + "metadata": { + "maputnik:license": "https://github.com/maputnik/osm-liberty/blob/gh-pages/LICENSE.md", + "maputnik:renderer": "mbgljs", + "openmaptiles:version": "3.x" + }, + "center": [ + 55, + 100 + ], + "zoom": 2, + "sources": { + "remap": { + "type": "vector", + "tiles": ["http://localhost:8080/maps/remap/{z}/{x}/{y}.pbf"], + "url": "http://localhost:8080/capabilities/remap.json", + "maxzoom": 1 + }, + "basemap": { + "type": "raster", + "tiles": [ + "https://api.mapbox.com/styles/v1/ghermant/cl9vd1nji002n15s2xxj25f4m/tiles/512/{z}/{x}/{y}@2x?access_token=pk.eyJ1IjoiZ2hlcm1hbnQiLCJhIjoiY2pncDUwcnRmNDQ4ZjJ4czdjZXMzaHZpNyJ9.3rFyYRRtvLUngHm027HZ7A" + ] + } + }, + "layers": [ + { + "id": "Подложка", + "type": "raster", + "source": "basemap", + "paint": {} + }, + { + "id": "Границы", + "type": "line", + "source": "remap", + "source-layer": "regionsboundaries", + "paint": { + "line-color": "gray", + "line-width": 1 + } + }, + { + "id": "Объекты", + "type": "circle", + "source": "remap", + "source-layer": "points", + "paint": { + "circle-radius": [ + "interpolate", + ["linear"], + ["get", "power_fact_parc_mw"], + 0, 6, + 200, 30 + ], + "circle-opacity": 0.7, + "circle-color": [ + "match", + ["get", "tech_name"], + "СЭС", "#ff7f00", + "ВЭС", "#1f78b4", + "мГЭС", "#6a3d9a", + "БиоЭС (биомасса)", "#33a02c", + "БиоЭС (биогаз)", "#cab2d6", + "БиоЭС (свалочный газ)", "#b15928", + "ПЭС", "#fb9a99", + "ГеоЭС", "#e31a1c", + "все ВИЭ", "#fdbf6f", + "#000000" + ] + } + } + ] +} \ No newline at end of file diff --git a/src/regions.json b/src/regions.json new file mode 100644 index 0000000..3354ffd --- /dev/null +++ b/src/regions.json @@ -0,0 +1,342 @@ +{ + "version": 8, + "name": "remap.regions", + "id": "remap.regions", + "metadata": {}, + "center": [ + 55, + 100 + ], + "zoom": 2, + "sources": { + "remap": { + "type": "vector", + "tiles": [ + "http://localhost:8080/maps/remap/{z}/{x}/{y}.pbf" + ], + "url": "http://localhost:8080/capabilities/remap.json", + "maxzoom": 1 + }, + "basemap": { + "type": "raster", + "tiles": [ + "https://api.mapbox.com/styles/v1/ghermant/cl9vd1nji002n15s2xxj25f4m/tiles/512/{z}/{x}/{y}@2x?access_token=pk.eyJ1IjoiZ2hlcm1hbnQiLCJhIjoiY2pncDUwcnRmNDQ4ZjJ4czdjZXMzaHZpNyJ9.3rFyYRRtvLUngHm027HZ7A" + ] + } + }, + "layers": [ + { + "id": "Подложка", + "type": "raster", + "source": "basemap", + "paint": {} + }, + { + "id": "Границы", + "type": "line", + "source": "remap", + "source-layer": "regionsboundaries", + "paint": { + "line-color": "gray", + "line-width": 1 + } + }, + { + "id": "Регионы", + "type": "fill", + "source": "remap", + "source-layer": "regionsboundaries", + "paint": { + "fill-opacity": 0.1, + "fill-color": "#000000" + } + }, + { + "id": "power_fact_mw", + "type": "fill", + "source": "remap", + "source-layer": "regionsvalues", + "paint": { + "fill-opacity": [ + "case", ["has", "power_fact_mw"], 1, 0 + ], + "fill-color": [ + "step", + [ + "get", + "power_fact_mw" + ], + "#440154", + 15, + "#482173", + 40, + "#433E85", + 60, + "#38598C", + 80, + "#2D708E", + 110, + "#25858E", + 150, + "#1E9B8A", + 200, + "#2BB07F", + 235, + "#51C56A", + 335, + "#85D54A", + 415, + "#C2DF23", + 510, + "#FDE725" + ] + } + }, + { + "id": "power_plan_mw", + "type": "fill", + "source": "remap", + "source-layer": "regionsvalues", + "paint": { + "fill-opacity": [ + "case", ["has", "power_plan_mw"], 1, 0 + ], + "fill-color": [ + "step", + [ + "get", + "power_plan_mw" + ], + "#440154", + 20, + "#482173", + 60, + "#433E85", + 110, + "#38598C", + 160, + "#2D708E", + 240, + "#25858E", + 330, + "#1E9B8A", + 450, + "#2BB07F", + 570, + "#51C56A", + 710, + "#85D54A", + 880, + "#C2DF23", + 1035, + "#FDE725" + ] + } + }, + { + "id": "power_opw_mw", + "type": "fill", + "source": "remap", + "source-layer": "regionsvalues", + "paint": { + "fill-opacity": [ + "case", ["has", "power_opw_mw"], 1, 0 + ], + "fill-color": [ + "step", + [ + "get", + "power_opw_mw" + ], + "#440154", + 15, + "#482173", + 40, + "#433E85", + 60, + "#38598C", + 90, + "#2D708E", + 120, + "#25858E", + 160, + "#1E9B8A", + 200, + "#2BB07F", + 280, + "#51C56A", + 340, + "#85D54A", + 390, + "#C2DF23", + 520, + "#FDE725" + ] + } + }, + { + "id": "capacity_additions_mw", + "type": "fill", + "source": "remap", + "source-layer": "regionsvalues", + "paint": { + "fill-opacity": [ + "case", ["has", "capacity_additions_mw"], 1, 0 + ], + "fill-color": [ + "step", + [ + "get", + "capacity_additions_mw" + ], + "#440154", + 10, + "#482173", + 20, + "#433E85", + 35, + "#38598C", + 50, + "#2D708E", + 80, + "#25858E", + 115, + "#1E9B8A", + 140, + "#2BB07F", + 170, + "#51C56A", + 220, + "#85D54A", + 270, + "#C2DF23", + 320, + "#FDE725" + ] + } + }, + { + "id": "generation_mwh", + "type": "fill", + "source": "remap", + "source-layer": "regionsvalues", + "paint": { + "fill-opacity": [ + "case", ["has", "generation_mwh"], 1, 0 + ], + "fill-color": [ + "step", + [ + "get", + "generation_mwh" + ], + "#440154", + 16000, + "#482173", + 61000, + "#433E85", + 132000, + "#38598C", + 202000, + "#2D708E", + 290000, + "#25858E", + 365000, + "#1E9B8A", + 477000, + "#2BB07F", + 674000, + "#51C56A", + 805000, + "#85D54A", + 972000, + "#C2DF23", + 1429000, + "#FDE725" + ] + } + }, + { + "id": "res_share_generation", + "type": "fill", + "source": "remap", + "source-layer": "regionsvalues", + "paint": { + "fill-opacity": [ + "case", ["has", "res_share_generation"], 1, 0 + ], + "fill-color": [ + "step", + [ + "get", + "res_share_generation" + ], + "#440154", + 0.02, + "#482173", + 0.05, + "#433E85", + 0.1, + "#38598C", + 0.2, + "#2D708E", + 0.3, + "#25858E", + 0.4, + "#1E9B8A", + 0.5, + "#2BB07F", + 0.6, + "#51C56A", + 0.7, + "#85D54A", + 0.8, + "#C2DF23", + 0.9, + "#FDE725" + ] + } + }, + { + "id": "res_share_power", + "type": "fill", + "source": "remap", + "source-layer": "regionsvalues", + "paint": { + "fill-opacity": [ + "case", ["has", "res_share_power"], 1, 0 + ], + "fill-color": [ + "step", + [ + "get", + "res_share_power" + ], + "#440154", + 0.02, + "#482173", + 0.05, + "#433E85", + 0.1, + "#38598C", + 0.2, + "#2D708E", + 0.3, + "#25858E", + 0.4, + "#1E9B8A", + 0.5, + "#2BB07F", + 0.6, + "#51C56A", + 0.7, + "#85D54A", + 0.8, + "#C2DF23", + 0.9, + "#FDE725" + ] + } + } + ] +} \ No newline at end of file diff --git a/src/style.css b/src/style.css new file mode 100644 index 0000000..bd6213e --- /dev/null +++ b/src/style.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; \ No newline at end of file diff --git a/tailwind.config.cjs b/tailwind.config.cjs new file mode 100644 index 0000000..4865937 --- /dev/null +++ b/tailwind.config.cjs @@ -0,0 +1,24 @@ +/** @type {import('tailwindcss').Config} */ + +const defaultTheme = require('tailwindcss/defaultTheme') + +module.exports = { + content: [ + "./index.html", + "./src/**/*.{js,ts,jsx,tsx}" + ], + theme: { + extend: { + fontFamily: { + // 'sans': ['Ubuntu', ...defaultTheme.fontFamily.sans], + }, + fontSize: { + sm: '0.8rem', + base: '1rem' + } + }, + }, + plugins: [ + require('@tailwindcss/forms'), + ], +} diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..5a33944 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +})