diff --git a/next-sitemap.config.cjs b/next-sitemap.config.js similarity index 71% rename from next-sitemap.config.cjs rename to next-sitemap.config.js index c53d2e1598..b7f1b427aa 100644 --- a/next-sitemap.config.cjs +++ b/next-sitemap.config.js @@ -1,7 +1,8 @@ /* eslint-env node */ /** @type {import('next-sitemap').IConfig} */ -module.exports = { +export default { siteUrl: process.env.SITE_URL || "https://graphql.org", generateIndexSitemap: false, + output: "export", // Set static output here } diff --git a/package.json b/package.json index 47f7ec1b82..51babc4563 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "format": "pnpm format:check --write", "format:check": "prettier --cache --check \"**/*.{js,jsx,ts,tsx,cjs,mjs,json,yml,yaml,md}\"", "lint": "eslint --ignore-path .gitignore .", - "postbuild": "next-sitemap --config next-sitemap.config.cjs", + "postbuild": "next-sitemap", "start": "next start", "test": "echo \"no tests\" && exit 1" }, @@ -20,7 +20,6 @@ "@heroicons/react": "^2.0.18", "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-radio-group": "^1.1.3", - "@svgr/webpack": "^8.0.1", "@tailwindcss/nesting": "0.0.0-insiders.565cd3e", "@tailwindcss/typography": "^0.5.10", "autoprefixer": "^10.4.17", @@ -31,6 +30,7 @@ "fast-glob": "^3.3.2", "graphql": "16.8.1", "gray-matter": "^4.0.3", + "hast-util-to-string": "3.0.0", "iframe-resizer-react": "^1.1.0", "leaflet": "^1.9.4", "markdown-to-jsx": "^7.4.0", @@ -46,25 +46,27 @@ "p-limit": "^4.0.0", "parser-front-matter": "1.6.4", "postcss": "^8.4.33", - "prettier-plugin-pkg": "^0.18.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-medium-image-zoom": "5.1.8", + "rss": "1.2.2", "server-only": "0.0.1", - "server-only-context": "^0.1.0", "string-similarity": "^4.0.4", "string-strip-html": "^13.4.5", "tailwindcss": "^3.4.1", "timeago.js": "4.0.2", - "tsx": "^4.7.0", + "unified": "11.0.4", "unist-util-visit": "^5.0.0", "use-query-params": "^2.2.1" }, "devDependencies": { "@graphql-eslint/eslint-plugin": "4.0.0-alpha.0", + "@svgr/webpack": "^8.0.1", "@types/codemirror": "5.60.7", + "@types/hast": "3.0.4", "@types/node": "^20.11.30", "@types/react": "^18.2.73", + "@types/rss": "0.0.32", "@types/string-similarity": "^4.0.2", "@typescript-eslint/eslint-plugin": "7.4.0", "@typescript-eslint/parser": "7.4.0", @@ -73,9 +75,11 @@ "eslint-plugin-mdx": "^3.1.5", "eslint-plugin-tailwindcss": "3.15.1", "prettier": "3.2.5", + "prettier-plugin-pkg": "^0.18.1", "remark-frontmatter": "5.0.0", "remark-lint-first-heading-level": "3.1.2", "remark-lint-heading-increment": "3.1.2", + "tsx": "^4.7.0", "typescript": "^5.4.3" }, "pnpm": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e0dc1faa78..7f7d40b920 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,9 +28,6 @@ importers: '@radix-ui/react-radio-group': specifier: ^1.1.3 version: 1.1.3(@types/react@18.2.73)(react-dom@18.2.0)(react@18.2.0) - '@svgr/webpack': - specifier: ^8.0.1 - version: 8.0.1(typescript@5.4.3) '@tailwindcss/nesting': specifier: 0.0.0-insiders.565cd3e version: 0.0.0-insiders.565cd3e(postcss@8.4.33) @@ -61,6 +58,9 @@ importers: gray-matter: specifier: ^4.0.3 version: 4.0.3 + hast-util-to-string: + specifier: 3.0.0 + version: 3.0.0 iframe-resizer-react: specifier: ^1.1.0 version: 1.1.0(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0) @@ -106,9 +106,6 @@ importers: postcss: specifier: ^8.4.33 version: 8.4.33 - prettier-plugin-pkg: - specifier: ^0.18.1 - version: 0.18.1(prettier@3.2.5) react: specifier: ^18.2.0 version: 18.2.0 @@ -118,12 +115,12 @@ importers: react-medium-image-zoom: specifier: 5.1.8 version: 5.1.8(react-dom@18.2.0)(react@18.2.0) + rss: + specifier: 1.2.2 + version: 1.2.2 server-only: specifier: 0.0.1 version: 0.0.1 - server-only-context: - specifier: ^0.1.0 - version: 0.1.0(react@18.2.0) string-similarity: specifier: ^4.0.4 version: 4.0.4 @@ -136,9 +133,9 @@ importers: timeago.js: specifier: 4.0.2 version: 4.0.2 - tsx: - specifier: ^4.7.0 - version: 4.7.0 + unified: + specifier: 11.0.4 + version: 11.0.4 unist-util-visit: specifier: ^5.0.0 version: 5.0.0 @@ -149,15 +146,24 @@ importers: '@graphql-eslint/eslint-plugin': specifier: 4.0.0-alpha.0 version: 4.0.0-alpha.0(@babel/core@7.24.3)(@types/node@20.11.30)(eslint@8.57.0)(graphql@16.8.1) + '@svgr/webpack': + specifier: ^8.0.1 + version: 8.0.1(typescript@5.4.3) '@types/codemirror': specifier: 5.60.7 version: 5.60.7 + '@types/hast': + specifier: 3.0.4 + version: 3.0.4 '@types/node': specifier: ^20.11.30 version: 20.11.30 '@types/react': specifier: ^18.2.73 version: 18.2.73 + '@types/rss': + specifier: 0.0.32 + version: 0.0.32 '@types/string-similarity': specifier: ^4.0.2 version: 4.0.2 @@ -182,6 +188,9 @@ importers: prettier: specifier: 3.2.5 version: 3.2.5 + prettier-plugin-pkg: + specifier: ^0.18.1 + version: 0.18.1(prettier@3.2.5) remark-frontmatter: specifier: 5.0.0 version: 5.0.0 @@ -191,6 +200,9 @@ importers: remark-lint-heading-increment: specifier: 3.1.2 version: 3.1.2 + tsx: + specifier: ^4.7.0 + version: 4.7.0 typescript: specifier: ^5.4.3 version: 5.4.3 @@ -269,14 +281,14 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - dev: false + dev: true /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - dev: false + dev: true /@babel/helper-compilation-targets@7.23.6: resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} @@ -304,7 +316,7 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 - dev: false + dev: true /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} @@ -316,7 +328,7 @@ packages: '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 - dev: false + dev: true /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3): resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} @@ -331,7 +343,7 @@ packages: resolve: 1.22.8 transitivePeerDependencies: - supports-color - dev: false + dev: true /@babel/helper-environment-visitor@7.22.20: resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} @@ -355,7 +367,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - dev: false + dev: true /@babel/helper-module-imports@7.24.3: resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} @@ -381,11 +393,12 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - dev: false + dev: true /@babel/helper-plugin-utils@7.24.0: resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} @@ -397,7 +410,7 @@ packages: '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 - dev: false + dev: true /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} @@ -409,7 +422,7 @@ packages: '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - dev: false + dev: true /@babel/helper-simple-access@7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} @@ -422,7 +435,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - dev: false + dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} @@ -449,7 +462,7 @@ packages: '@babel/helper-function-name': 7.23.0 '@babel/template': 7.24.0 '@babel/types': 7.24.0 - dev: false + dev: true /@babel/helpers@7.24.1: resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} @@ -485,7 +498,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} @@ -497,7 +510,7 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3) - dev: false + dev: true /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} @@ -508,7 +521,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} @@ -517,7 +530,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 - dev: false + dev: true /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} @@ -526,7 +539,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} @@ -535,7 +548,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} @@ -545,7 +558,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} @@ -554,7 +567,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} @@ -563,7 +576,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} @@ -573,6 +586,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} @@ -582,7 +596,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} @@ -591,7 +605,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} @@ -600,7 +614,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} @@ -610,7 +624,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} @@ -619,7 +633,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} @@ -628,7 +642,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} @@ -637,7 +651,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} @@ -646,7 +660,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} @@ -655,7 +669,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} @@ -664,7 +678,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} @@ -674,7 +688,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} @@ -684,7 +698,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} @@ -694,7 +708,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} @@ -705,7 +719,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} @@ -715,7 +729,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3): resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} @@ -728,7 +742,7 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3) - dev: false + dev: true /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} @@ -740,7 +754,7 @@ packages: '@babel/helper-module-imports': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) - dev: false + dev: true /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} @@ -750,7 +764,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==} @@ -760,7 +774,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} @@ -771,7 +785,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==} @@ -783,7 +797,7 @@ packages: '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3) - dev: false + dev: true /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} @@ -800,7 +814,7 @@ packages: '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 - dev: false + dev: true /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} @@ -811,7 +825,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/template': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} @@ -821,7 +835,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} @@ -832,7 +846,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} @@ -842,7 +856,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} @@ -853,7 +867,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3) - dev: false + dev: true /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} @@ -864,7 +878,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} @@ -875,7 +889,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3) - dev: false + dev: true /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} @@ -886,7 +900,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - dev: false + dev: true /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} @@ -898,7 +912,7 @@ packages: '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} @@ -909,7 +923,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3) - dev: false + dev: true /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} @@ -919,7 +933,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} @@ -930,7 +944,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3) - dev: false + dev: true /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} @@ -940,7 +954,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} @@ -951,7 +965,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} @@ -963,7 +977,7 @@ packages: '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-simple-access': 7.22.5 - dev: false + dev: true /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} @@ -976,7 +990,7 @@ packages: '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-validator-identifier': 7.22.20 - dev: false + dev: true /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} @@ -987,7 +1001,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} @@ -998,7 +1012,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} @@ -1008,7 +1022,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} @@ -1019,7 +1033,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3) - dev: false + dev: true /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} @@ -1030,7 +1044,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3) - dev: false + dev: true /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} @@ -1043,7 +1057,7 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3) '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3) - dev: false + dev: true /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} @@ -1054,7 +1068,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) - dev: false + dev: true /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} @@ -1065,7 +1079,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3) - dev: false + dev: true /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} @@ -1077,7 +1091,7 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) - dev: false + dev: true /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} @@ -1087,7 +1101,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} @@ -1098,7 +1112,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} @@ -1111,7 +1125,7 @@ packages: '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3) - dev: false + dev: true /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} @@ -1121,7 +1135,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==} @@ -1131,7 +1145,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} @@ -1141,7 +1155,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3): resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} @@ -1151,7 +1165,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3) - dev: false + dev: true /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3): resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} @@ -1165,7 +1179,7 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3) '@babel/types': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} @@ -1176,7 +1190,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} @@ -1187,7 +1201,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 regenerator-transform: 0.15.2 - dev: false + dev: true /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} @@ -1197,7 +1211,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} @@ -1207,7 +1221,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} @@ -1218,7 +1232,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - dev: false + dev: true /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} @@ -1228,7 +1242,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} @@ -1238,7 +1252,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} @@ -1248,7 +1262,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==} @@ -1261,7 +1275,7 @@ packages: '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3) - dev: false + dev: true /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} @@ -1271,7 +1285,7 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} @@ -1282,7 +1296,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} @@ -1293,7 +1307,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} @@ -1304,7 +1318,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true /@babel/preset-env@7.24.3(@babel/core@7.24.3): resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==} @@ -1395,7 +1409,7 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: false + dev: true /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} @@ -1406,7 +1420,7 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/types': 7.24.0 esutils: 2.0.3 - dev: false + dev: true /@babel/preset-react@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} @@ -1421,7 +1435,7 @@ packages: '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3) '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.3) '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.3) - dev: false + dev: true /@babel/preset-typescript@7.24.1(@babel/core@7.24.3): resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} @@ -1435,18 +1449,17 @@ packages: '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3) '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3) '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3) - dev: false + dev: true /@babel/regjsgen@0.8.0: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - dev: false + dev: true /@babel/runtime@7.24.1: resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 - dev: false /@babel/template@7.24.0: resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} @@ -1526,7 +1539,7 @@ packages: cpu: [ppc64] os: [aix] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/android-arm64@0.19.12: @@ -1535,7 +1548,7 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/android-arm@0.19.12: @@ -1544,7 +1557,7 @@ packages: cpu: [arm] os: [android] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/android-x64@0.19.12: @@ -1553,7 +1566,7 @@ packages: cpu: [x64] os: [android] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/darwin-arm64@0.19.12: @@ -1562,7 +1575,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/darwin-x64@0.19.12: @@ -1571,7 +1584,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/freebsd-arm64@0.19.12: @@ -1580,7 +1593,7 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/freebsd-x64@0.19.12: @@ -1589,7 +1602,7 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/linux-arm64@0.19.12: @@ -1598,7 +1611,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/linux-arm@0.19.12: @@ -1607,7 +1620,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/linux-ia32@0.19.12: @@ -1616,7 +1629,7 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/linux-loong64@0.19.12: @@ -1625,7 +1638,7 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/linux-mips64el@0.19.12: @@ -1634,7 +1647,7 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/linux-ppc64@0.19.12: @@ -1643,7 +1656,7 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/linux-riscv64@0.19.12: @@ -1652,7 +1665,7 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/linux-s390x@0.19.12: @@ -1661,7 +1674,7 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/linux-x64@0.19.12: @@ -1670,7 +1683,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/netbsd-x64@0.19.12: @@ -1679,7 +1692,7 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/openbsd-x64@0.19.12: @@ -1688,7 +1701,7 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/sunos-x64@0.19.12: @@ -1697,7 +1710,7 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/win32-arm64@0.19.12: @@ -1706,7 +1719,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/win32-ia32@0.19.12: @@ -1715,7 +1728,7 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: false + dev: true optional: true /@esbuild/win32-x64@0.19.12: @@ -1724,7 +1737,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: false + dev: true optional: true /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): @@ -3001,7 +3014,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 - dev: false + dev: true /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.3): resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} @@ -3010,7 +3023,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 - dev: false + dev: true /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.3): resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} @@ -3019,7 +3032,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 - dev: false + dev: true /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.3): resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} @@ -3028,7 +3041,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 - dev: false + dev: true /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.3): resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} @@ -3037,7 +3050,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 - dev: false + dev: true /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.3): resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} @@ -3046,7 +3059,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 - dev: false + dev: true /@svgr/babel-plugin-transform-react-native-svg@8.0.0(@babel/core@7.24.3): resolution: {integrity: sha512-UKrY3860AQICgH7g+6h2zkoxeVEPLYwX/uAjmqo4PIq2FIHppwhIqZstIyTz0ZtlwreKR41O3W3BzsBBiJV2Aw==} @@ -3055,7 +3068,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 - dev: false + dev: true /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.3): resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} @@ -3064,7 +3077,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.3 - dev: false + dev: true /@svgr/babel-preset@8.0.0(@babel/core@7.24.3): resolution: {integrity: sha512-KLcjiZychInVrhs86OvcYPLTFu9L5XV2vj0XAaE1HwE3J3jLmIzRY8ttdeAg/iFyp8nhavJpafpDZTt+1LIpkQ==} @@ -3081,7 +3094,7 @@ packages: '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.3) '@svgr/babel-plugin-transform-react-native-svg': 8.0.0(@babel/core@7.24.3) '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.3) - dev: false + dev: true /@svgr/core@8.0.0(typescript@5.4.3): resolution: {integrity: sha512-aJKtc+Pie/rFYsVH/unSkDaZGvEeylNv/s2cP+ta9/rYWxRVvoV/S4Qw65Kmrtah4CBK5PM6ISH9qUH7IJQCng==} @@ -3095,7 +3108,7 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: false + dev: true /@svgr/hast-util-to-babel-ast@8.0.0: resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} @@ -3103,7 +3116,7 @@ packages: dependencies: '@babel/types': 7.24.0 entities: 4.5.0 - dev: false + dev: true /@svgr/plugin-jsx@8.0.1(@svgr/core@8.0.0): resolution: {integrity: sha512-bfCFb+4ZsM3UuKP2t7KmDwn6YV8qVn9HIQJmau6xeQb/iV65Rpi7NBNBWA2hcCd4GKoCqG8hpaaDk5FDR0eH+g==} @@ -3118,7 +3131,7 @@ packages: svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - dev: false + dev: true /@svgr/plugin-svgo@8.0.1(@svgr/core@8.0.0)(typescript@5.4.3): resolution: {integrity: sha512-29OJ1QmJgnohQHDAgAuY2h21xWD6TZiXji+hnx+W635RiXTAlHTbjrZDktfqzkN0bOeQEtNe+xgq73/XeWFfSg==} @@ -3132,7 +3145,7 @@ packages: svgo: 3.2.0 transitivePeerDependencies: - typescript - dev: false + dev: true /@svgr/webpack@8.0.1(typescript@5.4.3): resolution: {integrity: sha512-zSoeKcbCmfMXjA11uDuCJb+1LWNb3vy6Qw/VHj0Nfcl3UuqwuoZWknHsBIhCWvi4wU9vPui3aq054qjVyZqY4A==} @@ -3149,7 +3162,7 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: false + dev: true /@swc/helpers@0.5.2: resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} @@ -3200,7 +3213,7 @@ packages: /@trysound/sax@0.2.0: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} - dev: false + dev: true /@types/acorn@4.0.6: resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} @@ -3311,6 +3324,10 @@ packages: '@types/prop-types': 15.7.12 csstype: 3.1.3 + /@types/rss@0.0.32: + resolution: {integrity: sha512-2oKNqKyUY4RSdvl5eZR1n2Q9yvw3XTe3mQHsFPn9alaNBxfPnbXBtGP8R0SV8pK1PrVnLul0zx7izbm5/gF5Qw==} + dev: true + /@types/semver@7.5.8: resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} dev: true @@ -3587,6 +3604,7 @@ packages: /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true /array-iterate@2.0.1: resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} @@ -3643,7 +3661,7 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: false + dev: true /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3): resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} @@ -3655,7 +3673,7 @@ packages: core-js-compat: 3.36.1 transitivePeerDependencies: - supports-color - dev: false + dev: true /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3): resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} @@ -3666,7 +3684,7 @@ packages: '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3) transitivePeerDependencies: - supports-color - dev: false + dev: true /bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -3693,7 +3711,7 @@ packages: /boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - dev: false + dev: true /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -3736,6 +3754,7 @@ packages: /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + dev: true /camelcase-css@2.0.1: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} @@ -3744,7 +3763,7 @@ packages: /camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - dev: false + dev: true /caniuse-lite@1.0.30001600: resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} @@ -3924,7 +3943,6 @@ packages: /commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} - dev: false /commander@8.3.0: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} @@ -3967,7 +3985,7 @@ packages: resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} dependencies: browserslist: 4.23.0 - dev: false + dev: true /cose-base@1.0.3: resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} @@ -3999,7 +4017,7 @@ packages: parse-json: 5.2.0 path-type: 4.0.0 typescript: 5.4.3 - dev: false + dev: true /cross-inspect@1.0.0: resolution: {integrity: sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==} @@ -4032,7 +4050,7 @@ packages: domhandler: 5.0.3 domutils: 3.1.0 nth-check: 2.1.1 - dev: false + dev: true /css-tree@2.2.1: resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} @@ -4040,7 +4058,7 @@ packages: dependencies: mdn-data: 2.0.28 source-map-js: 1.2.0 - dev: false + dev: true /css-tree@2.3.1: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} @@ -4048,12 +4066,12 @@ packages: dependencies: mdn-data: 2.0.30 source-map-js: 1.2.0 - dev: false + dev: true /css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} - dev: false + dev: true /cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} @@ -4065,7 +4083,7 @@ packages: engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} dependencies: css-tree: 2.2.1 - dev: false + dev: true /csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -4403,7 +4421,7 @@ packages: /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - dev: false + dev: true /delaunator@5.0.1: resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} @@ -4455,18 +4473,18 @@ packages: domelementtype: 2.3.0 domhandler: 5.0.3 entities: 4.5.0 - dev: false + dev: true /domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - dev: false + dev: true /domhandler@5.0.3: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} dependencies: domelementtype: 2.3.0 - dev: false + dev: true /dompurify@3.0.11: resolution: {integrity: sha512-Fan4uMuyB26gFV3ovPoEoQbxRRPfTu3CvImyZnhGq5fsIEO+gEFLp45ISFt+kQBWsK5ulDdT0oV28jS1UrwQLg==} @@ -4478,14 +4496,14 @@ packages: dom-serializer: 2.0.0 domelementtype: 2.3.0 domhandler: 5.0.3 - dev: false + dev: true /dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 tslib: 2.6.2 - dev: false + dev: true /dset@3.1.3: resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} @@ -4514,7 +4532,6 @@ packages: /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - dev: false /errno@0.1.8: resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} @@ -4529,6 +4546,7 @@ packages: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 + dev: true /esbuild@0.19.12: resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} @@ -4559,7 +4577,7 @@ packages: '@esbuild/win32-arm64': 0.19.12 '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 - dev: false + dev: true /escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} @@ -4813,6 +4831,7 @@ packages: /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + dev: true /execa@0.8.0: resolution: {integrity: sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==} @@ -4987,7 +5006,7 @@ packages: resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} dependencies: resolve-pkg-maps: 1.0.0 - dev: false + dev: true /github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -5378,6 +5397,7 @@ packages: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 + dev: true /import-meta-resolve@4.0.0: resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} @@ -5447,6 +5467,7 @@ packages: /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true /is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} @@ -5624,11 +5645,12 @@ packages: hasBin: true dependencies: argparse: 2.0.1 + dev: true /jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true - dev: false + dev: true /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} @@ -5641,6 +5663,7 @@ packages: /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true /json-parse-even-better-errors@3.0.1: resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} @@ -5794,7 +5817,7 @@ packages: /lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - dev: false + dev: true /lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} @@ -5825,7 +5848,7 @@ packages: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: tslib: 2.6.2 - dev: false + dev: true /lru-cache@10.2.0: resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} @@ -6148,11 +6171,11 @@ packages: /mdn-data@2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - dev: false + dev: true /mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - dev: false + dev: true /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -6718,6 +6741,18 @@ packages: braces: 3.0.2 picomatch: 2.3.1 + /mime-db@1.25.0: + resolution: {integrity: sha512-5k547tI4Cy+Lddr/hdjNbBEWBwSl8EBc5aSdKvedav8DReADgWJzcYiktaRIw3GtGC1jjwldXtTzvqJZmtvC7w==} + engines: {node: '>= 0.6'} + dev: false + + /mime-types@2.1.13: + resolution: {integrity: sha512-ryBDp1Z/6X90UvjUK3RksH0IBPM137T7cmg4OgD5wQBojlAiUwuok0QeELkim/72EtcYuNlmbkrcGuxj3Kl0YQ==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.25.0 + dev: false + /mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} @@ -6986,7 +7021,7 @@ packages: dependencies: lower-case: 2.0.2 tslib: 2.6.2 - dev: false + dev: true /node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} @@ -7052,7 +7087,7 @@ packages: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 - dev: false + dev: true /nullthrows@1.1.1: resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} @@ -7121,6 +7156,7 @@ packages: engines: {node: '>=6'} dependencies: callsites: 3.1.0 + dev: true /parse-entities@2.0.0: resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} @@ -7153,6 +7189,7 @@ packages: error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + dev: true /parse-json@7.1.1: resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} @@ -7228,6 +7265,7 @@ packages: /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + dev: true /periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} @@ -7361,12 +7399,13 @@ packages: prettier: ^3.0.3 dependencies: prettier: 3.2.5 - dev: false + dev: true /prettier@3.2.5: resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} engines: {node: '>=14'} hasBin: true + dev: true /proc-log@3.0.0: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} @@ -7517,21 +7556,20 @@ packages: engines: {node: '>=4'} dependencies: regenerate: 1.4.2 - dev: false + dev: true /regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - dev: false + dev: true /regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - dev: false /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: '@babel/runtime': 7.24.1 - dev: false + dev: true /regexpu-core@5.3.2: resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} @@ -7543,14 +7581,14 @@ packages: regjsparser: 0.9.1 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.1.0 - dev: false + dev: true /regjsparser@0.9.1: resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} hasBin: true dependencies: jsesc: 0.5.0 - dev: false + dev: true /rehype-katex@7.0.0: resolution: {integrity: sha512-h8FPkGE00r2XKU+/acgqwWUlyzve1IiOKwsEkg4pDL3k48PiE0Pt+/uLtVHDVkN1yA4iurZN6UES8ivHVEQV6Q==} @@ -7709,6 +7747,7 @@ packages: /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + dev: true /resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} @@ -7717,7 +7756,7 @@ packages: /resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - dev: false + dev: true /resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} @@ -7781,6 +7820,13 @@ packages: resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} dev: false + /rss@1.2.2: + resolution: {integrity: sha512-xUhRTgslHeCBeHAqaWSbOYTydN2f0tAzNXvzh3stjz7QDhQMzdgHf3pfgNIngeytQflrFPfy6axHilTETr6gDg==} + dependencies: + mime-types: 2.1.13 + xml: 1.0.1 + dev: false + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -7846,14 +7892,6 @@ packages: resolution: {integrity: sha512-1chMo1dST4pFA9RDXAtF0Rbjaut4is7bzFbI1Z26IuMub68pNCILku85aYmeFhvnY//BXUPUhoRMjYcsT93J/Q==} dev: false - /server-only-context@0.1.0(react@18.2.0): - resolution: {integrity: sha512-5Ba19yx9Bj9uSh40aZNsZNBvLF88tLY3na6QxWkqyrSLOSHPxtnzTs/JzjKwfac1NbHFlEodkN7T4M6UzvH2Ng==} - peerDependencies: - react: next - dependencies: - react: 18.2.0 - dev: false - /server-only@0.0.1: resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} dev: false @@ -7959,7 +7997,7 @@ packages: dependencies: dot-case: 3.0.4 tslib: 2.6.2 - dev: false + dev: true /source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} @@ -8184,7 +8222,7 @@ packages: /svg-parser@2.0.4: resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} - dev: false + dev: true /svgo@3.2.0: resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} @@ -8198,7 +8236,7 @@ packages: css-what: 6.1.0 csso: 5.0.5 picocolors: 1.0.0 - dev: false + dev: true /synckit@0.9.0: resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==} @@ -8344,7 +8382,7 @@ packages: get-tsconfig: 4.7.3 optionalDependencies: fsevents: 2.3.3 - dev: false + dev: true /twoslash-protocol@0.2.5: resolution: {integrity: sha512-oUr5ZAn37CgNa6p1mrCuuR/pINffsnGCee2aS170Uj1IObxCjsHzu6sgdPUdxGLLn6++gd/qjNH1/iR6RrfLeg==} @@ -8399,7 +8437,7 @@ packages: /unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} - dev: false + dev: true /unicode-match-property-ecmascript@2.0.0: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} @@ -8407,17 +8445,17 @@ packages: dependencies: unicode-canonical-property-names-ecmascript: 2.0.0 unicode-property-aliases-ecmascript: 2.1.0 - dev: false + dev: true /unicode-match-property-value-ecmascript@2.1.0: resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} engines: {node: '>=4'} - dev: false + dev: true /unicode-property-aliases-ecmascript@2.1.0: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} - dev: false + dev: true /unified-engine@11.2.0: resolution: {integrity: sha512-H9wEDpBSM0cpEUuuYAOIiPzLCVN0pjASZZ6FFNzgzYS/HHzl9tArk/ereOMGtcF8m8vgjzw+HrU3YN7oenT7Ww==} @@ -8844,6 +8882,10 @@ packages: optional: true dev: true + /xml@1.0.1: + resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==} + dev: false + /xmldom-sre@0.1.31: resolution: {integrity: sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==} engines: {node: '>=0.1'} diff --git a/src/app/blog/rss.xml/route.ts b/src/app/blog/rss.xml/route.ts new file mode 100644 index 0000000000..2c03bb83ad --- /dev/null +++ b/src/app/blog/rss.xml/route.ts @@ -0,0 +1,79 @@ +import fs from "node:fs/promises" +import path from "node:path" +import { compileMdx } from "nextra/compile" +import { toString } from "hast-util-to-string" +import { type Root } from "hast" +import { type Plugin } from "unified" +import RSS from "rss" + +const SITE_URL = "https://graphql.org" + +const rehypeEnhanceFrontmatter: Plugin<[], Root> = () => (tree, file) => { + const { frontMatter } = file.data as { + frontMatter: Record + } + + tree = { + ...tree, + children: tree.children.filter(node => (node as any).tagName !== "pre"), + } + + const [filePath] = file.history + + frontMatter.description = toString(tree as any).trimStart() + frontMatter.fileName = path.parse(filePath).name + frontMatter.date = new Date(frontMatter.date) +} + +export async function GET() { + const files = await fs.readdir("./src/pages/blog") + + const blogs = await Promise.all( + files + .filter(filename => /\.mdx?$/.test(filename)) + .map(async filename => { + const filePath = path.join("./src/pages/blog", filename) + const content = await fs.readFile(filePath, "utf8") + return await compileMdx(content, { + filePath, + mdxOptions: { + rehypePlugins: [rehypeEnhanceFrontmatter], + }, + }) + }), + ) + + blogs.sort((a, b) => b.frontMatter.date - a.frontMatter.date) + + const feed = new RSS({ + title: "Blog | GraphQL", + description: "Blog | GraphQL", + generator: "Next.js", + feed_url: `${SITE_URL}/blog/rss.xml`, + site_url: SITE_URL, + // managingEditor: "info@graphql.org", + // webMaster: "info@graphql.org", + copyright: `Copyright © ${new Date().getFullYear()} The GraphQL Foundation. All rights reserved.`, + language: "en-US", + // Published date as last blog post date + pubDate: blogs[0].frontMatter.date.toUTCString(), + ttl: 60, + }) + + for (const { frontMatter } of blogs) { + feed.item({ + title: frontMatter.title, + description: frontMatter.description.slice(0, 139) + "…", + url: `${SITE_URL}/blog/${frontMatter.fileName}`, + categories: frontMatter.tags, + author: frontMatter.byline, + date: frontMatter.date.toUTCString(), + }) + } + + return new Response(feed.xml({ indent: true }), { + headers: { + "Content-Type": "application/xml; charset=utf-8", + }, + }) +} diff --git a/vercel.json b/vercel.json index 6730ed8e9e..41f7ed32ee 100644 --- a/vercel.json +++ b/vercel.json @@ -474,6 +474,11 @@ "source": "/foundation/:path*", "destination": "/community/foundation/:path*", "permanent": true + }, + { + "source": "/conf/speak/", + "destination": "/conf/2024/speak/", + "permanent": true } ] }