@@ -110,10 +110,12 @@ const CompactSection = () => {
leaders of our communities, we believe current residents must have housing options they can afford in the communities where they live, and that
newcomers looking to live and work in the region should be able to make a home here. Toward these ends, we pledge to work together – and in
partnership with the Commonwealth – to increase housing opportunity in Metro Boston in accordance with{" "}
-
diff --git a/src/sass/index.scss b/src/sass/index.scss
index bd13875..83f6677 100644
--- a/src/sass/index.scss
+++ b/src/sass/index.scss
@@ -1,3 +1,4 @@
+@import '~bootstrap/scss/bootstrap';
@import 'partials/all';
@import 'Header';
diff --git a/yarn.lock b/yarn.lock
index 95f7678..75156b5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -18,15 +18,15 @@
"@babel/highlight" "^7.25.7"
picocolors "^1.0.0"
-"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.7":
- version "7.25.7"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.7.tgz#b8479fe0018ef0ac87b6b7a5c6916fcd67ae2c9c"
- integrity sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==
+"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.7", "@babel/compat-data@^7.25.8":
+ version "7.25.8"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.8.tgz#0376e83df5ab0eb0da18885c0140041f0747a402"
+ integrity sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==
"@babel/core@^7.25.7":
- version "7.25.7"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.7.tgz#1b3d144157575daf132a3bc80b2b18e6e3ca6ece"
- integrity sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==
+ version "7.25.8"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.8.tgz#a57137d2a51bbcffcfaeba43cb4dd33ae3e0e1c6"
+ integrity sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==
dependencies:
"@ampproject/remapping" "^2.2.0"
"@babel/code-frame" "^7.25.7"
@@ -34,10 +34,10 @@
"@babel/helper-compilation-targets" "^7.25.7"
"@babel/helper-module-transforms" "^7.25.7"
"@babel/helpers" "^7.25.7"
- "@babel/parser" "^7.25.7"
+ "@babel/parser" "^7.25.8"
"@babel/template" "^7.25.7"
"@babel/traverse" "^7.25.7"
- "@babel/types" "^7.25.7"
+ "@babel/types" "^7.25.8"
convert-source-map "^2.0.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
@@ -146,7 +146,7 @@
dependencies:
"@babel/types" "^7.25.7"
-"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.7", "@babel/helper-plugin-utils@^7.8.0":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz#8ec5b21812d992e1ef88a9b068260537b6f0e36c"
integrity sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==
@@ -227,12 +227,12 @@
js-tokens "^4.0.0"
picocolors "^1.0.0"
-"@babel/parser@^7.25.7":
- version "7.25.7"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.7.tgz#99b927720f4ddbfeb8cd195a363ed4532f87c590"
- integrity sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==
+"@babel/parser@^7.25.7", "@babel/parser@^7.25.8":
+ version "7.25.8"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.8.tgz#f6aaf38e80c36129460c1657c0762db584c9d5e2"
+ integrity sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==
dependencies:
- "@babel/types" "^7.25.7"
+ "@babel/types" "^7.25.8"
"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.7":
version "7.25.7"
@@ -289,41 +289,6 @@
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703"
integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==
-"@babel/plugin-syntax-async-generators@^7.8.4":
- version "7.8.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
- integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-class-properties@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
- integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
-
-"@babel/plugin-syntax-class-static-block@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
- integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.14.5"
-
-"@babel/plugin-syntax-dynamic-import@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
- integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-export-namespace-from@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
- integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
-
"@babel/plugin-syntax-import-assertions@^7.25.7":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.7.tgz#8ce248f9f4ed4b7ed4cb2e0eb4ed9efd9f52921f"
@@ -338,20 +303,6 @@
dependencies:
"@babel/helper-plugin-utils" "^7.25.7"
-"@babel/plugin-syntax-import-meta@^7.10.4":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
- integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-json-strings@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
- integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
"@babel/plugin-syntax-jsx@^7.25.7":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.7.tgz#5352d398d11ea5e7ef330c854dea1dae0bf18165"
@@ -359,27 +310,6 @@
dependencies:
"@babel/helper-plugin-utils" "^7.25.7"
-"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
- integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
- integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-numeric-separator@^7.10.4":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
- integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
"@babel/plugin-syntax-object-rest-spread@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
@@ -387,34 +317,6 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
- integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-optional-chaining@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
- integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-private-property-in-object@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
- integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.14.5"
-
-"@babel/plugin-syntax-top-level-await@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
- integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.14.5"
-
"@babel/plugin-syntax-unicode-sets-regex@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357"
@@ -430,14 +332,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.25.7"
-"@babel/plugin-transform-async-generator-functions@^7.25.7":
- version "7.25.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.7.tgz#af61a02b30d7bff5108c63bd39ac7938403426d7"
- integrity sha512-4B6OhTrwYKHYYgcwErvZjbmH9X5TxQBsaBHdzEIB4l71gR5jh/tuHGlb9in47udL2+wVUcOz5XXhhfhVJwEpEg==
+"@babel/plugin-transform-async-generator-functions@^7.25.8":
+ version "7.25.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.8.tgz#3331de02f52cc1f2c75b396bec52188c85b0b1ec"
+ integrity sha512-9ypqkozyzpG+HxlH4o4gdctalFGIjjdufzo7I2XPda0iBnZ6a+FO0rIEQcdSPXp02CkvGsII1exJhmROPQd5oA==
dependencies:
"@babel/helper-plugin-utils" "^7.25.7"
"@babel/helper-remap-async-to-generator" "^7.25.7"
- "@babel/plugin-syntax-async-generators" "^7.8.4"
"@babel/traverse" "^7.25.7"
"@babel/plugin-transform-async-to-generator@^7.25.7":
@@ -471,14 +372,13 @@
"@babel/helper-create-class-features-plugin" "^7.25.7"
"@babel/helper-plugin-utils" "^7.25.7"
-"@babel/plugin-transform-class-static-block@^7.25.7":
- version "7.25.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.25.7.tgz#d2cf3c812e3b3162d56aadf4566f45c30538cb2c"
- integrity sha512-rvUUtoVlkDWtDWxGAiiQj0aNktTPn3eFynBcMC2IhsXweehwgdI9ODe+XjWw515kEmv22sSOTp/rxIRuTiB7zg==
+"@babel/plugin-transform-class-static-block@^7.25.8":
+ version "7.25.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.25.8.tgz#a8af22028920fe404668031eceb4c3aadccb5262"
+ integrity sha512-e82gl3TCorath6YLf9xUwFehVvjvfqFhdOo4+0iVIVju+6XOi5XHkqB3P2AXnSwoeTX0HBoXq5gJFtvotJzFnQ==
dependencies:
"@babel/helper-create-class-features-plugin" "^7.25.7"
"@babel/helper-plugin-utils" "^7.25.7"
- "@babel/plugin-syntax-class-static-block" "^7.14.5"
"@babel/plugin-transform-classes@^7.25.7":
version "7.25.7"
@@ -530,13 +430,12 @@
"@babel/helper-create-regexp-features-plugin" "^7.25.7"
"@babel/helper-plugin-utils" "^7.25.7"
-"@babel/plugin-transform-dynamic-import@^7.25.7":
- version "7.25.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.7.tgz#31905ab2cfa94dcf1b1f8ce66096720b2908e518"
- integrity sha512-UvcLuual4h7/GfylKm2IAA3aph9rwvAM2XBA0uPKU3lca+Maai4jBjjEVUS568ld6kJcgbouuumCBhMd/Yz17w==
+"@babel/plugin-transform-dynamic-import@^7.25.8":
+ version "7.25.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.8.tgz#f1edbe75b248cf44c70c8ca8ed3818a668753aaa"
+ integrity sha512-gznWY+mr4ZQL/EWPcbBQUP3BXS5FwZp8RUOw06BaRn8tQLzN4XLIxXejpHN9Qo8x8jjBmAAKp6FoS51AgkSA/A==
dependencies:
"@babel/helper-plugin-utils" "^7.25.7"
- "@babel/plugin-syntax-dynamic-import" "^7.8.3"
"@babel/plugin-transform-exponentiation-operator@^7.25.7":
version "7.25.7"
@@ -546,13 +445,12 @@
"@babel/helper-builder-binary-assignment-operator-visitor" "^7.25.7"
"@babel/helper-plugin-utils" "^7.25.7"
-"@babel/plugin-transform-export-namespace-from@^7.25.7":
- version "7.25.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.7.tgz#beb2679db6fd3bdfe6ad6de2c8cac84a86ef2da1"
- integrity sha512-h3MDAP5l34NQkkNulsTNyjdaR+OiB0Im67VU//sFupouP8Q6m9Spy7l66DcaAQxtmCqGdanPByLsnwFttxKISQ==
+"@babel/plugin-transform-export-namespace-from@^7.25.8":
+ version "7.25.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.8.tgz#d1988c3019a380b417e0516418b02804d3858145"
+ integrity sha512-sPtYrduWINTQTW7FtOy99VCTWp4H23UX7vYcut7S4CIMEXU+54zKX9uCoGkLsWXteyaMXzVHgzWbLfQ1w4GZgw==
dependencies:
"@babel/helper-plugin-utils" "^7.25.7"
- "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
"@babel/plugin-transform-for-of@^7.25.7":
version "7.25.7"
@@ -571,13 +469,12 @@
"@babel/helper-plugin-utils" "^7.25.7"
"@babel/traverse" "^7.25.7"
-"@babel/plugin-transform-json-strings@^7.25.7":
- version "7.25.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.7.tgz#6626433554aff4bd6f76a2c621a1f40e802dfb0a"
- integrity sha512-Ot43PrL9TEAiCe8C/2erAjXMeVSnE/BLEx6eyrKLNFCCw5jvhTHKyHxdI1pA0kz5njZRYAnMO2KObGqOCRDYSA==
+"@babel/plugin-transform-json-strings@^7.25.8":
+ version "7.25.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.8.tgz#6fb3ec383a2ea92652289fdba653e3f9de722694"
+ integrity sha512-4OMNv7eHTmJ2YXs3tvxAfa/I43di+VcF+M4Wt66c88EAED1RoGaf1D64cL5FkRpNL+Vx9Hds84lksWvd/wMIdA==
dependencies:
"@babel/helper-plugin-utils" "^7.25.7"
- "@babel/plugin-syntax-json-strings" "^7.8.3"
"@babel/plugin-transform-literals@^7.25.7":
version "7.25.7"
@@ -586,13 +483,12 @@
dependencies:
"@babel/helper-plugin-utils" "^7.25.7"
-"@babel/plugin-transform-logical-assignment-operators@^7.25.7":
- version "7.25.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.7.tgz#93847feb513a1f191c5f5d903d991a0ee24fe99b"
- integrity sha512-iImzbA55BjiovLyG2bggWS+V+OLkaBorNvc/yJoeeDQGztknRnDdYfp2d/UPmunZYEnZi6Lg8QcTmNMHOB0lGA==
+"@babel/plugin-transform-logical-assignment-operators@^7.25.8":
+ version "7.25.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.8.tgz#01868ff92daa9e525b4c7902aa51979082a05710"
+ integrity sha512-f5W0AhSbbI+yY6VakT04jmxdxz+WsID0neG7+kQZbCOjuyJNdL5Nn4WIBm4hRpKnUcO9lP0eipUhFN12JpoH8g==
dependencies:
"@babel/helper-plugin-utils" "^7.25.7"
- "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
"@babel/plugin-transform-member-expression-literals@^7.25.7":
version "7.25.7"
@@ -651,30 +547,27 @@
dependencies:
"@babel/helper-plugin-utils" "^7.25.7"
-"@babel/plugin-transform-nullish-coalescing-operator@^7.25.7":
- version "7.25.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.7.tgz#0af84b86d4332654c43cf028dbdcf878b00ac168"
- integrity sha512-FbuJ63/4LEL32mIxrxwYaqjJxpbzxPVQj5a+Ebrc8JICV6YX8nE53jY+K0RZT3um56GoNWgkS2BQ/uLGTjtwfw==
+"@babel/plugin-transform-nullish-coalescing-operator@^7.25.8":
+ version "7.25.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.8.tgz#befb4900c130bd52fccf2b926314557987f1b552"
+ integrity sha512-Z7WJJWdQc8yCWgAmjI3hyC+5PXIubH9yRKzkl9ZEG647O9szl9zvmKLzpbItlijBnVhTUf1cpyWBsZ3+2wjWPQ==
dependencies:
"@babel/helper-plugin-utils" "^7.25.7"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
-"@babel/plugin-transform-numeric-separator@^7.25.7":
- version "7.25.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.7.tgz#a516b78f894d1c08283f39d809b2048fd2f29448"
- integrity sha512-8CbutzSSh4hmD+jJHIA8vdTNk15kAzOnFLVVgBSMGr28rt85ouT01/rezMecks9pkU939wDInImwCKv4ahU4IA==
+"@babel/plugin-transform-numeric-separator@^7.25.8":
+ version "7.25.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.8.tgz#91e370486371637bd42161052f2602c701386891"
+ integrity sha512-rm9a5iEFPS4iMIy+/A/PiS0QN0UyjPIeVvbU5EMZFKJZHt8vQnasbpo3T3EFcxzCeYO0BHfc4RqooCZc51J86Q==
dependencies:
"@babel/helper-plugin-utils" "^7.25.7"
- "@babel/plugin-syntax-numeric-separator" "^7.10.4"
-"@babel/plugin-transform-object-rest-spread@^7.25.7":
- version "7.25.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.7.tgz#fa0916521be96fd434e2db59780b24b308c6d169"
- integrity sha512-1JdVKPhD7Y5PvgfFy0Mv2brdrolzpzSoUq2pr6xsR+m+3viGGeHEokFKsCgOkbeFOQxfB1Vt2F0cPJLRpFI4Zg==
+"@babel/plugin-transform-object-rest-spread@^7.25.8":
+ version "7.25.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.8.tgz#0904ac16bcce41df4db12d915d6780f85c7fb04b"
+ integrity sha512-LkUu0O2hnUKHKE7/zYOIjByMa4VRaV2CD/cdGz0AxU9we+VA3kDDggKEzI0Oz1IroG+6gUP6UmWEHBMWZU316g==
dependencies:
"@babel/helper-compilation-targets" "^7.25.7"
"@babel/helper-plugin-utils" "^7.25.7"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
"@babel/plugin-transform-parameters" "^7.25.7"
"@babel/plugin-transform-object-super@^7.25.7":
@@ -685,22 +578,20 @@
"@babel/helper-plugin-utils" "^7.25.7"
"@babel/helper-replace-supers" "^7.25.7"
-"@babel/plugin-transform-optional-catch-binding@^7.25.7":
- version "7.25.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.7.tgz#400e2d891f9288f5231694234696aa67164e4913"
- integrity sha512-m9obYBA39mDPN7lJzD5WkGGb0GO54PPLXsbcnj1Hyeu8mSRz7Gb4b1A6zxNX32ZuUySDK4G6it8SDFWD1nCnqg==
+"@babel/plugin-transform-optional-catch-binding@^7.25.8":
+ version "7.25.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.8.tgz#2649b86a3bb202c6894ec81a6ddf41b94d8f3103"
+ integrity sha512-EbQYweoMAHOn7iJ9GgZo14ghhb9tTjgOc88xFgYngifx7Z9u580cENCV159M4xDh3q/irbhSjZVpuhpC2gKBbg==
dependencies:
"@babel/helper-plugin-utils" "^7.25.7"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
-"@babel/plugin-transform-optional-chaining@^7.25.7":
- version "7.25.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.7.tgz#b7f7c9321aa1d8414e67799c28d87c23682e4d68"
- integrity sha512-h39agClImgPWg4H8mYVAbD1qP9vClFbEjqoJmt87Zen8pjqK8FTPUwrOXAvqu5soytwxrLMd2fx2KSCp2CHcNg==
+"@babel/plugin-transform-optional-chaining@^7.25.7", "@babel/plugin-transform-optional-chaining@^7.25.8":
+ version "7.25.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.8.tgz#f46283b78adcc5b6ab988a952f989e7dce70653f"
+ integrity sha512-q05Bk7gXOxpTHoQ8RSzGSh/LHVB9JEIkKnk3myAWwZHnYiTGYtbdrYkIsS8Xyh4ltKf7GNUSgzs/6P2bJtBAQg==
dependencies:
"@babel/helper-plugin-utils" "^7.25.7"
"@babel/helper-skip-transparent-expression-wrappers" "^7.25.7"
- "@babel/plugin-syntax-optional-chaining" "^7.8.3"
"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.25.7":
version "7.25.7"
@@ -717,15 +608,14 @@
"@babel/helper-create-class-features-plugin" "^7.25.7"
"@babel/helper-plugin-utils" "^7.25.7"
-"@babel/plugin-transform-private-property-in-object@^7.25.7":
- version "7.25.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.7.tgz#aff877efd05b57c4ad04611d8de97bf155a53369"
- integrity sha512-LzA5ESzBy7tqj00Yjey9yWfs3FKy4EmJyKOSWld144OxkTji81WWnUT8nkLUn+imN/zHL8ZQlOu/MTUAhHaX3g==
+"@babel/plugin-transform-private-property-in-object@^7.25.8":
+ version "7.25.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.8.tgz#1234f856ce85e061f9688764194e51ea7577c434"
+ integrity sha512-8Uh966svuB4V8RHHg0QJOB32QK287NBksJOByoKmHMp1TAobNniNalIkI2i5IPj5+S9NYCG4VIjbEuiSN8r+ow==
dependencies:
"@babel/helper-annotate-as-pure" "^7.25.7"
"@babel/helper-create-class-features-plugin" "^7.25.7"
"@babel/helper-plugin-utils" "^7.25.7"
- "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
"@babel/plugin-transform-property-literals@^7.25.7":
version "7.25.7"
@@ -850,11 +740,11 @@
"@babel/helper-plugin-utils" "^7.25.7"
"@babel/preset-env@^7.25.7":
- version "7.25.7"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.25.7.tgz#fc1b092152db4b58377b85dc05c890081c1157e0"
- integrity sha512-Gibz4OUdyNqqLj+7OAvBZxOD7CklCtMA5/j0JgUEwOnaRULsPDXmic2iKxL2DX2vQduPR5wH2hjZas/Vr/Oc0g==
+ version "7.25.8"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.25.8.tgz#dc6b719627fb29cd9cccbbbe041802fd575b524c"
+ integrity sha512-58T2yulDHMN8YMUxiLq5YmWUnlDCyY1FsHM+v12VMx+1/FlrUj5tY50iDCpofFQEM8fMYOaY9YRvym2jcjn1Dg==
dependencies:
- "@babel/compat-data" "^7.25.7"
+ "@babel/compat-data" "^7.25.8"
"@babel/helper-compilation-targets" "^7.25.7"
"@babel/helper-plugin-utils" "^7.25.7"
"@babel/helper-validator-option" "^7.25.7"
@@ -864,45 +754,30 @@
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.25.7"
"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.7"
"@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2"
- "@babel/plugin-syntax-async-generators" "^7.8.4"
- "@babel/plugin-syntax-class-properties" "^7.12.13"
- "@babel/plugin-syntax-class-static-block" "^7.14.5"
- "@babel/plugin-syntax-dynamic-import" "^7.8.3"
- "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
"@babel/plugin-syntax-import-assertions" "^7.25.7"
"@babel/plugin-syntax-import-attributes" "^7.25.7"
- "@babel/plugin-syntax-import-meta" "^7.10.4"
- "@babel/plugin-syntax-json-strings" "^7.8.3"
- "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
- "@babel/plugin-syntax-numeric-separator" "^7.10.4"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
- "@babel/plugin-syntax-optional-chaining" "^7.8.3"
- "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
- "@babel/plugin-syntax-top-level-await" "^7.14.5"
"@babel/plugin-syntax-unicode-sets-regex" "^7.18.6"
"@babel/plugin-transform-arrow-functions" "^7.25.7"
- "@babel/plugin-transform-async-generator-functions" "^7.25.7"
+ "@babel/plugin-transform-async-generator-functions" "^7.25.8"
"@babel/plugin-transform-async-to-generator" "^7.25.7"
"@babel/plugin-transform-block-scoped-functions" "^7.25.7"
"@babel/plugin-transform-block-scoping" "^7.25.7"
"@babel/plugin-transform-class-properties" "^7.25.7"
- "@babel/plugin-transform-class-static-block" "^7.25.7"
+ "@babel/plugin-transform-class-static-block" "^7.25.8"
"@babel/plugin-transform-classes" "^7.25.7"
"@babel/plugin-transform-computed-properties" "^7.25.7"
"@babel/plugin-transform-destructuring" "^7.25.7"
"@babel/plugin-transform-dotall-regex" "^7.25.7"
"@babel/plugin-transform-duplicate-keys" "^7.25.7"
"@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.7"
- "@babel/plugin-transform-dynamic-import" "^7.25.7"
+ "@babel/plugin-transform-dynamic-import" "^7.25.8"
"@babel/plugin-transform-exponentiation-operator" "^7.25.7"
- "@babel/plugin-transform-export-namespace-from" "^7.25.7"
+ "@babel/plugin-transform-export-namespace-from" "^7.25.8"
"@babel/plugin-transform-for-of" "^7.25.7"
"@babel/plugin-transform-function-name" "^7.25.7"
- "@babel/plugin-transform-json-strings" "^7.25.7"
+ "@babel/plugin-transform-json-strings" "^7.25.8"
"@babel/plugin-transform-literals" "^7.25.7"
- "@babel/plugin-transform-logical-assignment-operators" "^7.25.7"
+ "@babel/plugin-transform-logical-assignment-operators" "^7.25.8"
"@babel/plugin-transform-member-expression-literals" "^7.25.7"
"@babel/plugin-transform-modules-amd" "^7.25.7"
"@babel/plugin-transform-modules-commonjs" "^7.25.7"
@@ -910,15 +785,15 @@
"@babel/plugin-transform-modules-umd" "^7.25.7"
"@babel/plugin-transform-named-capturing-groups-regex" "^7.25.7"
"@babel/plugin-transform-new-target" "^7.25.7"
- "@babel/plugin-transform-nullish-coalescing-operator" "^7.25.7"
- "@babel/plugin-transform-numeric-separator" "^7.25.7"
- "@babel/plugin-transform-object-rest-spread" "^7.25.7"
+ "@babel/plugin-transform-nullish-coalescing-operator" "^7.25.8"
+ "@babel/plugin-transform-numeric-separator" "^7.25.8"
+ "@babel/plugin-transform-object-rest-spread" "^7.25.8"
"@babel/plugin-transform-object-super" "^7.25.7"
- "@babel/plugin-transform-optional-catch-binding" "^7.25.7"
- "@babel/plugin-transform-optional-chaining" "^7.25.7"
+ "@babel/plugin-transform-optional-catch-binding" "^7.25.8"
+ "@babel/plugin-transform-optional-chaining" "^7.25.8"
"@babel/plugin-transform-parameters" "^7.25.7"
"@babel/plugin-transform-private-methods" "^7.25.7"
- "@babel/plugin-transform-private-property-in-object" "^7.25.7"
+ "@babel/plugin-transform-private-property-in-object" "^7.25.8"
"@babel/plugin-transform-property-literals" "^7.25.7"
"@babel/plugin-transform-regenerator" "^7.25.7"
"@babel/plugin-transform-reserved-words" "^7.25.7"
@@ -959,7 +834,7 @@
"@babel/plugin-transform-react-jsx-development" "^7.25.7"
"@babel/plugin-transform-react-pure-annotations" "^7.25.7"
-"@babel/runtime@^7.8.4":
+"@babel/runtime@^7.21.0", "@babel/runtime@^7.24.7", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.7.tgz#7ffb53c37a8f247c8c4d335e89cdf16a2e0d0fb6"
integrity sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==
@@ -988,10 +863,10 @@
debug "^4.3.1"
globals "^11.1.0"
-"@babel/types@^7.25.7", "@babel/types@^7.4.4":
- version "7.25.7"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.7.tgz#1b7725c1d3a59f328cb700ce704c46371e6eef9b"
- integrity sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==
+"@babel/types@^7.25.7", "@babel/types@^7.25.8", "@babel/types@^7.4.4":
+ version "7.25.8"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.8.tgz#5cf6037258e8a9bcad533f4979025140cb9993e1"
+ integrity sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==
dependencies:
"@babel/helper-string-parser" "^7.25.7"
"@babel/helper-validator-identifier" "^7.25.7"
@@ -1023,10 +898,10 @@
debug "^4.3.1"
minimatch "^3.1.2"
-"@eslint/core@^0.6.0":
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.6.0.tgz#9930b5ba24c406d67a1760e94cdbac616a6eb674"
- integrity sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==
+"@eslint/core@^0.7.0":
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.7.0.tgz#a1bb4b6a4e742a5ff1894b7ee76fbf884ec72bd3"
+ integrity sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==
"@eslint/eslintrc@^3.1.0":
version "3.1.0"
@@ -1043,15 +918,10 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
-"@eslint/js@9.11.1":
- version "9.11.1"
- resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.11.1.tgz#8bcb37436f9854b3d9a561440daf916acd940986"
- integrity sha512-/qu+TWz8WwPWc7/HcIJKi+c+MOm46GdVaSlTTQcaqaL53+GsoA6MxWp5PtTx48qbSP7ylM1Kn7nhvkugfJvRSA==
-
-"@eslint/js@^9.9.0":
- version "9.12.0"
- resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.12.0.tgz#69ca3ca9fab9a808ec6d67b8f6edb156cbac91e1"
- integrity sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==
+"@eslint/js@9.13.0", "@eslint/js@^9.9.0":
+ version "9.13.0"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.13.0.tgz#c5f89bcd57eb54d5d4fa8b77693e9c28dc97e547"
+ integrity sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==
"@eslint/object-schema@^2.1.4":
version "2.1.4"
@@ -1059,21 +929,34 @@
integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==
"@eslint/plugin-kit@^0.2.0":
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz#8712dccae365d24e9eeecb7b346f85e750ba343d"
- integrity sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.1.tgz#cd14fe2db79fa639839dfef4105e83bad1814482"
+ integrity sha512-HFZ4Mp26nbWk9d/BpvP0YNL6W4UoZF0VFcTw/aPPA8RpOxeFQgK+ClABGgAUXs9Y/RGX/l1vOmrqz1MQt9MNuw==
dependencies:
levn "^0.4.1"
+"@humanfs/core@^0.19.0":
+ version "0.19.0"
+ resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.0.tgz#08db7a8c73bb07673d9ebd925f2dad746411fcec"
+ integrity sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==
+
+"@humanfs/node@^0.16.5":
+ version "0.16.5"
+ resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.5.tgz#a9febb7e7ad2aff65890fdc630938f8d20aa84ba"
+ integrity sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==
+ dependencies:
+ "@humanfs/core" "^0.19.0"
+ "@humanwhocodes/retry" "^0.3.0"
+
"@humanwhocodes/module-importer@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
-"@humanwhocodes/retry@^0.3.0":
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.0.tgz#6d86b8cb322660f03d3f0aa94b99bdd8e172d570"
- integrity sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==
+"@humanwhocodes/retry@^0.3.0", "@humanwhocodes/retry@^0.3.1":
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a"
+ integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==
"@jridgewell/gen-mapping@^0.3.5":
version "0.3.5"
@@ -1131,16 +1014,23 @@
thingies "^1.20.0"
"@jsonjoy.com/util@^1.1.2", "@jsonjoy.com/util@^1.3.0":
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.3.0.tgz#e5623885bb5e0c48c1151e4dae422fb03a5887a1"
- integrity sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.5.0.tgz#6008e35b9d9d8ee27bc4bfaa70c8cbf33a537b4c"
+ integrity sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==
"@leichtgewicht/ip-codec@^2.0.1":
version "2.0.5"
resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1"
integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==
-"@mapc/eslint-config@^1.0.2":
+"@mapc/airtable-cms@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@mapc/airtable-cms/-/airtable-cms-1.0.0.tgz#45fe54f43ff10455ba79282fea9f385074f80ad6"
+ integrity sha512-1c2FMkVvxzMxBrzTJ4E+JhZfyYov3olsSnqG8KSX1lsxnr5C2H981YVjOVTWt2iN43k5YGrnke+Sk45wjmp9aA==
+ dependencies:
+ airtable "^0.12.2"
+
+"@mapc/eslint-config@^1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@mapc/eslint-config/-/eslint-config-1.0.4.tgz#0d25f7fe0d2715fb0370872f13c01c310ea612cf"
integrity sha512-gJZDtSn1eFE0DXw0d+bkhnAYTA7pjVNhNltiw1HnEegqb3PT4glnI8MsIzL56gnusx0HJL9v5fRukX6v5IORcA==
@@ -1166,7 +1056,7 @@
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
-"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
+"@nodelib/fs.walk@^1.2.3":
version "1.2.8"
resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
@@ -1174,11 +1064,45 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
+"@popperjs/core@^2.11.6":
+ version "2.11.8"
+ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f"
+ integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
+
+"@react-aria/ssr@^3.5.0":
+ version "3.9.6"
+ resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.9.6.tgz#a9e8b351acdc8238f2b5215b0ce904636c6ea690"
+ integrity sha512-iLo82l82ilMiVGy342SELjshuWottlb5+VefO3jOQqQRNYnJBFpUSadswDPbRimSgJUZuFwIEYs6AabkP038fA==
+ dependencies:
+ "@swc/helpers" "^0.5.0"
+
"@remix-run/router@1.19.2":
version "1.19.2"
resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.19.2.tgz#0c896535473291cb41f152c180bedd5680a3b273"
integrity sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA==
+"@restart/hooks@^0.4.9":
+ version "0.4.16"
+ resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.4.16.tgz#95ae8ac1cc7e2bd4fed5e39800ff85604c6d59fb"
+ integrity sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w==
+ dependencies:
+ dequal "^2.0.3"
+
+"@restart/ui@^1.6.9":
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/@restart/ui/-/ui-1.8.0.tgz#3e8d80822b5fbef0576f94acda51d7da9e79e005"
+ integrity sha512-xJEOXUOTmT4FngTmhdjKFRrVVF0hwCLNPdatLCHkyS4dkiSK12cEu1Y0fjxktjJrdst9jJIc5J6ihMJCoWEN/g==
+ dependencies:
+ "@babel/runtime" "^7.21.0"
+ "@popperjs/core" "^2.11.6"
+ "@react-aria/ssr" "^3.5.0"
+ "@restart/hooks" "^0.4.9"
+ "@types/warning" "^3.0.0"
+ dequal "^2.0.3"
+ dom-helpers "^5.2.0"
+ uncontrollable "^8.0.1"
+ warning "^4.0.3"
+
"@rtsao/scc@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8"
@@ -1189,6 +1113,13 @@
resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz#719df7fb41766bc143369eaa0dd56d8dc87c9958"
integrity sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==
+"@swc/helpers@^0.5.0":
+ version "0.5.13"
+ resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.13.tgz#33e63ff3cd0cade557672bd7888a39ce7d115a8c"
+ integrity sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==
+ dependencies:
+ tslib "^2.4.0"
+
"@types/body-parser@*":
version "1.19.5"
resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4"
@@ -1332,9 +1263,9 @@
"@types/node" "*"
"@types/node@*":
- version "22.7.4"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.4.tgz#e35d6f48dca3255ce44256ddc05dee1c23353fcc"
- integrity sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==
+ version "22.7.6"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.6.tgz#3ec3e2b071e136cd11093c19128405e1d1f92f33"
+ integrity sha512-/d7Rnj0/ExXDMcioS78/kf1lMzYk4BZV8MZGTBKzTGZ6/406ukkbYlIsZmMPhcR5KlkunDHQLrtAVmSq7r+mSw==
dependencies:
undici-types "~6.19.2"
@@ -1343,6 +1274,11 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.63.tgz#1788fa8da838dbb5f9ea994b834278205db6ca2b"
integrity sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==
+"@types/prop-types@*":
+ version "15.7.13"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.13.tgz#2af91918ee12d9d32914feb13f5326658461b451"
+ integrity sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==
+
"@types/qs@*":
version "6.9.16"
resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.16.tgz#52bba125a07c0482d26747d5d4947a64daf8f794"
@@ -1353,6 +1289,21 @@
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb"
integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==
+"@types/react-transition-group@^4.4.6":
+ version "4.4.11"
+ resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.11.tgz#d963253a611d757de01ebb241143b1017d5d63d5"
+ integrity sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react@*", "@types/react@>=16.9.11":
+ version "18.3.11"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.11.tgz#9d530601ff843ee0d7030d4227ea4360236bd537"
+ integrity sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==
+ dependencies:
+ "@types/prop-types" "*"
+ csstype "^3.0.2"
+
"@types/retry@0.12.2":
version "0.12.2"
resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a"
@@ -1399,6 +1350,11 @@
resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4"
integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==
+"@types/warning@^3.0.0":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@types/warning/-/warning-3.0.3.tgz#d1884c8cc4a426d1ac117ca2611bf333834c6798"
+ integrity sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q==
+
"@types/ws@^8.5.10":
version "8.5.12"
resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.12.tgz#619475fe98f35ccca2a2f6c137702d85ec247b7e"
@@ -1588,9 +1544,9 @@ acorn-jsx@^5.3.2:
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
acorn@^8.12.0, acorn@^8.7.1, acorn@^8.8.2:
- version "8.12.1"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248"
- integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==
+ version "8.13.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.13.0.tgz#2a30d670818ad16ddd6a35d3842dacec9e5d7ca3"
+ integrity sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==
airtable@^0.12.2:
version "0.12.2"
@@ -1652,11 +1608,6 @@ ansi-regex@^2.0.0:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==
-ansi-regex@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
- integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
-
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
@@ -1803,9 +1754,9 @@ available-typed-arrays@^1.0.7:
possible-typed-array-names "^1.0.0"
axe-core@^4.10.0:
- version "4.10.0"
- resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.0.tgz#d9e56ab0147278272739a000880196cdfe113b59"
- integrity sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==
+ version "4.10.1"
+ resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.1.tgz#7d2589b0183f05b0f23e55c2f4cdf97b5bdc66d9"
+ integrity sha512-qPC9o+kD8Tir0lzNGLeghbOrWMr3ZJpaRlCIb6Uobt/7N4FiEDvqUMnxzCHRHmg8vOg14kr5gVNyScRmbMaJ9g==
axobject-query@^4.1.0:
version "4.1.0"
@@ -2491,6 +2442,11 @@ bonjour-service@^1.2.1:
fast-deep-equal "^3.1.3"
multicast-dns "^7.2.5"
+bootstrap@^5.3.3:
+ version "5.3.3"
+ resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.3.tgz#de35e1a765c897ac940021900fcbb831602bac38"
+ integrity sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==
+
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -2563,9 +2519,9 @@ callsites@^3.0.0:
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001663:
- version "1.0.30001666"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001666.tgz#112d77e80f1762f62a1b71ba92164e0cb3f3dd13"
- integrity sha512-gD14ICmoV5ZZM1OdzPWmpx+q4GyefaK06zi8hmfHV5xe4/2nOQX3+Dw5o+fSqOws2xVwL9j+anOPFwHzdEdV4g==
+ version "1.0.30001669"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz#fda8f1d29a8bfdc42de0c170d7f34a9cf19ed7a3"
+ integrity sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==
ccount@^2.0.0:
version "2.0.1"
@@ -2620,7 +2576,7 @@ character-reference-invalid@^2.0.0:
resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9"
integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==
-chokidar@^3.6.0:
+"chokidar@>=3.0.0 <4.0.0", chokidar@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
@@ -2635,18 +2591,16 @@ chokidar@^3.6.0:
optionalDependencies:
fsevents "~2.3.2"
-chokidar@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.1.tgz#4a6dff66798fb0f72a94f616abbd7e1a19f31d41"
- integrity sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==
- dependencies:
- readdirp "^4.0.1"
-
chrome-trace-event@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b"
integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==
+classnames@^2.3.2:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b"
+ integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==
+
clone-deep@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
@@ -2767,10 +2721,10 @@ cookie-signature@1.0.6:
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
-cookie@0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051"
- integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==
+cookie@0.7.1:
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9"
+ integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==
copy-webpack-plugin@^12.0.2:
version "12.0.2"
@@ -2834,6 +2788,11 @@ cssesc@^3.0.0:
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+csstype@^3.0.2:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
+ integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
+
damerau-levenshtein@^1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7"
@@ -2969,7 +2928,7 @@ depd@~1.1.2:
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==
-dequal@^2.0.0:
+dequal@^2.0.0, dequal@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
@@ -3012,6 +2971,14 @@ doctrine@^2.1.0:
dependencies:
esutils "^2.0.2"
+dom-helpers@^5.0.1, dom-helpers@^5.2.0, dom-helpers@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902"
+ integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==
+ dependencies:
+ "@babel/runtime" "^7.8.7"
+ csstype "^3.0.2"
+
dotenv-defaults@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/dotenv-defaults/-/dotenv-defaults-2.0.2.tgz#6b3ec2e4319aafb70940abda72d3856770ee77ac"
@@ -3037,9 +3004,9 @@ ee-first@1.1.1:
integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
electron-to-chromium@^1.3.47, electron-to-chromium@^1.5.28:
- version "1.5.31"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.31.tgz#b1478418769dec72ea70d9fdf147a81491857f10"
- integrity sha512-QcDoBbQeYt0+3CWcK/rEbuHvwpbT/8SV9T3OSgs6cX1FlcUAkgrkqbg9zLnDrMM/rLamzQwal4LYFCiWk861Tg==
+ version "1.5.41"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.41.tgz#eae1ba6c49a1a61d84cf8263351d3513b2bcc534"
+ integrity sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==
emoji-regex@^9.2.2:
version "9.2.2"
@@ -3154,9 +3121,9 @@ es-get-iterator@^1.1.3:
stop-iteration-iterator "^1.0.0"
es-iterator-helpers@^1.0.19:
- version "1.0.19"
- resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz#117003d0e5fec237b4b5c08aded722e0c6d50ca8"
- integrity sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.1.0.tgz#f6d745d342aea214fe09497e7152170dc333a7a6"
+ integrity sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==
dependencies:
call-bind "^1.0.7"
define-properties "^1.2.1"
@@ -3165,12 +3132,12 @@ es-iterator-helpers@^1.0.19:
es-set-tostringtag "^2.0.3"
function-bind "^1.1.2"
get-intrinsic "^1.2.4"
- globalthis "^1.0.3"
+ globalthis "^1.0.4"
has-property-descriptors "^1.0.2"
has-proto "^1.0.3"
has-symbols "^1.0.3"
internal-slot "^1.0.7"
- iterator.prototype "^1.1.2"
+ iterator.prototype "^1.1.3"
safe-array-concat "^1.1.2"
es-module-lexer@^1.2.1:
@@ -3268,7 +3235,7 @@ eslint-import-resolver-node@^0.3.9:
is-core-module "^2.13.0"
resolve "^1.22.4"
-eslint-module-utils@^2.9.0:
+eslint-module-utils@^2.12.0:
version "2.12.0"
resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz#fe4cfb948d61f49203d7b08871982b65b9af0b0b"
integrity sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==
@@ -3276,9 +3243,9 @@ eslint-module-utils@^2.9.0:
debug "^3.2.7"
eslint-plugin-import@^2.30.0:
- version "2.30.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz#21ceea0fc462657195989dd780e50c92fe95f449"
- integrity sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==
+ version "2.31.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz#310ce7e720ca1d9c0bb3f69adfd1c6bdd7d9e0e7"
+ integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==
dependencies:
"@rtsao/scc" "^1.1.0"
array-includes "^3.1.8"
@@ -3288,7 +3255,7 @@ eslint-plugin-import@^2.30.0:
debug "^3.2.7"
doctrine "^2.1.0"
eslint-import-resolver-node "^0.3.9"
- eslint-module-utils "^2.9.0"
+ eslint-module-utils "^2.12.0"
hasown "^2.0.2"
is-core-module "^2.15.1"
is-glob "^4.0.3"
@@ -3297,6 +3264,7 @@ eslint-plugin-import@^2.30.0:
object.groupby "^1.0.3"
object.values "^1.2.0"
semver "^6.3.1"
+ string.prototype.trimend "^1.0.8"
tsconfig-paths "^3.15.0"
eslint-plugin-jsx-a11y@^6.10.0:
@@ -3373,7 +3341,7 @@ eslint-scope@5.1.1:
esrecurse "^4.3.0"
estraverse "^4.1.1"
-eslint-scope@^8.0.2:
+eslint-scope@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.1.0.tgz#70214a174d4cbffbc3e8a26911d8bf51b9ae9d30"
integrity sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==
@@ -3386,26 +3354,26 @@ eslint-visitor-keys@^3.3.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
-eslint-visitor-keys@^4.0.0, eslint-visitor-keys@^4.1.0:
+eslint-visitor-keys@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz#1f785cc5e81eb7534523d85922248232077d2f8c"
integrity sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==
eslint@^9.11.1:
- version "9.11.1"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.11.1.tgz#701e5fc528990153f9cef696d8427003b5206567"
- integrity sha512-MobhYKIoAO1s1e4VUrgx1l1Sk2JBR/Gqjjgw8+mfgoLE2xwsHur4gdfTxyTgShrhvdVFTaJSgMiQBl1jv/AWxg==
+ version "9.13.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.13.0.tgz#7659014b7dda1ff876ecbd990f726e11c61596e6"
+ integrity sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==
dependencies:
"@eslint-community/eslint-utils" "^4.2.0"
"@eslint-community/regexpp" "^4.11.0"
"@eslint/config-array" "^0.18.0"
- "@eslint/core" "^0.6.0"
+ "@eslint/core" "^0.7.0"
"@eslint/eslintrc" "^3.1.0"
- "@eslint/js" "9.11.1"
+ "@eslint/js" "9.13.0"
"@eslint/plugin-kit" "^0.2.0"
+ "@humanfs/node" "^0.16.5"
"@humanwhocodes/module-importer" "^1.0.1"
- "@humanwhocodes/retry" "^0.3.0"
- "@nodelib/fs.walk" "^1.2.8"
+ "@humanwhocodes/retry" "^0.3.1"
"@types/estree" "^1.0.6"
"@types/json-schema" "^7.0.15"
ajv "^6.12.4"
@@ -3413,9 +3381,9 @@ eslint@^9.11.1:
cross-spawn "^7.0.2"
debug "^4.3.2"
escape-string-regexp "^4.0.0"
- eslint-scope "^8.0.2"
- eslint-visitor-keys "^4.0.0"
- espree "^10.1.0"
+ eslint-scope "^8.1.0"
+ eslint-visitor-keys "^4.1.0"
+ espree "^10.2.0"
esquery "^1.5.0"
esutils "^2.0.2"
fast-deep-equal "^3.1.3"
@@ -3425,16 +3393,14 @@ eslint@^9.11.1:
ignore "^5.2.0"
imurmurhash "^0.1.4"
is-glob "^4.0.0"
- is-path-inside "^3.0.3"
json-stable-stringify-without-jsonify "^1.0.1"
lodash.merge "^4.6.2"
minimatch "^3.1.2"
natural-compare "^1.4.0"
optionator "^0.9.3"
- strip-ansi "^6.0.1"
text-table "^0.2.0"
-espree@^10.0.1, espree@^10.1.0:
+espree@^10.0.1, espree@^10.2.0:
version "10.2.0"
resolved "https://registry.yarnpkg.com/espree/-/espree-10.2.0.tgz#f4bcead9e05b0615c968e85f83816bc386a45df6"
integrity sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==
@@ -3498,16 +3464,16 @@ events@^3.2.0:
integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
express@^4.19.2:
- version "4.21.0"
- resolved "https://registry.yarnpkg.com/express/-/express-4.21.0.tgz#d57cb706d49623d4ac27833f1cbc466b668eb915"
- integrity sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==
+ version "4.21.1"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.21.1.tgz#9dae5dda832f16b4eec941a4e44aa89ec481b281"
+ integrity sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==
dependencies:
accepts "~1.3.8"
array-flatten "1.1.1"
body-parser "1.20.3"
content-disposition "0.5.4"
content-type "~1.0.4"
- cookie "0.6.0"
+ cookie "0.7.1"
cookie-signature "1.0.6"
debug "2.6.9"
depd "2.0.0"
@@ -3566,9 +3532,9 @@ fast-levenshtein@^2.0.6:
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
fast-uri@^3.0.1:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.2.tgz#d78b298cf70fd3b752fd951175a3da6a7b48f024"
- integrity sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.3.tgz#892a1c91802d5d7860de728f18608a0573142241"
+ integrity sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==
fastest-levenshtein@^1.0.12:
version "1.0.16"
@@ -3776,16 +3742,16 @@ globals@^14.0.0:
integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==
globals@^15.9.0:
- version "15.10.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-15.10.0.tgz#a7eab3886802da248ad8b6a9ccca6573ff899c9b"
- integrity sha512-tqFIbz83w4Y5TCbtgjZjApohbuh7K9BxGYFm7ifwDR240tvdb7P9x+/9VvUKlmkPoiknoJtanI8UOrqxS3a7lQ==
+ version "15.11.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-15.11.0.tgz#b96ed4c6998540c6fb824b24b5499216d2438d6e"
+ integrity sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==
globals@^9.18.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
-globalthis@^1.0.3:
+globalthis@^1.0.3, globalthis@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236"
integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==
@@ -3876,9 +3842,9 @@ hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2:
function-bind "^1.1.2"
hast-util-to-jsx-runtime@^2.0.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz#3ed27caf8dc175080117706bf7269404a0aa4f7c"
- integrity sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz#6d11b027473e69adeaa00ca4cfb5bb68e3d282fa"
+ integrity sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==
dependencies:
"@types/estree" "^1.0.0"
"@types/hast" "^3.0.0"
@@ -3963,9 +3929,9 @@ http-parser-js@>=0.5.1:
integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==
http-proxy-middleware@^2.0.3:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f"
- integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz#915f236d92ae98ef48278a95dedf17e991936ec6"
+ integrity sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==
dependencies:
"@types/http-proxy" "^1.17.8"
http-proxy "^1.18.1"
@@ -4064,7 +4030,7 @@ interpret@^3.1.1:
resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4"
integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==
-invariant@^2.2.2:
+invariant@^2.2.2, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
@@ -4245,11 +4211,6 @@ is-number@^7.0.0:
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-is-path-inside@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
- integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
-
is-plain-obj@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7"
@@ -4355,7 +4316,7 @@ isobject@^3.0.1:
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
-iterator.prototype@^1.1.2:
+iterator.prototype@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.3.tgz#016c2abe0be3bbdb8319852884f60908ac62bf9c"
integrity sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==
@@ -4758,9 +4719,9 @@ media-typer@0.3.0:
integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
memfs@^4.6.0:
- version "4.12.0"
- resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.12.0.tgz#76570478aee461695fb3336ca3356a7a8cfc26cc"
- integrity sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==
+ version "4.14.0"
+ resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.14.0.tgz#48d5e85a03ea0b428280003212fbca3063531be3"
+ integrity sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==
dependencies:
"@jsonjoy.com/json-pack" "^1.0.3"
"@jsonjoy.com/util" "^1.3.0"
@@ -5419,9 +5380,9 @@ path-type@^5.0.0:
integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==
picocolors@^1.0.0, picocolors@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59"
- integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
+ integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
version "2.3.1"
@@ -5517,7 +5478,15 @@ process-nextick-args@~2.0.0:
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
-prop-types@^15.7.2, prop-types@^15.8.1:
+prop-types-extra@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.1.tgz#58c3b74cbfbb95d304625975aa2f0848329a010b"
+ integrity sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==
+ dependencies:
+ react-is "^16.3.2"
+ warning "^4.0.0"
+
+prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1:
version "15.8.1"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
@@ -5578,6 +5547,24 @@ raw-body@2.5.2:
iconv-lite "0.4.24"
unpipe "1.0.0"
+react-bootstrap@^2.10.5:
+ version "2.10.5"
+ resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-2.10.5.tgz#2d3416fb4178d0f460ddafbfcab0aebfbbf1cf25"
+ integrity sha512-XueAOEn64RRkZ0s6yzUTdpFtdUXs5L5491QU//8ZcODKJNDLt/r01tNyriZccjgRImH1REynUc9pqjiRMpDLWQ==
+ dependencies:
+ "@babel/runtime" "^7.24.7"
+ "@restart/hooks" "^0.4.9"
+ "@restart/ui" "^1.6.9"
+ "@types/react-transition-group" "^4.4.6"
+ classnames "^2.3.2"
+ dom-helpers "^5.2.1"
+ invariant "^2.2.4"
+ prop-types "^15.8.1"
+ prop-types-extra "^1.1.0"
+ react-transition-group "^4.4.5"
+ uncontrollable "^7.2.1"
+ warning "^4.0.3"
+
react-dom@18.3.1:
version "18.3.1"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4"
@@ -5591,11 +5578,16 @@ react-ga@^3.3.1:
resolved "https://registry.yarnpkg.com/react-ga/-/react-ga-3.3.1.tgz#d8e1f4e05ec55ed6ff944dcb14b99011dfaf9504"
integrity sha512-4Vc0W5EvXAXUN/wWyxvsAKDLLgtJ3oLmhYYssx+YzphJpejtOst6cbIHCIyF50Fdxuf5DDKqRYny24yJ2y7GFQ==
-react-is@^16.13.1:
+react-is@^16.13.1, react-is@^16.3.2:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+react-lifecycles-compat@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
+ integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
+
react-markdown@^9.0.1:
version "9.0.1"
resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-9.0.1.tgz#c05ddbff67fd3b3f839f8c648e6fb35d022397d1"
@@ -5634,6 +5626,16 @@ react-router@6.26.2:
dependencies:
"@remix-run/router" "1.19.2"
+react-transition-group@^4.4.5:
+ version "4.4.5"
+ resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1"
+ integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==
+ dependencies:
+ "@babel/runtime" "^7.5.5"
+ dom-helpers "^5.0.1"
+ loose-envify "^1.4.0"
+ prop-types "^15.6.2"
+
react@18.3.1:
version "18.3.1"
resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891"
@@ -5663,11 +5665,6 @@ readable-stream@^3.0.6:
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
-readdirp@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.0.1.tgz#b2fe35f8dca63183cd3b86883ecc8f720ea96ae6"
- integrity sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==
-
readdirp@~3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
@@ -5733,17 +5730,7 @@ regenerator-transform@^0.15.2:
dependencies:
"@babel/runtime" "^7.8.4"
-regexp.prototype.flags@^1.5.1:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334"
- integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==
- dependencies:
- call-bind "^1.0.6"
- define-properties "^1.2.1"
- es-errors "^1.3.0"
- set-function-name "^2.0.1"
-
-regexp.prototype.flags@^1.5.2:
+regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.2:
version "1.5.3"
resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42"
integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==
@@ -5792,9 +5779,9 @@ regjsparser@^0.1.4:
jsesc "~0.5.0"
regjsparser@^0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.11.0.tgz#f01e6ccaba36d384fb0d00a06b78b372c8b681e8"
- integrity sha512-vTbzVAjQDzwQdKuvj7qEq6OlAprCjE656khuGQ4QaBLg7abQ9I9ISpmLuc6inWe7zP75AECjqUa4g4sdQvOXhg==
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.11.1.tgz#ae55c74f646db0c8fcb922d4da635e33da405149"
+ integrity sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==
dependencies:
jsesc "~3.0.2"
@@ -5955,12 +5942,12 @@ sass-loader@^16.0.2:
dependencies:
neo-async "^2.6.2"
-sass@^1.79.4:
- version "1.79.4"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.79.4.tgz#f9c45af35fbeb53d2c386850ec842098d9935267"
- integrity sha512-K0QDSNPXgyqO4GZq2HO5Q70TLxTH6cIT59RdoCHMivrC8rqzaTw5ab9prjz9KUN1El4FLXrBXJhik61JR4HcGg==
+sass@1.77.6:
+ version "1.77.6"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.6.tgz#898845c1348078c2e6d1b64f9ee06b3f8bd489e4"
+ integrity sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==
dependencies:
- chokidar "^4.0.0"
+ chokidar ">=3.0.0 <4.0.0"
immutable "^4.0.0"
source-map-js ">=0.6.2 <2.0.0"
@@ -6238,12 +6225,13 @@ stop-iteration-iterator@^1.0.0:
internal-slot "^1.0.4"
string.prototype.includes@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz#8986d57aee66d5460c144620a6d873778ad7289f"
- integrity sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz#eceef21283640761a81dbe16d6c7171a4edf7d92"
+ integrity sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==
dependencies:
- define-properties "^1.1.3"
- es-abstract "^1.17.5"
+ call-bind "^1.0.7"
+ define-properties "^1.2.1"
+ es-abstract "^1.23.3"
string.prototype.matchall@^4.0.11:
version "4.0.11"
@@ -6328,13 +6316,6 @@ strip-ansi@^3.0.0:
dependencies:
ansi-regex "^2.0.0"
-strip-ansi@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
- integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
- dependencies:
- ansi-regex "^5.0.1"
-
strip-bom@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
@@ -6405,9 +6386,9 @@ terser-webpack-plugin@^5.3.10:
terser "^5.26.0"
terser@^5.26.0:
- version "5.34.1"
- resolved "https://registry.yarnpkg.com/terser/-/terser-5.34.1.tgz#af40386bdbe54af0d063e0670afd55c3105abeb6"
- integrity sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==
+ version "5.36.0"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.36.0.tgz#8b0dbed459ac40ff7b4c9fd5a3a2029de105180e"
+ integrity sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==
dependencies:
"@jridgewell/source-map" "^0.3.3"
acorn "^8.8.2"
@@ -6486,10 +6467,10 @@ tsconfig-paths@^3.15.0:
minimist "^1.2.6"
strip-bom "^3.0.0"
-tslib@^2.0.0:
- version "2.7.0"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01"
- integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==
+tslib@^2.0.0, tslib@^2.4.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.0.tgz#d124c86c3c05a40a91e6fdea4021bd31d377971b"
+ integrity sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==
type-check@^0.4.0, type-check@~0.4.0:
version "0.4.0"
@@ -6560,6 +6541,21 @@ unbox-primitive@^1.0.2:
has-symbols "^1.0.3"
which-boxed-primitive "^1.0.2"
+uncontrollable@^7.2.1:
+ version "7.2.1"
+ resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-7.2.1.tgz#1fa70ba0c57a14d5f78905d533cf63916dc75738"
+ integrity sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==
+ dependencies:
+ "@babel/runtime" "^7.6.3"
+ "@types/react" ">=16.9.11"
+ invariant "^2.2.4"
+ react-lifecycles-compat "^3.0.4"
+
+uncontrollable@^8.0.1:
+ version "8.0.4"
+ resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-8.0.4.tgz#a0a8307f638795162fafd0550f4a1efa0f8c5eb6"
+ integrity sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ==
+
undici-types@~6.19.2:
version "6.19.8"
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02"
@@ -6709,6 +6705,13 @@ vfile@^6.0.0:
"@types/unist" "^3.0.0"
vfile-message "^4.0.0"
+warning@^4.0.0, warning@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
+ integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==
+ dependencies:
+ loose-envify "^1.0.0"
+
watchpack@^2.4.1:
version "2.4.2"
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da"
From 3e752d3705c63856aa06e380b848364fa2b33c71 Mon Sep 17 00:00:00 2001
From: Jonathan McKenzie
Date: Tue, 29 Oct 2024 14:21:14 -0400
Subject: [PATCH 2/2] Create CMSComponent, switch to that over hooks in most
places
---
package.json | 2 +-
src/js/components/CMSComponent.jsx | 84 +++++++++++++++++++
src/js/components/LegislativePriorities.jsx | 41 ++++-----
.../LocalImplementationProjects.jsx | 41 ++++-----
src/js/components/MemberName.jsx | 6 +-
src/js/components/TaskForceNames.jsx | 54 ++++--------
src/js/components/TrackingProgress.jsx | 78 ++++++++++-------
.../guiding-principles/PrinciplesSection.jsx | 47 ++++++-----
src/js/components/home/About.jsx | 12 +--
src/js/components/home/CompactSection.jsx | 41 ++++-----
src/js/components/home/MemberMuni.jsx | 6 +-
src/js/components/home/Signature.jsx | 6 +-
src/js/components/home/TaskForceMunis.jsx | 38 ++++-----
src/js/hooks/useAirtableCMS.js | 67 ---------------
src/js/hooks/useLocalStorage.js | 25 ------
src/sass/home/Member.scss | 1 -
yarn.lock | 8 +-
17 files changed, 272 insertions(+), 285 deletions(-)
create mode 100644 src/js/components/CMSComponent.jsx
delete mode 100644 src/js/hooks/useAirtableCMS.js
delete mode 100644 src/js/hooks/useLocalStorage.js
diff --git a/package.json b/package.json
index d51dc43..ed7c59b 100644
--- a/package.json
+++ b/package.json
@@ -41,7 +41,7 @@
"@babel/plugin-proposal-object-rest-spread": "^7.20.7",
"@babel/preset-env": "^7.25.7",
"@babel/preset-react": "^7.25.7",
- "@mapc/airtable-cms": "^1.0.0",
+ "@mapc/airtable-cms": "^1.1.1",
"airtable": "^0.12.2",
"babel-preset-env": "^1.7.0",
"bootstrap": "^5.3.3",
diff --git a/src/js/components/CMSComponent.jsx b/src/js/components/CMSComponent.jsx
new file mode 100644
index 0000000..11372c8
--- /dev/null
+++ b/src/js/components/CMSComponent.jsx
@@ -0,0 +1,84 @@
+import React, { useState } from "react";
+import Spinner from "react-bootstrap/Spinner";
+import ToastContainer from "react-bootstrap/ToastContainer";
+import Toast from "react-bootstrap/Toast";
+import { useAirtableCMS } from "@mapc/airtable-cms";
+
+const LoadingIndicator = () => {
+ return (
+
+ Loading...
+
+ );
+};
+
+const ErrorMessage = ({ empty = false, tableName }) => {
+ const [show, setShow] = useState(true);
+ const title = empty ? "Error" : "Warning";
+ const bg = empty ? "danger" : "warning";
+ const textColor = empty ? "white" : "#333";
+ return (
+
+ setShow(false)} show={show} delay={10000} bg={bg} autohide>
+
+ {title}
+
+
+ Unable to fetch data{tableName != null && ` for ${tableName}`}
+ {!empty && "; displaying cached content"}
+
+
+
+ );
+};
+
+const EmptyMessage = () => {
+ return No records to display.
;
+};
+
+const CMSComponent = ({
+ tableName,
+ keyField,
+ fieldMapping,
+ sortBy,
+ filterBy,
+ recordComponent,
+ loadingComponent = LoadingIndicator,
+ errorComponent = ErrorMessage,
+ emptyComponent = EmptyMessage,
+}) => {
+ const {
+ data,
+ metadata: { done, error },
+ } = useAirtableCMS({
+ tableName,
+ keyField,
+ fieldMapping,
+ sortBy,
+ filterBy,
+ });
+
+ const renderedComponents = [];
+
+ if (!done && data.length === 0) {
+ // If we're still fetching updates and have nothing in the cache to display, show loadingComponent
+ renderedComponents.push(React.createElement(loadingComponent));
+ } else if (done) {
+ if (data.length === 0) {
+ if (error) {
+ renderedComponents.push(React.createElement(errorComponent, { empty: true, key: "errorComponent", tableName }));
+ }
+ // If we have nothing in the cache to display, show emptyComponent
+ renderedComponents.push(React.createElement(emptyComponent, { key: "emptyComponent" }));
+ } else if (data.length > 0) {
+ if (error) {
+ renderedComponents.push(React.createElement(errorComponent, { empty: false, key: "errorComponent", tableName }));
+ }
+ // If we have something in the cache to display, show those records
+ renderedComponents.push(...data.map((record) => React.createElement(recordComponent, { key: record[keyField], ...record })));
+ }
+ }
+ return renderedComponents;
+};
+
+export default CMSComponent;
diff --git a/src/js/components/LegislativePriorities.jsx b/src/js/components/LegislativePriorities.jsx
index 9ad5c7d..6cb05d7 100644
--- a/src/js/components/LegislativePriorities.jsx
+++ b/src/js/components/LegislativePriorities.jsx
@@ -1,28 +1,31 @@
-import useAirtableCMS from "../hooks/useAirtableCMS";
import Markdown from "react-markdown";
import remarkGfm from "remark-gfm";
-const LegislativePriorities = () => {
- const legislativePriorities = useAirtableCMS({
- baseID: "app1YqNgXXkVH04nO",
- tableName: "Legislative Priorities",
- keyField: "name",
- fieldMapping: {
- name: "Name",
- content: "Content",
- },
- });
+import CMSComponent from "./CMSComponent";
+const LegislativePriority = ({ name, content }) => {
+ return (
+
+
{name}
+ {content}
+
+ );
+};
+
+const LegislativePriorities = () => {
return (
- {legislativePriorities.map((priority) => {
- return (
-
-
{priority.name}
- {priority.content}
-
- );
- })}
+
a.order - b.order}
+ recordComponent={LegislativePriority}
+ />
);
};
diff --git a/src/js/components/LocalImplementationProjects.jsx b/src/js/components/LocalImplementationProjects.jsx
index ee687eb..6fd31fd 100644
--- a/src/js/components/LocalImplementationProjects.jsx
+++ b/src/js/components/LocalImplementationProjects.jsx
@@ -1,28 +1,31 @@
-import useAirtableCMS from "../hooks/useAirtableCMS";
import Markdown from "react-markdown";
import remarkGfm from "remark-gfm";
-const LocalImplementationProjects = () => {
- const projects = useAirtableCMS({
- baseID: "app1YqNgXXkVH04nO",
- tableName: "Local Implementation Projects",
- keyField: "name",
- fieldMapping: {
- name: "Name",
- description: "Description",
- },
- });
+import CMSComponent from "./CMSComponent";
+const LocalImplementationProject = ({ name, description }) => {
+ return (
+
+
{name}
+ {description}
+
+ );
+};
+
+const LocalImplementationProjects = () => {
return (
- {projects.map((project) => {
- return (
-
-
{project.name}
- {project.description}
-
- );
- })}
+
a.order - b.order}
+ recordComponent={LocalImplementationProject}
+ />
);
};
diff --git a/src/js/components/MemberName.jsx b/src/js/components/MemberName.jsx
index 6081071..d33b0d0 100644
--- a/src/js/components/MemberName.jsx
+++ b/src/js/components/MemberName.jsx
@@ -1,13 +1,13 @@
import { getMuniProfileURL } from "../utils";
-const MemberName = ({ municipalityName, name, title }) => {
+const MemberName = ({ municipality, name, title }) => {
return (
diff --git a/src/js/components/TaskForceNames.jsx b/src/js/components/TaskForceNames.jsx
index e4bf8f2..44e2dfa 100644
--- a/src/js/components/TaskForceNames.jsx
+++ b/src/js/components/TaskForceNames.jsx
@@ -1,46 +1,28 @@
-import Spinner from "react-bootstrap/Spinner";
-import { useAirtableCMS } from "@mapc/airtable-cms";
+import CMSComponent from "./CMSComponent";
import MemberName from "./MemberName";
const TaskForceNames = () => {
- const {
- data: taskForce,
- metadata: { loading },
- } = useAirtableCMS({
- baseID: "app1YqNgXXkVH04nO",
- tableName: "Task Force Members",
- keyField: "municipality",
- fieldMapping: {
- municipality: "Municipality",
- title: "Title",
- name: "Name",
- color: "Color",
- originalCompact: "Original Compact",
- currentMember: "Current Member",
- },
- sortBy: (a, b) => a.municipality.localeCompare(b.municipality),
- });
-
- let sectionContent;
- if (loading && taskForce.length === 0) {
- // If this is the first time we're loading content, show the loading indicator
- sectionContent = (
-
- Loading...
-
- );
- } else {
- sectionContent = taskForce
- // Filter any members that were not part of the original 2018 compact
- .filter((member) => member.originalCompact)
- .map((member) => );
- }
-
return (
The 2018 Task Force
- {sectionContent}
+
+ a.municipality.localeCompare(b.municipality)}
+ filterBy={(member) => member.originalCompact}
+ recordComponent={MemberName}
+ />
+
);
};
diff --git a/src/js/components/TrackingProgress.jsx b/src/js/components/TrackingProgress.jsx
index 262f658..fd31fc0 100644
--- a/src/js/components/TrackingProgress.jsx
+++ b/src/js/components/TrackingProgress.jsx
@@ -1,45 +1,63 @@
-import useAirtableCMS from "../hooks/useAirtableCMS";
import Markdown from "react-markdown";
import remarkGfm from "remark-gfm";
-const TrackingProgress = () => {
- const trackingProgress = useAirtableCMS({
- baseID: "app1YqNgXXkVH04nO",
- tableName: "Tracking Progress",
- keyField: "section",
- fieldMapping: {
- section: "Section",
- content: "Content",
- },
- });
+import CMSComponent from "./CMSComponent";
+const PageSection = ({ section, content }) => {
+ return (
+
+
{section}
+
{
+ if (props.src.indexOf("gallery.shinyapps.io") >= 0) {
+ return (
+
+ );
+ } else {
+ return ;
+ }
+ },
+ }}
+ remarkPlugins={[remarkGfm]}
+ >
+ {content}
+
+
+ );
+};
+
+const TrackingProgress = () => {
return (
- {trackingProgress.map((record) => {
- return (
-
-
{record.section}
-
{
- if(props.src.indexOf("gallery.shinyapps.io") >= 0) {
- return
- } else {
- return
- }
- }
- }}
- remarkPlugins={[remarkGfm]}>{record.content}
-
- );
- })}
+
a.order - b.order}
+ recordComponent={PageSection}
+ />
diff --git a/src/js/components/home/MemberMuni.jsx b/src/js/components/home/MemberMuni.jsx
index b03d895..2e9d05a 100644
--- a/src/js/components/home/MemberMuni.jsx
+++ b/src/js/components/home/MemberMuni.jsx
@@ -1,11 +1,11 @@
import { getMuniProfileURL } from "../../utils";
-const MemberMuni = ({ municipalityName, color }) => {
+const MemberMuni = ({ municipality, color }) => {
return (
diff --git a/src/js/components/home/Signature.jsx b/src/js/components/home/Signature.jsx
index 5cd9e5f..cbfeef3 100644
--- a/src/js/components/home/Signature.jsx
+++ b/src/js/components/home/Signature.jsx
@@ -1,9 +1,9 @@
-const Signature = ({ title, name, municipalityName }) => {
+const Signature = ({ title, name, municipality }) => {
return (
);
};
diff --git a/src/js/components/home/TaskForceMunis.jsx b/src/js/components/home/TaskForceMunis.jsx
index b93d3b8..6f5aa60 100644
--- a/src/js/components/home/TaskForceMunis.jsx
+++ b/src/js/components/home/TaskForceMunis.jsx
@@ -1,32 +1,26 @@
+import CMSComponent from "../CMSComponent";
import MemberMuni from "./MemberMuni";
-import { useAirtableCMS } from "../../hooks/useAirtableCMS";
const TaskForceMunis = () => {
- const taskForce = useAirtableCMS({
- baseID: "app1YqNgXXkVH04nO",
- tableName: "Task Force Members",
- keyField: "municipality",
- fieldMapping: {
- municipality: "Municipality",
- title: "Title",
- name: "Name",
- color: "Color",
- originalCompact: "Original Compact",
- currentMember: "Current Member",
- },
- sortBy: (a, b) => a.municipality.localeCompare(b.municipality),
- });
-
return (
The Task Force Communities
- {taskForce
- // Filter any members that are not currently in the Coalition
- .filter((member) => member.currentMember)
- .map((member) => (
-
- ))}
+ a.municipality.localeCompare(b.municipality)}
+ filterBy={(member) => member.currentMember}
+ recordComponent={MemberMuni}
+ />
);
diff --git a/src/js/hooks/useAirtableCMS.js b/src/js/hooks/useAirtableCMS.js
deleted file mode 100644
index 7a4851e..0000000
--- a/src/js/hooks/useAirtableCMS.js
+++ /dev/null
@@ -1,67 +0,0 @@
-import { useEffect } from "react";
-import { useLocalStorage } from "./useLocalStorage";
-import Airtable from "airtable";
-
-const isLocalOrStaging = window.location.host.startsWith("staging") || window.location.host.startsWith("localhost");
-
-export const useAirtableCMS = ({ baseID, tableName, viewName = "Grid view", keyField, fieldMapping, asList = true, sortBy }) => {
- const [cmsObjects, setCMSObjects, lastUpdated] = useLocalStorage(tableName, {});
- const cmsBase = new Airtable({ apiKey: process.env.AIRTABLE_API_KEY }).base(baseID);
-
- useEffect(() => {
- const updatedRecords = {};
- const unpublishedRecords = [];
- cmsBase(tableName)
- .select({
- view: viewName,
- filterByFormula: `IS_AFTER({Last Modified}, '${new Date(lastUpdated).toISOString()}')`,
- fields: [...Object.values(fieldMapping), "Status"],
- })
- .eachPage(
- (records, fetchNextPage) => {
- records.forEach((record) => {
- const recordStatus = record.get("Status");
- if (recordStatus === "Published" || (isLocalOrStaging && recordStatus === "Preview")) {
- const updatedRecord = {};
- Object.entries(fieldMapping).forEach(([key, value]) => {
- updatedRecord[key] = record.get(value);
- });
- updatedRecords[updatedRecord[keyField]] = updatedRecord;
- } else {
- unpublishedRecords.push(record.get(fieldMapping[keyField]));
- }
- });
-
- fetchNextPage();
- },
- (err) => {
- if (err) {
- console.error(err);
- } else {
- if (Object.keys(updatedRecords).length > 0 || unpublishedRecords.length > 0) {
- const mergedObject = {
- ...cmsObjects,
- ...updatedRecords,
- };
- for (let key of unpublishedRecords) {
- delete mergedObject[key];
- }
- setCMSObjects(mergedObject);
- }
- }
- },
- );
- }, [cmsBase, cmsObjects, fieldMapping, keyField, lastUpdated, setCMSObjects, tableName, viewName]);
-
- if (asList) {
- const objectList = Object.values(cmsObjects);
- if (sortBy != null) {
- return objectList.sort(sortBy);
- }
- return objectList;
- }
-
- return cmsObjects;
-};
-
-export default useAirtableCMS;
diff --git a/src/js/hooks/useLocalStorage.js b/src/js/hooks/useLocalStorage.js
deleted file mode 100644
index f1537ab..0000000
--- a/src/js/hooks/useLocalStorage.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Lifted wholesale from https://blog.logrocket.com/using-localstorage-react-hooks/
-// Further modified to keep track of a lastUpdated timestamp for efficient caching
-import { useState, useEffect } from "react";
-
-const getStorageValue = (key, defaultValue) => {
- // getting stored value
- const saved = localStorage.getItem(key);
- const initial = JSON.parse(saved);
- return initial || defaultValue;
-};
-
-export const useLocalStorage = (key, defaultValue) => {
- const lastUpdated = JSON.parse(localStorage.getItem(`${key}-lastUpdated`)) || 0;
- const [value, setValue] = useState(() => {
- return getStorageValue(key, defaultValue);
- });
-
- useEffect(() => {
- // storing input name
- localStorage.setItem(`${key}-lastUpdated`, JSON.stringify(Date.now()));
- localStorage.setItem(key, JSON.stringify(value));
- }, [key, value]);
-
- return [value, setValue, lastUpdated];
-};
diff --git a/src/sass/home/Member.scss b/src/sass/home/Member.scss
index 2812e38..ff657db 100644
--- a/src/sass/home/Member.scss
+++ b/src/sass/home/Member.scss
@@ -80,7 +80,6 @@
h4 {
@extend ._vertical-center;
- top: 30%;
font-weight: 700;
font-size: $font_size-base;
text-transform: uppercase;
diff --git a/yarn.lock b/yarn.lock
index 75156b5..185ca7e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1023,10 +1023,10 @@
resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1"
integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==
-"@mapc/airtable-cms@^1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@mapc/airtable-cms/-/airtable-cms-1.0.0.tgz#45fe54f43ff10455ba79282fea9f385074f80ad6"
- integrity sha512-1c2FMkVvxzMxBrzTJ4E+JhZfyYov3olsSnqG8KSX1lsxnr5C2H981YVjOVTWt2iN43k5YGrnke+Sk45wjmp9aA==
+"@mapc/airtable-cms@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@mapc/airtable-cms/-/airtable-cms-1.1.1.tgz#abb2a6083b9e09ec64c02bc2e173440b927d6ac9"
+ integrity sha512-PE9oP8pi/gMlCRlCSbfd7fALGXI5I76rniAibw9CiDfc+M9+XvRSE9oBWglk4FVYB9G5rp7sgAoLL1FUwI58Yw==
dependencies:
airtable "^0.12.2"